作者——Jean-Christophe B. Loiseau
這篇文章是我明年將在法國巴黎高等藝術(shù)學(xué)院教授的博士課程"初學(xué)者深度學(xué)習(xí)入門"系列文章中的第一篇。本系列的目的是幫助初學(xué)者逐步建立他們對神經(jīng)網(wǎng)絡(luò)內(nèi)部機制的認(rèn)知,并分享一些關(guān)于我對數(shù)學(xué)的基本理解。在此過程中我們還將討論一些歷史方面的問題。最后要注意的是,由于你可能沒有時間(也沒有意愿)閱讀本系列中的所有文章,因此每篇文章都是盡可能獨立的。現(xiàn)在,讓我們一起來討論吧!
在過去的十年中,機器學(xué)習(xí)在認(rèn)知神經(jīng)科學(xué)、圖像分類、推薦系統(tǒng)或工程等眾多領(lǐng)域中產(chǎn)生了變革性的影響。最近,隨著科學(xué)和主流媒體定期報道神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的增多,它們引起了更多人的關(guān)注。
盡管有越來越多高效和通用的庫能夠減少實現(xiàn)深度學(xué)習(xí)算法所需的知識,為創(chuàng)新應(yīng)用打開了大門,但技術(shù)人員仍然需要對基礎(chǔ)數(shù)學(xué)理論有一個很好的理解,才能構(gòu)建高效的神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)。
不幸的是,社會上大多數(shù)人對數(shù)學(xué)的印象可能會嚇跑學(xué)生。這種數(shù)學(xué)素養(yǎng)的缺乏也可能是政治和非技術(shù)產(chǎn)業(yè)對深度學(xué)習(xí)表現(xiàn)和能力持懷疑態(tài)度或過于樂觀的原因之一。此外,Susannah Shattuck發(fā)表了一篇文章,討論為什么人們不信任AI以及為什么行業(yè)可能不愿意采用AI。她引用的一個主要原因是:在IBM 2018年的一項研究中,63%的受訪者認(rèn)為缺乏技術(shù)技能是人工智能實施的障礙。
本系列的歷史觀點和目標(biāo)
盡管深度學(xué)習(xí)最近才進入主流媒體的視野中,但它的歷史可以追溯到20世紀(jì)40年代初,當(dāng)時McCulloch和Pitts建立了第一個人工神經(jīng)元數(shù)學(xué)模型。從那以后,科學(xué)文獻中提出了無數(shù)的體系結(jié)構(gòu),從Frank Rosenblatt(1958)的單層感知器到最近的神經(jīng)常微分方程,以解決各種任務(wù)(例如時間序列預(yù)測、圖像分類、模式提取等)。下面的時間軸(由Favio Vázquez提供)顯示了一個相當(dāng)準(zhǔn)確的深度學(xué)習(xí)歷史圖,你可以在這張圖上看到整個歷史過程。
如你所見,這段歷史相當(dāng)密集。因此,在有限數(shù)量的博客文章中涵蓋所有這些不同的架構(gòu)將是不現(xiàn)實的。此外,其中一些神經(jīng)網(wǎng)絡(luò)架構(gòu)可能來自高級數(shù)學(xué)領(lǐng)域,甚至來自統(tǒng)計物理學(xué)。本系列的目的不是詳細(xì)討論這些架構(gòu)中的每一個,而是逐步向初學(xué)者介紹深度學(xué)習(xí)的基礎(chǔ)數(shù)學(xué)理論、它使用的基本算法、以及關(guān)于其發(fā)展的一些歷史觀點。
為此,我們將從簡單的線性分類器開始,然后介紹完全連接的神經(jīng)網(wǎng)絡(luò)和其他體系結(jié)構(gòu),如卷積神經(jīng)網(wǎng)絡(luò)或LSTM網(wǎng)絡(luò)。像我們關(guān)注的其他主題,例如凸優(yōu)化和非凸優(yōu)化,普遍逼近定理等也將在此過程中得到解決。因為我們的目標(biāo)是幫助初學(xué)者理解深度學(xué)習(xí)算法的內(nèi)部工作原理,因此我們所有的實現(xiàn)主要依賴于SciPy和NumPy(盡可能的全部使用),而不是像TensorFlow那樣高度優(yōu)化的庫。
此外,為了教育和科學(xué)推廣深度學(xué)習(xí)的目的,本系列中使用的所有代碼都可以在GitHub中免費獲得(https://github.com/loiseaujc/TowardsDataScience/tree/master)。
McCulloch和Pitts的人工神經(jīng)元模型(1943)
人工神經(jīng)元的第一個數(shù)學(xué)模型是由Warren S. McCulloch(1898-1969,美國神經(jīng)生理學(xué)家)和Walter H. Pitts Jr(1923-1969,美國邏輯學(xué)家)于1943年提出的閾值邏輯單元。在深入研究他們的模型之前,讓我們快速回顧一下生物神經(jīng)元是如何工作的。
左:Warren S. McCulloch。右:Walter H. Pitts Jr.
生物神經(jīng)元的高級描述
神經(jīng)元,又稱神經(jīng)細(xì)胞,是大腦的組成部分。神經(jīng)元是神經(jīng)系統(tǒng)的基本結(jié)構(gòu)和機能單位。主要部分包括樹突、胞體、軸突、細(xì)胞膜。簡而言之,神經(jīng)元是是一種高度分化的細(xì)胞,它具有感受刺激和傳導(dǎo)興奮的功能,通過專門的連接與其他細(xì)胞通信。存在不同的生物模型來描述它們的特性和行為,例如:
早在1907年,Louis Lapicque(1866-1952,法國神經(jīng)科學(xué)家)就提出了Integrate-and-Fire模型。
Hodgkin-Huxley模型,以Alan A. Hodgkin(1914-1998,英國生理學(xué)家和生物物理學(xué)家)和Andrew F. Huxley(1917-2012,英國生理學(xué)家和生物物理學(xué)家,他獲得了1963年的諾貝爾生理學(xué)和醫(yī)學(xué)獎)的名字命名。
FitzHugh-Nagumo模型,以Richard FitzHugh(1922-2007,美國生物物理學(xué)家)和J. Nagumo(日本工程師)命名,基本上是Hodgkin-Huxley模型的簡化。
Eugene M. Izhikevich(1967年出生,俄羅斯數(shù)學(xué)家)最近提出的spiking neurons模型(尖峰神經(jīng)元模型)。
雖然這些模型中的一些開始被用作復(fù)雜神經(jīng)網(wǎng)絡(luò)的模塊構(gòu)建,但我們將在后文中對神經(jīng)元進行非常詳細(xì)的描述。如下圖所示。就我們的目的而言,我們只對以下特性感興趣:
生物神經(jīng)元的示意圖
樹突,是神經(jīng)細(xì)胞的分支原生質(zhì)延伸,它將從其他神經(jīng)細(xì)胞接收的電化學(xué)刺激傳播至細(xì)胞體。每個神經(jīng)元可以有一或多個樹突。
Soma(胞體)是連接并傳遞從樹突中接收的信號的地方。胞體是神經(jīng)元的代謝和營養(yǎng)中心。胞體的結(jié)構(gòu)與一般細(xì)胞相似,有細(xì)胞膜、細(xì)胞質(zhì)和細(xì)胞核。
Axon hillock是連接軸突體細(xì)胞的一個特殊部分。正是它控制著神經(jīng)元。如果它接收的信號的總強度超過其閾值極限,則神經(jīng)元將在軸突下發(fā)射信號。
Axon是從細(xì)胞向下延伸到末端的細(xì)長纖維。它的作用是通過突觸將神經(jīng)信號傳遞給其他神經(jīng)元。
Synapses是位于軸突末端的一個小間隙,連接著神經(jīng)元和其他神經(jīng)細(xì)胞。在那里,神經(jīng)遞質(zhì)用于將信號穿過突觸傳遞到其他神經(jīng)元。
生物神經(jīng)元的工作原理可概括如下。首先,它從樹突(即其他神經(jīng)元)獲取輸入。然后,在soma內(nèi)執(zhí)行這些輸入的加權(quán)和。結(jié)果被傳遞到Axon hillock。如果此加權(quán)和大于閾值限制,則神經(jīng)元將觸發(fā)。否則,它會保持靜止?fàn)顟B(tài)。我們神經(jīng)元的狀態(tài)(開或關(guān))通過其軸突傳播,并通過它的突觸傳遞給其他連接的神經(jīng)元。雖然非常簡單,但這種對生物神經(jīng)元工作原理的高級描述足以理解McCulloch和Pitts在1943年提出的人工神經(jīng)元的數(shù)學(xué)模型。
人工神經(jīng)元的數(shù)學(xué)模型
基于對神經(jīng)元操作原理的基本理解,McCulloch&Pitts在1943年發(fā)表的開創(chuàng)性論文《A logical calculus of the ideas immanent in nervous activity》中提出了第一個人工神經(jīng)元的數(shù)學(xué)模型。雖然很簡單,但他們的模型已被證明非常通用且易于修改。今天,他們原始模型的變化現(xiàn)在已成為大多數(shù)神經(jīng)網(wǎng)絡(luò)的基本構(gòu)建,從簡單的單層感知器到微軟用來贏得2016年ImageNet競賽的152層深度神經(jīng)網(wǎng)絡(luò)都是由它們構(gòu)建。
McCulloch&Pitts的神經(jīng)元模型,簡稱MCP神經(jīng)元,規(guī)則定義如下:
它的二進制輸出y∈{0,1},其中y = 1表示神經(jīng)元觸發(fā),y = 0表示它處于靜止?fàn)顟B(tài)。
它有N個二進制輸入x?∈{0,1}。
它有一個抑制輸入i。
它具有閾值Θ。如果其輸入的總和大于該臨界值,則神經(jīng)元會觸發(fā)。否則它會保持靜止?fàn)顟B(tài)。
給定輸入x = [x 1,x 2,x 3,...,x?]?,抑制輸入i和閾值Θ,輸出y計算如下
許多不同的論文和博客文章都展示了如何使用MCP神經(jīng)元來實現(xiàn)不同的布爾函數(shù),如OR,AND或NOT。下面使用Marvin Minsky的符號說明這些。
使用MCP神經(jīng)元建模的三個布爾函數(shù)。
必須強調(diào)的是,通過堆疊多個MCP神經(jīng)元,還可以表示更復(fù)雜的特性。盡管具有這種靈活性,MCP神經(jīng)元仍然受到主要限制,即
單個MCP神經(jīng)元不能表示XOR布爾函數(shù)或任何其他非線性函數(shù)。
所有突觸權(quán)重都設(shè)置為1,這意味著所有輸入對輸出的貢獻相等。
所考慮的函數(shù)需要由用戶進行硬編碼。無法從數(shù)據(jù)中學(xué)習(xí)。
絕對抑制規(guī)則(即如果抑制性輸入i打開,神經(jīng)元不能觸發(fā))限制性太強。
盡管如此,MCP神經(jīng)元在當(dāng)時的研究界引起了極大的關(guān)注,在半個多世紀(jì)之后,又產(chǎn)生了現(xiàn)代深度學(xué)習(xí)。在這個過程中,解決了MCP神經(jīng)元局限性的最重要的改進之一來自于Frank Rosenblatt和他的感知器。
注:Akshay Chandra Lagandula去年夏天發(fā)表了一篇關(guān)于McCulloch和Pitts神經(jīng)元的精彩介紹。最值得注意的是,他說明了如何使用此模型實現(xiàn)布爾函數(shù)(例如AND,OR等)。強烈建議有興趣的讀者查看。
聯(lián)系客服