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