機器學習面試點雜記

本文用於自己整理機器學習相關概念與原理,如有錯誤歡迎在評論裏指正!~

信息量:I(xi)=log(p(xi))I(x_i)=-log(p(x_i))
熵:H(x)=inp(xi)log(p(xi))H(x)=-\sum_i^np(x_i)log(p(x_i))
KL散度(相對熵):DKL(pq)=inp(xi)(Iq(xi)Ip(xi)))=inp(xi)logp(xi)q(xi)=H(x)+[inp(xi)log(q(xi))]D_{KL}(p||q)=\sum_i^np(x_i)(I_q(x_i)-I_p(x_i)))=\sum_i^np(x_i)log\frac{p(x_i)}{q(x_i)}=-H(x)+[-\sum_i^np(x_i)log(q(x_i))]
交叉熵:H(p,q)=inp(xi)log(q(xi))H(p,q)=-\sum_i^np(x_i)log(q(x_i))

參數模型與非參數模型

參考博客

SVM

幾何間隔:γ=2ω\gamma=\frac{2}{||\omega||}
約束條件:yi(ωTxi+b)1,(i=1,2,...,m)y_i(\omega^Tx_i+b)\geq1, ( i=1,2,...,m)

1. 原始問題

硬間隔(結構風險):

  • minω,b12ω2\min_{\omega,b} \frac{1}{2}||\omega||^2
  • yi(ωTxi+b)1,(i=1,2,...,m)y_i(\omega^Tx_i+b)\geq1, ( i=1,2,...,m)

軟間隔(結構風險+經驗風險):

  • minω,b12ω2+Ci=1mξi\min_{\omega,b} \frac{1}{2}||\omega||^2+C\sum_{i=1}^m\xi_i
  • yi(ωTxi+b)1ξi,(i=1,2,...,m)y_i(\omega^Tx_i+b)\geq1-\xi_i, ( i=1,2,...,m)

2. 拉格朗日函數

拉格朗日函數:L(ω,b,α)=12ω2+i=1mαi(1yi(ωTxi+b))L(\omega,b,\alpha)=\frac{1}{2}||\omega||^2+\sum_{i=1}^m\alpha_i(1-y_i(\omega^Tx_i+b))
拉格朗日原始問題:minω,bmaxαL(ω,b,α)\min_{\omega,b}\max_\alpha L(\omega,b,\alpha)
拉格朗日對偶問題:maxαminω,bL(ω,b,α)\max_\alpha\min_{\omega,b} L(\omega,b,\alpha)

3. 對偶問題

L(ω,b,α)L(\omega,b,\alpha)分別對ω\omegabb求偏導:
ω=i=1mαiyixi\omega=\sum_{i=1}^m\alpha_iy_ix_i
0=i=1mαiyi0=\sum_{i=1}^m\alpha_iy_i

硬間隔對偶問題即爲:

  • maxαi=1mαi12i=1mαiαjyiyjxiTxj\max_{\alpha} \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\alpha_i\alpha_jy_iy_jx_i^Tx_j
  • 對於i=1,2,...,mi=1,2,...,m
    • i=1mαiyi=0\sum_{i=1}^m\alpha_iy_i=0
    • αi0\alpha_i\geq 0

軟間隔對偶問題即爲:

  • maxαi=1mαi12i=1mαiαjyiyjxiTxj\max_{\alpha} \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\alpha_i\alpha_jy_iy_jx_i^Tx_j
  • 對於i=1,2,...,mi=1,2,...,m
    • i=1mαiyi=0\sum_{i=1}^m\alpha_iy_i=0
    • Cαi0C\geq \alpha_i\geq 0

4. 轉化爲對偶問題的好處

  1. 不等式約束轉化爲等式約束
  2. 方便引入核函數
  3. 降低問題複雜度
    a. 原始問題中,複雜度與樣本的維度ω\omega有關;對偶問題中,複雜度只與樣本數量mm有關。
    b. 係數α\alpha僅在支持向量中非0,其它全部爲0。

5. 合頁損失函數

軟間隔最大化,則有合頁損失函數:L(y(ωx+b))=[1y(ωx+b)]+L(y(\omega x+b))=[1-y(\omega x+b)]_+
優化目標爲:mini=im[1yi(ωxi+b)]++λω2\min \sum_{i=i}^m[1-y_i(\omega x_i+b)]_++\lambda||\omega||^2

6. 多分類SVM

  • ovr:訓練kk個分類器,總體速度較快
    • 訓練單個模型時,相對速度較慢
    • 類別不對稱,可採用較大的懲罰因子C
    • 當有新的類別加進來時,需要對所有的模型進行重新訓練
  • ovo:訓練k(k1)2\frac{k(k-1)}{2}個分類器,總體速度較慢
    • 在訓練單個模型時,相對速度較快
    • 當有新的類別加進來時,不需要重新訓練所有的模型

7. 高斯核函數

參考博客

LR

1. 二項邏輯迴歸

對數機率爲輸入xx的線性函數:logit(P(Y=1x))=P(Y=1x)1P(Y=1x)=ωxlogit(P(Y=1|x))=\frac{P(Y=1|x)}{1-P(Y=1|x)}=\omega x
條件概率分佈爲:

  • logit(P(Y=1x))=eωx1+eωxlogit(P(Y=1|x))=\frac{e^{\omega x}}{1+e^{\omega x}}
  • logit(P(Y=0x))=11+eωxlogit(P(Y=0|x))=\frac{1}{1+e^{\omega x}}

2. 多項邏輯迴歸(K項)

ii項與第KK項的對數概率比:P(Y=ix)P(Y=Kx)=ωix\frac{P(Y=i|x)}{P(Y=K|x)}=\omega_i x
再根據總概率和爲1,多項邏輯迴歸的條件概率分佈爲:

  • logit(P(Y=ix))=eωix1+i=1K1eωxlogit(P(Y=i|x))=\frac{e^{\omega_i x}}{1+\sum_{i=1}^{K-1}e^{\omega x}}
  • logit(P(Y=Kx))=11+i=1K1eωxlogit(P(Y=K|x))=\frac{1}{1+\sum_{i=1}^{K-1}e^{\omega x}}

3. 損失函數

似然函數:i=1N[π(xi)]yi[1π(xi)]1yi\prod_{i=1}^N[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}
對數似然:L(ω)=i=1N[yilnπ(xi)+(1yi)ln(1π(xi))]L(\omega)=\sum_{i=1}^N[y_iln\pi(x_i)+(1-y_i)ln(1-\pi(x_i))]
損失函數:J(ω)=1Ni=1N[yilnπ(xi)+(1yi)ln(1π(xi))]J(\omega)=-\frac{1}{N}\sum_{i=1}^N[y_iln\pi(x_i)+(1-y_i)ln(1-\pi(x_i))],本質上就是衡量真實分佈和預測分佈之間的交叉熵

4. LR與SVM區別

  • LR是參數模型,SVM是非參數模型。
  • 從目標函數來看,區別在於邏輯迴歸採用的是logistical loss,SVM採用的是hinge loss.這兩個損失函數的目的都是增加對分類影響較大的數據點的權重,減少與分類關係較小的數據點的權重。
  • SVM的處理方法是隻考慮support vectors,也就是和分類最相關的少數點,去學習分類器。而邏輯迴歸通過非線性映射,大大減小了離分類平面較遠的點的權重,相對提升了與分類最相關的數據點的權重。
  • 邏輯迴歸相對來說模型更簡單,好理解,特別是大規模線性分類時比較方便。而SVM的理解和優化相對來說複雜一些,SVM轉化爲對偶問題後,分類只需要計算與少數幾個支持向量的距離,這個在進行復雜核函數計算時優勢很明顯,能夠大大簡化模型和計算。
  • logic 能做的 svm能做,但可能在準確率上有問題,svm能做的logic有的做不了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章