深層学習day2
1.勾配消失問題
勾配消失問題とは、「誤差逆伝播法が下位層に進んでいくに連れて、勾配がどんどん緩やかになっていくため、勾配降下法による更新では下位層のパラメータはほとんど変わらず、訓練は最適値に収束しなくなる」現象を指す。活性化関数にシグモイド関数を適用した場合、勾配消失問題が発生しやすい。(参考 シグモイド関数の勾配最大値は、入力0の時の値、である。)
勾配消失問題の対策方法を以下に挙げる。
a.RELU関数
活性化関数勾配消失問題の回避とスパース化に貢献することで良い成果をもたらしている。
b.重みの初期値設定
Xavier:前の層のノード数がnであるとき、 重みの要素にで乗算した値。活性化関数はReLu、シグモイド(ロジスティック)関数、双曲線正接関数(tanh)。
He:前の層のノード数がnであるとき、 重みの要素にで乗算した値。活性化関数はReLu。
重みの初期値に0を設定すると、どのような問題が発生するか?
→ 全ての値が同じ値で伝わるため。パラメータのチューニングが行われなくなる。
c.バッチ正規化
ミニバッチ単位で入力値のデータの偏りを抑制する手法である。 中間層出力を正規化する処理を孕んだ層を加えることで、出力が常に平均0、分散1の分布に従うように強制する。
計算の高速化、勾配消失が起きづらくなるというメリットがある。
ミニバッチの平均と分散はそれぞれ以下の通り。
出力を以下の式で正規化する。
この正規化された出力を学習可能なスケーリングパラメータ 、シフトパラメータ で線形変換する。
活性化関数と重み初期値について、mnistの数字分類問題で精度を確認する演習を実施した。活性化関数がシグモイド関数で重み初期値で対策がない場合、勾配が消失し精度が上がらないが、活性化関数をRELU関数にするか、重み初期値でXavier、Heを選択すると、うまくパラメーター調整が機能する。
2.学習率最適化手法
勾配降下法の式において、学習率を[\tex \epsilon]いかに設定するかも重要な問題である。
学習率の値が大きい場合、最適値にいつまでもたどり着かず発散してしまう可能性がある。
逆に学習率の値が小さい場合、収束するまでに時間がかかってしまったり、大域局所最適値に収束しづらくなる。
そのため、以下に示す最適化手法が開発されている。
a.モメンタム
誤差をパラメータで微分したものと学習率の積を減算した後、現在の重みに前回の重みを減算した値と慣性の積を加算する。
メリットとしては、1)局所最適解にはならず、大域的最適解が得られやすい、2)谷間に着いてから最も低い位置(最適値)に行くまでの時間が早い、ことが挙げられる。
mnistの数字分類問題でモメンタムによる精度の違いを確認した。使用しない場合、精度は向上するがステップ数を要している。使用すると、600ステップでaccuracy=0.90前後まで到達している。
b.AdaGrad
誤差をパラメータで微分したものと再定義した学習率の積を減算する。勾配の緩やかな斜面に対して最適値に近づけることがメリットである。
c.RMSProp
誤差をパラメータで微分したものと再定義した学習率の積を減算する。大域的な最適解になり、ハイバーパラメータの調整が必要な場合が少ないことがメリットである。
d.Adam
モメンタムの、過去の勾配の指数関数的減衰平均、RMSPropの、過去の勾配の2乗の指数関数的減衰平均を含んだ最適化アルゴリズムである。それ故、モメンタムとRMSPropのメリットを持っている。
3.過学習
下図の右側のように、テスト誤差と訓練誤差とで学習曲線が乖離することである。
原因としては、ネットワークの自由度が高すぎるが故、学習に与えられたデータに対し、厳密に重みをあてはめすぎてしまうためである。その結果、汎用性が落ちてしまい、テストデータに対する精度が低下してしまう。
ネットワークの自由度を落として汎用性を高める手法として、以下が挙げられる。
a.L2ノルム(Ridge推定量)を使用
ペナルティとして学習モデルのパラメータの二乗の総和を用いる。データの大きさに応じて0に近づけて、滑らかなモデルとする。
b.L1ノルム(Lasso推定量)を使用
ペナルティとして学習モデルのパラメータの絶対値の総和を用いる。特定のデータの重みを0にする事で、不要なデータを削除する。
4.畳み込みニューラルネットワークの概念
a.畳み込み層
畳み込み層では、画像の場合、縦、横、チャンネルの3次元のデータをそのまま学習し、次に伝えることができる。その特性により、3次元の空間情報も学習が可能である。
特徴量を抽出するために以下の処理を実施する。
a-1.バイアス
各要素に同じ値を加算することを指す。
a-2.パディング
出力サイズを調整するため、畳み込み層の処理を行う前に、入力データの周囲に例えば0などの固定のデータを埋めることを意味する。
b.プーリング層
プーリング層では、画像内の局所的な情報をまとめる操作を行います。具体的には、Max Pooling(最大値抽出)とAverage Pooling(平均値抽出)と呼ばれる2種類のプーリング操作がよく使用されている。
c.全結合層
畳み込み層、およびプーリング層で3次元データになっているものを、1列に並べた1次元のベクトルにしたもの。ただし、画像に使用する場合RGBの各チャンネル間の関連性が、学習に反映されないため注意。
5.最近のCNN
AlexNetは畳み込み層→プーリング層→畳み込み層→プーリング層→畳み込み層→畳み込み層→畳み込み層→全結合層(3層)の構成である。全結合層の出力にドロップアウトを適用している。
Googleによって開発されたInception-v3は、ILSVRCという大規模画像データセットを使った画像識別タスク用に1,000クラスの画像分類を行うよう学習されたモデルで、非常に高い精度の画像識別を達成している。
さらにResNetでは、層をさらに多くする(超深層とも言う)ことで精度を向上させている。ResNetの特徴は、ある層で求める最適な出力を学習するのではなく、層の入力を参照した残差関数を学習する、ことである。