論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
パーセプトロン
Perceptron
深層学習
別称: 単純パーセプトロン

🔖 キーワード索引

パーセプトロンPerceptron深層学習単純パーセプトロン

本ページは パーセプトロン(Perceptron)を多角的に解説します。 上のチップは、 検索・関連語の手がかりです。

💡 30秒で分かる結論

📍 文脈 — どこで使う概念か

パーセプトロン(Perceptron)は、 ニューラルネットワークの 歴史的起点。 Frank Rosenblatt(1958)が脳の神経細胞をモデル化した計算ユニットで、 現代の深層学習はすべてこの拡張です。 1969 年 Minsky & Papert による限界指摘で一度衰退するも、 多層化と逆伝播の発明で復活。 AI 史を学ぶ上で必修。

🎨 直感で掴む — 具体例で理解する

パーセプトロンは 「複数の入力を受けて、 重み付け和を取り、 活性化関数で 0/1 を出力する」

要素意味生物学的対応
$x_i$入力信号樹状突起
$w_i$重みシナプス強度
$\sum w_i x_i + b$重み付け和細胞体での電位
活性化関数出力決定発火閾値
$y$出力軸索

1 層では AND, OR は学習できるが、 XOR はできない(線形分離不可能)。 これが Minsky の有名な批判で、 1970〜80 年代の AI 衰退の引き金になりました。

📐 定義・数式

【パーセプトロンの出力】
$$y = \phi\!\left( \sum_{i=1}^{n} w_i x_i + b \right) = \phi(\mathbf{w}^\top \mathbf{x} + b)$$
$\phi$ = 活性化関数(古典的にはステップ関数 sign)
【パーセプトロン学習則】
$$\mathbf{w}_{t+1} = \mathbf{w}_t + \eta (y_{\mathrm{true}} - y_{\mathrm{pred}}) \mathbf{x}$$
予測が外れたら、 入力方向に重みを更新。 Rosenblatt の収束定理で「線形分離可能なら必ず収束」が証明

🔬 記号・要素の読み解き

$\mathbf{x}$(入力)
$n$ 次元の特徴ベクトル
$\mathbf{w}$(重み)
各入力の重要度を表すパラメータ
$b$(バイアス)
閾値のオフセット。 「何もなくても発火するか」
$\phi$(活性化関数)
古典はステップ関数。 現代は ReLU 等
$y$(出力)
0 / 1(二値)または連続値
線形分離可能性
クラスを 1 本の直線(超平面)で分けられる性質

🧮 数値例・実値計算

例:AND ゲートをパーセプトロンで学習

$x_1$$x_2$ANDパーセプトロン出力 ($w_1=w_2=1, b=-1.5$)
000step(0 + 0 − 1.5) = 0 ✓
010step(0 + 1 − 1.5) = 0 ✓
100step(1 + 0 − 1.5) = 0 ✓
111step(1 + 1 − 1.5) = 1 ✓

XOR は同じ枠組みでは 絶対に解けない。 重みをどう設定しても、 4 点を 2 クラスに直線で分けられないため。

🐍 Python 実装例

最小コードで動かしてみる例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import numpy as np

class Perceptron:
    def __init__(self, n_inputs, lr=0.1):
        self.w = np.zeros(n_inputs)
        self.b = 0.0
        self.lr = lr

    def predict(self, x):
        return 1 if (np.dot(self.w, x) + self.b) > 0 else 0

    def fit(self, X, y, epochs=100):
        for _ in range(epochs):
            for xi, yi in zip(X, y):
                err = yi - self.predict(xi)
                self.w += self.lr * err * xi
                self.b += self.lr * err

⚠️ よくある落とし穴

❌ XOR 問題
1 層パーセプトロンは線形分離可能な問題しか解けない。 必ず MLP(多層)で。
❌ 収束しない場合
線形分離不可能なデータでは学習則が振動。 マージン最大化(SVM)で対処。
❌ 特徴量スケール
重み更新が大きな入力に支配される。 標準化必須。
❌ ステップ関数の限界
微分できないので逆伝播に使えない。 シグモイドや ReLU が必要。
❌ 歴史的誤解
「パーセプトロン = 古い」ではなく、 「単層 = 限界、 多層 = 強い」が正しい認識。