ディープラーニングの基本アイデアは半世紀前からありました。それでも実用化は2010年代です。空白を埋めたのは新しい理論ではなく、計算資源とデータでした。
こんにちは、zawato(@zawato7)です!
本記事はディープラーニング入門ロードマップの第14回です。
- パーセプトロンから2012年の転換点までの流れ
- CPU・GPU・GPGPU・TPUの違いと役割
- バーニーおじさんのルールと次元の呪い
理論は半世紀前からあった
ディープラーニングの出発点は、1950年代に登場した単純パーセプトロンです。ただし直線で分けられる問題(線形分類)しか扱えませんでした。突破口は2つです。1つは層を重ねて活性化関数を加え、非線形な問題に対応したこと。もう1つが信用割当問題の解決で、どのパラメータが結果に効いているか分からないという難所を誤差逆伝播法が解きました。
それでも実用レベルには届かず、研究は停滞します。流れが変わったのは2012年、画像認識のコンペティションILSVRCでディープラーニングを使ったチームが大差をつけて優勝したときです。既存の理論が、ようやく動く条件の揃った瞬間でした。
深く積むための学習手法が整った
層を深くしても初期値の決め方が分からず、学習が進まない時期がありました。そこで使われたのが事前学習です。入力と出力が同じになるよう学習させるオートエンコーダで得た重みを初期値に流用し、層を1つずつ順に学習させました。活性化関数や最適化手法が改良された現在は必須ではなく、歴史的な経緯として押さえる箇所です。
CPUからGPU、そしてTPUへ
ディープラーニングの計算は「単純な演算を大量に並列で回す」性質を持ち、CPUが苦手とする形です。CPUは複雑な処理を順にこなす汎用の頭脳でコア数は多くありませんが、GPUは画像を描くための装置で、単純な計算をこなすコアを大量に積んでいます。学習は行列演算の繰り返しなので、GPUの構造と噛み合いました。
画像処理以外の汎用計算にGPUを使う考え方をGPGPUと呼びます。NVIDIAがCUDAという開発環境を公開して研究者が扱いやすくなり、普及が進みました。さらにGoogleは行列演算に特化した専用装置TPUを開発しています。3語はセットで問われます。
| 名称 | 位置づけ |
|---|---|
| CPU | 汎用の演算装置。逐次処理が得意でコア数は少ない |
| GPU | 画像処理用の演算装置。並列処理が得意 |
| GPGPU | GPUを画像処理以外の汎用計算に転用する技術 |
| TPU | Googleが開発した行列演算特化の演算装置 |
データ量の目安と次元の呪い
もう1つの条件がデータです。インターネットとスマートフォンの普及で大量のデータが蓄積され、ビッグデータと呼ばれる状況が生まれたことが学習を成立させました。
必要な量の目安としてよく引かれるのがバーニーおじさんのルールです。パラメータ数の約10倍のデータが必要という経験則で、名称と数字がそのまま問われます。ただし現在は工夫が進み、これほどの量がなくても学習できます。
逆に特徴量の種類(次元)をむやみに増やすと必要なデータ量が急激に膨らみ、予測が困難になります。これを次元の呪いと呼びます。
まとめ
- 多層化・活性化関数・誤差逆伝播法で理論の骨格は揃っていた。実用化を阻んだのは理論以外の条件で、2012年のILSVRCが転換点
- 並列演算が得意なGPU、汎用計算に転用するGPGPU、行列演算特化のTPUが計算資源の壁を崩した
- 目安はバーニーおじさんのルール(パラメータ数の約10倍)、注意点は次元の呪い
よくある質問
Q. GPUはCPUより速いのですか?
A. 常に速いわけではありません。GPUは単純な計算を同時並行で大量にこなす構造で、行列演算の繰り返しである学習と相性が良いだけです。複雑な処理を順にこなす用途ではCPUが優れています。
Q. バーニーおじさんのルールは今も通用しますか?
A. 厳密な基準ではなく経験則です。現在は少ないデータでも成果が出るケースが増えており、試験では「パラメータ数の約10倍」という数字で押さえておけば十分です。
Q. 次元の呪いとデータ不足は同じ問題ですか?
A. 別の概念です。次元の呪いは特徴量の種類が増えるほど空間が広がり、同じ件数でもデータが疎になる現象です。原因は件数ではなく次元にあります。
