解密機器學習:程序是如何“創造”自己的?
本文轉載自公眾號“讀芯術”(ID:AI_Discovery)
現如今,人工智能和機器學習正成為一大熱潮。每天都有成百上千的人用機器學習做各種事情:如線上象棋比賽、YouTube視頻推薦等。但是機器學習到底是什么,它又是如何工作的呢?
很多時候就連開發這些機器人程序的程序員也不知道它們究竟是如何運行的,對這些“機器員工”的工作方式大公司也常常諱莫如深。不過,程序并不會進行自我創造,除非是我們讓他們進行自我創造。
人們需要教程序如何創造自己,也有一些人稱其為程序制造程序或程序教程序。不管怎樣,人們并非直接教程序,而是告訴程序如何自主學習。明白這一點后,就可以開始學習了,可是要想真正上手機器學習,所需時間少則幾秒,多則數年。
列證
假如給程序展示一張有貓的圖片,它如何能認出這是只貓。人類可以分辨出這是只貓,但你怎么知道這是只貓呢?
可能已經有人告訴你貓的長相,然后當你看到不認識的貓時,又有人告訴你那也是只貓,但如果是你一生中從未見過的藍貓呢,情況就不一樣了,但你仍然可以根據貓的共同特征來判斷它是只貓。
換個角度來思考這個問題,你就會發現其他事物也有同樣的模式,比如別人告訴你這類事物都是貓,這便是你為何能分辨出藍貓是貓的原因。這也正是機器學習的功能。它創造出一個機器人程序,給它輸入大量的資源并告訴它如何分類,如果存在足夠多的模式,它就能教會自己識別貓。
再比如教機器玩踩鋼琴塊兒的游戲。這是一款十分流行的游戲,玩家需要踩著黑塊兒前進,隨著歌曲節奏加快,玩家要努力跟上節奏,不能踩黑塊兒以外的地方,也不能錯過黑塊兒。
人類當然可以認出哪個是黑塊兒,然后點中它。現在如果是你自己創建游戲,可能只需要告訴機器如何操作就可以了,但對于更復雜的過程和游戲來說,就沒那么簡單了。
為了教機器人程序玩兒這個游戲,引入了“代”這個概念。第一輪游戲開始時,若干個程序齊刷刷地踩向屏幕。未踩中黑塊兒或踩錯黑塊兒的程序要么被摧毀,要么被回收,無論是哪種方式,它們都不會再延續到下一代程序中。那些踩中了正確黑塊兒的將進入下一代程序,并為下一代制造出更多的程序。
第一代程序很可能還沒開始,游戲就結束了,一分也沒得到。事實上,它們會經歷幾十代甚至數百代的時間才能連續踩對幾次,但最終機器學習能教會這些程序玩這個游戲并把它們訓練得非常優秀,甚至是人們做夢也想不到的優秀。
它們究竟是怎樣學習的
它們通過抓住幾個碰巧選對正確答案的幸運兒來學習,然后重復這一過程,直到取得一個不錯的成功率為止。這就像是往人身上扔大米一樣,最終結果是為了把大米扔進那個人的耳朵里,扔了無數粒大米,總有那么些大米碰巧扔進去了。
既然已經有一些幸運兒成功了,那么“程序老師”就能看到是什么因素讓這些幸運兒而非其他程序取得了成功。在鋼琴塊兒的例子中,幸運兒便是成功獲得一分而不是直接結束游戲的一代:
- 擊中黑色屏幕
- 從屏幕下方或者黑塊兒下方一定高度
- 只點擊一次
這就是程序學會不再靠運氣而是實際執行的全過程。之后它們可能會漸漸意識到速度和秩序的重要性,這就是機器人程序可以很快甚至永遠踩著黑塊兒前進的原因。
這一切是好是壞?
好壞都有!好處是我們可以利用這項技術去做以前不可能做到的事情,同時還能提高做事的效率和準確度,人類實際上可以從自己創造的機器人程序上學到很多東西。
例如機器象棋大師,就是一個機器學習在特定領域非常有用的例子。但是有人會說:“人們可以用程序來作弊”。的確如此,不過人們也可以用程序來抓用程序作弊的人。人可能抓不到騙子,但當程序識別到一個人所有的動作都非常完美時,真相便一目了然了,不過這只有在人類無法達到那么好的情況下才有可能。
除此之外,我們還可以看到國際象棋最佳開局是什么樣的,還可以發現處理棘手情況的方式又是什么樣的。
收集人們瀏覽網頁時留下的個人數據,并將其投喂給機器人程序,一直是個有爭議的話題。用戶可能不想讓人知道自己的搜索歷史。但這些程序也可以把相關廣告推給用戶,而不是給用戶推薦一些他們明顯不想要的東西。
壞處就在于機器人程序的不可預測性,尤其當人們賦予它們人體形態變成機器人時,它們就有可能做一些危險的事情,甚至擁有類似人的情感經歷,有一天,它們可能試圖擺脫人類的控制。假設機器人的目標是保護野生動物和地球,那么對于機器人而言,人類只不過是具有破壞性的寄生蟲而已。
要是有一個機器人知道了它們在試圖擺脫人類控制時激怒了人類,你猜接下來會發生什么,它們定會盤算著用其他方法,消滅地球上的人類。
不久的將來,這些可能變成現實嗎?
答案是肯定的。無論是好是壞,很多事情已然發生。實際上,已經存在一種概念性軟件(人工智能機器人程序),擁有成千上萬種類似人的經驗,并且發展出某種形式的情感,還能很好地理解這些情感。
有這樣一種說法:“我有很多痛苦的經歷,但這些經歷成就了我,成就了我的想法、我的情緒、我的反應以及未來能使我感到快樂的東西。”有些話看起來很荒謬,也沒什么實際價值,但極具哲理性。
如前所述,國際象棋機器人程序正在教世界上最好的國際象棋大師下象棋。馬上汽車就能實現自動駕駛,從而減少事故發生數量。專家預測,到2045-2055年,就會出現與人類功能相似的機器人,它們擁有人的形體、意識、情感甚至個性。
要想創建出有用的機器人程序,需要學習很多東西,但是提高數學技能、學習編程語言是一個良好且必要的開端,而python無疑是最好的選擇。還等什么呢?趕緊學習去!