王粲
(南京市中華中學(xué),江蘇南京,210019)
近年來,人類科技不斷發(fā)展,計(jì)算機(jī)技術(shù)也不斷進(jìn)步,伴隨著人工智能技術(shù)的興起,現(xiàn)代社會(huì)變得越來越智能化,機(jī)器人,臉部識(shí)別,汽車車牌識(shí)別也越來越多的應(yīng)用在我們的生活之中,而這些技術(shù)的發(fā)展,離不開計(jì)算機(jī)的深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的發(fā)展。但目前人工智能的發(fā)展卻遠(yuǎn)遠(yuǎn)未達(dá)到人們的需求,更高的準(zhǔn)確性和更快的運(yùn)算速度是現(xiàn)在急需解決的問題。
現(xiàn)在,百度公司已經(jīng)在生產(chǎn)無人駕駛汽車,無人駕駛汽車對(duì)于人類來說具有更高的舒適性,避免了因醉酒駕駛和疲勞駕駛而帶來的行車危險(xiǎn)。同時(shí),當(dāng)代社會(huì)的交通事故率在不斷提高,如能實(shí)現(xiàn)無人駕駛,那么因車禍帶來的死亡率會(huì)大大降低,從而提高社會(huì)的穩(wěn)定性。但無人駕駛汽車任處于嘗試階段,而實(shí)現(xiàn)照相技術(shù)的最重要因素就是能在汽車遇到緊急狀況時(shí),計(jì)算機(jī)能對(duì)其進(jìn)行準(zhǔn)確而實(shí)時(shí)的處理,為了在這些領(lǐng)域取得更大的進(jìn)步,CNN網(wǎng)絡(luò)和Hash網(wǎng)絡(luò)也就應(yīng)運(yùn)而生了。CNN網(wǎng)絡(luò)使用5×5,3×3等大小的卷積核,將卷積核內(nèi)的像素點(diǎn)的權(quán)重實(shí)行統(tǒng)一,從而達(dá)到權(quán)值共享的目的,卷積過程完成后在進(jìn)行池化,對(duì)卷積核1內(nèi)的數(shù)據(jù)進(jìn)行抽樣,將5×5,10×10甚至更大的池化層縮小到1×1的區(qū)域,這樣就能將權(quán)重的數(shù)量減少,有利于減少計(jì)算機(jī)的計(jì)算量來達(dá)到更大的計(jì)算速度,也可以對(duì)數(shù)據(jù)達(dá)到特征提取的效果。而Hash網(wǎng)絡(luò)是將任意不定長(zhǎng)的比特串轉(zhuǎn)化為一個(gè)定長(zhǎng)的比特串,將小于2^64比特的巨大數(shù)據(jù)轉(zhuǎn)化為160比特的消息作為輸出。以達(dá)到減少參數(shù)量的目的。二值神經(jīng)網(wǎng)絡(luò)存在的缺點(diǎn)是無法求導(dǎo)的問題,但如果使用Hash網(wǎng)絡(luò)就可以解決這一問題。CNN網(wǎng)絡(luò)和Hash網(wǎng)絡(luò)的使用對(duì)計(jì)算機(jī)的深度學(xué)習(xí)有著很大的改進(jìn),為以后人工智能等社會(huì)智能化發(fā)展提供了機(jī)會(huì)和方法。
本文將大致介紹CNN網(wǎng)絡(luò)的意義,好處和加速計(jì)算的過程,二值網(wǎng)絡(luò)的好處及計(jì)算流程,最后講述Hash網(wǎng)絡(luò)如何解決二值網(wǎng)絡(luò)無法求導(dǎo)的問題,通過學(xué)術(shù)資料的查詢簡(jiǎn)述如何進(jìn)行計(jì)算機(jī)運(yùn)算的加速,以期為未來的人工智能發(fā)展提供可能的工具和方法。
CNN網(wǎng)絡(luò)全稱為卷積神經(jīng)網(wǎng)絡(luò),是一種深度學(xué)習(xí)的前饋神經(jīng)網(wǎng)絡(luò),他是目前計(jì)算機(jī)運(yùn)用較多的神經(jīng)網(wǎng)絡(luò),CNN主要用于圖像的識(shí)別和處理,由于這種網(wǎng)絡(luò)能夠?qū)崿F(xiàn)權(quán)值共享,所以使用CNN網(wǎng)絡(luò)進(jìn)行計(jì)算可以大大的減少計(jì)算量。
CNN網(wǎng)絡(luò)包括卷積層和池化層,每一個(gè)卷積層后都有一個(gè)池化層,當(dāng)一個(gè)圖像輸入之后,它會(huì)變成一個(gè)28×28的點(diǎn)陣進(jìn)行處理,每一個(gè)點(diǎn)都代表一個(gè)權(quán)重,這對(duì)于計(jì)算機(jī)的運(yùn)算量來說無疑是巨大的,而將圖片輸入CNN網(wǎng)絡(luò)時(shí),這28×28的點(diǎn)陣會(huì)由卷積核提取特征,卷積核的大小一般為5×5或3×3,假設(shè)用5×5的卷積核提取特征,那么28×28的點(diǎn)陣會(huì)縮小為24×24的大小,并且由6個(gè)卷積層組成,之后這24×24×6會(huì)被池化,即選擇一個(gè)固定大小的區(qū)域,在這個(gè)區(qū)域中提取這些數(shù)據(jù)的最大值或平均值,池化過程既保留了數(shù)據(jù)的特征,又減少了數(shù)據(jù)的數(shù)量。如圖1所示。
圖1 卷積神經(jīng)網(wǎng)絡(luò)
即在池化過程中選擇在2×2的數(shù)據(jù)內(nèi)取特征值,從而將像素點(diǎn)減少為6×12×12,如此循環(huán)往復(fù)地減少像素點(diǎn)來達(dá)到對(duì)數(shù)據(jù)量的縮減。CNN網(wǎng)絡(luò)和普通網(wǎng)絡(luò)相比除了能夠自主深度學(xué)習(xí)外還能提取圖像的特征,普通網(wǎng)絡(luò)具有巨大的參數(shù)量,計(jì)算機(jī)的計(jì)算難度過大,而CNN網(wǎng)絡(luò)用卷積和池化將參數(shù)量減少,實(shí)現(xiàn)權(quán)值共享,從而減少計(jì)算量是普通網(wǎng)絡(luò)完全不具備的。
二值網(wǎng)絡(luò)又稱網(wǎng)絡(luò)二值化,是減少計(jì)算機(jī)運(yùn)算量的一種方式。網(wǎng)絡(luò)二值化是由CNN網(wǎng)絡(luò)進(jìn)一步加速做成的,即將浮點(diǎn)權(quán)重轉(zhuǎn)化為僅由1和-1組成的二值權(quán)重。由于浮點(diǎn)計(jì)算慢且權(quán)重為小數(shù)時(shí),計(jì)算過于復(fù)雜,所以用二值權(quán)重代表浮點(diǎn)權(quán)重,以求達(dá)到加速計(jì)算機(jī)運(yùn)算速度和減少計(jì)算機(jī)的運(yùn)算量的效果。
二值網(wǎng)絡(luò)的運(yùn)算過程與全連接極其相似,它也是計(jì)算機(jī)不斷深度學(xué)習(xí)來縮小與標(biāo)準(zhǔn)值的差距,即通過不斷改變權(quán)重和伸縮量使訓(xùn)練值無限接近于標(biāo)準(zhǔn)值,最后達(dá)到所需要的結(jié)果,而這個(gè)過程其實(shí)就是求 標(biāo)準(zhǔn)值-訓(xùn)練值 的最小值,用符號(hào)表示為L(zhǎng)i=min||Yi-XBiAi|| ,這個(gè)式子我們稱之為損失函數(shù),二值函數(shù)與全連接網(wǎng)路的最重要的區(qū)別就是損失函數(shù)的B取值不同,全連接網(wǎng)絡(luò)的權(quán)重通常是-1~1中的某一個(gè)小數(shù),而小數(shù)運(yùn)算過于繁瑣,所以在二值網(wǎng)絡(luò)中權(quán)重只取-1或1以達(dá)到簡(jiǎn)便運(yùn)算的目的。其中A為伸縮量,它的作用是為避免網(wǎng)絡(luò)二值化的過程中求導(dǎo)時(shí)將重要值忽略,所以將數(shù)值進(jìn)行少量增減以避免把重要值丟失,通過對(duì)損失函數(shù)的不斷求導(dǎo)獲取最小值,計(jì)算機(jī)可以不斷深度學(xué)習(xí)求得期望輸出。然而,二值網(wǎng)絡(luò)在使用上存在巨大問題,僅僅使用二值網(wǎng)絡(luò)無法解決不能求導(dǎo)的問題。
Hash網(wǎng)絡(luò)的運(yùn)用是為了解決二值網(wǎng)絡(luò)無法求導(dǎo)的問題。在二值網(wǎng)絡(luò)的損失函數(shù)中,對(duì)A進(jìn)行求導(dǎo)可以得到,可以求得A的取值,然而在對(duì)B進(jìn)行求導(dǎo)時(shí),由于網(wǎng)絡(luò)的二值化,B的取值范圍僅為-1和1.這種情況下,無法滿足對(duì)B進(jìn)行求導(dǎo)。而Hash網(wǎng)絡(luò)就在CNN和網(wǎng)絡(luò)二值化加速計(jì)算機(jī)運(yùn)算的同時(shí),解決二值化網(wǎng)絡(luò)所帶來的問題。
利用Hash網(wǎng)絡(luò)確定B的過程中將權(quán)重列為矩陣的形式,即為為了確定B的值,將矩陣中的數(shù)除去Bi列可得到將這個(gè)矩陣進(jìn)一步化簡(jiǎn),可得到min2VTW’TB’ZTQZ=2(rTwTb’Tq)Z,當(dāng)rTwTb’Tq>0,Z<0,所以Z取-1,當(dāng)rwbq<0時(shí),此時(shí)Z取1,這些就可以確定B的取值,完成二值網(wǎng)絡(luò)的學(xué)習(xí)過程。利用Hash算法,可以解決二值網(wǎng)絡(luò)無法求導(dǎo)的問題,使對(duì)計(jì)算機(jī)的加速更加完備。
現(xiàn)在社會(huì)越來越往智能化發(fā)展,人工智能,人臉識(shí)別,車牌識(shí)別等都離不開計(jì)算機(jī)的深度學(xué)習(xí)。CNN網(wǎng)絡(luò)和Hash網(wǎng)絡(luò)和普通網(wǎng)絡(luò)相比具有很大的優(yōu)越性。利用CNN網(wǎng)絡(luò)輸入圖片的像素點(diǎn)減少減少為既不影響圖片的特征,同時(shí)又大大減少圖片的參數(shù)量。利用卷積核實(shí)行權(quán)值共享,極大的降低了計(jì)算機(jī)的計(jì)算量。將Hash網(wǎng)絡(luò)和CNN網(wǎng)絡(luò)相結(jié)合使用,不僅發(fā)揮了CNN的優(yōu)勢(shì),更可在運(yùn)用二值網(wǎng)絡(luò)加速的同時(shí),利用Hash網(wǎng)絡(luò)解決因二值化所引發(fā)的無法求導(dǎo)的問題,更重要的是二值化的網(wǎng)絡(luò)比普通網(wǎng)絡(luò)所需要的硬盤儲(chǔ)存小的多,輸出量?jī)H為160bit,占據(jù)計(jì)算機(jī)的容量便會(huì)小很多,和CNN網(wǎng)絡(luò)結(jié)合使用,提升計(jì)算機(jī)的計(jì)算速度,才能更好的實(shí)現(xiàn)計(jì)算機(jī)的實(shí)時(shí)性和準(zhǔn)確性
Hash網(wǎng)絡(luò)和CNN網(wǎng)絡(luò)會(huì)越來越多的應(yīng)用到人類社會(huì)中,在逐漸發(fā)展的智能化產(chǎn)業(yè)中,包括無人汽車的駕駛,家庭機(jī)器人的使用,都需要更快的計(jì)算速度,僅憑Hash網(wǎng)絡(luò)和CNN網(wǎng)絡(luò)的加速是遠(yuǎn)遠(yuǎn)不夠的?,F(xiàn)有的計(jì)算機(jī)的計(jì)算速度仍不能滿足更快更精確的智能機(jī)器的使用。而運(yùn)用CNN網(wǎng)絡(luò)和Hash網(wǎng)絡(luò)所帶來的最大問題是相較于全連接網(wǎng)絡(luò),CNN網(wǎng)絡(luò)和Hash網(wǎng)絡(luò)在加速的同時(shí)會(huì)減少計(jì)算的準(zhǔn)確率,而無人汽車的駕駛手機(jī)等低能耗設(shè)備的智能化對(duì)計(jì)算機(jī)的準(zhǔn)確有著相當(dāng)高的要求。所以提高計(jì)算準(zhǔn)確率也是我們迫切所要解決的問題。但是已經(jīng)有研究要將CNN網(wǎng)絡(luò)運(yùn)用到低能耗設(shè)備,這說明其對(duì)計(jì)算機(jī)的速度和準(zhǔn)確性有了極大的提升。相信在不久的未來,手機(jī)、汽車等移動(dòng)設(shè)備都可以使用CNN網(wǎng)絡(luò),到時(shí)我們便可以擁有更加方便快捷的智能化體驗(yàn)。