2層パーセプトロンを拡張し、入力を2個(x, y)から3個(x, y, z)に増やしたニューラルネットワークの教材です。 3つの入力の組み合わせ全パターン(2³ = 8通り)に対して目標値 t が設定されており、このネットワークがそれをどこまで正しく分類できるようになるかを確認できます。
ツールを開く →| 初期値 (11個) | 隠れ層h1(w211, w212, w213, b21)、隠れ層h2(w221, w222, w223, b22)、出力層(w311, w312, b31)の出発値です。入力が3個になった分、h1・h2それぞれの重みも3個ずつになっています。 |
|---|---|
| 学習率 η | 1回の更新でどれだけ大きくパラメータを動かすかを決めます(既定値5)。 |
| データ点 (x, y, z, t) | 8パターンの訓練データを編集できます。変更すると学習は自動的にリセットされます。 |
| 1ステップ実行 / 自動実行 | 誤差逆伝播法による更新を実行します。自動実行は誤差が十分小さくなるか200回で停止します。 |
| 分類結果テーブル | 各パターンの出力値と判定結果を表示します。判定が目標値と一致していれば緑、不一致なら赤、あいまいならオレンジで表示されます。 |
2層パーセプトロンでは入力が x, y の2個でしたが、ここでは x, y, z の3個に増えています。増えたのは各隠れ層ユニットに入る重みの本数(w213, w223 が追加)だけで、「重み付き和をとってシグモイド関数に通す」という計算の仕組み自体はまったく同じです。 このことから、ニューラルネットワークは入力の次元が増えても(画像のピクセル数のように何百・何千個になっても)同じ考え方で扱えることがわかります。
単層・2層パーセプトロンのページでは、2次元の入力 (x, y) をそのまま散布図に描き、決定境界を直線や曲線として重ねて表示できました。 しかしこのツールでは入力が x, y, z の3次元になっているため、境界を2次元のグラフに直接描くことができません。 そこで代わりに、8パターンすべての「目標値」と「実際の出力」を一覧表とグラフで並べて比較する方法で、学習の進み具合を確認できるようにしています。
出力 a31 は 0〜1 の連続的な値ですが、最終的に「0か1か」を判断するために、このツールでは次のようなしきい値を使っています。
学習が進んで誤差が小さくなるほど、出力は目標値である0または1に近づき、「?」判定の割合が減っていきます。分類結果テーブルのオレンジ色の「?」がどれだけ緑色の確定判定に変わっていくかを、学習の進み具合の目安として見ることができます。
δ21, δ22 の計算式は2層パーセプトロンのときとまったく同じです。違うのは、δ21 から w211, w212, w213 の3つの勾配を計算するときに、x, y, z の3つの入力それぞれを掛け合わせる点だけです。入力の数だけ勾配の計算式が増えるが、計算のパターンそのものは変わらない——これが誤差逆伝播法の汎用性です。
「重みとバイアスの推移」グラフには11本の折れ線が表示されます。本数が多く見えにくいときは、上部の凡例で色と名前を確認しながら、特定のパラメータ(例えば出力層の3つ:w311, w312, b31)の動きに注目して見てみると、隠れ層と出力層で収束の速さが違う様子なども観察できます。