入力 x, y → 隠れ層(h1, h2)→ 出力層という2層構造のニューラルネットワークに,ANDゲート((1,1)→1,それ以外→0)を誤差逆伝播法で学習させるインタラクティブな教材である. 単層パーセプトロンでは直線1本しか作れないが,隠れ層を1つ挟むことで,曲がった決定境界を作れるようになる様子を確認できる.
| 初期値 (9個) | 隠れ層h1(w211, w212, b21),隠れ層h2(w221, w222, b22),出力層(w311, w312, b31)の出発値である. |
|---|---|
| 初期値をランダム生成 | 標準正規分布に従う乱数で9個のパラメータをすべて再設定する. |
| 学習率 η | 1回の更新でどれだけ大きくパラメータを動かすかを決める(既定値5). |
| データ点 (x, y, t) | 訓練データを編集できる.変更すると学習は自動的にリセットされる. |
| 1ステップ実行 / 5ステップ実行 | 誤差逆伝播法による更新を1回(または5回連続で)適用する. |
| 自動実行 / 停止 | 誤差が十分小さくなるか200回に達するまで更新を繰り返す. |
| テスト入力 (構造図) | 学習とは関係なく,現在のパラメータで任意の入力に対する各層の出力を試せる. |
| 最大 |Δparam| | 9個のパラメータの更新量のうち,最も大きいものの絶対値が出る.学習が収束するとこの値も0に近づく. |
入力 x, y はまず隠れ層の2つのユニット(h1, h2)にそれぞれ独立に入り,シグモイド関数を通った出力 a21, a22 が得られる. 出力層は,その a21, a22 を新たな入力として受け取り,さらにもう一度重み付き和とシグモイド関数を適用して最終出力 a31 を作る. 隠れ層がひとつ挟まることで,入力を一度変換してから判定するという,単層パーセプトロンにはできない処理が可能になる.
まず出力層の誤差 δ31 を計算し,それを出力層の重み(w311, w312)を使って隠れ層側に逆向きに伝えることで δ21, δ22 を求める. 「誤差逆伝播法」という名前は,このように出力側から入力側に向かって誤差の情報を順々に伝えていく計算の流れに由来している. それぞれの δ に入力値を掛けたものが,各パラメータをどちら向きにどれだけ動かすべきかを示す勾配(∂C/∂w211 など)になる.
単層パーセプトロンの決定境界は w1・x + w2・y + b = 0 という直線であった.2層パーセプトロンでは,隠れ層の2本の直線的な境界(h1, h2 それぞれが作る境界)を出力層がさらに組み合わせるため,最終的な決定境界(a31 = 0.5 の等高線)は曲線や,複数の領域に分かれた形になる. このツールの「入力空間と決定境界」グラフでは,直線ではなく曲線が描かれていることに注目してみよう.
たとえば,単層パーセプトロンでは分けられなかった XOR ゲート((0,0)→0, (1,1)→0, それ以外→1)も,隠れ層の2本の直線を使って帯状の領域を作ることで分離できる.下の概念図は,2本の直線(h1, h2 が作る境界)で挟まれた帯の内側だけを「1」と判定するイメージである.
単層パーセプトロンでは3個だったパラメータが,2層になると9個に増える.パラメータが増えるほど,初期値の選び方によって学習の進みやすさが変わりやすくなる.「初期値をランダム生成」を何度か試し,「重みとバイアスの推移」グラフの9本の線の動き方や,収束までのステップ数がそのたびに変わることを観察してみよう.
自動実行は,誤差2乗和 C が0.001を下回るか200回に達すると自動的に停止する.「最大 |Δparam|」(9個のパラメータの更新量のうち最大のもの)を合わせて見ると,誤差が下がりきるにつれてパラメータの動きもどんどん小さくなっていく様子が確認できる.
ホーム>>カテゴリー別分類>>データ分析>>2層パーセプトロンツールの使い方と学習内容
最終更新日:2026年9月29日