閱讀503 返回首頁    go 阿裏雲 go 技術社區[雲棲]


會玩超級瑪麗,機器學習能有多難?

更多深度文章,請關注雲計算頻道:https://yq.aliyun.com/cloud

0920_1

“機器學習”、‘神經網絡’——如果你經常閱讀新聞,一定與這兩個詞打過照麵。機器學習的應用已進入醫療、金融、物流等各行各業,如果你不理解它們的含義,恐怕每天刷一刷新聞都是大寫的懵。好消息來了!即便你不是數學家、不是工程師,隻要你玩過超級瑪麗,就一定能搞懂機器學習的基本概念。
網絡開發與安全專家 Adam Wattis 寫的這篇文章,就希望用簡單易懂的類比,打破人們對機器學習術語艱深難懂的印象,能充滿自信地閱讀機器學習主題的各種文章。

增強學習
機器學習與普通的軟件相比所不同的是,普通軟件需要程序員明確地寫下指令,而機器學習則能夠自己學會如何成功完成手頭的任務。舉一個被稱為增強學習的例子:程序會獲得一個**輸入值**,經過自己的“思考”後得出一個**輸出值**,並會根據其輸出值獲得相應的**獎賞**,程序經過無數次地重複這個過程,學會什麼樣的輸出能獲得更高的獎賞。這樣想的話,所謂機器學習的過程與人類學習的過程(巴甫洛夫訓練小狗的方式)是不是挺相似?
或者,與我們第一次打遊戲的時候,學習遊戲規則的過程是不是很相似?我們就一起回到童年,想象自己第一次遇見超級瑪麗。

0920_2

輸入
打開遊戲,你看到一個簡單的2D環境中有一個萌萌的馬裏奧和各種小物件。這就是你的輸入值。

輸出
你有四個鍵可以用:左、右、蹲、跳,這就是你的輸出值。你得根據輸入值(馬裏奧遇到了金幣),決定自己選擇哪一個輸出(蹲下還是起跳)。

獎賞
即便沒有人明確地教你遊戲規則,很快你也會發現,毫無目的地隨便走走沒法獲得什麼獎賞,但是如果撞到了金幣獎賞就會高一點,如果跳到了神秘盒子獎勵就更高。不過,如果被敵人打了就會獲得懲罰——或者說,負的獎勵。如果撞到了敵人 Goomba 則一踩就掛——或者說,死亡獎勵。

0920_3

掛了沒關係,還能重新來過。當你再一次看到 Goomba,你就會試試其他的“輸出值”來避免“死亡獎勵”。再玩幾把,你就知道可以跳過 Goomba,繼續活命。

增強學習也就是這麼一回事。跟人一樣,機器一開始也是一張白紙、一無所知,經過不斷試錯,知道如何更快地過關、獲得更好的結果。這在機器學習中,就叫做“訓練”。

訓練
正如剛才所說,機器從一開始就像剛出生的嬰兒,是一張白紙、一無所知。要想讓機器完成任務,必須讓機器進行訓練,給它一些訓練的數據。假以時日,機器學習算法就知道如何成功完成任務了。不過,訓練可能得要很長一段時間,所以必須給機器提供高質量的訓練數據,才能獲得更準確的結果。

總結
一句話總結全文:機器學習與傳統意義上的程序不同,反而與人類的學習過程很相似。
傳統的程序是通過一些條件語句硬性規定的程序。如果用傳統程序玩超級瑪麗,就得輸入此類的代碼:if 發現危險,執行“起跳”或是別的動作;else 繼續前進。這與機器學習的根本不同在於,一段時間後,機器學習就能自主決定該做什麼行動,遇到類似的任務時,不需要重新編程就能直接上手。試想你已經從遊戲菜鳥升級為超級瑪麗高手,當你遇到第二個遊戲,你也能快速上手。你玩的遊戲越多,你就越擅長遊戲,即便每個遊戲都略有不同。機器學習也是同理,過往的“經驗”能讓它更快地學習。

現在,“機器學習”這個詞看上去沒有那麼嚇人了吧?超級瑪麗這個基本框架,但願能幫助你理解機器學習在未來的廣泛應用。

本文由北郵@愛可可-愛生活 老師推薦,阿裏雲雲棲社區組織翻譯。
文章原標題《Understanding basics of machine learning through Super Mario》
作者簡介:Adam Wattis,全棧網絡開發創業者,熱衷網絡安全與科技,更多文章可見 Http://adamwattis.com。
譯者:炫,審校:袁虎。
文章為簡譯,更詳細的內容,請查看原文

最後更新:2017-09-20 17:32:41

  上一篇:go  GTS for DRDS分布式事務的實現理解
  下一篇:go  數據可視化難在哪裏?該如何入門