前回は、「ディープラーニングの特徴と歴史」を学んできました。
今回は、ディープラーニングの「多層パーセプトロン」について学んでいきます。
多層パーセプトロンは、「重み」や「バイアス」、「活性化関数」を含めたユニットで形成されています。
ディープラーニングの内部の構造を理解しましょう。
ちょっと複雑ですが、細かい固有名詞を覚えれば概要を把握できます。
このブログは底辺フリーランスライターがG検定を取得して人生を変えようとする日記です。
目次
多層パーセプトロンの概要
多層パーセプトロンは、層状にユニットニューロンが並んでいて、隣接している層のみが結合します。
ユニットニューロンは、入力層と出力層、そしてその中間に中間層(隠れ層)が存在しています。
ニューラルネットワークは、目的変数の値を予測する回帰や、目的変数を分類する他クラス分類によく使われる手法です。
多層パーセプトロンは、基本的に入力層にデータを入力すると、その結果が出力層から出力されるように設計されています。
入力から出力に至るまでは、計算式で表現することができます。
多層パーセプトロンの入力から出力に関する計算式は以下の通りです。
x1×w1+x2×w2+x3×w3+b=u
f(u)=Z
この計算式の詳しい内容を解説していきましょう。
ユニットは、複数の入力を受け取り1つの値を出力します。
例えば、入力層の各x1~x3の3つの異なるデータを入力して、このx一つひとつに重みであるwを掛け算します。
すると合計で3つの値を得られます(x1×w1+x2×w2+x3×w3)。
ここに「バイアス(b)」を足した値(u)が出力されることになります。
この(u)に「活性化関数」である(f)によって変換されることによって次の層のユニット入力(Z)になります。
活性化関数
活性化関数は、ユニットにおける入力の総和を出力に変換する関数のことです。
先ほどの計算式では(f)に当たります。
活性化関数は出力層と中間層で使用されます。
出力層の活性化関数には、例えば以下の関数が使用されます。
単純パーセプトロン:ステップ関数
回帰:恒等関数
他クラス分類の出力層:ソフトマックス関数
ソフトマックス関数が使用されるのは、出力値の合計が「1」になるため出力を確立として解釈できるからです。
中間層の活性化関数には、「tanh関数(双曲線正接関数)」「シグモイド関数」などが利用されてきました。
「tanh関数(双曲線正接関数)」=出力範囲が「-1~1」までの値であり、微分の最大値が1。
シグモイド関数の微分最大値の0.25よりも大きいことから、tanh関数(双曲線正接関数)はシグモイド関数よりも勾配消失が起こりにくくなります。
※「勾配消失」の問題は次回の日記で学習します。
現在では、tanh関数(双曲線正接関数)よりもさらに勾配消失が起こりにくいように改善されている「ReLU」や「Maxout」なども利用されています。
「ReLU」:入力が0を超えていれば次の出力に渡して、0未満の場合は出力を0とする関数
「Maxout」:複数の線形関数を1つにした構造を持っていて、それらの中で最大値を出力する関数
誤差関数
入力値と訓練データを入れて、多層パーセプトロンに出力された値との近似値を評価するのに使用するのが誤差関数です。
多層パーセプトロンのモデルを構築しても、訓練データを入力して、出力される値がどのくらい正しいかを判断しなければいけません。
誤差関数を使用することによって、近似値を評価します。
そして、誤差が少なくなるような「重み」を求めるのが学習の目的です。
誤差関数でよく使われるのは以下の通りです。
回帰問題:平均二乗誤差関数
多クラス分類:交差エントロピー、誤差関数
自己符号化器:KLダイバージェンス
今回のテスト結果
今回のテスト結果に関しては、次回の「確率的最急降下法」を終了した時点がおこないます。
実際にディープラーニングの核心部分に近づいてきていますが、かなり難しいです。
細かい部分に目が行き過ぎになって、全体的な流れを把握できなくなるようなことは避けましょう。
ということで、次回は「確率的最急降下法」を学習して、ディープラーニングの概要を終わらせます。
これまでの、G検定・人工知能に関する学習はコチラを参考にしてください。