貓咪怎樣啟發了人工神經網絡的誕生? |
送交者: 天蓉 2024年06月26日14:57:31 於 [教育學術] 發送悄悄話 |
2012年是神經網絡翻身的一年。一個具有劃時代意義的模型AlexNet橫空出世,在一個叫做ImageNet的圖像識別競賽中,以識別率遠超第二名10.9個百分點的絕對優勢,一舉奪冠,引起了人工智能領域極大的轟動。辛頓三人的AlexNet成功的秘訣,是使用了“多層卷積人工神經網絡”,這個短語中涉及的詞彙,都可以靠“顧名思義”就大概明白了,唯有其中的“卷積”一詞,說的是什麼意思呢?今天我們就聊聊這個話題。 喵咪視覺的啟發 故事得回到20世紀60年代初,哈佛大學兩位神經生物學家休伯爾David Hubel和威澤爾Torsten Wiesel,作了一個有趣的貓咪實驗,見圖1。他們使用幻燈機向貓展示特定的模式,然後記錄貓腦中各個神經元的電活動[1]。他們發現特定的模式刺激了貓咪大腦特定部位的活動。正因為他們在視覺信息處理方面的傑出貢獻,榮獲了1981年諾貝爾生理學或醫學獎。 圖1:1962年哈佛大學研究者對貓咪的神經生物實驗 哈佛學者的實驗證明,視覺特徵在大腦皮層的反應是通過不同的細胞達成的。其中,簡單細胞(Simple Cell)感知光照信息,複雜細胞(Complex Cell)感知運動信息。到了1980年前後,日本科學家福島邦彥受貓咪生物實驗的啟發,模擬生物視覺系統並提出了一種層級化的多層人工神經網絡,即“神經認知”系統,這是現今卷積神經網絡的前身。在論文中,福島邦彥提出了一個包含卷積層、池化層的神經網絡結構。 福島小時候家境貧寒,但好奇心讓他對電子技術充滿激情,後來他獲得了京都大學的電氣工程博士學位,1965年他加入了一個視覺和聽覺信息處理研究小組,研究生物大腦。之後,福島與神經生理學家和心理學家通力合作,組裝人工神經網絡。 1979年,「Neocognitron」神經認知系統問世了,靈感便來自於兩種已知存在於生物初級視覺皮層的神經細胞:簡單的「S」細胞,以及複雜的「C」細胞,它們後來分別演化成了現在神經網絡中的卷積層和池化層,見圖2[2]。 福島老爺子今年已經88歲了,5年前他還發表了神經網絡方面的研究論文。 圖2:福島邦彥1980年的“神經認知”系統 其實福島邦彥40年前的認知系統已經具有了卷積神經網絡的基本構型,但當時這個網絡的神經元都是由人工設計而成,不會根據結果進行自動調整,學習能力不強等等。因此只能限制在識別少量簡單數字的初級階段。 來得早不如來得巧,卷積方法得以實用化是在1998年,法國計算機科學家楊立昆(Yann LeCun,1960-)將反向傳播應用到卷積神經網絡的訓練之後。 楊立昆於生於法國巴黎附近,1983年在巴黎電子工程師高等學校獲得了工程師學位,1987年在巴黎第六大學獲得計算機科學博士學位,隨後到多倫多大學在傑弗里·辛頓的指導下完成了博士後工作,與辛頓同為2018年圖靈獎得主。 圖3:楊立昆 1986年,正在攻讀博士學位的楊立昆放下了另一個研究工作,開始專注研究反向傳播。出於從休伯爾、威澤爾和福島邦彥工作中獲得的靈感,以及對哺乳動物視覺皮層研究的迷戀,他設想了一個多層網絡架構,能夠將簡單細胞和複雜細胞的交替以及反向傳播訓練結合在一起。他認為這種類型的網絡非常適合用於圖像識別[3]。 1988年,楊立昆加入新澤西州的貝爾實驗室。在此,他開發了包括卷積神經網絡在內的多個機器學習方法[4]。並且真正實現了卷積神經網絡,貝爾實驗室將其命名為LeNet,就如他的姓LeCun一樣,這是卷積網絡的第一個名字。 人眼如何識別物體? 圖像識別一直是人工智能研究中的熱點,這是有原因的。本來人類的知識就來自於對世界的觀察,從人眼開始,延伸到望遠鏡顯微鏡等等各種觀測工具。我們偉大的科學,就是建立在許多許多觀測資料的基礎之上。 計算機要模仿人的功能和思想,也包括了人眼識別的過程,而眼睛是非常複雜精緻的器官,加上與大腦神經的聯繫及反饋,形成的生物視覺機制,是數百萬年間持續進化的高級產物,人類尚未完全弄明白,當然也不是那麼容易仿效的。 人眼到底是如何工作的?你可能認為這很簡單,人眼是一個光學系統,物體的反射光通過晶狀體折射成像於視網膜上。再由視覺神經感知傳給大腦。這樣人就看到了物體。人工智能開始時就是企圖如此來模擬視覺:接受器件將整個圖像通過掃描成為像素,送到神經網絡進行識別,如圖4a。 然而,人眼識別似乎不是那麼簡單,那麼,人眼是如何識別各種模式的?說得更具體一點,人眼如何識別一個手寫的字母x? 圖4:機器識別和人眼識別 從我們的經驗知道,人眼“一眼就能”看出圖1b中的每個小圖中都有個x,無論這個x放在哪個位置?是大還是小?是紅還是藍?有沒有背景圖? 科學家們希望機器也能儘量做到這點,於是有人便搬出了“卷積”這個法寶。 卷積是個啥? 實際上,卷積概念的出現大大早於神經網絡,如圖4上方的數學表達式所示:它是一種從兩個函數f(r’)和h(r-r’)相乘再對r’積分得到另一個函數g(r)的運算。 儘管名字不同,但與卷積類似的運算最早是於1754年出現在達朗貝爾的數學推導中,繼而又被其他數學家使用過。不過,這個術語的正式登場是在1902年。 之後,在通信工程中,卷積用以描述信號和系統的關係。對於任意的輸入f(t),線性系統的輸出g(t)表示為脈衝響應函數h(t)與輸入的卷積。例如,歌手使用麥克風演出時,通過麥克風聽到的歌聲,與麥克風之前的聲波是有所不同的,因為麥克風對輸入信號有延遲和衰減的作用。如果將麥克風近似為一個線性系統,用函數h(t)來表示它對信號的作用,那麼,麥克風的輸出g(t)就是輸入的f(t)與h(t)的卷積。另一個有趣的事實是,如果送進麥克風的輸入是狄拉克d-函數的話,麥克風的輸出便正好是它的脈衝響應函數h(t)。 仔細觀測卷積的積分表達式,會發現積分號中h函數積分變量r’的符號為負。如果r是時間t的話,那就是說,h函數被“卷”(對時間翻轉)到過去的數值,再與當前的f值相乘,最後再將這些乘積值疊加(積分)起來,便得到了卷積。這點在麥克風的例子中很容易理解,因為麥克風每個時刻的輸出,不僅與當前的輸入有關,還與過去的輸入有關。 圖5:卷積 總結上面一段話,可以更簡要地理解卷積:卷積是函數f對權重函數h的權重疊加。 數學的美妙之處在於抽象,抽象後的概念可以應用於其它不同的場合。比如卷積,可以被用於連續函數(如信號和系統),也可以被用於離散的情況(如概率和統計);卷積的積分變量可以是時間,也可以是空間,還可以是多維空間,例如將它用於AI的圖像識別中,便是卷積在離散的多維空間中的應用。 卷積層和卷積計算 現在讓我們想想,當給計算機一個包括"X"的圖案,它怎麼才能找到這個“X”呢?一個可能的辦法就是:讓計算機存儲一張標準的“X”圖案,然後將這個標準圖放到輸入圖的各個部分去比對,如果某部分與標準圖一致,則判定找到了一個"X"圖案。更進一步,這個標準圖最好還有縮小放大轉動等功能。 以上提到過,人眼“一眼就能”看出圖中某個模式。其實這個“一眼就能”有個數學模型,就是d-函數。如果將d-函數用於卷積中,因為它只在某一個孤立點有值,所以它能夠將f函數該點的值“抽取”出來。 如圖6所示,標準圖(圖中的卷積核)就像一雙眼睛,它的3x3窗口在7x7的輸入數據上滑動,就像眼睛在圖上望來望去,將符合標準的部分抽取出來。這個比對抽取的過程,就由卷積操作來完成。具體計算過程:卷積是將窗口掃描到的3x3矩陣元數值,與卷積核的3x3矩陣元數值逐一相乘再全部加起來,將得到的結果寫到與窗口中心對應的1x1位置中。最後得到的(更大的,圖中是7x7的)輸出矩陣,就是卷積的結果。 圖6:神經網絡識別x時的卷積計算 也可以說,卷積核的作用,類似於代表某個模式的d-函數,它能把這個模式從原圖中“抽樣提取”出來。用前面描述卷積數學公式的語言來說,圖6左邊的輸入矩陣,是f函數;卷積核是h函數;最右邊的輸出,是卷積計算的結果g函數。卷積核(圖中的3x3矩陣)的矩陣元,是權重係數。卷積核的權重係數,與連接層與層之間的權重係數一樣,也可以通過學習和訓練過程進行優化。此外,還要用適當的激活函數達到非線性化的目的。 卷積的作用是“抽取”,抽取什麼呢?在圖像識別中,通俗地說就是抽取事物的輪廓。 池化層及卷積神經網絡 讓我們回頭再想想人眼識物的更多特點。當我們從輪廓知道了那是一隻貓之後,我們發現一個有趣又有用的事實:即使將圖像縮小很多,我們仍然能夠判定“那是一隻貓”。這說明儲存的輪廓圖像有許多冗餘的信息。 我們不需要太多冗餘信息,因為它們浪費了計算機的儲存空間。並且,有時信息多了是畫蛇添足,反而增加判斷的錯誤率。所以,我們將圖6所示的卷積層的計算結果,送入一個叫“池化”的網絡層。池化的作用便是對特徵圖進行降採樣,降低信息的冗餘,從而減小網絡的模型參數量和計算成本,減少過擬合的風險,也對輸入圖像中的特徵位置變化,諸如變形、扭曲、平移等等視覺模式漂移,更不敏感。 以上解釋是針對一個卷積層加一個池化層識別一個簡單模式而言。實際上,對輸入的大量彩色複雜圖片,需要識別的模式非常多,因此必須考慮許多複雜的因素,上面描述的特徵提取器不是“手動”設計的,而是通過學習自動生成的。做到自動化,是使用反向傳播訓練的多層網絡的魅力所在。不過,基本思想與上面所說是一致的:多個卷積層加非線性再加上池化層,足以識別出從簡單模式(拐角、邊緣等)到複雜對象(人臉、椅子、汽車等)的各類圖像內容,見圖7。 圖7:卷積神經網絡整體示意圖 卷積加池化中的計算,看起來是乘法疊加,它們的總作用是提取重要信息並降維。為了更好地理解這兩層神經網絡的作用,我們也可以與聲音信號的傅立葉分析相比較。一般的聲音信號(如一段音樂)在時間域中是頗為複雜的曲線,需要每個時刻的大量數據來表示。如果經過傅立葉變換到頻率域後,便只要少量的幾個頻譜,基頻和幾個泛音的數據就可以表示了。例如最簡單的,某個單一頻率的聲波,在時間域是一連串的強度隨時間變換的正弦函數值,而在傅立葉變換後的頻率域,只是一個d-函數。也就是說,傅立葉變換能夠有效地提取和存儲聲音信號中的主要成分,並且降低描述數據的維數。卷積運算在神經網絡中也有類似的作用:一是抽象重要成分,拋棄冗餘的信息,二是降低數據矩陣的維數,以節約計算時間和存儲空間。不過當卷積神經網絡應用於圖像識別時,提取的是圖像的空間變化信息,不是時間頻譜。 卷積神經網絡為大眾熟知的最廣泛應用是人臉識別技術,我們在手機照片中經常看到。比如,如圖8所示,一張“人臉” 可以看做簡單模式的層級疊加,第一個隱藏層學習到的是人臉上的輪廓紋理(邊緣特徵),第二個隱藏層學習到的是由邊緣構成的眼睛鼻子之類的“形狀”,第三個隱藏層學習到的是由“形狀”組成的人臉“圖案”,每一層抽取的目標越來越抽象,在最後的輸出中通過特徵來對事物進行識別(是或不是)。 圖8:每一層的分類能力越來越“抽象” 神經網絡雖然源於對大腦的模擬,但後來的發展則更大程度上被數學理論及統計方法所指導,正如飛機這一交通工具的發展過程,源於對鳥兒飛翔的模仿,但現代飛機的結構卻與鳥類身體構造風馬牛不相及。 參考文獻: [1]Receptive fields, binocular interaction and functional architecture in the cat's visual cortex., D. H. Hubel and T. N. Wiesel, The Journal of Physiology(1962) https://www.aminer.cn/archive/receptive-fields-binocular-interaction-and-functional-architecture-in-the-cat-s-visual-cortex/55a5761e612c6b12ab1cc946 [2]Fukushima, K. (1980) Neocognitron: A Self-Organizing Neural Network Model for a Mechanism of Pattern Recognition Unaffected by Shift in Position. Biological Cybernetics, 36, 193-202. https://doi.org/10.1007/BF00344251 [3]科學之路: 人、機器與未來 當機器思考時,人類會怎樣?,作者: [法] 楊立昆,出版社: 中信出版集團,2021-8-1。 [4]Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard and L. D. Jackel: Backpropagation Applied to Handwritten Zip Code Recognition, Neural Computation, 1(4):541–551, Winter 1989. (本文首發於微信公眾號“知識分子”) |
|
|
|
實用資訊 | |
|
|
一周點擊熱帖 | 更多>> |
|
|
一周回復熱帖 |
|
|
歷史上的今天:回復熱帖 |
2023: | 看圖,美,其實就是信息量少,給大腦的 | |
2023: | 俄羅斯炸了!叛亂繼續! | |
2022: | 聽師父講故事 (小故事.大道理) 信 | |
2022: | 玄學基礎(5) | |
2021: | 鮃鰨鰈,三種躺平的有脊椎動物。 | |
2021: | 被人怕好還是被人愛好? | |
2020: | 好的教育,是公平的 | |
2020: | 年僅20歲來自義大利的大提琴手 | |
2019: | 783、善有善報、看圖學概念 廣相論26 | |
2019: | 唐詩解(修訂19 | |