選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

感知機

一個**感知機**是一個**人工神經元**。

它是最簡單的**神經網路**。

**神經網路**是**機器學習**的構建塊。

弗蘭克·羅森布拉特

**弗蘭克·羅森布拉特**(1928 – 1971)是一位在人工智慧領域卓有成就的美國心理學家。

在**1957年**,他開啟了一件大事。他在康奈爾航空實驗室的一臺 IBM 704 計算機上“發明”了一個**感知機**程式。

科學家們發現,腦細胞(**神經元**)透過電訊號接收來自我們感官的輸入。

神經元反過來又利用電訊號儲存資訊,並根據先前的輸入做出決策。

弗蘭克認為**感知機**可以模擬大腦原理,具有學習和決策的能力。


感知機

最初的**感知機**旨在接收多個**二元**輸入,併產生一個**二元**輸出(0 或 1)。

其思想是使用不同的**權重**來表示每個**輸入**的重要性,並且在做出**是**或**否**(真或假)(0 或 1)之類的決策之前,這些值的總和應大於一個**閾值**。

Perceptron


感知機示例

想象一個感知機(在你的大腦中)。

這個感知機試圖決定你是否應該去看演唱會。

藝術家好不好?天氣好不好?

這些事實應該有什麼權重?

標準輸入Weight
藝術家不錯**x1** = 0 或 1w1 = 0.7
天氣好**x2** = 0 或 1w2 = 0.6
朋友會來**x3** = 0 或 1w3 = 0.5
提供食物**x4** = 0 或 1w4 = 0.3
提供酒精**x5** = 0 或 1w5 = 0.4

感知機演算法

弗蘭克·羅森布拉特提出了這個演算法

  1. 設定一個閾值
  2. 將所有輸入乘以其權重
  3. 將所有結果求和
  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. 感知機輸入(節點)
  2. 節點值(1, 0, 1, 0, 1)
  3. 節點權重(0.7, 0.6, 0.5, 0.3, 0.4)
  4. 求和
  5. 閾值
  6. 啟用函式
  7. 求和(和 > 閾值)

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


感知機學習

感知機可以透過一個稱為訓練的過程從示例中學習。

在訓練過程中,感知機根據觀察到的誤差調整其權重。這通常使用感知機學習規則或反向傳播演算法等學習演算法來完成。

學習過程向感知機提供帶標籤的示例,其中已知期望輸出。感知機將其輸出與期望輸出進行比較,並相應地調整其權重,旨在最小化預測輸出與期望輸出之間的誤差。

學習過程允許感知機學習權重,使其能夠對新的未知輸入進行準確預測。


注意

很明顯,決策不能僅由**一個神經元**做出。

其他神經元必須提供更多輸入

  • 藝術家好不好
  • 天氣好不好
  • ...

**多層感知機**可用於更復雜的決策制定。

值得注意的是,儘管感知機在人工神經網路的發展中具有影響力,但它們僅限於學習線性可分離的模式。

然而,透過將多個感知機分層堆疊並結合非線性啟用函式,神經網路可以克服這一限制並學習更復雜的模式。


神經網路

**感知機**定義了邁向**神經網路**的第一步。

Neural Networks

感知機通常用作更復雜神經網路的構建塊,例如多層感知機(MLP)或深度神經網路(DNN)。

透過將多個感知機分層組合並以網路結構連線,這些模型可以學習和表示資料中複雜的模式和關係,從而實現影像識別、自然語言處理和決策制定等任務。


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援