GTC 2015 - Googleが「ディープラーニング」に対する取り組みを紹介
モデルを分割して並列処理する場合、ニューラルネットワークをレイヤーと垂直に分割し、GPUやほかのマシンを割り当てていく。この場合、ニューラルネットワークのレイヤーにある、「特定の部分だけを受容する領域」(Local Receptive Fields)に注意する必要がある。「特定の部分だけを受容する領域」を分割してしまうと、通信量が増えるという問題が起きるてしまう。
一方のデータを分割する方法では、パラメーターを特定のサーバーで記憶しておき、複数のモデルに異なるデータを与えて、学習を並列に行う。初期値として、その時点でサーバーに保存されているパラメーターを利用し、学習前と学習後の差、さらに以前のパラメーターを加算したものが新しい状態となる(同期分散した統計勾配降下法)。この構造を使うと、複数のニューラル・ネットワークに異なるデータを与えて複数のモデルを並列に学習させることが可能になるという。
また、ニューラルネットワークは、計算精度に対する許容量が高く、32bit表現の浮動小数点を16bit表現にしても、ほとんど結果がかわらないことが知られていて、これを使うことで学習の高速化もできる。