1. 程式人生 > >線性回歸(一)

線性回歸(一)

.com fonts 應用 eight gre 垂直 三維 梯度 地理

什麽是機器學習?

機器學習:研究如何通過計算的手段,利用經驗來改善系統自身的性能。

機器學習分為監督學習和非監督學習。

  • 監督學習 (Supervised learning)

從給定的訓練數據集中學習出一個函數(模型參數),當新的數據到來時,可以根據這個函數預測結果。監督學習的訓練集要求包括輸入輸出,也可以說是特征和目標。

常見的有監督學習算法:回歸分析和統計分類

技術分享圖片

  • 非監督學習 (Unsupervised learning)

輸入數據沒有被標記,也沒有確定的結果。樣本數據類別未知,需要根據樣本間的相似性對樣本集進行分類(聚類,clustering

)試圖使類內差距最小化,類間差距最大化。

在實際應用中,不少 情況下無法預先知道樣本的標簽,也就是說沒有訓練樣本對應的類別,因而只能從原先沒有樣本標簽的樣本集開始學習分類器設計。

線性回歸

在對機器學習這門學科有了一個基本的認識後,我們就要正式開始進行模型算法的學習了。

在線性回歸這部分,這篇博客主要從以下幾個部分來討論:

  • 模型定義
  • 損失函數
  • 參數估計

以下筆記來自吳聞達老師的機器學習視頻。

模型定義

技術分享圖片

以上是監督學習問題的圖示描述,我們的目標是,給定訓練集,學習函數h:X→Y,使得h(x)是對於y有較好的預測值。

h(x)代表的是一個假設集合(Hypothesis ),我們要做的就是從這個假設集合中找出預測效果最好的那一個假設。

技術分享圖片

損失函數(Cost Function)

之前舉的例子,關於房價的預測問題,是一個單變量的回歸問題,輸入數據只有x維度為1,

我們建立的模型是技術分享圖片,我們的目標是讓這個直線盡可能的擬合所有數據,

即從數據的中心穿過,讓我們的每個預測值h(x)與我們的已知數值y盡可能的接近。

那麽,我們應該怎麽選擇最好的模型呢?通過求解參數theta1和theta2.

技術分享圖片

我們可以通過使用 cost function(損失函數)來測量我們的假設的準確性。 這需要使用來自x的輸入

和實際輸出y的假設的所有結果的平均差(實際上是平均值的更好的版本),如下。

技術分享圖片

說明:其實損失函數 J 計算的是h(x)與真實值y之間的垂直距離的平方和均值。

關於為什麽多一個1/2的問題,是為了以後求導方便,不用太在意這個。

技術分享圖片

為了問題描述的方便,首先使用上圖右邊的簡單模型,只有一個參數theta1.

下圖是對數據樣本點”X“的擬合狀態,

技術分享圖片

當在上圖中我們隨意旋轉h(x),將會得到不同的 J 值,可以得到下面的關於theta1 損失函數 J 的圖像:

技術分享圖片

當同時考慮兩個參數值 theta1和theta0時,損失函數的圖像是這樣的,被稱為bowl-shape function,碗狀的

技術分享圖片

下圖的右邊是上面三維圖像的二維展示,那一圈一圈的橢圓被稱為“等高線”(類似地理上的等高線),每一個橢圓上的不同點的 J 值都是相等的,

如圖中綠色橢圓上的三個點,越靠近中心的橢圓 J 值越小。

技術分享圖片

上面左圖對應的是右圖中用綠色圓圈標註的點(theta1=800,theta0=-1.5),對應的模型h(x)的圖像,右圖中每一個不同的點,

都會在左圖中對應一個不同的圖像,如下:

技術分享圖片

技術分享圖片

當然,我們理想的情況是類似上圖的情況,我們取的(theta1,theta0)出現圖中的中心theta0=450,theta1=0.12,

在這個點可以是損失函數達到最小,趨近於0.這樣我們就求得了模型參數theta0和theta1,進而得到最佳的假設h(x)。

參數估計:

Gradient Descent(梯度下降)

我們有了假設模型h(x),和損失函數 J,現在來討論如何求得theta1和theta0的方法,梯度下降。我們的問題描述如下:

技術分享圖片

需要不斷叠代,求得使損失函數 J 達到最小的theta1和theta0.

關於梯度下降的理解:

假設你現在站在兩座山包上的其中一座,你需要以最快的速度下到山的最低處。每到達一個新的地方,

都選擇在該點處梯度最大的方向下山即可。如圖:

技術分享圖片

梯度下降算法表示如下:其中標出了梯度(藍框內)和學習率(α > 0),梯度在這裏通俗的說就是函數 J 的偏導數。

註意:梯度下降算法對局部最小值敏感,梯度下降可能收斂在局部最小,不能保證收斂到全局最小值。

技術分享圖片

說明:在計算機科學中,x:=x+y表示,先計算x+y的結果再賦值給變量x,類似先計算a=x+y,然後使x的值等於a。

下圖為梯度為正、負的情況,theta的更新是不一樣的:

技術分享圖片

關於參數更新的問題,theta1和theta2必須同時更新,下圖左邊為正解,即不能使用更新過後的theta0來進一步更新theta1

(這將是後面要講到了另一種算法)。

技術分享圖片

關於學習率α的問題:

當a過小的時候,叠代步長太小,梯度下降得太慢;

當a過大的時候,叠代步長過大,梯度無法收斂到最小值,而發生左右震蕩的現象。

技術分享圖片

當固定a時,梯度下降法依然可以收斂到最小值(局部),

技術分享圖片

因為,當我們越靠近最小值時,我們的 梯度 越小,反應在上圖就是越來越平緩,所以上面藍色方框中的表達式會越來越小,

然後乘上a也越來越小,證明我們叠代的步長會逐步變小,即使我們使用的是固定不變的學習率a。

Gradient Descent For Linear Regression

(在線性回歸中使用梯度下降)

技術分享圖片

其推導過程如下,分別對 J 求 關於theta0和theta1的偏導數:

技術分享圖片

得到下面應用於線性回歸的梯度下降算法:

技術分享圖片

通過對以上算法的不斷叠代,我們求得了最好的假設h(x),其中紅色“x”的軌跡,就是算法叠代的過程。

技術分享圖片

線性回歸(一)