1. 程式人生 > >【面試複習系列】常用機器學習演算法知識點及其解析,面試官會考的幾乎都有,歡迎補充

【面試複習系列】常用機器學習演算法知識點及其解析,面試官會考的幾乎都有,歡迎補充

圖片慢慢上傳,看不到圖片的請點這裡: LR:logistic regression  對數機率迴歸/邏輯迴歸
sigmoid函式的作用就是用於把輸出歸一到1和0,也就是把自變數的線性組合進行歸一化,對映後的值被認為是屬於y=1的概率。 所以對於一個普通的高斯樣本需要證明sigmoid複合其概率密度規律。
  • 引入sigmoid函式以刻畫y屬於某個類的概率
一開始先引入一個對於某一個y,x符合正態分佈的性質: 因此P(y|x)符合正態分佈: 所以求:  的話,由貝葉斯:  得到:  然後,由於P(x|y)是高斯的,則上式等於:

如果σ1=σ0σ1=σ0,二次項會抵消,我們得到一個簡單的線性關係:

由上式進一步可以得到:

 就獲得sigmoid函式:
  • 求二分類通用的log-loss函式(只要帶入任意y=g(x)函式就可以求出對應log-loss函式)
然後,對於二分類問題,假設y=g(x),有:
  1. P(y=1|x)=g(x)
  2. P(y=0|x)=1-g(x)
其最大似然函式: 3. 【因為y要麼就是0要麼就是1,所以這樣的寫法是1和2兩條式子的簡寫,所以稱為二分類通用】 然後就對3求log,獲得:  於是求-l(
θ)的最小值就可以求得L(θ)的最大值。 也就是說,-l(θ)+正則項就是loss 然後,可以把g(x)=logistic函式帶進去求解,求最小值
  • 優化求最小值
求最小值的方法:牛頓法
牛頓法指出,求使f(θ)=0的θ,只需要一開始先固定一個θ,比如說θ=0,然後輸入其他值使得 θ(t+1)θt-Δθt 其中一維的情況,Δθ=f '(θt)/f(θt)(多維的情況,Δθ 前面要乘以個hassin矩陣的逆) 所以現在要求使得-l(θ)=0的θ,也就是讓loss等於0 ,那麼就令f(θ)= -l(θ),帶入公式進行求解即可 牛頓法是二階收斂,而梯度下降則為一階收斂,所以牛頓法更快。
簡單來說,梯度下降是從所處位置選擇一個坡度最大的方向走一步,而牛頓法則在選擇方向時,不僅考慮坡度,還會考慮坡度的坡度,也就是下一步的坡度是否會變得更大。 幾何上來說,牛頓法是用一個二次曲面去擬合當前所處位置的局部曲面,而梯度下降法是用一個平面去擬合當前的局部曲面 其侷限主要在於 1.矩陣的逆計算複雜度為n的立方,當規模很大時,計算量超大,通常改良做法是採用擬牛頓法如BFGS,L-BFGS等 2.如果初始值離區域性極小值太遠,Taylor展開並不能對原函式進行良好的近似
  • 其他優化方法
    • BFGS
    • L-BFGS
    • 優缺點:無需選擇學習率α,更快,但是更復雜
  • 特徵空間非線性的情況
通過特徵組合進行升維。 左圖是一個線性可分的資料集,右圖在原始空間中線性不可分,但是在特徵轉換 後的空間是線性可分的,對應的原始空間中分類邊界為一條類橢圓曲線。
  • 正則化
可以引入權重的n階模進行正則化,防止過擬合,並加入先驗知識,去除野點和噪聲: 實際應用時,由於我們資料的維度可能非常高,L1正則化因為能產生稀疏解,使用的更為廣泛一些。
L2用於過擬合
  • 多分類softmax【類別互斥的時候使用】
如果是多分類就不能用sigmoid函式,要用Softmax。 Softmax 迴歸是直接對邏輯迴歸在多分類的推廣,相應的模型也可以叫做多元邏輯迴歸(Multinomial Logistic Regression)。 模型通過 softmax 函式來對概率建模,具體形式如下:  不互斥的時候,應該用k個LR 程式碼: output = sigmoid(train_x * weights)  
error = train_y - output  
weights = weights + alpha * train_x.transpose() * error  

  • 優缺點:
Logistic迴歸優點:
  1. 實現簡單;
  2. 分類時計算量非常小,速度很快,儲存資源低;

缺點:

  1. 容易欠擬合,一般準確度不太高
  2. 只能處理兩分類問題(在此基礎上衍生出來的softmax可以用於多分類),且必須線性可分;

LWLR線性迴歸:linear regression   就是最小二乘法                        

  線性迴歸才是真正用於迴歸的,而不像logistic迴歸是用於分類,其基本思想是用梯度下降法對最小二乘法形式的誤差函式J進行最小化:

【前面的1/2只是為了求導的時候更簡單而加上的】

當然也可以由已經推匯出的公式直接求得引數的解,對於多變數資料集X,如果XTX是滿秩的,結果為:

多數情況XTX並不是滿秩的正定矩陣,所以會有多個可行解,所以一般會在J中引入正則項以進一步選擇輸出的模型(L1=稀疏的(特徵大於樣本常用),L2=防止過擬合的)。

而其優化演算法為:

  由此可見LWLR與LR不同,LWLR是一個非引數模型,因為每次進行迴歸計算都要遍歷訓練樣本至少一次。

線性迴歸優點:

  實現簡單,計算簡單;

缺點:

  不能擬合非線性資料;


SVM:

  • 找到分割兩個樣本“正中間”的超平面,幾何間隔與樣本的誤分次數間存在關係:其中的分母就是樣本到分類間隔距離,分子中的R是所有樣本中的最長向量值
  • C表現離群點的重要性(可以理解為權重),越大離群點越重要
  • gamma是你選擇徑向基函式作為kernel後,該函式自帶的一個引數。隱含地決定了資料對映到新的特徵空間後的分佈
原理: 求一個斜率,使得其到兩個類別的最近的樣本點(支援向量)的距離相同 這種距離應該用幾何距離:  有: 其中||w||為w的L2範數(範數是一個類似於模的表示長度的概念), 是單位向量(一個向量除以它的模稱之為單位向量),所以幾何間隔不會因為引數比例的改變而改變 。 所以距離就等於:  並令這個距離=1(因為線性,所以w和b成比例縮放,定為1方便計算) 就可以求出最優平面,把支援向量帶進去令就可以求出b  證明: 1.求幾何距離的最小值,考慮之前得到的目標函式:

2.升次 由於求的最大值相當於求的最小值: 所以上述目標函式等價於(w由分母變成分子,從而也有原來的max問題變為min問題,很明顯,兩者問題等價):

    因為現在的目標函式是二次的,約束條件是線性的,所以它是一個凸二次規劃問題。在一定的約束條件下可解。

    此外,由於這個問題的特殊結構,還可以通過求解與原問題等價的對偶問題得到原始問題的最優解

【通過拉格朗日對偶性變換到對偶變數的優化問題 

這就是線性可分條件下支援向量機的對偶演算法

【這樣做的優點在於:一者對偶問題往往更容易求解;二者可以自然的引入核函式,進而推廣到非線性分類問題。 

3.採用拉格朗日對偶性轉移到對偶問題

通過給每一個約束條件加上一個拉格朗日乘子,定義拉格朗日函式(即通過拉格朗日函式將約束條件融合到目標函式裡去,從而我們的問題變成

    然後令

   【 容易驗證,當某個約束條件不滿足時,例如
,那麼顯然有只要令即可)。而當所有約束條件都滿足時,則最優值為亦即最初要最小化的量。】

因此,在要求約束條件得到滿足的情況下最小化實際上等價於直接最小化(當然,這裡也有約束條件,就是≥0,i=1,…,n),因為如果約束條件沒有得到滿足

會等於無窮大,自然不會是我們所要求的最小值。     具體寫出來,目標函式變成了:

4.轉移到對偶問題

如果直接求解,那麼一上來便得面對w和b兩個引數,而又是不等式約束,這個求解過程不好做。不妨把最小和最大的位置交換一下,變成:

 這交換以後的新問題是原始問題的對偶問題,這個新問題的最優值用d*來表示。而且有d*≤p*,在滿足某些條件的情況下,這兩者相等,這個時候就可以通過求解對偶問題來間接地求解原始問題。

    換言之,之所以從minmax的原始問題p*,轉化為maxmin的對偶問題d*,一者因為d*是p*的近似解,二者,轉化為對偶問題後,更容易求解。

    下面可以先求wb的極小,再求L對α的極大。

5.d*≤p*的條件——KKT條件(使得非線性規劃有最優解的必要條件)

對於一個一般的非線性規劃問題,其中,f(x)是需要最小化的函式,h(x)是等式約束,g(x)是不等式約束,p和q分別為等式約束和不等式約束

 然後,有凸優化的概念,凸優化就是找到凸集裡的一個點x,使得凸函式   即是“最大點”“最凸點”
 KKT條件就是:  所以因為原始問題滿足KKT條件,已經轉化成了對偶問題。而求解這個對偶學習問題,分為3個步驟:首先要讓L(w,b,a) 關於 w 和 b 最小化,然後求對α的極大,最後利用SMO演算法求解對偶問題中的拉格朗日乘子。 6.此對偶問題的求解 首先固定α,讓L關於w和b最小化,就是對w和b的偏導數都等於0:  然帶入得: 然後用SMO演算法求對α的極大:  就可以求出α,然後根據這個求出w和b,終得出分離超平面和分類決策函式  7.線性分類函式 對於一個數據點 x 進行分類,實際上是通過把 x 帶入到算出結果然後根據其正負號來進行類別劃分的。而前面的推導中我們得到: 因此分類函式為: 這裡的形式的有趣之處在於,對於新點 x的預測,只需要計算它與訓練資料點的內積即可,因為: 中,非支援向量的紅色部分的大於0的,而α又是非負的,所以α等於0 而事實上,只有支援向量的α≠0,也就是說只要跟支援向量做內積就可以 8.線性不可分的情況——進行高維對映 事實上,大部分時候資料並不是線性可分的,這個時候滿足這樣條件的超平面就根本不存在。在上文中,我們已經瞭解到了SVM處理線性可分的情況,那對於非線性的資料SVM咋處理呢? 一個理想的分界應該是一個“圓圈”而不是一條線(超平面)。如果用  來表示這個二維平面的兩個座標的話,我們知道一條二次曲線(圓圈是二次曲線的一種特殊情況)的方程可以寫作這樣的形式: 如果我們構造另外一個五維的空間,其中五個座標的值分別為 那麼顯然,上面的方程在新的座標系下可以寫作:  於是產生線性方程 也就是說,如果我們做一個對映就能把樣本對映到新的線性可分的空間中。 9.通過核函式在低維空間處理高維維度的內積
但是這樣就會有維度爆炸的問題。而且如果遇到無窮維的情況,就根本無從計算了。所以就需要 Ker