【G検定】確率的機械学習や分散処理、最適化アルゴリズムの用語まとめ
前書き
分からないところをまとめた。
Dist Belief
Googleが開発した大規模分散深層ネットワーク。
並列処理によるDeepLearning計算の高速化に役立ち、
Downpur SGD(SGDの高速化)とSandblaster L-BFGS(並列処理プログラム)により構成されています。
深層ボルツマンマシン
観測データの確率場をノードとし、無向の結合で依存関係を表す。
具体的にはボルツマンマシンというものがあり、
ボルツマンマシンは量子的統計力学の概念を応用し、
データ分布とボルツマンマシン分布を最尤推定する。
対数尤度関数とKL距離で二つの分布のより良い近似度を更新していく考え方である。
SGD(確率的勾配降下法)
損失関数を微分して勾配を計算し、勾配方向へ事前に決めた学習係数だけ進むことを繰り返す。
SGDは一回の更新ではデータを1つしか使わない。
そのため毎回パラメータ更新で同じデータを使っていると、極小値から抜け出すこともあるらしい。
→ミニバッチSGDで改善
ただミニバッチSGDでは学習を遅くしてしまう欠点がある。
Momentum
物理的な動きを模倣したもの、速度と加速度を持つ。
学習率は一定で以前使用した勾配が速度に残る。
SGDで発生した振動を相殺するため振動が小さくなる。
ただ損失が落ちにくいという欠点もあるため、NAGなどで改善。
AdaGrad
パラメータそれぞれに個別の学習係数を与える。
大きく動いたパラメータの学習係数は小さくなる。
RMSProp
指数移動平均を蓄積することで、過去に大きく動いたパラメータの学習係数も時間が経つと再度大きく動くようになる。
Momentumと同様、発生した振動を相殺するため振動が小さくするために導入された。
振動方向の学習率を下げてあげれば振動を抑えられるという理論。