李勝東 呂學強
1(中國人民大學信息學院 北京 100872)2(廊坊燕京職業技術學院計算機工程系 河北廊坊 065200)3(網絡文化與數字傳播北京市重點實驗室(北京信息科技大學) 北京 100101)
圖片問答是讓機器根據圖片回答自然語言問題.通用的模型采用卷積神經網絡(convoltional neural networks, CNN)抽取全局圖片特征,采用長短期記憶網絡(long short-term memory, LSTM)抽取問題特征,然后將這2種特征融合后以推斷問題答案.對于簡單問題,這種模型能夠得到較好的結果.但當問題比較復雜時,為了過濾掉噪聲信息,需要對問題進行多步推理才能準確定位答案相關的局部圖片區域.此時,該模型往往不能得到準確答案.為了解決該問題,文獻[1]提出堆疊注意力網絡(stacked attention networks, SANs).該模型在4個公開的視覺問答數據集上進行綜合評估,其性能都顯著超過當時最好的結果.
雖然SANs模型在解決圖片問答問題時取得良好的效果,但問題的復雜多樣性和答案的稀疏性導致該模型不能完全學習到語料的普遍規律.這容易使該模型因陷入不好的局部最優解而引發模型定位到錯誤區域,從而導致問答錯誤.統計表明,該類錯誤占測試錯誤總數的22%[1],如圖1所示:

Fig. 1 Model locates the wrong area and causes errors圖1 模型定位到錯誤區域而導致錯誤
圖1中的問題是What swim in the ocean near two large ferries?.該問題是What類型,答案應該為object.圖1(a)中的object有clouds,sky,boats,ducks,ocean.根據圖1(b),第1步推理定位的答案為object(boats,ducks)和概念(swim in the ocean,near two large ferries).根據圖1(c),模型在第1步推理的基礎上進行第2步推理,初步定位到boats和ducks.由于它們的形狀相似,而boats更大且更容易識別,模型最終定位到boats.這導致模型預測錯誤答案(boats),而不是正確答案(ducks).
為了解決該問題,對隨機梯度下降算法進行調研和分析,提出基于圖片問答的靜態重啟隨機梯度下降算法.本文的主要貢獻有4個方面:
1) 重啟的思想與隨機梯度下降算法融合,提出基于靜態重啟的隨機梯度下降算法.該算法優化SANs模型,提出基于圖片問答的靜態重啟隨機梯度下降算法.實驗結果和分析表明它的準確率比基于圖片問答的動量隨機梯度下降算法提高0.29%,但其收斂速度慢于基于圖片問答的動量隨機梯度下降算法.
2) 為了驗證改善的顯著性,對實驗結果進行統計假設檢驗.T檢驗結果證明在收斂到全局最優解的過程中它的改善性能在統計意義上是極其顯著的.
3) 為了驗證它在同類算法中的有效性,本文將它和當前最好的一階優化算法RmsProp,Adam,AdaDelta進行有效性實驗.實驗結果和分析證明它在解決圖片問答問題時更有效.
4) 算法的泛化性能與數據集的選取有關.算法的推廣價值與任務的選擇有關.為了驗證它的泛化性能和推廣價值,針對圖像識別任務,在經典的Cifar-10數據集上進行圖像識別實驗.實驗結果和T檢驗結果證明它在收斂到全局最優解的過程中具有良好的泛化性能和較好的推廣價值.
若求解機器學習算法中的模型參數,并對算法中的目標函數進行優化以找到它的最小值,梯度下降是最常用的方法之一.該算法沿著導數的方向逐步收斂到函數的最優解.


(1)
梯度下降算法簡單、可操作性強,在深度學習和機器學習領域得到廣泛的應用.但該算法收斂速度極慢且容易陷入局部最優解.為了解決這2個缺點,研究人員提出隨機梯度下降算法.

xz+1=xz-ηz×gz.
(2)
雖然隨機梯度下降算法在不同程度上解決梯度下降算法的2個缺陷,但為了使它能夠針對具體問題獲得最佳的處理效果,眾多研究人員針對具體問題特性對它優化深度學習和機器學習問題進行大量研究,提出它的很多變種,取得較滿意的效果.Yang等人[1]采用基于動量的隨機梯度下降算法優化圖片問答模型,提出SANs模型,解決圖片問答問題;Wu等人[3]采用基于最小批的隨機梯度下降算法優化圖片問答模型,提出將圖片內容與外部知識庫提取的信息級聯在一起進行多元輸入的模型,解決自由形式的視覺問答問題;Yu等人[4]采用基于動量和最小批的隨機梯度下降算法優化圖片問答模型,提出多層注意力網絡(multi-level attention network,MLAN),解決圖片問答問題;Gu等人[5]和Lu等人[6]采用Rmsprop算法優化圖片問答模型,較好地解決圖片問答問題;Anderson等人[7]采用基于最小批的AdaDelta算法優化圖片問答模型,提出自下而上和自上而下相結合的注意力機制,解決圖片問答問題;Loshchilov 等人[8]將重啟的思想應用到多模態學習問題中,提出基于重啟的隨機梯度算法,解決分類問題;Bianchi 等人[9]在隨機梯度下降算法基礎上提出一種新的多機系統的分布式約束的非凸優化算法的收斂性分析框架;姜紀遠等人[10]針對隨機梯度下降算法在求解強凸優化中的正則優化問題時的收斂速度過慢的問題,將COMID算法和α-suffix平均技巧結合,提出LIMD -α算法;楊雙濤等人[11]提出異步雙隨機梯度算法,解決異步單隨機梯度算法在集群環境中的通信沖突問題;陳振宏等人[12]針對基于模型合并的大規模隨機梯度下降算法忽略參與合并模型的內在差異性而導致模型收斂速度慢和性能較差的問題,提出基于模型差異的合并策略;李平等人[13]采用基于隨機梯度下降的邏輯回歸方法進行文本情感分類,并利用模擬退火原理自適應選擇步長,解決隨機梯度下降算法中步長難以確定的問題;王功鵬等人[14]提出自適應更新學習率的隨機梯度下降算法,解決學習率參數設置不當對隨機梯度下降算法造成的不利影響.
總之,隨機梯度下降算法在一定程度上解決梯度下降算法的2個明顯缺陷,具有廣泛的應用場景和良好的應用效果.在具體應用場景中,需要針對具體問題對隨機梯度下降算法進行改進,得到隨機梯度下降算法的變種.常用的改進方法有設置最小批、在算法中加入動量、調整學習率等.改進后的隨機梯度下降算法與其他算法相結合,使目標函數逐步收斂到最小值點,從而達到算法優化的目的.
本文借鑒隨機梯度下降算法改進的常規思路,分析隨機梯度下降算法的工作原理和工作機制,同時考慮數據集的特點,在SANs模型的基礎上提出基于圖片問答的靜態重啟隨機梯度下降算法.
若初始學習率設置不當,隨機梯度下降算法在優化深度神經網絡時易陷入局部最優解.在算法中引入動量后,可以幫助深度神經網絡跳出局部最優解的限制.基于動量的隨機梯度下降算法通過多次迭代在目標函數值遞減的方向上累積1個速度矢量以加速梯度下降[15].
設vz表示當前的速度矢量,γ表示動量系數.該算法的數學表達形式[15]為
vz+1=vz×γ-ηz×gz,
(3)
xz+1=xz+vz+1.
(4)
該算法僅僅增加一部分之前的速度矢量.當梯度下降保持原來的方向時,它能增加下降的步幅,從而更快地到達最小值點;當梯度下降改變方向時,它能使改變量平滑一點,這對于不好的網絡初始值具有重要的彌補作用[15].因此,它能使深度神經網絡較快地達到最小值點而沒有太多震蕩.它優化SANs模型,在4個公開的視覺問答數據集中獲得當時最好的結果,本文將其作為評估基準.
隨機梯度下降算法常用于解決機器學習算法中的參數優化問題.如果考慮隨機性,重啟的思想能夠用于隨機梯度下降算法[8].在深度神經網絡中,梯度和目標函數值可以從一個最小批到下一個最小批的范圍內變化,故重啟算法也能夠用于深度神經網絡.深度神經網絡的解空間類似于無邊無際、高低起伏、綿延不絕的高山組成的峽谷,隨機梯度下降算法優化的目標是找到峽谷的最低點,即目標函數值最小的點.目前的方法采用海量數據訓練深度神經網絡,通過隨機梯度下降算法優化該網絡,盡可能地在解空間中找到這個全局最低點.但隨機梯度下降算法在優化深度神經網絡時,若設置較大的學習率,算法收斂速度快,容易跳過最低點;若設置較小的學習率,算法收斂速度慢,且容易陷入不好的局部最低點.為了在圖片問答任務中解決該問題,提出基于圖片問答的靜態重啟隨機梯度下降算法.該算法在搜索局部最優解的過程中采用退火策略,使學習率由大到小逐步減小,解決學習率過大造成算法跳過最優解的問題,同時使收斂速度適中;當最優解不是全局最優解或算法陷入不好的局部最優解時,采用靜態重啟策略給算法一個較大的重啟學習率,使算法能跳出局部最優解,并繼續尋找全局最優解.在理論上,該算法能夠找到全局最優解,提高深度神經網絡的性能.
設ω表示當前最小批數,e表示訓練次數,β表示重啟周期的最小批數,φ表示重啟縮放因子,ηmax表示學習率變化的上界,ηmin表示學習率變化的下界,σ表示學習率變化率.
若ω%β=0,ηz≥ηmin,則更新學習率:
ηz+1=ηz×σ.
(5)
若ω%β≠0,ηz≥ηmin,則更新學習率:
ηz+1=ηz.
(6)
若ω%β=0,ηz<ηmin,則更新學習率:
ηz+1=ηmax×φ.
(7)
靜態重啟算法中的學習率更新隨機梯度下降算法中的學習率,提出基于靜態重啟的隨機梯度下降算法.該算法優化SANs模型,提出基于圖片問答的靜態重啟隨機梯度下降算法.它通過自適應地調節學習率尋求圖片問答的全局最優解.若SANs模型接近極值點時,它緩慢地給予模型一個較小的學習率,便于模型逐步收斂到局部最優解;若該最優解不是全局最優解時,通過重啟算法給予模型一個較大的學習率,便于模型跳出不好的局部最優解,并試探性地找到全局最優解.為了防止通過重啟而獲得的學習率太大,導致模型跳到下一個不好的局部最優解的附近,在重啟時通過重啟縮放因子調節重啟學習率,使它在合理的范圍內變化.
基于堆疊注意力網絡的圖片問答模型由基于CNN的圖片模型、基于CNN的問題模型、基于attention的堆疊注意力模型組成.
圖片模型用于抽取圖片特征,一般采用CNN[16]模型,很少一部分采用Faster R-CNN[17]框架.CNN模型可以采用VGGNet[18],ResNet[19],GoogLeNet[20]實現.
本文采用基于VGGNet的CNN模型抽取圖片特征[1].經過VGGNet處理,維度為448×448的原始圖片抽取維度為14×14的圖片特征.每個維度的圖片特征是一個1×512維的局部圖片特征向量.這些特征向量不是來自最后的全連接層,而是來自最后的池化層.因為這一層保留原始圖片的空間信息,故采用這一層的圖片特征能夠收到更好的效果.最后,1×512維的局部圖片特征向量通過單層感知機轉換成與問題向量同維度的新特征向量Ii(i=0,2,…,195).196個新特征向量形成圖片特征矩陣I,用于在堆疊注意力模型中與問題特征進行特征融合.
問題模型用于抽取問題特征,常采用BOW(bag of words)[21],GRU(gated recurrent unit)[22],LSTM[23],RNN(recurrent neural network)[24],CNN[1]實現.


對于簡單問題,單層模型足以準確定位答案相關的局部圖片區域.但對于復雜問題,需要多層模型進行多步推理才能準確定位答案相關的局部圖片區域.多層模型與單層模型類似,唯一的區別是輸入層中用前一層的查詢向量替代Q,其他都不變.如果需要k層模型才能準確定位答案相關的局部圖片區域,那么采用qk作為查詢向量推斷最終答案[1].本文采用2層模型,因為3層或者更多層模型不能進一步改進問答性能[1].
本文在基于SANs的圖片問答模型上評估基于圖片問答的靜態重啟隨機梯度下降算法.基準算法為基于圖片問答的動量隨機梯度下降算法.評估方法為視覺問答評估算法,根據問答評估結果評估算法性能.評估數據為最復雜的VQAv1數據集.
常用的圖片問答數據集有DAQUAR[25],COCO-QA[26],Visual7W[27],VQA[28],FM-IQA[29].
本文采用最復雜的VQAv1數據集.該數據集包含82 783個訓練集圖片和40 504個驗證集圖片.每個圖片有3個問題,每個問題有10個答案.答案由10個不同人進行標注,故這10個答案可能相同,也可能不相同.問題類型較多,答案長度也不同,最長為17個單詞.
在對數據集進行預處理時,統計答案出現的頻次,根據頻次對答案進行降序排列,然后抽取前1 000個高頻答案(占答案總數的82.67%[1])作為對問題進行分類的類標簽.訓練集用于訓練模型;驗證集一分為二[1],分別作為驗證集和測試集,用于驗證訓練的模型和測試訓練的模型.
根據VQAv1數據集的特點,每個問題有10個答案,它們可能相同,也可能不同,故圖片問答模型對該數據集的評估方法不能采用機器學習和深度學習中常用的評估算法,只能采用文獻[30]中的視覺問答度量方法,該方法的數學表達形式為
acc(a)=min((#humans that saida)/3,1).
(8)
它是一個全新的評估指標.只要人工標注的10個答案中有3個或3個以上的答案跟機器給予的答案匹配,就評估機器對該問題的回答完全正確;否則,評估機器對該問題的回答部分正確.除此之外,在評估之前,對機器產生的答案和人工標注的答案進行預處理,僅僅保留答案中的核心詞.因此,該評估算法對不同人對同一個答案的不同表達形式具有較強的魯棒性,能夠產生比較客觀且準確的評估結果,從而保證該算法評估圖片問答結果的有效性和可靠性.
在基準算法實驗中,γ=0.9,β=1 000,e=50,η0=0.1.根據訓練數據量和訓練次數,最小批的總數為145 400.算法每經過β個最小批的訓練更新一次學習率.在更新學習率時,測試集測試訓練的模型,并輸出1個測試結果.因此,算法共得到146個測試結果,從中獲得全局最優結果作為算法的實驗結果.
在基于圖片問答的靜態重啟隨機梯度下降算法實驗中,σ=0.9,ηmax=0.1,ηmin=0.000 5,φ=0.5,其他模型配置與基準算法一致.
根據上述實驗配置,得到實驗結果.為了便于在同一數量級下比較實驗結果中的各個參數之間的變化趨勢,學習率值放大到原來的30倍,最小批數縮小到原來的150 000,得到圖片問答結果acc(a)隨當前最小批數ω、學習率η、目標函數值loss變化的實驗結果,如圖2和圖3所示:

Fig. 2 The experimental results of baseline圖2 基準算法的實驗結果

Fig. 3 The experimental results of static restart stochastic gradient descent圖3 靜態重啟隨機梯度下降算法的實驗結果
為了全面評估算法特性,本文抽取圖2和圖3中的全局最優實驗結果和高性能算法在達到低性能算法的全局最優實驗結果時的結果,如表1所示.在表1中,M和R分別表示基準算法和基于圖片問答的靜態重啟隨機梯度下降算法;符號=的左側是高性能算法,其右側是低性能算法.

Table 1 The Global Optimal Experimental Results表1 全局最優實驗結果
根據圖2所示,在學習率不變的條件下,基準算法在優化圖片問答模型時,隨著最小批數增加,目標函數值沿著比較平滑的單調曲線方向逐漸減小,圖片問答評估結果沿著比較平滑的單調曲線方向逐漸增加.對于局部異常點,比如第25個結果,目標函數值驟然上升,相應的圖片問答結果也急劇下降.因此,基準算法在優化圖片問答模型時,各個參數與結果之間的變化是合理的,說明它的實驗結果是可信的和有效的.
根據圖3所示,基于圖片問答的靜態重啟隨機梯度下降算法在優化圖片問答模型時,隨著最小批數增加,學習率在0.1和0.000 5或者0.05和0.000 5之間上下波動,目標函數值也相應地比較平緩地上下變化,圖片問答評估結果沿著目標函數值曲線的單調性相反的方向變化.因此,基于圖片問答的靜態重啟隨機梯度下降算法在優化圖片問答模型時,各個參數與結果之間的變化是合理的,沒有發現異常情況,說明它的實驗結果是可信的和有效的.
根據表1所示,基準算法在ω=78 000時獲得全局最優實驗結果,其值為52.18%;基于圖片問答的靜態重啟隨機梯度下降算法在ω=137 000時獲得全局最優實驗結果,其值為52.47%;基于圖片問答的靜態重啟隨機梯度下降算法在ω=114 000時能夠收斂到與基準算法的全局最優實驗結果相同的結果,其值為52.2%.因此,基于圖片問答的靜態重啟隨機梯度下降算法的全局最優實驗結果比基準算法高0.29%,但基于圖片問答的靜態重啟隨機梯度下降算法在收斂到基準算法的全局最優實驗結果的過程中,其收斂速度慢46.15%.收斂速度變慢的原因是重啟學習率.每次重啟學習率時,算法都跳出不好的局部最優解而重新嘗試找到較好的局部最優解,并盡可能找到全局最優解.算法不斷重啟、迭代、探索,這個過程導致算法收斂速度變慢.
根據實驗評估方法和性能度量標準,實驗結果和分析表明基于圖片問答的靜態重啟隨機梯度下降算法的問答準確率高于基準算法.但它的性能改善是否顯著呢?為了回答這個問題,本文對表1中的實驗結果進行統計假設檢驗.
為了對表1中的結果進行統計假設檢驗,本文分別從2個算法的全局最優實驗結果附近連續抽取21個樣本.根據抽樣結果,采用T檢驗法[31]對樣本做統計假設檢驗,檢驗結果(顯著度α=0.05)如表2所示:

Table 2 The Results of T Test表2 T檢驗結果
根據表2所示,t=4.596,P=4.584E-05.因此,T檢驗結果中的P<0.0001,即P?0.05,說明在收斂到全局最優解的過程中它的性能改善在統計意義上是極其顯著的.
基于圖片問答的靜態重啟隨機梯度下降算法屬于一階優化算法.當前最好的同類算法有RmsProp[32],Adam[33],AdaDelta[34].為了驗證它在同類算法中的有效性,在圖片問答任務上進行優化算法實驗,實驗結果如表3所示:

Table 3 The Global Optimal Experimental Results of Optimization Algorithm表3 優化算法的全局最優實驗結果
根據表3所示,在解決圖片問答任務時,基于圖片問答的靜態重啟隨機梯度下降算法的準確率高于其他優化算法.因此,它在解決圖片問答問題時更有效.

Fig. 4 The experimental results of generalization performance and promotion value圖4 泛化性能和推廣價值的實驗結果
算法結果與數據集的選取有關.如果換一個數據集,基于圖片問答的靜態重啟隨機梯度下降算法是否有效呢?即它是否具有良好的泛化性能呢?算法結果與任務的選擇有關.如果換一個任務,它是否有效呢?即它是否具有良好的推廣價值呢?為了回答這2個問題,針對圖像識別任務,在經典的Cifar-10數據集[35]上采用5層深度殘差網絡[36]進行圖像識別實驗.在基準算法為動量隨機梯度下降算法的圖像識別實驗中,η0=0.1.在基于圖片問答的靜態重啟隨機梯度下降算法的圖像識別實驗中,e=16,β=3,ηmax=0.1,ηmin=0.000 5,σ=0.69.算法每被訓練集訓練3次更新1次學習率,每被訓練集訓練1次,測試集測試訓練的模型1次,并輸出測試結果.根據模型配置,得到圖像識別結果,如圖4所示:
根據圖4所示,基于圖片問答的靜態重啟隨機梯度下降算法的全局最優實驗結果為88.83%,基準算法的全局最優實驗結果為85.00%.除了訓練初期的個別結果外,基于圖片問答的靜態重啟隨機梯度下降算法的大部分結果都比基準算法好.但性能改善是否顯著呢?從圖4中的算法全局最優實驗結果附近連續抽取6個樣本進行T檢驗.t=9.655 8,P=3.207E-05.P<0.000 1,說明在收斂到全局最優解的過程中性能改善在統計意義上是極其顯著的.因此,基于圖片問答的靜態重啟隨機梯度下降算法在收斂到全局最優解的過程中具有良好的泛化性能和較好的推廣價值.
針對SANs模型解決圖片問答過程中的問題,觀察模型處理的細節,分析數據集的特點,發現基于動量的隨機梯度下降算法在優化SANs模型時存在一定的缺陷是導致問題發生的重要原因.為了解決該問題,調研隨機梯度下降算法,結合SANs模型的特點,提出基于圖片問答的靜態重啟隨機梯度下降算法.在VQAv1數據集、Cifar-10數據集、同類優化算法上進行量化對比實驗.實驗結果和T檢驗結果證明它的顯著性、有效性、泛化性、推廣價值.因此,它在一定程度上解決基于圖片問答的動量隨機梯度下降算法中的問題,具有良好的性能和較高的應用前景.