[閱讀筆記]
本文取自:今泉允聡《深層学習の原理に迫る》第三章
深度學習中,我們知道神經網絡(neural networks)在擬合非線性函數的表現非常好,但在神經網絡被廣泛運用之前,有甚麼方法可以用來擬合非線性函數呢?
其中一種被常用的,是 傅立葉轉換(Fourier transformation)。這是一種把不同周期、振幅等的三角函數(函數圖像為波型)相加減,來擬合非線性函數的方法。用愈多的三角函數來擬合非線型函數,可以擬合得愈像,亦可擬合多種不同類型的非線型函數。
更適用於數據分析的方法,則有 kernel 方法 。這是指:如下圖那樣(若簡化為二維曲線),通過並攏多個「山型」函數,來擬合觀測數據所顯現的非線性曲線。通過改變「山」的大小、密集程度,亦能夠準確地擬合觀測數據。與此類似,若數據的雜訊較大,則可以利用高斯過程回歸法等等的方法。

既然現在我們都用神經網絡,為甚麼要還要理解這些方法?最近讀到的這本書《深層学習の原理に迫る》從數學角度出發(但不用數學公式,而主要以文字講解),嘗試解釋為何深度學習有如此高的性能(亦解救了很想知道當中原理卻是數學白痴的人aka我)。當中一個原因就是,其實 傅立葉轉換和 kernel 法,本質上與只有兩層的神經網絡並無差異 。若神經網絡的第一層神經元是各種三角函數,第二層神經元負責第一層神經元的加減運算,那就等同於上述的這些所謂舊時代方法了。
而重要的是,神經網絡的早期數學研究指出,有兩層的神經網絡,只要每層神經元有無限多個參數,只要是連續的函數,都可以近似擬合(稱為普遍近似定理,universal approximation theorem)。因此早期研究一直認為,神經網絡有兩層就可以了,再增添更多層也不會提高彈性或效能。研究近似誤差速率(approximation error rate)的研究,亦有類似結論,大家都認為:兩層就夠了。
結果,我們知道現在那些效能卓越的神經網絡,許多都是多層而且具有巨量參數神經元的。因此,從本質上而言,深度學習與以往非線性函數擬合方法的不同之處,其中一項就是 多於兩層的神經網絡 所產生令人意想不到的預測效果。

Leave a Reply