標籤:

《機器學習基石》課程學習總結(一)

作者: milter

原文鏈接:jianshu.com/p/0ce716a6c

查看更多的專業文章、課程信息、產品信息,請移步至「人工智慧LeadAI」公眾號或移步至全新打造的官網:www.leadai.org.

正文共3082個字,6張圖,預計閱讀時間8分鐘。

《機器學習基石》課程非常棒,作為總結,本文重點是梳理課程中的知識脈絡,同時儘可能說白話,讓沒有機器學習背景的朋友也能看懂。

這個課程好在哪裡?

1、最大的好

課程內容組織非常科學,就像一個故事,有著清晰的主線。課程共16講,基本是按照四個問題的順序來展開的,即:

  • When:機器學習能解決哪些問題(1-4課)
  • Why:為什麼機器學習能解決這些問題(5-8課)
  • How:怎樣用機器學習來解決這些問題(9-12課)
  • How better: 怎樣更好地用機器學習來解決這些問題(13-16課)

這條主線就像旅行者手中的地圖,時時告訴你當前所處方位,從什麼地方過來的,下一步要往哪裡去。整個課程渾然一體,連貫不可分。對我這樣的初學者,有了主線的幫助,能夠快速構建機器學習完整的知識體系,為下一步的學習打下堅實的根基,這也是本課叫《機器學習基石》的原因。

2、其他的好

1、幽默詼諧的語言

林軒田具有傳道授業的天賦,講課風格非常輕鬆幽默,充滿熱情,享受其中,聽課者很容易被感染而激發起學習的興趣。

2、善於用圖和示例化難為易

機器學習涉及許多數學知識,每當此時,林總會用很多圖和淺顯的例子,將數學知識背後的觀念揭示出來,時刻注重數學在機器學習中的工具屬性,沒有陷入為數學而數學的陷阱,這對初學者是非常友好的。

3、善於總結

每課開頭都會用一句話來回顧上一課內容,非常精闢準確;每課結束都會簡要回顧本課的要點,同樣言簡意賅。尤其是對整個課程的總結:「6個3」,讓人拍手叫絕!

2、以銀行卡信用卡開始

向銀行申請信用卡的人具有一些特徵,比如性別、年齡、工作年限、工資水平、是否負債等,這些特徵可以抽象為(x1, x2, ..., xd)。

在銀行看來,申請人無非就是好的申請人和壞的申請人,好的申請人就給他發卡,壞的申請人就拒絕發卡。

那麼問題來了,如何根據申請人的特徵信息判斷他是好是壞?

答案便是用機器學習,具體思路如下:

首先,假設存在一個完美的函數f,它的輸入是申請人的特徵信息向量X(大寫的X表示向量),輸出是要不要給申請人發卡,YES就代表可以發卡,NO代表不應發卡。這個完美的函數在課程中叫做target f。哇!要是能找到這個函數,發卡問題豈不是迎刃而解?

理想很豐滿,現實很骨感,我們只是憑直覺感到冥冥之中有這麼一個完美的f存在,但卻並不知道它的真面目,所以,我更願意稱它為上帝函數(god f),因為它是我們無法得知的,只有上帝知道。

但是,上帝給你關上一道門的同時,總會給你打開一扇窗的。雖然無法看到f的廬山真面目,但它還是有一些線索的,這就是銀行中已有的發卡數據,這些數據就是一個個發卡人的特徵信息以及發卡後的結果好壞。這些數據稱為D:{(X1,y1),(X2,y2),...,(Xn,yn)}(這裡用大寫的X表示這是一個豎向量),這些X可以認為是f的輸入,y就是f的輸出。

機器學習的核心問題就是:如何根據D找出一個函數g,使得g儘可能地接近f,此時,函數g稱為假設(hypothesis)。全書都是在圍繞這個問題展開的。

我的感覺,f是一個深閨中的少女,D就是深夜少女在窗戶上映出的影子,我們的任務就是根據這個不完整還晃動的影子臨摹出少女的模樣,雖然無法達到一模一樣,但求惟妙惟肖。

現在的問題是,如何找函數g?

首先,我們需要一個函數集以供我們查找挑選,這個函數集稱為H,也稱其為假設集(Hypothesis Set)。其次,我們需要一個演算法A,它根據數據D,在H中挑出一個最好的g,所謂最好,就是指與f最像,所謂最像,是指任意給定一個輸入數據d(這個d不一定是D中的數據),g和f的輸出結果有很大概率是相同或相近的。

由上,可以總結出機器學習的簡明概括:

演算法A利用D,從H中挑出一個最好的函數g,使得g儘可能地像f。如下圖所示:

learning_flow.PNG

3、找出函數g的第一個辦法--PLA演算法

為了找出函數g,我們先要確定g的範圍,即H,我們發現,函數集H中的函數有一個共同的特點:輸入是一個d維向量X,輸出只有兩個結果YES或NO,也可說是+1和-1 。這樣的函數有一個專有的名字,叫感知器(Perceptron),H也就可以叫做感知器集合。

考慮銀行發放信用卡,我們很自然的一個想法就是根據用戶個人特徵信息給用戶打分,不同的特徵信息有不同的權重,分數大於某個值時,就發卡,小於該值時,即拒絕發卡即:

linear_perceptron.png

將上式進行如下變形:

bianxing.PNG

上面的式子中,X和W都是一個d+1維的豎向量,其中x0 = +1,w0 = -threshold。x1xd就是用戶的d個特徵信息,w1wd就是相應特徵信息的權重。

上面的式子最大的作用就是幫助我們確定假設集H(Hypothesis Set)。每個W對應一個假設h(X),所有可能的W組成了所有可能的假設,所有可能的假設就是我們要從中挑選g的假設集。

現在,挑選最好的g,轉變成了挑選最好的W,那麼怎麼挑選呢?W有無窮多個,我們必須確定一個可操作的挑選標準。

一個合理的挑選標準是,看這個W(也就是h(X))在數據D上是否與f保持一致,越一致的W越好,最理想的結果是,對於D中的任一個數據(Xn,yn),都有h(Xn)=yn=f(Xn)。PLA演算法的思路就是找到一個這樣的W,使它滿足最理想的結果,具體步驟是從一個W0出發,不斷地調整它,直到達到最理想的狀態。偽代碼如下:

pla.PNG

上述代碼中,對於Wt,每當發現它在一個數據上與f表現不一致時,就對它進行調整,得到Wt+1,如此循環,直到對於D中的任一個數據(Xn,yn),都有h(Xn)=yn=f(Xn),將此時的W(稱作WPLA)返回,作為我們要找的函數g。

這個演算法中最難理解的是對Wt調整得到Wt+1這一步,為理解它,需要我們再次審視h(X)=sign(WT*X),WT*X實際上就是向量W和向量X的內積。學過線性代數的我們知道,內積為0時,兩個向量相互垂直,內積大於0時,兩個向量夾角小於90度,內積小於0時,兩個向量夾角大於90度。所以h(X)為+1時,表示W與X夾角小於90度,為-1時,表示W和X的夾角大於90度。

回到上面的偽代碼中,假如我們發現了一個數據(Xn,yn),在這個數據上,sign(WT*Xn)與yn不相等,簡便起見,我們假設sign(WT*Xn)為-1,而yn為+1(相反情況也是類似的分析)。這說明我們目前的W還不夠好,需要調整,怎麼調整呢?

sign(W^T*Xn)為-1 說明W和Xn的夾角大於90度,yn為+1說明我們理想的W和Xn的夾角應當是小於90度的,所以,我們要減小W和Xn的夾角,方法就是將W加上Xn作為新的W。那麼,是否新的W和Xn的夾角就小於90度了呢,這不一定,不過,新的W和Xn的夾角總是變小了一點,離我們理想的W更近了一點,隨著循環次數的增加,我們相信,二者夾角總會小於90度的。

上面分析的過程用圖說明如下:

adjust.PNG

PLA演算法有一個明顯的弊端,就是理想的W不一定存在,我們有時候不可能找到一個W,它在D上與f表現完全一致,這個時候,演算法中的循環將不會停止。

什麼時候會存在理想的W呢?

這取決於數據集D,如果數據集D使得這樣的理想W存在,我們就稱D是線性可分的,否則,就說D不是線性可分的(linear separable),示意如下:

linear_separable.PNG

即使D是線性可分的,存在理想的W,我們的PLA演算法一定能夠找到理想的W並停止嗎?答案是YES,但這涉及到一定的數學證明,這裡不再細述,課程中有講解。


推薦閱讀:

基於NLP的股價預測
機器學習入門之泰坦尼克案例
關於不平衡數據集以及代價敏感學習的探討
機器學習基礎與實踐(一)----數據清洗
基於不平衡樣本的推薦演算法研究

TAG:機器學習 |