キカベン
機械学習でより便利な世の中へ
G検定対策
お問い合わせ
   

ディープラーニングを実現するには

thumb image

1. 学習目標🔝

ディープラーニングを実現するために必要ものは何か、何故ディープラニングが実現できたかを理解する。

  • CPUとGPU
  • GPGPU
  • ディープラーニングのデータ量

キーワードTPU

2. CPUとGPU🔝

第3次AIブームではCPU(シーピーユー、central processing unit)やGPU(ジーピーユー、graphics processing unit)などのハードウェアの進歩が大きく貢献している。

ゴードン・ムーアが1965年に「半導体の集積回路あたりの部品数が毎年2倍になる」と予測した。1975年には次の10年を見据えて「2年ごとに2倍になる」と予測を修正した。この予測は1975年以降も維持され「ムーア法則」と呼ばれている。

このように半導体の性能・集積が進むことで機械学習やディープラーニングに必要な膨大な計算が手軽に試せるようになりました。

CPUはOSから指示された命令を順番に処理していくもので、CPUが速くなるとさまざまな処理が速くなります。CPUがさまざまな処理を行う一方、GPUは画像処理に特化した演算を行うものでたくさんの演算を並列(同時)に行うことができます。

3. GPGPU🔝

近年、GPUは3Dゲームなどの需要から大いに発展しグラフィックスの処理に必要な大量の線形代数(テンソル、行列、ベクトル)の計算を瞬時に行うことができるようになりました。これをニューラルネットワークでの計算に適用することで学習の高速化が実現化されました。今ではディープラーニングの実践者にはなくてはならない存在となっています。

画像元:NVIDIA

このようにしてGPUは画像処理という本来の目的からより一般的な並列計算機として開発され発展してきました。これをGPGPU(General-Purpose computing on GPU、GPUによる汎用計算)と呼びます。

ディープラーニングのライブラリであるTensorFlowPyTorchなどでNVIDIAのGPUがサポートされており一般によく使われています。

また、Googleはテンソル計算に特化したTPU(ティーピーユー、tensor processing unit)を開発しており、アルファ碁やGoogleストリートビューの言語処理などで活用しています。

画像元:Google

4. ディープラーニングのデータ量🔝

ディープラーニングは機械学習の一種であり、学習にはデータが必要となります。ネットワークを訓練するとは、損失値に合わせてパラメータを調節(最適化)することです。層が深くなるほどパラメータの数も増えていくので学習に必要な計算量も増えていきます。

パラメータの数が多いほどより多くのデータが必要なのは感覚的には同意できますが、実際どれほどのデータが必要なのかはケースバイケースなので一概には言えません。目安としてバーニーおじさんのルール(Uncle Bernie’s rule)と呼ばれるものがあります。それは「ニューラルネットワークのパラメーター数の10倍以上の訓練データ量が必要」という経験則です。

Rules of thumb suggesting the number of samples required for specific distributions could be useful for practical problems.

Widrow has suggested having a training sample size that is 10 times the number of weights in a network (“Uncle Bernie’s Rule”)[Widrow, 1987].

引用元:論文

簡単に訳すと「ある分布に必要なサンプルの数を提案する経験則は実用的な問題に役立つことがあります。Bernard Widrowは訓練用のサンプルをネットワークの重みの数の10倍持つことを提案しました。(バーニーおじさんのルール)」。

しかし、最近のディープラーニングに適用できるかどうかは不明ですし、もともと数学的に証明されたわけでもありません。

いずれにせよ、データ数が少ないとディープラーニングがうまくいかない可能性が高くなります。その場合は、データをもっと集めるか、ディープラーニング以外のアルゴリズムを使った方が良いかもしれません。



コメントを残す

メールアドレスは公開されません。