【轉】淺談人類視覺系統與卷積神經網絡(CNN)的聯繫和區別

淺談人類視覺系統與卷積神經網絡(CNN)的聯繫和區別

文章轉載:葉強

深度學習 / 強化學習 / 機器學習 / 算法 / 眼科學

聲明:本文爲作者原創、歡迎免費規範轉載。本文使用的一些圖片素材來自於網絡,感謝素材提供方,如有侵權請聯繫告知。

前言

熟悉深度學習的朋友們一定不會對卷積神經網絡(CNN)感到陌生,與傳統的全連接深度學習神經網絡(DNN)相比,CNN具有權重參數共享、靈活的特徵檢測等特點,其一定程度上甚至獨立於主流的DNN。關於CNN,大家可能都廣泛知曉其背後的靈感來自於人視覺系統中一個叫感受野的(receptive field)概念。其實CNN只是借用了這一概念,其整體機制與人的視覺系統還是有很大的差別。讀完本文後,您將會對此有更加清晰的認識,並可能爲您在基於視頻處理的下一代神經網絡研究中提供些靈感。

由於本人對於深度學習這一塊知識的掌握仍有不少欠缺,可能會有一些錯誤的理解和表述,誠懇接受專業人士批評指正。

本文會同時涉及人工智能領域的深度學習以及神經科學中的視覺系統兩方面知識,但不要求讀者同時具備這兩方面知識。同時由於突出重點及篇幅限制,本文不打算介紹單個神經元的解剖結構和生理功能,事先簡單瞭解這部分知識將有助於對本文的理解。

一、簡述CNN的歷史和發展

CNN比深度學習成名要早,在2006年開啓新一輪深度學習熱潮的標誌性論文發表以前,CNN就已經在美國的金融機構開啓了商業級的應用:爲銀行識別手寫支票上的金額數字。很多人都沒見過支票長啥樣,主要是咱們中國由於沒有建立良好的信用體系,銀行從來不主動給大家提供支票服務。不過那時候的CNN結構沒有現在這麼複雜,但也能在分類結果較少的小數據集上近乎完美的運行。自從2012年Hinton另外一篇關於卷積神經網絡的論文發表以後,CNN的研究又開啓了一個高潮,從那以後網絡層數越來越多,規模越來越大,各種處理小技巧被應用於CNN中,可以說CNN已經很成熟了,這也是爲什麼今年是最後一年舉辦什麼圖像方面的大賽(我從來記不住這類比賽名稱)。今後新的比賽將側重於視頻處理,更高大上了。關於CNN的結構、特點、各種小技巧我將在下文中穿插介紹。

二、感受野與池化

先從感受野這個概念說起。神經科學上的感受野,通常說的是“局部感受野”,指的是一個神經元可以接受來自不同位置、一定空間範圍的衆多其它上層神經元的信號輸出,整合並作出自己的輸出,上游神經元分佈的空間範圍就稱爲該神經元局部感受野,下文中如未特別說明,均使用感受野來指代局部感受野。

感受野不單存在於視覺系統中,幾乎人體的所有外周感覺系統的中間(不直接接受物理或化學刺激,類似於神經網絡中的隱藏層)神經元都具有一定程度的局部感受野。那麼在CNN中,感受野對應的操作是卷積還是池化還是激活映射呢?按照我剛纔給出的感受野的定義,我個人認爲是池化操作激活映射對應的是全局感受野。會不會有人把卷積認爲對應於感受野呢?應該會有人這麼認爲。但是我認爲卷積雖然是CNN的一個極其重要的操作,但它對應的不是局部感受野甚至在人眼的視覺系統的網絡結構中,找不到對應於這一操作的物理結構。仔細想一想,卷積操作對應的是人眼在看外界物體時的“掃視”過程。這就談到了CNN與人眼視覺系統的第一個區別。

您可能又有疑問了,在人眼中,對應的池化操作出現在什麼層次,是通過什麼結構實現的?爲了說明這個問題,我們需要對人眼視覺系統有一個初步的認識。

三、人類視覺系統是包含網絡的網絡

人眼的視覺系統可以被認爲是由三大部分依次鏈接組合而成,這三大塊分別位於人眼球后壁內部的視網膜(retina)、位於丘腦的外側膝狀體(lateral geniculate),以及大腦的視皮層區域(visual cortex)。下圖展示了這三塊區域的相對位置:其中眼球后壁的視網膜由於太薄,圖中沒有清晰繪製。鏈接這三塊區域的分別是視神經(optic nerve)和視放射(optic radiation)。他們都是神經元的軸突,類似於深度學習神經網絡中的層間鏈接。請不要把視覺系統簡單的認爲是三層神經網絡,其實視網膜、外側膝狀體、視皮層這三個區域的每一個區域都是有深層神經網絡組成,可以借用下名詞“包含網絡的網絡”(Network in Network)。我個人傾向於認爲這三塊區域裏都沒有可以完成卷積操作的結構存在。

圖片來源:https://image.slidesharecdn.com/afferentvisualpathway-170112193404/95/afferent-visual-pathway-5-638.jpg?cb=1484249824

我們依次來看看這三塊結構的功能特點,首先是視網膜。

四、池化操作在視網膜內完成

首先指出是我目前認爲的典型的池化操作僅出現在視網膜內,但這不意味着視網膜僅僅完成了池化操作。事實上,視網膜的功能極其複雜,以至於人們還並未完全弄清他們的所有結構和功能,只是相對於另外兩個結構,研究得算是更加徹底點。

視網膜是什麼?在眼球的什麼位置?

如果用一句話來回答,可以是這樣:視網膜是位於眼球后方負責將傳入眼睛的光信號轉化爲生物電信號,並初步分析後將處理後的生物電信號通過視神經向外側膝狀體傳遞的神經網絡結構。具體可見下圖:

圖片來源:http://webvision.med.utah.edu/imageswv/Sagschem.jpeg

眼球的結構和本文關係不大,就不介紹了。圖中,視網膜貼在後部(右)眼球壁的內側,被放大的區域是視網膜的一部分。

  • 視網膜有十層結構、其中三層被神經元佔據。

下圖是視網膜十層結構的一個示意圖,這十層結構在圖中上而下分別是:色素上皮層,視錐、視杆細胞層,外界膜,外顆粒層,外叢狀層,內顆粒層,內叢狀層,神經節細胞層,神經纖維層,內界膜。其中負責接受光信號(也就是網絡的輸入層)的是視錐、視杆細胞(感光細胞)層(Rods and cones layer)。一個有趣的現象是,光線在到達該層時(該層的神經元稱爲:感光細胞)要首先穿過視網膜的其餘八層。二者八層不是完全透明的哦,其中部分層次分佈有爲視網膜提供營養的血管(不透明),可是我們從來感覺(看)不到血管的存在導致的視野中的陰影。光信號在到達感光細胞前經過其它視網膜的其它結構是脊椎動物與非脊椎動物視網膜結構的重要差別。

視網膜中由神經元佔據的另外兩層分別是外側核狀層(Outer nuclear layer)和內側核狀層(Inner nuclear layer)。前者主要是雙極細胞(bipolar cell)和水平細胞胞體(神經元的主體,定義閾值和激活函數的地方,不是激活函數的映射)組成;後者則主要由神經節細胞(ganglion cell)和無長突細胞(amacrine cell)的胞體組成。這三層神經元通過他們相應的樹突或軸突鏈接形成整體的網絡結構。

圖片來源:http://journals.cambridge.org/fulltext_content/ERM/ERM6_15/S1462399404008129sup013.gif

  • 池化發生在感光層與與雙極細胞層、雙極細胞層與神經節細胞層之間

從深度學習的角度來看,池化操作是使用一個值來替代某一局部區域的由多個值表示的信息,藉此達到縮小網絡規模但又一定程度保留原始數據特徵的目的。具體方法有平均池化、最大化池化等。池化是感受野概念在CNN中的典型應用。在視網膜中,局部一個或多個感光細胞信號匯聚到一個雙極細胞;一個或多個雙極細胞的輸出信號匯聚到一個神經節細胞。與CNN池化不同的是,視網膜的池化操作其核大小是不固定的。當人眼注視某一個區域時,該區域對應的視網膜相關的池化核是1對1的,離注視中心越遠,核的尺寸越大。這就是人眼在注視區域中心的視覺靈敏度最高,在周邊則要差很多的原因。人眼這樣的池化設計一定程度上也是爲了縮小傳送到外側膝狀體的信號通道的規模。這種不均勻的池化操作並沒有讓人在看物體時感覺過度的不自然,這種平滑的過度是怎麼做到的,我不太清楚。

  • 在視網膜神經網絡裏具有層內鏈接

如果您仔細觀察上圖,您會發現有一類細胞叫水平細胞(horizontal cell),他們負責鏈接協調在感光層的信號;同樣您會發現還有一類細胞叫無長突細胞(amacrine cell),它們在神經節細胞層內做類似的工作。這兩類細胞的功能並不完全清楚,我個人感覺可能和抵消池化帶來的不自然過渡有關,也可能和人眼處理的是動態的視頻而不是靜態的圖片信號有關;也有可能和人眼的注意力機制有關(attention mechanism),人眼的注意力機制體現在人會把注視中心對準那些在視網膜上短時間內信號變化較大的區域。比如突然一個亮點或移動引起的視網膜上對應細胞的信號輸出短時間內發生較大的變化。在CNN中,我們並沒有找到類似的層內連接結構,也許未來我們需要這樣的結構來處理複雜的問題,比如視頻處理等。

到目前位置,我們已經在視網膜這個網絡中見識了許多人類視覺系統與CNN的聯繫和區別,比如都有感受野、人眼沒有卷積操作、CNN沒有層內鏈接等;它們之間還有其他的聯繫和區別,由於不單發生在視網膜層次,我們另闢一節展開。

連續信號與脈衝信號——激活函數與神經元的輸出

生物神經元與深度學習使用的神經元數學模型差別其實非常的大。由於篇幅,我不會全部展開,這裏提到與激活函數相關的一個重要區別。在生物體內,一部分神經元對輸入信號的相應是連續平滑的,比如前文提到的感光細胞、雙極細胞、水平細胞大多數無長突細胞,他們由於比較靠近輸入信號,對輸入信號的響應比較及時。這類細胞不能產生脈衝電位,又叫動作電位。而向外側膝狀體傳送信號的神經節細胞則僅依靠脈衝電位來編碼。這就相當於一個網絡裏使用了兩種不同的激活函數這種方式在人的神經系統裏還很多見,但是否在人工神經網絡裏有效就不好說了,有學者建議單一網絡只使用一種激活函數。至於是否確應這樣,我也不清楚。

其實脈衝神經元其實也可以被看成是產生連續輸出的神經元,只不過他們輸出的信號值不連續,很多人在研究脈衝神經元的數學建模工作,但我個人認爲這類神經元我完全可以用LSTM結構中的單個神經元來模擬,而且LSTM的們結構已經給出了完美的參數調整辦法。

生物體內使用脈衝神經元可能是不得已而爲之的,因爲有些信號要傳輸很遠的距離,比如從腿部到大腦,而生物神經元的信號傳遞速度不能太慢,否則該物種可能存在着被滅絕的危險。

側抑制與local response normalization

側抑制也廣泛的存在於生物體內神經系統中,在CNN中表現爲local response normalization(LRN,翻譯爲:局部響應規範化嗎?)。它的作用體現在當物理位置靠近的兩個神經元給出的輸出信號差別較大時,local response normalization會進一步放大這種差別,在圖像處理中我個人認爲和輪廓提取和注意力機制有關有深度學習的研究學者認爲LRN用處不大,我對此持保留意見。特別是在今後的處理視頻的網絡建模時,LRN可能會有大用處。

神經元的衰老與drop-out

CNN中還有一個有趣的小技巧是drop-out,它使得神經元在訓練時以一定機率出於靜眠狀態,既不發送輸出信號,也不更新權重。這種機制被認爲在抑制過擬合現象時很有效。在生物神經領域,我想到的對應的可能是神經元的備份與衰老機制,但這並不完全準確。生物細胞是會衰老死亡的,如果沒有備份的話,具備檢測某一特徵的神經元死亡了,該特徵就無法識別啦,這種事情在生物體內較少發生依靠的就是其備份機制(也有在大腦內大量發生的,產生的就是認知和行爲障礙,比如阿爾茲海默病,俗稱老年癡呆就是大量神經元失活無法傳遞信號)。CNN乃至所有的DNN都引入drop-out機制還有一個原因時我們目前對單一隱藏層到底該準備多少個神經元並沒有理論上有突破的研究,通常我們會設置相對需要更多的神經元,通過引入drop-out機制來抵抗過多神經元帶來的過擬合。特徵備份這一功能對於人工神經網絡沒有什麼意義。

跨層鏈接與殘差

跨層鏈接在生物神經系統裏是否廣泛存在不好說,但在某些網絡結構中,承擔跨層鏈接任務的細胞目前被認爲僅對神經元提供營養支持,其本身不是神經元,不參與信號傳遞。真相是否如此,目前還不好說,我個人對此持保留意見。

關於深度學習網絡中的跨層鏈接利用殘差技術我是非常贊同的,我個人對次的理解是:初級特徵既可以用來生成高級特徵,也可以直接用來進行判別。未來可能會出現各種豐富多樣的跨層鏈接方式,事實上這種事情正在發生。

外側膝狀體處理輪廓、紋理、顏色和運動信息

經過視網膜的簡單處理,視覺信號被神經節細胞送入外側膝狀體。在那裏視覺信號得到了獨立且完整的處理,其輸出信號可以被送入所有有需要的地方,比如經視放射送入視皮層參與智慧生命活動,又比如被送入其他較爲低級核團(腦組織中聚集在一起的神經元,不包括其對外聯繫的軸突和樹突)直接參與產生輸出信號控制肌肉運動,可以用低等動物通過視覺觀察到危險不經思考拔腿就跑來理解。

關於外側膝狀體的詳細結構和功能,我對其沒有深入的研究,只大概知道其相當於一個全連接神經網絡,分爲大小兩類細胞。這類細胞除了接受來自神經節細胞的視覺信號,還會接受來自其他核團的感覺信號,負責分析視覺信號的輪廓、紋理、顏色、運動等信息。同時人的很多器官都是左右各一的,外側膝狀體也不例外,而且外側膝狀體同時接受來自兩側視網膜的信號,者被認爲與形成立體視覺有關。

目前並不瞭解在外側膝狀體是否有類似視網膜上的感受野(池化操作),我個人傾向於沒有。在我看來中樞神經系統的一個小網絡都是以循環神經網絡爲基本結構的。這類網絡有一個很大的特點:輸出會循環反饋給輸入,自身形成迴路;同時可以產生跨層連接。同時,從進化的角度看,在很多低等動物,由於大腦不夠發達,丘腦基本上完成了大部分的生命活動所需要的與外界交互的決策,因此一定程度上,丘腦內部網絡的結構與組成大腦皮質單元的皮質柱是類似的。

視皮層是視覺相關智慧活動的不可或缺的參與者

在談大腦功能前,我要說的一句話是目前所有關於大腦的研究成果,無論發表在多麼高級的期刊上,均有可能被再次推翻的可能。因此,關於這一部分我們可以充分大膽的想象而不用被質疑沒有根據,因爲已有的根據不一定是正確的。

首先我個人堅持認爲,理論上沒有大腦的人是可以有生命活動的,甚至是可以進行一定的活動的。這裏定義生命活動指的是持續規律的自主心跳和呼吸。比如植物人,再比如車禍造成大腦組織嚴重缺損卻可以正常生活的人,如下圖。

圖片來自與網絡,爲保護隱私這裏不提供鏈接。

不過,大腦不同區域的負責不同的功能,當某一區域受損嚴重時,會出現對應功能的缺失。這類例子也有很多,就不舉了。還有一類有趣的現象,就是大腦的功能區域是人們根據研究結果人工劃分的,事實上其界限沒有研究人員說得那麼清楚。比如一個自幼失明的孩子可能具備靈敏的聽覺或音樂天分。其背後的原因就是,由於失明,視皮質區域的大腦結構被用來參與處理與其相鄰聽覺系統相關的智慧活動去了。反而造成其在音樂上的獨特天分。

因此,我大膽推測人類產生智慧活動所需要的知識是分塊處理的,這些知識存儲在一個個類似於皮質柱的神經網絡裏。記憶的並不存儲在人們常說的海馬區域,而是存儲在這些一個個皮質柱裏。大腦裏有許多條高速信息公路在各腦區穿行,皮質柱通過自己的神經纖維掛在這些信息高速公路上,通過門控機制決定是否使用這些信息,同時記憶的提取也是利用一條類似的尋址高速公路,遺忘不是皮質柱的死亡,還是丟失了打開門控的信息。同時皮質柱也承擔着決策功能,決策體現在信號的轉化和流轉、記憶和知識體現在某一個或多個層神經元的整體信號中。這就相當於神經網絡中特徵層存儲着知識、權重參數充當着決策。

 

CNN的未來與展望

既然人視覺系統沒有卷積操作,那麼CNN引入了卷積操作那麼成功其理由是什麼?CNN未來又會怎樣發展?

我個人的回答是:CNN的卷積操作代替的是人移動眼球掃描外界視覺信號的過程。在當前集中在靜態圖片處理的情況下,這種把掃視放入到網絡裏面來進行比較有優勢;隨着計算性能的提高,自動駕駛對於處理視頻數據的要求,我們可能需要更多的借鑑人眼在處理視頻數據中的特點,到時候CNN也許會被拋棄或改進。但是CNN中使用的各種技巧還是可以借鑑的,可能會拋棄卷積核,以注視中心爲基準,採用"池化+全連接"聯合注意力機制,輔以足夠的基於數據擴增(data augmentation,包括平移、鏡像、旋轉和縮放)的監督訓練,我個人對此很有信心。目前對視頻處理的研究主要採用基於3D的CNN,卷積操作仍然是其核心操作,這種方法很可能只是過渡性的方法。

 

有關CNN還有什麼技術本文沒有提及,歡迎在評論區留言,我爭取研究下找到其在人類視覺系統中的對應結構和功能。

 

補充:

關於權重參數的調整,實在搞不清楚人類系統是如何做到的。不過我個人認爲,人類神經系統的權重調整很複雜,至少涉及到神經遞質的類型、複雜的突觸微結構、不基於鏈接的化學信號的影響等等,很可能沒有精確的梯度作指導,但極有可能也是基於mini-batch的,權重參數的更新可能發生在睡眠期間,睡眠期間的夢可能就是參數調整時,偶然碰到一個神經元突然被激活進而導致整個大腦相關神經元的集體活動,產生了夢。(此段純屬娛樂,切莫當真)。

 

最後,非常感謝能堅持讀到此句的讀者。謝謝!

 

 

給自己發個小廣告:本人尋求自然語言處理與計算機視覺領域的科研合作,長期有效!

研究興趣:

1、模仿人眼視覺系統的圖像及視頻神經網絡的架構

  包括:探索搭建基於人類視覺系統面向視頻分析的深度學習網絡;訓練、分析、改善網絡、比較常用CNN與模仿人眼視覺系統網絡模型在各種數據集中的性能。

2、基於知識推理的複雜機器閱讀理解研究

  包括:蒐集、創建基於中文的、世界知識語料庫;探索搭建基於世界知識的機器閱讀理解網絡模型;在SQuAD、CBT等數據集上訓練、分析、模型結果並改善,與目前主流機器閱讀理解模型比較。此文中有我對於基於知識的機器閱讀理解的思考。

 

葉強

qqiangye@gmail.com

2017年8月19日

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章