摘 要: 近年來,人工智能在學(xué)術(shù)界和工業(yè)界都取得了極大的成功,這正是由于深度神經(jīng)網(wǎng)絡(luò)在最近十年內(nèi)的飛速發(fā)展。神經(jīng)網(wǎng)絡(luò)模型的目標(biāo)就是最優(yōu)化,對一個(gè)復(fù)雜的問題中作出最優(yōu)決策。幾乎所有的神經(jīng)網(wǎng)絡(luò)模型都可以建模為一個(gè)優(yōu)化問題。本文就求解神經(jīng)網(wǎng)絡(luò)模型過程中涉及的優(yōu)化算法進(jìn)行總結(jié),并對《最優(yōu)化方法》課程教學(xué)內(nèi)容進(jìn)行了探索。通過將神經(jīng)網(wǎng)絡(luò)模型及其優(yōu)化算法與《最優(yōu)化方法》課程教學(xué)融合,使學(xué)生熟悉并掌握其原理和優(yōu)化求解方法,具備更強(qiáng)的核心競爭力。
關(guān)鍵詞: 人工智能; 最優(yōu)化方法; 神經(jīng)網(wǎng)絡(luò)
孫杰寶; 楊暢; 吳勃英 科技風(fēng) 2022-01-24
一、概述
隨著人工智能的不斷發(fā)展和在社會(huì)各個(gè)領(lǐng)域應(yīng)用的不斷深入,人們逐漸切實(shí)領(lǐng)略到其改變?nèi)祟惿罘绞降臐摿?。?shí)際中,存在很多對人類來說較為容易,但卻難以通過數(shù)學(xué)公式表達(dá)的問題,如語音識別、人臉識別。人往往能夠通過經(jīng)驗(yàn)輕松地處理這些問題。由于深度神經(jīng)網(wǎng)絡(luò)能夠從大量的樣本中提取內(nèi)在的語義特征、學(xué)習(xí)經(jīng)驗(yàn)并做出決策,其在處理這類的任務(wù)方面有著出色的表現(xiàn)。神經(jīng)網(wǎng)絡(luò)模型是目前人工智能中表現(xiàn)最為優(yōu)秀的算法之一。
優(yōu)化算法需要大量的數(shù)值計(jì)算,通常情況下是指通過迭代過程更新解的估計(jì)值來解決數(shù)學(xué)問題的算法。最優(yōu)化方法[1]在這個(gè)訓(xùn)練學(xué)習(xí)的過程中起著重要的作用,是求解模型的關(guān)鍵。作為人工智能實(shí)現(xiàn)模塊的核心工具之一,學(xué)習(xí)并掌握一定的優(yōu)化算法的重要性也日趨顯著。教育的變革不應(yīng)當(dāng)僅僅局限于教學(xué)方法探索方面,更應(yīng)該緊跟國家發(fā)展的戰(zhàn)略與方向,與時(shí)俱進(jìn)提出新的教學(xué)理念,緊跟科學(xué)發(fā)展更新教學(xué)內(nèi)容,從而精準(zhǔn)地定位培養(yǎng)目標(biāo)。社會(huì)發(fā)展是課程改革和教育發(fā)展的原動(dòng)力。對當(dāng)代教育來說更應(yīng)該培養(yǎng)學(xué)生在掌握專業(yè)知識的同時(shí),具備將所學(xué)知識應(yīng)用到我國發(fā)展中所面臨的實(shí)際問題的能力。因此,最優(yōu)化方法的課程內(nèi)容如何與當(dāng)前社會(huì)實(shí)際應(yīng)用相匹配、如何體現(xiàn)本課程特色、如何滿足當(dāng)前社會(huì)與行業(yè)的人才需求等問題一直是教學(xué)工作中需要關(guān)注和思考的問題。
二、課程教學(xué)改革的必要性
在 21 世紀(jì),在物聯(lián)網(wǎng)技術(shù)高速發(fā)展的同時(shí),如何培養(yǎng)同時(shí)具備理論分析和實(shí)踐應(yīng)用的創(chuàng)新性人才是極為重要的。這也是最優(yōu)化方法課程改革不可避免要面對的問題。
隨著互聯(lián)網(wǎng)與計(jì)算機(jī)硬件的不斷發(fā)展,近 20 年來,各行各業(yè)都積累了大量的數(shù)據(jù)。人類對數(shù)據(jù)的采集、存儲(chǔ)、傳輸及處理能力飛速提升。因此,亟須有效的數(shù)據(jù)分析算法來合理利用這些數(shù)據(jù)。機(jī)器學(xué)習(xí)[2]恰巧滿足了處理海量數(shù)據(jù)的迫切需求。實(shí)際上,科學(xué)研究的模式方法由傳統(tǒng)的“理論+實(shí)踐”到如今的“理論+實(shí)驗(yàn)+計(jì)算”,以至近年來流行的“數(shù)據(jù)科學(xué)”,機(jī)器學(xué)習(xí)扮演著越來越重要的角色。數(shù)據(jù)科學(xué)的核心是通過對數(shù)據(jù)進(jìn)行分析從而獲取有價(jià)值的信息,數(shù)據(jù)分析是以“計(jì)算”為依托的?,F(xiàn)如今,在多媒體、圖形學(xué)以及網(wǎng)絡(luò)通信、軟件工程,甚至芯片設(shè)計(jì)、體系結(jié)構(gòu)等計(jì)算機(jī)學(xué)科的分支領(lǐng)域中,機(jī)器學(xué)習(xí)的身影無處不在。此外,機(jī)器學(xué)習(xí)已經(jīng)成為推動(dòng)計(jì)算機(jī)視覺、自然語言處理等計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域向前發(fā)展最重要的動(dòng)力源泉。
人工智能的目標(biāo)就是最優(yōu)化,在一個(gè)復(fù)雜的環(huán)境中做出最優(yōu)決策,幾乎所有的人工智能問題都可以建模為一個(gè)優(yōu)化問題。最優(yōu)化理論可以判定人工智能目標(biāo)函數(shù)的最大值、最小值是否存在,并且可以尋找到滿足最優(yōu)目標(biāo)的數(shù)值。機(jī)器學(xué)習(xí)算法在人工智能領(lǐng)域中扮演著至關(guān)重要的角色,是人工智能中的核心技術(shù),將其引入最優(yōu)化課程中,在拓寬學(xué)生知識面的同時(shí)還能夠讓學(xué)生掌握最先進(jìn)的科學(xué)技術(shù),從而提高學(xué)生在就業(yè)中的競爭力。在本科生、研究生教學(xué)中,引導(dǎo)學(xué)生思考、探索最前沿的科學(xué)問題是一項(xiàng)重要的任務(wù)。數(shù)值優(yōu)化算法是機(jī)器學(xué)習(xí)求解的基本策略,所以將其相融合是一個(gè)很自然的想法。這恰恰為學(xué)生創(chuàng)新能力的培養(yǎng)提供了素材。鑒于此,將人工智能中的神經(jīng)網(wǎng)絡(luò)模型引入《最優(yōu)化方法》課程是非常有必要的。
如何將最優(yōu)化方法中被廣泛應(yīng)用的一些工具性算法與其嚴(yán)謹(jǐn)又抽象的數(shù)學(xué)理論相結(jié)合,是廣大數(shù)學(xué)教育工作者堅(jiān)持不懈的目標(biāo)。這種結(jié)合一方面可以使得學(xué)生接受嚴(yán)格數(shù)學(xué)理論的熏陶,培養(yǎng)嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)思維,同時(shí)又能夠熟練掌握相應(yīng)的計(jì)算方法,為后續(xù)課程的學(xué)習(xí)與科學(xué)研究奠定基礎(chǔ)[4-6]。當(dāng)前的最優(yōu)化方法課程教學(xué)內(nèi)容主要包括傳統(tǒng)的凸優(yōu)化算法的基本概念、基本理論、基本方法和基本算法,其重點(diǎn)是理論基礎(chǔ)和基本技術(shù),尚未包含人工智能的相關(guān)內(nèi)容。因此,有必要從求解神經(jīng)網(wǎng)絡(luò)模型的角度對最優(yōu)化方法課程教學(xué)內(nèi)容進(jìn)行更新探索。
三、神經(jīng)網(wǎng)絡(luò)中的優(yōu)化教學(xué)內(nèi)容探索
神經(jīng)網(wǎng)絡(luò)模型是目前最具代表性的人工智能算法。人工智能的目標(biāo)就是最優(yōu)化: 在復(fù)雜環(huán)境與多體交互中做出最優(yōu)決策。幾乎所有的人工智能問題最后都會(huì)歸結(jié)為一個(gè)優(yōu)化問題的求解,因而最優(yōu)化理論與方法是人工智能必備的基礎(chǔ)知識。深度學(xué)習(xí)[3]優(yōu)化算法與純優(yōu)化算法最大的區(qū)別在于目標(biāo)不同。純優(yōu)化是找到優(yōu)化問題的最優(yōu)解,比如能量最小點(diǎn),但是深度學(xué)習(xí)其實(shí)只是借用了純優(yōu)化的手段,最終的目的是讓模型的泛化誤差最小。深度學(xué)習(xí)優(yōu)化算法有很多,例如: SGD( 隨機(jī)梯度下降法) 、動(dòng)量方法、Adagrad 自適應(yīng)學(xué)習(xí)率調(diào)整方法、Adam、Nadam 等。下面首先介紹神經(jīng)網(wǎng)絡(luò)模型,再介紹求解神經(jīng)網(wǎng)絡(luò)模型過程中經(jīng)常使用的優(yōu)化算法: 梯度下降法。
( 一) 神經(jīng)網(wǎng)絡(luò)[2]
神經(jīng)網(wǎng)絡(luò)模型: 假設(shè)有訓(xùn)練樣本集 xi ,yi ( ) :
上圖所示為一個(gè)神經(jīng)元,其輸出 hW,b ( x) = f WT ( )x = f ∑3 i= 1Wixi ( ) +b ,其中 Wi 和 b 為待訓(xùn)練的系數(shù),f: R→R 為給定的“激活函數(shù)”。訓(xùn)練神經(jīng)元就是將給定的數(shù)據(jù)集 xi ,yi ( ) 代入上述神經(jīng)元模型中,通過給定的損失函數(shù)關(guān)于其中的系數(shù) Wi 和 b 進(jìn)行泛函最小化求解。神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如下圖所示:
這里的藍(lán)色圓圈表示輸入,“+1”代表偏置節(jié)點(diǎn),即截距。上圖中最左邊一列為輸入層,最右邊一列為輸出層 ( 本文上例中輸出層為單一節(jié)點(diǎn)) 。中間的部分稱為隱藏層,這是由于中間的隱藏層是通過輸入層與損失函數(shù)數(shù)據(jù)計(jì)算得來的,其具體的值并不能直接觀察得到。下面本文給出一些記號。nl 為神經(jīng)網(wǎng)絡(luò)的層數(shù)( 上例中 nl = 3) ,Ll 表示網(wǎng)絡(luò)的第 l 層( L1 為輸入層,Lnl 為輸出層) ,待訓(xùn)練的網(wǎng)絡(luò)參數(shù)記為 W,b。在 上 例 中 ( ) W,b = W( 1) ,b( 1) ,W( 2) ,b( 2) ( ) ,其 中 W( l) ij ,l = 1,2,( W( 1) ∈ R3×3 , W( 2) ∈R1×3 ) 為第 l 層中第 j 個(gè)神經(jīng)元與第 l+1 層第 i 個(gè)神經(jīng)元聯(lián)結(jié)的參數(shù),即上圖中連線的權(quán)重; b( l) i 是第 l+1 層中第 i 個(gè)神經(jīng)元的偏置。上例神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的前向傳播為: a( 2) 1 = f W( 1) 11 x1+W( 1) 12 x2+W( 1) 13 x3+b( 1) 1 ( ) a( 2) 2 = f W( 1) 21 x1+W( 1) 22 x2+W( 1) 23 x3+b( 1) 2 ( ) a( 2) 3 = f W( 1) 31 x1+W( 1) 32 x2+W( 1) 33 x3+b( 1) 3 ( ) hW,b( x) = a( 3) 1 = f W( 2) 11 a( 2) 1 +W( 2) 12 a( 2) 2 +W( 2) 13 a( 2) 3 +b( 2) 1 ( ) 其中 a( l) i 表示 l 層第 i 個(gè)神經(jīng)元的激活值,且 a( l) i = xi, l = 1。使用 z ( l) i 表示第 l 層第 i 個(gè)單元的輸入加權(quán)和,即: z ( 2) i =∑n j= 1W( 1) ij xj +b( 1) i 則上述神經(jīng)網(wǎng)絡(luò)計(jì)算過程可重新表示為: z ( 2) = W( 1) x+b( 1) a( 2) = f z ( 1) ( ) z ( 3) = W( 2) a( 2) +b( 2) hW,b( x) = a( 3) = f z ( 3) ( )
( 二) 反向傳播與梯度下降法[2]
這部分,本文介紹如何通過反向傳播與梯度下降法求解神經(jīng)網(wǎng)絡(luò)的參數(shù)( W,b) 。首先,設(shè)樣本集為: x( 1) ,y ( 1) ( ) ,…,x( m) ,y ( m) ( ){ } 其為 m 個(gè)樣例構(gòu)成的集合,x 為神經(jīng)網(wǎng)絡(luò)的輸入,y 為期望的輸出值。對于單個(gè)( x,y) ,本文研究的損失函數(shù)為: J( ) W,b; x,y = 1 2 ‖hW,b( x) -y‖2 對于包含 m 個(gè)樣例的數(shù)據(jù)集,整體的損失函數(shù)為: J( W,b) = 1 m ∑ m i= 1 J W,b; x( i) ,y ( i) ( ) [ ] + λ 2 ∑ nl -1 l= 1 ∑ s l i= 1 ∑ s l -1 j= 1 W( l) ji ( ) 2 = 1 m ∑ m i= 1 1 2 ‖hW,b( x( i) ) -y ( i) ‖2 ( )[ ] + λ 2 ∑ nl -1 l= 1 ∑ s l i= 1 ∑ s l -1 j= 1 W( l) ji ( ) 2 為了防止過擬合,增加上式中的正則化項(xiàng)( 第二項(xiàng)) 來降低權(quán)重的值。針對上述損失函數(shù),梯度下降法為按照下列公式更新參數(shù) W 和 b: W( l) ij =W( l) ij -α W( l) ij J( W,b) b( l) i = b( l) i -α b( l) i J( W,b) 這里 α 是學(xué)習(xí)速率。關(guān)于初始化,將參數(shù) W( l) ij 和 b( l) i 初始化為趨近于零的隨機(jī)值( 如正態(tài)分布 N( 0,ε2 ) 生成的隨機(jī)值,可以設(shè)置 ε 為 0.01) 。梯度下降法中一個(gè)重要的步驟為計(jì)算關(guān)于 W 和 b 的偏導(dǎo)數(shù)。由于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的特殊性,可以使用反向傳播來計(jì)算針對單個(gè)樣本的偏導(dǎo)數(shù)W( l) ij J( ) W,b; x,y 和 b( l) i J( ) W,b; x,y ,進(jìn)而得到整體損失函數(shù) J( W,b) 的偏導(dǎo)數(shù): W( l) ij J( W,b) = 1 m ∑ m i= 1 W( l) ij J( W,b; x( i) ,y ( i) ) [ ] +λW( l) ij b( l) i J( W,b) = 1 m ∑ m i= 1 b( l) i J( W,b; x( i) ,y ( i) ) [ ]
反向傳播的主要思路為給定樣本( x,y) ,首先進(jìn)行“前向傳播”得到神經(jīng)網(wǎng)絡(luò)中所有的激活值以及神經(jīng)網(wǎng)絡(luò)最后的輸出值 hW,b ( x) 。然后,對每層的每個(gè)節(jié)點(diǎn)計(jì)算殘差 δ ( l) i ,其表示此節(jié)點(diǎn)對最終神經(jīng)網(wǎng)絡(luò)的輸出值的殘差的影響。對于殘差,首先可直接算出神經(jīng)網(wǎng)絡(luò)輸出與實(shí)際真實(shí)值之間的差,并記其為 δ ( nl ) i 。然后依次從后往前,可以計(jì)算出中間隱藏單元的殘差。具體的細(xì)節(jié)為: ( 1) 根據(jù)前向傳導(dǎo)公式,依次得到 L2,L3,…,Lnl 層的激活值。 ( 2) 對輸出層( 第 nl 層) 的每個(gè)輸出單元 i,殘差計(jì)算公式為: δ ( nl ) i = z ( nl ) i 1 2 ‖y-hW,b( x) ‖2 = - yi-a( nl ) i ( ) ·f' z ( nl ) i ( ) ( 3) 對 l = nl-1,nl-2,nl-3,…,2 層第 i 個(gè)節(jié)點(diǎn),殘差的計(jì)算公式為: δ ( l) i = ∑ s l +1 j= 1 W( l) ji δ ( l+1) j ( ) ·f' z ( l) i ( ) ( 4) 計(jì)算 W( l) ij J( ) W,b; x,y 與 b( l) i J( ) W,b; x,y ,具體公式為: W( l) ij J( ) W,b; x,y = a( l) j δ ( l+1) i b( l) i J( ) W,b; x,y = δ ( l+1)
上述的計(jì)算過程可以表示為矩陣運(yùn)算的形式。本文使用符號“·”來表示向量阿達(dá)瑪乘積( 若 a = b·c,則 ai = bici ) 。具體的反向傳導(dǎo)矩陣運(yùn)算步驟為: ( 1) 根據(jù)前向傳導(dǎo)公式,依次得到 L2,L3,…,Lnl 層的激活值。 ( 2) 對輸出層( 第 nl 層) ,殘差計(jì)算公式為: δ ( nl ) = - y-a( nl ) ( ) ·f' z ( nl ) ( ) ( 3) 對 l = nl - 1,nl - 2,nl - 3,…,2 層,殘差的計(jì)算公式為: δ ( l) = W( l) ( ) T δ ( l+1) ( ) ·f' z ( l) ( ) ( 4) 計(jì)算所需的偏導(dǎo)數(shù),具體公式為: #W( l) J( ) W,b; x,y = δ ( l+1) a( l) ( ) T #b( l) J( ) W,b; x,y = δ ( l+1) 下面,梯度下降法中的一次迭代過程可以總結(jié)為: ( 1) 對所有的 l,令 ΔW( l) : = 0,Δb( l) : = 0。 ( 2) 對 i = 1…m, ①反向傳播算法計(jì)算#W( l) J( W,b; x,y) 和#b( l) J( W,b; x,y) ; ②計(jì)算 ΔW( l) : =ΔW( l) +#W( l) J( ) W,b; x,y ; ③計(jì)算 Δb( l) : =Δb( l) +#b( l) J( ) W,b; x,y 。 ( 3) 更新權(quán)重 W 和 b: W( l) = W( l) -α 1 m ΔW( l) ( ) +λW( l) [ ] b( l) = b( l) -α 1 m Δb( l) [ ] 通過梯度下降法迭代過程,減小代價(jià)函數(shù) J( W,b) ,得到最優(yōu)的參數(shù) W 和 b。
結(jié)論
“人工智能”不僅是一項(xiàng)科學(xué)技術(shù),更是一種可以認(rèn)識當(dāng)下萬事萬物的思維方式。本文基于應(yīng)用這樣的認(rèn)知邏輯到實(shí)際問題中,從教育的角度出發(fā),將人工智能中的神經(jīng)網(wǎng)絡(luò)算法求解融入最優(yōu)化方法課程內(nèi)容當(dāng)中。希望把握國家發(fā)展戰(zhàn)略與教育變革發(fā)展方向,探索實(shí)現(xiàn)教育變革的路徑,使得學(xué)校教育緊跟時(shí)代發(fā)展的步調(diào)與方向。此外,當(dāng)前機(jī)器學(xué)習(xí)取得的一系列優(yōu)秀成果使得其被廣泛應(yīng)用到各行各業(yè),機(jī)器已經(jīng)開始取代一些器械重復(fù)性的工作。在此趨勢之下,學(xué)生對于神經(jīng)網(wǎng)絡(luò)原理與最優(yōu)化方法的學(xué)習(xí)與掌握將極大地提高其在就業(yè)市場的核心競爭力?!蹲顑?yōu)化方法》改革建議: 在向同學(xué)們講解一般的優(yōu)化方法的同時(shí),也介紹一些神經(jīng)網(wǎng)絡(luò)優(yōu)化中出現(xiàn)的問題及一般的解決辦法。同時(shí)將神經(jīng)網(wǎng)絡(luò)優(yōu)化中的實(shí)際問題提煉出來交給學(xué)生去做,讓學(xué)生通過查閱文獻(xiàn)、交流討論、編程實(shí)現(xiàn)來解決實(shí)際問題并對其中的問題做相應(yīng)的理論分析。這不僅能夠使得教學(xué)內(nèi)容與時(shí)俱進(jìn),提高學(xué)生對最優(yōu)化方法的理解,同時(shí)也能鍛煉學(xué)生查閱資料、合作與動(dòng)手能力。
論文指導(dǎo) >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >