深層学習DAY1要約

Section1 入力層〜中間層

・入力を受け取る場所をノードと呼ぶ

・入力に対し、それぞれ重みを乗算し、線型結合する。それにより重要な情報は値を大きく、関係のないものは値を小さくすることができる。

・バイアスは一次関数でいうと、切片にあたる。

・入力と重みの線型結合とバイアスを足したものを活性化関数に入れることで出力を得られる。

 

Section2 活性化関数

・活性化関数とは、ニューラルネットワークにおいて、次の層への出力の大きさを決める非線形の関数。入力値の値によって、次の層への信号のON/OFFや強弱を定める働きを持つ。

 

・ステップ関数:入力がある閾値を超えると、出力値が1となる関数。入力値が閾値以下だと0を出力するので出力値は常に1か0。0−1の間が表現できず、線形分離可能なものしか学習できない

 

シグモイド関数:0〜1の間を緩やかに変化する関数。0〜1の間も表現することができ、更にすべての場所で微分可能。課題は大きな値では出力の変化が微小なため、勾配消失問題を引き起こすことがある。

 

・ReLU関数:勾配消失問題の回避と、スパース化に貢献する事で良い成果をもたらしている。

 

Section3) 出力層

・誤差関数:ニューラルネットワークの学習に用いられる。訓練データによって得られる出力と正解ラベルとの差異を表す。この誤差関数を最小化するようなパラメータを学習によって求める。一般的に分類問題では誤差関数として、クロスエントロピー関数が用いられる。

 

出力層の活性化関数:中間層と出力層では目的が異なる為、異なる活性化関数が用いられる。中間層の活性化関数は閾値の前後での信号の強弱を調整するのに対し、分類問題では出力層の出力を0〜1の範囲に限定し、総和を1とする確率分布として出力する。

 

恒等写像関数:入力をそのまま出力として返す関数。誤差関数は二乗誤差関数が用いられる。

 

シグモイド関数:二値分類に用いられる。誤差関数は交差エントロピーが用いられる。

 

ソフトマックス関数:多クラス分類に用いられる。すべての出力の総和は1となる。誤差関数は交差エントロピーが用いられる。

 

 

Section4 勾配降下法

・深層学習の目的は、学習を通して誤差を最小にするネットワークを作成する事である。そこで黄梅降下法を利用してパラメータを最適化する。

 

勾配降下法:誤差関数の最小値を探すために、

 

学習率:勾配に対して、どれくらい値を学習させるか(パラメータの値を変更するか)を決めるハイパーパラメータ。学習率が大きすぎると、解が発散する可能性がある。一方小さすぎると発散はしづらいが、更新値が小さすぎて学習が進まないデメリットがある。

 

確率的勾配降下法:全データからランダムに抽出したサンプルを学習に使用する。

毎回データが異なるので、局所極小解に陥りにくい、オンライン学習ができるというメリットがある。

※オンライン学習とは学習データが入ってくる度にパラメータを更新し、学習を進めていく手法。

 

ミニバッチ勾配降下法:バッチ学習では一度にすべてのデータを学習させていたが、

ランダムに分割したデータの集合に対して学習を行う。メリットとして、確率的降下法のメリットを損なわずに計算機の計算資源を有効活用できる。

 

Section5 誤差逆伝播

数値微分のデメリットとして、各パラメータに対して微小量変化させた際の順伝播計算を繰り返し行う必要がある。そのため計算負荷が大きくなるデメリットがある。

そのデメリットを解決するために、NNの微分計算には誤差逆伝播法が用いられる。数値微分によって勾配を算出するのではなく、解析的に勾配を計算する手法である。

微分を計算結果の出力と正解ラベルから逆算することができ、不要な再起的計算を避けて微分を算出できる。