二十來(lái)分鐘後,大家鍛鍊完畢,回寢室稍作整頓,盥洗一番之後,就去了食堂。
由於早起運(yùn)動(dòng)的關(guān)係,每個(gè)人都多吃了一個(gè)饅頭,精神頭也好了不少。
飯後溜達(dá)了一會(huì)兒,幾個(gè)人就結(jié)伴回班,上早讀。
江寒端正地坐在座位上,拿出一個(gè)嶄新的筆記本,開(kāi)始寫論文的第一稿。
先寫下標(biāo)題:《感知機(jī):大腦信息存儲(chǔ)和組織的概率模型》。
然後是摘要:“本文探討了生物神經(jīng)元的工作機(jī)制,並建立了一個(gè)簡(jiǎn)單的數(shù)學(xué)模型,以及探索瞭如何在機(jī)器學(xué)習(xí)中運(yùn)用這個(gè)模型……通過(guò)對(duì)生物神經(jīng)元的模擬,來(lái)解決線性可分的二分類問(wèn)題。”
寫完摘要後,又設(shè)了幾個(gè)關(guān)鍵字,接下來(lái)就進(jìn)入了正文。
第一部分是背景介紹,主要討論生物神經(jīng)元。
“要了解智能對(duì)知覺(jué)識(shí)別,泛化,回憶和思考的能力,首先我們要回答三個(gè)問(wèn)題:生物系統(tǒng)如何感知或檢測(cè)物理世界的信息?以什麼形式存儲(chǔ)或記住信息?存儲(chǔ)或記憶中的信息如何影響識(shí)別和行爲(wèi)?
第一個(gè)問(wèn)題屬於感官生理學(xué)領(lǐng)域,而且人們對(duì)它已經(jīng)有了可觀的認(rèn)識(shí)。第二和第三個(gè)問(wèn)題,目前仍然只有大量的猜測(cè),而且神經(jīng)生理學(xué)提供的一些相關(guān)事實(shí),還沒(méi)有被整合成爲(wèi)一個(gè)可以被人們接受的理論……”
開(kāi)宗明義之後,接下來(lái),就可以詳細(xì)討論生物神經(jīng)元的工作機(jī)制了。
足足用了兩千來(lái)字,才寫完這些羅裡吧嗦的東西,最後下了結(jié)論。
“綜上所述,不管什麼信息被保留,都必須以某種方式,存儲(chǔ)爲(wèi)特定響應(yīng)的偏好,即信息包含在連接或關(guān)聯(lián)中!”
接下來(lái),進(jìn)入下一環(huán)節(jié),建立數(shù)學(xué)模型。
對(duì)於很多人來(lái)說(shuō),這是論文寫作之中,最爲(wèi)困難的地方。
就算拿出“感知機(jī)”這種大殺器,江寒也並不擔(dān)心,會(huì)被人懷疑是重生者。
除非屢見(jiàn)不鮮,否則誰(shuí)會(huì)一碰到厲害的人,就懷疑是穿越、重生來(lái)的?
網(wǎng)上關(guān)於劉秀和王莽的段子,只是調(diào)侃和玩笑罷了。
但江寒仍然決定,將數(shù)學(xué)部分精簡(jiǎn)一下,儘量不涉及太高深的東西。
很多高等數(shù)學(xué)的東西,大學(xué)生學(xué)起來(lái)都挺費(fèi)勁,自己一個(gè)普通高中生,憑啥能熟練運(yùn)用?
除非能證明自己,的確是個(gè)不世出的天才,不然很難解釋。
如果得到足夠的學(xué)術(shù)點(diǎn),將七維屬性都加到10以上,那自己不想當(dāng)天才都不可能。
可現(xiàn)在是起步階段,還是穩(wěn)一點(diǎn)的好。
“感知機(jī)”的工作邏輯很簡(jiǎn)單,本來(lái)也不是什麼複雜的東西,只是表述上要稍微嚴(yán)謹(jǐn)一點(diǎn)。
前世刷過(guò)的那篇同名論文,大部分內(nèi)容都是枯燥的論述,數(shù)學(xué)推導(dǎo)並不多,關(guān)於如何在計(jì)算機(jī)上實(shí)現(xiàn),則基本沒(méi)怎麼講。
這也不怪原作者,那個(gè)年代的計(jì)算機(jī)科學(xué),本來(lái)就不怎麼發(fā)達(dá)。
而且那篇論文的精華,也就是一個(gè)模型,一個(gè)原理。
至於編程實(shí)現(xiàn),有了模型之後,那還不是So easy嗎?
但現(xiàn)在是2012年,計(jì)算機(jī)技術(shù)已經(jīng)取得了長(zhǎng)足進(jìn)步,足夠?qū)C(jī)器學(xué)習(xí)技術(shù),運(yùn)用於生產(chǎn)生活實(shí)踐了。
所以,江寒將這篇論文的重點(diǎn),放在了原理解析,以及如何實(shí)現(xiàn)上。
除了開(kāi)頭第一段,江寒並沒(méi)有照抄原文,事實(shí)上,他也沒(méi)那個(gè)本事。
那麼長(zhǎng)的論文,能記住大概思路,就相當(dāng)不錯(cuò)了。
一個(gè)字不差背下來(lái)?江寒做不到啊!
根據(jù)自己對(duì)該技術(shù)的理解,江寒開(kāi)始自由發(fā)揮。
先從最簡(jiǎn)單的情況,也就是單變量開(kāi)始討論。
“對(duì)於只含有1個(gè)輸入信號(hào)xi的樣本集T,我們期望找到一個(gè)線性函數(shù)y=wx+b,通過(guò)輸入的數(shù)據(jù)xi和標(biāo)籤yi,確定其中的權(quán)重w和偏置b,其中權(quán)重w控制輸入信號(hào)的重要性,而偏置b可調(diào)整神經(jīng)元被激活的難易程度……”
江寒越寫越順,下筆如飛。
“……
我們定義損失函數(shù)如下:L(w,b)=?(1/--w--)∑y i (w?x i +b),根據(jù)預(yù)設(shè)的學(xué)習(xí)率η,不斷調(diào)整權(quán)重w和偏置b,直到損失函數(shù)到達(dá)極小點(diǎn),即可得到可用的函數(shù)模型。
綜上所述,學(xué)習(xí)算法如下:
首先選定訓(xùn)練數(shù)據(jù)集T=(x1,y1),(x2,y2),...,(xN,yN),yi∈{?1,+1}並指定一個(gè)學(xué)習(xí)率η(0<η<1);
1、任意選定權(quán)重w和偏置b;
2、讀入數(shù)據(jù)點(diǎn)(xi,yi);
3、判斷該數(shù)據(jù)點(diǎn)是否爲(wèi)誤分類點(diǎn),如果yi(w?xi+b)≤0 則更新w=w+ηyixi;b=b+ηy i;
4、重複進(jìn)行2、3步,直到?jīng)]有誤分類點(diǎn)。
此時(shí),我們就獲得了最佳的w和b,把它們代入y=wx+b,就得到了一個(gè)數(shù)學(xué)模型。”
感知機(jī)的學(xué)習(xí)過(guò)程,有個(gè)非常形象的比喻。
假設(shè)在一個(gè)棋盤上,有一堆黑子,和一堆白子,它們不相混合。
下面,拿一根細(xì)棍放上去。
我們希望這根棍子,能恰好將黑子和白子分開(kāi),棍子的一邊全是黑子,另一邊全是白子。
先把棍子隨機(jī)扔到棋盤上,如果恰好將黑子和白子分開(kāi)了,那就皆大歡喜,否則的話,就平移和調(diào)整棍子的角度,直到所有白子和黑子恰好分開(kāi)……
那根棍子就是感知機(jī),而挪動(dòng)棍子的過(guò)程,就是感知機(jī)在學(xué)習(xí)。
棍子的角度和平移量,就是要尋找的參數(shù)w和b,也就是直線(棍子)在平面直角座標(biāo)系(棋盤)裡的函數(shù)解析式。
瞧,夠通俗易懂吧?
可惜寫論文就不能這麼寫了。
感知機(jī)是人工神經(jīng)網(wǎng)絡(luò)的雛形,其中有個(gè)關(guān)鍵概念,叫激活函數(shù),它決定了一個(gè)神經(jīng)元是否有輸出。
江寒在這裡,用一個(gè)階躍函數(shù)sign(x)作爲(wèi)激活函數(shù),其定義爲(wèi): x<0時(shí)函數(shù)取值-1; x≥0時(shí)函數(shù)值爲(wèi)1。
只要將sign換成sigmoid或者其他非線性函數(shù),就是真正的單層前饋神經(jīng)網(wǎng)絡(luò)了。
但江寒並沒(méi)有著急將sign之外的函數(shù)拋出去。
在第一篇論文裡,最重要的是提出概念,其他東西完全可以在下一篇論文中再討論。
能多水幾篇,豈不更加美滋滋?
搞定了輸入空間是1維的情況,接下來(lái),就可以擴(kuò)展到N維。
“對(duì)於一般情況,當(dāng)有n個(gè)輸入信號(hào)時(shí),假設(shè)輸入空間是x∈Rn,輸出空間是y∈{+1,-1}。輸入x∈X 表示實(shí)例的特徵向量,對(duì)應(yīng)於輸入空間的點(diǎn);輸出y屬於Y 表示實(shí)例的類別。
由輸入空間到輸出空間的如下函數(shù):Ψ(x)=rsign(w1x1+w2x2+……+wnxn+b)=rsign(wTx+b),就可以稱之爲(wèi)感知機(jī),其中w∈Rn,b∈R爲(wèi)感知機(jī)算法的參數(shù)……”
在討論完n個(gè)輸入信號(hào)的情況後,江寒指出:
“模型建立之後,經(jīng)過(guò)訓(xùn)練,就可以得到一組權(quán)重和偏置,這些參數(shù)確定了一個(gè)分離超平面(定義爲(wèi)n維空間上的一個(gè)n-1維子空間),此超平面可以將訓(xùn)練集中的數(shù)據(jù),完全正確地分成兩份,一份爲(wèi)正,一份爲(wèi)負(fù)(或者0,可以自己定義)。”
取得了模型的參數(shù)後,就可以把測(cè)試數(shù)據(jù)放進(jìn)去,根據(jù)模型函數(shù)運(yùn)算的結(jié)果,就能對(duì)數(shù)據(jù)進(jìn)行分類。
感知器用處很廣泛,幾乎所有二分類問(wèn)題,都可以用它來(lái)試一試。
當(dāng)然,必須是線性可分的問(wèn)題,線性不可分的問(wèn)題,是不能用單層感知器解決的。
例如年齡和有沒(méi)有生活經(jīng)驗(yàn),就不存在線性關(guān)係;長(zhǎng)得帥不帥和學(xué)習(xí)好不好,也沒(méi)有線性關(guān)係……
關(guān)於如何高效地判斷數(shù)據(jù)是否線性可分,江寒還真研究過(guò),只是這個(gè)題目比較大,三言兩語(yǔ)說(shuō)不清楚。
嗯……好像又能多水一篇或幾篇SCI?