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

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

■このツールについて

2つの入力 x, y から1つの出力を返す「単層パーセプトロン」に,論理演算のORゲート((1,1)→1,(1,0)→1,(0,1)→1,(0,0)→0)を学習させるインタラクティブな教材である. 重み w1, w2 とバイアス b を勾配降下法で少しずつ更新しながら,入力空間の中に「0と1を分ける境界線」がどうやって作られていくかを確認できる.

■使い方

  1. 訓練データを確認する
    左側の表に4つの入力パターン (x, y) と目標値 t が並んでいる.表の数値を編集したり,グラフ上の点をドラッグしたり,t の欄の●/〇ボタンをクリックしたりして,自由にデータを変更できる(変更すると学習は最初からやり直しになる).
  2. 初期値・学習率を設定する
    初期 w1, w2, b と学習率 η を数値入力欄で指定できる.「初期値をランダム生成」で毎回違う出発点から学習を試すこともできる.
  3. 1ステップずつ確認する
    「1ステップ実行」(または「5ステップ実行」)を押すたびに,誤差逆伝播法で計算した勾配にもとづいて w1, w2, b が更新される.
  4. 自動で学習させる
    「自動実行」を押すと,200回に達するまで自動的に更新が繰り返される.
  5. 構造図でテストする
    一番上の「単層パーセプトロンの構造」では,任意のテスト入力 x, y を入力すると,その場で z・出力 a の値が計算されて表示される.
  6. 4つのグラフを見比べる
    入力空間と決定境界(直線がデータをどう分けているか),分類結果のグラフ(各データの目標値と実際の出力の近さ),誤差2乗和の推移,重み・バイアスの推移をそれぞれ確認できる.

●各コントロールの役割

初期 w1 / w2 / b「リセット」時に適用される重み・バイアスの出発値である.
初期値をランダム生成標準正規分布に従う乱数で w1, w2, b を再設定する.
学習率 η1回の更新でどれだけ大きく重みを動かすかを決めるパラメータである.
データ点 (x, y, t)訓練データそのものを編集できる.ドラッグ・数値入力・t の切り替えのいずれでも変更でき,変更すると学習は自動的にリセットされる.
1ステップ実行 / 5ステップ実行誤差逆伝播法による更新を1回(または5回連続で)適用する.
自動実行 / 停止200回に達するまで,または「停止」を押すまで更新を繰り返す.
リセットw1, w2, b を初期値に戻し,各グラフの履歴をクリアする.
テスト入力 (構造図)学習とは関係なく,現在の重みで任意の入力に対する出力を試すことがでる.

■学習できる内容

① パーセプトロンの仕組み

パーセプトロンは,複数の入力それぞれに重みを掛けて足し合わせ,さらにバイアスを加えた値(z)を,活性化関数に通して出力を作る,脳の神経細胞をごく単純化したモデルである.

z = w1・x + w2・y + b

a = σ(z) = 1 ÷ (1 + e−z) (シグモイド関数)

シグモイド関数は,どんな実数値の z を入れても,出力 a を必ず 0 〜 1 の範囲に収めてくれる.これにより出力を「0らしさ・1らしさ」の確率のように扱うことができ,かつ関数全体がなめらかに変化する(微分できる)ため,勾配降下法での学習が可能になる.

② 誤差逆伝播法による学習

誤差:C = Σ (1/2)(t − a)²

δ = (a − t)・a・(1 − a)

∂C/∂w1 = Σ δ・x  ∂C/∂w2 = Σ δ・y  ∂C/∂b = Σ δ

Δw = −η・∂C/∂w

δ は「出力の誤差」と「シグモイドの傾き」を掛け合わせたもので,この出力がどれだけ・どちらの方向に間違っているかを表す.δ に各入力を掛けたものが,それぞれの重みをどちらへ動かすべきかを示す勾配になる. 4つのデータすべてについて勾配を計算して合計し,学習率 η をかけた分だけ重みを更新する——これが「1ステップ」の中身である.

③ 決定境界とは何か

z = w1・x + w2・y + b = 0 を満たす点の集まりは,入力空間の中で1本の直線になる.この直線を境目にして,片側では z>0(出力が1に近づく),反対側では z<0(出力が0に近づく)となる. 「入力空間と決定境界」のグラフに表示されている直線がまさにこれで,学習が進むにつれて,● (目標値1)と 〇(目標値0)をきれいに分ける位置まで直線が動いていく様子が見られる.

④ 単層パーセプトロンの限界:線形分離可能性

単層パーセプトロンが作れる境界線は「直線1本」だけである.そのため,1本の直線でうまく分けられるデータ(線形分離可能)にしか対応できない. ORゲートは下の左図のように直線1本で分けられるが,XORゲート((0,0)→0, (1,1)→0, それ以外→1)は右図のように,どんなに直線を1本引いても● と 〇 を完全には分けられない.

OR ゲート:線形分離できる ✓

XOR ゲート:線形分離できない ✗

ここがポイント: このORゲートの例は単層(1層)のパーセプトロンで学習できるが,XORのように直線1本で分けられない問題は,単層パーセプトロンでは原理的に解けない.これを解決するには,隠れ層を追加した「2層パーセプトロン」が必要になる(2層パーセプトロン で扱っている).

⑤ 学習率 η の影響

η を大きくしすぎると,1回の更新で重みが動きすぎて誤差がかえって増える(発散する)ことがある.逆に η を小さくしすぎると,収束するまでに非常に多くのステップが必要になる. η の値をいろいろ変えて「自動実行」を試し,収束の速さや安定性がどう変わるかを確認してみよう.

⑥ 重み・バイアスの収束の様子

「重みとバイアスの推移」グラフでは,w1・w2・b の3本の折れ線が,学習が進むにつれてある値に落ち着いていく様子が見られる.「誤差2乗和 C の推移」グラフと合わせて見ると,誤差が下がりきったタイミングで重みの変化もほぼ止まっていることが確認できる.

 

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

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