機器學習——15分鐘透徹理解感知機
前言
隨著17年阿爾法狗(AlphaGo)擊敗人類職業圍棋選手、戰勝圍棋世界冠軍,AI、人工智慧等詞彙也成為了時下人們追求的一個潮流,各種相關產業和人工智慧為主題的創業公司也如雨後春筍般相繼湧現,因此人工智慧也成為了2017年的關鍵詞。關於人工智慧的概念從計算機誕生之初就已經有了,1936年艾倫·圖靈(Alan Turing)提出了著名的 “圖靈機”(Turing Machine)的設想,在十多年後,其為了明確機器是否具備智慧更是提出了著名的圖靈測試。因此在過去的半個多世紀,人工智慧其實不算什麼新鮮的話題,甚至許多好萊塢大片都不吝以此概念作為噱頭,比如黑客帝國、人工智慧、機械姬等(PS:絕沒有推薦電影的意思)。但是處在21世紀的我們聽到這些概念時仍然會不自覺的感到興奮,因為這是第一次科技的力量讓我們感受到科幻與現實離我們是如此的接近,也正是在這個資訊高度聚合與高速傳播的時代,使我們大部分人都能夠參與到其中,去實現每個人心中的科幻夢。
注意事項
技能要求
接下來的知識不會涉及到高深的數學知識,對程式設計的要求也是極低,並且所有涉及到的知識點都會用通俗的語言進行解釋,所以不要擔心數學不夠好,不會程式設計等問題。當然,便於理解本文,如果你數學基礎足夠好那是那是有好處的。同時關鍵部分將會給出某些重要資訊的解釋或是數學名詞的解釋連結,在閱讀本文過程中適當的去理解其中的某些概念是有必要的,必要的時候還請停下閱讀進度確定自己已經理解。最後希望在看完這篇文章後能夠讓你產生對數學和機器學習的濃厚興趣。所以Come on!請花15分鐘認真看完!請花15分鐘認真看完!請花15分鐘認真看完!
內容概述
接下來我們將從機器學習中最基礎的模型感知機(Perceptron)
機器學習的核心
機器學習已經成為一門完整的學科,在學科建設的基礎上,已經出現了針對機器學習領域標準的研究方法和技巧。下圖展示了機器學習的三要素,也是其核心內容。
從分類問題開始
分類在我們日常生活中很常見,商品分類,垃圾分類,食物分類……這些分類的場景在我們的生活中都是司空見慣的。正因為司空見慣,所以就讓人感覺分類是理所當然的事,其過程也沒有任何難度。但這簡單的事兒對機器而言卻並不是那麼簡單。如果要讓機器來完成各種分類它能不能完成呢?答案是能,只要我們為特定的機器設定特定的規則使它能迴圈運轉起來就行,而這兒那個規則就是分類的關鍵。比如將商場賣的橘子分成兩類,一類長得好看的為橘子君A,一類長得難看的為橘子君B,這兒有一個規則Rule,能夠判斷一個橘子是好看還是不好看,那麼將Rule告訴這個機器豈不是完美?以後再也不用擔心吃不到好看的橘子了。
好吧跑偏了,通過上面舉的的例子其實就能夠看到人工智慧研究中的一個重要步驟——選擇模型。橘子分類中的Rule就是需要選擇的模型,有了模型,有了Rule,機器才能知道它拿到一個橘子應該怎麼做。那麼現在有了模型還要幹什麼?如果那模型是我們從一個有限的樣本空間中通過嚴格的推導得到的,並且我們也只將該模型應用於該有限樣本空間,那麼就沒有什麼事兒需要做了,但實際上這在現實中是不可能的,因為我既然從那一堆橘子推匯出了一個模型,那那堆橘子就肯定已經被我們全都分好類了,那這個模型拿來還有什麼意義?雖然從上面的角度我們似乎做了無用功,但統計學的知識卻給了我們啟發。那就是,我們推匯出來的模型除了應用於我們用於推導模型所用的那堆橘子外,很大概率還能應用於那些還沒有被分類的橘子。從概率論與統計學的觀點上看,這是正確的。因為我們以橘子的美醜對橘子進行分類,而美和醜是那些橘子所共有的一些特徵。就好比人,每個人都長著五官,在一小群人中我們以一個標準區分其中的美醜,那麼將這個標準應用於全體人當中也是可行的,但也可能出現我們的標準無法區分的情況發生。
好了,到這兒有沒有想到些什麼?由概率論的知識我們能夠想到,從部分資料中尋找其中我們關注的共性特徵對其進行識別分類,那麼這些共性特徵也能夠幫助我們識別分類那些未知的資料,這就是基於概率與統計學習的機器學習的核心原理與思想。看吧,其實很多感覺高深的知識就是我們身邊隨處可見的問題。有了這個思想有沒有對機器學習的概念有一個初步的瞭解呢?機器從我們給的資料學習一個能夠正確解決問題的方法,我們再用那個方法去應用到我們的實際問題中去,而那個方法就是上面多次提到的模型。
在二維平面中怎麼分類?
讀到這兒的朋友應該對機器學習還有較深的困惑,但這不要緊,現在需要你發揮一定的想象能力。同時如果手邊有筆和紙也請拿起筆跟我一起畫一個二維座標系,這個座標系是一個二維空間,在這個空間中分佈著無數點它們都是這個二維世界的原住民,現在你是這個世界的上帝,你隨意在這個空間中畫了一條看不見直線,裡面的人被你分成了兩類A和B,分別位於直線兩側。下圖展示了在平面上的一條直線
有一天,這個二維世界中穿越來了一個從三維世界來的人C,小C遇見了很多這個世界的人,他發現了這個世界上的人被分成了A,B兩類。並且這些被分成兩類的人類別存在較明顯的位置特徵,於是小C想了一個辦法來描述這個世界上被分成兩類的人,即假設這個世界的人可以用一條直線來劃分。小C想到的辦法如下:
通過以上計算方法,能夠將所有二維世界中的原住民分成兩類,也就是以每個原住民的座標為引數,通過模型計算結果為1的為一類,為-1的為另一類,So easy有木有!到目前為止小C離成功猜到你是怎麼給這個二維世界的原住民分類的又近了一步。小C還需要什麼?它需要知道
- 模型運算結果與實際結果相符,不做任何額外操作,繼續輸入新的資料
- 模型運算結果與實際結果不符(誤分類),調整
w,b 的值,使得其朝真相的方向逐步靠近
到這兒我想大家應該知道需要做什麼了,那就是找到一個方法來調整
在這裡不加證明地給出這個公式,如果有興趣自己推導的同學可參考點到平面距離公式的七種推導方法探討,這裡需要解釋的一點是因為我們的模型有兩個變數
有了計算距離的方式,下面我們來看看損失函式究竟怎麼定義。由於對於模型來說,在分類錯誤的情況下,若
如此得到最終的損失函式為: