本文共計(jì)2584字,預(yù)計(jì)閱讀時(shí)長(zhǎng)二十分鐘 神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí) 前言 1.神經(jīng)元的構(gòu)成: 打開(kāi)連尚頭條,看更多新鮮猛料 2.樹(shù)突:神經(jīng)元接收信號(hào)的部位,多個(gè) 3.軸突:神經(jīng)元輸出信號(hào)的部位,一個(gè),但是在末端可以分叉,即神經(jīng)末梢 4.突觸:神經(jīng)末梢與其他神經(jīng)元的樹(shù)突接觸的區(qū)域(當(dāng)然也可以與胞體直接接觸) 5.神經(jīng)網(wǎng)絡(luò):是指一種結(jié)構(gòu),指類似于神經(jīng)元之間形成的一種網(wǎng)絡(luò)狀的結(jié)構(gòu)。下圖即為人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,簡(jiǎn)寫為ANNs) 6.人工智能、機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)之間的關(guān)系 –神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)都屬于機(jī)器學(xué)習(xí)的一種 –深度學(xué)習(xí)是神經(jīng)網(wǎng)絡(luò)的一大分支 –深度學(xué)習(xí)的基本結(jié)構(gòu)是深度神經(jīng)網(wǎng)絡(luò) 7.深度學(xué)習(xí)能否取代傳統(tǒng)機(jī)器學(xué)習(xí)? ·有的觀點(diǎn)認(rèn)為:深度學(xué)習(xí)會(huì)導(dǎo)致其他機(jī)器學(xué)習(xí)算法瀕臨滅絕,因?yàn)槠溆兄浅?strong>卓越的預(yù)測(cè)能力,尤其大規(guī)模數(shù)據(jù)集上。 ·有的觀點(diǎn)認(rèn)為:傳統(tǒng)機(jī)器學(xué)習(xí)算法不會(huì)被取代,深度學(xué)習(xí)容易把簡(jiǎn)單問(wèn)題復(fù)雜化,深度學(xué)習(xí)適合不可知域,若有領(lǐng)域知識(shí)的話,傳統(tǒng)算法表現(xiàn)更好。 下面進(jìn)入正文內(nèi)容 》》》》》》》 一、什么是神經(jīng)網(wǎng)絡(luò) 1.最簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)——線性感知機(jī) 線性感知機(jī)的原理是根據(jù)輸入的一維或多維信號(hào)p,預(yù)設(shè)w和b,經(jīng)過(guò)處理后(S = p1*w1+p2*w2+...+pn*wn+1*b)得到一個(gè)輸出值,再由輸出值與實(shí)際值計(jì)算得到誤差,對(duì)w和b進(jìn)行更新,直到所有的樣本都能被輸出正確。但是感知機(jī)僅在線性可分的情況下有效,無(wú)法處理非線性問(wèn)題。 2.遇到了非線性問(wèn)題 對(duì)于非線性問(wèn)題,之前SVM算法里解決辦法是引入了一個(gè)新的概念:核函數(shù)。它可以將樣本從原始空間映射到一個(gè)更高維的特質(zhì)空間中,使得樣本在這個(gè)新的高維空間中可以被線性劃分為兩類,即在空間內(nèi)線性劃分。(文末有SVM的傳送門) 而另一種解決方法便是采用多個(gè)感知機(jī),構(gòu)成神經(jīng)網(wǎng)絡(luò)(所以傳統(tǒng)神經(jīng)網(wǎng)絡(luò)也被稱為多層感知機(jī))。 3.神經(jīng)網(wǎng)絡(luò)基于感知機(jī)的擴(kuò)展 1)加入了隱藏層,隱藏層可以有多層,增強(qiáng)了模型的表達(dá)能力,如下圖實(shí)例 2)輸出層的神經(jīng)元也可以不止一個(gè)輸出,可以有多個(gè)輸出,這樣模型可以靈活的應(yīng)用于分類回歸,以及其他的機(jī)器學(xué)習(xí)領(lǐng)域比如降維和聚類等。多個(gè)神經(jīng)元輸出的輸出層對(duì)應(yīng)的一個(gè)實(shí)例如下圖,輸出層現(xiàn)在有4個(gè)神經(jīng)元了。 3)對(duì)激活函數(shù)做擴(kuò)展,感知機(jī)的激活函數(shù)是sign(z),雖然簡(jiǎn)單但是處理能力有限,因此神經(jīng)網(wǎng)絡(luò)中一般使用的其他的激活函數(shù),比如我們?cè)谶壿嫽貧w里面使用過(guò)的Sigmoid函數(shù)。 二、如何訓(xùn)練神經(jīng)網(wǎng)絡(luò) 1.尋找特征 人類學(xué)習(xí)新事物的過(guò)程,是對(duì)一個(gè)物體總結(jié)出幾個(gè)特征,再與以往的認(rèn)知進(jìn)行匹配,進(jìn)一步進(jìn)行識(shí)別或判斷。人工神經(jīng)網(wǎng)絡(luò)也是類似,一般是綜合一些細(xì)粒度的基礎(chǔ)特征,最終得到幾個(gè)可用的結(jié)構(gòu)性特征。例如,一個(gè)個(gè)的像素點(diǎn)對(duì)于模型訓(xùn)練來(lái)說(shuō),意義不大,只有將粒度放大到一定程度,比如輪胎、車把等特征,才有利于模型的訓(xùn)練。 2.確定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu) 上圖是不同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)(多層感知機(jī))可以解決的問(wèn)題,一般來(lái)說(shuō),雙隱層神經(jīng)網(wǎng)絡(luò)能夠解決任意復(fù)雜的分類問(wèn)題。 3.確定(隱層)的節(jié)點(diǎn)數(shù)量 以一個(gè)三層的神經(jīng)網(wǎng)絡(luò)為例,一般有幾個(gè)經(jīng)驗(yàn): 1)隱層節(jié)點(diǎn)數(shù)量一定要小于N-1(N為樣本數(shù)) 2)訓(xùn)練樣本數(shù)應(yīng)當(dāng)是連接權(quán)(輸入到第一隱層的權(quán)值數(shù)目+第一隱層到第二隱層的權(quán)值數(shù)目+...第N隱層到輸出層的權(quán)值數(shù)目,不就是邊的數(shù)量么)的2-10倍(也有講5-10倍的),另外,最好將樣本進(jìn)行分組,對(duì)模型訓(xùn)練多次,也比一次性全部送入訓(xùn)練強(qiáng)很多。 3)節(jié)點(diǎn)數(shù)量盡可能少,簡(jiǎn)單的網(wǎng)絡(luò)泛化能力往往更強(qiáng) 4)確定隱層節(jié)點(diǎn)的下限和上限,依次遍歷,找到收斂速度較快,且性能較高的節(jié)點(diǎn)數(shù) 4.訓(xùn)練神經(jīng)網(wǎng)絡(luò) · BP算法 Back Propagation,也稱為Error Back Propagation(誤差反向傳播法),實(shí)現(xiàn)步驟見(jiàn)下圖(多看幾遍就清晰了): –信號(hào)正向傳播(FP):樣本由輸入層傳入,經(jīng)過(guò)各個(gè)隱層逐層處理后,傳向輸出層,若輸出層的實(shí)際輸出和期望的輸出不符,則轉(zhuǎn)入誤差的反向傳播階段。 –誤差反向傳播(BP):將輸出以某種形式通過(guò)隱層向輸入層逐層反傳,并將誤差分?jǐn)偨o各層的所有單元,從而獲得各層單元的誤差信號(hào),此誤差型號(hào)即為修正各個(gè)單元權(quán)值的依據(jù)。 BP算法的缺點(diǎn): 1)5層以內(nèi)的神經(jīng)網(wǎng)絡(luò),可以選擇用BP算法訓(xùn)練,否則效果不理想,因?yàn)樯顚咏Y(jié)構(gòu)涉及多個(gè)非線性處理單元層,屬于非凸目標(biāo)函數(shù),普遍存在局部最小,使得訓(xùn)練困難 2)梯度越來(lái)越稀疏:從頂向下,誤差矯正信號(hào)越來(lái)越小 3)只能用帶標(biāo)簽的數(shù)據(jù)進(jìn)行訓(xùn)練,而大部分?jǐn)?shù)據(jù)是沒(méi)有標(biāo)簽的,但是我們大腦是可以從沒(méi)有標(biāo)簽的數(shù)據(jù)中學(xué)習(xí) 三、引入深度學(xué)習(xí) 2006年,深度神經(jīng)網(wǎng)絡(luò)(DNN)和深度學(xué)習(xí)(deep learning)概念被提出來(lái),神經(jīng)網(wǎng)絡(luò)又開(kāi)始煥發(fā)一輪新的生命。事實(shí)上,Hinton研究組提出的這個(gè)深度網(wǎng)絡(luò)從結(jié)構(gòu)上講,與傳統(tǒng)的多層感知機(jī)沒(méi)有什么不同,并且在做有監(jiān)督學(xué)習(xí)時(shí)算法也是一樣的。唯一的不同是這個(gè)網(wǎng)絡(luò)在做有監(jiān)督學(xué)習(xí)前要先做非監(jiān)督學(xué)習(xí),然后將非監(jiān)督學(xué)習(xí)學(xué)到的權(quán)值當(dāng)作有監(jiān)督學(xué)習(xí)的初值進(jìn)行訓(xùn)練。 1.為了解決非監(jiān)督學(xué)習(xí)的過(guò)程→自動(dòng)編碼器 ①自動(dòng)編碼器(Auto Encoder) ·無(wú)標(biāo)簽,用非監(jiān)督學(xué)習(xí)方法學(xué)習(xí)特征 ·給定一個(gè)神經(jīng)網(wǎng)絡(luò),假定輸入輸出是相同的,然后訓(xùn)練調(diào)整其參數(shù),得到每一層的權(quán)重 ·通過(guò)編碼器產(chǎn)生特征,然后訓(xùn)練下一層,逐層下去 ·一旦監(jiān)督訓(xùn)練完成,該網(wǎng)絡(luò)就可用來(lái)做分類 ·神經(jīng)網(wǎng)絡(luò)頂層可以作為一個(gè)線性分類器,我們 可以用一個(gè)更好性能的分類器替代它 ②稀疏自動(dòng)編碼器(Sparse Auto Encoder) ·目的:限制每次得到的表code盡量稀疏,因?yàn)橄∈璧谋磉_(dá)往往比其他表達(dá)要有效 ·做法:在AutoEncoder基礎(chǔ)上加了L1正則 ③降噪自動(dòng)編碼器(Denoising Auto Encoder) ·訓(xùn)練數(shù)據(jù)中加入噪聲,所以自動(dòng)編碼器會(huì)自動(dòng)學(xué)習(xí)如何去除噪聲,從而獲得沒(méi)有被噪聲污染過(guò)的輸入,泛化能力更好 2.為了解決DNN的全連接→卷積神經(jīng)網(wǎng)絡(luò)CNN ①卷積層(Convolution) 當(dāng)DNN在處理圖片的時(shí)候,如果繼續(xù)沿用全連接的話,數(shù)據(jù)量會(huì)異常的大。例如 對(duì)于一個(gè)1000 * 1000像素點(diǎn)的圖像,用1000 * 1000個(gè)神經(jīng)元去記錄數(shù)據(jù),采用全連接的話,1000 * 1000 * 1000 * 1000 = 10^12個(gè)連接,即要訓(xùn)練10^12個(gè)參數(shù) 如果采用局部感受野,令一個(gè)神經(jīng)元記錄10*10的區(qū)域,訓(xùn)練的參數(shù)可以降到10^8個(gè)。 進(jìn)一步采用權(quán)值共享,讓所有神經(jīng)元共享一套權(quán)重值(濾波器Filters),用這個(gè)濾波器在原圖上滑動(dòng)掃描后便會(huì)得到一個(gè)feature map(圖像的一種特征),根據(jù)自編碼模型,只有一個(gè)特征對(duì)模型來(lái)說(shuō),過(guò)于簡(jiǎn)單了,學(xué)不出什么規(guī)律,因此換用不同的濾波器,便可以得到不同的 feature map(特征),如選用100個(gè)濾波器,得到100個(gè)feature map,每個(gè)map是10*10,最終的參數(shù)為100*10*10 =10^4。 由濾波器得到feature map的動(dòng)態(tài)圖如下: 因?yàn)樵谟脼V波器一個(gè)步長(zhǎng)一個(gè)步長(zhǎng)往后面掃描的時(shí)候,涉及到了一個(gè)時(shí)序的問(wèn)題,即卷積的過(guò)程 因此濾波器在掃描的之前,要先翻轉(zhuǎn)180°,這個(gè)時(shí)候我們稱這個(gè)濾波器為卷積核。翻轉(zhuǎn)180°的具體論證過(guò)程見(jiàn)鏈接: ②池化層(Pooling) 作用是在不變性的情況下減少參數(shù),例如平移、旋轉(zhuǎn)、縮放等 ③典型結(jié)構(gòu) CNN一般采用卷積層和池化層交替設(shè)置,即一層卷積接一層池化層,池化層后接一層卷積層,最后幾層可以采用全連接或高斯連接 ④訓(xùn)練過(guò)程 卷積層: – Map個(gè)數(shù)取決于卷積核個(gè)數(shù),常用的6或者12 –第j個(gè)map的輸出計(jì)算:上一層所有map跟自己對(duì)應(yīng)的卷積核做卷積然后求和,再加上偏置,求sigmoid函數(shù) 采樣層: –對(duì)上一層map的相鄰小區(qū)域進(jìn)行聚合統(tǒng)計(jì)(最值或者均值) (任何疑問(wèn)建議,歡迎留言評(píng)論~) 只向你推送最實(shí)用的干貨,別忘了收藏置頂 培養(yǎng)興趣比尋找興趣更重要 推送一個(gè)本周六的線下活動(dòng)~ |
|