每日最新頭條.有趣資訊

反裝逼指南:掀起機器學習的神秘面紗

乾明 編譯整理自 Hacker Noon

量子位 出品 | 公眾號 QbitAI

機器學習是什麽?給你十秒鐘,請給出答案。

……

不知道?就這你還想從事人工智能行業?得了吧!

聽著:機器學習使用數據中的模式來標記事物

聽起來是不是很神奇?

......

好了,就此打住。

機器學習的核心概念其實非常簡單,簡單到讓人“尷尬”。

這裡說的“尷尬”是指,如果有人在你面前“裝逼”,讓你覺得機器學習很神奇,他們應該感到尷尬。為什麽呢?且看這篇“反裝逼”指南。

這篇指南的作者是Cassie Kozyrkov,谷歌的首席決策科學家,不僅人美,心也善。經常在Hacker Noon上發表一些與人工智能相關的乾貨文章。

在這篇指南中,她使用的例子是葡萄酒。她還很貼心地提到,如果你不喜歡喝葡萄酒,也可以把葡萄酒腦補成任何你喜歡喝的飲品,比如茶。

好了,廢話不多說,讓我們搬起小板凳,進入正題吧~

機器學習到底是如何工作的?

機器學習並不是魔法,沒有數據是不可能學習的,所以想要完成這個類比,必須要喝一些葡萄酒。

數據

為了學習,需要有獻身精神。大家可以體會下,一口氣喝了50種葡萄酒是種什麽感受。關鍵是喝完酒還不算完,我還要處理這些資訊,並把它們可視化,以便在下面觀看。

每一種葡萄酒都有相應的年份,品嚐完了之後要打個分,然後給出一個判斷。這個判斷,也就是我們希望人工智能之後能夠自己做出的判斷:Y代表好喝,N代表不好喝。

品嚐了這些葡萄酒之後,我把相關的數據都記錄在了電子表格中(左),但是為了讓大家看得舒服,我把所有的數據都可視化了(右)。

算法

接下來,就要進行下一件事情了。把紅色區域和藍色區域分開,你能做到嗎?機器學習就是要選擇一種算法來完成這個過程,選了哪個算法,就決定了最後會得到哪種模型。

如果你想著劃一條線來完成這項工作的話,那恭喜你!你剛剛發明了一種機器學習算法,它的名字叫……感知器(perceptron)。是的,就是這麽高大上,它的名字就是這麽酷炫。請不要被機器學習中的“行話”嚇倒,通常情況下都是大忽悠。

但是,你劃的線應該指向哪裡呢?我們的目標是把Y和N分開,劃一條直線並不是一個非常聰明的解決方案。

我們選擇一種機器學習算法的目的,是為了找到最合理的地方劃出分界線。這需要通過優化目標函數來完成。

優化

你可以這樣想:目標函數就像是棋盤遊戲的規則一樣,優化就是找到一個能夠獲得高分的玩法。

從傳統上來說,在機器學習中,我們更喜歡“棍棒”而不是“胡蘿卜”。也就是對錯誤進行計分。這就是為什麽機器學習中的目標函數被稱為“損失函數”,目的就是要盡量減少損失。

想親自玩一把嗎?回到上面的那張圖,用你的手指在螢幕上劃線把Y和N分開,直到零失誤。感知器同志,感覺到未來觸手可及了嗎?

也許,你得到的解決方案是這樣的:

最左邊的這種結果,我沒有嘗試過。中間的那個也不太合適。我最喜歡的是最右邊那個。

算法是具有多樣性的,它們之間最不同的一個方面,就是它們怎麽去確定分界線。

癡迷於優化的那群人會告訴你,以微小的增量調整分界線是不明智的,還有更好、更快的方法來找到最佳位置。一些研究人員致力於花一輩子的時間找出一種方法,不管數據多複雜,都能最簡單地找到最好的分界線位置。

算法的另一個不同的方面是邊線的形狀。邊界線不一定是直的。不同的算法,使用的邊界線形狀也不同。如下圖:

為追趕潮流的人設計的算法

如今,沒有一個追趕數據科學浪潮的人會選擇用直線來區分。那些看上去很靈活、很彎曲的線在他們之中非常流行。他們會使用其實並沒有多少神經的神經網絡算法。我更傾向於稱它們為“瑜伽網絡”或者是“多層數學運算”,但好像沒有人喜歡我的這種叫法。

不同的算法會告訴你,它們會在數據中放置什麽形狀的邊界線。但如果你是一個應用型的機器學習愛好者,記不住它們那種天書般的名字也沒關係——在實踐中,你只需要盡可能多地將數據輸入到算法中,然後重複執行那些看起來很有希望的事情就行了。

模型

一旦邊界線劃好了,算法也就完成了,你就能從中得到你想要的東西了:一個模型。在下一次我給它“看”一瓶新的葡萄酒的時候,它就能將數據轉換成決定。

標簽

一旦你把新鮮出爐的模型投入使用,在電腦中輸入葡萄酒的年份和評價分數後,你的模型會給它找出對應的區域並輸出標簽。

當我再拿到四瓶新葡萄酒時,我只需將它們數據輸入進去,就能夠與模型的紅色和藍色區域進行匹配,並相應地給它們貼上標簽。看到了嗎?這很容易。

那問題來了,我們如何知道它是否有效呢?誰知道這是不是瞎搞?最直接的辦法就是對輸出進行檢查。

通過運行一堆新數據來測試你的模型,並確保它能夠一直能夠良好的運行。事實上,無論模型是算法想出來的還是程式員想出來,都要這樣做。

結語

在我此前的另一篇文章中,我對整個過程進行了一個類比:

詩人與機器學習

如果你看不懂這個類比,也許你會喜歡這個:詩人會選擇一種方法(算法),將文字寫在紙上。這種方法決定了詩歌的形式(邊界線形狀)是俳句還是十四行詩?一旦他們以最佳的方式完成了十四行詩,它現在就是一首詩(模型)。

機器學習模型與傳統的編程

以這種方式得到的模型,與程式員通過觀察問題,並手動制定一些規則來編寫的代碼沒有太大的不同。二者在概念上是相同的。

不要到處說機器學習的“再訓練”(retraining)有多厲害了。程式員也可以坐在那裡調整代碼以響應新的資訊。

這就是全部了嗎?

是的,差不多了。機器學習工程中最困難的部分就是安裝套裝軟體,接著就是處理數據集,然後在上面運行一個有限的算法。

接下來就是“超參數調優”,別被忽悠住了,不過是在生成一個模型之前,沒完沒了地擺弄代碼設定而已。

當你使用新的數據評估這個模型的時候,如果結果不太理想,你還得一遍又一遍地重複,直到能夠拿出手。 這就是為什麽雇傭一些對失敗有耐心的人來做這件事非常重要。如果是個玻璃心,估計撐不了幾回合就吐血了。

如果你期待有什麽奇跡,我勸你越早失望越好。機器學習是非常枯燥的過程。但是,如果你能夠耐得住性子,你能做的事情將會是非常不可思議的。它可以幫你寫下你自己都想不到的代碼,還讓你能夠把那些不可言說的代碼自動化。

最後,提個醒。不要因為簡單而討厭它。要知道,杠杆也很簡單,但它可以撬動整個地球。

加入社群

量子位AI社群28群開始招募啦,歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話界面回復關鍵字“交流群”,獲取入群方式;

此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。

進專業群請在量子位公眾號(QbitAI)對話界面回復關鍵字“專業群”,獲取入群方式。(專業群審核較嚴,敬請諒解)

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復“招聘”兩個字。

獲得更多的PTT最新消息
按讚加入粉絲團