人類(lèi)對(duì)于人工智能一直抱有無(wú)限遐想。 古希臘神話(huà)中,火神赫菲斯托斯用金子制造機(jī)器人女工,她們不僅可以幫他干活,還可以同他交流?,旣愌┤R筆下的科學(xué)怪人,和普通人一樣擁有好奇心,追求美好情感。除了出于提高勞動(dòng)效率,改善生活等考慮,人類(lèi)癡迷于人工智能,還因?yàn)槿祟?lèi)也渴望成為造物者,像女?huà)z那樣,看著泥土在自己手中幻化成有智慧的生命。 也許這一天還很遙遠(yuǎn),人類(lèi)的探索從未停止。過(guò)去幾年,人工智能快速增長(zhǎng),前所未有的浪潮洶涌而來(lái)。深度學(xué)習(xí)作為人工智能的一個(gè)子領(lǐng)域,在解決復(fù)雜學(xué)習(xí)問(wèn)題領(lǐng)域的成功已經(jīng)有目共睹。亞馬遜語(yǔ)言助理 Alexa、人工智能?chē)宄绦?AlphaGo、Google 自動(dòng)翻譯,這些技術(shù)背后都離不開(kāi)深度學(xué)習(xí)。 我也十分好奇,計(jì)算機(jī)是如何具備學(xué)習(xí)能力的。相關(guān)科普文章、八卦新聞、媒體報(bào)道無(wú)法滿(mǎn)足我的好奇,于是我直接參加了開(kāi)智學(xué)堂第一期深度學(xué)習(xí)課程。作為一個(gè)深度學(xué)習(xí)小白,我想跟你分享探索路看到的風(fēng)景。 機(jī)器學(xué)習(xí),學(xué)什么機(jī)器學(xué)習(xí)把計(jì)算機(jī)看做黑盒子,接收輸入,處理后反饋結(jié)果;把處理過(guò)程表征為一個(gè)模型,或一個(gè)函數(shù) f()。 對(duì)于圖像識(shí)別程序, 對(duì)于 AlphaGo, 對(duì)于語(yǔ)音識(shí)別程序, 這個(gè)函數(shù)有可能非常復(fù)雜,計(jì)算機(jī)的任務(wù)就是把它模擬出來(lái)。 假設(shè)有這樣一組數(shù)據(jù),記錄了一門(mén)課程的結(jié)業(yè)成績(jī),a1 是學(xué)生的平時(shí)分,a2 是期末考試的分?jǐn)?shù),y 是老師給出的最終得分。這組數(shù)據(jù)稱(chēng)為樣本集,a1,a2 稱(chēng)為特征,y 稱(chēng)為標(biāo)簽。 把數(shù)據(jù)交給計(jì)算機(jī),讓它從中學(xué)習(xí)打分的模型。也就是說(shuō),我們期望它能夠獲得這樣一個(gè)函數(shù) f(a1,a2),盡可能地滿(mǎn)足這一系列等式 f(60,90) = 80 假如計(jì)算機(jī)學(xué)習(xí)到的模型是正確的,或者準(zhǔn)確率可以接受,我們就可以給這個(gè)函數(shù)一系列新的輸入,讓它預(yù)測(cè)這些學(xué)生的分?jǐn)?shù)。 看看如何用深度學(xué)習(xí)來(lái)解決這個(gè)問(wèn)題。深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)分支,基于人工神經(jīng)網(wǎng)絡(luò)技術(shù)。在理解神經(jīng)網(wǎng)絡(luò)之前,要先理解什么是神經(jīng)元。神經(jīng)元其實(shí)就是一個(gè)能夠接收輸入,對(duì)輸入進(jìn)行線性疊加,運(yùn)算并輸出結(jié)果的單元。 為了簡(jiǎn)化問(wèn)題,假設(shè)神經(jīng)元直接把線性疊加的結(jié)果輸出,沒(méi)有經(jīng)過(guò)其他的運(yùn)算。 即 f(a1,a2) = a1W1+a2W2+b,W1,W2 是平時(shí)分和期末分?jǐn)?shù)分別所占的權(quán)重,但它們是未知的。神經(jīng)網(wǎng)絡(luò)的任務(wù)就是把這三個(gè)未知數(shù) W1,W2 和 b 算出來(lái)。 怎么算呢?答案是:猜。當(dāng)然不是漫無(wú)目的的猜,而是按照特定的策略,一邊猜一邊進(jìn)行修正。參考下面的流程圖。 先給權(quán)重和常數(shù)賦一個(gè)隨機(jī)的值,假設(shè)是 W1=0,W2=1,b=2。把樣本集里的第一行數(shù)據(jù)交給神經(jīng)元進(jìn)行計(jì)算。 把計(jì)算結(jié)果和第一行數(shù)據(jù)里的真實(shí)值進(jìn)行比較,算出誤差。再根據(jù)誤差修改權(quán)重。具體怎樣修改權(quán)重,有很多種方法,都是基于特定的數(shù)學(xué)理論,能夠保證不斷的迭代之后,誤差會(huì)越來(lái)越小。這個(gè)基于誤差修改權(quán)重的過(guò)程,就稱(chēng)為學(xué)習(xí)。學(xué)習(xí)方法歸根結(jié)底就是網(wǎng)絡(luò)連接權(quán)重的調(diào)整方法。接下來(lái)不斷地循環(huán)以上過(guò)程,直到誤差變得最小,就獲得了最合適的 W1,W2 和 b 的組合,也就得到所需的函數(shù)。 以上是最簡(jiǎn)單的,只有一個(gè)神經(jīng)元的網(wǎng)絡(luò),它只能表達(dá)簡(jiǎn)單的函數(shù)。假如有兩個(gè)老師給學(xué)生打分,他們的意見(jiàn)不一致,各自都有自己的一組權(quán)重。那就在網(wǎng)絡(luò)中增加一個(gè)神經(jīng)元。權(quán)重增加為四個(gè)。每個(gè)老師算出的分?jǐn)?shù)再交給一個(gè)神經(jīng)元進(jìn)行計(jì)算,同樣也要添加不同的權(quán)重。 假如輸入的特征增加,例如上課次數(shù),平時(shí)分,期末得分共同決定總成績(jī),網(wǎng)絡(luò)就變?yōu)?/p> 當(dāng)許許多多神經(jīng)元按一定規(guī)則連接起來(lái),構(gòu)成深度神經(jīng)網(wǎng)絡(luò),就具備了強(qiáng)大的功能。深度學(xué)習(xí)的「深度」一詞指的是層數(shù)比較多的神經(jīng)網(wǎng)絡(luò)。 以上就是神經(jīng)網(wǎng)絡(luò)的工作原理。 具體到特定領(lǐng)域,比如圖像識(shí)別,也是先人工給大量圖片做好標(biāo)記,這是一只貓,這是一只狗,這是一朵花,再交給計(jì)算機(jī)進(jìn)行學(xué)習(xí)。每一輪學(xué)習(xí),它都會(huì)根據(jù)設(shè)定好的方式對(duì)權(quán)重系數(shù)做出修正。當(dāng)然具體的應(yīng)用要更復(fù)雜,例如 y 值的計(jì)算,通常不是簡(jiǎn)單的線性函數(shù),而是更復(fù)雜的運(yùn)算過(guò)程,每一層的計(jì)算方法也會(huì)不一樣。微軟在 2015 年 ImageNet 挑戰(zhàn)賽中應(yīng)用的系統(tǒng)具有 152 層神經(jīng)網(wǎng)絡(luò)。 人工神經(jīng)元與大腦神經(jīng)元神經(jīng)元的學(xué)習(xí)過(guò)程令我想起曾經(jīng)在科學(xué)館里走過(guò)的鏡子迷宮。當(dāng)你進(jìn)入迷宮后,眼前層層疊疊,分不清虛實(shí),前進(jìn)的方法是用手里的泡沫軸敲一敲,看看是鏡子還是路,如果路就往前走,如果是鏡子就換一個(gè)方向,當(dāng)走到了死胡同就退回來(lái)。 人類(lèi)大腦做決策也是類(lèi)似的:不斷的接收輸入,做出判斷,再根據(jù)現(xiàn)實(shí)與自身判斷的差距進(jìn)行調(diào)整。人類(lèi)的學(xué)習(xí)是對(duì)自我的修正,人工神經(jīng)元的學(xué)習(xí)則是對(duì)它擁有的一系列權(quán)重系數(shù)的修正,只是在計(jì)算機(jī)上精確的量化了這一過(guò)程。 1943 年,邏輯學(xué)家 Walter Pitts 和神經(jīng)生理學(xué)家 Warren McCulloch 提出神經(jīng)元模型,其后神經(jīng)網(wǎng)絡(luò)研究起起伏伏多年,一度被淡忘,直到 2010 年前后才重新崛起,獲得廣泛應(yīng)用。事實(shí)上人工神經(jīng)網(wǎng)絡(luò)的發(fā)明正是受到中樞神經(jīng)系統(tǒng)的啟發(fā)。研究大腦認(rèn)知機(jī)理,再把它運(yùn)用到計(jì)算機(jī)上,是實(shí)現(xiàn)人工智能的一個(gè)重要途徑。下圖是大腦神經(jīng)元的構(gòu)造。 樹(shù)突是神經(jīng)元的輸入通道,軸突是神經(jīng)元的輸出通道。一個(gè)神經(jīng)元通常具有多個(gè)樹(shù)突,而軸突只有一條,軸突尾端有許多軸突末梢跟其他神經(jīng)元的樹(shù)突產(chǎn)生連接,從而傳遞信號(hào)。這個(gè)連接的位置在生物學(xué)上叫做「突觸」。 1977 年諾貝爾物理學(xué)獎(jiǎng)得主安德森在論文《多者異也》中指出,物質(zhì)在不同的尺度會(huì)遵從不一樣的規(guī)律。單個(gè)神經(jīng)元的功能十分簡(jiǎn)單,當(dāng)神經(jīng)元多達(dá)數(shù)百億個(gè),心智自然涌現(xiàn)。大腦神經(jīng)網(wǎng)絡(luò)之所以具有思維認(rèn)識(shí)等高級(jí)功能,正是因?yàn)闊o(wú)數(shù)神經(jīng)元之間的聯(lián)結(jié)構(gòu)成了一個(gè)龐大而復(fù)雜的系統(tǒng)。 我前面所介紹的內(nèi)容,都只是簡(jiǎn)單的,淺層次的理解,可能有些知識(shí)也屬于「司機(jī)知識(shí)」。深度學(xué)習(xí)是一個(gè)融合了數(shù)學(xué),計(jì)算機(jī)技術(shù)和特定領(lǐng)域知識(shí)的多學(xué)科交叉領(lǐng)域。在數(shù)學(xué)理論的指導(dǎo)下,才能保證模型的學(xué)習(xí)是朝著正確的方向,能夠獲得最優(yōu)的結(jié)果;在理解了神經(jīng)網(wǎng)絡(luò)的原理之后,必須通過(guò)編程技術(shù)才能真正實(shí)現(xiàn);如何用來(lái)解決現(xiàn)實(shí)中的問(wèn)題,計(jì)算機(jī)怎樣理解圖像,我們使用的語(yǔ)言文字要怎樣轉(zhuǎn)換成計(jì)算機(jī)可以處理的數(shù)字,這些都是需要沉下心來(lái),投入時(shí)間才能夠掌握的。下一階段的計(jì)劃是深度學(xué)習(xí)「深度學(xué)習(xí)」。 學(xué)習(xí)如織網(wǎng)新生兒大腦中約有 860 億個(gè)神經(jīng)元。對(duì)大腦的運(yùn)行而言,神經(jīng)元數(shù)目只是一方面,神經(jīng)元之間的連接才是決定性的。怎樣建立神經(jīng)元之間的連接呢?通過(guò)學(xué)習(xí)。
大家都有這樣的體會(huì),第一次讀到一段文字,往往不會(huì)有深刻印象。后來(lái),在某個(gè)觸動(dòng)你的故事中再次看到這段文字,或某個(gè)具體場(chǎng)景令你聯(lián)想到它,才在腦海中留下鮮活印象。 中學(xué)時(shí)很喜歡讀詩(shī)詞,大部分都是過(guò)目即忘。某天放學(xué)路上,我望著天邊的落日,一句話(huà)從腦海里涌出:浮云游子意,落日故人情。完全記不起這是誰(shuí)寫(xiě)的,什么時(shí)候讀過(guò),甚至有種錯(cuò)覺(jué),似乎是自己想出來(lái)的。查書(shū)才知道來(lái)自李白的《送友人》,這時(shí)我才是真正的「記住」了這首詩(shī)。 生物學(xué)家埃里克·坎德?tīng)枺‥ric R. Kandel)研究原始動(dòng)物海兔的神經(jīng)細(xì)胞,發(fā)現(xiàn)記憶就發(fā)生在神經(jīng)元的突觸上。短期記憶形成時(shí),突觸連接的強(qiáng)度增加,長(zhǎng)期記憶形成時(shí),不僅是突觸強(qiáng)度增加,神經(jīng)回路中的突觸數(shù)目也發(fā)生了變化。 因此,坎德?tīng)枌?xiě)道:「對(duì)需要長(zhǎng)期保持的記憶而言,輸入的信息必須經(jīng)過(guò)徹底而深入的處理。要完成這樣的處理過(guò)程,就得留意這些信息,并把這些信息跟記憶中已有的知識(shí)有意義地、系統(tǒng)化地聯(lián)系起來(lái)。」 古人云,學(xué)而時(shí)習(xí)之。學(xué)習(xí)是一個(gè)反復(fù)印證,互為佐證的過(guò)程,也是在不斷地增強(qiáng)大腦中神經(jīng)元之間的連接。深度學(xué)習(xí)的計(jì)算部分,通過(guò)線性代數(shù)中的矩陣來(lái)實(shí)現(xiàn)。每列代表一個(gè)神經(jīng)元,也就是它所擁有的權(quán)重。一個(gè)公式簡(jiǎn)潔的表達(dá)了前面所說(shuō)的一系列運(yùn)算步驟。 這是我和線性代數(shù)的第三次相遇。 讀大學(xué)時(shí)它是令我頭疼的一門(mén)課,各種矩陣變換令人暈頭轉(zhuǎn)向,完全不明白為什么要定義這些奇怪的規(guī)則??佳袝r(shí)弄懂了,后來(lái)工作中不常用到,又漸漸遺忘。在深度學(xué)習(xí)課程中,我才明白,原來(lái)矩陣可以用在這里。 我們接受的教育有一個(gè)奇怪的特點(diǎn),把知識(shí)灌輸?shù)搅四X海,卻沒(méi)有與現(xiàn)實(shí)生活聯(lián)系。仿佛有一塊孤零零的區(qū)域,專(zhuān)門(mén)用來(lái)考試。學(xué)生在考試的指揮棒之下趕路,無(wú)法領(lǐng)略其中的奧妙。直到多年以后,為了理解新的知識(shí)去重溫,才明白,原來(lái)它是這樣使用的。把過(guò)去的記憶提取到大腦中,與新的記憶連接,我們同時(shí)在織著兩張網(wǎng),一張是虛擬的知識(shí)網(wǎng)絡(luò),一張是大腦中神經(jīng)元的網(wǎng)絡(luò)。 洞穴外的光到目前為止,我參加了開(kāi)智學(xué)堂的四門(mén)課程,坦白說(shuō),開(kāi)智的課程信息密度都很大,稍不注意就會(huì)掉隊(duì)。每期課程都有一些特別優(yōu)秀的同學(xué),在我還沒(méi)看懂算法內(nèi)容的時(shí)候,他已經(jīng)可以和老師討論算法的性能了。我的狀態(tài)就是一直在追趕,從來(lái)都追不上,但是這樣一次又一次「被虐」,我卻樂(lè)此不疲。 大家可能聽(tīng)說(shuō)過(guò)柏拉圖的洞穴隱喻,設(shè)想有一個(gè)深邃幽暗的洞穴,人被完全禁錮,只能看到前方墻壁上刻意制造的幻象,他就以為這是真實(shí)的世界。當(dāng)其中一人的枷鎖被解除,能夠自由行動(dòng),看到洞穴里的一切,他會(huì)開(kāi)始思考何者為真何者為幻,產(chǎn)生困惑與痛苦。當(dāng)他走出洞穴,逐步看清事物真相,適應(yīng)了刺眼的陽(yáng)光,便不愿意再回到黑暗之中生活。 我們都生活在自我構(gòu)建的洞穴之中,它可以是你所處的環(huán)境,也可以是人生的不同階段。假如你觀察一個(gè)孩子,會(huì)發(fā)現(xiàn)他的喜怒哀樂(lè)、行動(dòng)都是出于本能,是不自知的。隨著心智成熟,有一天他會(huì)能夠意識(shí)到自己的情緒,從而調(diào)節(jié)和控制。這便是一個(gè)走出洞穴的過(guò)程。留在已知世界中會(huì)令我們感覺(jué)安全,而探索新知,開(kāi)拓思維的疆域,則有機(jī)會(huì)來(lái)到更寬廣更精彩的世界。對(duì)我而言,這就是光。 其實(shí)學(xué)習(xí)的這些課程,在短期內(nèi)都和我的工作沒(méi)有多大關(guān)聯(lián),但是并不意味著它們對(duì)我的生活不具備現(xiàn)實(shí)意義。在我看來(lái),最好的教育不是僅僅提供知識(shí)和答案,而是給你更多疑問(wèn),讓你對(duì)現(xiàn)狀產(chǎn)生質(zhì)疑。 相信很多小伙伴都和我一樣,面臨這個(gè)問(wèn)題:想做的事情太多,時(shí)間不夠用,怎么辦?在學(xué)習(xí)認(rèn)知科學(xué),了解大腦怎樣做決策后,開(kāi)始嘗試著簡(jiǎn)化生活, 把一些不那么重要的事情盡可能地簡(jiǎn)單化,自動(dòng)化,減少對(duì)認(rèn)知能量的消耗。在陽(yáng)志平老師的生活十二問(wèn)中有所提及,我就不再贅述。 簡(jiǎn)化生活,最重要的是處理好與身邊人的關(guān)系。遠(yuǎn)方的戰(zhàn)爭(zhēng)會(huì)令我們動(dòng)容,慨嘆過(guò)后,生活照舊。但是假如和身邊的人,尤其是家人產(chǎn)生矛盾,則會(huì)帶來(lái)一整天的心神不寧。而我們往往更在意自己面對(duì)外人時(shí)的形象,而忽略了家人的感受。意識(shí)到這一點(diǎn),帶來(lái)的是行動(dòng)上的改變。相比兩年之前,我能感受到自己能夠以一種更平和的心境面對(duì)工作和生活。 陶淵明筆下,武陵人穿越山中小口,遇見(jiàn)桃花源。當(dāng)我們跨出自我的疆域,踏進(jìn)未知世界,或許會(huì)感覺(jué)豁然開(kāi)朗,另有一番天地?■ 作者:周瑞珍
編輯:李亮 |
|