1. 程式人生 > >Coursera-AndrewNg(吳恩達)機器學習筆記——第三周

Coursera-AndrewNg(吳恩達)機器學習筆記——第三周

訓練 ros 方便 font 就是 梯度下降 全局最優 用法 郵件

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

  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. 正規化邏輯回歸中高級的求解參數θ方法:
    技術分享圖片 技術分享圖片
    技術分享圖片
    技術分享圖片

    無~~~~

Coursera-AndrewNg(吳恩達)機器學習筆記——第三周