このツールについて

2層パーセプトロンを拡張し、入力を2個(x, y)から3個(x, y, z)に増やしたニューラルネットワークの教材です。 3つの入力の組み合わせ全パターン(2³ = 8通り)に対して目標値 t が設定されており、このネットワークがそれをどこまで正しく分類できるようになるかを確認できます。

ツールを開く →

使い方

  1. 初期値を設定する:隠れ層h1・h2・出力層それぞれの重みとバイアス(合計11個)を数値入力欄で指定します。「初期値をランダム生成」でランダムな出発点を試すこともできます。
  2. 訓練データを確認・編集する:8パターンの入力 (x, y, z) と目標値 t が表に並んでいます。数値やtを直接編集でき、「データを初期値に戻す」でいつでも元の8パターンに戻せます。
  3. 1ステップずつ確認する:「1ステップ実行」(または「5ステップ実行」)を押すと、11個のパラメータすべてが誤差逆伝播法の勾配にもとづいて同時に更新されます。
  4. 自動で学習させる:「自動実行」を押すと、誤差2乗和が0.001未満になるか200回に達するまで自動的に更新が続きます。
  5. 構造図でテストする:テスト入力 x, y, z を自由に設定すると、隠れ層h1・h2・出力層それぞれの計算結果がその場で確認できます。
  6. 分類結果を確認する:「分類結果」の表では、8パターンそれぞれの出力値と判定(1/0/あいまい?)が色分け表示されます。「分類結果のグラフ」では、目標値と出力の近さを一目で比較できます。

各コントロールの役割

初期値 (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回で停止します。
分類結果テーブル各パターンの出力値と判定結果を表示します。判定が目標値と一致していれば緑、不一致なら赤、あいまいならオレンジで表示されます。

学習できる内容

① 入力の数が増えても仕組みは同じ

z21 = w211・x + w212・y + w213・z + b21, a21 = σ(z21)
z22 = w221・x + w222・y + w223・z + b22, a22 = σ(z22)
z31 = w311・a21 + w312・a22 + b31, a31 = σ(z31)

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か」を判断するために、このツールでは次のようなしきい値を使っています。

出力 a31 > 0.8 → 判定「1」
出力 a31 < 0.2 → 判定「0」
それ以外(0.2 〜 0.8) → 判定「?」(あいまい・まだ自信を持って判断できない)

学習が進んで誤差が小さくなるほど、出力は目標値である0または1に近づき、「?」判定の割合が減っていきます。分類結果テーブルのオレンジ色の「?」がどれだけ緑色の確定判定に変わっていくかを、学習の進み具合の目安として見ることができます。

④ 誤差逆伝播法:δの計算はパラメータの数によらず同じ形

δ31 = (a31 − t)・a31・(1 − a31)
δ21 = δ31・w311・a21・(1 − a21)  δ22 = δ31・w312・a22・(1 − a22)
∂C/∂w211 = Σ δ21・x  ∂C/∂w212 = Σ δ21・y  ∂C/∂w213 = Σ δ21・z  ∂C/∂b21 = Σ δ21

δ21, δ22 の計算式は2層パーセプトロンのときとまったく同じです。違うのは、δ21 から w211, w212, w213 の3つの勾配を計算するときに、x, y, z の3つの入力それぞれを掛け合わせる点だけです。入力の数だけ勾配の計算式が増えるが、計算のパターンそのものは変わらない——これが誤差逆伝播法の汎用性です。

⑤ 11個のパラメータと重みグラフ

「重みとバイアスの推移」グラフには11本の折れ線が表示されます。本数が多く見えにくいときは、上部の凡例で色と名前を確認しながら、特定のパラメータ(例えば出力層の3つ:w311, w312, b31)の動きに注目して見てみると、隠れ層と出力層で収束の速さが違う様子なども観察できます。