深度神經網絡中的數學,對你來說會不會太難?

2020-12-05 機器之心Pro

本文由機器之心編輯,「機器之心」專注生產人工智慧專業性內容。

編者按:這是一篇講解深度學習數學的系列文章,但並非是基礎數學,還涉及到了拓撲與測度論等內容。本文為該系列文章的第一部分,機器之心會持續把後續內容全部放出。更規範的公式,請查看原文,連結在文末。本文為第一部分。

深度前饋網絡

我們從統計學出發,先很自然地定義一個函數 f,而數據樣本由Xi,f(Xi)給出,其中 Xi 為典型的高維向量,f(Xi) 可取值為 {0,1} 或一個實數。我們的目標是找到一個最接近於描述給定數據的函數 f(不過擬合的情況下),因此其才能進行精準的預測。

在深度學習之中,總體上來說就是參數統計的一個子集,即有一族函數 f(X;θ),其中 X 為輸入數據,θ為參數(典型的高階矩陣)。而目標則是尋找一組最優參數θ,使得 f(X;θ) 最合適於描述給定的數據。

在前饋神經網絡中,θ就是神經網絡,而該網絡由 d 個函數組成:

大部分神經網絡都是高維的,因此其也可以通過以下結構圖表達:

其中是向量值函數 f^(i) 的分量,也即第 i 層神經網絡的分量,每一個 是的函數。在上面的結構圖中,每一層函數 f^(i) 的分量數也稱為層級 i 的寬度,層級間的寬度可能是不一樣的。我們稱神經網絡的層級數 d 為網絡的深度。重要的是,第 d 層的神經網絡和前面的網絡是不一樣的,其為輸出層,在上面的結構圖中,輸出層的寬度為 1,即 f=f(d) 為一個標量值。通常統計學家最喜歡的是線性函數,但如果我們規定神經網絡中的函數 f^(i) 為一個線性函數,那麼總體的組合函數 f 也只能是一個線性函數,也樣就完全不能擬合高維複雜數據。因此我們通常激活函數使用的是非線性函數。

最常用的激活函數來自神經科學模型的啟發,即每一個細胞接收到多種信號,但神經突觸基於輸入只能選擇激活或不激活一個特定的電位。因為輸入可以表徵為。

對於一些非線性函數 g,由樣本激勵的函數可以定義為:

其中 g 定義了以線性函數為自變量的一個非線性函數。

通常我們希望函數 g 為非線性函數,並且還需要它能很方便地求導。因此我們一般使用 ReLU(線性整流單元)函數 g(z)=max(0,z)。其它類型的激活函數 g 還包括 logistic 函數:

 和雙曲正切函數:

這兩種激活函數相對 ReLU 的優點,即它們都是有界函數。

正如前面所說的,最後的輸出層和前面的層級都不一樣。首先它通常是標量值,其次它通常會有一些統計學解釋:

通常可以看作經典統計學模型的參數,且 d-1 層的輸出構成了輸出層激活函數的輸入。輸出層激活函數可以使用線性函數

該線性函數將輸出作為高斯分布的條件均值。其它也可以使用 σ(wTh+b),其中σ代表 Sigmoid 函數,即

該 Sigmoid 函數將輸出視為 P(y)為 exp(yz) 的伯努利試驗,其中

更廣義的 soft-max 函數可以給定為:

 其中。

 現在,z 的分量和可能的輸出值相對應,softmax(z)i 代表輸出值 i 的概率。例如輸入圖像到神經網絡,而輸出(softmax(z)1,softmax(z)2,softmax(z)1)則可以解釋為不同類別(如貓、狗、狼)的概率。

卷積網絡

卷積網絡是一種帶有線性算符的神經網絡,即採用一些隱藏的幾何矩陣作為局部卷積算符。例如,第 k 層神經網絡可以用 m*m 階矩陣表達:

我們定義 k+1 層的函數

可以由 2*2 矩陣在前一層神經網絡執行卷積而得出,然後再應用非線性函數 g:

參數 a(k)、b(k)、c(k) 和 d(k) 只取決於不同層級濾波器的設定,而不取決於特定的元素 i,j。雖然該約束條件在廣義定義下並不必要,但在一些如機器視覺之類的應用上還是很合理的。除了有利於參數的共享,這種類型的網絡因為函數 h 的定義而自然呈現出一種稀疏的優良特徵。

卷積神經網絡中的另一個通用的部分是池化操作。在執行完卷積並在矩陣索引函數 

上應用了 g 之後,我們可以用周圍函數的均值或最大值替代當前的函數。即設定:

這一技術同時可以應用到降維操作中。

模型和優化

下面我們需要了解如何求得神經網絡參數,即到底我們該採取什麼樣的 θ 和怎麼樣評估θ。對此,我們通常使用概率建模的方法。即神經網絡的參數θ決定了一個概率分布 P(θ),而我們希望求得 θ 而使條件概率 Pθ(y|x) 達到極大值。即等價於極小化函數:

其中可以用期望取代對數似然函數。例如,如果我們將 y 擬合為一個高斯分布,其均值為 f(x;θ),且帶有單位協方差矩陣。然後我們就能最小化平均誤差:

那麼現在我們該怎樣最優化損失函數 J 以取得最優秀的性能。首先我們要知道最優化的困難主要有四個方面

1)過高的數據和特徵維度

2)數據集太大

3)損失函數 J 是非凸函數

4)參數的數量太多(過擬合)

面對這些挑戰,自然的方案是採用梯度下降。而對於我們的深度神經網絡,比較好的方法是採用基於鏈式求導法則的反向傳播方法,該方法動態規劃地求偏導數以降誤差反向傳播以更新權重。

另外還有一個十分重要的技術,即正則化。正則化能解決模型過擬合的問題,即通常我們對每一個特徵採取一個罰項而防止模型過擬合。卷積神經網絡通過參數共享提供了一個方案以解決過擬合問題。而正則化提供了另一個解決方案,我們不再最優化 J(θ),而是最優化 J(θ)=J(θ)+Ω(θ)。

其中Ω是「複雜度度量」。本質上Ω對「複雜特徵」或「巨量參數」引入了罰項。一些Ω正則項可以使用 L2 或 L1,也可以使用為凸函數的 L0。在深度學習中,還有其他一些方法解決過擬合問題。其一是數據增強,即利用現有的數據生成更多的數據。例如給定一張相片,我們可以對這張相片進行剪裁、變形和旋轉等操作生成更多的數據。另外就是噪聲,即對數據或參數添加一些噪聲而生成新的數據。

生成模型:深度玻爾茲曼機

深度學習應用了許多概率模型。我們第一個描述的是一種圖模型。圖模型是一種用加權的圖表示概率分布的模型,每條邊用概率度量結點間的相關性或因果性。因為這種深度網絡是在每條邊加權了概率的圖,所以我們很自然地表達為圖模型。深度玻爾茲曼機是一種聯合分布用指數函數表達的圖模型:

其中配置的能量 E 由以下表達式給出:

一般來說,中間層級為實數值向量,而頂部和底部層級為離散值或實數值。

波爾茲曼機的圖模型是典型的二分圖,對應於每一層的頂點只連接直接在其頂部和底部的層級。

這種馬爾可夫性質意味著在 h1 條件下,v 分量的分布是和 h2,…,hd 還有 v 的其他分量相互獨立的。如果 v 是離散的:

其他條件概率也是相同的道理。

不幸的是,我們並不知道如何在圖模型中抽樣或優化,這也就極大地限制了玻爾茲曼機在深度學習中的應用。

深度信念網絡

深度信念網絡在計算上更為簡潔,儘管它的定義比較複雜。這些「混合」的網絡在本質上是一個具有 d 層的有向圖模型,但是它的前兩層是無向的:P(h(d1),h(d)) 定義為

對於其它層,

注意到這裡與之前的方向相反。但是,該隱變量滿足以下條件:如果

由公式(1)定義,則它們也滿足公式(2)。

我們知道怎樣通過上面的公式直接對基於其它條件層的底層進行抽樣;但是要進行推斷,我們還需要給定輸入下輸出的條件分布。

最後,我們強調,儘管深度玻爾茲曼機的第 k 層取決於 k+1 層和 k-1 層,在深度信念網絡,如果我們只條件基於 k+1 層,我們可以準確地生成第 k 層(不需要條件基於其它層)。

課程計劃

在本課程中,我們主要的討論主題為:

1)深度的表現力

2)計算問題

3)簡單可分析的生成模型

第一個主題強調神經網絡的表現力:可以被網絡近似的函數類型有哪些?我們計劃討論的論文有:

1)Cybenko 的「迭加激活函數的近似」(89)。

2)Hornik 的「多層前饋網絡的近似能力」(91)。

3)Telgarsky 的「深度向前網絡的表徵優勢」(15)。

4)Safran 和 Shamir 的「Relu 網絡的深度分離」(16)。

5)Cohen、Or 和 Shashua 的「關於深度學習的表現力:張量分析」(15)。

前兩篇論文(我們將在後面的課程中詳細闡述)證明了「你可以僅用單一層表達任何事物」的思想。但是,後面幾篇論文表明此單一層必須非常寬,我們將在後面側面展示這種論點。

關於第二個主題,我們在本課程中討論的關於複雜度結果的內容可能包括:

1)Livni、Shalev Schwartz 和 Shamir 的「關於訓練神經網絡的計算效率」(14)。

2)Danieli 和 Shalev-Schwartz 的「學習 DNF 的複雜度理論限制」(16)。

3)Shamir 的「特定分布的學習神經網絡複雜度」(16)。

在算法方面:

1)Janzamin、Sedghi 和 Anandkumar 的「使用張量方法有效訓練神經網絡」(16)。

2)Hardt、Recht 和 Singer 的「訓練更快,泛化更佳」(16)。

最後,我們將閱讀的關於生成模型的論文將包括:

1)Arora 等人(2014)的「學習一些深度表徵的可證明約束」。

2)Mossel(2016)的「深度學習和生成層次模型」。

今天我們將開始研究關於第一個主題的前兩篇論文:Cybenko 和 Hornik 的論文。

Cybenko 和 Hornik 的理論

在 1989 年的論文中,Cybenko 證明了以下結論:

[Cybenko (89)] 令 σ 為一個連續函數,且極限 limt→–∞σ(t)=0 和 limt→+∞σ(t)=1。(例如,σ 可以為激活函數且 σ(t)=1/(1+et))然後,f(x)=∑αjσ(wTjx+bj) 形式的函數族在 Cn([0,1]) 中是稠密的。

其中,Cn([0,1])=C([0,1]n) 是從 [0,1]n 到 [0,1] 的連續函數空間,它有 d(f,g)=sup|f(x)g(x)|。

Hornik 證明了下面的 Cybenko 的衍生結論:

[Hornik (91)] 考慮上面定理定義的函數族,但是 σ 沒有條件限制。

如果 σ 有界且非連續,那麼函數族在 Lp(μ) 空間是稠密的,其中 μ 是任意在 Rk 上的有限測度。

如果 σ 是條件連續的,那麼函數族在 C(X) 空間是稠密的,其中 C(X) 是所有在 X 上的連續函數的空間,XRk 是滿足有限開覆蓋的集合(compact set)。

如果附加 σ∈Cm(Rk),則函數族在 Cm(Rk) 空間和 C^{m,p}(μ)是稠密的,對於任意有限 μ 滿足有限開覆蓋條件。

如果附加 σ 至 m 階導數有界,那麼對於任意在 Rk 上的有限測度 μ,函數族在 C^{m,p}(μ) 是稠密的。

在上面的理論中,Lp(μ) 空間是滿足 ∫|f|pdμ<∞ 的函數 f 的空間,有 d(f,g)=(∫|fg|pdμ)1/p。在開始證明之前,我們需要快速回顧函數分析知識。

Hahn-Banach 擴展定理

如果 V 是具有線性子空間 U 和 z∈VU 的標準向量空間,那麼會出現連續的線性映射 L:V→K(L(x) = 0),與 L(z) = 1(對於所有 x∈U),和 ‖L‖≤d(U,z)。

為什麼此定理有用?Cybenko 和 Hornik 的結果是使用 Hahn-Banach 擴展定理反證法證明的。我們考慮由 {Σαjσ(wTjx + bj)} 給出的子空間 U,並且我們假設反證 U 不是整個函數空間。我們得出結論,在我們的函數空間上存在一個連續的線性映射 L,其在 U 上限制為 0,但不是恆為零。換句話說,它足以表明在 U 上為零的任何連續線性映射 L 必須是零映射,即證明了我們想要的結果。

現在,函數分析中的經典結果表明,Lp(μ) 上的連續線性函數 L 可以表示為

對於 g∈Lq(μ),其中 1/p + 1/q = 1。連續線性函數 L 在 C(X) 上可以表示為

其中 μ 是 X 上的有限符號測度。

我們可以在其它空間找到與 Cybenko 和 Hornik 定理中考慮的類似的線性函數表達式。

在一般證明之前,考慮函數空間是 Lp(μ) 和 σ(x) = 1(x≥0)的(容易)的例子。如何證明,如果定理所定義的集合中的所有 f 都滿足 L(f) = 0,則與 L 相關聯的函數 g∈Lq(μ) 必須恆為零?通過轉換,我們從 σ 獲得任何間隔的指標,即,可以表明對於任何 a < b,∫bagdμ= 0。由於 μ 有限(σ 有限性滿足條件),所以 g 必須為零。使用這個例子,我們現在考慮 Cybenko 定理的一般情況。

我們想表明:

意味著 μ= 0。首先,我們使用以下傅立葉分析技巧將維度減小到 1:將測度 μa 定義為

我們觀察到

此外,如果我們可以表明,對於任意 a,μa ≡ 0,那麼 μ≡0(「一個測度由它的所有投影定義」),即

(注意,這裡使用了 μ 的有限性)。將維度減少到 1 後,我們使用另一個非常有用的技巧(也使用 μ 的有限性)——卷積技巧。通過將 μ 與小高斯核進行卷積,我們得到一個具有密度的測度,即 Lebesgue 測度。我們現在進行剩下的證明。通過卷積技巧,我們有

並希望證明密度 h = 0。改變變量,我們重寫條件(3)為

為了證明 h = 0,我們使用以下抽象傅立葉分析的工具。令 I 是所有 h(wt+b) 的擴展線性空間的閉集合。由於 I 函數的不變性,所以在卷積下是不變的;在抽象傅立葉分析中,I 是對於卷積的一個理想狀態。令 Z(I) 表示所有函數在 I 上 vanish 的傅立葉變換 ω 的全部集合;那麼 Z(I) 為 R 或 {0} 集,因為如果 g(t) 處於理想狀態,則對於 w≠0,g(tw) 也是處於理想狀態。如果 Z(I) = R,則在理想狀態所有函數為常數 0,即證。否則,Z(I) = {0},則通過傅立葉分析,I 為所有 f^ = 0 的函數集合;即所有非常數函數。但是如果 σ 與所有非常數函數正交,σ = 0。我們得出結論:Z(I) = R,即 h = 0,完成證明。

附原文連結:http://elmos.scripts.mit.edu/mathofdeeplearning/2017/03/09/mathematics-of-deep-learning-lecture-1/

相關焦點

  • 3D列印出來的深度神經網絡,光速求解AI數學運算
    神經網絡中執行的是線性運算,恰好和光衍射的線性相互作用對應,神經元的權重、激活值概念也能和光的振幅、相位對應(可調)。此外,固態光衍射計算還具有能耗小、無發熱、光速執行(儘管傳統計算機電路中的電場傳播也是光速的,但並未直接對應神經網絡的計算過程)等優點。該研究方向尚處於起步階段,如果能充分利用其優勢,也許會有很廣闊的應用前景。
  • 深度網絡揭秘之深度網絡背後的數學
    注意:感謝Jung Yi Lin 的幫助,你也可以閱讀中文版的這篇文章。我在GitHub上提供了用於創建本文中使用的可視化的原始碼。了解更多的神經網絡的工作原理。我決定在今年夏天抽出點時間深入的學習一下數學。
  • 神經網絡和深度學習簡史(全)
    但是,這種災難性的形容的確可以用來描述深度學習在過去幾年中的異軍突起——顯著改善人們對解決人工智慧最難問題方法的駕馭能力,吸引工業巨人(比如谷歌等)的大量投資,研究論文的指數式增長(以及機器學習的研究生生源上升)。在聽了數節機器學習課堂,甚至在本科研究中使用它以後,我不禁好奇:這個新的「深度學習」會不會是一個幻想,抑或上世紀80年代已經研發出來的「人工智慧神經網絡」擴大版?
  • 深度學習背後的基礎-神經網絡揭秘
    最近, 深度學習三傑獲得了計算機界最重要的圖靈獎, 它們的貢獻都集中在對深度學習的根據神經網絡的理論突破。 今天我們看到的所有和人工智慧有關的偉大成就, 從阿法狗到自動駕駛, 從海量人臉識別到對話機器人, 都可以歸功於人工神經網絡的迅速崛起。那麼對於不了解神經網絡的同學如何入門? 神經網絡的技術為什麼偉大, 又是什麼讓它們這麼多年才姍姍走來?
  • 神經網絡原來是這樣和數學掛鈎的
    將神經元的工作在數學上抽象化,並以其為單位人工地形成網絡,這樣的人工網絡就是神經網絡。將構成大腦的神經元的集合體抽象為數學模型,這就是神經網絡的出發點。對於用神經網絡實現的人工智慧,人們只需要簡單地提供數據即可。神經網絡接收數據後,就會從網絡的關係中自己學習並理解。如此看來,神經網絡似乎有一些不可思議的邏輯。
  • 理清神經網絡中的數學知識
    導讀:首先我想在這裡聲明的是,本篇文章針對的是一些已經具備一定神經網絡知識的人。意在幫助大家梳理神經網絡中涉及的數學知識,以及理解其物理含義。希望大家讀過之後,可以使大家對於神經網絡有更多角度的理解,幫助大家推導以及理解其中的數學公式。
  • 「冪律與臨界」支配神經網絡,深度學習技術要向大腦學習
    比如 Harris 就開玩笑說:「你會發現川普的推文的感嘆號數目的分布也服從冪律分布。」這個規律還是比較特別的。冪律曲線有一個特定的斜率,這個斜率所代表的指數無法用外界刺激的數學規律來解釋。因為有鋸齒狀的邊緣,即便你只是沿著海岸線走了一小步,你的狀態也會快速的變化。」 用腦科學的話來說就是,兩幅相似的圖像背後是非常不同的神經活動,「這是有問題的」,Stringer 認為,「如果圖像上只有一個像素點發生了變化,或者圖像移動了一點,你不會希望大腦中的神經表徵發生徹底的變化。」 相反,如果冪律衰減得很快,神經表徵會變為低維。
  • 從零開始:教你如何訓練神經網絡
    我所做的所有修改都是為了簡化,因為我在這篇文章中不會涉及神經網絡的深入解釋。我僅僅試著給讀者給出一個關於神經網絡如何工作的直覺認識。 什麼是神經元呢?它是一個數學函數,並以一定量的數值作為輸入(隨便你想要多少作為輸入),我在上圖畫出的神經元有兩個輸入。我們將每個輸入記為 x_k,這裡 k 是輸入的索引。
  • 乾貨|不同的損失函數會對深度神經網絡帶來什麼樣的影響?
    二次損失函數會在神經元犯了明顯錯誤的情況下使得網絡學習緩慢,而使用交叉熵損失函數則會在明顯犯錯的時候學的更快。 今天,我們主要來談談不同的損失函數會對深度神經網絡帶來什麼樣的影響?
  • 【深度】機器學習進化史:從線性模型到神經網絡
    但是當涉及神經網絡,你的計算量將會大大增加,即便你已經學習了相關模型,但仍然要搞明白該模型的輸出。而且,這還不是最大的問題,通常一個支持向量機應對一百萬個參數還遊刃有餘,但是我所見過一個成功的最小神經網絡,涉及的參數就多達600萬個,而且這還是最小的。另一個問題是訓練算法並沒有從最優化理論中獲得太多好處。我們所使用的絕大多數線性模型基本上都有數學理論支持,並且可以確定何時完成訓練。
  • 推薦| 九本不容錯過的深度學習和神經網絡書籍
    搭建你自己的神經網絡(Make Your Own Neural Network)價格:45 美元一步步讓你了解神經網絡的數學原理並用 Python 搭建自己的神經網絡。神經網絡是深度學習和人工智慧的關鍵元素。然而,幾乎很少有人真正了解神經網絡如何運作。本書從非常簡單的思想開始,讓你在趣味和從容不迫中,逐漸了解神經網絡的運作原理。2.
  • 人工智慧系列(六) 深度學習中的神經網絡
    原力君在系列的第五篇《人工智慧系列(五) 深度學習簡介》中提到深度學習可以看作是一種更高級的函數擬合方法;人工神經網絡、激活函數、代價函數、梯度下降、反向傳播是深度學習的幾個關鍵點;常見的深度學習神經網絡結構有多層感知機、DNN、CNN、RNN等。
  • 「符號數學」終於向「神經網絡」屈服:AI 學會數學證明了?
    Facebook人工智慧研究小組工作的計算機科學家,公開了第一個成功用神經網絡解決符號數學問題的方案 他們將數學表達式轉換為樹狀結構,然後訓練網絡在符號當中找到有關解的線索 這種方法可以充當數學家的助手,通過識別已知猜想中的模式為一個之前存在的問題提供幫助 更加令人興奮的是,這種神經網絡有可能幫助揭開神經網絡本身黑匣子的秘密
  • 理解神經網絡:從神經元到RNN、CNN、深度學習
    這篇文章嘗試去介紹神經網絡,從一個最基礎的構件,即一個神經元,深入到它的各種流行的種類,像CNN,RNN等。正如其名字所表明,神經網絡的靈感來源於人類大腦的神經結構,像在一個人類大腦中,最基本的構件就叫做神經元。它的功能和人的神經元很相似,換句話說,它有一些輸入,然後給一個輸出。
  • ICML 2019 | 神經網絡的可解釋性,從經驗主義到數學建模
    但是,尋找適當的數學工具去建模深度神經網絡表達能力和訓練能力,將基於經驗主義的調參式深度學習,逐漸過渡為基於一些評測指標定量指導的深度學習,是新一代人工智慧需要面對的課題,也是在當前深度學習渾渾噩噩的大背景中的一些新的希望。
  • 神經網絡中容易被忽視的基礎知識
    注意生物中的神經元要複雜的多,其中一個是生物中的輸出是一個脈衝,而現在大多數的數學模型神經輸出的就是一個值,當然現在也有一些脈衝人工神經網絡,可以自行了解!簡單來說:就是使得神經網絡具有的擬合非線性函數的能力,使得其具有強大的表達能力!簡單擴展,神經網絡的萬能近似定理: 一個前饋神經網絡如果具有線性層和至少一層具有 "擠壓" 性質的激活函數(如 signmoid 等),給定網絡足夠數量的隱藏單元,它可以以任意精度來近似任何從一個有限維空間到另一個有限維空間的 borel 可測函數。
  • 人工智慧-深度學習-神經網絡結構MLP,CNN,RNN,LSTM
    人工神經網絡、激活函數、代價函數、梯度下降、反向傳播是深度學習的幾個關鍵點;常見的深度學習神經網絡結構有多層感知器MLP、CNN、RNN、LSTM等。卷積運算的目的是提取輸入的不同特徵,第一層卷積層可能只能提取一些低級的特徵如邊緣、線條和角等層級,更多層的網絡能從低級特徵中迭代提取更複雜的特徵。卷積層的神經元也是三維的,所以也具有深度。卷積層的參數包含一系列過濾器(filter),每個過濾器訓練一個深度,有幾個過濾器輸出單元就具有多少深度。
  • 【PPT下載】深度學習入門指南!六步構建深度神經網絡
    這個過程更多地是一個大規模數據的統計,統計一張圖片在360°空間中像素點存在的可能性有多少,模型只要記住了這個可能性,以後進行比對和特徵提取時,就會得到一個相對的概率。在得到這樣的模型以後,也會將其部署到下面的推演過程,也就是整個深度神經網絡的實現流程。
  • 神經網絡還能求解高級數學方程?
    通過開發一種將複雜數學表達式表示為一種語言的新方法,然後將解決方案視為序列到序列的神經網絡的翻譯問題,我們構建了一個在解決積分問題以及一階和二階微分方程方面都優於傳統計算系統的系統。以前,這類問題被認為是深度學習模型所無法企及的,因為求解複雜方程需要精度而不是近似值。
  • 深度神經決策樹:深度神經網絡和樹模型結合的新模型
    深度神經決策樹:深度神經網絡和樹模型結合的新模型 工程師郭婷 發表於 2018-08-19 09:14:44 近日,來自愛丁堡大學的研究人員提出了一種結合深度神經網絡和樹模型的新型模型