
書記が数学やるだけ#779 勾配消失問題・正則化の手法
前回の続きとして,勾配消失問題の解決法・ニューラルネットワークの汎化性能を向上させるテクニックを簡単にまとめておく。
問題
ここでは関係のありそうな入試問題をいくつか取り上げることにする。

説明
勾配消失問題は,勾配ベースの学習手法と誤差逆伝播法を利用してニューラルネットワークを学習する際に、誤差逆伝播に必要な勾配が非常に小さくなり学習が制御できなくなる問題である。これは深層学習の「第2の冬の時代」の要因となった。
解決法は多数あるが,今回は重みの初期値の設定を見ていくことにする。

勾配消失あるいは重みの偏りを無くすために,中間層のノードの個数に応じた標準偏差を持つ分布を使うといった方法が取られた。よく知られているものとして,Xavier初期化とHe初期化があげられる。

次に汎化性能を向上させる技術を紹介する。
機械学習では予測する能力が重要であり,手持ちのデータだけで最適化するとうまく予測できなくなる(過学習)。

このような現象が見られる背景にはバイアス-バリアンストレードオフが挙げられる。

なお,近年はパラメータを増やした時に再びテスト誤差が小さくなる二重降下(Double Descent)という現象も確認されている。

正則化は,アルゴリズムの修正により汎化誤差をできる限り小さくする手法の総称(ここでは広義の意味を採用)であり,以下の手法が例として挙げられる。

L1正則化・L2正則化は,損失関数にパラメータ数に応じた罰則項を設けることで重みに制約を加える。

回帰分析での文脈は以前に触れた:

ドロップアウトは,ランダムにユニットを除いてできるネットワークをアンサンブルする方法である。

Batch Normalizationは中間層出力を正規化する方法で,特にCNNにおいて成功した手法である。

以下の計算グラフが理解できれば実装も難しくない。

解答
シグモイド関数の微分の最大値について,相加相乗平均を用いると容易に求められる。ここで,シグモイド関数は0か1かの値をとる範囲が比較的広く,微分した値も小さい値を取ることが多いことから,深層学習において勾配消失を引き起こすと考えられる。これは活性化関数にReLU関数を用いることで解消される。

続いてバイアス-バリアンス分解の導出について。数理統計学の基本なので一度は導出しておく。

標準化(Standardization)と正規化(Normalization)という用語は,機械学習においては同一視されることがあるので注意。
偏差値とは平均を10・分散を10^2とするスケーリング手法であり,標準化の一種と言える。計算過程に慣れておくとよい。

本記事のもくじはこちら: