楊迪威,邊家文,張玉潔
(中國(guó)地質(zhì)大學(xué) 數(shù)理學(xué)院,湖北 武漢 430074)
多元向量值函數(shù)求導(dǎo)的矩陣表示及其在人工神經(jīng)網(wǎng)絡(luò)中的應(yīng)用
楊迪威,邊家文,張玉潔
(中國(guó)地質(zhì)大學(xué) 數(shù)理學(xué)院,湖北 武漢 430074)
在介紹多元向量值函數(shù)求導(dǎo)的矩陣表示的基礎(chǔ)上,給出了梯度下降法的工作原理及其訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過(guò)程,最后通過(guò)Matlab仿真實(shí)驗(yàn)驗(yàn)證了梯度下降法的有效性.
人工神經(jīng)網(wǎng)絡(luò); 深度學(xué)習(xí); 梯度下降法; 多元函數(shù)導(dǎo)數(shù)的矩陣表示
2016年3月,谷歌Deep Mind團(tuán)隊(duì)開(kāi)發(fā)出的一款圍棋人工智能程序——阿爾法圍棋(AlphaGo)戰(zhàn)勝了世界圍棋冠軍李世石,這讓世人驚嘆于人工智能迅猛發(fā)展的同時(shí),也讓人們認(rèn)識(shí)到一種新的機(jī)器學(xué)習(xí)技術(shù)——深度學(xué)習(xí)(Deep Learning)[1].深度學(xué)習(xí)是一種深層的人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network)[2-3],試圖通過(guò)模擬大腦認(rèn)知的機(jī)理去解決機(jī)器學(xué)習(xí)中的問(wèn)題[4-5].目前,深度學(xué)習(xí)有三大基礎(chǔ)網(wǎng)絡(luò)模型:自編碼器(Auto Encoder, AE)網(wǎng)絡(luò)、受限玻爾茲曼機(jī)(Restricted Boltzmann Machine, RBM)以及卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network, CNN),而這3種模型均采用梯度下降法(Gradient Descent)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練[6-7].因此,深入理解梯度下降法對(duì)掌握此項(xiàng)新的機(jī)器學(xué)習(xí)技術(shù)是非常必要的.為此,筆者將從高等數(shù)學(xué)中多元函數(shù)導(dǎo)數(shù)、梯度等基本概念出發(fā)[8],深入淺出地介紹梯度下降法的工作原理及其訓(xùn)練神經(jīng)網(wǎng)絡(luò)的算法過(guò)程,最后通過(guò)在Matlab[9]環(huán)境下函數(shù)擬合仿真實(shí)驗(yàn)驗(yàn)證梯度下降法的有效性.
多元向量值函數(shù)是一種具有多個(gè)自變量和多個(gè)因變量的結(jié)構(gòu)復(fù)雜函數(shù),為了便于研究多元向量值函數(shù)求導(dǎo)規(guī)律,先給出多元向量值函數(shù)導(dǎo)數(shù)的矩陣表示.
1.1 多元向量值函數(shù)導(dǎo)數(shù)的矩陣表示
定義1多元函數(shù)的導(dǎo)數(shù).設(shè)x=(x1,…,xm)T,則多元函數(shù)y=f(x)的導(dǎo)數(shù)定義為
(1)
定義2多元向量值函數(shù)的導(dǎo)數(shù).設(shè)x=(x1,…,xm)T,y=(y1,…,yn)T,多元向量值函數(shù)y=f(x)為
(2)
其中,fi(x)(i=1,2,…,n)為m元函數(shù),則多元向量值函數(shù)y=f(x)的導(dǎo)數(shù)定義為
(3)
根據(jù)定義2,容易得出結(jié)論:
結(jié)論2 設(shè)o=(o1,…,om)T,z=(z1,…,zm)T,若多元向量值函數(shù)o=f(z)定義為
(4)
dodz=f'(z1)0…00f'(z2)…0??…?00…f'(zm)?è??????÷÷÷÷
?diag(f′(z1),f′(z2),…,f′(zm)) ,
(5)
(6)
1.2 多元向量值函數(shù)的求導(dǎo)法則根據(jù)多元向量值函數(shù)的導(dǎo)數(shù)的矩陣表示,可以得到其運(yùn)算規(guī)律.
(7)
(8)
本文只給出乘法法則的證明.
1.3 梯度下降法已知多元函數(shù)對(duì)各個(gè)自變量的偏導(dǎo)數(shù)組成的向量也稱為梯度,表示該函數(shù)的方向?qū)?shù)取到最大值的方向[8].在幾何上,函數(shù)的梯度又代表著該函數(shù)等值線的法線方向.基于這些特點(diǎn),函數(shù)梯度可以被用于求函數(shù)極值問(wèn)題.圖1給出了二元函數(shù)z=x2+2y2的等值線,為了找到該函數(shù)的極小值點(diǎn),可以先在定義域平面內(nèi)隨機(jī)地找一點(diǎn)x0,求出該點(diǎn)的梯度,并沿著梯度所指相反方向以設(shè)定的步長(zhǎng)(學(xué)習(xí)率)lr移動(dòng)到點(diǎn)x1,接著用類似的方法循環(huán)迭代依次找到點(diǎn)x2,x3,…,最終可以不斷逼近該函數(shù)的極小值點(diǎn).上述過(guò)程就是優(yōu)化算法中常用的梯度下降法的工作原理[7].
2 梯度下降法在人工神經(jīng)網(wǎng)絡(luò)中的應(yīng)用
梯度下降法是神經(jīng)網(wǎng)絡(luò)中基礎(chǔ)訓(xùn)練算法,比如,深度學(xué)習(xí)中的三大基本模型:自編碼器、受限玻爾茲曼機(jī)以及卷積神經(jīng)網(wǎng)絡(luò)均采用梯度下降法對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練.以三層BP神經(jīng)網(wǎng)絡(luò)為例(如圖2所示),介紹梯度下降法訓(xùn)練神經(jīng)網(wǎng)絡(luò)的算法過(guò)程.
算法主要包含2個(gè)過(guò)程,第一個(gè)過(guò)程,利用樣本輸入向前逐層計(jì)算,得到網(wǎng)絡(luò)輸出;第二個(gè)過(guò)程,以期望(樣本)輸出與網(wǎng)絡(luò)實(shí)際輸出之間誤差為目標(biāo)函數(shù),利用梯度下降法反向逐層調(diào)整網(wǎng)絡(luò)參數(shù).2個(gè)過(guò)程迭代進(jìn)行,以期目標(biāo)函數(shù)達(dá)到最?。?/p>
(10)
z2=W2o1+b2,o2=z2.
(11)
2.2 誤差的反向傳播給定網(wǎng)絡(luò)期望(樣本)輸出y=(y1,…,yn)T,可得到網(wǎng)絡(luò)誤差為
(12)
按照梯度下降法對(duì)各層的權(quán)值和偏置進(jìn)行修正,使得網(wǎng)絡(luò)誤差最小化.
(13)
通常δ2稱為輸出層的靈敏度.于是可進(jìn)一步根據(jù)式(11),求得隱層與輸出層之間權(quán)值和偏置的導(dǎo)數(shù)表達(dá)式為
(14)
(15)
從而按照梯度下降法,得到對(duì)隱層與輸出層之間權(quán)值和偏置的修正
(16)
其中,lr稱為學(xué)習(xí)率,為一個(gè)預(yù)先設(shè)定的常數(shù).
2) 隱層計(jì)算 類似于輸出層的計(jì)算過(guò)程,首先求隱層的靈敏度
(o1?(1-o1))?((W2)T·δ2)?δ1,
(17)
其中,?表示向量對(duì)應(yīng)元素相乘.其次,可根據(jù)式(10)得到輸入層與隱層間的權(quán)值和偏置的導(dǎo)數(shù)表達(dá)式
(18)
(19)
最終,得到對(duì)W1和b1的修正
(20)
給定函數(shù)f(x)=x2+x+1,在區(qū)間[-2,2]上等間距抽取數(shù)據(jù)點(diǎn)xk,k=1,2,…,K,相應(yīng)地取yk=f(xk)+εk,其中εk為服從均值為零、均方差為0.5的獨(dú)立同分布高斯噪聲,建立圖2所示的3層神經(jīng)網(wǎng)絡(luò),并對(duì)該函數(shù)進(jìn)行擬合.
在Matlab環(huán)境下,求解過(guò)程如下:
首先,構(gòu)造神經(jīng)網(wǎng)絡(luò)中的sigmoid函數(shù):
functiony=sigmoid(x)
y=1./(1+exp(-x));
end
然后,使用梯度下降法對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練:
x=-2:0.1:2;y=x.^2+x+1;y=y+normrnd(0,0.5); %產(chǎn)生含噪樣本
%%%max_epoch為訓(xùn)練次數(shù);err_goal為期望誤差最小值;lr為學(xué)習(xí)率%%%
max_epoch=10000;err_goal=0.001;lr=0.1;
%%%m為輸入層維數(shù);p為隱節(jié)點(diǎn)數(shù);k為樣本個(gè)數(shù);n為輸出層維數(shù)%%%
[m,k]=size(x);p=12;[n,k]=size(y);
%網(wǎng)絡(luò)參數(shù)初始化
w1=rands(p,m);b1=rands(p,1);w2=rands(n,p);b2=rands(n,1);
forepoch=1:max_epoch
o1=sigmoid(w1*x+repmat(b1,[1,k])); %計(jì)算隱含層的輸出
o2=w2*o1+repmat(b2,[1,k]); %計(jì)算輸出層輸出
E=( (o2-y)’*(o2-y) )/2; %網(wǎng)絡(luò)輸出與期望輸出誤差
if(E %%%%調(diào)整輸出層權(quán)值和偏置%%%% e=o2-y; delta2=e; %輸出層靈敏度 dw2=delta2*o1’/k;db2=mean(delta2,2); %輸出層權(quán)值和偏置的梯度 w2=w2-lr*dw2;b2=b2-lr*db2; %輸出層權(quán)值和偏置的修正 %%%%調(diào)整隱含層權(quán)值和偏置%%%% delta1=(o1.*(1-o1) ).* (w2’*delta2 ); %隱含層靈敏度 dw1=delta1*x’/k;db1=mean(delta1,2); %隱含層權(quán)值和偏置的梯度 w1=w1-lr*dw1;b1=b1-lr*db1; %隱含層權(quán)值和偏置的修正 end %%%%訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)對(duì)函數(shù)擬合%%% o1=sigmoid(w1*x+repmat(b1,[1,k])); o2=w2*o1+repmat(b2,[1,k]); plot(x,y,’o’,x,o2,’-’); %繪制擬合結(jié)果 xlabel(’x’);ylabel(’y’);legend(’樣本’,’擬合曲線’) 圖3為函數(shù)f(x)=x2+x+1的擬合效果圖.從圖3中容易看到,用神經(jīng)網(wǎng)絡(luò)對(duì)函數(shù)擬合能取得較好的效果.因此,梯度下降法是一種十分有效的神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法. 介紹了多元向量值函數(shù)導(dǎo)數(shù)的矩陣表示法及其運(yùn)算性質(zhì),并將其應(yīng)用于神經(jīng)網(wǎng)絡(luò)參數(shù)訓(xùn)練,最后Matlab仿真實(shí)驗(yàn)展示了多元向量值函數(shù)求導(dǎo)在神經(jīng)網(wǎng)絡(luò)中應(yīng)用的有效性,擴(kuò)展了《高等數(shù)學(xué)》多元函數(shù)導(dǎo)數(shù)的學(xué)習(xí)內(nèi)容,同時(shí)將高等數(shù)學(xué)中多元微分學(xué)基本概念和方法應(yīng)用于人工智能前沿領(lǐng)域,有益于培養(yǎng)學(xué)生對(duì)數(shù)學(xué)知識(shí)的興趣,激發(fā)學(xué)生的學(xué)習(xí)熱情. [1] 田淵棟. 阿法狗圍棋系統(tǒng)的簡(jiǎn)要分析[J]. 自動(dòng)化學(xué)報(bào). 2016, 42(5): 671-675. [2] 王小川.Matlab神經(jīng)網(wǎng)絡(luò)43個(gè)案例分析[M]. 北京:北京航空航天大學(xué)出版社, 2013. [3] 焦李成,楊淑媛,劉芳,等. 神經(jīng)網(wǎng)絡(luò)七十年:回顧與展望[J]. 計(jì)算機(jī)學(xué)報(bào). 2016, 39(5): 1-22. [4] 余凱,賈磊,陳雨強(qiáng),等. 深度學(xué)習(xí)的昨天、今天和明天[J]. 計(jì)算機(jī)研究與發(fā)展. 2013, 50(9): 1 799-1 804. [5] 郭麗麗,丁世飛. 深度學(xué)習(xí)研究進(jìn)展[J]. 計(jì)算機(jī)科學(xué). 2015(5): 28-33. [6] 劉建偉,劉媛,羅雄麟. 深度學(xué)習(xí)研究進(jìn)展[J]. 計(jì)算機(jī)應(yīng)用研究. 2014, 31(7): 1 921-1 930. [7] 劉穎超,張紀(jì)元. 梯度下降法[J]. 南京理工大學(xué)學(xué)報(bào). 1993, 68(2): 12-16. [8] 同濟(jì)大學(xué)數(shù)學(xué)系. 高等數(shù)學(xué)[M].7版.北京: 高等教育出版社, 2015. [9] 任玉杰. 高等數(shù)學(xué)及其Matlab實(shí)現(xiàn)輔導(dǎo)[M]. 廣州:中山大學(xué)出版社, 2013. Matrix Representation of Derivative of Multivariate Vector Function and Its Application in Artificial Neural Network Yang Diwei, Bian Jiawen, Zhang Yujie (School of Mathematics and Physics, China University of Geosciences, Wuhan 430074, China) In the report, based on the introduction of the matrix representation of partial derivative of multivariate vector function, the operating principle of gradient-descent algorithm and its application in artificial neural network were proposed. The effectiveness of gradient-descent algorithm was proved by a Matlab simulation. artificial neural network; deep learning; gradient descent; matrix representation of partial derivative of multivariate function 2016-05-26 中國(guó)地質(zhì)大學(xué)(武漢)本科教學(xué)工程(ZL201634);實(shí)驗(yàn)室基金(GBL31513) 楊迪威(1980-),男,湖北恩施人,講師,博士,研究方向:機(jī)器學(xué)習(xí)與圖像處理,E-mail: yangdw@cug.edu.cn 1004-1729(2016)04-0313-06 O 172 A DOl:10.15886/j.cnki.hdxbzkb.2016.00474 小 結(jié)