1. 程式人生 > >吳恩達 機器學習 第三週

吳恩達 機器學習 第三週

轉載https://www.cnblogs.com/LoganGo/p/8562575.html

一.邏輯迴歸問題(分類問題)

  1. 生活中存在著許多分類問題,如判斷郵件是否為垃圾郵件;判斷腫瘤是惡性還是良性等。機器學習中邏輯迴歸便是解決分類問題的一種方法。
    二分類:通常表示為yϵ{0,1},0:“Negative Class”,1:“Possitive Class”。
  2. 邏輯迴歸的預測函式表示式hθ(x)(hθ(x)>=0 && hθ(x)<=1):

    其中g(z)被稱為邏輯函式或者Sigmiod函式,其函式圖形如下:

    理解預測函式hθ(x)的意義:其實函式hθ(x)的值是系統認為樣本值Y為1的概率大小,可表示為hθ(x)=P(y=1|x;θ)=1-P(y=0|x;θ).

  3. 決策邊界(Decision boundary):y=0和y=1的分界線,由邏輯函式圖形可知,當y=1時,g(z)>=0.5,z>=0,也就是說θTX>=0,這樣我們就可以通過以xi為座標軸,作出θTX=0這條直線,這條直線便是決策邊界。如下圖所示:
  4. 代價函式(Cost Function)J(θ):一定要是一個凸函式(Convex Function),這樣經過梯度下降方便找到全域性最優 。

    根據以上兩幅圖我們可以看出,當預測值hθ(x)和實際值結果y相同時,代價值為0;當預測值hθ(x)和實際結果y不同時,代價值無窮大。組合在一起可以寫為:

    向量化後可寫為:

  5. 梯度下降演算法:和線性迴歸中使用的一樣

    向量化:
  6. 高階優化方法(用來代替梯度下降選擇引數θ):Conjugate gradient(共軛梯度法)、BFGS、L-BFGS,只需要掌握用法即可,不需瞭解原理。
    優點:不需要手動選擇學習速率α,收斂速度比梯度下降快,更復雜。

    複製程式碼

    %首先寫一個函式用來計算代價函式和代價函式的梯度
    function [jVal, gradient] = costFunction(theta)
      jVal = [...code to compute J(theta)...];
      gradient = [...code to compute derivative of J(theta)...];
    end
    
    %然後在命令列中通過呼叫fminunc()函式來計算引數θ
    

    options = optimset('GradObj', 'on', 'MaxIter', 100);
    initialTheta = zeros(2,1);
    [optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);

    複製程式碼

  7. 多分類問題:可以轉化為n+1個二分類問題看待,如下:

    通過這種形式,我們可以預測出結果最接近哪個y值。

二.過擬合問題和解決方法

  1. Underfit:欠擬合問題具有高偏差;Overfit:過擬合問題具有高方差。

  2. 過擬合的定義:如果訓練集中有過多的特徵項,訓練函式過於複雜,而訓練資料又非常少。我們學到的演算法可能會完美的適應訓練集,也就是說代價會接近與0。但是卻沒有對新樣本的泛化能力。

  3. 解決方法:手動的選擇合適的特徵;或者使用模型選擇演算法(用來選取特徵變數)。

  4. 正規化(Regularization):正則化中我們將保留所有的特徵變數,但是會減小特徵變數的數量級(引數數值的大小θ(j)),相當於減少引數θ(j)所對應的多項式對整個預測函式的影響。以下內容以線性迴歸為例。
    正規化代價函式:其中λ過大會導致欠擬合。

    正規化梯度下降:θ0不需要

    其中當引數Θ不為θ0時,梯度下降形式又可以改寫為:

    正規化正規方程:其中L為(n+1)*(n+1)維矩陣。

  5.  正規化邏輯迴歸:

    代價函式:

    梯度下降形式和線性迴歸相同。

  6. 正規化邏輯迴歸中高階的求解引數θ方法: