1. 程式人生 > >CS229機器學習個人筆記(1)——Linear Regression with One Variable

CS229機器學習個人筆記(1)——Linear Regression with One Variable

1.Model Representation

第一個學習的演算法:線性迴歸演算法。

例子描述:這個例子是預測住房價格的,我們要使用一個數據集,資料集包含俄勒岡州波特蘭市的住房價格。在這裡,我要根據不同房屋尺寸所售出的價格,畫出我的資料集。比方說,如果你朋友的房子是 1250 平方尺大小,你要告訴他們這房子能賣多少錢。那麼,你可以做的一件事就是構建一個模型,也許是條直線,從這個資料模型上來看,也許你可以告訴你的朋友,他能以大約220000(美元)左右的價格賣掉這個房子。這就是監督學習演算法的一個例子(如下圖所示)。

這裡寫圖片描述

課程所需的數學符號以及意義:
m

—— 代表訓練集中例項的數量
x —— 代表特徵/輸入變數
y —— 代表目標變數/輸出變數
(x,y) —— 代表訓練集中的例項
(x(i),y(i)) —— 代表第 i 個觀察例項
h ——代表學習演算法的解決方案或函式也稱為假設(hypothesis)

這裡寫圖片描述

從圖中可以看出,我們通過訓練集的訓練最終得到了一個h,那麼h到底的長什麼樣呢?h可以表示為一種最簡單的一元二次函式,即:

h
θ
(x)=θ0+θ1x

因為只含有一個特徵/輸入變數,因此這樣的問題叫作單變數線性迴歸問題。

2.Cost Function

定義代價函式目的是為了更好的擬合我們的h和資料,這裡我們用誤差的平方和的1/2m來表示我們的代價函式 J(θ0,θ1)

J(θ0,θ1)=12mi=1m(hθ(x(i))y(i)))2

其實我們真正要做的就是儘量減少這個代價函式的值,那麼怎麼減少呢?
我們先將 J(θ0,θ1) 簡化為 J(θ1) ,也就是讓 θ0=0
這個時候我們可以根據不同的 θ1 可以得到不同的 J(θ1) ,便可得到下圖:

這裡寫圖片描述

上圖使我們假設 θ0=0 的情況下得到的,此時讓 θ0 變回變數,此時的代價函式會長成什麼樣子呢?
這裡寫圖片描述

變數從一個變為兩個,維度很自然的從二維變成了三維,為了方便描述,將三維圖畫成了等高線圖。

3.Gradient Descent

前兩節我們最終得到了一個代價函式的圖,但是前提是假設我們計算了所有可能的 θ0,θ1 下的代價。那麼在真實情況下,我們很難那麼去做,這是就引出了梯度下降的演算法。

思想:

開始時我們隨機選擇一個引數的組合(θ0,θ1,…,θn), 計算代價
函式,然後我們尋找下一個能讓代價函式值下降最多的引數組合。我們持續這麼做直到到到一個區域性最小值(local minimum) , 因為我們並沒有嘗試完所有的引數組合,所以不能確定我們得到的區域性最小值是否便是全域性最小值(global minimum),選擇不同的初始引數組合,可能會找到不同的區域性最小值。
這裡寫圖片描述

想象一下你正站立在山的這一點上,站立在你想象的公園這座紅色山上,在梯度下降演算法中,我們要做的就是旋轉 360 度,看看我們的周圍,並問自己要在某個方向上,用小碎步儘快下山。這些小碎步需要朝什麼方向?如果我們站在山坡上的這一點,你看一下週圍,你會發現最佳的下山方向,你再看看周圍,然後再一次想想,我應該從什麼方向邁著小碎步下山?然後你按照自己的判斷又邁出一步,重複上面的步驟,從這個新的點,你環顧四周,並決定從什麼方向將會最快下山,然後又邁進了一小步,並依此類推,直到你接近區域性最低點的位置。
這裡寫圖片描述

  1. 學習率 α : 小了下降速度慢,但利於收斂,大了下降速度快,但很可能導致難以收斂,甚至發散。
  2. θ0,θ1 保持同步跟新。
  3. 學習率 α 不變也能收斂是因為,梯度下降公式中的導數值會變小。