#Section1:入力層~中間層
入力層の各値(入力値)に重みWを掛けて、バイアスbを足した値が、総和uとして中間層の第1層目の各ノードに渡される。
渡された総和uは、活性化関数fを通して、zが吐き出され(z=f(x))、この値が、ノードの出力値となり、次の層のノードに入力値として渡される。
#Section2:活性化関数
中間層の活性化関数は、
ReLU、シグモイド(ロジスティック)関数、ステップ関数などがある。
ステップ関数は、0または1しか表現出来ないため、0~1間の数値を表現出来ず線形分離可能なものしか学習出来ない。
シグモイド関数は、ステップ関数に比べて改善はしたが、ものすごく小さな入力値の場合、出力は限りなく0に近い正値になるため、勾配消失問題を引き起こす事がある。
ReLUは、今最も使われている活性化関数(万能という訳ではない)。
出力層の活性化関数は、
ソフトマックス関数、恒等写像、シグモイド(ロジスティック)関数などがある。
活性化関数によって、各ノードの出力は、弱く伝播したり、強く伝播したりする(強い方が、重要な情報)。
#Section3:出力層
出力層の役割は、出力された値を人間が見て、何らかの情報が得られるものになっている(中間層までの出力値は、人間が見ても、どう評価すればいいのか理解出来ない)。
例えば、分類の場合は、各クラスの確率が出力値になっていたりする。
###3-1 誤差関数
正解値と出力値との誤差を評価する関数。
この誤差を小さくしていく事が学習の目標。
回帰問題の場合は、二乗誤差
分類問題の場合は、交差エントロピーなどが使われる。
###3-2 出力層の活性化関数
Section2でも触れたように、中間層と出力層の活性化関数は異なる。
出力層では、恒等写像、シグモイド関数、ソフトマックス関数などが使われる。
中間層では、閾値の前後で、信号の強弱を調整しているのに対して、
出力層では、信号の大きさ(比率)はそのまま変換する。
分類問題では、出力層の出力は0~1の範囲の値で、全ての分類の出力値を合計すると1になるようにする必要がある(確率なので、合計すると100%にしないといけない)。
回帰 | 二値分類 | 多クラス分類 | |
---|---|---|---|
活性化関数 | 恒等写像 | シグモイド関数 | ソフトマックス関数 |
誤差関数 | 二乗誤差 | 交差エントロピー | 交差エントロピー |
#Section4:勾配降下法
そもそも深層学習の目的として、学習と通して重みWを調整して、正解との誤差を最小にするネットワークを作成する事になる。
そこで勾配降下法を利用して、重みWを最適化していく事になる。
勾配降下法は、下記の式で定義される:
$w^{(t+1)} = w^{(t)} - \varepsilon \mathrm{\nabla} E$, $\mathrm{\nabla} E= \dfrac{\partial E}{\partial w} = [\dfrac{\partial E}{\partial w_1},...,\dfrac{\partial E}{\partial w_M}]$
つまり勾配の下がる方向に対して、学習率εを掛けた値を更新する事になる。
εが大きすぎると、更新量が大きすぎて、最小値にいつまでもたどり着けずに発散してしまう。
εが小さすぎると、更新値が小さすぎて、最小値にたどり着くまでに時間が時間がかかる。
また学習率が小さすぎる場合は、大域的極小解までたどり着けず、途中の小さなくぼみで学習が収束してしまう事がある。
#####確率的勾配降下法(SGD):
勾配を計算して、学習率を掛けて減算するというところは、勾配降下法と同じ。
違いは、勾配降下法では、全サンプルに対して、パラメータの更新を行っていたのに対して、SGDでは、ランダムに抽出したサンプルデータに対して、パラメータの更新を行う。
確率的勾配降下法 | 勾配降下法 |
---|---|
ランダムに抽出したサンプルの誤差 | 全サンプルの平均誤差 |
#####SGDのメリット:
・データが冗長な場合に、計算効率が向上し、学習が早く実行出来る
・望まない局所極小解に収束するリスクを減らせる(但し、必ずしもリスクはゼロではない)
・オンライン学習が出来る
・パラメータの更新が小刻みに行われるので、学習の途中経過を確認する事が出来る
#####ミニバッチ勾配降下法:
勾配を計算して、学習率を掛けて減算するというところは、勾配降下法やSGDと同じ。
イメージとしては、勾配降下法とSGDの中間的な処理。
全サンプルを一度に学習するのではなく、サンプルをいくつかの集合(ミニバッチ)に分けて、その集合ごとに学習をしていく。
ミニバッチ勾配降下法 | 確率的勾配降下法 | 勾配降下法 |
---|---|---|
ランダムに分割したデータの集合(ミニバッチ)Dtに属するサンプルの平均誤差 | ランダムに抽出したサンプルの誤差 | 全サンプルの平均誤差 |
#####ミニバッチ勾配降下法のメリット:
・確率的勾配降下法のメリットを損なわず、計算機の並列計算資源を有効利用出来る。
#Section5:誤差逆伝播法
誤差逆伝播法(back propagation)とは、算出された誤差を、出力層側から入力層側に向かって、順番に微分して、前の層→前の層への微分の計算を連鎖律を使って伝播させていく方法。
最小限の計算で、各パラメータの微分値を解析的に計算する方法。
発生した誤差に対して、前層での出力が強いノードが大きく更新される事になる。
訓練データは、入力層→出力層に向かって、計算されて行くのに対して(順伝播)、逆方向に計算が進む事で、逆伝播という言葉で呼ばれる。