この章で分かること

パーセプトロン(1958年)は「入力に重みを掛けて足し、しきい値を超えたら 1、超えなければ 0」を出すだけの、最も単純なニューロンのモデルです。 この章では、点を 2 色に分ける問題を使って、重みを少しずつ直して直線を動かす学習の様子を見ます。
ことばの意味(タップで開閉)
  • 重み(weight, w):各入力をどれだけ重視するかを表す数。学習で変わる。
  • バイアス(bias, b):しきい値を動かすための「下駄」。これも学習で変わる。
  • 決定境界:出力が 0 と 1 で切り替わる線。2 入力なら w1·x1 + w2·x2 + b = 0 の直線。
  • エポック:訓練データを 1 周すること。
// パーセプトロンの計算(1 個のニューロン) z = w1*x1 + w2*x2 + b y = (z > 0) ? 1 : 0 // 学習則:間違えたときだけ重みを直す w ← w + 学習率 × (正解 − 出力) × 入力

体験①:学習の様子を見る

点をクリックすると、そこに新しい点を追加できます(Shift を押しながらで赤)。背景色は現在の出力(青=1、赤=0)、黒線が決定境界。

エポックごとの正答率

w1w2bエポック正答率
---0-
試してみよう:XOR を選んで自動学習すると、何エポック回しても正答率が 100% になりません。 理由は、XOR の青と赤を1 本の直線では分けられないから。これが 1969 年にパーセプトロン研究が止まった理由であり、次章の MLP が生まれた動機です。

体験②:手で重みを動かす

スライダーを動かすと体験①の直線が直接動きます。学習とは「このスライダーをデータに合わせて自動で調整すること」です。

コードで動かす

パーセプトロンの学習ループを Python 風に書きました。問題(AND / XOR など)、学習率、ステップ数を書き換えて実行すると、上の図も一緒に更新されます。

小テスト