2つの入力 x, y から1つの出力を返す「単層パーセプトロン」に,論理演算のORゲート((1,1)→1,(1,0)→1,(0,1)→1,(0,0)→0)を学習させるインタラクティブな教材である. 重み w1, w2 とバイアス b を勾配降下法で少しずつ更新しながら,入力空間の中に「0と1を分ける境界線」がどうやって作られていくかを確認できる.
| 初期 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本引いても● と 〇 を完全には分けられない.
η を大きくしすぎると,1回の更新で重みが動きすぎて誤差がかえって増える(発散する)ことがある.逆に η を小さくしすぎると,収束するまでに非常に多くのステップが必要になる. η の値をいろいろ変えて「自動実行」を試し,収束の速さや安定性がどう変わるかを確認してみよう.
「重みとバイアスの推移」グラフでは,w1・w2・b の3本の折れ線が,学習が進むにつれてある値に落ち着いていく様子が見られる.「誤差2乗和 C の推移」グラフと合わせて見ると,誤差が下がりきったタイミングで重みの変化もほぼ止まっていることが確認できる.
ホーム>>カテゴリー別分類>>データ分析>>単層パーセプトロンツールの使い方と学習内容
最終更新日:2026年9月29日