【随笔】深度学习之美——杨家有女初长成,养在深闺人未识
1.從機(jī)器學(xué)習(xí)到深度學(xué)習(xí)
一般來說,知識(shí)在兩個(gè)維度上可以分為四類,如下圖。
在橫向上,對(duì)于可推理的,可以用機(jī)器學(xué)習(xí)的方法完成推理,通過人類的先驗(yàn)知識(shí),把原始數(shù)據(jù)預(yù)處理成各種特征,然后對(duì)特征進(jìn)行分類。然而,分類的效果通常取決于特征的好壞,傳統(tǒng)的機(jī)器學(xué)習(xí)也可以成為“特征工程”。
在縱向上,對(duì)于可統(tǒng)計(jì)但不可推理的,人們發(fā)現(xiàn)可以讓神經(jīng)網(wǎng)絡(luò)自己學(xué)習(xí)如何抓取數(shù)據(jù)的特征,并且效果好像更佳。再后來,網(wǎng)絡(luò)進(jìn)一步加深,將特征進(jìn)一步抽象化,也就是現(xiàn)在說的“深度學(xué)習(xí)”。
但是,機(jī)器自己學(xué)出來的特征無法被人類所理解,為了讓神經(jīng)網(wǎng)絡(luò)的效果更好,只能按照經(jīng)驗(yàn)去調(diào)整網(wǎng)絡(luò)的超參數(shù),也就是“有多少人工,就有多少智能”。
有人批判深度學(xué)習(xí)是一個(gè)“黑箱”,缺乏解釋性。但是這種“端到端”的方法亂,似乎與復(fù)雜性科學(xué)相吻合。人類世界本身就是一個(gè)復(fù)雜的系統(tǒng),各個(gè)問題互相影像,阡陌縱橫,難以用確定的公式來描述,并且現(xiàn)在對(duì)于世界的認(rèn)知可能具有局限性,難以提取普適的公式定理。
2.神經(jīng)網(wǎng)絡(luò)的細(xì)胞——M-P模型
在生物神經(jīng)網(wǎng)絡(luò)中,如果某些神經(jīng)元的電位超過一個(gè)閾值,就會(huì)被激活,接著像與他相連的神經(jīng)元發(fā)送化學(xué)物質(zhì),改變他們的電位,一層層傳播下去。1943年,神經(jīng)生理學(xué)家Warren McCulloch和Walter Pitts,首次實(shí)現(xiàn)用一個(gè)簡(jiǎn)單電路模擬大腦神經(jīng)元的行為(用邏輯值0和1模擬神經(jīng)細(xì)胞的興奮和抑制狀態(tài))。
神經(jīng)元的工作模型存在“激活(1)”和“抑制(0)”兩種狀態(tài)的跳變,那么理想的激活函就應(yīng)該是如圖 6-7(a)所示的階躍函數(shù)。
但事實(shí)上,在實(shí)際使用中,這類函數(shù)具有不光滑、不連續(xù)等眾多不“友好”的特性,使用得并不廣泛。為什么說它“不友好”呢,這是因?yàn)樵谟?xùn)練網(wǎng)絡(luò)權(quán)重時(shí),通常依賴對(duì)某個(gè)權(quán)重求偏導(dǎo)、尋極值,而不光滑、不連續(xù)等通常意味著該函數(shù)無法“連續(xù)可導(dǎo)”。
因此,我們通常用 sigmoid()函數(shù)來代替階躍函數(shù),如圖 6-7(b)所示。無論輸入值(x)的范圍有多大,這個(gè)函數(shù)都可以將輸出擠壓在[0,1]范圍之內(nèi),故此這個(gè)函數(shù)又被稱為“擠壓函數(shù)(Squashing Function )”。
3.深度學(xué)習(xí)的起點(diǎn)——感知機(jī)
1958年,也就是在M-P神經(jīng)元模型發(fā)表15年后,Frank Rosenblatt設(shè)計(jì)了一個(gè)實(shí)驗(yàn),輸入50組圖片,每組兩張一張標(biāo)記向左,一張標(biāo)記向右。每一次練習(xí)都是以左面的輸人神經(jīng)元為開端,先給每個(gè)輸入神經(jīng)元都賦上隨機(jī)的權(quán)重,然后計(jì)算它們的加權(quán)輸人之和。如果加權(quán)和為負(fù)數(shù),則預(yù)測(cè)結(jié)果為 0,否則,預(yù)測(cè)結(jié)果為 1(這里的0或 1,對(duì)應(yīng)于圖片的“左”或“右”,在本質(zhì)上,感知機(jī)實(shí)現(xiàn)的就是一個(gè)二分類)。如果預(yù)測(cè)是正確的,則無須修正權(quán)重;如果預(yù)測(cè)有誤,則用學(xué)習(xí)率(Learning Rate)乘以差錯(cuò)(期望值與實(shí)際值之間的差值),來對(duì)應(yīng)地調(diào)整權(quán)重,如下圖所示。
學(xué)著,學(xué)著,這部感知機(jī)就能“感知”出最佳的連接權(quán)值。然后,對(duì)于一個(gè)全新的圖片,授能何人工干預(yù)的情況下,它能“獨(dú)立”判定出圖片標(biāo)識(shí)為左還是為右。
所謂感知機(jī),其實(shí)就是一個(gè)由兩層神經(jīng)元構(gòu)成的網(wǎng)絡(luò)結(jié)構(gòu),它在輸入層接收外界的輸人,通過激活函數(shù)(含閾值)實(shí)施變換,最后把信號(hào)傳送至輸出層,因此它也被稱為“閾值邏輯單元”。感知機(jī)后來成為許多神經(jīng)網(wǎng)絡(luò)的基礎(chǔ),但客觀來講,它的理論基礎(chǔ)依然建立于皮茨等人提出的“M-P”神經(jīng)元模型。
感知機(jī)雖然可以自己學(xué)習(xí),但是存在兩個(gè)主要問題:
(1)單層神經(jīng)網(wǎng)絡(luò)無法解決不可線性分割的問題,典型的證據(jù)就是不能實(shí)現(xiàn)“異或門電路”功能。
(2)更為嚴(yán)重的問題是,即使使用當(dāng)時(shí)最先進(jìn)的計(jì)算機(jī),也沒有足夠的計(jì)算能力去完成神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練所需的超大的計(jì)算量(比如調(diào)整網(wǎng)絡(luò)中的權(quán)重參數(shù))
在明斯基(1969年獲得圖靈獎(jiǎng))提出這一問題后,深度學(xué)習(xí)沉睡了20年。
4.深度學(xué)習(xí)的復(fù)活——多層網(wǎng)絡(luò)
1975年感知機(jī)“異或”問題被理論界徹底解決,也就是增加神經(jīng)網(wǎng)絡(luò)的層數(shù)。這就好比,人是由細(xì)胞構(gòu)成的,在理論上,我們單純從細(xì)胞這個(gè)層面不斷擴(kuò)大需考察細(xì)胞的數(shù)量、特性等,最終也可以區(qū)分不同的人。但實(shí)際上,我們并不是這么做的,而是通過不斷地抽象,從多個(gè)層面來認(rèn)知不同的人。比如,先從細(xì)胞層面構(gòu)成器官,再從器官層面,構(gòu)成不同的個(gè)人。
為了優(yōu)化模型效果,我們定義損失函數(shù) f(x) 來表述預(yù)測(cè)值和真實(shí)值的誤差,優(yōu)化指的是改變 x 以最小化或最大化某個(gè)函數(shù) f(x) 的任務(wù)。 我們通常以最小化 f(x) 指代大多數(shù)最優(yōu)化問題。最大化可經(jīng)由最小化算法最小化 -f(x) 來實(shí)現(xiàn)。
對(duì)于函數(shù)的某個(gè)特定點(diǎn),它的梯度表示從該點(diǎn)出發(fā),函數(shù)值增長(zhǎng)最為迅猛的方向,梯度的反方向就是函數(shù)值下降最快的方向。如果函數(shù)每次都沿著梯度遞減的方向走,自然會(huì)走到函數(shù)值最小值附近。
下面以 f(x)=x^2 為例,f’(x)=2x。以 x=10 作為初始值,學(xué)習(xí)率 n=0.2。經(jīng)過第一次迭代后,x=10-0.2×2=6,迭代曲線如下圖:
如果學(xué)習(xí)率太小,可能迭代很久都不達(dá)到最小值點(diǎn),相反,如果太大,可能產(chǎn)生震蕩,如下圖:
f(x)=x^2 的輸入只有一個(gè)變量,如果神經(jīng)網(wǎng)絡(luò)的輸入層有多個(gè)變量,其構(gòu)成一組輸入向量,此時(shí)損失函數(shù)如下:
其中
和上面一樣,我們要在多維空間上實(shí)現(xiàn)最快遞減,如下圖:
我們知道曲面上方向?qū)?shù)的最大值的方向就代表了梯度的方向,因此我們?cè)谧鎏荻认陆档臅r(shí)候,應(yīng)該是沿著梯度的反方向進(jìn)行權(quán)重的更新,可以有效的找到全局的最優(yōu)解。權(quán)重更新過程如下:
上述即批量梯度下降,其在更新權(quán)重時(shí),使用所有的樣本,也就是說每個(gè)樣本都參與調(diào)整權(quán)重,這樣可以達(dá)到全局最優(yōu),但是時(shí)間也會(huì)很長(zhǎng),同時(shí)容易陷入局部最優(yōu)解。更新公式如下:
隨機(jī)梯度下降:在每次更新時(shí)用1個(gè)樣本,隨機(jī)也就是用樣本中的一個(gè)例子近似所有的樣本,以此調(diào)整權(quán)重。相比于批量梯度,這樣的方法更快收斂,雖然不是全局最優(yōu),但是大的整體的方向是向全局最優(yōu)解的,而且有助于逃逸出局部最小值點(diǎn)。更新公式如下:
小批量隨機(jī)梯度下降:在每次更新時(shí)用b個(gè)樣本來近似全部的,在深度學(xué)習(xí)中,這種方法用的是最多的。因?yàn)樾∨坎粌H可以反映樣本的一個(gè)分布情況,而且收斂也不會(huì)很慢,中庸之道。
5.深度學(xué)習(xí)的突破——BP算法
在19世紀(jì)70年代,人工神經(jīng)網(wǎng)絡(luò)面臨一個(gè)重大的挑戰(zhàn)性問題:增加神經(jīng)網(wǎng)絡(luò)的層數(shù)雖然可為其提供更大的靈活性,讓網(wǎng)絡(luò)具有更強(qiáng)的表征能力,也就是說,能解決的問題更多,但隨之而來的數(shù)量龐大的網(wǎng)絡(luò)參數(shù)的訓(xùn)練,一直是制約多層神經(jīng)網(wǎng)絡(luò)發(fā)展的一個(gè)重要瓶頸。
1986年由杰弗里·辛頓(Geoffirey Hinton)和大衛(wèi)·魯姆哈特(David Rumelhart)等人提出BP算法,其論文“借助反向傳播算法的學(xué)習(xí)表征(Leaming Representations by Back-propagating errors)發(fā)表在著名學(xué)術(shù)期刊Nature(自然)上。
該論文首次系統(tǒng)而簡(jiǎn)潔地闡述了反向傳播算法在神經(jīng)網(wǎng)絡(luò)模型上的應(yīng)用。BP算法把網(wǎng)絡(luò)權(quán)值糾錯(cuò)的運(yùn)算量,從原來的與神經(jīng)元數(shù)目的平方成正比,下降到只和神經(jīng)元數(shù)目本身成正比。
6.深度學(xué)習(xí)的崛起——卷積神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)的應(yīng)用對(duì)象是全連接神經(jīng)網(wǎng)絡(luò),隨著梯度的逐層減小,導(dǎo)致它對(duì)網(wǎng)線權(quán)值的調(diào)整作用越來越小,故此,BP算法多用于淺層網(wǎng)絡(luò)結(jié)構(gòu)(通常小7層),這就限制了BP 算法的數(shù)據(jù)表征能力,從而也就限制了BP的性能限。
1968 年,神經(jīng)生物學(xué)家大衛(wèi)·休伯爾(David Hunter Hubel)與托斯坦·威澤爾(Torsten N. Wiesel)在研究動(dòng)物視覺信息處理時(shí),有兩個(gè)重要而有趣的發(fā)現(xiàn):
(1)對(duì)于視覺的編碼,動(dòng)物大腦皮層的神經(jīng)元實(shí)際上是存在局部感受域的,具體來說,它們是局部敏感的且具有方向選擇性。
(2)動(dòng)物大腦皮層是分級(jí)、分層處理信息的。在大腦的初級(jí)視覺皮層中存在幾種細(xì)胞:簡(jiǎn)單細(xì)胞、復(fù)雜細(xì)胞和超復(fù)雜細(xì)胞,這些不同類型的細(xì)胞承擔(dān)著不同抽象層次的視覺感知功能。
神而洞察的專注可能要?jiǎng)龠^廣而膚淺的觀察。
受該理念的啟發(fā),1980年日本學(xué)者福島邦彥( Fukushima )提出了神經(jīng)認(rèn)知機(jī)( Neocognitron,亦譯為“新識(shí)別機(jī)”)模型,這是一個(gè)使用無監(jiān)督學(xué)習(xí)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型,其實(shí)也就是卷積神經(jīng)網(wǎng)絡(luò)的雛形。
自此之后,很多計(jì)算機(jī)科學(xué)家先后對(duì)神經(jīng)認(rèn)知機(jī)做了深人研究和改進(jìn),但效果卻不盡如人意。直到 1990 年,在 AT&T貝爾實(shí)驗(yàn)室工作的 Yamn LeCun等人,把有監(jiān)督的反向傳播(BP)算法應(yīng)用于福島邦彥等人提出的架構(gòu),從而奠定了現(xiàn)代CNN的結(jié)構(gòu)。
參考文獻(xiàn):
[1]《深度學(xué)習(xí)之美:AI時(shí)代的數(shù)據(jù)處理與最佳實(shí)踐》
[2]《動(dòng)手學(xué)深度學(xué)習(xí)》
[3]《tensorflow實(shí)戰(zhàn)google深度框架》
[4] 如何理解隨機(jī)梯度下降(stochastic gradient descent,SGD)? - Evan的回答 - 知乎
https://www.zhihu.com/question/264189719/answer/291167114
猜你喜歡:👇🏻
?【隨筆】卷積神經(jīng)網(wǎng)絡(luò)中的卷積怎么卷?
?【隨筆】激活函數(shù)是怎樣一種存在?
?【隨筆】通用近似定理
總結(jié)
以上是生活随笔為你收集整理的【随笔】深度学习之美——杨家有女初长成,养在深闺人未识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据分析sql面试必会6题经典_师兄大厂
- 下一篇: 梳理百年深度学习发展史-七月在线机器学习