姓名:張歡 學(xué)號:16020199056 電子工程學(xué)院
轉(zhuǎn)載自https://www.zhihu.com/question/22553761/answer/36429105
【嵌牛導(dǎo)讀】神經(jīng)網(wǎng)絡(luò)最重要的用途是分類,為了讓大家對分類有個(gè)直觀的認(rèn)識,咱們先看幾個(gè)例子:
垃圾郵件識別:現(xiàn)在有一封電子郵件,把出現(xiàn)在里面的所有詞匯提取出來泌辫,送進(jìn)一個(gè)機(jī)器里,機(jī)器需要判斷這封郵件是否是垃圾郵件默刚。
疾病判斷:病人到醫(yī)院去做了一大堆肝功甥郑、尿檢測驗(yàn)逃魄,把測驗(yàn)結(jié)果送進(jìn)一個(gè)機(jī)器里荤西,機(jī)器需要判斷這個(gè)病人是否得病,得的什么病伍俘。
【嵌牛鼻子】神經(jīng)網(wǎng)絡(luò)
【嵌牛提問】什么是神經(jīng)網(wǎng)絡(luò)
【嵌牛正文】神經(jīng)網(wǎng)絡(luò)很萌的邪锌!
0. 分類
神經(jīng)網(wǎng)絡(luò)最重要的用途是分類,為了讓大家對分類有個(gè)直觀的認(rèn)識癌瘾,咱們先看幾個(gè)例子:
垃圾郵件識別:現(xiàn)在有一封電子郵件觅丰,把出現(xiàn)在里面的所有詞匯提取出來,送進(jìn)一個(gè)機(jī)器里妨退,機(jī)器需要判斷這封郵件是否是垃圾郵件妇萄。
疾病判斷:病人到醫(yī)院去做了一大堆肝功、尿檢測驗(yàn)咬荷,把測驗(yàn)結(jié)果送進(jìn)一個(gè)機(jī)器里冠句,機(jī)器需要判斷這個(gè)病人是否得病,得的什么病幸乒。
貓狗分類:有一大堆貓懦底、狗照片,把每一張照片送進(jìn)一個(gè)機(jī)器里罕扎,機(jī)器需要判斷這幅照片里的東西是貓還是狗聚唐。
這種能自動對輸入的東西進(jìn)行分類的機(jī)器,就叫做分類器腔召。
分類器的輸入是一個(gè)數(shù)值向量杆查,叫做特征(向量)。在第一個(gè)例子里臀蛛,分類器的輸入是一堆0根灯、1值,表示字典里的每一個(gè)詞是否在郵件中出現(xiàn),比如向量(1,1,0,0,0......)就表示這封郵件里只出現(xiàn)了兩個(gè)詞abandon和abnormal烙肺;第二個(gè)例子里纳猪,分類器的輸入是一堆化驗(yàn)指標(biāo);第三個(gè)例子里桃笙,分類器的輸入是照片氏堤,假如每一張照片都是320*240像素的紅綠藍(lán)三通道彩色照片,那么分類器的輸入就是一個(gè)長度為320*240*3=230400的向量搏明。
分類器的輸出也是數(shù)值鼠锈。第一個(gè)例子中,輸出1表示郵件是垃圾郵件星著,輸出0則說明郵件是正常郵件购笆;第二個(gè)例子中,輸出0表示健康虚循,輸出1表示有甲肝同欠,輸出2表示有乙肝,輸出3表示有餅干等等横缔;第三個(gè)例子中铺遂,輸出0表示圖片中是狗,輸出1表示是貓茎刚。
分類器的目標(biāo)就是讓正確分類的比例盡可能高襟锐。一般我們需要首先收集一些樣本,人為標(biāo)記上正確分類結(jié)果膛锭,然后用這些標(biāo)記好的數(shù)據(jù)訓(xùn)練分類器粮坞,訓(xùn)練好的分類器就可以在新來的特征向量上工作了。
1. 神經(jīng)元
咱們假設(shè)分類器的輸入是通過某種途徑獲得的兩個(gè)值初狰,輸出是0和1莫杈,比如分別代表貓和狗。現(xiàn)在有一些樣本:
大家想想跷究,最簡單地把這兩組特征向量分開的方法是啥姓迅?當(dāng)然是在兩組數(shù)據(jù)中間畫一條豎直線,直線左邊是狗俊马,右邊是貓丁存,分類器就完成了。以后來了新的向量柴我,凡是落在直線左邊的都是狗解寝,落在右邊的都是貓。
一條直線把平面一分為二艘儒,一個(gè)平面把三維空間一分為二聋伦,一個(gè)n-1維超平面把n維空間一分為二夫偶,兩邊分屬不同的兩類,這種分類器就叫做神經(jīng)元觉增。
大家都知道平面上的直線方程是ax+by+c=0兵拢,等式左邊大于零和小于零分別表示點(diǎn)(x,y)在直線的一側(cè)還是另一側(cè),把這個(gè)式子推廣到n維空間里逾礁,直線的高維形式稱為超平面说铃,它的方程是:
h = a_1x_1+a_2 x_2+...+a_nx_n+a_0=0
神經(jīng)元就是當(dāng)h大于0時(shí)輸出1,h小于0時(shí)輸出0這么一個(gè)模型嘹履,它的實(shí)質(zhì)就是把特征空間一切兩半腻扇,認(rèn)為兩瓣分別屬兩個(gè)類。你恐怕再也想不到比這更簡單的分類器了砾嫉,它是McCulloch和Pitts在1943年想出來了幼苛。
這個(gè)模型有點(diǎn)像人腦中的神經(jīng)元:從多個(gè)感受器接受電信號x_1, x_2,...,x_n,進(jìn)行處理(加權(quán)相加再偏移一點(diǎn)焕刮,即判斷輸入是否在某條直線h=0的一側(cè))舶沿,發(fā)出電信號(在正確的那側(cè)發(fā)出1,否則不發(fā)信號济锄,可以認(rèn)為是發(fā)出0)暑椰,這就是它叫神經(jīng)元的原因霍转。
當(dāng)然荐绝,上面那幅圖我們是開了上帝視角才知道“一條豎直線能分開兩類”,在實(shí)際訓(xùn)練神經(jīng)元時(shí)避消,我們并不知道特征是怎么抱團(tuán)的低滩。神經(jīng)元模型的一種學(xué)習(xí)方法稱為Hebb算法:
先隨機(jī)選一條直線/平面/超平面,然后把樣本一個(gè)個(gè)拿過來岩喷,如果這條直線分錯(cuò)了恕沫,說明這個(gè)點(diǎn)分錯(cuò)邊了,就稍微把直線移動一點(diǎn)纱意,讓它靠近這個(gè)樣本婶溯,爭取跨過這個(gè)樣本,讓它跑到直線正確的一側(cè)偷霉;如果直線分對了迄委,它就暫時(shí)停下不動。因此訓(xùn)練神經(jīng)元的過程就是這條直線不斷在跳舞类少,最終跳到兩個(gè)類之間的豎直線位置叙身。
2. 神經(jīng)網(wǎng)絡(luò)
MP神經(jīng)元有幾個(gè)顯著缺點(diǎn)。首先它把直線一側(cè)變?yōu)?硫狞,另一側(cè)變?yōu)?信轿,這東西不可微晃痴,不利于數(shù)學(xué)分析。人們用一個(gè)和0-1階躍函數(shù)類似但是更平滑的函數(shù)Sigmoid函數(shù)來代替它(Sigmoid函數(shù)自帶一個(gè)尺度參數(shù)财忽,可以控制神經(jīng)元對離超平面距離不同的點(diǎn)的響應(yīng)倘核,這里忽略它),從此神經(jīng)網(wǎng)絡(luò)的訓(xùn)練就可以用梯度下降法來構(gòu)造了即彪,這就是有名的反向傳播算法笤虫。
神經(jīng)元的另一個(gè)缺點(diǎn)是:它只能切一刀!你給我說說一刀怎么能把下面這兩類分開吧祖凫。
解決辦法是多層神經(jīng)網(wǎng)絡(luò)琼蚯,底層神經(jīng)元的輸出是高層神經(jīng)元的輸入。我們可以在中間橫著砍一刀惠况,豎著砍一刀遭庶,然后把左上和右下的部分合在一起,與右上的左下部分分開稠屠;也可以圍著左上角的邊沿砍10刀把這一部分先挖出來峦睡,然后和右下角合并。
每砍一刀权埠,其實(shí)就是使用了一個(gè)神經(jīng)元榨了,把不同砍下的半平面做交、并等運(yùn)算攘蔽,就是把這些神經(jīng)元的輸出當(dāng)作輸入龙屉,后面再連接一個(gè)神經(jīng)元。這個(gè)例子中特征的形狀稱為異或满俗,這種情況一個(gè)神經(jīng)元搞不定转捕,但是兩層神經(jīng)元就能正確對其進(jìn)行分類。
只要你能砍足夠多刀唆垃,把結(jié)果拼在一起五芝,什么奇怪形狀的邊界神經(jīng)網(wǎng)絡(luò)都能夠表示,所以說神經(jīng)網(wǎng)絡(luò)在理論上可以表示很復(fù)雜的函數(shù)/空間分布辕万。但是真實(shí)的神經(jīng)網(wǎng)絡(luò)是否能擺動到正確的位置還要看網(wǎng)絡(luò)初始值設(shè)置枢步、樣本容量和分布。
神經(jīng)網(wǎng)絡(luò)神奇的地方在于它的每一個(gè)組件非常簡單——把空間切一刀+某種激活函數(shù)(0-1階躍渐尿、sigmoid醉途、max-pooling),但是可以一層一層級聯(lián)涡戳。輸入向量連到許多神經(jīng)元上结蟋,這些神經(jīng)元的輸出又連到一堆神經(jīng)元上,這一過程可以重復(fù)很多次渔彰。這和人腦中的神經(jīng)元很相似:每一個(gè)神經(jīng)元都有一些神經(jīng)元作為其輸入嵌屎,又是另一些神經(jīng)元的輸入推正,數(shù)值向量就像是電信號,在不同神經(jīng)元之間傳導(dǎo)宝惰,每一個(gè)神經(jīng)元只有滿足了某種條件才會發(fā)射信號到下一層神經(jīng)元植榕。當(dāng)然,人腦比神經(jīng)網(wǎng)絡(luò)模型復(fù)雜很多:人工神經(jīng)網(wǎng)絡(luò)一般不存在環(huán)狀結(jié)構(gòu)尼夺;人腦神經(jīng)元的電信號不僅有強(qiáng)弱尊残,還有時(shí)間緩急之分,就像莫爾斯電碼淤堵,在人工神經(jīng)網(wǎng)絡(luò)里沒有這種復(fù)雜的信號模式寝衫。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練依靠反向傳播算法:最開始輸入層輸入特征向量,網(wǎng)絡(luò)層層計(jì)算獲得輸出拐邪,輸出層發(fā)現(xiàn)輸出和正確的類號不一樣慰毅,這時(shí)它就讓最后一層神經(jīng)元進(jìn)行參數(shù)調(diào)整,最后一層神經(jīng)元不僅自己調(diào)整參數(shù)扎阶,還會勒令連接它的倒數(shù)第二層神經(jīng)元調(diào)整汹胃,層層往回退著調(diào)整。經(jīng)過調(diào)整的網(wǎng)絡(luò)會在樣本上繼續(xù)測試东臀,如果輸出還是老分錯(cuò)着饥,繼續(xù)來一輪回退調(diào)整,直到網(wǎng)絡(luò)輸出滿意為止惰赋。這很像中國的文藝體制宰掉,武媚娘傳奇劇組就是網(wǎng)絡(luò)中的一個(gè)神經(jīng)元,最近剛剛調(diào)整了參數(shù)谤逼。
3. 大型神經(jīng)網(wǎng)絡(luò)
我們不禁要想了贵扰,假如我們的這個(gè)網(wǎng)絡(luò)有10層神經(jīng)元仇穗,第8層第2015個(gè)神經(jīng)元流部,它有什么含義呢?我們知道它把第七層的一大堆神經(jīng)元的輸出作為輸入纹坐,第七層的神經(jīng)元又是以第六層的一大堆神經(jīng)元做為輸入枝冀,那么這個(gè)特殊第八層的神經(jīng)元,它會不會代表了某種抽象的概念耘子?
就好比你的大腦里有一大堆負(fù)責(zé)處理聲音果漾、視覺、觸覺信號的神經(jīng)元谷誓,它們對于不同的信息會發(fā)出不同的信號绒障,那么會不會有這么一個(gè)神經(jīng)元(或者神經(jīng)元小集團(tuán)),它收集這些信號捍歪,分析其是否符合某個(gè)抽象的概念户辱,和其他負(fù)責(zé)更具體和更抽象概念的神經(jīng)元進(jìn)行交互。2012年多倫多大學(xué)的Krizhevsky等人構(gòu)造了一個(gè)超大型卷積神經(jīng)網(wǎng)絡(luò)[1]恩商,有9層,共65萬個(gè)神經(jīng)元,6千萬個(gè)參數(shù)嚷炉。網(wǎng)絡(luò)的輸入是圖片,輸出是1000個(gè)類哗讥,比如小蟲、美洲豹腐泻、救生船等等构诚。這個(gè)模型的訓(xùn)練需要海量圖片,它的分類準(zhǔn)確率也完爆先前所有分類器。紐約大學(xué)的Zeiler和Fergusi[2]把這個(gè)網(wǎng)絡(luò)中某些神經(jīng)元挑出來受裹,把在其上響應(yīng)特別大的那些輸入圖像放在一起脑慧,看它們有什么共同點(diǎn)。他們發(fā)現(xiàn)中間層的神經(jīng)元響應(yīng)了某些十分抽象的特征。
第一層神經(jīng)元主要負(fù)責(zé)識別顏色和簡單紋理也物。
第二層的一些神經(jīng)元可以識別更加細(xì)化的紋理,比如布紋、刻度、葉紋疤剑。
第三層的一些神經(jīng)元負(fù)責(zé)感受黑夜里的黃色燭光、雞蛋黃、高光。
第四層的一些神經(jīng)元負(fù)責(zé)識別萌狗的臉、七星瓢蟲和一堆圓形物體的存在。
第五層的一些神經(jīng)元可以識別出花腺办、圓形屋頂、鍵盤、鳥、黑眼圈動物。
這里面的概念并不是整個(gè)網(wǎng)絡(luò)的輸出,是網(wǎng)絡(luò)中間層神經(jīng)元的偏好,它們?yōu)楹竺娴纳窠?jīng)元服務(wù)。雖然每一個(gè)神經(jīng)元都傻不拉幾的(只會切一刀),但是65萬個(gè)神經(jīng)元能學(xué)到的東西還真是深邃呢。
[1] Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). Imagenet classification with deep convolutional neural networks. In Advances in neural information processing systems (pp. 1097-1105).
[2] Zeiler, M. D., & Fergus, R. (2013). Visualizing and understanding convolutional neural networks. arXiv preprint arXiv:1311.2901.