ニューラルネットワーク
Self-Attention機構(自己注意機構)を利用したモデルである。再帰型ニューラルネットワークの代替として考案された。
従来の自然言語処理用モデルに比べ計算量が少なく構造も単純なため、自然言語処理に使われることが多い。
ここでは、3層フィードフォワードニューラルネットワークで回帰を実装する。 x = [ − 1 , 1 ] {\displaystyle x=[-1,1]} において、 y = 2 x 2 − 1 {\displaystyle y=2x^{2}-1} を学習する。活性化関数はReLUを使用。学習は、確率的勾配降下法でバックプロパゲーションを行う。
3層フィードフォワードニューラルネットワークのモデルの数式は以下の通り。X が入力、Y が出力、T が訓練データで全て数式では縦ベクトル。 ψ {\displaystyle \psi } は活性化関数。 W 1 , W 2 , B 1 , B 2 {\displaystyle W_{1},W_{2},B_{1},B_{2}} が学習対象。 B 1 , B 2 {\displaystyle B_{1},B_{2}} はバイアス項。
Y = W 2 ψ ( W 1 X + B 1 ) + B 2 {\displaystyle Y=W_{2}\psi (W_{1}X+B_{1})+B_{2}}
誤差関数は以下の通り。誤差関数は出力と訓練データの間の二乗和誤差を使用。
E = 1 2 ‖ Y − T ‖ 2 {\displaystyle E={\frac {1}{2}}\|Y-T\|^{2}}
誤差関数 E {\displaystyle E} をパラメータで偏微分した数式は以下の通り。肩についてる T は転置行列。 ∘ {\displaystyle \circ } はアダマール積。
敵対的生成ネットワーク (Generative Adversarial Network, GAN) とは、ガウシアン等の確率分布から得られたノイズをネットワークA (Generator) がデータへ変換し、ネットワークBが母集団からサンプリングされたデータとネットワークAの出力を見分けるように学習するモデルである。DCGANやStyleGAN、BigGANがその例である。
バッチ正規化(英: Batch Normalization)は学習時のミニバッチに対する正規化である。バッチ正規化レイヤー/BNでは学習時にバッチ内統計量(平均μ, 分散σ)を計算し、この統計量により各データを正規化する。その上で学習可能パラメータ (β, γ) を用いて y = γX+βの線形変換をおこなう。これにより値を一定のバラツキに押し込めた上で柔軟に線形変換することができる。
CNNの場合、各チャネルごとにバッチ正規化処理がおこなわれる。バッチ方向ではない正規化手法も様々提案されており、Layer Norm・Instance Norm・Group Normなどがある。また正規化時のβ・γを計算から求めたりNN(β)・NN(γ)で表現する手法も存在する。