反裝逼指南:掀起機器學習的神秘面紗
乾明 編譯整理自 Hacker Noon
量子位 出品 | 公眾號 QbitAI
機器學習是什麼?給你十秒鐘,請給出答案。
……
不知道?就這你還想從事人工智慧行業?得了吧!
聽著:機器學習使用數據中的模式來標記事物。
聽起來是不是很神奇?
......
好了,就此打住。
機器學習的核心概念其實非常簡單,簡單到讓人「尷尬」。
這裡說的「尷尬」是指,如果有人在你面前「裝逼」,讓你覺得機器學習很神奇,他們應該感到尷尬。為什麼呢?且看這篇「反裝逼」指南。
這篇指南的作者是Cassie Kozyrkov,谷歌的首席決策科學家,不僅人美,心也善。經常在Hacker Noon上發表一些與人工智慧相關的乾貨文章。
在這篇指南中,她使用的例子是葡萄酒。她還很貼心地提到,如果你不喜歡喝葡萄酒,也可以把葡萄酒腦補成任何你喜歡喝的飲品,比如茶。
好了,廢話不多說,讓我們搬起小板凳,進入正題吧~
機器學習到底是如何工作的?
機器學習並不是魔法,沒有數據是不可能學習的,所以想要完成這個類比,必須要喝一些葡萄酒。
數據
為了學習,需要有獻身精神。大家可以體會下,一口氣喝了50種葡萄酒是種什麼感受。關鍵是喝完酒還不算完,我還要處理這些信息,並把它們可視化,以便在下面觀看。
每一種葡萄酒都有相應的年份,品嘗完了之後要打個分,然後給出一個判斷。這個判斷,也就是我們希望人工智慧之後能夠自己做出的判斷:Y代表好喝,N代表不好喝。
品嘗了這些葡萄酒之後,我把相關的數據都記錄在了電子表格中(左),但是為了讓大家看得舒服,我把所有的數據都可視化了(右)。
演算法
接下來,就要進行下一件事情了。把紅色區域和藍色區域分開,你能做到嗎?機器學習就是要選擇一種演算法來完成這個過程,選了哪個演算法,就決定了最後會得到哪種模型。
如果你想著劃一條線來完成這項工作的話,那恭喜你!你剛剛發明了一種機器學習演算法,它的名字叫……感知器(perceptron)。是的,就是這麼高大上,它的名字就是這麼酷炫。請不要被機器學習中的「行話」嚇倒,通常情況下都是大忽悠。
但是,你劃的線應該指向哪裡呢?我們的目標是把Y和N分開,劃一條直線並不是一個非常聰明的解決方案。
我們選擇一種機器學習演算法的目的,是為了找到最合理的地方划出分界線。這需要通過優化目標函數來完成。
優化
你可以這樣想:目標函數就像是棋盤遊戲的規則一樣,優化就是找到一個能夠獲得高分的玩法。
從傳統上來說,在機器學習中,我們更喜歡「棍棒」而不是「胡蘿蔔」。也就是對錯誤進行計分。這就是為什麼機器學習中的目標函數被稱為「損失函數」,目的就是要盡量減少損失。
想親自玩一把嗎?回到上面的那張圖,用你的手指在屏幕上劃線把Y和N分開,直到零失誤。感知器同志,感覺到未來觸手可及了嗎?
也許,你得到的解決方案是這樣的:
最左邊的這種結果,我沒有嘗試過。中間的那個也不太合適。我最喜歡的是最右邊那個。
演算法是具有多樣性的,它們之間最不同的一個方面,就是它們怎麼去確定分界線。
痴迷於優化的那群人會告訴你,以微小的增量調整分界線是不明智的,還有更好、更快的方法來找到最佳位置。一些研究人員致力於花一輩子的時間找出一種方法,不管數據多複雜,都能最簡單地找到最好的分界線位置。
演算法的另一個不同的方面是邊線的形狀。邊界線不一定是直的。不同的演算法,使用的邊界線形狀也不同。如下圖:
為追趕潮流的人設計的演算法
如今,沒有一個追趕數據科學浪潮的人會選擇用直線來區分。那些看上去很靈活、很彎曲的線在他們之中非常流行。他們會使用其實並沒有多少神經的神經網路演算法。我更傾向於稱它們為「瑜伽網路」或者是「多層數學運算」,但好像沒有人喜歡我的這種叫法。
不同的演算法會告訴你,它們會在數據中放置什麼形狀的邊界線。但如果你是一個應用型的機器學習愛好者,記不住它們那種天書般的名字也沒關係——在實踐中,你只需要儘可能多地將數據輸入到演算法中,然後重複執行那些看起來很有希望的事情就行了。
模型
一旦邊界線劃好了,演算法也就完成了,你就能從中得到你想要的東西了:一個模型。在下一次我給它「看」一瓶新的葡萄酒的時候,它就能將數據轉換成決定。
標籤
一旦你把新鮮出爐的模型投入使用,在計算機中輸入葡萄酒的年份和評價分數後,你的模型會給它找出對應的區域並輸出標籤。
當我再拿到四瓶新葡萄酒時,我只需將它們數據輸入進去,就能夠與模型的紅色和藍色區域進行匹配,並相應地給它們貼上標籤。看到了嗎?這很容易。
那問題來了,我們如何知道它是否有效呢?誰知道這是不是瞎搞?最直接的辦法就是對輸出進行檢查。
通過運行一堆新數據來測試你的模型,並確保它能夠一直能夠良好的運行。事實上,無論模型是演算法想出來的還是程序員想出來,都要這樣做。
結語
在我此前的另一篇文章中,我對整個過程進行了一個類比:
詩人與機器學習
如果你看不懂這個類比,也許你會喜歡這個:詩人會選擇一種方法(演算法),將文字寫在紙上。這種方法決定了詩歌的形式(邊界線形狀)是俳句還是十四行詩?一旦他們以最佳的方式完成了十四行詩,它現在就是一首詩(模型)。
機器學習模型與傳統的編程
以這種方式得到的模型,與程序員通過觀察問題,並手動制定一些規則來編寫的代碼沒有太大的不同。二者在概念上是相同的。
不要到處說機器學習的「再訓練」(retraining)有多厲害了。程序員也可以坐在那裡調整代碼以響應新的信息。
這就是全部了嗎?
是的,差不多了。機器學習工程中最困難的部分就是安裝軟體包,接著就是處理數據集,然後在上面運行一個有限的演算法。
接下來就是「超參數調優」,別被忽悠住了,不過是在生成一個模型之前,沒完沒了地擺弄代碼設置而已。
當你使用新的數據評估這個模型的時候,如果結果不太理想,你還得一遍又一遍地重複,直到能夠拿出手。 這就是為什麼僱傭一些對失敗有耐心的人來做這件事非常重要。如果是個玻璃心,估計撐不了幾回合就吐血了。
如果你期待有什麼奇蹟,我勸你越早失望越好。機器學習是非常枯燥的過程。但是,如果你能夠耐得住性子,你能做的事情將會是非常不可思議的。它可以幫你寫下你自己都想不到的代碼,還讓你能夠把那些不可言說的代碼自動化。
最後,提個醒。不要因為簡單而討厭它。要知道,槓桿也很簡單,但它可以撬動整個地球。
—完—
加入社群
量子位AI社群28群開始招募啦,歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話界面回復關鍵字「交流群」,獲取入群方式;
此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。
進專業群請在量子位公眾號(QbitAI)對話界面回復關鍵字「專業群」,獲取入群方式。(專業群審核較嚴,敬請諒解)
誠摯招聘
量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復「招聘」兩個字。


※演算法取代了保釋金:被抓能不能保釋?先聽系統怎麼說
※英偉達用GAN生成腦瘤圖像,訓練出的AI醫生,準確率提高16%
TAG:量子位 |