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