感知機
一個**感知機**是一個**人工神經元**。
它是最簡單的**神經網路**。
**神經網路**是**機器學習**的構建塊。
弗蘭克·羅森布拉特
**弗蘭克·羅森布拉特**(1928 – 1971)是一位在人工智慧領域卓有成就的美國心理學家。
在**1957年**,他開啟了一件大事。他在康奈爾航空實驗室的一臺 IBM 704 計算機上“發明”了一個**感知機**程式。
科學家們發現,腦細胞(**神經元**)透過電訊號接收來自我們感官的輸入。
神經元反過來又利用電訊號儲存資訊,並根據先前的輸入做出決策。
弗蘭克認為**感知機**可以模擬大腦原理,具有學習和決策的能力。
感知機
最初的**感知機**旨在接收多個**二元**輸入,併產生一個**二元**輸出(0 或 1)。
其思想是使用不同的**權重**來表示每個**輸入**的重要性,並且在做出**是**或**否**(真或假)(0 或 1)之類的決策之前,這些值的總和應大於一個**閾值**。
感知機示例
想象一個感知機(在你的大腦中)。
這個感知機試圖決定你是否應該去看演唱會。
藝術家好不好?天氣好不好?
這些事實應該有什麼權重?
標準 | 輸入 | Weight |
---|---|---|
藝術家不錯 | **x1** = 0 或 1 | w1 = 0.7 |
天氣好 | **x2** = 0 或 1 | w2 = 0.6 |
朋友會來 | **x3** = 0 或 1 | w3 = 0.5 |
提供食物 | **x4** = 0 或 1 | w4 = 0.3 |
提供酒精 | **x5** = 0 或 1 | w5 = 0.4 |
感知機演算法
弗蘭克·羅森布拉特提出了這個演算法
- 設定一個閾值
- 將所有輸入乘以其權重
- 將所有結果求和
- 啟用輸出
1. 設定一個閾值:
- 閾值 = 1.5
2. 將所有輸入乘以其權重:
- x1 * w1 = 1 * 0.7 = 0.7
- x2 * w2 = 0 * 0.6 = 0
- x3 * w3 = 1 * 0.5 = 0.5
- x4 * w4 = 0 * 0.3 = 0
- x5 * w5 = 1 * 0.4 = 0.4
3. 將所有結果求和:
- 0.7 + 0 + 0.5 + 0 + 0.4 = 1.6(加權和)
4. 啟用輸出:
- 如果和 > 1.5 則返回 true(“是的,我會去聽演唱會”)
注意
如果天氣權重對你來說是 0.6,那麼對其他人來說可能不同。更高的權重意味著天氣對他們更重要。
如果閾值對你來說是 1.5,那麼對其他人來說可能不同。較低的閾值意味著他們更想去任何一場音樂會。
示例
const threshold = 1.5;
const inputs = [1, 0, 1, 0, 1];
const weights = [0.7, 0.6, 0.5, 0.3, 0.4];
let sum = 0;
for (let i = 0; i < inputs.length; i++) {
sum += inputs[i] * weights[i];
}
const activate = (sum > 1.5);
感知機在人工智慧中
一個**感知機**是一個**人工神經元**。
它受**生物神經元**功能的啟發。
它在**人工智慧**中扮演著關鍵角色。
它是**神經網路**中重要的構建塊。
為了理解其背後的理論,我們可以分解其組成部分
- 感知機輸入(節點)
- 節點值(1, 0, 1, 0, 1)
- 節點權重(0.7, 0.6, 0.5, 0.3, 0.4)
- 求和
- 閾值
- 啟用函式
- 求和(和 > 閾值)
1. 感知機輸入
感知機接收一個或多個輸入。
感知機輸入被稱為**節點**。
節點既有**值**,也有**權重**。
2. 節點值(輸入值)
輸入節點具有**1**或**0**的二進位制值。
這可以解釋為**真**或**假** / **是**或**否**。
值為:1, 0, 1, 0, 1
3. 節點權重
權重是分配給每個輸入的值。
權重表示每個**節點**的**強度**。
更高的值意味著輸入對輸出有更強的影響。
權重為:0.7, 0.6, 0.5, 0.3, 0.4
4. 求和
感知機計算其輸入的加權和。
它將每個輸入乘以其對應的權重,並將結果相加。
和為:0.7*1 + 0.6*0 + 0.5*1 + 0.3*0 + 0.4*1 = 1.6
6. 閾值
閾值是感知機觸發(輸出 1)所需的值,否則它保持非活動狀態(輸出 0)。
在這個例子中,閾值為:1.5
5. 啟用函式
求和後,感知機應用啟用函式。
目的是在輸出中引入非線性。它根據聚合輸入決定感知機是否應該觸發。
啟用函式很簡單:(和 > 閾值) == (1.6 > 1.5)
輸出
感知機的最終輸出是啟用函式的結果。
它表示感知機根據輸入和權重做出的決定或預測。
啟用函式將加權和對映為二進位制值。
二進位制**1**或**0**可以解釋為**真**或**假** / **是**或**否**。
輸出為**1**,因為:(和 > 閾值) == true。
感知機學習
感知機可以透過一個稱為訓練的過程從示例中學習。
在訓練過程中,感知機根據觀察到的誤差調整其權重。這通常使用感知機學習規則或反向傳播演算法等學習演算法來完成。
學習過程向感知機提供帶標籤的示例,其中已知期望輸出。感知機將其輸出與期望輸出進行比較,並相應地調整其權重,旨在最小化預測輸出與期望輸出之間的誤差。
學習過程允許感知機學習權重,使其能夠對新的未知輸入進行準確預測。
注意
很明顯,決策不能僅由**一個神經元**做出。
其他神經元必須提供更多輸入
- 藝術家好不好
- 天氣好不好
- ...
**多層感知機**可用於更復雜的決策制定。
值得注意的是,儘管感知機在人工神經網路的發展中具有影響力,但它們僅限於學習線性可分離的模式。
然而,透過將多個感知機分層堆疊並結合非線性啟用函式,神經網路可以克服這一限制並學習更復雜的模式。
神經網路
**感知機**定義了邁向**神經網路**的第一步。

感知機通常用作更復雜神經網路的構建塊,例如多層感知機(MLP)或深度神經網路(DNN)。
透過將多個感知機分層組合並以網路結構連線,這些模型可以學習和表示資料中複雜的模式和關係,從而實現影像識別、自然語言處理和決策制定等任務。