パーセプトロン

「パーセプトロン(Perceptron)」は、教師あり学習における分類(Classification)問題を解決するための最も基本的な線形分類アルゴリズムの一つです。1958年にFrank Rosenblattによって提案されました。以下に、パーセプトロンの理論的背景、アルゴリズム、利点と限界について詳しく説明します。


1. パーセプトロンの概要

パーセプトロンは、入力ベクトルに対して重み付き和を計算し、その結果を閾値関数(活性化関数)に通して**2値の出力(0または1)**を出します。これは、線形分離可能な2クラス分類問題を対象としています。


2. 数学的定式化

入力ベクトルを

x=(x1,x2,,xn)\mathbf{x} = (x_1, x_2, \dots, x_n)

重みベクトルを

w=(w1,w2,,wn)\mathbf{w} = (w_1, w_2, \dots, w_n)

バイアス(閾値)を

bb

とすると、パーセプトロンの出力 yy は次のように定義されます。

y=f(wx+b)y = f(\mathbf{w} \cdot \mathbf{x} + b)

ここで ff は**ステップ関数(Heaviside関数)**であり、

f(z)={1if z>00otherwisef(z) = \begin{cases} 1 & \text{if } z > 0 \\ 0 & \text{otherwise} \end{cases}


3. 学習アルゴリズム(パーセプトロン学習規則)

学習は以下のように進みます:

ステップ1:初期化

重み w\mathbf{w} とバイアス bb をランダムに(あるいは0に)初期化。

ステップ2:学習反復

各訓練データ (x(i),t(i))(\mathbf{x}^{(i)}, t^{(i)}) に対して:

  1. 出力 y(i)=f(wx(i)+b)y^{(i)} = f(\mathbf{w} \cdot \mathbf{x}^{(i)} + b) を計算

  2. 誤差 e(i)=t(i)y(i)e^{(i)} = t^{(i)} – y^{(i)} を計算

  3. 重みとバイアスを更新:

w:=w+ηe(i)x(i)\mathbf{w} := \mathbf{w} + \eta \cdot e^{(i)} \cdot \mathbf{x}^{(i)}
b:=b+ηe(i)b := b + \eta \cdot e^{(i)}

ここで η\eta は学習率(0 < η ≦ 1)。

ステップ3:収束まで繰り返す

全てのデータで正しく分類されるまで繰り返す(ただし、線形分離可能な場合に限る)。


4. 特徴と性質

  • 線形分離可能なデータに対しては、有限回の反復で必ず収束する(パーセプトロン収束定理)。

  • **非線形分離問題(例:XOR問題)**には対応できない。

  • 単純な構造であり、ニューラルネットワークの基礎となる概念。


5. パーセプトロンとニューラルネットワークの関係

パーセプトロンは「単層ニューラルネットワーク」に相当しますが、複雑な問題を扱うには不十分です。この限界を克服するために、**多層パーセプトロン(MLP)**が開発されました。MLPは中間層(隠れ層)を持ち、**非線形活性化関数(ReLU, Sigmoidなど)**を使うことで、より複雑な関数を近似できます。


6. まとめ

項目 内容
アルゴリズム名 パーセプトロン
タスク 教師あり学習による2クラス分類
対応可能 線形分離可能な問題
活性化関数 ステップ関数
学習方法 重み・バイアスの逐次更新
限界 非線形問題には非対応(例:XOR)

生成日:2025/06/01