ゲームAI備忘録

ゲームAIに使えそうな知識を備忘録として書き留める

人助けと思って何卒インストールをば! 詰碁/ アルコネ/ 五目並べ

Batch Normalization(バッチ正規化)

概要

何で必要なのか?

  • ニューラルネットワークは積和の積み重ねによって出力する仕組みになっている.
  • そのため正則化を行って重みの増減を防ぐ仕組みを作っても発散してしまう場合が存在するので,その問題を防ぐために必要.

アルゴリズム

  • ニューロンの出力を正規化して,拡大並行移動を行う調整パラメータγ,βを学習時に調整する.(c.f. [2])
given: γ, β, m(batch size)
μ: xのバッチでの平均
σ^2: xのバッチでの分散
ε: 微小な値(分散が小さい場合用の補正項.1e-8推奨)
x' = (x - μ) / √(σ^2 + ε)
y = γx' + β

References

[1]. Ioffe, Sergey, and Christian Szegedy. "Batch normalization: Accelerating deep network training by reducing internal covariate shift." arXiv preprint arXiv:1502.03167 (2015).
[2]. Frederik Kratzert. "Understanding the backward pass through Batch Normalization Layer", (2016).