3-1. なぜ、今、ディープラーニング?

多層パーセプトロンの隠れ層を増やせば、より複雑な問題を解くことができる、、、というアイデアは、昔からあったそうです。
ですが、ディープニューラルネットワークが現実的につかえるようになったのは最近のこと。その背景には、いくつかのブレイクスルーがありました。よくいわれるのは、クラウド上の膨大なマシンスペックと、インターネット上の膨大なビッグデータがブレークスルーを引き起こしたということなのですが、、、実際にそれだけなのでしょうか。一つひとつ見ていきましょう!

3-1-1. 事前学習

さて、なかなかディープラーニングが実現しなかった理由の一つ目は、勾配消失問題です。これにたいしてブレイクスルーをもたらした手法が事前学習でした。ただし、事前学習は計算コストが非常に高くつくことから、最近では事前学習無しのアプローチとして、活性化関数を工夫する手法が主流になっているようです。それはさておき、ジェフリー・ヒントンが画像解析でブレイクスルーをもたらすに至ったアイデアですから、一つひとつの用語を抑えていきましょう。


用語:勾配消失問題

ニューラルネットワークの隠れ層を深くしていくと、隠れ層を遡るごとに伝搬していく誤差が小さくなっていくことにより、勾配がなくなってしまうという事象。活性化関数であるシグモイド関数の微分値が最大でも0.25にしかならないため、掛け算していくと値がどんどん小さくなっていってしまうようです。


用語:オートエンコーダ(自己符号化機)

ジェフリー・ヒントンが提唱した勾配消失問題の解決策です。可視層と隠れ層の2層からなるネットワークです。エンコーダとデコーダからなる。入力層と出力層の数はおなじだが、中間層のノード数はそれより少ない。「正解ラベル」として入力自身を用いることで、次元削減ができます。これだけだと、ディープニューラルネットワークではありませんので、次も見てみましょう。


用語:積層オートエンコーダー(ディープオートエンコーダー)

ディープニューラルネットワークの全ての層を一気に学習させるのではなく、入力層に近い層から順番に学習させるという、逐次的な方法です。順番に学習していくことによって、それぞれの隠れ層の重みが調整されます。このオートエンコーダーを順番に学習していく手順のことを、事前学習(pre-training)と呼びます。積層オートエンコーダは、事前学習と(後述の)ファインチューニングの工程で構成されています。


用語:ファインチューニング

オートエンコーダーを積み重ねるだけでは、最後にラベルを出すことはできません。積層オートエンコーダーを積み重ねていった最後に、別の層を足します。足される層は、2値分類ならシグモイド関数のロジスティック回帰、他項分類ならソフトマックス関数のロジスティック回帰、回帰なら線形回帰の層となります。最後に足した層も重みの調整が必要になります。事前学習により調整されているので、最後の仕上げとしてネットワーク全体を学習させると、誤差が上手いこと伝播されるのだそうな。この最後の工程をファインチューニングと呼びます。


名称:深層信念ネットワーク(deep belief networks)と制限付きボルツマンマシン

ジェフリー・ヒントンが提唱した手法の名前です。事前学習を用いたディープラーニングの手法として、覚えておきましょう。


3-2-2. GPU

もちろん、ハードウェア性能工場、特にGPU登場は、ディープラーニング実現に重要なブレイクスルーとなりました。ムーアの法則に沿って、半導体の性能と集積は18か月おきに2倍になっているようですね。


用語:GPGPU

CPUと異なり、様々なタスクをこなすのは不得意です。同じような並列計算処理が大規模に行われる場合に、パワーを発揮します。画像目的以外の仕様に最適化されたGPUのことをGPGPUと呼びます。GPGPUの開発をリードしたNVDIA社の名前は、頻出っぽいです。あと、グーグル社のテンソル計算処理に最適化された演算装置は、TPUと呼ばれているそうです。


3-2-3. データ量

ディープラーニングを実現するためには、データも大量に必要です。ですが、そんなの今さら当然ですよね。バーニーおじさんだけおぼえておきましょう。


用語:バーニーおじさんのルール

「モデルのパラメーター数の10倍のデータが必要」という経験則です。とはいえ、これは明確な指標でも何でもない。バーニーおじさんって、だれなのか?については、次の記事を参照のこと。この検定を勉強している人は、誰でも気になりますよね。そういうネタなのかな。うーむ。

0コメント

  • 1000 / 1000

DUO Select 倶楽部

毎日1週DUO Select