從圖像到知識:深度神經網絡實現圖像理解的原理解析

 

       摘要:本文將詳細解析深度神經網絡識別圖形圖像的基本原理。針對卷積神經網絡,本文將詳細探討網絡中每一層在圖像識別中的原理和做用,例如卷積層(convolutional layer),採樣層(pooling layer),全鏈接層(hidden layer),輸出層(softmax output layer)。針對遞歸神經網絡,本文將解釋它在在序列數據上表現出的強大能力。針對通用的深度神經網絡模型,本文也將詳細探討網絡的前饋和學習過程。卷積神經網絡和遞歸神經網絡的結合造成的深度學習模型甚至能夠自動生成針對圖片的文字描述。做爲近年來從新興起的技術,深度學習已經在諸多人工智能領域取得了使人矚目的進展,可是神經網絡模型的可解釋性仍然是一個難題,本文從原理的角度探討了用深度學習實現圖像識別的基本原理,詳細解析了從圖像到知識的轉換過程。算法

 

1 引言網絡

       傳統的機器學習技術每每使用原始形式來處理天然數據,模型的學習能力受到很大的侷限,構成一個模式識別或機器學習系統每每須要至關的專業知識來從原始數據中(如圖像的像素值)提取特徵,並轉換成一個適當的內部表示。而深度學習則具備自動提取特徵的能力,它是一種針對表示的學習。架構

       深度學習容許多個處理層組成複雜計算模型,從而自動獲取數據的表示與多個抽象級別。這些方法大大推進了語音識別,視覺識別物體,物體檢測,藥物發現和基因組學等領域的發展。經過使用BP算法,深度學習有能力發如今大的數據集的隱含的複雜結構。機器學習

       「表示學習」可以從原始輸入數據中自動發現須要檢測的特徵。深度學習方法包含多個層次,每個層次完成一次變換(一般是非線性的變換),把某個較低級別的特徵表示表示成更加抽象的特徵。只要有足夠多的轉換層次,即便很是複雜的模式也能夠被自動學習。對於圖像分類的任務,神經網絡將會自動剔除不相關的特徵,例如背景顏色,物體的位置等,可是會自動放大有用的特徵,例如形狀。圖像每每以像素矩陣的形式做爲原始輸入,那麼神經網絡中第一層的學習功能一般是檢測特定方向和形狀的邊緣的存在與否,以及這些邊緣在圖像中的位置。第二層每每會檢測多種邊緣的特定佈局,同時忽略邊緣位置的微小變化。第三層能夠把特定的邊緣佈局組合成爲實際物體的某個部分。後續的層次將會把這些部分組合起來,實現物體的識別,這每每經過全鏈接層來完成。對於深度學習而言,這些特徵和層次並不須要經過人工設計:它們均可以經過通用的學習過程獲得。分佈式

 

2 神經網絡的訓練過程函數

       如圖1所示,深度學習模型的架構通常是由一些相對簡單的模塊多層堆疊起來,而且每一個模塊將會計算從輸入到輸出的非線性映射。每一個模塊都擁有對於輸入的選擇性和不變性。一個具備多個非線性層的神經網絡一般具備5〜20的深度,它將能夠選擇性地針對某些微小的細節很是敏感,同時針對某些細節並不敏感,例如爲背景。佈局

       在模式識別的初期,研究者們就但願利用可訓練的多層網絡來代替手工提取特徵的功能,可是神經網絡的訓練過程一直沒有被普遍理解。直到20世紀80年代中期,研究者才發現並證實了,多層架構能夠經過簡單的隨機梯度降低來進行訓練。只要每一個模塊都對應一個比較平滑的函數,就可使用反向傳播過程計算偏差函數對於參數梯度。學習

 

圖1 神經網絡的前饋過程人工智能

 

圖2 神經網絡的反向偏差傳播過程spa

 

圖3 鏈式法則

 

       如圖2所示,複雜神經網絡基於反向傳播過程來計算目標函數相對於每一個模塊中的參數的梯度。反向傳播過程的數學原理即爲鏈式法則,如圖3所示。目標函數相對於每一個模塊的梯度具備必定的獨立性,這是鏈式法則的關鍵,目標函數相對於一個模塊的輸入的梯度能夠在計算出目標函數相對於這個模塊輸出的梯度以後被計算,反向傳播規則能夠反覆施加經過全部模塊傳播梯度,從而實現梯度(亦即偏差)的不斷反向傳播,從最後一層一直傳播到原始的輸入。

       在90年代後期,神經網絡和以及其它基於反向傳播的機器學習領域在很大程度上爲人詬病,計算機視覺和語音識別社區也忽略了這樣的模型。人們廣泛認爲,學習不多先驗知識是有用的,多階段的自動特徵提取是不可行的。尤爲是簡單的梯度降低將獲得局部極小值,這個局部極小值和全局最小值可能相差甚遠。

       可是在實踐中,局部最優不多會成爲大型網絡的一個問題。實踐證實,無論初始條件,系統幾乎老是達到很是接近的結果。一些最近的理論和實證研究結果也傾向於代表局部最優不是一個嚴重問題。相反,模型中會存在大量鞍點,在鞍點位置梯度爲0,訓練過程會滯留在這些點上。可是分析代表,大部分鞍點都具備想接近的目標函數值,所以,它訓練過程被卡在哪個鞍點上每每並不重要。

       前饋神經網絡有一種特殊的類型,即爲卷積神經網絡(CNN)。人們廣泛認爲這種前饋網絡是更容易被訓練而且具備更好的泛化能力,尤爲是圖像領域。卷積神經網絡已經在計算機視覺領域被普遍採用。

 

3 卷積神經網絡與圖像理解

       卷積神經網絡(CNN)一般被用來張量形式的輸入,例如一張彩色圖象對應三個二維矩陣,分別表示在三個顏色通道的像素強度。許多其它輸入數據也是張量的形式:如信號序列、語言、音頻譜圖、3D視頻等等。卷積神經網絡具備以下特色:局部鏈接,共享權值,採樣和多層。

       如圖4所示,一個典型CNN的結構能夠被解釋爲一系列階段的組合。最開始的幾個階段主要由兩種層組成:卷積層(convolutional layer)和採樣層(pooling layer)。卷積層的輸入和輸出都是多重矩陣。卷積層包含多個卷積核,每一個卷積核都是一個矩陣,每個卷積核至關因而一個濾波器,它能夠輸出一張特定的特徵圖,每張特徵圖也就是卷積層的一個輸出單元。而後經過一個非線性激活函數(如ReLU)進一步把特徵圖傳遞到下一層。不一樣特徵圖使用不一樣卷積核,可是同一個特徵圖中的不一樣位置和輸入圖之間的鏈接均爲共享權值。這樣作的緣由是雙重的。首先,在張量形式的數據中(例如圖像),相鄰位置每每是高度相關的,而且能夠造成的能夠被檢測到的局部特徵。其次,相同的模式可能出如今不一樣位置,亦即若是局部特徵出如今某個位置,它也可能出如今其它任何位置。在數學上,根據卷積核獲得特徵圖的操做對應於離散卷積,所以而得名。

 

 

圖 4 卷積神經網絡與圖像理解

 

       事實上有研究代表不管識別什麼樣的圖像,前幾個卷積層中的卷積核都相差不大,緣由在於它們的做用都是匹配一些簡單的邊緣。卷積核的做用在於提取局部微小特徵,若是在某個位置匹配到了特定的邊緣,那麼所獲得的特徵圖中的這個位置就會有較大的強度值。若是多個卷積核在臨近的位置匹配到了多個特徵,那麼這些特徵就組合成爲了一個可識別的物體。對於現實世界中的圖像而言,圖形經常都是由不少簡單的邊緣組成,所以能夠經過檢測一系列簡單邊緣的存在與否實現物體的識別。

       卷積層的做用是從前一層的輸出中檢測的局部特徵,不一樣的是,採樣層的做用是把含義類似的特徵合併成相同特徵,以及把位置上相鄰的特徵合併到更接近的位置。因爲造成特定主題的每一個特徵的相對位置可能發生微小變化,所以能夠經過採樣的方法輸入特徵圖中強度最大的位置,減少了中間表示的維度(即特徵圖的尺寸),從而,即便局部特徵發生了必定程度的位移或者扭曲,模型仍然能夠檢測到這個特徵。CNN的梯度計算和參數訓練過程和常規深度網絡相同,訓練的是卷積核中的全部參數。

       自上世紀90年代初以來,CNN已經被應用到諸多領域。,在90年代初,CNN就已經被應用在天然圖像,臉和手的檢測,面部識別和物體檢測中。人們還使用卷積網絡實現語音識別和文檔閱讀系統,這被稱爲時間延遲神經網絡。這個文檔閱讀系統同時訓練了卷積神經網絡和用於約束天然語言的機率模型。此外還有許多基於CNN的光學字符識別和手寫識別系統。

 

4 遞歸神經網絡與天然語言理解

       當涉及處處理不定長序列數據(如語音,文本)時,使用遞歸神經網絡(RNN)更加天然。不一樣於前饋神經網絡,RNN具備內部狀態,在其隱藏單元中保留了「狀態矢量」,隱式地包含了關於該序列的過去的輸入信息。當RNN接受一個新的輸入時,會把隱含的狀態矢量同新的輸入組合起來,生成依賴於整個序列的輸出。RNN和CNN能夠結合起來,造成對圖像的更全面準確的理解。

 

圖5 遞歸神經網絡

 

       如圖5所示,若是咱們把遞歸神經網絡按照不一樣的離散時間步展開,把不一樣時間步的輸出看做是網絡中不一樣神經元的輸出,那麼RNN就能夠被看作是一個很深的前饋神經網絡,也就能夠應用常規的反向傳播過程訓練這一網絡,這種按照時間步反向傳播的方法被稱爲BPTT(Back Propagation Through Time)。可是儘管RNN是很是強大的動態系統,它的訓練過程仍會遇到一個很大的問題,由於梯度在每一個時間步可能增加也可能降低,因此在通過許多時間步的反向傳播以後,梯度經常會爆炸或消失,網絡的內部狀態對於長遠過去輸入的記憶做用十分微弱。

       解決這個問題的一種方案是在網絡中增長一個顯式的記憶模塊,加強網絡對於長遠過去的記憶能力。長短時記憶模型(LSTM)就是這樣一類模型,LSTM引入的一個核心元素就是Cell。LSTM網絡已被證實比常規RNN更有效,尤爲是在網絡中每一個時間步都具備若干層的時候。

 

圖6 長短時記憶模型

 

       如圖6所示,在LSTM的網絡結構中,前一層的輸入會經過更多的路徑做用於輸出,門(Gate)的引入使得網絡具備了聚焦做用。LSTM能夠更加天然地記住很長一段時間以前的輸入。存儲單元Cell是一個特殊的單元,做用就像一個累加器或一個「gated leaky neuron」:這個單元具備從上一個狀態到下一個狀態之間的直接鏈接,因此它能夠複製自身的當前狀態並累積全部的外部信號,同時因爲遺忘門(Forget Gate)的存在,LSTM能夠學習決定什麼時候清除存儲單元的內容。

 

5 圖片描述的自動生成

       如圖7所示,深度學習領域的一個匪夷所思的Demo結合了卷積網絡和遞歸網絡實現圖片標題的自動生成。首先經過卷積神經網絡(CNN)理解原始圖像,並把它轉換爲語義的分佈式表示。而後,遞歸神經網絡(RNN)會把這種高級表示轉換成爲天然語言。

 

 

圖7 圖片描述的自動生成

 

       除了利用RNN的記憶機制(memory),還能夠增長聚焦機制(attention),經過把注意力放在圖片的不一樣部位,從而把圖片翻譯成不一樣的標題。聚焦機制甚至可讓模型更加可視化,相似於RNN機器翻譯的聚焦機制,在經過語義表示生成詞語的同時咱們能解釋模型正在關注哪一個部分。

 

6 將來展望

       無監督學習曾經促進了深度學習領域的復興,但純粹的監督學習的所取得的巨大成功掩蓋了其做用。咱們期待無監督學習能成爲在長期看來的更重要的方法。人類和動物的學習主要是無監督的方式:咱們經過自主地觀察世界而不是被告知每一個對象的名稱來發現世界的結構。咱們期待將來大部分關於圖像理解的進步來自於訓練端到端的模型,而且將常規的CNN和使用了強化學習的RNN結合起來,實現更好的聚焦機制。深度學習和強化學習系統的結合目前還處於起步階段,但他們已經在分類任務上超越了被動視覺系統,並在學習視頻遊戲領域中取得了不俗的成績。

 

參考文獻

 

 

1. Krizhevsky, A., Sutskever, I. & Hinton, G. ImageNet classification with deep convolutional neural networks. In Proc. Advances in Neural Information Processing Systems 25 1090–1098 (2012).

2. Hinton, G. et al. Deep neural networks for acoustic modeling in speech recognition. IEEE Signal Processing Magazine 29, 82–97 (2012).

3. Sutskever, I. Vinyals, O. & Le. Q. V. Sequence to sequence learning with neural networks. In Proc. Advances in Neural Information Processing Systems 27 3104–3112 (2014).

4. Fredkin, E.: Trie memory. Communications of the ACM 3(9), 490–499 (1960)

5. Glorot, X., Bordes, A., Bengio, Y.: Deep sparse rectifier neural networks. In: International Conference on Artificial Intelligence and Statistics. pp. 315–323 (2011)

6. He, K., Zhang, X., Ren, S., Sun, J.: Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. In: ICCV (2015)

7. Herlihy, M., Shavit, N.: The art of multiprocessor programming. Revised Reprint (2012)

8. Hinton, G.E., Srivastava, N., Krizhevsky, A., Sutskever, I., Salakhutdinov, R.R.: Improving neural networks by preventing co-adaptation of feature detectors. arXiv preprint arXiv:1207.0580 (2012)

9. Jelinek, F.: Interpolated estimation of markov source parameters from sparse data. Pattern recognition in practice (1980)

10. Kingma, D.P., Adam, J.B.: A method for stochastic optimization. In: International Conference on Learning Representation (2015)

11. Lai, S., Liu, K., Xu, L., Zhao, J.: How to generate a good word embedding? arXiv preprint arXiv:1507.05523 (2015)

12. Maas, A.L., Hannun, A.Y., Ng, A.Y.: Rectifier nonlinearities improve neural net- work acoustic models. In: Proc. ICML. vol. 30, p. 1 (2013)

13. Mikolov, T., Deoras, A., Kombrink, S., Burget, L., Cernocky, J.: Empirical evalu- ation and combination of advanced language modeling techniques. Proceedings of Interspeech pp. 605–608 (2011)

14. Mikolov, T., Chen, K., Corrado, G., Dean, J.: Efficient estimation of word repre- sentations in vector space. arXiv preprint arXiv:1301.3781 (2013)

15. Mnih, A., Hinton, G.: A scalable hierarchical distributed language model (2009)

16. Mnih, A., Teh, Y.W.: A fast and simple algorithm for training neural probabilistic language models (2012)

相關文章
相關標籤/搜索