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

2020-12-11 機器之心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/

相關焦點

  • 神經網絡與深度學習
    隱藏層使得感知機能夠發展為擬合萬物的神經網絡模型,而反向傳播算法則是整個神經網絡訓練的核心要義。要學習深度學習,恐怕不得不先溫習一下機器學習,搞清楚二者之間的關係。簡單來說,機器學習就是從歷史數據中探索和訓練出數據的普遍規律,將其歸納為相應的數學模型,並對未知的數據進行預測的過程。
  • 深度學習和深度神經網絡
    深度學習深度學習是眾多機器學習方法中的一種。主要是通過神經網絡來實現。「深度」是指神經網絡的層數。
  • CICC科普欄目|從感知機到深度神經網絡,帶你入坑深度學習
    梯度消失在深度學習中是一個十分重要的問題,我們在深度網絡中加了很多層這樣的非線性激活函數,這樣的話,即使第一層的參數有很大的變化,也不會對輸出有太大的影響。換句話講,就是網絡不再學習了,通常訓練模型的過程會變得越來越慢,尤其是使用梯度下降算法時。sigmoid 的另一個弊端就是實際運用中指數運算開銷太大。
  • 通俗理解神經網絡與深度學習
    不管是 DeepMind,還是 OpenAI,他們在訓練人工智慧的時候都用到了深度學習,也就是有很多層的人工神經網絡。想必大部分讀者對「神經網絡」的最初印象都來自於大腦神經,顧名思義,神經網絡必然和腦神經有著千絲萬縷的聯繫。那麼神經網絡為什麼會這麼火呢?我們先來看看神經網絡的發家史。1.
  • 神經網絡和深度學習簡史(全)
    但是,這種災難性的形容的確可以用來描述深度學習在過去幾年中的異軍突起——顯著改善人們對解決人工智慧最難問題方法的駕馭能力,吸引工業巨人(比如谷歌等)的大量投資,研究論文的指數式增長(以及機器學習的研究生生源上升)。在聽了數節機器學習課堂,甚至在本科研究中使用它以後,我不禁好奇:這個新的「深度學習」會不會是一個幻想,抑或上世紀80年代已經研發出來的「人工智慧神經網絡」擴大版?
  • 《神經網絡和深度學習》系列文章四:神經網絡的結構
    使用神經網絡識別手寫數字感知機sigmoid神經元神經網絡的結構用簡單的網絡結構解決手寫數字識別通過梯度下降法學習參數實現我們的網絡來分類數字關於深度學習反向傳播算法是如何工作的改進神經網絡的學習方法神經網絡能夠計算任意函數的視覺證明
  • 深度學習背後的基礎-神經網絡揭秘
    最近, 深度學習三傑獲得了計算機界最重要的圖靈獎, 它們的貢獻都集中在對深度學習的根據神經網絡的理論突破。 今天我們看到的所有和人工智慧有關的偉大成就, 從阿法狗到自動駕駛, 從海量人臉識別到對話機器人, 都可以歸功於人工神經網絡的迅速崛起。那麼對於不了解神經網絡的同學如何入門? 神經網絡的技術為什麼偉大, 又是什麼讓它們這麼多年才姍姍走來?
  • 神經網絡原來是這樣和數學掛鈎的
    如上所示,深度學習作為人工智慧的一種具有代表性的實現方法,取得了很大的成功。那麼,深度學習究竟是什麼技術呢?深度學習裡的「學習」是怎麼做到的呢?本文我們就來解答一下這個疑問,不過在此之前,我們需要先了解一下神經網絡,因為深度學習是以神經網絡為出發點的。談到神經網絡的想法,我們需要從生物學上的神經元(neuron)開始說起。
  • 為什麼深度神經網絡這麼難訓練?
    當然不,下面深入探究使得深度神經網絡訓練困難的原因。仔細研究便會發現,在深度神經網絡中,不同層的學習速度差異很大。後面的層正常學習時,前面的層常常會在訓練中停滯不前,基本上學不到什麼。這種停滯並不是因為運氣不佳,而是有著更根本的原因,並且這些原因和基於梯度的學習技術相關。
  • 深度網絡揭秘之深度網絡背後的數學
    注意:感謝Jung Yi Lin 的幫助,你也可以閱讀中文版的這篇文章。我在GitHub上提供了用於創建本文中使用的可視化的原始碼。了解更多的神經網絡的工作原理。我決定在今年夏天抽出點時間深入的學習一下數學。
  • 理清神經網絡中的數學知識
    導讀:首先我想在這裡聲明的是,本篇文章針對的是一些已經具備一定神經網絡知識的人。意在幫助大家梳理神經網絡中涉及的數學知識,以及理解其物理含義。希望大家讀過之後,可以使大家對於神經網絡有更多角度的理解,幫助大家推導以及理解其中的數學公式。
  • 火爆網絡的《神經網絡與深度學習》,有人把它翻譯成了中文版!
    ,就是《Neural Network and Deep Learning》,中文譯為《神經網絡與深度學習》。這是我個人以為目前最好的神經網絡與機器學習入門資料之一。內容非常淺顯易懂,很多數學密集的區域作者都有提示。全書貫穿的是 MNIST 手寫數字的識別問題,每個模型和改進都有詳細注釋的代碼。非常適合用來入門神經網絡和深度學習!
  • 什麼是深度學習? - 45分鐘理解深度神經網絡和深度學習
    舉個例子,對一系列人的數據分類,分類結果是性別(男或女),如果你提取的特徵是頭髮的顏色,無論分類算法如何,分類效果都不會好;如果你提取的特徵是頭髮的長短,這個特徵就會好很多,但是還是會有錯誤;如果你提取了一個超強特徵,比如染色體的數據,那你的分類基本就不會錯了。這就意味著,特徵需要足夠的經驗去設計,這在數據量越來越大的情況下也越來越困難。於是就出現了端到端的網絡,特徵可以自己去學習。
  • CNN(卷積神經網絡)、RNN(循環神經網絡)、DNN(深度神經網絡)的內部網絡結構有什麼區別?
    從廣義上來說,NN(或是更美的DNN)確實可以認為包含了CNN、RNN這些具體的變種形式。在實際應用中,所謂的深度神經網絡DNN,往往融合了多種已知的結構,包括卷積層或是LSTM單元。這裡的DNN應該特指全連接的神經元結構,並不包含卷積單元或是時間上的關聯。因此,如果一定要將DNN、CNN、RNN等進行對比,也未嘗不可。
  • 為什麼深度神經網絡這麼難訓練?|贈書
    有了這些多層抽象,深度神經網絡似乎可以學習解決複雜的模式識別問題。正如電路示例所體現的那樣,理論研究表明深度神經網絡本質上比淺層神經網絡更強大。如何訓練深度神經網絡呢?本章嘗試使用我們熟悉的學習算法——基於反向傳播的隨機梯度下降,來訓練深度神經網絡。但是,這會產生問題,因為我們的深度神經網絡並不比淺層神經網絡的性能強多少。
  • 吳恩達深度學習課補充教程:交互式demo助你理解神經網絡初始化
    初始化對深度神經網絡的收斂有重要影響。優秀的初始化模式可以加速訓練,但是需要小心操作以避免常見的陷阱。deeplearning.ai 最新上線了 AI Notes 欄目,以長文的形式作為《深度學習專項課程》的補充。其具備交互式的 demo,有助於讀者輕鬆掌握深度學習基礎概念。AI Notes 的第一篇教程就是「初始化神經網絡」。
  • 深度學習筆記4:深度神經網絡的正則化
    作者:魯偉 一個數據科學踐行者的學習日記。
  • 「神經網絡之父」GeoffreyHinton:寒冬之下的孤勇
    Mohamed 將深度神經網絡應用於語音的聲學建模, 在小詞彙量連續語音識別資料庫 TIMIT 上獲得成功,而 2012 年在 ImageNet 上,Hinton 和學生 Alex Krizhevsky 刷新了 image classification 的記錄,在這次競賽中 Alex 所用的結構被稱為 AlexNet)Hinton 為了解釋神經網絡是如何工作的,他以翻譯程序為例,給計算機提供海量的單詞及片段
  • 吳恩達談百度深度學習:為什麼要建中文神經網絡
    人們往往將我們的生物大腦與計算機神經網絡混為一談。你能解釋為什麼這是不準確的?在大腦中的單個神經元是一個非常複雜的機器,即使到了今天我們仍然弄不明白。在計算機神經網絡中的單個「神經元」是一個非常簡單的數學函數,只捕捉了複雜的生物神經元中很小的一部分。這麼說來計算機神經網絡只是模仿人類大腦,但真正的人造神經網絡是比不上我們生物的大腦。
  • (圖解)類神經網絡的復興:深度學習簡史
    機器學習方法有許多種不同的數學模型,包括隨機森林、類神經網絡、感知器…族繁不及備載。此間爆發了兩種不同的機器學習模型浪潮,第一波興盛的模型為「類神經網絡」、又稱人工神經網絡。機器學習一直在嘗試解決現實中複雜的資料切分問題。