Skip to content

從零理解神經網路(一):一個神經元是如何思考的?

本文是「從零理解神經網路」系列的第一篇。我們將從最基本的單元——神經元——開始,理解深度學習的本質。

前言:為什麼要從神經元開始?

當我們聽到「深度學習」、「神經網路」這些詞彙時,很容易被其複雜性嚇到。但事實上,不管多麼龐大的神經網路,都是由一個個簡單的「神經元」組成的。

就像理解一棟大樓要先理解一塊磚頭,理解神經網路要先理解一個神經元。

生物神經元的啟發

人工神經元的設計靈感來自於我們大腦中的生物神經元。讓我們先看看生物神經元是怎麼運作的:

         樹突(接收信號)

    突觸(調節信號強度)

      細胞體(整合信號)

      閾值判斷(要不要發射?)

        軸突(發送信號)

生物神經元的工作流程:

  1. 樹突從其他神經元接收電信號
  2. 突觸會調節每個輸入信號的強度(有些連接強,有些弱)
  3. 細胞體把所有信號加總起來
  4. 如果總和超過某個閾值,神經元就會「發射」,把信號傳給下一個神經元

人工神經元完美複製了這個機制。

人工神經元的數學模型

一個接收 3 個輸入的神經元,其運算過程可以寫成:

輸出 = 激活函數( w₁×x₁ + w₂×x₂ + w₃×x₃ + b )

讓我們拆解每個部分:

1. 輸入(Inputs):x₁, x₂, x₃

這就是神經元接收到的「原始資料」。

舉個例子,如果我們要判斷一個人是否會買某個產品:

  • x₁ = 年齡(例如 30)
  • x₂ = 收入(例如 50000)
  • x₃ = 過去購買次數(例如 5)

2. 權重(Weights):w₁, w₂, w₃

權重決定了每個輸入的「重要程度」。

  • 正權重:這個輸入會增加輸出(正向影響)
  • 負權重:這個輸入會減少輸出(負向影響)
  • 權重絕對值越大:這個輸入越重要

例如,如果「過去購買次數」對預測很重要,那麼 w₃ 的絕對值會比較大。

3. 偏置(Bias):b

偏置就像是神經元的「基準線」或「預設傾向」。

想像一個判斷「要不要出門」的神經元:

  • 如果 b 是正的大數值,表示這個神經元「預設想出門」,需要很多負面因素才會改變主意
  • 如果 b 是負的大數值,表示這個神經元「預設不想出門」,需要很多正面因素才會出門

4. 加權和(Weighted Sum):z

z = w₁×x₁ + w₂×x₂ + w₃×x₃ + b

這一步把所有輸入「整合」成一個數字。你可以把它想成「投票」:

  • 每個輸入 xᵢ 投一票
  • 但每票的影響力由權重 wᵢ 決定
  • 最後加上偏置 b 作為基準

5. 激活函數(Activation Function)

加權和 z 可以是任意數字(從負無窮到正無窮),但我們通常希望輸出在某個範圍內。這就是激活函數的作用。

常見的激活函數:

Sigmoid:把輸出壓縮到 (0, 1) 之間

σ(z) = 1 / (1 + e^(-z))
  • 輸出像「機率」
  • z 很大 → 輸出接近 1
  • z 很小 → 輸出接近 0

Tanh:把輸出壓縮到 (-1, 1) 之間

tanh(z) = (e^z - e^(-z)) / (e^z + e^(-z))

ReLU:簡單粗暴,負的變 0,正的不變

ReLU(z) = max(0, z)

一個具體例子

假設我們有一個神經元,要判斷「這隻動物是不是貓」:

輸入:

  • x₁ = 有鬍鬚嗎?(1 = 有,0 = 沒有)→ 值為 1
  • x₂ = 會汪汪叫嗎?(1 = 會,0 = 不會)→ 值為 0
  • x₃ = 體型小嗎?(1 = 小,0 = 大)→ 值為 1

權重(假設已經訓練好):

  • w₁ = 0.8(有鬍鬚 → 偏向是貓)
  • w₂ = -0.9(會汪汪叫 → 偏向不是貓)
  • w₃ = 0.3(體型小 → 稍微偏向是貓)
  • b = -0.2(偏置)

計算:

z = 0.8×1 + (-0.9)×0 + 0.3×1 + (-0.2)
  = 0.8 + 0 + 0.3 - 0.2
  = 0.9

輸出 = sigmoid(0.9) = 0.71

結論:這個神經元認為有 71% 的機率是貓。

神經元的局限性

單個神經元能做的事情其實很有限——它只能學習「線性」的決策邊界。

想像在一個二維平面上:

  • 綠點代表「是」
  • 紅點代表「否」

單個神經元只能畫一條「直線」來分開它們。

這就是為什麼我們需要:

  1. 多個神經元(處理不同特徵)
  2. 多層網路(組合出複雜的決策邊界)
  3. 非線性激活函數(讓網路能學習曲線)

這些我們會在後續文章中深入探討。

互動視覺化

為了更直觀地理解神經元的運作,我製作了一個互動視覺化工具:

👉 多輸入神經元互動視覺化

在這個工具中,你可以:

  • 調整輸入值 x₁, x₂, x₃
  • 調整權重 w₁, w₂, w₃ 和偏置 b
  • 切換不同的激活函數
  • 觀察每個輸入的「貢獻」(正向還是負向)
  • 看到決策邊界的熱力圖

建議你花幾分鐘玩一玩,感受:

  1. 權重如何影響輸入的重要性
  2. 偏置如何移動決策邊界
  3. 不同激活函數的輸出差異

小結

今天我們學到了:

  1. 神經元是神經網路的基本單元,靈感來自生物神經元
  2. 神經元的運算:輸出 = 激活函數(Σ wᵢxᵢ + b)
  3. 權重決定每個輸入的重要性和方向(正/負影響)
  4. 偏置是神經元的「預設傾向」
  5. 激活函數把輸出壓縮到特定範圍
  6. 單個神經元只能學習線性邊界,這是它的局限

下一篇預告

單個神經元只能畫直線,那怎麼學習複雜的模式呢?

下一篇我們會探討激活函數——為什麼它是神經網路能夠學習複雜函數的關鍵。我們會回答一個核心問題:如果沒有非線性激活函數,100 層神經網路和 1 層有什麼區別?


本文是「從零理解神經網路」系列的第一篇。如果你覺得有幫助,歡迎分享給也在學習 ML 的朋友。

MIT Licensed