理清神經網絡中的數學知識

2020-11-22 雷鋒網

雷鋒網按:本文原作者Aaron Yang,原載於知乎專欄。雷鋒網(公眾號:雷鋒網)已獲得作者授權。

導讀:首先我想在這裡聲明的是,本篇文章針對的是一些已經具備一定神經網絡知識的人。意在幫助大家梳理神經網絡中涉及的數學知識,以及理解其物理含義。希望大家讀過之後,可以使大家對於神經網絡有更多角度的理解,幫助大家推導以及理解其中的數學公式。(本篇文章在敘述方式上多以白話為主,意在讓大多數人有形象的概念,所以在嚴謹性與通俗性上難免會出現失衡問題,希望大家理解。分享的目的即分享,非教授!)

1. 線性代數

矩陣乘法我更喜歡稱作線性轉換。一個矩陣乘以向量中,矩陣相當於一個轉換函數,而向量是一個輸入,已知了輸入和函數,我們就可以知道輸出。這裡需要強調的是,向量共有兩種形式,一種為列向量,一種為行向量。在默認情況下,向量是指列向量。大部分的國內教材中,並沒有特意提到這一點。很多人接觸到編寫代碼時,都是以行向量的形式開始學習,導致後續有很多概念產生混淆。在本文中,若無特殊說明,向量的形式默認為列向量。

首先我們先看以下的 2 道熱身題:

1. 假設讀者並不知道矩陣乘法的運算準則,能否在假想的幾何空間中,快速地反應出答案是多少呢?給大家 30s。(記住,不可以通過運算法則來進行計算)

2. 同樣地,利用假想的幾何空間想像,是否可以立即解答出矩陣是什麼?

如果讀者可以快速解答出上面的問題,那麼恭喜您,您已經了解了線性代數空間轉換的本質;如果沒有解答出,那就是我寫這篇文章的意義。

先拋開上面兩道題,這裡來介紹一下矩陣。

線性代數與空間幾何是存在緊密的聯繫的。基本所有的線性代數都有其對應的幾何表示方法。理解幾何,是理解線性代數的核心所在。以二維空間作為例子,與是二維空間的單位基向量。任何的向量都是由這兩個單位基向量線性組合而成,並表示出來,例如。

現在,我們來看一張動圖:

更多動圖的信息請關注 3Blue1Brown主頁,裡面有大量衝破你數學世界觀的知識。3Blue1Brown 還有視頻集。B 站有做了很贊的漢化,不過更鼓勵大家去看英文原版視頻。
YouTube 視頻集連結
B 站漢化視頻集連結

在這張動圖的開始的階段,綠色向量代表 ,而紅色向量代表 。我們盯住這兩個基向量,觀察到在動圖的末尾,這兩個向量分別落在了 與 ,那麼,這兩個基向量組成的坐標系也隨著這兩個基向量的變換而線性變換,形成了動圖末尾中藍色直線組成的二維坐標。假設經歷了上圖的坐標變換,原來的向量 ,現在到了何處呢?

通過仔細觀察動圖 (一點一點數格子) 我們可以看到,原來的向量 變換為向量 。


我們來繼續看看表示方法:

原來: ,變換後: 。

這其中的區別就是基向量不一樣了,而線性組合的係數 與 保持固定不變。


我們把變換後的基向量放在一起,變為矩陣:

這就是矩陣的由來,其實質就是將坐標整體線性變換。向量 在經過線性變換 變為向量 表示形式為:

(注意:這裡的表示順序為變換矩陣在左,向量為列向量在右側。)


我們在來看另一幅動圖來實踐一下,找到這幅動圖的線性變換矩陣是什麼?

根據上面的方法,鎖定綠色與紅色基向量末尾的位置,這幅動圖的線性變換矩陣為 :

而其原來所有坐標系上的向量都隨之變換發生改變。


現在再回頭看看上面的兩道題?是否能夠通過想像的空間去快速找到答案?


上面我們講的是方陣,那麼如果不是方陣呢?比如一個 的矩陣,或者一個 的矩陣呢? (以下我們只用中括號來代表具體矩陣的形狀,具體數字並不重要。)

我們來以 矩陣形式舉例,如下所示:

的矩陣的物理含義就是把一個向量從二維表示方法轉換到三維表示。而轉換矩陣的每一列就代表:將二維空間對應的基向量轉換到三維的樣子。將這種變換規律映射到其他變換的二維向量;同樣地, 矩陣物理含義就是將一個向量從三維表示轉換成二維表示。轉換矩陣每一列代表:三維空間的基向量映射到二維空間之後的樣子。將這種變換規律映射到其他變換的三維向量。


現在,我們再進行下一步操作。如果我們假設讓一個 4 維向量,先轉化為 3 維向量,在轉化為二維向量,那麼它的形式是什麼樣子的呢?

第一步:                 第二步:


將兩步合併到一起為:

通過以上形式,我們可以發現如果將一個列向量經過多次線性轉換,他的順序應該是從右至左的順序。這就是標準的線性代數書中所講到的連續線性變換的形式,從右至左也是線性代數數學家習慣的順序。

但是,在很多神經網絡包括深度學習網絡的課程中我們可以看到,更符合我們閱讀的順序是將一個輸入數據拿進來之後經過一次矩陣轉換,從左至右得到輸出結果。他們之間有什麼聯繫呢?

通過觀察我們可以知道,這其中最大的原因在於數據的形式,也就是上文中提到的每一個樣本表示方法是列向量還是行向量。如果是列向量,變換的順序就是從右至左;如果是行向量,變換順序就是從左至右。而相應的矩陣形狀也發生反轉

    對比    


神經網絡中,大家都希望最終的形式為矩陣乘以矩陣,不希望中間有任何向量的存在,這樣顯得更酷,實際上計算也更快。這很簡單,現在我們只差最後一步。當我們把所有數據放在一起,還是如上方有 個 維行向量形式的數據,我們將這些行向量數據堆疊在一起形成 的矩陣,經過多個矩陣的變換之後輸出為一個 的矩陣。這樣,在計算過程中,全部為不同形狀的矩陣。當然,大家也可以想想如果是列向量該是什麼形式。

以上內容想說明的就是,無論是上方哪一種形式,都是正確的。關鍵看輸入的數據是什麼形式,形式決定了數據變換的順序,以及設計矩陣的形狀。

通過以上的形式,其實神經網絡前向傳導向量在不同維度間的連續線性變換及其相似。唯一不同的一點就在於,在每次線性轉換後,神經網絡可以加一個非線性激活函數,使線性轉換變為非線性轉換。實際上,也就這麼點區別。而非線性激活函數並不會改變數據的形狀,對後續矩陣乘法不造成任何影響。


小結一下上面線性代數部分我們發現了什麼:

  1. 線性代數中的向量默認形式是列向量

  2. 矩陣的實質就是將坐標整體線性變換。

  3. 矩陣的組合以列向量組合在一起,其代表各自的基向量變換之後的新向量是什麼。

  4. 矩陣與向量相乘,矩陣與矩陣相乘,順序很重要,其決定權在於實際問題中樣本的表達形式,是行向量還是列向量。

  5. 神經網絡的前向傳導與線性代數中連續對於向量的線性變換過程極其相似,只是在層與層之間多了非線性激活函數。

神經網絡求的是什麼?其實就是上方這麼多矩陣中每一個位置的數字是多少?這就是我們最終的目的。那麼如何求?這就需要微積分中鏈式法則的知識了。

2. 微積分

鏈式反向推導之所以很頭大,很大原因在於它將微積分求導和矩陣知識揉在一起。我儘量用儘量少的公式,記住極少的關鍵點,幫助大家去順利的推導神經網絡中運用到的鏈式推導。這樣對於公司的面試,還是實際科研過程中均不會發蒙。

我們都知道,神經網絡的目的是訓練網絡中的參數,即矩陣中每一個位置的數值。我們通過構建對於這些參數的損失函數,最終找到損失函數 最小值時的參數。最初的想法就是高中學習的求導的思路,只要導數等於 (這裡涉及矩陣求導),就找到了極值,也就找到了答案。但是由於網絡巨大(輸入數據維度大,每層網絡節點多,網絡層數多),計算資源消耗的也巨大(涉及矩陣求逆),以現在的設備,我們並不能一步到位的求出最小值,這也是為什麼我們在神經網絡中使用梯度下降法一步一步逼近最小值的原因。其公式如下:

這就是梯度下降的公式。 就是我們要所求的參數,它是一個轉換矩陣。而 是一個標量,即一個數字(以下用 來表示)。 是通過迭代一步一步優化出來的,在初始的時候隨機賦值。所以我們的目標就是搞清楚 是如何求出來的。

細化在神經網絡每一層,目標就是:

目標明確了,那麼我們是如何牽扯到鏈式求導呢?

先上圖,一個前饋神經網絡如下所示:

這裡展示了一個非常簡單的三層神經網絡,更多的層次大家可以開腦洞。圖中的的公式大家應該已經非常熟悉。 代表神將網絡每層的輸出值,是一個向量(一般是行向量);第一層的輸出值就是輸入值 ; 代表線性輸出; 代表激活函數; 為最終的輸出值;每一個字符的上表代表其層數。

這裡需要特別注意地是對於不同變量的上標層數對應關係一定不要弄混淆。比如 是神經網絡第 層與第 層之間的轉換矩陣,即 為第 層與第 層的轉換矩陣。

接下來,主角登場。我們要想知道神經網絡如何反向推導,只需記住這裡的唯一定義的變量 即可。

定義:

在一些翻譯的變量名中叫做 「殘差」。但是它是什麼名字並不重要,但建議不要根據這個名字去揣測它的物理含義。如果想明白了那當然很好,但是若想不透徹很容易與其他概念弄混淆,最後雲裡霧裡地以為自己懂了,但是自己推的時候仍然會錯。總而言之,只把它當做一個定義就好,背下來了就是了。而且,在鏈式推導中,只需要記住這個,其他的都好推。(注意: 也是向量,其形狀與 一致。)

我們的目標:逐層計算出

將目標展開:

我們看到,我們把目標分為前後兩部分。

第一部分,根據 的定義可得到

第二部分,根據 的定義可以得到

所以,我們的目標 或者

到這裡,我們很輕鬆地導出了我們目標的通項公式,是不是很簡單?就是做了個分解,然後分別求導,再組合在一起,就可以了。在這裡,我們可以得到另外一條很有意思的結論,那就是我們求每一層轉換矩陣的導數(參數的導數)與最終目標函數 的具體形式無關,這點是不是很神奇?

(注意:我們需要驗證分解的兩項是否可以進行矩陣乘法運算,並且最終矩陣的形狀符合規定。這裡又與變量自身的形狀有關。我們觀察發現,在分解的第一部分中,最後一項多出了一個字符 ,這裡代表轉置。這個是矩陣求導的法則,通過最後公式的法則也可以驗證。這部分有些複雜。但是,我們可以完全繞過去這樣複雜的關係。這裡有個小技巧:若記不住這兩項矩陣相乘誰在前,誰在後,誰轉置,誰不動。只要記住 與 的形狀是一致的,在求出 與 之後,根據矩陣乘法的法則,隨便試出最後相乘的形狀符合 的形狀即可,很快就可以試出正確答案。)

所謂反向推導,就是根據後一項的結果去計算前一項。我們 「通項公式」 搞到手了,那麼最後一層的 「殘差」 是多少呢?

我們用 來代表最後一層。根據 的公式,我們可以依然進行如下分解:

從這個公式中我們可以看出我們將最後一層 「殘差」 又分解為兩部分。下面,我們分別看看在一般的回歸問題與二分類問題中 到底長什麼樣子。

1. 回歸問題

損失函數:

求解分解後的第一部分:因為在回歸問題中,最後一層是沒有激活函數的,或者說激活函數為 乘以其輸入值。所以,激活函數的導數就為 。則有:

求解分解後的第二部分:

所以最終,我們求得:

2. 二分類問題

損失函數:

求解分解後的第一部分:二分類問題中,激活函數 ,其導數為 。則有:

求解分解後的第二部分:

所以最終,我們求得:

我們驚奇地發現,在對於回歸問題與二分類問題中,雖然損失函數與最後一層的激活函數均不一樣,但是其結果居然是同一個值。這是否是巧合?也許只有深入了解為何這樣設計損失函數與激活函數之後,我們才會知道答案。大家還可以想想,多分類問題的結果呢?

上述的推導中,我們也可以得到結論:在最後一層 「殘差」 中,是與損失函數 和最後一層的激活函數 兩項有關的。

小結一下神經網絡部分的一些要點:

  1. 記住前饋網絡中各個變量上標層數表達方式。各個教科書上表達可能會存在不同,一定要認真觀察清楚。

  2. 牢記 的定義,是推導整個鏈式推導中最重要的一環

  3. 在神經網絡 層的鏈式推導中,我們的目標是 ,將其利用帶有 項進行展開;而在最後一層 層中我們主要推導的目標是 ,利用其定義將其展開。

  4. 在經典的回歸與二分類問題中,其 結果完全相同,但計算過程卻完全不同

總結

希望經過上述自己的梳理,大家對於神經網絡中涉及到的數學知識有了更進一步形象化的了解。當然,本文中加入大量自己的理解,若有不同意見,歡迎大家來共享 idea。

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 神經網絡中容易被忽視的基礎知識
    這次主要講解的內容有:神經元下面圖表的左邊展示了一個生物學的神經元,右邊展示了一個常用的數學模型。乍一看還是有點相似的,事實上也是,人工神經網絡中的神經元也有受到生物神經元的啟發。總結要點:在生物的神經元(也就是左圖)中,樹突將信號傳遞到細胞體,信號在細胞體中相加。
  • 神經網絡原來是這樣和數學掛鈎的
    從生物學紮實的研究成果中,我們可以得到以下關於構成大腦的神經元知識。人的大腦是由多個神經元互相連接形成網絡而構成的。也就是說,一個神經元從其他神經元接收信號,也向其他神經元發出信號。大腦就是根據這個網絡上的信號的流動來處理各種各樣的信息的。
  • 高考精華版,高中數學知識結構框圖,理清你的數學學科思路導圖
    高中數學的重要性不言而喻,但是很多同學數學依舊對學科的重視度不夠,經常考試不及格,甚至考幾十分的大佬也常有!很多同學都是談數學色變,但高中數學其實沒有你想像的那麼可怕和難學,你只是在為自己的懶惰找藉口。連基本公式都能背錯,還要一味給數學抹黑給。
  • 「符號數學」終於向「神經網絡」屈服:AI 學會數學證明了?
    Facebook人工智慧研究小組工作的計算機科學家,公開了第一個成功用神經網絡解決符號數學問題的方案 他們將數學表達式轉換為樹狀結構,然後訓練網絡在符號當中找到有關解的線索 這種方法可以充當數學家的助手,通過識別已知猜想中的模式為一個之前存在的問題提供幫助 更加令人興奮的是,這種神經網絡有可能幫助揭開神經網絡本身黑匣子的秘密
  • 深度神經網絡中的數學,對你來說會不會太難?
    編者按:這是一篇講解深度學習數學的系列文章,但並非是基礎數學,還涉及到了拓撲與測度論等內容。本文為該系列文章的第一部分,機器之心會持續把後續內容全部放出。更規範的公式,請查看原文,連結在文末。本文為第一部分。
  • 神經網絡還能求解高級數學方程?
    通過開發一種將複雜數學表達式表示為一種語言的新方法,然後將解決方案視為序列到序列的神經網絡的翻譯問題,我們構建了一個在解決積分問題以及一階和二階微分方程方面都優於傳統計算系統的系統。以前,這類問題被認為是深度學習模型所無法企及的,因為求解複雜方程需要精度而不是近似值。
  • 什麼是人工神經網絡(ANN)?
    人工神經元的結構,人工神經網絡的基本組成部分(來源:維基百科)從本質上講,這聽起來像是一個非常瑣碎的數學運算。但是,當您將成千上萬的神經元多層放置並堆疊在一起時,您將獲得一個人工神經網絡,可以執行非常複雜的任務,例如對圖像進行分類或識別語音。
  • 簡單圖神經網絡(GNN)的基礎知識
    在社交網絡分析等一些應用中,圖神經網絡已經得到了廣泛的應用。新加坡科技研究局(A*STAR)的研究者 Rishabh Anand 近日通過圖解的方式介紹了圖與圖神經網絡的基本概念,或許能幫助初學者更直觀地理解圖神經網絡的內涵和價值。
  • ICML 2019 | 神經網絡的可解釋性,從經驗主義到數學建模
    但是,尋找適當的數學工具去建模深度神經網絡表達能力和訓練能力,將基於經驗主義的調參式深度學習,逐漸過渡為基於一些評測指標定量指導的深度學習,是新一代人工智慧需要面對的課題,也是在當前深度學習渾渾噩噩的大背景中的一些新的希望。
  • 人工神經網絡及其應用
    半個世紀後,生理學家 W.s.McCulloch和數學家W.A.Pitts於1943年發表了一篇神經網絡方面的著名文章。在這篇文章中,他們在已知的神經細胞生物學基礎上從信息處理的角度出發,提出形式神經元的數學模型,稱為M-P模型。該模型為開創神經學科理論研究的新時代。在1949年,心理學家Donala O.Hebb出版一本為《行為構成》的書,在書中他建立了現在被人們稱為Hebb算法的連接訓練算法。
  • 數學公式、可視化圖齊齊上陣,神經網絡如何一步步走向最優化...
    ,Deep Learning Demystified 編輯、數據科學家 Harsha Bommana 本次接著從優化的角度,結合數學方式和可視化圖,帶大家以「看得見」的方式來了解神經網絡如何一步步找到最小化的損失值,並最終實現最優化。
  • 數學公式、可視化圖上陣,神經網絡如何一步步走向最優化看得見!
    雷鋒網 AI 科技評論按:繼在《要做好深度學習任務,不妨先在損失函數上「做好文章」》一文中為大家深入淺出地介紹了損失函數的相關知識後,Deep Learning Demystified 編輯、數據科學家 Harsha Bommana 本次接著從優化的角度,結合數學方式和可視化圖,帶大家以「看得見」的方式來了解神經網絡如何一步步找到最小化的損失值,並最終實現最優化。
  • 刷臉背後:卷積神經網絡的數學原理
    計算機視覺技術在日常生活中有著非常普遍的應用:發朋友圈之前自動修圖、網上購物時刷臉支付……在這一系列成功的應用背後,卷積神經網絡功不可沒。本文將介紹卷積神經網絡背後的數學原理。
  • 人工神經網絡的本質(物理或數學意義)是什麼?
    從數學的角度講,人工神經網絡的本質從機器學習的過程可理解為通過參數求最佳解得過程。同樣也是一個負反饋的過程,以最簡單的負反饋神經網絡bp神經網絡(back propagation)為例,其本質可以形象的理解為這樣一個過程:我們假設這個剛搭建的好的機器人叫
  • 用概率統計方法編程實現人工神經網絡模型的技術
    還只是雛形,最應該吸引的是理工科背景的人,因為畢竟是人工,最大的控制理論與方法要求是數學背景。人工智慧技術是用概率統計方法編程實現人工神經網絡模型的技術,這項技術越先進,神經網絡算法的能力越強大。目前最優的理想結果是人工神經網絡模型能夠模擬人腦進行學習與運用。
  • 研究不同神經元在人工神經網絡中的作用
    德國數字轉型技術與管理研究所和機械工程信息管理研究所的研究人員最近進行了一項研究,旨在更好地了解神經網絡決策過程的機制。他們在arXiv上發表的一篇論文中概述了他們的發現,闡明了單個神經元和不同神經元群在這些網絡中的作用。
  • 高清圖解:神經網絡、機器學習、數據科學一網打盡|附PDF
    今天,新智元要為大家推薦一個超實用、顏值超高的神經網絡+機器學習+數據科學和Python的完全圖解,文末附有高清PDF版連結,支持下載、列印,推薦大家可以做成滑鼠墊、桌布,或者印成手冊等隨手攜帶,隨時翻看。
  • 人工智慧算法:訓練神經網絡中的批量歸一化(附代碼)
    在訓練期間利用該組數據集來評估網絡在各種迭代中的性能。這種數學轉換的結果被用作當前層的激活,並用作下一層的輸入。在密集層中,偏置分量設置為false。偏差的省略是由於激活標準化過程中由於平均減法而發生的常數值抵消的結果。在下一個代碼段中,我們設置並指定優化算法來訓練實現的神經網絡,以及損失函數和超參數(例如學習率和曆元數)。
  • BP神經網絡
    BP神經網絡原理 人工神經網絡是一種數學模型,它具有人類神經網絡的一些特質,並且有自學習的能力,一般由MATLAB軟體來實現。與傳統統計方法不同之處是神經網絡是通過訓練實驗來找到解決問題的路徑。
  • 神經網絡如何完成表徵?
    眾所周知,它們在解決有關泛化性方面的複雜任務中表現良好。從數學上講,他們非常擅長近似任何的複雜函數。讓我們形象化地理解這種近似概念,而不是前向和後向傳播方法中的最小化預測誤差。假設你了解前向和後向傳播的一點基礎,其旨在藉助梯度和網絡中的錯誤傳播來近似函數。讓我們通過另一種視覺解釋來理解神經網絡的近似能力。其中涉及基礎數學和圖形分析。