感知機簡介

封面圖片是由 ChatGPT 所生成的感知機圖片,提示詞為 “A digital illustration of a perceptron model in a 16:9 ratio. Colorful input nodes labeled x₁, x₂, x₃ with weights w₁, w₂, w₃ pointing to a large circle containing a brain icon and activation function symbols (like f and Σwᵢxᵢ). Clean, modern, educational style with an off-white background and bold title text ‘PERCEPTRON’ at the top. Suitable for a tutorial article cover.” 。
前言
感知機(Perceptron)是最早期的人工神經網路模型之一,其發展奠定了現代機器學習的基礎,可以說是神經網路的「始祖」。它能執行簡單的二元分類任務,並以數學方式模擬神經元的運作邏輯,至今仍常被作為機器學習入門的教學範例。
歷史
此模型的起源最早是由美國的神經科學家沃倫·麥卡洛克(Warren Sturgis McCulloch)和邏輯學家沃爾特·皮茨(Walter Pitts)在 1943 年提出的人工神經元的數學模型。而 1949 年加拿大心理學家唐納·赫布(Donald Hebb)又提出了神經元的學習法則——赫布理論。在 1957 年,美國神經學家弗蘭克·羅森布拉特(Frank Rosenblatt)提出了可以模擬人類感知能力的機器——感知機,並在康乃爾航空實驗室(Cornell Aeronautical Laboratory)成功模擬了感知機,同時於 1959 年製作出基於感知機的硬體機器(Mark I Perceptron)用於識別英文字母。
感知機最初被認為具有良好的發展潛力,是第一種能執行二元分類的前饋神經網路(Feedforward Neural Network)模型,但後來發現其只能處理線性可分的問題。
運作原理
感知機通常由輸入節點和輸出節點組成。每個輸入的節點 $x_i$ 會乘以對應的權重 $w_i$ 後傳遞給輸出節點。
$$ input \ x_i \rightarrow w_i \cdot x_i \rightarrow output $$
較複雜的感知機會擁有更多的輸入和輸出節點,將每一個輸入節點 $x_i$ 與其對應的權重 $w_i$ 相乘並計算總合後,如果總和大於某一個門檻值(threshold),則輸出 1 ,否則為 0 。這就是運用感知機進行分類的最簡單的方法。
$$ input \ x_i \rightarrow \left\{\begin{matrix} 1, \text{ if } \sum_i w_i x_i > t; \\ 0, \text{ if } \sum_i w_i x_i \leq t, \end{matrix}\right. \quad \text{ where } t \text{ is the threshold} \rightarrow output $$
在以上的簡單例子中,輸出節點不一定是 $\{0, 1\}$ ,也可以是 $\{-1, 1\}$ 等空間,具體如何使用則要依據使用者決定。
我們也可以使用向量的方式來表達感知機,假設 $\mathbf{x} \in X \subseteq \mathbb{R}^n$ 是輸入空間的向量, $\mathbf{y} \in Y = \{-1, 1\}$ 是輸出空間的向量, $\mathbf{w} \in \mathbb{R}^n$ 是權重向量, $b \in \mathbb{R}$ 是偏差,則我們可以將感知機模型表示為
$$ f(\mathbf{x}) = sign(\mathbf{w} \cdot \mathbf{x} + b), $$
其中, $\mathbf{w} \cdot \mathbf{x}$ 為 $\mathbf{w}$ 和 $\mathbf{x}$ 的內積, $sign(z)$ 為符號函數,使得輸出向量可以落在輸出空間 $Y$ 中。
因此,感知機的輸出方式為
$$ y = sign(z) = \left\{\begin{matrix} 1, \text{ if } z > t; \\ -1, \text{ otherwise}, \end{matrix}\right., $$
其中, $t \in \mathbb{R}$ 是門檻值。
演算法
我們也可以使用感知機建立一套感知機學習演算法(Perceptron Learning Algorithm),此演算法可以簡單及有效地實現二元分類問題,具體操作流程如下:
- 選擇適合的 $w_0$ 與 $b_0$ 作為 $w$ 與 $b$ 的初始值。
- 針對訓練集中的樣本 $x_i$ 與對應的標籤 $y_i$ ,使用感知機計算 $\hat{y}_i$ $$ \hat{y}_i = \text{sign}(w \cdot x_i + b) $$
- 計算損失函數 $L(\hat{y}_i, y_i)$ ,並決定是否終止演算法。
- 更新權重 $w$ 與偏差 $b$ $$ w \leftarrow w + \eta \cdot y_i \cdot x_i; \\ b \leftarrow b + \eta \cdot y_i, $$ 其中, $\eta$ 是學習率(learning rate)。
- 回到第 2 步,直到所有樣本皆被正確分類,或達到最大迭代次數。
此演算法保證在訓練資料為線性可分的情況下,最終一定會收斂至一組可正確分類的超平面。
結語
感知機模型以簡潔的線性結構與符號函數實現了基本的二元分類功能,其學習演算法在概念上簡單,卻展示了早期神經網路的學習能力。作為歷史上的關鍵發展,感知機模型不僅奠定了多層神經網路的基礎,也成為現今深度學習理論的前身。雖然感知機模型因無法處理非線性問題而一度被淘汰,但其簡單明瞭的數學邏輯,至今仍是理解機器學習與神經網路的良好起點。
參考資料
Johnny。(無日期)。開始深度學習之前,先了解什麼是「感知器」(Perceptron)。DataSci Ocean。2025年6月3日參考自 https://datasciocean.tech/deep-learning-core-concept/what-is-perceptron/
李航(2022)。機器學習聖經:最完整的統計學習方法(初版)。深智數位股份有限公司。2025年6月3日參考。
前饋神經網路。(2025年3月17日)。維基百科,自由的百科全書。2025年6月3日參考自 https://zh.wikipedia.org/wiki/前馈神经网络
感知器。(2024年12月30日)。維基百科,自由的百科全書。2025年6月3日參考自 https://zh.wikipedia.org/zh-tw/感知器