張鑫鑫 梁星
摘要:傳統(tǒng)的卷積神經(jīng)網(wǎng)絡模型在圖像識別過程中,需要耗費大量的時間和計算量,且在數(shù)據(jù)集較小的情況下極容易出現(xiàn)過擬合現(xiàn)象。針對這一缺陷,本文以車型識別為例,通過引用遷移學習,提出一種由粗到細收斂、慢慢細化的識別方法,從而加速了卷積神經(jīng)網(wǎng)絡的訓練過程,并提高了小數(shù)據(jù)集的識別準確率。本文以Tensorflow為深度學習框架,將從ImageNet訓練好的Inception v3作為預訓練模型,對52種車型進行訓練,并與傳統(tǒng)的CNN算法進行對比。實驗結果表明,引用遷移學習方法后,卷積神經(jīng)網(wǎng)絡模型在訓練速度以及準確率上都能得到大幅度的提高。
關鍵詞:遷移學習;卷積神經(jīng)網(wǎng)絡;圖像識別;車型識別
中圖分類號:TP18 文獻標識碼:A
文章編號:1009-3044(2019)10-0174-04
開放科學(資源服務)標識碼(OSID):
Research and Application of Transfer Learning in Convolutional Neural Network
ZHANG Xin-xin , LIANG Xing
(BOWEN College of Management Gulin University of Technolog, College of Architectuire and Design ,Gulin 541006, China)
Abstract: In the process of image recognition, the traditional convolutional neural network model takes a lot of time and computation, and it is easy to overfit in the case of small data sets.In view of this defect, this paper takes vehicle identification as an example and proposes a recognition method from coarse to fine convergence and slowly refinement by reference transfer learning, thus accelerating the training process of convolutional neural network and improving the recognition accuracy of small data sets.In this paper, Tensorflow is used as the in-depth learning framework, Inception V3 trained from ImageNet is used as the pre-training model, and 52 kinds of vehicles are trained and compared with the traditional CNN algorithm.The experimental results show that the training speed and accuracy of convolutional neural network model can be greatly improved by using transfer learning method.
Key words:transfer leaning; CNN;Image recognition;Vehicle recognition.
對于人類來說,我們可以間接或直接地從之前已經(jīng)學過的內(nèi)容中獲得諸多信息,當某一天我們在解決或?qū)W習新知識的時候,就可以提取之前學習過的與新知識相關聯(lián)的地方,利用它們?nèi)ヌ岣邔W習效率。這種人類的學習方式,我們稱之為遷移學習,那么同理,我們也可以將其應用到機器學習中,一個經(jīng)過預訓練過的模型被再次用在另一個訓練中,這就是應用到機器學習中的遷移學習的概念。
遷移學習中的預訓練模型方法,是指在很多取得優(yōu)異成績的模型中挑選出一個作為預訓練的源模型,類似AlexNet、VGGNet、GoogleNet、RestNet等分別在ImageNet的比賽中獲得冠軍的模型,這些模型的設計、參數(shù)的調(diào)整都已經(jīng)達到很好的狀態(tài),我們不用再一次花費時間做休整。接下來的步驟與開發(fā)模型方法的步驟一致,也是將開發(fā)出的模型作為目標任務的學習起點,最后輸出我們想要的目標分類。
所以本文主要研究方向是借助Tensorflow 深度學習框架和OpenCV開源圖形庫,利用遷移學習的方法優(yōu)化和改進現(xiàn)有的開放性模型,以達到提高圖像分類的準確率的目的。
1 Inception v3模型
Inception模塊構成的深層網(wǎng)絡目前在分類領域取得的效果是最好的。所以本文采用Inception v3的網(wǎng)絡模型來實現(xiàn)車型識別功能,它和TensorFlow框架都是Googlenet提出的,所以在搭建環(huán)境時,會十分融洽。
Inception v3的模塊和結構與Googlenet基本相同,只是加入了BatchNormalized Inception 層,而另一方面是將濾波器減小和分解,用2個3*3的conv代替Inception模塊中的5*5,再將其分解成(1*3,3*1),這樣的好處是網(wǎng)絡深度進一步增加,但參數(shù)數(shù)量在減少。表1為Inception v3重要參數(shù):
Inception v3中設計CNN的思想和Trick:
1)Factorization into small convolutions很有效,可以降低參數(shù)量,減輕過擬合,增加網(wǎng)絡非線性的表達能力。
2)卷積網(wǎng)絡從輸入到輸出,應該讓圖片尺寸逐漸減小,輸出通道數(shù)逐漸增加,即讓空間結構化,將空間信息轉(zhuǎn)化為高階抽象的特征信息。
3)Inception Module用多個分支提取不同抽象程度的高階特征的思路很有效, 可以豐富網(wǎng)絡的表達能力。
2 基于遷移學習下的改進
對于深度學習興起總結出三點原因:算法與模型、強大的計算力和大數(shù)據(jù)。所以針對訓練模型準確率的提升,可以從這三方面來改進。強大的計算力是硬件方面的提升,例如現(xiàn)在GPU處理器的出現(xiàn),極大地提高了計算機圖形圖像的處理能力。那么本文可以考慮從算法與模型和數(shù)據(jù)方面著手,在只擁有小數(shù)據(jù)集的基礎上,盡可能提高對于車型識別的準確率。
Inception v3在ImageNet比賽以及各個領域都有很廣泛的應用,是目前為止計算量較低但準確率很高的實用性模型。但是Inception的復雜性注定了要在幾萬張的大數(shù)據(jù)集合下才能在特征提取時得到不錯的特征值,如果只有小數(shù)據(jù)集,很容易出現(xiàn)過擬合現(xiàn)象。在本文中,車型識別的數(shù)據(jù)集只有4732張,較幾萬張的大數(shù)據(jù)集相差甚遠,在這種情況下,如何建立一個效果良好的深度學習模型,則是本文需要研究的內(nèi)容。在解決過擬合的問題中,可以選擇使用正則化、BN等方法,但是通常選擇的可行性高又簡單的操作是使用遷移學習【1-6】,這樣它可以不需要超大的數(shù)據(jù)集,也能訓練卷積神經(jīng)網(wǎng)絡。
因為深度卷積神經(jīng)網(wǎng)絡中的每一層,都在逐步收集特征,是從淺到深,越來越高層次的特征表達,而最后一層才應用Softmax等分類器輸出模型的分類。簡單來說就是前面的層更為通用,是要檢測目標的基本特征,那么如果切掉后面的一層或者幾層,并在不同的數(shù)據(jù)集上重新訓練,輸出我們自己想要更加精細的分類類別,就能減掉很多基礎特征的提取時間和樣本,以達到提高速度和精確度的目的。本文是在ImageNet的基礎進行訓練的,那么神經(jīng)網(wǎng)絡的最后一層可能是在尋找車輛整體的圖案,再往前的幾層,可能會看到網(wǎng)絡在尋找車輪、車窗這些組合的部件,所以要讓網(wǎng)絡把這些組合部件的特征都提取之后,再次訓練分類更精細的圖片,這樣,相當于在已經(jīng)是車的基礎上分出車的型號,而不是車輪、車窗等這些組合部件的基礎上分類。
為了對來驗證遷移算法的有效性,本文選擇給出二種實驗方式作為對比,直接用Inceptionv3在如表2.1所示:
5 結束語
在圖像分類模型中,選擇inception v3作為基本模型,通過遷移學習的方法,將從Imagenet訓練好的inception v3作為預訓練模型,投入準備好的數(shù)據(jù)集,再次訓練,最后得出Q-inception v3再次成為下一次訓練的模型。文除了在模型上有了進一步的微調(diào),在數(shù)據(jù)集上也構建了自己的交通樣本集,作為車型識別的原始訓練集下載了52種車型,共4732張圖片。在實驗過程中,網(wǎng)絡訓練的準確率十分不均衡,有些車型準確率特別低,分析是由于樣本量不平衡導致,在下載圖片時,每個車型的訓練樣本數(shù)量相差較大。卷積神經(jīng)網(wǎng)絡的訓練過程是提取訓練樣本集圖片的特征,如果訓練樣本集不夠很難完成整個網(wǎng)絡權值的優(yōu)化,所以數(shù)據(jù)集對測試結果的影響至關重要,這也是數(shù)據(jù)增強可以提高準確率的原因。同時,本實驗如果以在The Comprehensive Cars (CompCars) dataset預訓練過的模型為基礎模型,再次訓練,是否可以得到更好的效果,如何將遷移學習運用地更加熟練,原模型除了最后一層,前面層的參數(shù)在什么情況下需要調(diào)整,這些都要通過進一步證明。
【通聯(lián)編輯:唐一東】