一 感知機是什么
感知機(Perceptron)是一種接收輸入信號并輸出結果的算法。
它根據輸入與權重的加權和是否超過某個閾值(threshold),來判斷輸出0還是1。
二.計算方式
感知機的基本公式如下:
- X1, X2 : 輸入
- W1,W1: 權重
- θ :閾值
- 輸出:0 or 1
三.簡單邏輯門的實現
邏輯門簡介
感知機可以模擬如下基本邏輯門:
輸入1 | 輸入2 | AND門輸出 | NAND門輸出 | OR門輸出 |
---|---|---|---|---|
0 | 0 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 1 |
感知機參數設置
門類型 | 權重w1、w2 | 閾值θ |
---|---|---|
AND門 | 0.5, 0.5 | 0.7 |
NAND門 | -0.5, -0.5 | -0.7 |
OR門 | 0.5, 0.5 | 0.2 |
代碼示例
def AND(x1, x2):w1, w2, theta = 0.5, 0.5, 0.7tmp = w1*x1 + w2*x2if tmp <= theta:return 0else:return 1
通過調整權重與閾值,感知機可以模擬不同的邏輯門。
四.線性與非線性
線性可分性
如果能夠通過一條直線(二維)或超平面(高維)將不同類別的數據點完全分開,這種情況稱為線性可分(Linear Separability)。
在平面上無法用一條直線區分輸出為0和1的點,因此單層感知機無法處理XOR問題。
五.多層感知機
多層結構的必要性
為了解決XOR等非線性可分問題,需要引入多層感知機(Multi-layer Perceptron,MLP):
- 第1層:處理簡單邏輯(如NAND、OR)
- 第2層:綜合前面結果(如AND)
通過“組合多個感知機”,可以實現復雜邏輯!
XOR(異或)門的多層實現示例
def NAND(x1, x2):return ... # 同前述定義def OR(x1, x2):return ... # 同前述定義def AND(x1, x2):return ... # 同前述定義def XOR(x1, x2):s1 = NAND(x1, x2)s2 = OR(x1, x2)y = AND(s1, s2)return y
異或 = AND(NAND, OR)
總結
主題 | 關鍵詞 | 備注 |
---|---|---|
感知機基礎 | 權重、閾值、加權和 | 決定輸出0或1 |
邏輯門實現 | AND、NAND、OR | 單層感知機 |
線性與非線性 | 線性可分 vs 非線性可分 | XOR是非線性問題 |
多層感知機 | 層與層組合 | 解決復雜問題 |