レポート(深層学習ー1)


<前編1>
Section1:入力層~中間層
・入力層は、深層学習における情報(数値データ)の入り口あたる。この入力層の数値データに、それぞれに重みづけとして、バイアスを加えてから中間層に情報(数値データ)を伝達させる。

Section2:活性化関数
・入力層(もしくは1つ前の中間層)からわたされた数値データに対して、次の層への出力の大きさの判定を行う非線形関数が活性化関数である。中間層における活性化関数には、ReLU関数、シグモイド関数、ステップ関数が主に使われている。出力層の活性化関数には、ソフトマックス関数、恒等写像、シグモイド関数が主に使われる。

Section3:出力層
・出力層では、ニューラルネットワークから出力された値と実際の値(正解)との誤差(誤算関数)を求め、誤差を小さくする重み、バイアスを計算していく。(誤差逆伝播法)
・出力層の活性化関数は、回帰問題には恒等写像、二値分類にはシグモイド関数、多値分類にはソフトマックス関数が用いられる。また、誤算関数は、回帰問題には二乗誤差、分類問題には、交差エントロピーが用いられる。

Section4:勾配降下法
・勾配降下法とは、出力値と正解値との誤差を最小化する重みを見つけることが目的である。誤差関数の微分をとり、正負が変化した値での微分と学習率から次のxの値を求める。またその値xでの微分(傾き)を求めていく。これを繰り返して、誤差関数の最小値を求めていく。この場合、学習率の値がポイントとなり、学習率が小さいと、計算回数が増大し、最小値を見つけるまでに時間がかかる。逆に大きいと、最小値となるxの値に辿りつけず、発散してしまう問題がある。
・全データの平均誤差を最小にしていく方法が勾配降下法。ランダムに抽出したデータのの誤差を小さくしていくことを確率的勾配降下法。ランダムな集合体にデータをまとめて、その集合体のデータの平均誤差を小さくしていくことをミニバッチ勾配降下法という。

Section5:誤差逆伝播法
・出力層側での誤差を微分して、入力層側に重みを伝播させる方法。この手法を、全出力層、隠れ層に対して繰り返し行うことによって、ニューラルネットワーク内の全ての重みを、誤差関数が最小となるように変化させる。

<前編2>
Section1:勾配消失問題
・誤差逆伝播法において、下位層に近づくにしたがって、傾きが緩やかになり、勾配降下法では、収束しにくくなる。このことを勾配消失問題という。
・この問題に対する対策として、3つの方法が挙げられる。
①活性化関数をシグモイド関数からReLU関数にする。シグモイド関数では、0~1への変化が緩やかであるが、ReLU関数では、x=0を境に、負の場合は(ほぼ)0、正の場合はxの値を返すため、収束がしやすくなる。
②重みの初期値の設定方法を、重みの要素を前の層のノード数の平方根で除算した値、もしくは平方根で除算した値に√2を掛けた値とする。これは、重みの初期値を0にすると、全てのデータが同じ値で次の層に渡されるため、収束しにくくなることを防ぐためである。
③バッチの正規化
ミニバッチ単位でデータの偏りを抑制する方法で、活性化関数に渡す前後に処理を加える。

Section2:学習率最適化手法
・学習率は、勾配降下法の際に述べたとおり、大きくすると収束しなくなり、小さくすると収束に時間がかかる。よって、計算初期の学習率を大きくし、徐々に小さくしていくと、局所最適値に辿りつきやすい。その手法を学習率最適化手法という。
①モメンタム:誤差をパラメータで微分したものと学習率の積を減算した後、現在の重みに前回の重みを減算した値と慣性の積を加算する。
②AdaGrad:誤差をパラメータで微分したものと再定義した学習率の積を減算する。
③RMSProp:誤差をパラメータで微分したものと再定義した学習率の積を減算する。
④Adam:モメンタムとRMSPropの両方を含んだ手法で、一般的によく使われる。

Section3:過学習
・訓練誤差と検証誤差の学習曲線が乖離する状態を過学習という。訓練データでの学習時に、パラメータの数を多い場合やノードが多い場合、訓練データに合わし込み過ぎて、訓練データに特化した構成となっている。そのため、検証データでの誤差が、訓練データでの誤差より大きくかい離する形となる。

Section4:畳み込みニューラルネットワークの概念
・畳み込みニューラルネットワーク(以下CNN)の構造は、例として、入力画像→畳み込み層→畳み込み層→プーリング層→畳み込み層→畳み込み層→プーリング層→全結合層→出力層、となる。
・畳み込み層では、切り出した入力画像に対しフィルターを使って画像の特徴量を出力値とし、バイアスを加えて活性化関数を使って出力画像を求める。その画像を切り出す際、入力画像の最外層にパディングの値分だけ画素数を増やし、フィルターをストライドの値に合わせてずらして切り出していく。そうやって切り出した画像の特徴量を出力していく。
・プーリング層では、入力画像から取り出した対象領域を、MAXプーリングなら値の最大値を、平均プーリングなら平均値を出力値とする。

Section5:最新のCNN
・2012年に開催された画像認識コンペティション(ILSVRC)で、AlexNetが1位となった。この画像認識ソフトが、ディープラーニングを使っていたことで、注目が集まった。その時のAlexNetのモデルは、5層の畳み込み層とプーリング層、3層の全結合層から構成されていた。
・その後も画像認識ソフトの精度は飛躍的に伸び、2014年に公開されたVGGNetは、16層や19層もの深い層構造であって学習を収束させ、認識精度が向上することが確認された。また、2015年のResNetでは、出力ターゲットを入力との残差で表すResidual Blockを使用し、100層を超える深さのネットワークを実現した。