2層パーセプトロンツールの使い方と学習内容

2層パーセプトロンツールの使い方と学習内容

このツールについて

入力 x, y → 隠れ層(h1, h2)→ 出力層という2層構造のニューラルネットワークに,ANDゲート((1,1)→1,それ以外→0)を誤差逆伝播法で学習させるインタラクティブな教材である. 単層パーセプトロンでは直線1本しか作れないが,隠れ層を1つ挟むことで,曲がった決定境界を作れるようになる様子を確認できる.

使い方

  1. 初期値を設定する
    隠れ層h1・h2・出力層それぞれの重みとバイアス(合計9個)を数値入力欄で指定できる.「初期値をランダム生成」でランダムな出発点から学習を試すこともできる.
  2. 訓練データを確認・編集する
    4つの入力パターンをグラフのドラッグや表の数値入力,t の●/〇ボタンで自由に変更できる.「データを初期値に戻す(AND)」でいつでも元に戻せる.
  3. 1ステップずつ確認する
    「1ステップ実行」(または「5ステップ実行」)を押すと,誤差逆伝播法で計算した9個の勾配にもとづいて全パラメータが同時に更新される.
  4. 自動で学習させる
    「自動実行」を押すと,誤差2乗和が0.001未満になるか200回に達するまで自動的に更新が続く.
  5. 構造図でテストする
    一番上の構造図で任意のテスト入力 x, y を試すと,隠れ層 h1・h2・出力層それぞれの z と a の値がその場で計算されて表示さる.
  6. 5つのグラフを見比べる
    入力空間と決定境界(曲線がどう変化するか),分類結果のグラフ,誤差2乗和の推移,9個の重み・バイアスの推移をそれぞれ確認できる.

各コントロールの役割

初期値 (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に近づく.

学習できる内容

① 2層ネットワークの構造と順伝播

隠れ層 z21 = w211・x + w212・y + b21, a21 = σ(z21)
z22 = w221・x + w222・y + b22, a22 = σ(z22)
出力層 z31 = w311・a21 + w312・a22 + b31, a31 = σ(z31)

入力 x, y はまず隠れ層の2つのユニット(h1, h2)にそれぞれ独立に入り,シグモイド関数を通った出力 a21, a22 が得られる. 出力層は,その a21, a22 を新たな入力として受け取り,さらにもう一度重み付き和とシグモイド関数を適用して最終出力 a31 を作る. 隠れ層がひとつ挟まることで,入力を一度変換してから判定するという,単層パーセプトロンにはできない処理が可能になる.

② 誤差逆伝播法(バックプロパゲーション)

δ31 = (a31 − t)・a31・(1 − a31)  (出力層の誤差)
δ21 = δ31・w311・a21・(1 − a21)  (h1に伝わってきた誤差)
δ22 = δ31・w312・a22・(1 − a22)  (h2に伝わってきた誤差)

まず出力層の誤差 δ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」と判定するイメージである.

試してみよう: 2層パーセプトロン のデータ点をXORのパターン((1,1)と(0,0)をt=0(〇),(1,0)と(0,1)をt=1(●))に編集してから「自動実行」すると,単層パーセプトロンでは不可能だった分類を,この2層ネットワークが実際に学習できることを確認できる.

④ 9個のパラメータを同時に更新する難しさ

単層パーセプトロンでは3個だったパラメータが,2層になると9個に増える.パラメータが増えるほど,初期値の選び方によって学習の進みやすさが変わりやすくなる.「初期値をランダム生成」を何度か試し,「重みとバイアスの推移」グラフの9本の線の動き方や,収束までのステップ数がそのたびに変わることを観察してみよう.

⑤ 誤差2乗和グラフと「最大 |Δparam|」の関係

自動実行は,誤差2乗和 C が0.001を下回るか200回に達すると自動的に停止する.「最大 |Δparam|」(9個のパラメータの更新量のうち最大のもの)を合わせて見ると,誤差が下がりきるにつれてパラメータの動きもどんどん小さくなっていく様子が確認できる.

 

ホーム>>カテゴリー別分類>>データ分析>>2層パーセプトロンツールの使い方と学習内容

最終更新日:2026年9月29日