5.6深度学习
5.6深度學(xué)習(xí)
- 理論上來(lái)說,參數(shù)越多的模型復(fù)雜度越高,“容量”越大,這意味著它能夠完成更加復(fù)雜的學(xué)習(xí)任務(wù),但是一般情況下,復(fù)雜模型的訓(xùn)練效率低,易陷入過擬合,因此難以收到人們的青睞,而隨著云計(jì)算,大數(shù)據(jù)時(shí)代的來(lái)領(lǐng),計(jì)算能力的大幅提高可以緩解訓(xùn)練低效性,訓(xùn)練數(shù)據(jù)的大幅增加則可以降低過擬合的風(fēng)險(xiǎn),因此,以“深度學(xué)習(xí)”為代表的復(fù)雜模型開始收到人們的關(guān)注。
- 典型的深度學(xué)習(xí)模型就是很深層的神經(jīng)網(wǎng)絡(luò),顯然,對(duì)神經(jīng)網(wǎng)絡(luò)模型,提高容量的一個(gè)簡(jiǎn)單方法就是增加隱層的數(shù)量,隱層多了,響應(yīng)的神經(jīng)元的連接權(quán)和閾值等參數(shù)就會(huì)更多,模型復(fù)雜度也可以通過單純?cè)黾与[層神經(jīng)元的數(shù)目來(lái)實(shí)現(xiàn),前面我們已經(jīng)談?wù)撨^,單隱層的多層前饋網(wǎng)絡(luò)已經(jīng)具有很強(qiáng)大的學(xué)習(xí)能力,但從增加模型復(fù)雜度的角度來(lái)看,增加隱層的數(shù)目顯然比增加隱層神經(jīng)元的數(shù)目更加有效,因?yàn)?strong>增加隱層數(shù)不僅增加了擁有激活函數(shù)的神經(jīng)元數(shù)目,還增加了激活函數(shù)嵌套的層數(shù),然而,多隱層神經(jīng)網(wǎng)絡(luò)難以直接使用經(jīng)典的算法(例如標(biāo)準(zhǔn)的BP算法)進(jìn)行訓(xùn)練,因?yàn)檎`差在**多隱層內(nèi)逆?zhèn)鞑サ臅r(shí)候,往往會(huì)“發(fā)散”**而不能收斂到穩(wěn)定的狀態(tài)。
- 無(wú)監(jiān)督逐層訓(xùn)練是多隱層網(wǎng)絡(luò)訓(xùn)練的有效手段,其基本思想是每次訓(xùn)練一層隱節(jié)點(diǎn),訓(xùn)練的時(shí)候?qū)⑸弦粚与[結(jié)點(diǎn)的輸出作為輸入,而將本層隱節(jié)點(diǎn)的輸出作為下一層隱節(jié)點(diǎn)的輸入,這稱為“預(yù)訓(xùn)練”,在預(yù)訓(xùn)練全部完成的時(shí)候,再對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行“微調(diào)”訓(xùn)練,例如,再深度信念網(wǎng)絡(luò)中,每層都是一個(gè)受限Boltzmann機(jī),即整個(gè)網(wǎng)絡(luò)可視作為若干個(gè)RBM堆疊而得,使用無(wú)監(jiān)督逐層訓(xùn)練的時(shí)候,首先訓(xùn)練第一層,這是關(guān)于訓(xùn)練樣本的RBM模型,對(duì)第二層進(jìn)行訓(xùn)練,各層預(yù)訓(xùn)練完成之后,再利用BP算法對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
- 事實(shí)上,“預(yù)訓(xùn)練+微調(diào)”的做法可以視作將大量的參數(shù)分組,對(duì)每組先找到局部看起來(lái)比較好的設(shè)置,然后再基于這些局部較優(yōu)的結(jié)果聯(lián)合起來(lái)進(jìn)行全局尋優(yōu),這樣就再利用了模型大量參數(shù)所提供的自由度的同時(shí),有效的節(jié)省了訓(xùn)練開銷。
- 另一種節(jié)省訓(xùn)練開銷的策略是權(quán)共享,即讓一組神經(jīng)元使用相同的連接權(quán),這個(gè)策略再卷積神經(jīng)網(wǎng)絡(luò)中發(fā)揮了重要的作用。
-
以CNN進(jìn)行手寫數(shù)字識(shí)別任務(wù)為例,網(wǎng)絡(luò)的輸入是一個(gè) 32 ? 32的手寫數(shù)字圖像,輸出是其識(shí)別的結(jié)果。CNN復(fù)合多個(gè)卷積層和采層對(duì)輸入信號(hào)進(jìn)行加工,然后在連接曾實(shí)現(xiàn)與輸出目標(biāo)之間的映射,每個(gè)卷積層都包含多個(gè)特征映射,每個(gè)特征映射是一個(gè)由多個(gè)神經(jīng)元構(gòu)成的“平面”,通過一種卷積濾波器提取輸出的一種特征,例如,圖5.15中的第一個(gè)卷積是由6個(gè)特征映射所構(gòu)成,每個(gè)特征映射是一個(gè) 28 X 28的神經(jīng)元陣列,其中每個(gè)神經(jīng)元負(fù)責(zé)從 5 X5的區(qū)域通過卷積濾波器提取局部的特征,采樣層也叫做“匯合”層,其作用是基于局部相關(guān)性原理進(jìn)行亞采樣,從而在減少數(shù)據(jù)量的同時(shí)保留有用的信息,從而在減少數(shù)據(jù)量的同時(shí)保留有用的信息,例如,在圖5.15中的第一個(gè)采樣曾共有 6 個(gè) 14 X 14的特征映射,其中每個(gè)神經(jīng)元與上一層中對(duì)應(yīng)特征映射的 2 X 2領(lǐng)域相連,并由此計(jì)算輸出。通過復(fù)合卷積層和才煙臺(tái)高層,圖15.5中的CNN 將原始的圖像映射成 120 維的特征向量,其中最后一個(gè)由 84 個(gè)神經(jīng)元構(gòu)成的連接曾和輸出層連接完成識(shí)別任務(wù),CNN 可以用BP算法后進(jìn)行訓(xùn)練,但是在訓(xùn)練的時(shí)候,無(wú)論是卷積層還是采樣層,其每一組的神經(jīng)元都是使用相同的連接權(quán),從而大幅減少了需要訓(xùn)練的參數(shù)數(shù)目。
-
我們可以從另一個(gè)角度來(lái)理解深度學(xué)習(xí),無(wú)論是DBN還是CNN,其多層堆疊,每層對(duì)上一層的輸出進(jìn)行處理的機(jī)制,可以看作是對(duì)輸入信號(hào)進(jìn)行逐層加工,從而把初始的,與輸出目標(biāo)之間的聯(lián)系不太密切的輸入表示,轉(zhuǎn)化為與輸出目標(biāo)聯(lián)系更加密切的表示,使得原來(lái)僅基于最后一層的輸出映射難以完成的任務(wù)稱為可能。換言之,通過多層的處理,逐漸將初始的“低層”特征表示轉(zhuǎn)化為“高層”的特征表示之后,用“簡(jiǎn)單模型”就可以i完成復(fù)雜的分類等學(xué)習(xí)任務(wù),由此將深度學(xué)習(xí)理解為特征學(xué)習(xí)或者是表示學(xué)習(xí)
-
以往在機(jī)器學(xué)習(xí)用于現(xiàn)實(shí)任務(wù)的時(shí)候。描述樣本的特征通常需要由人類專家來(lái)設(shè)計(jì),這稱為特征工程。眾所周知,特征的好壞對(duì)泛化性能有著至關(guān)重要的影響,人類專家設(shè)計(jì)處好特征也并非易事,特征學(xué)習(xí)則通過機(jī)器學(xué)習(xí)計(jì)數(shù)自身產(chǎn)生好的特征,這使得機(jī)器學(xué)習(xí)向“全自動(dòng)數(shù)據(jù)分析”又前進(jìn)了一步。
-
總結(jié)