什麼是 感知器(Perceptron)?

感知器是最簡單的神經網路模型,模擬生物神經元,接收輸入、加權求和、通過激活函數輸出,用於二元分類。

核心概念

感知器是人工神經網路的基本組成單元,其核心概念包括:

  • 輸入 (Inputs): 感知器接收來自外部或其它神經元的輸入信號,通常表示為 x1, x2, ..., xn。
  • 權重 (Weights): 每個輸入信號都與一個權重相關聯,表示該輸入信號的重要性。權重通常表示為 w1, w2, ..., wn。權重可以是正數或負數,正數表示激勵,負數表示抑制。
  • 偏置 (Bias): 偏置是一個常數項,添加到加權輸入的總和中,用於調整感知器的激活閾值。偏置通常表示為 b。
  • 加權和 (Weighted Sum): 將每個輸入信號乘以其對應的權重,然後將所有乘積加總,再加上偏置。加權和表示為 z = w1x1 + w2x2 + ... + wnxn + b。
  • 激活函數 (Activation Function): 激活函數接收加權和作為輸入,並產生一個輸出信號。激活函數通常是一個非線性函數,用於引入非線性特性。常見的激活函數包括階躍函數 (Step Function)、符號函數 (Sign Function) 和 Sigmoid 函數。
  • 輸出 (Output): 激活函數的輸出就是感知器的最終輸出,通常表示為 y。對於二元分類問題,輸出通常為 0 或 1,或者 -1 或 1。

運作原理

感知器的運作原理可以概括為以下幾個步驟:

  1. 接收輸入: 感知器接收來自外部或其它神經元的輸入信號 x1, x2, ..., xn。
  2. 加權求和: 將每個輸入信號乘以其對應的權重 w1, w2, ..., wn,然後將所有乘積加總,再加上偏置 b,得到加權和 z = w1x1 + w2x2 + ... + wnxn + b。
  3. 激活: 將加權和 z 輸入到激活函數中,得到輸出 y = activation(z)。
  4. 輸出: 將輸出 y 作為感知器的最終輸出。

感知器的訓練過程就是調整權重 w1, w2, ..., wn 和偏置 b 的過程,使得感知器能夠正確地分類訓練數據。常用的訓練算法是感知器學習算法,該算法基於以下規則:

  • 如果感知器正確地分類了輸入,則權重和偏置保持不變。
  • 如果感知器錯誤地將正例分類為負例,則將權重增加輸入向量,並增加偏置。
  • 如果感知器錯誤地將負例分類為正例,則將權重減少輸入向量,並減少偏置。

感知器學習算法會不斷迭代,直到感知器能夠正確地分類所有訓練數據,或者達到最大迭代次數。

實際應用

感知器雖然結構簡單,但仍然可以在一些實際應用中使用,例如:

  • 二元分類: 感知器最常見的應用是二元分類,例如判斷郵件是否為垃圾郵件、判斷圖像是否包含特定物體等。
  • 邏輯運算: 感知器可以實現基本的邏輯運算,例如 AND、OR 和 NOT。
  • 模式識別: 感知器可以用於簡單的模式識別任務,例如識別手寫數字。

然而,感知器也存在一些局限性,例如只能解決線性可分的問題,無法解決 XOR 問題。為了克服這些局限性,人們提出了多層感知器 (Multilayer Perceptron, MLP),即包含多個感知器層的神經網路。

常見誤區

  • 感知器可以解決所有分類問題: 這是錯誤的。感知器只能解決線性可分的問題。對於非線性可分的問題,需要使用更複雜的神經網路模型,例如多層感知器。
  • 感知器的權重和偏置是隨機初始化的: 雖然可以隨機初始化權重和偏置,但更好的方法是使用一些啟發式方法,例如 Xavier 初始化或 He 初始化,以加速訓練過程。
  • 感知器學習算法一定會收斂: 感知器學習算法只有在數據線性可分的情況下才能保證收斂。如果數據線性不可分,則算法可能會無限循環。
  • 感知器只能用於二元分類: 雖然感知器最常見的應用是二元分類,但也可以通過一些技巧將其用於多類分類,例如使用 One-vs-All 或 One-vs-One 方法。

相關術語

常見問題

← 回到 感知器 快查頁

延伸學習

想看 感知器 的完整影片教學?前往 美第奇 AI 學院