Machine Learning(機器學習)之一

Machine Learning(機器學習)之二:juejin.im/post/5bd1d1…算法

Machine Learning的定義

早期定義編程

50年代,第一個機器學習的定義來自於Arthur Samuel。他定義機器學習爲:在特定編程的狀況下,給予計算機學習能力的領域。機器學習

他編寫了一個西洋棋程序。 這程序神奇之處在於,編程者本身並非個下棋高手。 但由於他太菜了,因而就經過編程, 讓西洋棋程序本身跟本身下了上萬盤棋。經過觀察 哪一種佈局(棋盤位置)會贏,哪一種佈局會輸, 長此以往,這西洋棋程序明白了什麼是好的佈局, 什麼樣是壞的佈局。程序經過學習後, 玩西洋棋的水平超過了Samuel。這絕對是使人注目的成果。 儘管編寫者本身是個菜鳥,但由於 計算機有着足夠的耐心,去下上萬盤的棋, 沒有人有這耐心去下這麼多盤棋。經過這些練習, 計算機得到無比豐富的經驗,因而漸漸成爲了 比Samuel更厲害的西洋棋手。上述是個有點不正式的定義, 也比較古老。函數

近期的定義佈局

由來自卡內基梅隆大學的Tom Mitchell提出,機器學習定義以下: 一個程序被認爲能從經驗E中學習,解決任務 T,達到 性能度量值P,當且僅當,有了經驗E後,通過P評判, 程序在處理 T 時的性能有所提高。 在西洋棋那例子中,經驗e 就是 程序上萬次的自我練習的經驗 而任務 t 就是下棋。性能度量值 p呢, 就是它在與一些新的對手比賽時,贏得比賽的機率。post

Machine Learning的學習算法

1.Supervised learning(監督學習)性能

教計算機如何去完成任務學習

在有監督的學習中,咱們獲得一個數據集,而且已經知道咱們的正確輸出應該是什麼樣的,而且認爲輸入和輸出之間存在關係。優化

監督學習問題分爲「迴歸」和「分類」問題。在迴歸問題中,咱們試圖在連續輸出中預測結果,這意味着咱們正在嘗試將輸入變量映射到某個連續函數。在分類問題中,咱們試圖在離散輸出中預測結果。換句話說,咱們試圖將輸入變量映射到離散類別。spa

例子1:

鑑於有關房地產市場房屋面積的數據,請嘗試預測房價。做爲大小函數的價格是連續輸
出,所以這是一個迴歸問題。
咱們能夠將這個例子變成一個分類問題,而不是讓咱們的輸出關於房子「賣得多於仍是
低於要價」。在這裏,咱們將基於價格的房屋分爲兩個不一樣的類別。
複製代碼

例子2:

迴歸 - 鑑於一我的的照片,咱們必須根據給定的圖片預測他們的年齡
分類 - 鑑於患有腫瘤的患者,咱們必須預測腫瘤是惡性的仍是良性的。
複製代碼

2.Unsupervised learning(非監督學習)

讓計算機本身進行學習

無監督學習使咱們可以在不多或根本不知道咱們的結果應該是什麼樣的狀況下解決問題。咱們能夠從數據中導出結構,咱們不必定知道變量的影響。

咱們能夠經過基於數據中變量之間的關係聚類數據來推導出這種結構。

在無監督學習的狀況下,沒有基於預測結果的反饋。

例子:

聚類:收集1,000,000個不一樣基因的集合,並找到一種方法將這些基因自動分組成不一樣
的類似或經過不一樣變量相關的組,例如壽命,位置,角色等。

非聚類:「雞尾酒會算法」容許您在混亂的環境中查找結構。(即在雞尾酒會上從聲音網
格中識別個別聲音和音樂)。
複製代碼

3.Reinforcement learning(強化學習)

4.Recommender system(推薦系統)

線性迴歸算法

模型表示

爲了創建將來使用的符號,咱們將使用

表示「輸入」變量(本例中的生活區域),也稱爲輸入特徵,和
表示咱們試圖預測的「輸出」或目標變量(價格)。一對
被稱爲訓練示例,以及咱們將用於學習的數據集 - m個訓練樣例的列表
稱爲訓練集。請注意,符號中的上標「(i)」只是訓練集的索引,與取冪無關。咱們還將使用X來表示輸入值的空間,並使用Y來表示輸出值的空間。在這個例子中,X = Y =ℝ。

爲了更加正式地描述監督學習問題,咱們的目標是,在給定訓練集的狀況下,學習函數h:X→Y,使得h(x)是y的對應值的「好」預測器。因爲歷史緣由,該函數h被稱爲 hypothesis。從圖中能夠看出,這個過程是這樣的:

當咱們試圖預測的目標變量是連續的時,例如在咱們的住房示例中,咱們將學習問題稱爲迴歸問題。當y只能承擔少許離散值時(例如,若是給定生活區域,咱們想要預測住宅是房屋仍是公寓,請說),咱們稱之爲分類問題。

Cost Function(成本函數)

咱們可使用成本函數來衡量咱們的假設函數的準確性。這須要假設的全部結果與x和實際輸出y的輸入之間的平均差別(其實是平均值的更高版本)。

此函數另外稱爲「平方偏差函數」或「均方偏差」。平均值減半(1/2)是爲了便於計算梯度降低,由於平方函數的導數項將抵消掉(1/2)。下圖總結了成本函數的做用:

若是咱們試圖用視覺術語來思考它,咱們的訓練數據集就會分散在xy平面上。咱們正試圖作一條由hθ(x)定義的直線經過這些分散的數據點。

咱們的目標是得到最佳線路。最好的線將是這樣的,使得來自線的散射點的平均垂直距離將是最小的。理想狀況下,該線應該經過咱們的訓練數據集的全部點。在這種狀況下,J(θ0 ,θ1)的值將爲0。

爲了方便理解,咱們能夠先把θ0設爲0,

下圖是θ1 = 1時:

θ1 = 0.5時:

下圖是J(θ1)大概的圖像:

所以,咱們須要找到一個θ1來使Cost Function最小化,在上面的狀況中,θ1 = 1就是咱們想要的值。

當同時考慮θ0和θ1的時候,圖像是這樣的: 這是一個三維曲面圖 兩個軸分別表示θ0和θ1,隨着你改變θ0和θ1的大小,你便會獲得不一樣的代價函數 J(θ0,θ1),對於某個特定的點 (θ0,θ1) 這個曲面的高度 也就是豎直方向的高度 就表示代價函數 J(θ0,θ1) 的值。

下圖與上圖是同一個意思,下圖能夠理解成是從上圖以俯視的角度去看,而最低點就是同心橢圓形的中心點。

等高線圖是包含許多等高線的圖形。雙變量函數的等高線在同一行的全部點處具備相同的值。

上面綠線上的三個綠點具備相同的值

上圖最大限度地最小化成本函數,θ0大約爲250,θ1大約爲0.12。在咱們的圖表右側繪製這些值彷佛將咱們的點置於最內圈「圓圈」的中心。

梯度降低

因此咱們有假設函數,咱們有一種方法能夠衡量它與數據的匹配程度。如今咱們須要估計假設函數中的參數。這就是梯度降低的地方。

想象一下,咱們根據其字段θ0、θ1繪製咱們的假設函數(實際上咱們將成本函數繪製爲參數估計的函數)。咱們不是繪製x和y自己,而是咱們的假設函數的參數範圍以及選擇一組特定參數所產生的成本。

咱們把θ0做爲x軸和θ1做爲y軸,在垂直z軸上具備成本函數。咱們的圖上的點將是成本函數的結果,使用咱們的假設和那些特定的θ參數。下圖描繪了這樣的設置。

當咱們的成本函數位於圖中凹坑的最底部時,即當它的值最小時,咱們就會知道咱們已經成功了。紅色箭頭顯示圖表中的最小點。

咱們這樣作的方法是採用咱們的成本函數的導數(一個函數的切線)。切線的斜率是該點的導數,它將爲咱們提供一個朝向的方向。咱們在最陡降低的方向上下降成本函數。每一個步驟的大小由參數α肯定,該參數稱爲learning rate(學習速率)。

例如,上圖中每一個「星」之間的距離表示由參數α肯定的步長。較小的α將致使較小的步長,較大的α將致使較大的步長。每一步的方向由J(θ0,θ1)的偏導數肯定。根據圖表的開始位置,可能會在不一樣的點上結束。上圖顯示了兩個不一樣的起點,最終出如今兩個不一樣的地方。

梯度降低算法是:

重複直到收斂:

j = 0,1表示特徵索引號。

在每次迭代j時,應該同時更新參數θ1,θ2,...,θn。在計算另外一個參數以前更新特定參數j (th)迭代將致使錯誤的實現。 以下圖:(應該同時更新,而不是更新一個後再更新另外一個)

咱們能夠先從只有一個參數的場景來理解梯度降低並繪製其成本函數以實現梯度降低。

咱們的單個參數公式是:

重複直到收斂:

不管

的斜坡的標誌如何,θ1最終收斂到最小值。下圖顯示當斜率爲負時,其值爲θ1增長,當它是正時,價值θ1下降。

另外,咱們應該調整參數α確保梯度降低算法在合理的時間內收斂。沒有收斂或太多時間來得到最小值意味着咱們的步長是錯誤的。

梯度降低如何以固定的步長α收斂?

當咱們接近凸函數的底部時,

接近0,在最低點,導數老是0,所以咱們獲得:

在選好合適的步長α的前提下,當咱們愈來愈接近最低點的時候,梯度降低會自動縮小步長,由於斜率的絕對值是愈來愈小的。因此咱們不須要去減小步長α的值。

線性迴歸的梯度降低

當具體應用於線性迴歸的狀況時,能夠導出梯度降低方程的新形式。咱們能夠替換咱們的實際成本函數和咱們的實際假設函數,並將等式修改成:

其中m是訓練集的大小,θ0和θ1是同時更新的,xi,yi是給定的訓練集中的值。

請注意,咱們已經把θj分別等於θ0和θ1兩種狀況分開。如下是推導的一個例子

全部這一切的要點是,若是咱們從猜想開始,而後重複應用這些梯度降低方程,咱們的假設將變得愈來愈準確。

所以,這只是原始成本函數J的梯度降低。該方法在每一個步驟中查看整個訓練集中的每一個示例,並稱爲批量梯度降低。須要注意的是,雖然梯度降低通常能夠對局部最小值敏感,但咱們在線性迴歸中提出的優化問題只有一個全局,而沒有其餘局部最優; 所以,梯度降低老是收斂(假設學習率α不是太大)到全局最小值。實際上,J是凸二次函數。下面是梯度降低的示例,由於它是爲了最小化二次函數而運行的。

上面顯示的橢圓是二次函數的輪廓。還示出了梯度降低所採用的軌跡,其在(48,30)處初始化。圖中的x(由直線鏈接)標記了漸變降低經歷的θ的連續值,當它收斂到其最小值時。

相關文章
相關標籤/搜索