WeHelp
PyTorch 是建置、訓練、佈署現代人工智慧、深度學習、神經網路模型的核心開發套件。
  1. 簡介、安裝、快速開始
  2. Tensor 張量
  3. 定義資料集、載入器
  4. 神經網路簡介
  5. PyTorch 定義模型
  6. PyTorch 激勵函式
  7. PyTorch 損失函式
  8. PyTorch 優化器
  9. 二元分類模型範例
神經網路簡介
## Artificial Neural Network(人工神經網路)概念簡介 人工神經網路(Artificial Neural Network, ANN)是一種模仿生物神經元運作方式的機器學習模型,主要由許多「神經元」組成,並以多層結構學習輸入資料與輸出結果之間的關係。 典型的神經網路包含: - **輸入層(Input Layer)**:接收特徵資料,例如影像像素、文字特徵等。 - **隱藏層(Hidden Layers)**:透過多層計算學習複雜模式。 - **輸出層(Output Layer)**:產生最終預測結果。 - **權重(Weights)與偏差(Biases)**:模型需要透過訓練學習的參數。 - **激勵函式(Activation Function)**:加入非線性能力,例如 ReLU、Sigmoid、Softmax。 --- ## 1. Forward:正向傳遞 正向傳遞是指資料從輸入層開始,依序通過每一層,最後產生預測結果。 流程大致如下: 1. 將輸入資料 \(x\) 放入模型。 2. 每一層利用權重和偏差進行線性計算。 3. 通過啟動函數產生該層的輸出。 4. 將輸出傳給下一層。 5. 最後得到模型預測值 \(y\)。 以分類問題為例,輸出層可能使用 Softmax,得到每個類別的預測機率。 **正向傳遞的目的**是: 利用目前的模型參數,根據輸入資料做出預測。 --- ## 2. Loss:計算預測誤差 模型產生預測值後,需要知道預測得好不好,因此會使用 **Loss Function(損失函數)** 比較預測值 \(y\) 與真實答案 \(e\) 之間的差異。 Loss 越小,代表預測通常越接近正確答案。 常見的損失函數包括: ### 回歸問題:均方誤差 適合預測連續數值,例如房價、溫度等。 ### 分類問題:交叉熵損失 二元分類常用 Binary Cross Entropy,多分類問題通常使用 Categorical Cross Entropy。 **Loss 的目的**是: 將模型表現轉換成一個可量化的誤差數值,作為後續調整模型參數的依據。 --- ## 3. Backward:反向傳遞與反向傳播 反向傳遞,通常稱為 **Backpropagation(反向傳播)**,是從 Loss 開始,反方向逐層計算每個參數對 Loss 的影響程度。 這個影響程度稱為 **梯度(Gradient)**: 梯度代表: - 梯度較大:這個參數對錯誤影響較大。 - 梯度為正:參數增加可能使 Loss 增加,因此可能需要降低參數。 - 梯度為負:參數增加可能使 Loss 降低,因此可能需要提高參數。 反向傳播主要使用微積分中的 **鏈鎖律(Chain Rule)**,將輸出層的誤差逐層往回傳遞,計算每一層權重與偏差的梯度。 需要注意的是: - **Backpropagation**:計算梯度。 - **Optimizer(最佳化器)**:利用梯度更新參數。 常見的最佳化器包括: - SGD - Momentum - Adam - RMSProp --- ## 4. 完整訓練流程 神經網路通常會重複以下流程: 1. **輸入資料** 2. **Forward 正向傳遞** 3. **計算 Loss** 4. **Backward 反向傳播,計算梯度** 5. **Optimizer 更新權重與偏差** 6. 重複多次,直到模型表現足夠好 簡化表示如下: ```text 資料輸入 ↓ Forward ↓ 得到預測值 ↓ 計算 Loss ↓ Backward 計算梯度 ↓ Optimizer 更新參數 ↓ 重複訓練 ``` --- ## 5. 直觀理解 可以把神經網路想像成一位正在練習答題的學生: - **Forward**:學生根據目前學會的知識回答問題。 - **Loss**:老師比較學生答案與正確答案的差距。 - **Backward**:分析是哪一些知識或判斷造成錯誤。 - **Optimizer 更新**:根據分析結果調整學習方式。 - **反覆訓練**:經過多次練習後,學生的答題能力逐漸提升。 因此,神經網路訓練的核心就是: > 先做預測,再量化錯誤,接著利用反向傳播找出參數應如何調整,最後透過最佳化器更新參數,使 Loss 逐步降低。
相關學習地圖、教學課程
Python 人工智慧
建議完成「Python 資料工程」教程後,繼續學習以下課程。