吳恩達機器學習(一)
一、什么是機器學習(what is Machine learning)?
機器學習演算法主要有兩種機器學習的演算法分類
- 監督學習
- 無監督學習
兩者的區別為是否需要人工參與資料結果的標注
1.監督學習
監督學習:預先給一定資料量的輸入和對應的結果即訓練集,建模進行擬合,最后讓計算機預測未知資料的結果,
監督學習一般有兩種:

- 回歸問題(Regression)
回歸問題是預測連續值的輸出,例如房價等
在吳恩達老師課程中,給出了一個房屋價格預測的例子中,給出了一系列的房屋面積資料,以及房屋價格,根據這些資料來搭建一個預測模型,在預測時,給出房屋面積,根據模型得出房屋價格,
- 分類問題(Classification)
分類問題即為預測一系列的離散值,根據一系列資料(同回歸問題不一樣的是,分類問題的y值是一種離散值,比如0 or 1,又比如cat dog pig)等等,即根據資料預測被預測物件屬于哪個分類,
在吳恩達老師課程中舉了癌癥腫瘤這個例子,針對診斷結果,分別分類為良性或惡性,還例如垃圾郵件分類問題,也同樣屬于監督學習中的分類問題,
2.無監督學習
相對于監督學習,訓練集不會有人為標注的結果(無反饋),無法得知訓練集的結果是什么樣,而是單純由計算機通過無監督學習演算法自行分析,從而“得出結果”,計算機可能會把特定的資料集歸為幾個不同的簇,故叫做聚類演算法,
在吳恩達老師課程中,舉了一個新聞的聚類問題,每天有無數條新聞,一些公司將這些新聞進行分類,將同一個話題的新聞放在一塊,
二、單變數線性回歸(Linear Regression with One Variable)
1.模型表示
- x 代表目標變數/輸出變數
- y 代表目標變數/輸出變數
- h(x) 代表假設函式
- 定義\(h ( x ) = \theta_0+\theta_1x\) 為假設函式,因此之后的任務是求出\(\theta\),來擬合給定的資料集

- 線性回歸是擬合一條線,將訓練資料盡可能分布到線上,這里我們只有一個變數x,所以成為單變數的線性回歸,另外還有多變數的線性回歸稱為多元線性回歸,
2.代價函式
2.1 定義
代價函式(cost function),一般使用最小均方差來評估引數的好壞,
定義代價函式為:\(J(θ_0,θ_1)=\frac{1}{2m}\sum_{i=1}^{m}(h_θ(x^i)?y^i)^2\),這里的m指的是m個已知x和y的點
2.2 可視化
- 簡化假設函式\(h ( x ) = \theta_1x\),即\(\theta_0=0\)(單引數)

從右圖中可以看到當\(\theta_1=1\)時,對應的\(J(θ_1)\)最小,而此時左圖中的假設函式\(h ( x )\) 的曲線也完美擬合了我們的資料
- 假設函式\(h ( x ) = \theta_0+\theta_1x\),即雙引數
此時對應的\(J(θ_1)\)為三維圖形
左圖為假設函式影像,右圖為等高線圖(三維圖形投影)
總結:通過可視化我們明顯地可以看到接近代價函式J最小值的點,對應著更好的假設函式和更好的資料擬合程度,
3.梯度下降
3.1 梯度
- 梯度的定義
在微積分里面,對多元函式的引數求?偏導數,把求得的各個引數的偏導數以向量的形式寫出來,就是梯度, - 梯度的公式
以二元函式 f(x,y) 為例,分別對 x,y 求偏導,求得的梯度向量如下所示:
\[gradf(x,y)= ▽f(x,y) = \{\frac{?f}{?x},\frac{?f}{?y}\} \]對于在點(x0,y0)的具體梯度向量就是\((\frac{?f}{?x0},\frac{?f}{?y0})\),或者▽f(x0,y0)
- 梯度的意義
幾何意義:函式變化增加最快的地方,具體來說,對于函式f(x,y),在點(x0,y0),沿著梯度向量的方向就是\((\frac{?f}{?x0},\frac{?f}{?y0})\)的方向是f(x,y)增加最快的地方,或者說,沿著梯度向量的方向,更加容易找到函式的最大值,反過來說,沿著梯度向量相反的方向,也就是\(-(\frac{?f}{?x0},\frac{?f}{?y0})\)的方向,梯度減少最快,也就是更加容易找到函式的最小值
3.2 梯度下降思想
開始時,我們隨機選擇一個引陣列合即起始點,計算代價函式,然后尋找下一個能使得代價函式下降最多的引陣列合,不斷迭代,直到找到一個區域最小值(local minimum),由于下降的情況只考慮當前引陣列合周圍的情況,所以無法確定當前的區域最小值是否就是全域最小值(global minimum),不同的初始引陣列合,可能會產生不同的區域最小值,
3.3 梯度下降的具體執行
- 梯度下降的公式:\(θj=θj?α\frac{?}{?θ_j}(J(θ0,θ1,?,θn))\)
注意:梯度下降在具體的執行時,每一次更新需要同時更新所有的引數,
- 梯度下降公式中有兩個部分:學習率和偏導數
偏導數這部分決定了下降的方向即”下一步往哪里“走
下圖舉一個代價函式\(J(\theta_1)\)例子,其中偏導數用來計算當前引數對應代價函式的斜率,導數為正則\(θ\)減小,導數為負則\(θ\)增大,通過這樣的方式可以使整體向\(\frac{?}{?θ_1}J(θ1)=0\)收斂
公式中,學習速率\(α\)決定了引數值變化的速率即”走多少距離“,
\(α\)用來描述學習率,即每次引數更新的步長,如下圖所示,\(α\)的大小不好確定,如果太小則需要很多步才能收斂,如果太大最后可能不會收斂甚至可能發散,
當\(θ\)處于區域最優解時,\(θ\)的值將不再更新,因為偏導為0,

這也說明了如果學習率\(α\)不改變,引數也可能收斂,假設偏導>0,因為偏導一直在向在減小,所以每次的步長也會慢慢減小,所以\(α\)不需要額外的減小,

3.4 單元梯度下降
梯度下降每次更新的都需要進行偏導計算,這個偏導對應線性回歸的代價函式,

將線性回歸的代價函式帶入,并求導的結果為:
\[\begin{aligned} \frac{?}{?θ_j}J(θ_0,θ_1) &=\frac{?}{?θ_j}\frac{1}{2m}\sum_{i=1}^{m}(h_θ(x^i)?y^i)^2\\ &=\frac{?}{?θ_j}\frac{1}{2m}\sum_{i=1}^{m}( \theta_0+\theta_1x^i-y^i)^2\\ θ_0(j=0):\frac{?}{?θ_0}J(θ_0,θ_1)&= \frac{1}{m}\sum_{i=1}^{m}(h_θ(x^i)?y^i)\\ θ_1(j=1):\frac{?}{?θ_1}J(θ_0,θ_1)&= \frac{1}{m}\sum_{i=1}^{m}(h_θ(x^i)?y^i)*x^i \end{aligned}\]梯度下降的程序容易出現區域最優解:

但是線性回歸的代價函式,往往是一個凸函式,它總能收斂到全域最優,

關于凸函式與凹函式,國內外是剛好相反的,其實說哪邊是凸哪邊是凹都有一定道理,
我曾在知乎看到外國人可能是這樣記的-?
梯度下降程序的動圖展示:

上述梯度下降的方法也被稱為“Batch”梯度下降:在每一步梯度下降,我們都遍歷了整個訓練集的樣本

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/538730.html
標籤:其他











