機器學習筆記

第一節

機器學習定義

對於一個計算機程序來說,給它一個任務T和一個性能測量方法P,如果在經驗E的影響下,P對T的測量結果得到了改進,那麼就說程序從E中學習。

監督學習

迴歸問題

房價的預測

分類問題

判斷腫瘤是否為良性或惡性

無監督學習

聚類問題

通常人們會根據樣本間的某種距離或者相似性來定義聚類,即把相似的(或距離近的)樣本聚為一類,而把不相似的(或距離遠的)樣本歸為其他類;

圖像像素的分組、社會網絡分析、市場數據分析、話筒收錄的聲音的分類;

強化學習

在強化學習過程中,通常會在一段時間內完成一系列決策 ;

控制直升飛機:一個錯誤的決策不對導致飛機摔下來但是一系列的錯誤決策會,同樣一系列的正確的決定會讓飛機飛得更好;

通常通過回報函數來實現強化學習,讓機器儘量做多的正確決策和儘量少的決策來獲得更多的回報;

聚類和分類的區別

  • 聚類分析是研究如何在沒有訓練的條件下把樣本分為若干類
  • 在分類中,我們事先會確定每一類的範圍和區分標準,要做的就是將符合標準的記錄標記出來
  • 聚類指事先不知道任何樣本的類別標號,希望通過某種算法把某一組未知類別的樣本區分出來,以某種度量(如距離)為標準的相似性,在同一聚類中最小化,在不同聚類之間最大化

第二節

線性迴歸


h(x)=∑i=0nθixi=θθTXh(x)=∑i=0nθixi=θθTX


θiθi被稱為參數,最初設置為0,通過機器學習不斷更新θiθi(即下面不斷對θiθi進行賦值)。利用訓練集得出合適θiθi,是機器學習的任務;(x,y)是訓練集,hθ(x)hθ(x)是假設h(x)h(x)基於訓練集得出的結果。

梯度下降

選取一個點,找到一個下降最快的方向正是梯度的方向前進一步;重複這個過程直到一個最低的位置;

性質

  • 如果切換起始點位置 ,可能會到一個截然不同的局部最低點;
  • 當接近局部最小值的時候,梯度會自動越來越小直至減到0;

批梯度下降法

規則


J(θ)=minθ{∑nj=1(hθ(x(j))−y(j))22}J(θ)=minθ{∑j=1n(hθ(x(j))−y(j))22}


除以2是為了簡化之後的數學計算;J(θ)J(θ)對於θiθi求偏導得到θiθi(:=:=是賦值號):

  • 只有一組訓練樣本:θi:=θi−α(hθ(x)−y)xiθi:=θi−α(hθ(x)−y)xi
  • 對於多組訓練樣本:θi=θi−α∑nj=1(hθ(x(j))−y(j))x(j)iθi=θi−α∑j=1n(hθ(x(j))−y(j))xi(j)( x(j)表示第j個x而不是j次方或j次偏導)

αα為學習速度,由手動設置,決定每次“前進”的步長。如果設置的值過小,會導致要花很長時間去收斂;如果設置的值過大,可能會導致錯過最小值。

分析

每次梯度下降,都要對j從1到n進行求和,程序就要檢測所有訓練樣本,對於幾百萬甚至幾億的數據十分耗費資源

隨機梯度下降算法(增量梯度下降)

規則

對於所有的ii:j=1−>n{θi:=θi−α(hθ(x(j))−y(j))x(j)i}j=1−>n{θi:=θi−α(hθ(x(j))−y(j))xi(j)}

首先第一次僅僅查看第一個訓練樣本並利用第一個訓練樣本對θi進行修改;然後再用第二個訓練樣本θi進行修改;

分析

對於大規模的數據集隨機 梯度算法會快得多,但不會精準的收斂到全局最小值,可能會一直在最小值周圍徘徊。

正規方程組

定義JJ對於θiθi的梯度是一個n+1維的向量,即∇θJ=(∂J∂θ0,∂J∂θ1,...,∂J∂θn)T∇θJ=(∂J∂θ0,∂J∂θ1,...,∂J∂θn)T

將批梯度下降算法寫成:θ:=θ−α∇θJθ:=θ−α∇θJ

定義設計矩陣X包含了訓練集中所有輸入的矩陣,X=((x(1))T,(x(2))T,...,(x(m))T)X=((x(1))T,(x(2))T,...,(x(m))T)(m個訓練樣本),定義矩陣Y包含所有訓練集的目標數據,也是m維矩陣;


XθXθ−YY=((h(x(1))−y(1)),(h(x(2))−y(2)),...,(h(x(m))−y(m)))T(Xθ−YXθ−Y)T(Xθ−YXθ−Y)2=J(θ)XθXθ−YY=((h(x(1))−y(1)),(h(x(2))−y(2)),...,(h(x(m))−y(m)))T(Xθ−YXθ−Y)T(Xθ−YXθ−Y)2=J(θ)


令∇θJ=0∇θJ=0,即∇θ(Xθ−YXθ−Y)T(Xθ−YXθ−Y)2=0∇θ(Xθ−YXθ−Y)T(Xθ−YXθ−Y)2=0,展開化簡經過漫長的計算後可以得到:


θθ=(XXTXX)−1XXTYYθθ=(XXTXX)−1XXTYY


第三節

欠擬合和過擬合

欠擬合:使用了較小的訓練集得出了一個比較簡單的模型

過擬合:由於使用了過大的訓練集導致算法過於複雜,算法僅僅恰好符合給出的訓練集的特性而沒有反映出更一般的規律

局部加權迴歸

參數學習算法是一種有固定數目的參數以用來數據擬合的算法

非參數學習算法是一種參數數量會隨訓練集合大小增加而增加的算法

概念

選取訓練集中的一點x,x(i)是x點周邊的值,我們通過這種方式來擬合θ的值:h(x)=∑iw(i)(y(i)-θTx(i))2

其中w(i)表示權重,w(i)=exp(-(x(i)-x)2/2τ2)。如果訓練樣本只有一個,即x(i)和x非常接近,那麼w(i)≈1;如何訓練樣本很大,x(i)離x很遠,那麼對應的權重w(i)≈0;其中w(i)可以用其他函數,參數τ2被稱為波長函數,它控制了權值隨距離下降的速率。

局部加權迴歸是非參數學習算法。

Logistic函數

g(z)=1/(1+e-z)稱為Logistic函數或Sigmoid函數,g(z)∈[0,1]

對於非線性函數,特別的我們令hθ(x)=g(θTX

)=1/(1+e-θTX)

P(y=1|x;θ)=hθ(x);P(y=0|x;θ)=1-hθ(x),則P(y|x;θ)=hθ(x)y(1-hθ(x))1-y

令L(θ)=P(y|x;θ)=∏iP(y(i)|x(i);θ)=∏ihθ(x)y(i)(1-hθ(x(i)))1-y(i)

對L(θ)取對數得到l(θ),利用之前梯度下降的方法(這裡是最大化)得到θ:=θ+α▽θl(θ)

l(θ)對θj求偏導得到:θj:=θj+α∑nj=1(y(i)-hθ(x(i)))x(i)j

這裡的hθ(x)是Logistic函數,和前面的線性迴歸函數不一樣。最終得到一樣或相似的學習規則並不是巧合。

感知器算法

g(z)=1(z>=0) 0(z<0)

hθ(x)=g(θTX)

θj:=θj+α(y(i)-hθ(x(i)))x(i)j

第四節

牛頓方法

假設我們有一個函數f(θ),想找出f(θ)=0的θ值。

首先隨便找一個座標(θ(0),f(θ(0))),對其求切線並延長與θ軸相交,將相交點的橫座標記為θ(1),再次對其求切線延長與θ軸相交;重複上述步驟直至f(θ(i))=0。

用公式表示即:

記兩個θ之間的距離為△,f'(θ(0))=f(θ(0))/△,可以推出△=f(θ(0))/f'(θ(0));

那麼θ(1)=θ(0)-△即θ(1)=θ(0)-f(θ(0))/f'(θ(0));

通常來說,對牛頓方法的一次迭代θ(t+1)=θ(t)-f(θ(t))/f'(θ(t))

用相同的思想,如果我們有一個函數l(θ),求其最大值,可以令l'(θ)=0,那麼θ(t+1)=θ(t)-l'(θ(t))/l''(θ(t))

對於一般化的牛頓方法(θ是向量的情況下):θ(t+1)=θ(t)-H-1▽θl

這裡的▽θl表示l的梯度,H叫做Hession矩陣,Hij=ə2l/əθiəθj

對於合理的特徵數量此種算法較快

指數分佈族

T(y)是充分估計量

伯努利分佈

Ber(Φ) P(y=1:Φ)=Φ

P(y:Φ)=Φy(1-Φ)1-y=exp(logΦy(1-Φ)1-y)=exp(ylogΦ+(1-y)log(1-Φ))=exp(ylog(Φ/(1-Φ))+log(1-Φ))

我們令ŋ=log(Φ/(1-Φ)),T(y)=y,-a(ŋ)=log(1-Φ);由ŋ=log(Φ/(1-Φ))我們可以得到Φ=1/(1+e-ŋ)即Logistic函數

a(ŋ)=-log(1-Φ),將Φ=1/(1+e-ŋ)代入得到a(ŋ)=log(1+e-ŋ)

高斯分佈

f(x)=exp(-(x-b)2/(2c2),這裡我們令c2=1

1/(2π)1/2exp((-1/2)(y-μ)2)=...=1/(2π)1/2exp(-y2/2)exp(μy-μ2/2)

令μ=ŋ,T(y)=y,a(ŋ)=μ2/2=ŋ2/2


機器學習筆記


分享到:


相關文章: