M.1.0 神經網路的數學基礎-前言
註:此部分的公式可以不看,理解思維過程就好,之後章節所有公式和提到的名詞都會有解釋和展示。數學基礎我會穿插進主線內容之中。不會一直寫枯燥的東西。
一直在想如何開始寫神經網路的數學基礎,從大學時學過的《高等數學》到《線性代數》再到《概率論》、《現代幾何》,從小的名詞諸如距離和速度的定義到應用中的奇異值分解再到一些最優化演算法。涵蓋了數學到應用數學的種種,寫出來難免枯燥。所以想縷出來一條簡單的線。但是感覺上還是在應用中學習最好,所以準備寫幾章實踐的東西就寫一點數學的基礎。
唯一能保證的是這裡數學比歷史或政治簡單,畢竟符合常識。
數學基礎準備從現代幾何開始,因為感覺無論從理論上還是從工程上各個領域之中幾何都可謂基礎。舉個簡單的例子來說明各個學科間的聯繫:
從導數和矩陣衍生出的多維偏微分方程:
(這是各項同性介質中的固體場運動方程)
先不要被各種符號唬住了,以後都會慢慢解釋。這是三維笛卡爾坐標下的運動方程。這個方程是場裡面最簡單的方程。但是十分具有代表性,真正的理解起來,可能需要一些現代幾何的知識。
方程中的各種符號可能不熟悉,但是這個代表向量的梯度,這是一個的張量,可能更熟悉的或者說更常見的形式是,對於多維張量來說寫成的形式:
這是在談及梯度下降法之類的演算法中常用到的梯度的概念。一個是三維空間的梯度,一個是多維空間中的梯度,二者沒有什麼本質區別,都是幾何中的基本概念。
運動方程有很多數值方法,最簡單的諸如有限差分,有限單元。基本思路都是將空間劃分、插值進行曲線擬合,並使得得到的三維空間的計算場的泛函最小。泛函推導有興趣可以看下本人其他文章,有具體描述。最終得到最小的過程是求解一個多維向量X:
求解方式包括奇異值分解,共軛梯度,牛頓法,最速下降等一系列方法,理解這些演算法過程中又用到了梯度的概念,可以看到用數學理解問題總會遇到一些相同或相似的概念。
上面求解多維向量X的例子,如果將X看成是神經網路的權值,是不是也可以?就像1.2節所說的,我們可以用曲線擬合的例子去理解神經網路。
或者說我們可以用神經網路的方式去求解運動方程,再聯想到最近的新聞用神經網路做量子力學問題,似乎並不是一個不可理解,或者說是神奇的問題。如1.3章節說的,我們可以用卷積神經網路去做數值演算法中的有限差分,反過來有限差分的方法也可以用於求解神經網路的係數。
說道這裡再將一個波數法:
我們可以將一個向量展開成基函數的形式:
或者聯想一下小波或者傅里葉變換的例子,就會發現我們通常都會將方程展開成一個基函數的過程,這在1.3章中有描述,基函數的靈感應用於神經網路就是卷積神經網路。
所以前幾章中一直試圖用一些奇怪的方式去解釋神經網路。我們感性理解神經網路的過程其實也就是一個思維泛化的過程。
舉一反三並不是目的,而是說我們理學的內容都是觸類旁通的,或者說完全沒有必要去神話神經網路。
有人提問,如果有第谷的數據,現在的機器學習,深度學習有辦法學出開普勒三定律嗎?這是一個很有代表性的認為神經網路無所不能的問題,如前文所言我們都在談數值模擬演算法和機器學習的關係,但一直未提到運動方程,因為很明顯為曲線擬合去理解神經網路的話,機器是無法得到簡潔的約束方程的,而且以目前的演算法結構來說永遠不可能得出三定律,只能去趨近三定律得出的數據。
這其中難免有紕漏或筆誤。望批評指正。
參考書籍:
《流體力學》
《現代幾何學:方法與應用》
《數學中的物理方法》
推薦閱讀:
※神經網路反向傳播的數學原理
※ICML 2017 Best Paper Award論文解讀(1)
TAG:神经网络 | 应用数学 | TensorFlow |