---
# System prepended metadata

title: '深度學習專題 week 2 : 倒傳遞學習演算法簡介 part1'

---

# 深度學習專題 week 2 : 倒傳遞學習演算法簡介 

## video 1 & 2 : 倒傳遞學習演算法簡介

1. 反向傳播（Backpropagation，簡稱BP）演算法:
* 目標：通過調整神經網絡的權重和偏差來最小化損失函數。

    * 前向傳播：
    從輸入向量開始，透過神經網絡逐層傳播，計算每個神經元的輸出。 對每個神經元進行加權求和並應用激活函數以生成輸出。直到達到輸出層為止，繼續此過程。
    
    * 反向傳播：
    在輸出層計算誤差（預測輸出與實際輸出之間的差異）。
    將這個誤差向後傳播到網絡中，逐層計算損失函數對每個參數（權重和偏差）的梯度。

    * 梯度下降：
    根據梯度的相反方向更新網絡的參數，以最小化損失函數。

2. 隨機梯度下降法（Stochastic Gradient Descent，SGD）是一種常用的優化算法，用於訓練機器學習模型。以下是關於隨機梯度下降法的條列式介紹：

* 目標：最小化或最大化一個函數，通常是損失函數，找到模型參數的最佳解。

    * 基本原理：
從初始隨機值開始，SGD通過計算梯度的估計值來更新模型參數，使得損失函數值逐步趨於最小值。

    * 步驟：
1.對每個樣本，計算其損失函數對模型參數的梯度。
2根據計算的梯度，更新模型參數。
    * 優點：
計算效率高，尤其對大型數據集和高維模型具有良好的可擴展性。
在訓練過程中，可以實時更新模型參數，使得模型能夠快速收斂。
    * 缺點：
容易陷入局部最小值。
學習率的選擇對收斂速度和模型性能具有重要影響，需要謹慎調整。
隨機性導致收斂過程不穩定，需要多次運行以獲得穩定的結果。
    * 變體：
        * 小批量隨機梯度下降（Mini-batch SGD）：每次更新時使用隨機抽樣的小批量樣本，可以平衡單樣本SGD和批量SGD的優勢。

3. 線上學習（Online Learning）或遞增式學習（Incremental Learning）是一種機器學習方法，它通常用於處理持續生成的數據流。

* 目標：在處理連續的、動態變化的數據流時，即時地更新和調整模型，以應對新數據的變化，並保持模型的準確性。.


## video 3 : Tensorflow_CG簡介檔案

* TensorFlow是一個開源的機器學習框架，由Google開發和維護。它提供了各種工具和函數(包括計算圖、自動微分等等)，讓用戶可以建立和訓練各種機器學習模型。

* Computational Graph(計算圖)一種用來表示數學計算的圖形結構，其中節點代表數學運算，邊代表資料流動。通過構建計算圖，TensorFlow可以優化計算過程，實現自動微分以及分佈式執行等功能。

* 使用計算圖的好處包括：

1. 性能優化：TensorFlow可以對不同的硬體進行優化，提高運行效率。
1. 分佈式執行：模型的訓練會使用到很多很多的資料，會需要很多的計算資源，計算圖可以在多個設備或計算節點上執行，實現分佈式計算。
2. 可以使用自動微分的技術來計算梯度
3. 視覺化模型，更容易讓模型開發者理解結構以及資料的流動

* 在TensorFlow中，有兩種不同的計算圖類型：**靜態圖**和**動態圖**：

1.  靜態圖(Graph Mode)：在靜態圖中，計算圖在定義之後就不再改變，這意味著所有的節點和邊都在程序運行之前就已經確定。
1.  動態圖(Eager Execution)：在動態圖中，計算圖是根據程序運行時的實際計算需求動態生成的。動態圖更靈活，更適合用於探索性研究和快速原型開發。


## video 4 : Loss函數簡介檔案

* Loss函數是評估模型效能的一大指標，他可以量化模型預測的結果與真實答案之間的差異。

* 然而Loss函數有很多種，我們可以根據問題的類型來選擇Loss函數，如同我們會針對不同的問題選擇不一樣的激活函數。

* 要注意的是，因為在模型訓練過程中會使用梯度下降等等的方法來計算「損失函數的梯度」以調整模型參數的權重(嗎?)，所以Loss函數需要是「可以」微分的!

* 成本函數C:整個模型的成本是由每一個樣本成本所累加出來的。

* Loss 為何使用最大「對數」似然方法(maximal log-likehood Approach)呢?
 A:取對數可以方便運算。


|  | 公式 | 
| -------- | -------- |
| 均方差(MSE)     | $MSE=\frac{1}{n}\sum_{i}^n({y_i}-t_i)^2$     | 
| 二元交叉熵(BEC)     | $L = \frac{1}{N}\sum_{i} L_i = \frac{1}{N}\sum_{i}-[t_i\cdot log(y_i) + (1-t_i)\cdot log(1-y_i)]$| 
| 類別交叉熵(CCC)    | $L = \frac{1}{N}\sum_{i} L_i = - \frac{1}{N}\sum_{i} \sum_{c=1}^Mt_{ic}\log(y_{ic})$|


|  |激活函數| 均方差(MSE) | 二元交叉熵(Binary Cross-Entropy Cost) | 類別交叉熵(Categorical Cross-Entropy Cost) |例子|
| -------- |-------- | -------- | -------- | -------- |-------- |
| 常態分佈/回歸問題     |Linear Output Unit| :heavy_check_mark:      |      |  | 預測使用電量, 對遊戲場景自動輸出材質|
|二項分布|Sigmoid Output Unit ||:heavy_check_mark:  ||偵測信用卡交易是否是詐騙 |
|多項分布| Softmax Output Unit|| | :heavy_check_mark: |對相片進行臉部識別,將一個語言的句子轉換成另一國語言|