當前位置:
首頁 > 知識 > 詩人般的機器學習,ML工作原理大揭秘

詩人般的機器學習,ML工作原理大揭秘

選自arXiv

作者:Cassie Kozyrkov

機器之心編譯

很多人會認為機器學習相比於傳統編程是一種編寫學習過程的方法,它性能非常神奇且高大上。但是在本文中,谷歌首席決策工程師 Cassie Kozyrkov 小姐姐以非常形象的比喻介紹了機器學習核心原理。

機器學習使用數據中的模式來標記事物。聽起來好像很神奇,實際上核心概念相當簡單。

比如說標記事物,把酒分為好喝或者不好喝就是一個例子。這種標記不必想得太複雜,記得享受好喝的美酒就行啦~當然,如果你不喜歡喝酒,那無酒精的飲品可以了解一下_

ML 工作原理

機器學習不是魔術。沒有數據就無法學習,因此我必須嘗一嘗。嘗過之後我給它一個「N」的標籤,N 代表「nope」,意思是「我們不要再試這個了。」這是我們為科學做出的貢獻。

數據

學習需要素材。想像一下我嘗了 50 種酒(為科學獻身!)並將其可視化。每種酒都有年限、評分及我們嘗試學習的正確答案:Y 代表「Yummy(好喝)」,N 代表「not-so-yummy(不怎麼好喝)」。

我品嘗了酒的味道並把它們的數據記錄在電子表格(左),但是我覺得以右圖的方式向你展示信息可能更友好。

演算法

選擇要使用的機器學習演算法,就是在選我們要用到的「菜譜」。你要做的就是把紅色和藍色的事物分開,怎樣,沒問題吧?

如果你想畫一條線,那恭喜啦!你發明了一種叫「感知機」的 ML 演算法。嗯,一個這麼簡單的東西名字就是這麼高大上!不要被機器學習里的術語給嚇住了,實際上很多東西沒有其名字那麼複雜和厲害啦。

你會怎麼把紅色和藍色的東西分開呢?

你的線要怎麼畫?你應該也能看出來,一條水平線不是什麼聰明的解決方案。我們的目標是把 N 和 Y 分開來,而不是裝飾地平線。

機器學習演算法的目的是在數據中選擇最合理的地方設置柵欄,而這要取決於數據點的位置。那要怎麼做?答案是:優化目標函數。

優化

我計劃專門寫個博客來講優化問題,但目前先這麼著想:目標函數就像是棋盤遊戲的得分規則,優化目標函數就是找出遊戲的玩法,然後儘可能獲得最高分。

目標函數(損失函數)就像是棋盤遊戲的得分系統。這張圖說明,大學時代我還沒有學會優化問題……

通常在 ML 中,我們更喜歡大棒而不是胡蘿蔔——分數是對錯誤的懲罰,而遊戲規則是這些錯誤得分越少越好。這也是為什麼在機器學習中目標函數被稱為「損失函數」,且目標是最小化損失。

想試試嗎?回到上面的分類圖,把你的手指水平放在屏幕上旋轉,直到錯誤得分為零。

希望你找到的解決方案如下所示:

來,先看圖片最左邊;簡單粗暴地畫一條水平線…中間的會更好一點,但還不是最好的。我喜歡最右邊的方法。

生活的調味品

如果你喜歡變化,那麼你會愛上演算法的。世界上有太多演算法了,它們彼此之間的區別在於分割邊界時嘗試的位置不同。

「優化狂魔」將告訴你以小的幅度旋轉柵欄(fence)是絕對不行的,有很多更好的方式可以更快速到達最優位置。一些研究者竭盡全力嘗試結合多種方法在最短的距離內到達最優位置,不管地形(由輸入決定)變得如何反常。

多樣性的另一來源是邊界的形狀。柵欄不必是直線,不同的演算法使用不同的柵欄。

當我們選擇這些複雜術語時,我們其實只是選擇了用來劃分標籤的邊界形狀。我們想用一條斜線分割樣本,還是很多水平/垂直的線或者靈活的曲線?可選擇的演算法實在是太多了,分類邊界的形狀也各不相同。

潮人喜歡的演算法

現在,機器學習潮人都不喜歡直線。靈活的曲線在機器學習大潮中大受歡迎(即「神經網路」,儘管其實並沒有什麼神經,這個名字是半個多世紀以前出現的,充滿了雄心壯志,似乎沒有人喜歡我的建議——將它們重命名為「瑜伽網路」或「多層數學運算」)。

與其接受與線性演算法和大腦神經網路的炒作性質的對比,不如從柔術表演能力的角度來思考神經網路。其他方法在數學瑜伽方面略遜一籌。但是沒有什麼東西是免費的,神經網路需要付出代價,因此不要相信任何人稱神經網路是最優解決方案的說法。

神經網路或許也可以被稱為「瑜伽網路」,其特殊能力在於能夠提供非常靈活的邊界。

那些專業的演算法名稱告訴你它們將要用什麼形狀的柵欄劃分輸入數據。如果你是一名應用機器學習愛好者,不記住它們也沒問題,但在實踐中你需要將數據輸入到儘可能多的演算法中,然後在看起來更有前途的演算法上進行迭代。布丁的存在意義就在於吃,那麼我們來吃吧~

即使翻閱了課本,你也很難一次就找到解決方案。別擔心。這不是個有一個正確答案的遊戲,沒有人能一次就找到解決方案。你需要修補、嘗試並接著玩。留給設計新演算法的研究人員一個問題:「它是如何工作的」。(你最終可能會熟悉這些名字,就像你了解困擾你的任何一部爛肥皂劇的角色一樣。)

模型

一旦柵欄到位,演算法就完成了,你從中得到的就是你想要的:一個模型,說白了就是一個「食譜」。現在有一些指令,讓電腦在下次看到一瓶新酒時用來將數據轉換成決策。如果數據落在藍色區域,就叫它藍色。落在紅色部分就叫它紅色。

標註

一旦你把新鑄造的模型投入「薦酒」生產中,你就可以通過給電腦輸入年齡和評審分數來使用它,系統會查找出對應的區域並輸出標籤。

當我有四瓶新酒時,我只需將它們的輸入數據與「食譜」中的紅色和藍色區域進行匹配,並相應地給它們貼上標籤。看到沒?這很容易!

我們怎麼判斷它是否有效?檢查輸出!

通過運行一堆新數據來測試你的系統,並確保它運行良好。不管是誰出的這種主意,跟著做就對了。

總結

以下,我另一篇文章為你提供了一份簡單直觀的總結:

詩人般的機器學習

如果你還對機器學習感到困惑,那麼可以試試這個類比:一位詩人選擇一種方法(或演算法)將所有辭彙組合在紙上。這種方法決定了詩歌體裁(或決策邊界的形狀),這種體裁可能是三行俳句,也可能是十四行詩。一旦詩人完成了作品,即找到了將語句填充到十四行詩的最優方法,現在完成的詩歌就相當於機器學習中的模型。

ML 模型 vs 傳統代碼

我想指出,機器學習模型和程序員通過評估問題而寫出代碼並手工制定規則的做法並不存在不可逾越的鴻溝。用非擬人化的語言來描述機器學習就是,模型在概念上和通常的代碼是相同的。

「隨著新樣本的輸入,重複運行演算法來調整決策邊界」,這種說法會使你難以將機器學習和程序員的標準工作聯繫起來。人類也可以隨新信息的獲取而調整代碼。

這就是機器學習的全部嗎?

是的,機器學習工程方法真正困難的部分在於安裝軟體包,並對粗糙的數據集進行一系列炫酷的操作,這樣就相當於在數據上運行了一個非常複雜的演算法。接下來是對代碼設定的無限修改,請注意別讓高貴的名字「超參數調優」迷惑了你。當你在新數據上評估模型的性能時,如果它的性能非常感人,那麼你可能就需要重新設計方案並訓練。這一修正過程需要持續到獲得還能接受的效果,這也就是為什麼機器學習工程師需要有良好的耐心。

機器學習不是魔術。機器學習能讓你寫出不能完全理解,但能自動地工作得很好的代碼。不要嫌棄它太簡單,槓桿也很簡單,但它能撬動整個地球。

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。

------------------------------------------------


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

25個機器學習面試題,期待你來解答
業界 | 對標中國,美國國防部5年20億開發下一代人工智慧技術

TAG:機器之心 |