什麼是 前饋神經網路(Feedforward Neural Network)?

前饋神經網路是一種訊息單向傳播的神經網路,由輸入層、隱藏層和輸出層組成,廣泛應用於分類和迴歸任務。

核心概念

前饋神經網路(Feedforward Neural Network, FFNN)是深度學習中最基礎的模型之一,其核心概念包括:

  • 層 (Layers): FFNN 由多個層組成,每一層包含多個神經元。常見的層類型包括:
    • 輸入層 (Input Layer): 接收外部輸入數據。
    • 隱藏層 (Hidden Layers): 位於輸入層和輸出層之間,負責提取輸入數據的特徵。
    • 輸出層 (Output Layer): 產生最終的輸出結果。
  • 神經元 (Neurons): 每一層都包含多個神經元,每個神經元接收來自上一層的輸入,進行加權求和,然後通過激活函數產生輸出。
  • 權重 (Weights): 連接不同層的神經元,表示輸入信號的重要性。權重在訓練過程中不斷調整,以優化模型的性能。
  • 偏置 (Bias): 每個神經元都有一個偏置,用於調整神經元的激活閾值。
  • 激活函數 (Activation Function): 引入非線性特性,使得 FFNN 能夠學習複雜的模式。常見的激活函數包括 Sigmoid、ReLU、Tanh 等。
  • 前向傳播 (Forward Propagation): 訊息從輸入層開始,逐層向前傳播,直到到達輸出層。每一層的輸出都作為下一層的輸入。
  • 反向傳播 (Backpropagation): 計算損失函數關於權重和偏置的梯度,然後使用梯度下降算法更新權重和偏置,以減小損失函數的值。
  • 損失函數 (Loss Function): 用於衡量模型的預測結果與真實結果之間的差異。常見的損失函數包括均方誤差 (Mean Squared Error, MSE) 和交叉熵 (Cross-Entropy)。

運作原理

前饋神經網路的運作原理可以概括為以下幾個步驟:

  1. 前向傳播:
    • 將輸入數據傳遞到輸入層。
    • 對於每一個隱藏層和輸出層,執行以下操作:
      • 計算加權和:將上一層的輸出乘以權重,然後加總,再加上偏置。
      • 應用激活函數:將加權和輸入到激活函數中,得到該層的輸出。
  2. 計算損失:
    • 將輸出層的輸出與真實結果進行比較,計算損失函數的值。
  3. 反向傳播:
    • 計算損失函數關於輸出層權重和偏置的梯度。
    • 從輸出層開始,逐層向後計算損失函數關於每一層權重和偏置的梯度。
  4. 更新權重和偏置:
    • 使用梯度下降算法,根據計算得到的梯度更新權重和偏置。
  5. 重複步驟 1-4,直到達到停止條件 (例如,達到最大迭代次數或損失函數的值不再下降)。

實際應用

前饋神經網路廣泛應用於各種領域,包括:

  • 圖像識別: 將圖像作為輸入,預測圖像中包含的物體或場景。
  • 自然語言處理: 將文本作為輸入,執行情感分析、文本分類、機器翻譯等任務。
  • 語音辨識: 將語音信號作為輸入,將其轉換為文本。
  • 時間序列預測: 將歷史數據作為輸入,預測未來的趨勢。
  • 推薦系統: 根據用戶的歷史行為,推薦用戶可能感興趣的商品或服務。
  • 控制系統: 將系統的狀態作為輸入,控制系統的行為。

常見誤區

  • FFNN 只能處理結構化數據: 這是錯誤的。FFNN 可以通過適當的預處理和特徵工程,處理非結構化數據,例如圖像、文本和語音。
  • FFNN 的層數越多越好: 增加層數可以提高模型的表達能力,但也可能導致過擬合。需要根據具體問題選擇合適的層數。
  • FFNN 的訓練需要大量的數據: 雖然大量的數據可以提高模型的性能,但也可以使用一些技術,例如數據增強和遷移學習,來減少對數據量的需求。
  • FFNN 的訓練是一個黑盒過程: 雖然 FFNN 的內部運作比較複雜,但可以使用一些技術,例如可視化和解釋性方法,來理解模型的決策過程。
  • FFNN 已經過時,現在都用 CNN 和 RNN: 雖然 CNN 和 RNN 在特定任務上表現更好,但 FFNN 仍然是深度學習中一個重要的基礎模型,並且在一些簡單的任務上仍然具有競爭力。此外,FFNN 也是理解 CNN 和 RNN 等更複雜模型的基礎。

相關術語

常見問題

← 回到 前饋神經網路 快查頁

延伸學習

想看 前饋神經網路 的完整影片教學?前往 美第奇 AI 學院