- 破解深度學習(基礎(chǔ)篇):模型算法與實現(xiàn)
- 瞿煒 李力 楊潔
- 1548字
- 2024-11-14 15:56:57
1.1 什么是深度學習
深度學習(deep learning,DL),其核心就是“深”。這個“深”主要體現(xiàn)在模型結(jié)構(gòu)上。對于了解神經(jīng)網(wǎng)絡(luò)的讀者來說很好理解,就是將神經(jīng)網(wǎng)絡(luò)的隱藏層加深。對于不太了解的讀者來說,可以簡單理解為“三思而后行”。淺層神經(jīng)網(wǎng)絡(luò)只包含一層隱藏層,相當于瞬時反應(yīng),比如人的條件反射。深度神經(jīng)網(wǎng)絡(luò)則是讓隱藏層變得更多,相當于深度熟慮以后再做出反應(yīng),如圖1-1所示。

圖1-1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意
在上面這類神經(jīng)網(wǎng)絡(luò)的隱藏層中,前一層節(jié)點和后一層的每個節(jié)點之間都有連接,因此被稱為“全連接網(wǎng)絡(luò)”。它是基礎(chǔ)神經(jīng)網(wǎng)絡(luò),除此之外還有很多變體,我們將在后續(xù)章節(jié)中一一介紹。更深的網(wǎng)絡(luò)結(jié)構(gòu)意味著更多的參數(shù)、更大的模型,也意味著更高的算力需求。近些年深度學習的火熱離不開算力的爆發(fā)式增長。從GPU到TPU,從單機單卡訓練到分布式并行式訓練,隨著計算機硬件性能的提升,深度學習的效果越來越接近人類水平,甚至在某些領(lǐng)域已經(jīng)超越了人類的平均水平。
那么,問題來了,深度神經(jīng)網(wǎng)絡(luò)的本質(zhì)是什么?你有沒有思考過這個本源問題呢?
理論上可以證明:一個多隱藏層神經(jīng)網(wǎng)絡(luò)能以任意精度逼近任意給定的連續(xù)函數(shù)。這也被稱為全局逼近定理(universal approximation theory[1] ),其中Universal有人翻譯為“萬能”,充分表明了它的強大。通過兩個不同的視覺表示來說明多層神經(jīng)網(wǎng)絡(luò)作為函數(shù)逼近器的能力,更加形象化地說明了全局逼近定理的概念,如圖1-2所示。
[1] universal approximation theory也譯作“通用近似定理”,從語義上看,“通用近似定理”要比“全局逼近定理”更貼近原意。為了與“術(shù)語在線”保持一致,這里采取了“全局逼近定理”的譯文,請讀者知悉。——作者注

圖1-2 函數(shù)映射變換和疊加簡單函數(shù)逼近復(fù)雜函數(shù)示意
圖1-2(a)展示了從輸入空間到函數(shù)映射空間的變換。左側(cè)的正方形網(wǎng)格表示輸入空間,其中每個小方格可以看作輸入向量的一個成分。右側(cè)的扭曲網(wǎng)格展示了一個高維空間,原本線性獨立的網(wǎng)格被映射成復(fù)雜的曲面,代表神經(jīng)網(wǎng)絡(luò)通過激活函數(shù)和權(quán)重的調(diào)整所進行的非線性變換。sk表示輸入層元素或者特征向量的分量。ξk是映射后的空間中與sk相對應(yīng)的點。
圖1-2(b)上側(cè)展示了如何通過疊加多個簡單函數(shù)來逼近一個復(fù)雜的連續(xù)函數(shù)。其中不同高度的矩形條被用來構(gòu)造出一條近似的曲線。這些矩形條可以看作激活函數(shù)的加權(quán)輸出,神經(jīng)網(wǎng)絡(luò)通過調(diào)整權(quán)重hn(矩形的寬度和高度)來最小化預(yù)測和實際輸出之間的差異。下側(cè)的模型是對應(yīng)的神經(jīng)網(wǎng)絡(luò)實現(xiàn),輸入乘以權(quán)重hn再相加產(chǎn)生輸出。
從另一個角度看,深度神經(jīng)網(wǎng)絡(luò)強大的本質(zhì)還在于,它能通過隱藏層神經(jīng)元的非線性空間變換,使原本非線性不易區(qū)分的數(shù)據(jù)在新的特征空間中變?yōu)榫€性可區(qū)分。如圖1-3所示,左側(cè)的平面上有兩條曲線(藍色和紅色),代表二維空間中的兩類數(shù)據(jù)分布。它們在原始特征空間中是不可區(qū)分的,但通過一系列變換被映射到新的特征空間后,兩種顏色的數(shù)據(jù)分布可以通過一個超平面來分隔。而實現(xiàn)這種變換的秘訣就在于激活函數(shù)(如Sigmoid函數(shù))的使用。關(guān)于這里的數(shù)學證明和代碼實現(xiàn),我們在后續(xù)章節(jié)中都會講到。
總體來說,全局逼近定理的重要性在于,它為使用神經(jīng)網(wǎng)絡(luò)來解決各種各樣的非線性和高維問題提供了理論基礎(chǔ),證明了其在各種領(lǐng)域應(yīng)用的可能性。然而,定理本身并不保證找到這樣的近似解是容易的,也不保證學習過程的效率和收斂性,這些都是實際應(yīng)用中的挑戰(zhàn)。

圖1-3 非線性空間變換示意
本書第2章將帶領(lǐng)大家快速回顧必要的數(shù)學知識,第3章介紹動手編程所需的環(huán)境搭建。在此基礎(chǔ)上,第4章將詳細介紹深度神經(jīng)網(wǎng)絡(luò)的基本原理,第5章講述常見的問題和對策,第6章介紹求解模型參數(shù)的各種梯度下降算法及其變體。許多初學者常見的疑問是,深度神經(jīng)網(wǎng)絡(luò)是如何解決實際問題的?正則化為什么有助于緩解過擬合問題?到底選擇哪種優(yōu)化算法最好?學完這些章節(jié)后,你都會找到答案,對深度神經(jīng)網(wǎng)絡(luò)的理解也將上升一個層次,不僅能知其然,還能知其所以然。