理解這九個基本概念,你就初步入門了機器學習
編者按:AI、機器學習、深度學習……你天天都聽說這些術語。但是這些東西究竟是什麼意思?如何才能讓自己看起來像個專家乃至於大師?光來回念這幾個名詞肯定是不行的,不過你只需要掌握這9個基本概念就能看起來像個機器學習專家甚至大師。自稱是機器學習超級粉絲的Machine Box 聯合創始人Aaron Edell為我們詳細 ofollow,noindex">介紹 了這9個概念。
大多數人似乎都有點被機器學習嚇到或者感到困惑。機器學習是什麼?發展方向如何?我能從中賺錢嗎?
這些問題問得都合理。真相是,你可能都沒意識到,其實你訓練機器學習模型已經好幾年了。你用iPhone或者Apple相片嗎?或者Facebook?你知道它們是怎麼列一堆的人臉然後讓你識別的嗎?你在給這些照片打標籤的時候其實就是在訓練人臉識別模型去識別新面孔。祝賀你,你現在可以說自己具備訓練機器學習模型的經驗了!不過,為了讓自己看起來像是一位機器學習專家甚至是大師,先來了解以下幾個基本概念。
1)機器學習的好處是可以預測
如果你只是給圖片中朋友的臉打標籤的話,這並不是在使用機器學習模型。如果你上傳新照片然後突然它告訴你圖片裡面的每個人都是誰的話,那就是機器學習了。機器學習的全部要點就是根據模式等受訓練過的去因素預測東西。任何東西——比如基於房間數和郵編預測房價,基於年份和天氣預測航班延誤的可能性,給圖片中的物件或者人物打標籤等。
2)機器學習需要訓練
你得告訴機器學習模型想預測什麼。不妨思考一下小孩是怎麼學習的。他們第一次看到香蕉的時候,是不知道那是什麼的。然後你告訴他們這是香蕉。下次他們看見時(不是你用來訓練他們的那根因為你已經吃掉了)就會知道這是香蕉。機器學習也是類似的機制。你給它看盡可能多的香蕉圖片,告訴它這是香蕉,然後用一張它沒有受過訓練的香蕉圖片測試它。當然這麼介紹有點太過簡化,因為你還得告訴它什麼不是香蕉、還得顯示不同型別、不同顏色、來自不同拍攝方位角度的香蕉,這些我都忽略了。
3)90%的精確度被認為就是成功
機器學習平臺現在還做不到100%地成功識別香蕉。不過沒關係。因為其實人類也做不到100%精確。業界的一條不成文的規則是80%精確度(2017年的時候)就可以認為是成功了。如果你要識別800000張圖片,儘管可能有200000張識別不準確,但仍然能節省80%的時間。從價值的角度來看這已經非常巨大了。如果我揮舞一下魔杖就可以將你的生產力提高那麼多的話,你會給我很多錢的。結果表明我可以,通過利用機器學習,所以給我錢吧。
4)機器學習不同於AI、深度學習或者神經網路
大家平時閒談的時候嘴裡似乎都會蹦出這些術語。但要想讓自己看起來像個專家,你得知道它們的區別。
AI——人工智慧的意思是說在執行特定任務上計算機可以做得跟人一樣好。這也意味著機器人可以根據大量輸入做出決策,但不是像終結者或者C3PO那樣。這個概念含義太廣,不是很有用。
ML——機器學習是實現AI的一種方法。這意味著基於對一組解析過的資料的訓練做出預測。ML平臺有很多辦法可以實現訓練集去預測東西。
NL——神經網路說機器學習模型預測東西的眾多手段之一。神經網路工作機制有點像你的大腦,通過很多很多的訓練調整自己來理解香蕉應該是什麼樣子。你建立的節點層次可以很深。
5)我們距離AI具備自我意識還有一段路要走
現在我還不擔心機器人統治地球的事兒。這在很大程度上是因為如果你建立過機器學習模型的話,就會知道它對作為人的你告訴它該怎麼做的依賴程度有多大。甚至哪怕你告訴了它明確的指令,對方仍然會出錯。你得明白,這些系統突然自建變得有知覺的機會還非常渺茫。哪怕是在網頁上畫一個一個文字框,你也得告訴它那個框在哪裡,形狀怎樣,顏色是什麼,如何針對不同瀏覽器,如何在不同的裝置上進行正確的顯示等等。
哪怕是深度很深的神經網路想要統治世界,把我們變成電池,它所面臨的障礙仍然非常非常多,很大程度上這是因為沒人告訴它去做這件事(希望如此吧)。
6)精確率(Precision)與召回率(Recall)
精確率(precision)和召回率(recall)是什麼鬼?!有時候當你看到有關精確率和召回率的東西時,聽起來好像是一樣的東西:“精確率是你正確的頻率,召回率也是你正確的頻率”。呃,但其實它們是不一樣的,而且這兩個概念對於理解為什麼某個機器學習模型是否適用於某個用例非常重要。
以下大概是我能想到的解釋其區別的第三種最好的辦法:
精確率(左):有多少選中的item是相關的?召回率(右):選中的item裡面有多少是相關的?
假設你想記住某個東西,比如自己一生中見過多少把藍色的雨傘。召回率描述的是你記住每一次看到藍色雨傘的時間的程度有多好,代價是有時候你會把一些紫色的雨傘記成了藍色。假設你一生見過10把藍色雨傘,你全都記住了。但是,你也錯誤地把另外5次其實是紫色雨傘的時候記成了藍色。你的召回率就是100%因為你把出現藍色的每一次都記住了。祝賀你這個怪人!
而精確率描述的是你記憶的準確率是多少。在上面這個奇怪的例子裡,在15次記憶中,只有10次是準確的。因此你的精確率是66%。
那麼哪一個概念更重要?好吧,這要取決於你的用例是什麼。如果你在利用計算機視覺或者深度學習在痣的照片中識別癌症,把有癌症卻說成沒有癌症的次數最小化是有意義的(假陰性),即便這會增加把沒有癌症卻說成有癌症(假陽性)的風險。
精確率與召回率的關係
關鍵是你無法兩者同時擁有,總是需要進行取捨。這靠取決於對於你的用例來說哪一個更重要;以可能會出現一些假陽性為代價去保證得到所有的真陽性?還是確保盡得到可能多的真陽性,同時承擔會得到更多假陰性的風險。
理解了嗎?如果你還是感到困惑的話,別擔心,這些概念的確很複雜且很難記。不過我們還是繼續吧。
7)識別(Recognition)與檢測(Detection)
在應用機器學習的時候,你會發現一些相當酷的工具,比如臉部識別和標識檢測。你也會見到臉部檢測和標識識別。什麼鬼?為什麼?
我試著用一些例子來解釋一下這兩個概念:
臉部識別——輸入是一張面孔的影象,機器學習模型識別出人並且返回那個人的姓名。
臉部檢測——輸入是一張面孔的影象,模型返回一個包圍它發現的那張臉的方框。它告訴你那張臉在哪裡,但不告訴你它是誰。
影象識別——輸入是一幅影象,輸出(可能)是多個描述該影象的標籤,比如有霧、汽車、單色、建築、景觀等等。
物件檢測——輸入是一幅特定的影象(比如標識)以及一幅待檢測的普通影象,輸出是包圍了所有出現了那副特定影象(或者標識)的地方的邊界盒。
這麼解釋你清楚了嗎?沒有?很好——我們還是繼續……
8)分類
機器學習很多好的實現其實都是分類器。這篇文章報道的是假新聞還是真新聞?這張葉子的圖片是棕櫚葉、楓葉還是毒葛?這個句子是不斷句錯誤還是其他?等等。
每一種類別就像一種選擇或者標籤。你訓練機器學習模型把一堆輸入資料(像一張照片或者一篇新聞)放進某一類裡面。一些模型會提供若干類作為結果,二有的每次只會返回一個類別。
關鍵是在訓練分類器的時候要知道你得遵循一些基本規則,否則的話它是不會太見效的(就像我的語法檢查器一樣)。
-
你的訓練資料必須均衡。這意味著貓的圖片數量必須跟狗的一樣多。如果你用數量不平均的類去訓練模型,自然它就會偏向於例子更多的類。
-
模型不會去指出那些例子是錯的。你的訓練資料必須乾乾淨淨。如果你的貓這個類別裡面有一些狗的例子那你完全就是自討苦吃了。趕緊把那些狗的照片移到狗的目錄裡。
9)深度學習
深度學習聽起來很棒,是吧?還有什麼東西比常規學習更好的呢?當然是深度學習。我知道,深度學習。深度學習的確很出色,但這是有附加條件的。首先,想讓我解釋一下什麼是深度學習。
大多數深度學習模型都是以人工神經網路為基礎的。神經網路基本上就是一層層以某種魔術般的方式相互連線到一起的節點。如果你的輸入和輸出層之間的層數多於1、2層的話,你就得到了一個深度網路了!真正酷的是當你訓練該網路時,它會想辦法把自己組織起來去識別面部(打比方)。它可能會讓第一層進行畫素分組,第二層執行邊界檢測,第三種去弄清楚鼻子,諸如此類……但這一切都是它自己完成的。真令人驚豔。
但這還不是全部。一條安全的經驗法則是當你聽到深度學習時,就意味著GPU。而GPU是很昂貴的。所以你真的需要好好考慮你的用例是什麼。比方說,有一個很棒的人臉檢測器就不需要深度學習。這是一個計算機視覺過濾器,其精確度達到了97%。不過這種人臉檢測也有一個深度學習版的。其精確率高得出奇但是代價是效能成本也很高。你需要GPU!而計算機視覺版的在一個CPU上面就能跑得飛快。
所以再次地,這是個權衡取捨的問題。
好吧,到此可以宣告你的機器學習碩士課程已經學完了。
編譯組出品。編輯:郝鵬程。