1 背景
《人工智能间聊,一種現(xiàn)代的方法》一書中定義,人工智能是類人行為抵拘,類人思考哎榴,理性思考,理性行動僵蛛。人工智能[1]是一門綜合學(xué)科尚蝌,涵蓋哲學(xué)、數(shù)學(xué)充尉、經(jīng)濟學(xué)飘言、神經(jīng)科學(xué)、心理學(xué)驼侠。計算機科學(xué)姿鸿、控制論、語言學(xué)等等倒源。圖1為人工智能的應(yīng)用概覽苛预。人工智能目前的應(yīng)用主要有搜索引擎(Google)、推薦系統(tǒng)(YouTube笋熬、Amazon热某、天貓)、語音識別(Siri胳螟、Alexa)昔馋、自動駕駛(Tesla)、策略游戲(AlphaGo糖耸、Chess)等绒极。
人工智能是一門綜合學(xué)科,涵蓋面極廣蔬捷,機器學(xué)習(xí)是其中的一個分支,而深度學(xué)習(xí)又是機器學(xué)習(xí)在神經(jīng)網(wǎng)絡(luò)方向的分支榔袋,三者關(guān)系如圖2所示周拐。
機器學(xué)習(xí)(Machine Learning, ML)[2]是一門多領(lǐng)域交叉學(xué)科凰兑,涉及概率論妥粟、統(tǒng)計學(xué)、逼近論吏够、凸分析勾给、算法復(fù)雜度理論等多門學(xué)科滩报。機器學(xué)習(xí)的過程就是一個探索學(xué)習(xí)并構(gòu)造算法的過程,且算法來源于數(shù)據(jù)并能根據(jù)輸入數(shù)據(jù)做出預(yù)測播急。機器學(xué)習(xí)算法就是一類從數(shù)據(jù)中自動獲得規(guī)律,并利用規(guī)律對未知數(shù)據(jù)進行預(yù)測的算法。
深度學(xué)習(xí)[3]是機器學(xué)習(xí)中一種基于對數(shù)據(jù)進行表征學(xué)習(xí)的方法绍些。深度學(xué)習(xí)是機器學(xué)習(xí)研究中的一個新的領(lǐng)域膘滨,其動機在于建立、模擬人腦進行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)捶枢,它模仿人腦的機制來解釋數(shù)據(jù)握截,例如圖像,聲音和文本[4]烂叔。
2 機器學(xué)習(xí)
2.1 機器學(xué)分類
從不同的方面谨胞,機器學(xué)習(xí)有不同的分類。
- 從輸出空間看蒜鸡,機器學(xué)習(xí)問題可以分為二分類胯努、多分類和回歸問題;
- 從數(shù)據(jù)空間角度可以分為監(jiān)督學(xué)習(xí)(Supervised learning)术瓮、半監(jiān)督學(xué)習(xí)(Semi-supervised learning)康聂、無監(jiān)督學(xué)習(xí)(Unsupervised learning)和增強學(xué)習(xí)(Reinforcement learning );
- 從原型角度可分為批量學(xué)習(xí)(Batch learning)胞四、在線學(xué)習(xí)(Online learning)和主動學(xué)習(xí)(Active Learning)恬汁;
- 從數(shù)據(jù)的輸入特征可分為具體特征學(xué)習(xí)(Concrete Features)、原始特征學(xué)習(xí)(Raw Features)和抽象特征學(xué)習(xí)(Abstract Features)辜伟。
2.2 機器學(xué)習(xí)流程
傳統(tǒng)機器學(xué)習(xí)[5]需要用戶手動抽取或者設(shè)計特征氓侧,通常只有用戶對特定的行業(yè)數(shù)據(jù)有深刻的理解,才能選擇或者設(shè)計出有效的特征导狡,這個過程耗時費力约巷。機器學(xué)習(xí)的特點如下:
- 手動設(shè)計特征,耗時費力且要求用戶對特定的行業(yè)數(shù)據(jù)有深刻的理解旱捧;
- 傳統(tǒng)機器學(xué)習(xí)在并行處理以及大批量數(shù)據(jù)時独郎,存在很難逾越的鴻溝。如線性回歸枚赡,當(dāng)特征多氓癌、數(shù)據(jù)也多時,時間復(fù)雜度高贫橙,涉及大量數(shù)據(jù)計算贪婉,耗費時間長。
- 可解釋性強卢肃,尤其基于樹形結(jié)構(gòu)的模型疲迂。
深度學(xué)習(xí)才顿,屏蔽了特征工程過程,用戶輸入數(shù)據(jù)尤蒿,模型自動學(xué)習(xí)郑气,輸出模型,最終使用訓(xùn)練的模型預(yù)測就行优质,對特定行業(yè)工程師的依賴少竣贪。
- 自動學(xué)習(xí)特征;
- 可解釋性弱巩螃,但效果好演怎;
- 更適合基于大數(shù)據(jù)建模;
監(jiān)督學(xué)習(xí)包括模型訓(xùn)練和預(yù)測兩個過程避乏,具體流程如圖4所示爷耀。模型訓(xùn)練就是在給定的含未知參數(shù)的模型或者算法的基礎(chǔ)上,根據(jù)數(shù)據(jù)集中的輸入特征和目標(biāo)值拍皮,通過模型選擇方法歹叮,如交叉驗證、隨機梯度下降法等铆帽,確定模型的參數(shù)咆耿,從而學(xué)習(xí)到最終的模型。預(yù)測就是將新的特征值輸入到預(yù)測模型中并輸出目標(biāo)值的過程爹橱。
藥物發(fā)現(xiàn)行業(yè)萨螺,使用機器學(xué)習(xí)方法,通過定量的構(gòu)效關(guān)系(SQAR)建模愧驱,可快速的慰技、高效的發(fā)現(xiàn)新藥物,有效降低成本组砚。隨著大數(shù)據(jù)時代的到來吻商,以及深度學(xué)習(xí)特征提取的自動化的特點,藥物發(fā)現(xiàn)領(lǐng)域逐漸從機器學(xué)習(xí)向深度學(xué)習(xí)的演進[6]糟红,如圖5 藥物設(shè)計過程從ML到DL的演變所示艾帐。
2.3 特征工程
數(shù)據(jù)和特征決定了機器學(xué)習(xí)的上限,而模型和算法只是逼近這些上限而已盆偿。特征工程的本質(zhì)就是最大限度的從原始數(shù)據(jù)中提取特征以供算法或模型使用柒爸。特征工程通常包含數(shù)據(jù)預(yù)處理、特征選擇和降維三個方面陈肛。
數(shù)據(jù)預(yù)處理。無量綱化兄裂,即將不同規(guī)格的數(shù)據(jù)轉(zhuǎn)換到統(tǒng)一規(guī)格句旱,如標(biāo)準(zhǔn)化和歸一化阳藻。定量特征二值化。定性特征啞編碼谈撒,即將定性特征轉(zhuǎn)換成定量特征腥泥。缺失值計算,如缺失值補全啃匿、鄰近插值等蛔外。數(shù)據(jù)轉(zhuǎn)換,常見的數(shù)據(jù)變化有基于多項式溯乒、對數(shù)函數(shù)夹厌、指數(shù)函數(shù)等函數(shù)的變換,通過數(shù)據(jù)變換“融合”生成新的特征裆悄,達到豐富特征的效果矛纹。
特征選擇。特征選擇的目的是從處理后的特征中選擇出有意義的特征輸入到算法中光稼。通常從兩個方面考慮特征的選擇或南,一是特征是否發(fā)散,如某個特征方差接近于0艾君,說明樣本在該特征上基本沒有差異采够,對建模的影響不大。二是特征和目標(biāo)的相關(guān)性冰垄,與目標(biāo)的相關(guān)性越高蹬癌,則特征越重要。根據(jù)特征選擇的形式播演,又可將特征選擇方法分為以下3種冀瓦,
- 過濾法。按照發(fā)散新或者相關(guān)性對各個特征進行評分写烤,常用的方法有方差選擇法翼闽、相關(guān)系數(shù)法、卡方檢驗洲炊、互信息法感局。
- 包裝法。根據(jù)目標(biāo)函數(shù)暂衡,每次選擇若干特征 或者排除若干特征询微。常用的方法有遞歸特征消除法。
- 集成法狂巢。先使用某些機器學(xué)習(xí)的算法進行訓(xùn)練撑毛,得到各個特征的系數(shù),并根據(jù)系數(shù)選擇出特征唧领。常用的方法有基于懲罰項的特征選擇法藻雌,如L1雌续、L2正則化、基于樹模型的特征選擇法胯杭,如樹模型中的GBDT模型驯杜。
降維。當(dāng)特征選擇完成后做个,可以直接訓(xùn)練模型了鸽心,但是可能由于特征矩陣過大,導(dǎo)致計算量大居暖,訓(xùn)練時間長的問題顽频,因此降低特征矩陣維度也是必不可少的。特征選擇過程一定程度上包含了降維膝但,除此之外還有主成分分析法(PCA)和線性判別分析(LDA)等冲九。PCA和LDA有很多的相似點,其本質(zhì)是要將原始的樣本映射到維度更低的樣本空間中跟束,但PCA是為了讓映射后的樣本具有最大的發(fā)散性莺奸,而LDA是為了讓映射后的樣本有最好的分類性能。
2.4 常見損失函數(shù)
損失函數(shù)用來評價模型的預(yù)測值和真實值差異的程度冀宴,損失函數(shù)越好灭贷,通常模型的性能越好。不同的模型用的損失函數(shù)一般也不一樣略贮。損失函數(shù)分為經(jīng)驗風(fēng)險損失函數(shù)和結(jié)構(gòu)風(fēng)險損失函數(shù)[7]甚疟。經(jīng)驗風(fēng)險損失函數(shù)指預(yù)測結(jié)果和實際結(jié)果的差別,結(jié)構(gòu)風(fēng)險損失函數(shù)是指經(jīng)驗風(fēng)險損失函數(shù)加上正則項逃延。
0-1損失函數(shù)览妖。指預(yù)測值和目標(biāo)值不相等為1,否則為0揽祥,如式(2.1)所示讽膏。0-1損失函數(shù)直接對應(yīng)分類判斷錯誤的個數(shù),但不是一個凸函數(shù)拄丰,不方便求導(dǎo)府树。感知機的損失函數(shù)就是在該損失函數(shù)的基礎(chǔ)上,放寬約束條件料按,如式(2.2)所示奄侠。
(2.1)
(2.2)
絕對值損失函數(shù),如式(2.3)所示载矿。
(2.3)
對數(shù)損失函數(shù)垄潮,如式(2.4)所示。log對數(shù)損失函數(shù)能非常好的表征概率分布,在很多場景尤其是多分類弯洗,如果需要知道結(jié)果屬于每個類別的置信度甫题,那它非常適合。健壯性不強涂召,相比于hinge loss對噪聲更敏感。邏輯回歸的損失函數(shù)就是log對數(shù)損失函數(shù)敏沉。
(2.4)
平方損失函數(shù)果正,常用于回歸問題,如式(2.5)所示盟迟。
(2.5)
指數(shù)損失函數(shù)秋泳,對離群點、噪聲非常敏感攒菠,常用于AdaBoost算法中迫皱,如式(2.6)所示。
(2.6)
Hinge 損失函數(shù)辖众。hinge損失函數(shù)表示如果被分類正確卓起,損失為0,否則損失就為 凹炸,如式(2.7)所示戏阅。SVM使用的就是該損失函數(shù)。健壯性較高啤它,對異常點奕筐、噪聲不敏感,但它沒有太好的概率解釋变骡。
(2.7)
感知損失函數(shù)离赫,是Hinge損失函數(shù)的一個變種,Hinge loss對判定邊界附近的點(正確端)懲罰力度很高塌碌,而感知損失只要樣本的判定類別正確的話渊胸,它就滿足,不管其判定邊界的距離誊爹。它比Hinge loss簡單蹬刷,因為不是max-margin boundary,所以模型的泛化能力沒 Hinge loss強频丘。
(2.8)
交叉熵損失函數(shù)办成。本質(zhì)也是一種對數(shù)似然函數(shù),可用于二分類和多分類任務(wù)中搂漠。當(dāng)使用sigmoid作為激活函數(shù)的時候迂卢,常用交叉熵損失函數(shù)而不用均方誤差損失函數(shù),因為它可以完美解決平方損失函數(shù)權(quán)重更新過慢的問題,具有“誤差大的時候而克,權(quán)重更新快靶壮;誤差小的時候,權(quán)重更新慢”的良好性質(zhì)员萍。
(2.9)
(2.10)
(2.11)
2.5 梯度下降算法
梯度下降原理[8]腾降。機器學(xué)習(xí)中很多問題本質(zhì)上都是求解優(yōu)化相關(guān)的問題,梯度下降是一種典型的求解方法碎绎。它利用梯度信息螃壤,通過不斷迭代調(diào)整參數(shù)來尋找合適的解。梯度定義為其中對每個自變量求偏導(dǎo)數(shù)后所構(gòu)成的向量筋帖,如式(2.12)所示奸晴。
(2.12)
考察在處的泰勒展開,要想使 日麸,忽略高階項寄啼,就需要 ,即滿足這些條件即可以使函數(shù)值減小代箭。進一步墩划,取 ,可以保證更新后的 可以使的函數(shù)值減小嗡综,其中 是一個超參數(shù)走诞,用于調(diào)整每次更新的步長,稱為學(xué)習(xí)率蛤高。
隨機梯度下降蚣旱。梯度下降存在的問題,一是數(shù)據(jù)規(guī)模大時戴陡,模型計算時間長塞绿;二是隨著數(shù)據(jù)維度的增加,梯度計算的復(fù)雜度也會增加恤批∫煳牵基于此,如果不使用全量的樣本來計算梯度喜庞,而使用單一樣本來近似估計梯度诀浪,就可以極大的減少計算量。隨機梯度下降每次從訓(xùn)練集中隨機選擇一個樣本延都,計算其對應(yīng)的損失和梯度雷猪,進行參數(shù)更新,反復(fù)迭代晰房。從概率意義上講求摇,單個樣本的梯度是對整個數(shù)據(jù)梯度的無偏估計射沟,但是它存在這一定的不確定性,因此收斂速率相比梯度下降更慢与境。
2.6 常見問題
過擬合验夯。過擬合是指學(xué)習(xí)過程中出現(xiàn)訓(xùn)練誤差較小而測試誤差較大的現(xiàn)象。出現(xiàn)過擬合現(xiàn)象時摔刁,模型的泛化能力差挥转,即對未知數(shù)據(jù)的預(yù)測能力差,不能“舉一反三”共屈。
欠擬合扁位。欠擬合說明模型沒有很好的表示數(shù)據(jù)的全部特征,使用該模型之后會產(chǎn)生較大的偏差趁俊,解決欠擬合的方法就是增加模型的復(fù)雜度或者增加訓(xùn)練樣本。
正則化刑然。經(jīng)驗風(fēng)險最小化方法可以用來選擇模型寺擂,且當(dāng)樣本容量較大時,經(jīng)驗風(fēng)險最小化可以保證學(xué)習(xí)到較好的模型泼掠。當(dāng)訓(xùn)練樣本數(shù)量較少或者模型的復(fù)雜度較高時怔软,經(jīng)驗風(fēng)險最小化的學(xué)習(xí)效果就差,容易產(chǎn)生過擬合的現(xiàn)象择镇。為了防止模型的過擬合現(xiàn)象的發(fā)生挡逼,引入結(jié)構(gòu)化風(fēng)險最小化,即正則化(Regularization)技術(shù)腻豌,通過向經(jīng)驗風(fēng)險函數(shù)上添加一個懲罰項家坎,以阻止回歸項的系數(shù)的增大,實現(xiàn)權(quán)重的衰減(Weight-Decay)吝梅,結(jié)構(gòu)化風(fēng)險函數(shù)如式(2.13)所示虱疏。
(2.13)
其中為模型的復(fù)雜度,即正規(guī)化項苏携, 為損失函數(shù)做瞪。模型 越復(fù)雜,復(fù)雜度 就越大右冻;反之装蓬,模型越簡單,復(fù)雜度就越小纱扭。 為正規(guī)化參數(shù)牍帚,用于權(quán)衡經(jīng)驗風(fēng)險和模型復(fù)雜度。結(jié)構(gòu)化風(fēng)險小需要經(jīng)驗風(fēng)險和模型復(fù)雜度同時小乳蛾,因此履羞,使用結(jié)構(gòu)化風(fēng)險最小化策略學(xué)習(xí)的模型往往對訓(xùn)練數(shù)據(jù)以及未知的測試數(shù)據(jù)都有較好的預(yù)測結(jié)果峦萎。正規(guī)化技術(shù)可給相關(guān)性較小的模型賦予較小的權(quán)重,常用于模型的選擇忆首。
3 深度學(xué)習(xí)
3.1 神經(jīng)網(wǎng)絡(luò)
3.1.1 前饋神經(jīng)網(wǎng)絡(luò)
前饋神經(jīng)網(wǎng)絡(luò)(Feedforward neural network)爱榔,也稱為多層感知機(MLP)慨默,是典型的深度學(xué)習(xí)模型诫隅,前饋神經(jīng)網(wǎng)絡(luò)的目的是近似逼近某個函數(shù) 屎开。前饋神經(jīng)網(wǎng)絡(luò)與一個有向無環(huán)圖相關(guān)聯(lián)列赎,描述函數(shù)的復(fù)合方式诞帐。網(wǎng)絡(luò)通常包含輸入層砂心、輸出層和隱藏層介却,如圖6所示讨韭。
上述的神經(jīng)網(wǎng)絡(luò)可以使用式(3.1)表示柱搜。
(3.1)
3.1.2 激活函數(shù)
若神經(jīng)網(wǎng)絡(luò)中沒有激活函數(shù)迟郎,則整個網(wǎng)絡(luò)表達的只是一個線性變換,無法表達復(fù)雜的函數(shù)功能聪蘸。使用非線性激活函數(shù)是為了增加神經(jīng)網(wǎng)絡(luò)模型的非線性因素宪肖,以便使網(wǎng)絡(luò)更加強大,增加它的表達能力健爬,使它可以學(xué)習(xí)復(fù)雜的事物以及表示輸入輸出之間非線性的控乾、復(fù)雜的任意函數(shù)映射。引入激活函數(shù)后娜遵,可以將線性變換轉(zhuǎn)換成非線性變化蜕衡,使網(wǎng)絡(luò)能夠表達更復(fù)雜的函數(shù),常用的激活函數(shù)有Sigmoid设拟,Tanh慨仿,ReLU,Leaky ReLU纳胧,ELU镶骗,Maxout ,如圖7所示躲雅。
3.1.2.1 Sigmod
式(3.2)為Sigmod函數(shù)鼎姊,式(3.3)為Sigmod函數(shù)的導(dǎo)數(shù),圖8為Sigmod及其導(dǎo)數(shù)示意圖相赁。優(yōu)點:Sigmoid函數(shù)的輸出在(0,1)之間相寇,輸出范圍有限,優(yōu)化穩(wěn)定钮科,可以用作輸出層唤衫;連續(xù)函數(shù),便于求導(dǎo)绵脯。缺點:Sigmoid函數(shù)在變量取絕對值非常大的正值或負值時會出現(xiàn)飽和現(xiàn)象佳励,函數(shù)會變得很平休里,對輸入的微小改變會變得不敏感;在反向傳播時赃承,當(dāng)梯度接近于0妙黍,權(quán)重基本不會更新,容易出現(xiàn)梯度消失的情況瞧剖,從而無法完成深層網(wǎng)絡(luò)的訓(xùn)練拭嫁;Sigmoid函數(shù)的輸出不是0均值的,會導(dǎo)致后層的神經(jīng)元的輸入是非0均值的信號抓于,這會對梯度產(chǎn)生影響做粤;Sigmoid函數(shù)是指數(shù)形式,計算復(fù)雜度高捉撮。
(3.2)
(3.3)
3.1.2.2 Tanh
Tanh函數(shù)也稱為雙曲正切函數(shù)怕品,取值范圍為[-1,1]。Tanh函數(shù)的定義如式(3.4)所示巾遭,其導(dǎo)數(shù)如式(3.5)所示肉康,圖9為Tanh函數(shù)及其導(dǎo)數(shù)示意圖。Tanh是Sigmoid函數(shù)的變形 恢总,Tanh與Sigmoid函數(shù)對比如圖10所示,Tanh函數(shù)是0均值的睬愤,因此實際應(yīng)用中 Tanh 會比sigmoid更好片仿,但是仍然存在梯度飽和與指數(shù)計算的問題。
(3.4)
(3.5)
3.1.2.3 ReLU
整流線性單元(Rectified linear unit尤辱,ReLU)是現(xiàn)代神經(jīng)網(wǎng)絡(luò)中最常用的激活函數(shù)砂豌,大多數(shù)前饋神經(jīng)網(wǎng)絡(luò)默認使用的激活函數(shù),其定義如式(3.6)所示光督。圖11為ReLU及其導(dǎo)數(shù)示意圖阳距。ReLU優(yōu)點:使用ReLU的SGD算法的收斂速度比Sigmoid和Tanh快;在x>0區(qū)域上结借,不會出現(xiàn)梯度飽和筐摘、梯度消失的問題;計算復(fù)雜度低船老,不需要進行指數(shù)運算咖熟,只要一個閾值就可以得到激活值。ReLU缺點:ReLU的輸出不是0均值的柳畔;在x<0時馍管,梯度為0,這個神經(jīng)元及之后的神經(jīng)元梯度永遠為0薪韩,不再對任何數(shù)據(jù)有所響應(yīng)确沸,導(dǎo)致相應(yīng)參數(shù)永遠不會被更新捌锭。
(3.6)
3.1.2.4 Leaky ReLU
滲漏整流線性單元(Leaky ReLU),其定義如式(3.7)所示罗捎。為了解決Dead ReLU現(xiàn)象观谦,用一個類似0.01的小值來初始化神經(jīng)元,從而使得ReLU在負數(shù)區(qū)域更偏向于激活而不是死掉宛逗,這里的斜率都是確定的坎匿,Leaky ReLU及其導(dǎo)數(shù)如圖12所示。
(3.7)
3.1.3 神經(jīng)網(wǎng)絡(luò)訓(xùn)練
神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程如圖13所示雷激,一次網(wǎng)絡(luò)訓(xùn)練包含前向傳播替蔬、反向傳播和權(quán)重更新三個基本部分,然后依次迭代執(zhí)行完成整個網(wǎng)絡(luò)的訓(xùn)練屎暇。
前向傳播承桥,輸入經(jīng)過一層一層的傳播,計算每一層經(jīng)過激活函數(shù)之后的輸出根悼,最終輸出預(yù)測值凶异。模型訓(xùn)練完之后,各層的權(quán)重已經(jīng)固定下來挤巡,預(yù)測的過程就是前向傳播的過程剩彬。
反向傳播是誤差反向傳播的簡稱,是一種與最優(yōu)化方法(如梯度下降法)結(jié)合使用的矿卑,用來訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)的常見方法喉恋。反向傳播對網(wǎng)絡(luò)中所有權(quán)重計算損失函數(shù)的梯度,該梯度會反饋給最優(yōu)化方法母廷,用來更新權(quán)值以最小化損失函數(shù)轻黑。反向傳播要求激活函數(shù)必須是可微的。反向傳播經(jīng)常被誤解為用于多層神經(jīng)網(wǎng)絡(luò)的整個學(xué)習(xí)算法琴昆。實際上氓鄙,反向傳播僅指用于計算梯度的方法。鏈?zhǔn)椒▌t即求復(fù)合函數(shù)導(dǎo)數(shù)的法則业舍。反向傳播是一種計算鏈?zhǔn)椒▌t的算法抖拦,使用高效的特定運輸順序。
權(quán)重更新舷暮。當(dāng)通過反向傳播計算完各個權(quán)重的梯度后蟋座,使用最新的梯度進行權(quán)重的更新。
3.1.4 梯度消失和梯度爆炸
層數(shù)比較多的神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練時會出現(xiàn)梯度消失(gradient vanishing problem)或梯度爆炸問題(gradient exploding problem)脚牍。梯度消失問題和梯度爆炸問題一般隨著網(wǎng)絡(luò)層數(shù)的增加會變得越來越明顯向臀。如圖14所示的含有3個隱藏層的神經(jīng)網(wǎng)絡(luò),梯度消失問題發(fā)生時诸狭,接近于輸出層的隱藏層3的權(quán)值更新正常券膀,但隱藏層1的權(quán)值更新會變得很慢君纫,導(dǎo)致前面層的權(quán)值幾乎不變,仍接近于初始值芹彬,此時相當(dāng)于隱藏層1只是一個映射層蓄髓,無法從數(shù)據(jù)中學(xué)習(xí)特征,深層網(wǎng)絡(luò)就退化成了只有后幾層的淺層網(wǎng)絡(luò)舒帮。
以圖15的反向傳播為例会喝,假設(shè)每一層只有一個神經(jīng)元且對于每一層 ,其中 為sigmoid函數(shù)玩郊。
(3.8)
由上式可知肢执,當(dāng) 時,層數(shù)越多译红,多次乘積之后预茄, 越小,從而出現(xiàn)梯度消失問題侦厚。但 時耻陕,層數(shù)越多,多次乘積之后刨沦, 越大诗宣,從而出現(xiàn)梯度爆炸問題。
3.2 卷積神經(jīng)網(wǎng)絡(luò)
3.2.1 卷積的概念
在泛函分析中想诅,卷積(convolution)是透過兩個函數(shù) 和 生成第三個函數(shù)的一種數(shù)學(xué)算子召庞,表征函數(shù)與經(jīng)過翻轉(zhuǎn)和平移的 的乘積函數(shù)所圍成的曲邊梯形的面積,卷積是數(shù)學(xué)分析中的一種重要計算侧蘸。設(shè) 裁眯, 為 上的可積分的函數(shù)鹉梨,則 定義為 的卷積讳癌,式(3.9)和式(3.10)分別是連續(xù)卷積和離散卷積的定義,二者有一個共同的特點就是均需要滿足 存皂。
(3.9)
(3.10)
圖像中的卷積晌坤。數(shù)字圖像是一個二維的離散信號,對數(shù)字圖像做卷積操作其實就是利用卷積核在圖像上滑動旦袋,將圖像點上的像素灰度值與對應(yīng)的卷積核上的數(shù)值相乘骤菠,然后將所有相乘后的值相加作為卷積核中間像素對應(yīng)的圖像上像素的灰度值,并最終滑動完所有圖像的過程疤孕。
3.2.2 常見卷積核操作
3.2.2.1 單通道卷積
單通道卷積商乎,特征圖只有1層,通常使用單通道卷積來說明卷積的過程祭阀,如圖16所示鹉戚。
3.2.2.2 多通道卷積
常用的卷積[9]通常都是多通道卷積鲜戒,即不同參數(shù)的2維的卷積核,分別對每個通道進行卷積抹凳,相當(dāng)于是單通道卷積的疊加遏餐,如圖17 多通道卷積所示。
3.2.2.3 3D卷積
3D卷積是通過堆疊多個連續(xù)的幀組成一個立方體赢底,然后在立方體中運用3D卷積核失都。3D卷積的主要應(yīng)用是視頻理解和醫(yī)療圖像分析。3D卷積除了沿著長幸冻、框方向移動粹庞,還會沿著深度或者時間的維度移動。
3D卷積的主要應(yīng)用就是視頻理解和醫(yī)療圖像領(lǐng)域嘁扼。在視頻理解任務(wù)中信粮, 就代表了時間維度,也就是每個3D卷積核處理的連續(xù)幀數(shù)趁啸。在視頻理解領(lǐng)域的3D卷積計算中强缘,首先會將 個連續(xù)幀組成一個3D的圖像序列,然后在圖像序列中進行卷積計算不傅。3D卷積核會在 個連續(xù)幀上進行滑動旅掂,每次滑動 個連續(xù)幀中對應(yīng)位置內(nèi)的元素都要與卷積核中的參數(shù)進行乘加計算,最后得到輸出特征圖中的一個值访娶,如圖19為3D卷積示例商虐。
3.2.2.4 1x1卷積
1x1卷積,因為卷積核的尺寸只有1崖疤,因此它主要有以下功能秘车,① 用于信息聚合,并增加非線性劫哼。1x1卷積可以看成是對所有通道信息進行線性加權(quán)叮趴,同時,在卷積之后可以使用激活函數(shù)权烧,可以一定程度地增加模型的表達能力眯亦。② 用于通道的變換,可以增加或者減少特征圖的通道數(shù)般码。如圖20所示妻率。
3.2.2.5 轉(zhuǎn)置卷積
轉(zhuǎn)置卷積(Transposed Convolution),如圖21所示板祝,它是語義分割任務(wù)中必不可少的模塊宫静。語義分割是對圖像在像素級別上進行分類。基于CNN的語義分割模型通常都有編碼器和解碼器組成孤里,編碼器用于將輸入圖像映射到某個低緯度的特征空間中温技,它既需要編碼特征的目標(biāo)信息,也需要編碼特征的位置信息扭粱,從而正確的預(yù)測每個像素的類別舵鳞。解碼器將低緯特征映射到像素空間,正常的卷積不會是特征圖的長寬維度增加琢蛤,而轉(zhuǎn)置卷積則相反蜓堕,它可以完成長寬維度的增加,從而實現(xiàn)將低緯特征映射到像素空間博其。
3.2.2.6 空洞卷積
空洞卷積通過在卷積核元素之間插入空格來“擴展”卷積核套才。由于卷積核擴大,感受野也會擴大慕淡,因此空洞卷積是一種不增加參數(shù)量而可以快速擴大感受野的有效方式背伴,如圖22所示。
3.2.2.7 分組卷積
分組卷積最早是在AlexNet中出現(xiàn)的峰髓,當(dāng)訓(xùn)練AlexNet時傻寂,卷積操作不能全部放在同一個GPU中進行處理,作者將特征圖分給多個GPU處理携兵,最后把多個GPU的處理結(jié)果融合疾掰,這個過程就是分組卷積。分組卷積可以明顯地降低參數(shù)量徐紧,如圖23所示静檬。
3.2.2.8 深度可分離卷積
深度可分離卷積由兩部分組成,一部分是沿著深度的逐層卷積并级,另一部分是1x1卷積拂檩。沿著深度的逐層卷積是分組卷積的一種特殊情況,即分組數(shù)等于深度嘲碧。由于只進行深度方向的分組卷積稻励,忽略了通道之間的信息,因此其后再使用1x1卷積來增加通道間的信息融合呀潭。
相較于標(biāo)準(zhǔn)卷積钉迷,深度可分離卷積不僅參數(shù)少至非,而且可以降低計算量钠署,提升運算效率,在MobileNet荒椭、ShuffleNet的模型上應(yīng)用較多谐鼎。
3.2.3 卷積神經(jīng)網(wǎng)絡(luò)特點
卷積神經(jīng)網(wǎng)絡(luò)具有局部連接(相較于全連接網(wǎng)絡(luò))、權(quán)值共享(卷積核的權(quán)值是共享的)趣惠、層次化表達(低層次提取低級特征狸棍、高層次提取高層特征)的特點身害。
局部連接。卷積操作與生物學(xué)上的概念很類似草戈,在神經(jīng)系統(tǒng)中塌鸯,神經(jīng)元通常只響應(yīng)一部分的刺激型號,比如視網(wǎng)膜受到光信號的刺激唐片,向視覺皮層傳遞信號丙猬,通常只有一部分視覺皮層神經(jīng)元會響應(yīng)這個信號,這種機制稱為局部感知费韭。對于卷積來說茧球,連續(xù)使用兩層3x3卷積,它的輸出僅與5x5大小的輸入?yún)^(qū)域有關(guān)星持,如圖24 感受野示意圖所示抢埋。這個區(qū)域稱為感受野,它指得是特征圖上一個輸出與多大區(qū)域的輸入有關(guān)督暂。
權(quán)值共享揪垄。在卷積過程中,不同區(qū)域使用相同的卷積核逻翁,一方面減少了參數(shù)量福侈,一方面帶來了平移不變性。平移不變性是指卢未,不管輸入如何平移肪凛,總能得到相同的輸出。
層次表達辽社。如圖25所示伟墙,低層次的卷積一般提取一些簡單的特征,如顏色滴铅、邊緣戳葵、角等,視野比較小汉匙,對應(yīng)的都是局部特征拱烁。中間層次的卷積得到的特征開始變得抽象,如紋理結(jié)構(gòu)等噩翠。高層次的卷積得到的特征更加抽象戏自,如圖像的語義等,它的感受野大伤锚,有更大的全局特征擅笔。
3.2.4 常見卷積網(wǎng)絡(luò)
3.2.4.1 AlexNet
AlexNet[10]是由深度學(xué)習(xí)的奠基者Hinton和他的學(xué)生Alex Krizhevsky設(shè)計的,于2012年獲得了ImageNet競賽的冠軍,比第二名的錯誤率降低了10%以上猛们,轟動一時念脯,也由此開啟了深度學(xué)習(xí)的爆發(fā)階段。AlexNet的網(wǎng)絡(luò)結(jié)構(gòu)如圖26弯淘、表 1所示绿店。
特征圖尺度計算公式,如(3.11)庐橙、(3.12)所示惯吕。
(3.11)
(3.12)
其中, 表示卷積后的寬度怕午, 表示卷積前特征圖的寬度废登, 表示卷積后的高度, 表示卷積前特征圖的高度郁惜, 表示卷積核的尺寸堡距, 表示填充大小, 表示步長兆蕉。
池化層尺度計算公式羽戒,如式(3.13)、(3.14)所示虎韵。
(3.13)
(3.14)
其中易稠, 表示池化后的寬度, 表示池化前特征圖的寬度包蓝, 表示池化后的高度驶社, 表示池化前特征圖的高度, 表示池化窗口的尺寸测萎, 表示步長亡电。
3.2.4.1 VGG
VGG[11]是基于AlexNet的改進,如圖27所示硅瞧。主要體現(xiàn)采用了3x3的小尺寸卷積核份乒,并且卷積的步長為1,這樣得到的兩層卷積感受野為5腕唧,與直接使用5x5卷積相比或辖,參數(shù)量更少。VGG還有一個結(jié)構(gòu)特點是重復(fù)使用簡單的卷積塊來堆疊得到模型枣接,它的基礎(chǔ)卷積塊為兩層或者多層卷積加上一層池化層颂暇。
3.2.4.2 Inception系列
GoogleNet的核心結(jié)構(gòu)是Inception[12-15]塊,與VGG構(gòu)建的基礎(chǔ)塊不同月腋,Inception塊使用了多分支及不同尺寸的卷積核蟀架。
Inception V1首次使用了并行結(jié)構(gòu)冰悠,每個Inception塊使用多個不同大小的卷積核姑躲,這與傳統(tǒng)只使用一個尺寸的卷積核結(jié)構(gòu)完全不同。Inception塊的多個不同的卷積核可以提取到不同類型的特征昔榴,同時妓肢,每個卷積核的感受野也不一樣捌省,因此可以獲得更多尺度的特征,但是多個尺寸的卷積核會引入大量的參數(shù)碉钠。
Inception V2針對V1卷積核尺寸多纲缓,導(dǎo)致參數(shù)多的問題,將大尺寸的卷積核進行分解喊废,以減少參數(shù)量祝高。如用兩個3x3的卷積核代替一個5x5的卷積核。對nxn卷積污筷,提出使用一個1xn卷積和nx1卷積來代替工闺。
3.2.4.3 ResNet
ResNet[16]從網(wǎng)絡(luò)結(jié)構(gòu)上進行了改進,引入了skip connection機制瓣蛀,使得網(wǎng)絡(luò)中信息的流通更加通暢陆蟆。在前向傳播時,將輸入和輸出的信息進行融合惋增,能夠更有效地利用特征叠殷。在反向傳播時,總有一部分梯度通過跳躍連接反傳到輸入上诈皿,緩解了梯度消失的問題林束,從而使網(wǎng)絡(luò)可以做的更深。
此外稽亏,研究發(fā)現(xiàn)诊县,ResNet網(wǎng)絡(luò)可以看出是多個淺層結(jié)構(gòu)的集成。同時措左,ResNet在損失函數(shù)的曲面上更平滑依痊,訓(xùn)練優(yōu)化更容易,得到的模型泛化性能更好怎披。
3.3 循環(huán)神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)可以有效地處理空間信息胸嘁,而循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)則可以更好地處理序列信息凉逛,RNN對具有序列特性的數(shù)據(jù)非常有效性宏,它能挖掘數(shù)據(jù)中的時序信息以及語義信息,利用了RNN的這種能力状飞,使深度學(xué)習(xí)模型在解決語音識別毫胜、語言模型书斜、機器翻譯以及時序分析等NLP領(lǐng)域的問題時有所突破。
3.3.1 循環(huán)神經(jīng)網(wǎng)絡(luò)
循環(huán)結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)克服了傳統(tǒng)機器學(xué)習(xí)方法對輸入和輸出數(shù)據(jù)的許多限制酵使,使其成為深度學(xué)習(xí)領(lǐng)域中一類非常重要的模型荐吉。RNN 及其變體網(wǎng)絡(luò)已經(jīng)被成功應(yīng)用于多種任務(wù),尤其是當(dāng)數(shù)據(jù)中存在一定時間依賴性的時候口渔。語音識別样屠、機器翻譯、語言模型缺脉、文本分類痪欲、詞向量生成、信息檢索等攻礼,都需要一個模型能夠?qū)⒕哂行蛄行再|(zhì)的數(shù)據(jù)作為輸入進行學(xué)習(xí)[17]业踢。
圖28為循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),通過隱藏層上的回路連接礁扮,使得前一時刻的網(wǎng)絡(luò)狀態(tài)能夠傳遞給當(dāng)前時刻陨亡,當(dāng)前時刻的狀態(tài)也可以傳遞給下個時刻∩钤保可以將RNN 看作所有層共享權(quán)值的前饋神經(jīng)網(wǎng)絡(luò)(Feed-Forward Neural Network负蠕,F(xiàn)NN),通過連接兩個時間步來擴展倦畅。
圖28中遮糖,在時刻 ,隱藏單元 接收來自兩方面的數(shù)據(jù)叠赐,分別為網(wǎng)絡(luò)前一時刻的隱藏單元的值 和當(dāng)前的輸入數(shù)據(jù) 欲账,并通過隱藏單元的值計算當(dāng)前時刻的輸出。 時刻的輸入 可以在之后通過循環(huán)結(jié)構(gòu)影響 時刻的輸出芭概。RNN的前向計算按照時間序列展開赛不,然后使用基于時間的反向傳播算法(Back Propagation Through Time,BPTT)對網(wǎng)絡(luò)中的參數(shù)進行更新罢洲,也是目前循環(huán)神經(jīng)網(wǎng)絡(luò)最常用的訓(xùn)練算法踢故,RNN前向傳播公式如(3.15)所示。
(3.15)
其中惹苗, 為輸入單元到隱藏單元的權(quán)重矩陣殿较。 為隱藏單元之間連接的權(quán)重矩陣。 為隱藏單元到輸出單元連接的權(quán)重矩陣桩蓉。 淋纲, 為偏置。
FNN通過學(xué)習(xí)得到的映射關(guān)系院究,可以將輸入向量映射到輸出向量洽瞬,從而使得輸入和輸出向量相互關(guān)聯(lián)本涕。RNN 是前饋神經(jīng)網(wǎng)絡(luò)在時間維度上的擴展。對于FNN伙窃,它接受固定大小的向量作為輸入并產(chǎn)生固定大小的輸出菩颖,這樣對于輸入的限制就很大。然而对供,RNN 并沒有這個限制位他,無論是輸入序列的長度還是輸出序列氛濒,如圖29所示产场。
圖29 中,(a)表示傳統(tǒng)的舞竿、固定尺度的輸入到固定尺度的輸出京景;(b)序列輸入,可用于表示例如情感分析等任務(wù)骗奖,給定句子然后將其與一個情感表示向量關(guān)聯(lián)确徙;( c) 序列輸出,可以
用于表示圖片標(biāo)注等任務(wù)执桌,輸入固定大小的向量表示的圖片鄙皇,輸出圖片描述;(d)和( e) 中的輸入和輸出均為序列數(shù)據(jù)仰挣,且輸入和輸出分別為非同步和同步伴逸,( d) 可以用于機器翻譯等
任務(wù),(e)常用于語音識別中膘壶。
3.3.2 長短期記憶網(wǎng)絡(luò)
RNN通常難以訓(xùn)練错蝴,循環(huán)多次之后,大多數(shù)情況下梯度往往傾向于消失颓芭,也有較少情況會發(fā)生梯度爆炸的問題顷锰。針對RNN在實際應(yīng)用中存在的問題,長短期記憶( LSTM) 網(wǎng)絡(luò)被提出亡问,它能夠保持信息的長期存儲而備受關(guān)注官紫,關(guān)于LSTM 結(jié)構(gòu)的改進工作也陸續(xù)出現(xiàn)。目前州藕,在實際應(yīng)用中使用最廣泛的循環(huán)結(jié)構(gòu)網(wǎng)絡(luò)架構(gòu)來自于Hochreiter 等[18]提出的LSTM 模型万矾,它能夠有效克服RNN中存在的梯度消失問題,尤其在長距離依賴的任務(wù)中的表現(xiàn)遠優(yōu)于RNN慎框,梯度反向傳播過程中不會再受到梯度消失問題的困擾良狈,可以對存在短期或者長期依賴的數(shù)據(jù)進行精確的建模。LSTM 的工作方式與RNN 基本相同笨枯,區(qū)別在于LSTM 實現(xiàn)了一個更加細化的內(nèi)部處理單元薪丁,來實現(xiàn)上下文信息的有效存儲和更新遇西。由于其優(yōu)秀的性質(zhì),LSTM已經(jīng)被用于大量的和序列學(xué)習(xí)相關(guān)的任務(wù)中严嗜,比如語音識別粱檀、語言模型、機器翻譯等任務(wù)中漫玄。
Hochreiter 等的主要貢獻是引入了記憶單元和門控記憶單元保存歷史信息茄蚯、長期狀態(tài),使用門控來控制信息的流動睦优。通常將LSTM 網(wǎng)絡(luò)中的隱藏單元稱為LSTM 單元渗常,如圖30所示,將隱藏單元為LSTM單元的循環(huán)神經(jīng)網(wǎng)絡(luò)稱為LSTM網(wǎng)絡(luò)或者LSTM汗盘。
LSTM的前向計算過程可表示為式(3.16)皱碘。
(3.16)
在時間步時,LSTM 的隱藏層的輸入和輸出向量分別 和 隐孽,記憶單元為 癌椿。輸入門用于控制網(wǎng)絡(luò)當(dāng)前輸入數(shù)據(jù) 流入記憶單元的多少,即有多少可以保存到 菱阵,記為 踢俄。遺忘門是LSTM 單元的關(guān)鍵組成部分,可以控制哪些信息要保留哪些要遺忘晴及,并且以某種方式避免當(dāng)梯度隨時間反向傳播時引發(fā)的梯度消失和爆炸問題記為 都办。輸出門控制記憶單元 對當(dāng)前輸出值 的影響,即記憶單元中的哪一部分會在時間步 輸出抗俄,記為 脆丁。隱藏層輸出用 表示。
4 自動機器學(xué)習(xí)
4.1 超參數(shù)優(yōu)化
模型的參數(shù)可分成參數(shù)與超參數(shù)兩類动雹,前者是模型通過自身的訓(xùn)練學(xué)習(xí)得到的參數(shù)數(shù)據(jù)槽卫,后者則需要通過自身經(jīng)驗設(shè)置,而超參數(shù)的選擇對模型最終的展現(xiàn)效果有很大影響胰蝠。在超參數(shù)選擇過程中歼培,尤其針對大數(shù)據(jù)分析時,存在數(shù)據(jù)規(guī)模巨大茸塞、模型復(fù)雜躲庄,計算成本很高,并且每個類型的超參數(shù)都有眾多選擇的痛點钾虐,同時在搜索超參數(shù)的過程中只能看到模型的輸入和輸出噪窘,無法獲取模型內(nèi)部信息,也無法直接對最優(yōu)超參數(shù)組合建立目標(biāo)函數(shù)進行優(yōu)化效扫,針對以上兩個痛點問題倔监,常見的超參數(shù)搜索算法包括基于網(wǎng)格搜索直砂、隨機搜索和貝葉斯優(yōu)化等。
*網(wǎng)格搜索方法浩习。針對超參數(shù)少的算法静暂,使用網(wǎng)格搜索,在所有候選的參數(shù)選擇中谱秽,通過循環(huán)遍歷嘗試每一種可能性洽蛀,表現(xiàn)最好的參數(shù)即為最終結(jié)果。
隨機搜索方法疟赊。在計算資源充分郊供、算法的超參數(shù)較多時,使用隨機搜索算法听绳,為每類超參數(shù)定義一個邊緣分布颂碘,如均勻分布异赫,然后在這些參數(shù)上采樣并進行搜索椅挣。
貝葉斯優(yōu)化。超參數(shù)搜索問題本質(zhì)是一個黑盒優(yōu)化問題塔拳,使用貝葉斯優(yōu)化通過無限維的高斯過程來描述黑盒鼠证,在這個高斯過程中可以得到每一組輸入超參數(shù)的均值和方差。假設(shè)有一個函數(shù) ,一組超參數(shù)組合是 ( 表示某一個超參數(shù)的值)靠抑,貝葉斯優(yōu)化可描述為求解未知目標(biāo)函數(shù)的全局最優(yōu)解量九,即 ,其中 表示待優(yōu)化的參數(shù)颂碧; 表示待優(yōu)化的參數(shù)集合荠列; 表示目標(biāo)函數(shù)。貝葉斯優(yōu)化算法有兩個關(guān)鍵步驟载城,首先肌似,選擇一個先驗函數(shù)來表示被優(yōu)化函數(shù)的分布假設(shè);其次诉瓦,構(gòu)建一個采集函數(shù)川队,用于從模型后驗分布中確定下一個需要評估的點。
遺傳算法睬澡。遺傳算法試圖將自然選擇機制應(yīng)用于機器學(xué)習(xí)環(huán)境固额。它受到達爾文自然選擇過程的啟發(fā),因此通常也稱為進化算法煞聪。假設(shè)創(chuàng)建了具有一些預(yù)定義超參數(shù)的N個機器學(xué)習(xí)模型斗躏。然后,計算每個模型的準(zhǔn)確性昔脯,并決定只保留一半模型(性能最好的模型)啄糙。據(jù)此可以生成具有與最佳模型相似的超參數(shù)的后代馋艺,以便再次獲得N個模型的種群。在此基礎(chǔ)上迈套,可以再次計算每個模型的準(zhǔn)確性捐祠,并在定義的世代中重復(fù)該循環(huán)。最終桑李,只有最佳模型才能在流程結(jié)束時生存下來踱蛀。示意圖如圖31所示。
4.2 網(wǎng)絡(luò)架構(gòu)搜索
深度學(xué)習(xí)在圖像贵白、語音率拒、文本等多種模態(tài)的數(shù)據(jù)任務(wù)上取得了優(yōu)異的效果,但針對特定任務(wù)禁荒,人工設(shè)計網(wǎng)絡(luò)需要花費大量時間猬膨,并且設(shè)計者需要專業(yè)的只是和設(shè)計經(jīng)驗。然而呛伴,日趨復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)勃痴,僅僅依靠人工進行設(shè)計的難度越來越大。借助神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索技術(shù)热康,構(gòu)架網(wǎng)絡(luò)架構(gòu)搜索引擎沛申,既可減少人工的參與,也可以實現(xiàn)最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)的自動搜索姐军。
神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索即通過搜索策略在搜索空間中選擇一個網(wǎng)絡(luò)架構(gòu)铁材,借助性能評估策略對網(wǎng)絡(luò)架構(gòu)進行評估,并將結(jié)果反饋給搜索策略以選擇更好的網(wǎng)絡(luò)結(jié)構(gòu)奕锌,通過不斷迭代得到最優(yōu)的網(wǎng)絡(luò)架構(gòu)著觉,從而高效的設(shè)計并發(fā)現(xiàn)新的、高性能的網(wǎng)絡(luò)結(jié)構(gòu)惊暴。神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索主要涉及搜索空間饼丘、搜索策略、性能評估策略三個方面缴守。
搜索空間定義了組成網(wǎng)絡(luò)的基本操作葬毫,通過組合不同的操作產(chǎn)生不同的網(wǎng)絡(luò)架構(gòu)。鏈?zhǔn)浇Y(jié)構(gòu)搜索空間屡穗,從網(wǎng)絡(luò)層數(shù)贴捡、網(wǎng)絡(luò)中各層的操作及其相關(guān)超參數(shù)、網(wǎng)絡(luò)中各種操作排序進行設(shè)計村砂,通過增加深度來提升網(wǎng)絡(luò)性能烂斋。多分支結(jié)構(gòu)搜索空間通過增加網(wǎng)絡(luò)的寬度,通過探索多維度特征來提升網(wǎng)絡(luò)性能,緩解梯度消失和梯度爆炸文檔汛骂『蹦#基于塊的網(wǎng)絡(luò)結(jié)構(gòu)搜索空間首先構(gòu)建最優(yōu)的塊結(jié)構(gòu),其次將得到的塊按照預(yù)先定義的規(guī)則進行堆疊帘瞭,其融合鏈?zhǔn)浇Y(jié)構(gòu)和多分支結(jié)構(gòu)淑掌,從網(wǎng)絡(luò)的寬度和深度兩個方面提升網(wǎng)絡(luò)性能。
搜索策略在定義的搜索空間中快速蝶念、高效的搜索最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)抛腕,其本質(zhì)是一個大規(guī)模超參數(shù)優(yōu)化問題。貝葉斯優(yōu)化策略充分利用前一次評估結(jié)果即先驗知識媒殉,建立概率模型担敌,指導(dǎo)后續(xù)的參數(shù)選擇過程。強化學(xué)習(xí)搜索策略將網(wǎng)絡(luò)架構(gòu)搜索過程看作Agent智能體選擇動作的過程廷蓉,神經(jīng)網(wǎng)絡(luò)的搜索空間對應(yīng)著Agent的動作空間全封,最終Agent經(jīng)過一系列動作選擇后得到最終的網(wǎng)絡(luò)架構(gòu)。神經(jīng)進化策略采用進化算法來演進網(wǎng)絡(luò)的權(quán)值桃犬、架構(gòu)刹悴、激活函數(shù)乃至超參數(shù)∫哂基于梯度的架構(gòu)搜索策略將搜索空間變成連續(xù)可微的颂跨,再使用基于梯度的反向傳播算法同時對權(quán)值和網(wǎng)絡(luò)結(jié)構(gòu)進行優(yōu)化敢伸。
性能評估測量得到每個網(wǎng)絡(luò)的性能并反饋給網(wǎng)絡(luò)架構(gòu)搜索算法扯饶,以指導(dǎo)搜索算法得到最優(yōu)的網(wǎng)絡(luò)架構(gòu)。常見的性能評估測量有低保真度池颈、早停尾序、代理模型和權(quán)值共享等方法。低保真度即通過減少樣本數(shù)量躯砰、降低圖像分辨率每币、減少網(wǎng)絡(luò)層數(shù)等方法從而加快網(wǎng)絡(luò)收斂過程。早停即通過設(shè)置固定訓(xùn)練代數(shù)琢歇、學(xué)習(xí)外延曲線等方法兰怠,在網(wǎng)絡(luò)未收斂時及時停止訓(xùn)練。代理模型采用簡單的近似任務(wù)替代實際的訓(xùn)練任務(wù)李茫,從而減少網(wǎng)絡(luò)性能的評估時間揭保。權(quán)值共享方法主要有Network Morphisms和One-Shot,二者分別通過迭代網(wǎng)絡(luò)和訓(xùn)練超圖兩種方式實現(xiàn)對性能的加速評估魄宏。
針對網(wǎng)絡(luò)搜索空間秸侣,既考慮生成網(wǎng)絡(luò)的整體結(jié)構(gòu)和內(nèi)部結(jié)構(gòu),又考慮網(wǎng)絡(luò)的寬度、深度味榛、可擴展性以及性能等椭坚,減少搜索空間、參數(shù)規(guī)模搏色,使神經(jīng)網(wǎng)絡(luò)更容易的泛化到其他的數(shù)據(jù)集或任務(wù)中善茎;針對搜索策略,根據(jù)不同的任務(wù)類型频轿,動態(tài)結(jié)合貝葉斯優(yōu)化巾表、強化學(xué)習(xí)、神經(jīng)進化略吨、梯度方法等各策略的特點集币,實現(xiàn)最優(yōu)網(wǎng)絡(luò)的快速、高效搜索翠忠;針對性能評估鞠苟,采用不同的策略,通過加速收斂秽之、減少計算量当娱、近似計算等方法,實現(xiàn)模型性能的快速評估考榨。
從搜索空間跨细、搜索策略、性能評估方面逐個優(yōu)化河质,減少或取代網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計的人工參與冀惭,實現(xiàn)泛化能力好、性能高的網(wǎng)絡(luò)架構(gòu)的自動搜索引擎掀鹅。
5 總結(jié)
本文從人工智能的概念切入散休,梳理了機器學(xué)習(xí)和深度學(xué)習(xí)中常見的知識點,試圖通過知識點的梳理乐尊,建立一套機器學(xué)習(xí)的知識體系戚丸。
第二節(jié)闡述機器學(xué)習(xí)中的基本概念,如機器學(xué)習(xí)從不同角度的分類方法扔嵌,機器學(xué)習(xí)和深度學(xué)習(xí)流程的對比限府,并著重強調(diào)了監(jiān)督學(xué)習(xí)流程。梳理了機器學(xué)習(xí)中常用的損失函數(shù)痢缎,梯度下降的求解方法以及機器學(xué)習(xí)中常見的問題胁勺,如過擬合、欠擬合等牺弄。
第三節(jié)分別從神經(jīng)網(wǎng)絡(luò)的基本概念姻几、卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)三個方面梳理了深度學(xué)習(xí)中的知識點宜狐。梳理了前饋網(wǎng)絡(luò)基本結(jié)構(gòu)、激活函數(shù)蛇捌、訓(xùn)練流程以及梯度消失和爆炸問題產(chǎn)生的原因抚恒。卷積網(wǎng)絡(luò)部分梳理了卷積的基本概念、常用的卷積方法络拌、卷積網(wǎng)絡(luò)特點以及常用的基于卷積的特征提取網(wǎng)絡(luò)俭驮。循環(huán)神經(jīng)網(wǎng)絡(luò)部分梳理了RNN提出的原因、RNN的輸出輸入格式春贸、RNN的前向傳播公式混萝,同時從RNN容易導(dǎo)致梯度消失或者爆炸問題出發(fā),引入了LSTM以及相關(guān)的變體萍恕,并總結(jié)了RNN網(wǎng)絡(luò)結(jié)構(gòu)適用的場景逸嘀。
第四節(jié)介紹了自動機器學(xué)習(xí)中的兩個關(guān)鍵技術(shù),分別是超參數(shù)優(yōu)化以及網(wǎng)絡(luò)結(jié)構(gòu)搜索允粤,并介紹了常用的參數(shù)搜索方法崭倘,梳理了網(wǎng)絡(luò)結(jié)構(gòu)搜索的通用范式,包括搜索空間定義类垫、搜索策略選取以及評估方法確定等司光。
參考
[1] Ongsulee P. Artificial intelligence, machine learning and deep learning[C]. 2017 15th International Conference on ICT and Knowledge Engineering (ICT&KE), 2017: 1-6.
[2] Jordan M I, Mitchell T M. Machine learning: Trends, perspectives, and prospects[J]. Science, 2015, 349(6245): 255-260.
[3] Goodfellow I, Bengio Y, Courville A. Deep learning[M]. MIT press, 2016.
[4] Shinde P P, Shah S. A review of machine learning and deep learning applications[C]. 2018 Fourth international conference on computing communication control and automation (ICCUBEA), 2018: 1-6.
[5] Swamynathan M. Mastering machine learning with python in six steps: A practical implementation guide to predictive data analytics using python[M]. Apress, 2019.
[6] Zhang L, Tan J, Han D, et al. From machine learning to deep learning: progress in machine intelligence for rational drug discovery[J]. Drug discovery today, 2017, 22(11): 1680-1685.
[7] Bishop C M. Pattern recognition[J]. Machine learning, 2006, 128(9).
[8] Ruder S. An overview of gradient descent optimization algorithms[J]. arXiv preprint arXiv:1609.04747, 2016.
[9] Rawat W, Wang Z. Deep convolutional neural networks for image classification: A comprehensive review[J]. Neural computation, 2017, 29(9): 2352-2449.
[10] Gao S, Cheng M-M, Zhao K, et al. Res2net: A new multi-scale backbone architecture[J]. IEEE transactions on pattern analysis and machine intelligence, 2019.
[11] Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint arXiv:1409.1556, 2014.
[12] Ioffe S, Szegedy C. Batch normalization: Accelerating deep network training by reducing internal covariate shift[C]. International conference on machine learning, 2015: 448-456.
[13] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]. Proceedings of the IEEE conference on computer vision and pattern recognition, 2015: 1-9.
[14] Szegedy C, Vanhoucke V, Ioffe S, et al. Rethinking the inception architecture for computer vision[C]. Proceedings of the IEEE conference on computer vision and pattern recognition, 2016: 2818-2826.
[15] Szegedy C, Ioffe S, Vanhoucke V, et al. Inception-v4, inception-resnet and the impact of residual connections on learning[C]. Thirty-first AAAI conference on artificial intelligence, 2017.
[16] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]. Proceedings of the IEEE conference on computer vision and pattern recognition, 2016: 770-778.
[17] 楊麗, 吳雨茜, 王俊麗, et al. 循環(huán)神經(jīng)網(wǎng)絡(luò)研究綜述[J]. 計算機應(yīng)用, 2018, 38(A02): 1-6.
[18] Hochreiter S, Schmidhuber J. Long short-term memory[J]. Neural computation, 1997, 9(8): 1735-1780.