目錄標題
- 機器學習基礎知識概覽
- 激活函數 (Activation Functions)
- 損失函數 (Loss Functions / Cost Functions)
- 優化器 (Optimizers)
- 正則化 (Regularization)
- 調度器 (Schedulers / Learning Rate Schedulers)
- 指標函數 (Metric Functions)
- 其他重要概念
- 訓練流程
機器學習基礎知識概覽
激活函數 (Activation Functions)
激活函數是神經網絡中的一個關鍵組成部分,它引入了非線性。如果沒有激活函數,即使是多層神經網絡也只會執行線性變換,從而限制了其學習復雜模式的能力。激活函數決定了神經元的輸出。
常見類型:
- Sigmoid 函數: 將輸入壓縮到 0 到 1 的范圍。它曾經很流行,但在深度網絡中容易出現梯度消失問題。
- ReLU (Rectified Linear Unit) 函數: 當輸入大于 0 時,輸出等于輸入;當輸入小于等于 0 時,輸出為 0。ReLU 是目前最常用的激活函數,因為它計算簡單且能有效緩解梯度消失問題。
- Leaky ReLU 函數: 解決了 ReLU 在輸入為負時“死亡”的問題,即在輸入為負時,輸出一個小的非零梯度。
- Tanh (Hyperbolic Tangent) 函數: 將輸入壓縮到 -1 到 1 的范圍,是 Sigmoid 的改進版,但仍可能面臨梯度消失。
- Softmax 函數: 主要用于多分類問題的輸出層,它將一組實數轉換為概率分布,所有輸出值的和為 1。
Name (英文) | 中文名稱 | Formula(公式) | Feature(特點) | Usage(用途) |
---|---|---|---|---|
Sigmoid | S型函數 | σ(x)=11+e?x\sigma(x) = \frac{1}{1+e^{-x}}σ(x)=1+e?x1? | 輸出范圍 (0,1),梯度消失問題 | 二分類輸出層 |
Tanh | 雙曲正切 | tanh?(x)=ex?e?xex+e?x\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}tanh(x)=ex+e?xex?e?x? | 輸出范圍 (-1,1),居中對稱 | 隱藏層 |
ReLU | 線性整流函數 | f(x)=max?(0,x)f(x) = \max(0, x)f(x)=max(0,x) | 稀疏激活,訓練快,可能“死亡神經元” | 隱藏層 |
Leaky ReLU | 帶泄漏的ReLU | f(x)=xf(x) = xf(x)=x if x>0x > 0x>0 else 0.01x0.01x0.01x | 避免神經元完全失活 | 隱藏層 |
Softmax | 歸一化函數 | exi∑jexj\frac{e^{x_i}}{\sum_j e^{x_j}}∑j?exj?exi?? | 輸出為概率分布,適合多分類 | 多分類輸出層 |
損失函數 (Loss Functions / Cost Functions)
損失函數衡量模型預測值與真實值之間的差異。它的目標是量化模型的不準確性,并在訓練過程中通過最小化損失來提高模型的性能。選擇合適的損失函數對于特定任務至關重要。
常見類型:
- 均方誤差 (Mean Squared Error, MSE): 適用于回歸任務,計算預測值與真實值差的平方的平均值。它對較大的誤差給予更大的懲罰。
- 平均絕對誤差 (Mean Absolute Error, MAE): 同樣適用于回歸任務,計算預測值與真實值差的絕對值的平均值。MAE 對異常值不敏感。
- 交叉熵 (Cross-Entropy): 主要用于分類任務。
- 二元交叉熵 (Binary Cross-Entropy): 用于二分類問題。
- 分類交叉熵 (Categorical Cross-Entropy): 用于多分類問題,當標簽是獨熱編碼時。
- 稀疏分類交叉熵 (Sparse Categorical Cross-Entropy): 同樣用于多分類問題,當標簽是整數編碼時。
- Hinge Loss: 主要用于支持向量機 (SVM) 分類器,特別是用于最大間隔分類。
Loss Function 損失函數 | 公式 | 任務及用途 | 說明 | 符號定義 |
---|---|---|---|---|
Mean Squared Error (MSE) 均方誤差 | MSE=1n∑i=1n(yi?y^i)2\displaystyle \text{MSE} = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2MSE=n1?i=1∑n?(yi??y^?i?)2 | 回歸任務 | 計算預測值與真實值差的平方的平均值,對大誤差敏感,懲罰較大偏差。 | nnn:樣本數量 yiy_iyi?:真實值 y^i\hat{y}_iy^?i?:預測值 |
Mean Absolute Error (MAE) 平均絕對誤差 | MAE=1n∑i=1n∣yi?y^i∣\text{MAE} = \frac{1}{n} \sum_{i=1}^{n} \left | y_i - \hat{y}_i \right |MAE=n1?∑i=1n?∣yi??y^?i?∣ | MAE 只用于回歸任務,不適合分類 | 其魯棒性和對離群點不敏感,相較于 MSE 在梯度優化時不夠平滑(不可導點在 yi=y^iy_i = \hat{y}_iyi?=y^?i?),計算預測值與真實值差的絕對值平均值,對異常值更魯棒。 | 同上 |
Binary Cross-Entropy 二元交叉熵 | ?[ylog?(y^)+(1?y)log?(1?y^)]\displaystyle -\left[ y \log(\hat{y}) + (1 - y) \log(1 - \hat{y}) \right]?[ylog(y^?)+(1?y)log(1?y^?)] | 二分類任務 | 用于 0/1 二分類問題,衡量預測概率與真實標簽的差異,常配 sigmoid。 | y∈{0,1}y \in \{0,1\}y∈{0,1}:真實標簽 y^\hat{y}y^?:預測概率(取值[0,1]) |
Categorical Cross-Entropy 分類交叉熵 | ?∑i=1Cyilog?(y^i)\displaystyle -\sum_{i=1}^{C} y_i \log(\hat{y}_i)?i=1∑C?yi?log(y^?i?) | 多分類任務(獨熱編碼標簽) | 多分類常用損失函數,標簽為 one-hot,模型輸出為 softmax 概率。 | CCC:類別數 yi∈{0,1}y_i \in \{0,1\}yi?∈{0,1}:標簽的 one-hot 編碼 y^i\hat{y}_iy^?i?:類別 iii 的預測概率 |
Sparse Categorical Cross-Entropy 稀疏分類交叉熵 | 與分類交叉熵公式相同,標簽為整數形式 | 多分類任務(稀疏整數標簽) | 用于標簽為整數形式的多分類,更高效節省內存。 | 標簽為整數,表示類別索引,預測概率同上 |
Hinge Loss Hinge 損失 | Hinge=max?(0,1?y?y^)\displaystyle \text{Hinge} = \max(0, 1 - y \cdot \hat{y})Hinge=max(0,1?y?y^?) | SVM / 最大間隔分類任務 | 用于支持向量機分類,推動模型擴大類間間隔,標簽通常為 ?1-1?1 與 +1+1+1。 | y∈{?1,+1}y \in \{-1, +1\}y∈{?1,+1}:真實標簽 y^\hat{y}y^?:預測得分(實數) |
優化器 (Optimizers)
優化器是調整模型權重和偏置以最小化損失函數的算法。它們指導著模型在訓練過程中如何“學習”。
常見類型:
- 梯度下降 (Gradient Descent, GD): 最基本的優化器,沿著損失函數梯度的負方向更新權重。
- 批量梯度下降 (Batch Gradient Descent): 使用整個訓練集計算梯度,更新一次權重。計算成本高,但收斂穩定。
- 隨機梯度下降 (Stochastic Gradient Descent, SGD): 每次使用一個樣本計算梯度,更新一次權重。速度快,但波動性大。
- 小批量梯度下降 (Mini-batch Gradient Descent): 介于批量梯度下降和隨機梯度下降之間,每次使用一小批樣本計算梯度。兼顧了速度和穩定性,是實踐中最常用的方法。
- 動量 (Momentum): 引入“動量”項,幫助 SGD 克服局部最小值并加速收斂。
- Adagrad (Adaptive Gradient Algorithm): 根據參數的歷史梯度自適應地調整學習率。對頻繁更新的參數降低學習率,對不頻繁更新的參數提高學習率。
- RMSprop (Root Mean Square Propagation): Adagrad 的改進版,解決了 Adagrad 學習率單調遞減的問題。
- Adam (Adaptive Moment Estimation): 結合了動量和 RMSprop 的優點,是目前最流行和最有效的優化器之一。
Name (英文) | 中文名稱 | Feature(特點) | Usage(用途) |
---|---|---|---|
SGD | 隨機梯度下降 | 簡單,基礎,更新慢 | 小數據、入門 |
Momentum | 動量法 | 增加慣性,避免震蕩,收斂更快 | 中等復雜度任務 |
AdaGrad | 自適應梯度 | 學習率自動調整,對稀疏特征有效 | 自然語言處理 |
RMSProp | 平均方根傳播 | 改進 AdaGrad,避免學習率快速下降 | 序列建模 |
Adam | 自適應矩估計 | 綜合 Momentum + RMSProp,主流高效優化器 | 推薦使用 |
正則化 (Regularization)
正則化技術旨在防止模型在訓練數據上過擬合 (Overfitting),從而提高模型在新數據上的泛化能力。過擬合發生時,模型在訓練集上表現良好,但在未見過的數據上表現差。
常見類型:
- L1 正則化 (Lasso Regression): 在損失函數中添加權重絕對值之和的懲罰項。它傾向于使一些權重變為零,從而實現特征選擇。
- L2 正則化 (Ridge Regression / Weight Decay): 在損失函數中添加權重平方和的懲罰項。它傾向于使權重變小,但不使其變為零。
- Dropout: 在神經網絡訓練過程中,隨機地“關閉”一些神經元(及其連接)。這迫使網絡學習更魯棒的特征,減少對特定神經元的依賴。
- Early Stopping (早期停止): 監控模型在驗證集上的性能,當驗證損失停止下降甚至開始上升時,提前停止訓練。
- 數據增強 (Data Augmentation): 通過對現有訓練數據進行變換(如圖像旋轉、翻轉、裁剪等)來創建新的訓練樣本,從而增加訓練數據的多樣性。
Name (英文) | 中文名稱 | Formula(公式) | Feature(特點) |
---|---|---|---|
L2 Regularization | L2 正則化 | λ∑w2\lambda \sum w^2λ∑w2 | 抑制大權重,適合多數模型 |
L1 Regularization | L1 正則化 | λ∑w\lambda \sum wλ∑w | 稀疏化模型,特征選擇 |
Dropout | 隨機失活 | 每次訓練隨機屏蔽部分神經元 | 防止依賴特定路徑,增加泛化能力 |
Early Stopping | 提前停止 | 驗證損失不再下降則停止訓練 | 控制訓練時間,避免過擬合 |
調度器 (Schedulers / Learning Rate Schedulers)
調度器(也稱為學習率調度器)用于在訓練過程中動態調整學習率。一個合適的學習率策略可以顯著影響模型的訓練速度和最終性能。
常見類型:
- 步長衰減 (Step Decay): 每隔一定數量的 epoch,將學習率乘以一個固定因子(如 0.1)。
- 指數衰減 (Exponential Decay): 學習率按照指數形式衰減。
- 余弦退火 (Cosine Annealing): 學習率按照余弦函數的形式周期性地下降和上升,有助于模型跳出局部最優。
- 多項式衰減 (Polynomial Decay): 學習率按照多項式函數的形式衰減。
- ReduceLROnPlateau: 當模型的性能(例如驗證損失)在一定數量的 epoch 內沒有改善時,降低學習率。
Name (英文) | 中文名稱 | Feature(特點) |
---|---|---|
StepLR | 階梯下降 | 每隔若干步將學習率乘以一個常數 |
ExponentialLR | 指數衰減 | 每步指數下降 |
ReduceLROnPlateau | 驗證集不下降則衰減 | 更智能,常用于驗證損失不變時 |
CosineAnnealingLR | 余弦退火 | 余弦變化,前期下降快,后期平穩 |
Linear Warmup & Decay | 線性預熱 + 下降 | 常用于 BERT 微調,先慢慢升高后線性衰減 |
指標函數 (Metric Functions)
指標函數用于評估模型的性能。它們提供了關于模型在特定任務上的表現的定量衡量標準。與損失函數不同,指標函數通常更具可解釋性,更接近我們對模型性能的直觀理解,并且不一定需要可微。
常見類型:
- 準確率 (Accuracy): 在分類任務中,正確預測的樣本數占總樣本數的比例。
- 精確率 (Precision): 在分類任務中,被預測為正例的樣本中,真實為正例的比例。衡量模型預測正例的準確性。
- 召回率 (Recall / Sensitivity): 在分類任務中,所有真實正例中,被模型正確預測為正例的比例。衡量模型識別正例的能力。
- F1 分數 (F1 Score): 精確率和召回率的調和平均值,綜合考慮了兩者。
- ROC 曲線和 AUC (Area Under the Receiver Operating Characteristic Curve): 用于評估二分類模型的性能,特別是當類別不平衡時。AUC 值越大,模型性能越好。
- R2 分數 (R-squared / Coefficient of Determination): 在回歸任務中,衡量模型解釋因變量方差的能力。
- 均方根誤差 (Root Mean Squared Error, RMSE): MSE 的平方根,與原始數據單位一致,更具可解釋性。
📊 分類任務指標(Classification):
Name (英文) | 中文名稱 | Formula(公式) | 說明(中文) |
---|---|---|---|
Accuracy | 準確率 | TP+TNTotal\frac{TP + TN}{Total}TotalTP+TN? | 總體預測正確的比例 |
Precision | 精確率 | TPTP+FP\frac{TP}{TP + FP}TP+FPTP? | 預測為正中真正為正的比例 |
Recall | 召回率 | TPTP+FN\frac{TP}{TP + FN}TP+FNTP? | 所有實際為正中預測為正的比例 |
F1 Score | 調和平均值 | 2PRP+R\frac{2PR}{P + R}P+R2PR? | 平衡精確率和召回率 |
AUC-ROC | 曲線下面積 | 曲線面積越大越好 | 衡量分類能力強弱 |
📈 回歸任務指標(Regression):
Name (英文) | 中文名稱 | Formula(公式) | 說明 |
---|---|---|---|
MSE | 均方誤差 | 1n∑(y?y^)2\frac{1}{n} \sum (y - \hat{y})^2n1?∑(y?y^?)2 | 對大誤差敏感 |
RMSE | 均方根誤差 | MSE\sqrt{MSE}MSE? | 單位與原量綱相同,易解釋 |
MAE | 平均絕對誤差 | 1n∑∣y?y^∣\frac{1}{n} \sum | y - \hat{y} |n1?∑∣y?y^?∣ | 更魯棒,對異常點影響小 |
R2 Score | 決定系數 | 1?SSESST1 - \frac{SSE}{SST}1?SSTSSE? | 越接近 1 表示擬合越好 |
其他重要概念
- 數據集 (Dataset): 訓練和測試模型的數據集合。通常分為訓練集 (Training Set)、驗證集 (Validation Set) 和測試集 (Test Set)。
- 訓練集: 用于訓練模型。
- 驗證集: 用于在訓練過程中評估模型性能,調整超參數,并進行早期停止。
- 測試集: 用于在模型訓練完成后,評估模型的最終泛化能力。
- 特征 (Features): 用于描述樣本的屬性或變量。
- 標簽 (Labels) / 目標 (Targets): 模型需要預測的輸出值。
- 模型 (Model): 學習數據模式的算法或結構(例如神經網絡、決策樹等)。
- 超參數 (Hyperparameters): 在訓練過程開始之前設置的參數,例如學習率、批次大小、網絡層數、隱藏單元數量等。它們影響模型的學習過程。
- 欠擬合 (Underfitting): 模型未能充分學習訓練數據的模式,導致在訓練集和測試集上都表現不佳。通常是模型復雜度不足或訓練時間不夠導致的。
- 過擬合 (Overfitting): 模型在訓練數據上表現非常好,但對新數據的泛化能力差。通常是模型過于復雜或訓練數據量不足導致的。
- 偏差 (Bias): 模型對真實關系過于簡化的假設所導致的誤差。高偏差通常對應著欠擬合。
- 方差 (Variance): 模型對訓練數據中隨機性噪聲的敏感程度。高方差通常對應著過擬合。
- 偏差-方差權衡 (Bias-Variance Trade-off): 在降低偏差和降低方差之間進行平衡,以獲得最佳的模型泛化能力。
訓練流程
Raw Data(原始數據)
↓
Preprocessing(預處理)
↓
Train/Validation/Test Split(劃分訓練、驗證、測試集)
↓
Model Definition(模型構建) → Activation Function(激活) → Loss(損失) → Optimizer(優化) → Regularization(正則)
↓
Train(訓練) → Scheduler(調度器) → Evaluate(評估指標)
↓
Tune(調參) → Save(保存模型) → Deploy(部署)