単純パーセプトロン入門:線形分類の基礎と学習則を解説
単純パーセプトロンとは — 概要
単純パーセプトロン(Perceptron)は、1950年代に Frank Rosenblatt により提案された最も基本的なニューラルネットワーク要素の一つで、二値分類を行う線形分類器です。入力ベクトルと重みベクトルの内積にバイアス(しきい値)を加え、その正負によってクラスを判定します。構造が単純で計算コストが低く、機械学習やニューラルネットワーク研究の歴史的出発点として重要です。
数学的定義
入力を x = (x1, x2, ..., xn)、重みを w = (w1, w2, ..., wn)、バイアスを b とすると、単純パーセプトロンの出力 y は次のように定義されます。
- 線形合成 z = w・x + b
- 活性化関数(ステップ関数)φ(z) = {1(または +1) if z > 0; 0(または -1) otherwise}
- よって y = φ(w・x + b)
出力ラベルの表現は実装により {0,1} や {-1,+1} のどちらでも扱えますが、学習規則の式が変わるため注意が必要です。
学習規則(パーセプトロン学習則)
最も基本的な学習法は「パーセプトロン学習則」です。各訓練サンプル (x, t)(t は正解ラベル)について、予測 y を計算し、誤分類があれば重みを修正します。学習率 η (>0) を用いると更新は次の通りです。
- w ← w + η (t - y) x
- b ← b + η (t - y)
ここで t,y が {-1,+1} 表現の場合は w ← w + η t x(正しく分類されていないときのみ更新)と簡潔に表せます。アルゴリズムはオンライン更新(サンプルごと)またはエポック単位で繰り返されます。
幾何学的解釈
パーセプトロンは特徴空間において超平面(hyperplane)を学習します。w・x + b = 0 が決定境界であり、w はその境界に垂直な法線ベクトルを表します。したがって、線形分離可能なデータセットに対しては一つの直線(2次元)や平面(3次元)でクラスを分けられますが、非線形な境界を持つ問題は分離できません(例:XOR問題)。
収束性と限界
パーセプトロン収束定理は、訓練データが線形に分離可能であれば、パーセプトロン学習則は有限回の更新で誤分類が0になる重みを見つけることを保証します。ただし、実データが線形分離不可能な場合、アルゴリズムは収束せず永久に更新を続ける可能性があります。
歴史的には、Minsky と Papert(1969)の著書「Perceptrons」により、単純パーセプトロンが排他的論理和(XOR)などを解けないことが指摘され、当時のニューラルネットワーク研究の停滞に影響を与えました。この制限は多層パーセプトロン(MLP)や誤差逆伝播法の登場で克服され、非線形表現力を得られるようになりました。
実装上の注意点と改良
- 学習率 η:大きすぎると発散、小さすぎると収束が遅い。経験的に小さな正の値を用いる。
- データのスケーリング:入力特徴量を正規化/標準化すると学習が安定する。
- 初期値:重みの初期化は小さい乱数やゼロから始めることが多いが、ゼロ初期化でも学習は進む。
- 非線形データへの対処:線形でない問題には特徴変換(多項式特徴やカーネル法)や多層ネットワークを検討する。
- 変種:Averaged Perceptron(重みの平均を利用する)、Pocket Algorithm(線形分離しないデータで良い解を保持する)、確率的手法との組合せなどがある。
パーセプトロンと他手法の比較
パーセプトロンは線形分類器という点でロジスティック回帰や線形SVMと近縁ですが、次の違いがあります。
- 損失関数:パーセプトロンは誤分類に対して単純な更新規則を用いる(明示的な確率モデルを持たない)。ロジスティック回帰は対数尤度(確率的解釈)を最大化する。
- マージン最大化:SVM は分離線とデータ間のマージンを最大化するのに対し、パーセプトロンはマージン最大化を保証しない。
- オンライン学習適性:パーセプトロンはオンライン更新が自然であり、大規模/ストリーミングデータに適している。
応用と現代的意義
単純パーセプトロン自体は表現力が限られるため、現代の複雑なタスクで単独で用いられることは稀ですが、以下の点で重要です。
- 深層学習やニューラルネットワークの教育的出発点。基礎的な概念(重み、バイアス、活性化、学習規則)を理解するのに適している。
- オンライン学習や大規模線形分類問題での実用性。一部の高速線形分類器(例:Vowpal Wabbit)は同様のアイデアを活用している。
- 特徴設計や前処理が良ければ単純な線形分類器でも高性能を発揮するケースがある。
簡単なアルゴリズム手順(擬似)
- 初期化:w ← 0(または小さな乱数)、b ← 0
- 反復(エポック): 指定回数または収束するまで繰り返す
- 各サンプル (x, t) について:
- 予測 y = sign(w・x + b)
- もし y ≠ t なら w ← w + η t x、 b ← b + η t を行う
- 停止条件:誤分類がゼロ、あるいはエポック上限に達したら終了
まとめ — いつ使うべきか
単純パーセプトロンは「線形に分離可能な二値分類」を扱う場面で単純かつ高速に動作します。教育用途や基礎的理解、ストリーミングデータや大規模線形問題のベースラインとして有用です。一方で、非線形問題や確率的出力が必要な場合、ロジスティック回帰、SVM、あるいは多層パーセプトロン(ニューラルネット)などの手法を検討すべきです。
参考文献
- Perceptron — Wikipedia
- Rosenblatt, F. (1958). The perceptron: A probabilistic model for information storage and organization in the brain.(歴史的背景の概説)
- Minsky, M., & Papert, S. (1969). Perceptrons. MIT Press.
- Goodfellow, Bengio, & Courville. Deep Learning (オンライン版)
- scikit-learn: Perceptron (実装と使い方の参考)
- Pocket algorithm — Wikipedia(線形分離しない場合の変種)


