機器學習簡介

imyhy發表於2024-08-25

機器學習簡介

Learn from data、深度學習

經典定義:利用經驗改善系統自身的效能 [T. Mitchell 教科書, 1997]。

資料 -> 演算法 -> 模型

基本術語

資料:

  • 資料集;訓練;測試

  • 示例(instance);樣例(example)

  • 樣本(sample)

  • 屬性(attribute);特徵(feature);屬性值

  • 屬性空間;樣本空間;輸入空間

  • 特徵向量(feature vector)

  • 類別標記(label)

  • 標記空間;輸出空間

模型:

  • 假設(hypothesis)

  • 真相(ground-truth)

  • 學習器(learner)

任務:

  • 分類(離散);迴歸(連續)
  • 二分類;多分類
  • 正類;反類

是否有標註資訊:

  • 監督學習(supervised learning)

  • 無監督學習(unsupervised learning)

  • 自監督學習(self-supervised learning)

測試:

  • 未見樣本(unseen instance)
  • 未知“分佈”
  • 獨立同分布(i.i.d.)
  • 泛化(generalization)

典型的機器學習過程

什麼模型好?

泛化能力強:能很好地適用於unseen instance,錯誤率低,精度高。

機器學習有堅實的理論基礎

計算學習理論(Computational learning theory)

最重要的理論模型:PAC(Probably Approximately Correct,機率近似正確)learning model [Valiant, 1984]

\[P(|f(\boldsymbol{x}) - y| \leq \epsilon) \geq 1 - \delta \]

歸納偏好(Inductive Bias)

機器學習演算法在學習過程中對某種型別假設的偏好。

一般原則:奧卡姆剃刀——若非必要勿增實體

任何一個有效的機器學習演算法必有其偏好。

學習演算法的歸納偏好是否與問題本身匹配,大多數時候直接決定了演算法能否取得好的效能。

沒有免費午餐(NFL)定理:一個演算法 \(\mathcal{L}_a\) 若在某些問題上比另一個演算法 \(\mathcal{L}_b\) 好,必存在另一些問題 \(\mathcal{L}_b\)\(\mathcal{L}_a\) 好。

image-20240810153952925

評估方法

關鍵:怎麼獲得“測試集”(test set)?

測試集應該與訓練集“互斥”

常見方法:

  • 留出法(hold-out)
  • 交叉驗證法(cross validation)
  • 自助法(bootstrap)

留出法

image-20240810154356237

注意:

  • 保持資料分佈一致性(例如:分層取樣)
  • 多次重複劃分(例如:100次隨機劃分)
  • 測試集不能太大、不能太小(例如:1/5~1/3)

\(k\)-折交叉驗證法

image-20240810154810608

\(k=m\) ,則得到“留一法”(leave-one-out, LOO)

效能度量

效能度量(performance measure)是衡量模型泛化能力的評價標準,反映了任務需求。

使用不同的效能度量往往會導致不同的評判結果。

什麼樣的模型是“好”的,不僅取決於演算法和資料,還取決於任務需求。

  • 迴歸(regression)任務常用均方誤差(MSE):

    \[E(f;D) = \frac{1}{m}\sum_{i=1}^m(f(x_i) - y_i)^2 \]

  • 錯誤率:

    \[E(f;D) = \frac{1}{m}\sum_{i=1}^m\mathbb{I}(f(x_i)\neq y_i) \]

  • 精度:

    \[\begin{align} acc(f;D) &= \frac{1}{m}\sum_{i=1}^m\mathbb{I}(f(x_i) = y_i) \\ &= 1 - E(f;D) \end{align} \]

線性模型

image-20240811111041634

線性模型(linear model)試圖學得一個透過屬性的線性組合來進行預測的函式。

\[f(\boldsymbol{x}) = w_1x_1 + w_2x_2 +\dots+ w_dx_d + b \]

向量形式

\[f(\boldsymbol{x}) = \boldsymbol{w}^\mathrm{T}\boldsymbol{x} + b \]

線性迴歸(Linear Regression)

\[f(x_i) = wx_i + b\quad 使得\quad f(x_i)\simeq y_i \]

離散屬性的處理:若有“序”(order),則連續化;否則,轉化為 \(k\) 維向量。

令均方誤差最小化,有

\[\begin{align} (\boldsymbol{w}^*,b^*) &= {\arg\min}_{(\boldsymbol{w},b)}\sum_{i=1}^m(f(\boldsymbol{x}_i)-y_i)^2 \\ &= {\arg\min}_{(\boldsymbol{w},b)}\sum_{i=1}^m(y_i-\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i-b)^2 \end{align} \]

\(E_{(\boldsymbol{w},b)} = \sum_{i=1}^m(y_i-\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i-b)^2\) 進行最小二乘估計。

最佳化目標

基本思路:最佳化模型的經驗誤差,同時控制模型的複雜度。

\[\min_{(\boldsymbol{w},b)}\frac{1}{2}\Vert \boldsymbol{w}\Vert^2 + C\sum_{i=1}^m\mathscr{l}_{0/1}(y_i(\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i+b)-1) \]

其中 \(\mathscr{l}_{0/1}\)\(0/1\) 損失函式(0/1 loss function)

\[\mathscr{l}_{0/1}(z)= \begin{cases} 1,\quad z<0;\\ 0,\quad \mathrm{otherwise}. \end{cases} \]

障礙:\(0/1\) 損失函式非凸、非連續,不易最佳化!

替代損失(Surrogata Loss)

image-20240811111105614

  • 採用替代損失函式,是在解決困難問題時的常見技巧。
  • 求解替代函式得到的解是否仍是原問題的解?理論上成為替代損失的“一致性”(Consistency)問題。

軟間隔支援向量機(Soft-margin Support Vector Machine)

原始問題

\[\min_{(\boldsymbol{w},b)}\frac{1}{2}\Vert \boldsymbol{w}\Vert^2 + C\sum_{i=1}^m\max(0,1-y_i(\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i+b)) \]

引入“鬆弛量”(Slack Varinbles)\(\xi_i\)

\[\min_{(\boldsymbol{w},b)}\frac{1}{2}\Vert \boldsymbol{w}\Vert^2 + C\sum_{i=1}^m\xi_i\\ \mathrm{s.t.}\quad y_i(\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i+b)\geq 1-\xi_i\quad \xi_i\geq 0,~i=1,2,\dots,m \]

對偶問題

\[\max_\alpha\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\boldsymbol{x}_i^\mathrm{T}\boldsymbol{x}_j\\ \mathrm{s.t.}\quad \sum_{i=1}^m\alpha_iy_i=0\quad0\leq\alpha\leq C,~i=1,2,\dots,m \]

正則化(Regularization)

統計學習模型(例如SVM)的更一般形式

\[\min_f\Omega(f)+C\sum_{i=1}^ml(f(\boldsymbol{x}_i),y_i) \]

正則化項 \(\Omega(f)\) :結構風險(Structural Risk)描述模型本身的某些性質,歸納偏好。

損失函式 \(l(f(\boldsymbol{x}_i),y_i)\) :經驗風險(Empirical Risk)描述模型與訓練資料的契合程度。

  • 正則化可理解為“罰函式法”,透過對不希望的結果施以懲罰,使得最佳化過程趨向於希望目標。
  • 從貝葉斯估計的角度,則可認為是提供了問題的先驗機率。

多層前饋網路結構

  • 多層網路:包含隱層的網路。

  • 前饋網路:神經元之間不存在同層連線也不存在跨層連線。

  • 隱層和輸出層神經元亦稱“功能單元”(Functional Unit)。

image-20240811173736673

多層前饋網路有強大的表示能力(“萬有逼近性”):

僅需一個包含足夠多神經元的隱層,多層前饋神經網路就能以任意精度逼近任意複雜度的連續函式 [Hornik et al., 1989]。

但是,如何設定隱層神經元數是未決問題(Open Problem),實際常用“試錯法”。

”簡單單元“:神經元模型

M-P神經元模型 [McCulloch and Pitts, 1943]

image-20240811174414792

神經網路學得的知識蘊含在連線權與閾值中。

決策樹模型

決策樹基於”樹“結構進行決策

  • 每個”內部節點“對應於某個屬性上的”測試“(test)。
  • 每個分支對應於該測試的一種可能結果(即該屬性的某個取值)。
  • 每個”葉節點“對應於一個”測試結果”。

image-20240811175527008

學習過程:透過對訓練樣本的分析來確定“劃分屬性”(即內部節點所對應的屬性)。

預測過程:將測試示例從根節點開始沿著劃分屬性所構成的“判定測試序列“下行,直到葉節點。

策略:“分而治之”(divide-and-conquer)

最佳化方法

無約束最佳化

  • 零階最佳化方法:\(f(\boldsymbol{x})\) .
  • 一階最佳化方法:\(f(\boldsymbol{x}),\nabla f(\boldsymbol{x})\) .
  • 高階最佳化方法:\(f(\boldsymbol{x}),\nabla f(\boldsymbol{x}),\nabla^2f(\boldsymbol{x}),\dots\) .
  • 隨機最佳化方法:隨機子集.

類別不平衡(class-imbalance)

不同類別的樣本比例相差很大;“小類”往往更重要。

基本思路:

\[若 \frac{y}{1-y}>1 則預測為正例 \rightarrow 若 \frac{y}{1-y}>\frac{m^+}{m^-} 則預測為正例 \]

\(y\) 正類機率

基本策略——“再縮放”(rescaling):

\[\frac{y'}{1-y'}=\frac{y}{1-y}\times\frac{m^-}{m^+} \]

然而,精確估計 \(\frac{m^-}{m^+}\) 通常很困難!

常見類別不平衡學習方法:

  • 過取樣(oversampling)
    例如:SMOTE
  • 欠取樣(undersampling)
    例如:EasyEnsemble
  • 閾值移動(threshold-moving)

多分類學習

拆解法:將一個多分類任務拆分為若干個二分類任務求解。

image-20240811215939740

OvO:

  • 訓練 \(\frac{N(N-1)}{2}\) 個分類器,儲存開銷和測試時間大。
  • 訓練只用兩個類的樣例,訓練時間短。

OvR:

  • 訓練 \(N\) 個分類器,儲存開銷和測試時間小。
  • 訓練用到全部訓練樣例,訓練時間長。

預測效能取決於具體資料分佈,多數情況下兩者差不多。

討論

傳統機器學習方法 vs. 當代大模型方法

image-20240811222619407

image-20240811222710275

image-20240811222827768

相關文章