亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        神經(jīng)網(wǎng)絡(luò)非梯度優(yōu)化方法研究進展

        2022-09-06 11:08:02陳希亮
        計算機工程與應(yīng)用 2022年17期
        關(guān)鍵詞:權(quán)值梯度權(quán)重

        盛 蕾,陳希亮,康 凱

        陸軍工程大學(xué) 指揮控制工程學(xué)院,南京 210007

        神經(jīng)網(wǎng)絡(luò)通常是指一種含有輸入層、隱藏層、輸出層且每一層都含有許多神經(jīng)元的多層復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu)。它通過模仿生物的大腦神經(jīng)元結(jié)構(gòu)和功能,從而使計算機對數(shù)據(jù)信息能夠進行智能處理。目前,神經(jīng)網(wǎng)絡(luò)已在模式識別[1]、自動控制[2]、生物信息學(xué)[3]等很多領(lǐng)域得到廣泛的應(yīng)用。因此,神經(jīng)網(wǎng)絡(luò)的優(yōu)化就成為了亟待解決的問題。

        訓(xùn)練神經(jīng)網(wǎng)絡(luò)本質(zhì)是一個確定隱藏層的結(jié)構(gòu)和連接權(quán)值的過程。為了提高訓(xùn)練速度和獲取能較好地解決特定問題的網(wǎng)絡(luò)模型,大量訓(xùn)練樣本以及算法被用來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。目前,訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)方式多種多樣,比如:選擇適合的參數(shù)初始化方法、對數(shù)據(jù)進行預(yù)處理、選擇合適的激活函數(shù)、優(yōu)化各種超參數(shù)等。本文僅涉及訓(xùn)練神經(jīng)網(wǎng)絡(luò)的部分非梯度學(xué)習(xí)算法。

        1986 年,Rumelhart 等[4]提出用反向傳播算法解決多層前饋神經(jīng)網(wǎng)絡(luò)的非線性連續(xù)函數(shù)權(quán)值的問題,但反向傳播容易陷入局部極值點、容易受學(xué)習(xí)率和激活函數(shù)的影響,另外,其計算復(fù)雜度會隨著隱藏層的數(shù)目和每層神經(jīng)元數(shù)目的增加容易超出預(yù)期。在反向傳播的基礎(chǔ)上出現(xiàn)了梯度下降法(gradient descent,GD),之后多種一階、二階的訓(xùn)練神經(jīng)網(wǎng)絡(luò)的算法得到發(fā)展[5-6],Shammah 等[7]提出了基于純梯度的訓(xùn)練算法的一些不足,近些年非梯度優(yōu)化算法得到了國內(nèi)外學(xué)者的廣泛研究[8-10],并且已被應(yīng)用在實際生活中。基于純梯度的訓(xùn)練算法存在收斂速度慢、梯度消失、梯度爆炸和局部優(yōu)化等問題。因此,當(dāng)基于純梯度的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練算法缺乏效果時,基于非梯度的算法來訓(xùn)練神經(jīng)網(wǎng)絡(luò)具有重要意義。

        現(xiàn)有的研究更側(cè)重于在神經(jīng)網(wǎng)絡(luò)中比較和選擇合適的算法,這完全是基于專業(yè)知識和現(xiàn)在可以應(yīng)用到的數(shù)據(jù)。所以本文只針對訓(xùn)練神經(jīng)網(wǎng)絡(luò)算法的特定類型的非梯度算法的背景意義、基本理論、訓(xùn)練步驟、實際應(yīng)用和未來研究方向進行綜述。

        1 神經(jīng)網(wǎng)絡(luò)訓(xùn)練的基本理論

        1.1 神經(jīng)網(wǎng)絡(luò)

        神經(jīng)網(wǎng)絡(luò)的信息處理能力主要由網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練方法兩個方面決定。神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計在神經(jīng)網(wǎng)絡(luò)中尤為重要,它可以左右網(wǎng)絡(luò)的訓(xùn)練算法。至今已出現(xiàn)了多種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),常用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)大體上可分為前饋神經(jīng)網(wǎng)絡(luò)(feedforward neural network,F(xiàn)NN)、反饋神經(jīng)網(wǎng)絡(luò)和圖神經(jīng)網(wǎng)絡(luò)三類。

        FNN 中每一層神經(jīng)元接受前一層的神經(jīng)元的輸出并輸出到下一層神經(jīng)元,其信息是單向傳播的。反饋神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元不但可以接收其他神經(jīng)元的信息,也可以接收自己的歷史信息,其信息可以單向或雙向傳播。圖神經(jīng)網(wǎng)絡(luò)中每個節(jié)點由一個或一組神經(jīng)元構(gòu)成,每個節(jié)點都可以收到來自相鄰節(jié)點或自身的信息。這三種網(wǎng)絡(luò)結(jié)構(gòu)示例見圖1。

        圖1 三種網(wǎng)絡(luò)結(jié)構(gòu)示例Fig.1 Examples of three network structures

        以一個簡化的FNN為例,神經(jīng)元由連接權(quán)重、求和器和激活函數(shù)三個重要元素組成見圖2。神經(jīng)元的關(guān)系見公式(1),非線性的激活函數(shù)f(·) 的引入可以合理地組合多個層,所以神經(jīng)網(wǎng)絡(luò)解決了線性模型不能解決的問題。

        圖2 簡化的FNN神經(jīng)元Fig.2 Simplified FNN neuron

        1.2 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練

        從狹義上講,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練一般是通過最小化權(quán)重和偏置的代價函數(shù)來實現(xiàn)的,即找到一系列能讓代價函數(shù)盡可能小的權(quán)重和偏置。但這又與純優(yōu)化有所不同。首先,純優(yōu)化是最小化目標函數(shù)本身,而訓(xùn)練神經(jīng)網(wǎng)絡(luò)是降低代價函數(shù)來提高人們關(guān)注的某些性能度量,一般是通過最小化來自數(shù)據(jù)生成分布的期望值和最小化經(jīng)驗風(fēng)險的方式來實現(xiàn)。然而,最小化經(jīng)驗風(fēng)險時容易出現(xiàn)過擬合現(xiàn)象并且有部分沒有有效導(dǎo)數(shù),所以訓(xùn)練神經(jīng)網(wǎng)絡(luò)時會使用一些與解決純優(yōu)化問題不同的方法:(1)神經(jīng)網(wǎng)絡(luò)訓(xùn)練中可能使用代理損失函數(shù);(2)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練算法通常會在滿足某一收斂條件時提前終止函數(shù),而純優(yōu)化終止時的函數(shù)值通常是最小或無限接近最小。比如在FNN中以均方誤差作為損失函數(shù)為例見公式(2),當(dāng)?shù)螖?shù)t達到設(shè)定的最大迭代次數(shù)Tmax,或者當(dāng)L小于設(shè)定的閾值θ就會提前終止該函數(shù),或者為了避免過擬合,公式(2)再加入正則化項。

        訓(xùn)練神經(jīng)網(wǎng)絡(luò)可以基于梯度的算法,也可以基于非梯度的算法。訓(xùn)練一個比較好的神經(jīng)網(wǎng)絡(luò)不僅和這兩類算法有關(guān),而且和很多因素都有關(guān),如神經(jīng)元的結(jié)構(gòu)[11]、超參數(shù)的調(diào)優(yōu)的方法[12]、初始化方案[13]和損失函數(shù)的設(shè)定[14]等。超參數(shù)包括學(xué)習(xí)率、正則化參數(shù)、隱藏層的數(shù)量和激活函數(shù)等。損失函數(shù)的設(shè)置有最小二乘法和交叉熵函數(shù)等。隱藏層越多,神經(jīng)網(wǎng)絡(luò)對訓(xùn)練數(shù)據(jù)越有針對性,但隱藏層過多也容易過擬合。因此,如何訓(xùn)練一個具有良好泛化能力和快速的學(xué)習(xí)能力的神經(jīng)網(wǎng)絡(luò)是目前的研究熱點。

        1.2.1 神經(jīng)網(wǎng)絡(luò)的純梯度訓(xùn)練算法

        神經(jīng)網(wǎng)絡(luò)純梯度訓(xùn)練算法利用偏導(dǎo)數(shù)形成的代價函數(shù)的梯度向量場更新參數(shù)。以FNN 代價函數(shù)公式(2),激活函數(shù)ReLU 為例。當(dāng)L >θ或者t <Tmax時,權(quán)重矩陣W通過取L關(guān)于每個權(quán)重w的導(dǎo)數(shù),并且使用鏈式法則實現(xiàn)反向傳播。在鏈式法則中第二部分偏導(dǎo)數(shù)就是1,最后一部分的偏導(dǎo)數(shù)是XT,即:

        可知z <0 的元素并沒有被更新,這就是使用基于梯度的訓(xùn)練算法中常見的梯度消失問題。本質(zhì)上,梯度爆炸跟梯度消失的原理是一樣的,在深層網(wǎng)絡(luò)中初始的權(quán)值太大,通過鏈式法則后,如果各層網(wǎng)絡(luò)之間的梯度值大于1 那么層數(shù)增多后梯度可能會指數(shù)級增長。一次前向傳播和后向傳播的迭代就是基于梯度的神經(jīng)網(wǎng)絡(luò)訓(xùn)練的過程。目前,利用反向傳播的純梯度算法在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中應(yīng)用廣泛。兩類主要的神經(jīng)網(wǎng)絡(luò)的梯度訓(xùn)練算法,一類是基于一階的,另一類是基于二階的。

        最流行的一階梯度訓(xùn)練算法是GD,其權(quán)重的更新方式見公式(4),偏置的更新方式同理。

        在每一次迭代中所有訓(xùn)練數(shù)據(jù)通過架構(gòu),所以GD在大型的數(shù)據(jù)集上訓(xùn)練速度和收斂都緩慢。所以每次迭代中隨機計算一個訓(xùn)練數(shù)據(jù)的梯度的隨機梯度下降算法(stochastic gradient descent,SGD)被提出。在凸的損失函數(shù)上,與GD 相比,SGD 更快地收斂到全局最小值,但它的收斂并不平滑,并且在某些迭代的訓(xùn)練過程中容易出現(xiàn)超調(diào)現(xiàn)象,更新權(quán)重的頻率更高,所以容易受到數(shù)據(jù)集中的異常值的影響,訓(xùn)練有噪聲的數(shù)據(jù)集會變得更困難。為了解決SGD 精確度低的問題,對其中一個點隨機采樣,并在梯度項中更新其梯度的隨機平均梯度(stochastic average gradient,SAG)被提出。SAG與GD有相同的速度,但它通常需要更多次迭代才能收斂而且需要許多參數(shù)微調(diào)才能完美執(zhí)行。

        為克服GD和SGD的缺點,采用大小相等的批量訓(xùn)練數(shù)據(jù)的小批量梯度下降算法提出,該算法穩(wěn)定且收斂速度更好[15]。從公式中可以看出以上基于梯度的訓(xùn)練算法比較依賴學(xué)習(xí)率,為了改善該問題,三種最著名的調(diào)整學(xué)習(xí)率的方法(AdaGrad、RMSProp、Adam)被提出。但是基于一階的梯度算法訓(xùn)練FNN 時,每次迭代過程中,會在輸出層計算誤差對權(quán)重的一階導(dǎo)數(shù),這增加了學(xué)習(xí)時間和陷入局部極小值的可能性。

        為了解決一階梯度訓(xùn)練算法的收斂性問題,應(yīng)用二階Hessian 逆矩陣的牛頓法(Newton method,NM)被提出。它最大限度地減小損失函數(shù),但只適用于正定的Hessian 矩陣,并且計算成本高,不適用大型的神經(jīng)網(wǎng)絡(luò)。為了解決NM需要計算二階導(dǎo)數(shù)的缺點,通過從一階導(dǎo)數(shù)近似Hessian 逆矩陣的擬牛頓法被提出,它的計算成本更低,但依舊不適用于訓(xùn)練百萬級參數(shù)的神經(jīng)網(wǎng)絡(luò)[16]。

        Wilamowski 等[17]指出一階的梯度算法可能需要很多的隱藏單元和迭代次數(shù)才能收斂,這會降低FNN 的泛化性能,二階的梯度算法在學(xué)習(xí)方面很強大,但復(fù)雜度會隨著網(wǎng)絡(luò)規(guī)模的增加而增加,存儲Hessian 矩陣及其逆矩陣需要大量的計算內(nèi)存,這不利于訓(xùn)練大型的數(shù)據(jù)集??傊?,基于純梯度的神經(jīng)網(wǎng)絡(luò)優(yōu)化算法主要存在以下問題:(1)生活中總會有非凸問題,但在基于純梯度算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過程中,目標函數(shù)和約束會被設(shè)計為一個凸問題;(2)即使設(shè)計了一個比較符合非凸問題的凸函數(shù),基于純梯度的訓(xùn)練算法也遇到問題,如Hessian矩陣可能會卡在某些即使用很小的步長也會增加代價函數(shù)的病態(tài)情況;(3)由于神經(jīng)網(wǎng)絡(luò)的不可辨認性,即使去掉隱藏單元,構(gòu)建出的小規(guī)模神經(jīng)網(wǎng)絡(luò)在低維問題中也會出現(xiàn)有很大代價的局部極小值[18-19];(4)不具有非線性的淺層自編碼器在高維問題中只有局部極小值和鞍點[20],但神經(jīng)網(wǎng)絡(luò)中有很多高代價鞍點的損失函數(shù)[21],所以牛頓法這類基于純梯度的訓(xùn)練算法解決鞍點是困難的;(5)難以處理梯度為零的點,梯度消失和梯度爆炸的情況;(6)有噪聲的采樣數(shù)據(jù)是有偏估計,基于純梯度的神經(jīng)網(wǎng)絡(luò)難以有效地處理這類數(shù)據(jù);(7)基于純梯度的神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法對初始設(shè)定的參數(shù)值的依賴程度很大。

        1.2.2 神經(jīng)網(wǎng)絡(luò)的非梯度訓(xùn)練算法

        隨著神經(jīng)網(wǎng)絡(luò)層數(shù)的深入和數(shù)據(jù)集的不斷擴大,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度也變得越來越慢。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度也已成為阻礙其發(fā)展的重要問題。分布式訓(xùn)練[22]和批處理歸一化[23]等加速訓(xùn)練的方法被提出。然而,這些架構(gòu)和方法使用了反向傳播訓(xùn)練方法,即使用了基于梯度的訓(xùn)練方法。這需要大量的試錯方法才能獲得最佳參數(shù),并且會遇到以上列舉的問題。相較于神經(jīng)網(wǎng)絡(luò)的純梯度訓(xùn)練算法,非梯度算法在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,具有不需要進行復(fù)雜的參數(shù)調(diào)整、不需要多次計算損失函數(shù)對每個權(quán)值的導(dǎo)數(shù)、不需要可微的激活函數(shù)等優(yōu)勢。

        2 神經(jīng)網(wǎng)絡(luò)非梯度訓(xùn)練算法的研究進展

        現(xiàn)今優(yōu)化神經(jīng)網(wǎng)絡(luò)的方式多種多樣,但主要是從模型的選擇和參數(shù)的學(xué)習(xí)等方面展開的。本文總結(jié)了部分非梯度算法在參數(shù)學(xué)習(xí)中的應(yīng)用。本章介紹了其中的兩類算法:非梯度算法中訓(xùn)練FNN 的特殊算法和非梯度訓(xùn)練算法中的基于搜索的算法。

        2.1 部分前饋神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法

        目前,大多數(shù)FNN 的權(quán)值都是基于梯度算法訓(xùn)練得到的。但存在部分FNN 結(jié)構(gòu)上有其特點,因此權(quán)值的學(xué)習(xí)過程也比較特殊,比如一般概率神經(jīng)網(wǎng)絡(luò)、貝葉斯神經(jīng)網(wǎng)絡(luò)、極限學(xué)習(xí)機的權(quán)值大多是通過非梯度算法訓(xùn)練得到的。

        2.1.1 一般概率神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法

        一般概率神經(jīng)網(wǎng)絡(luò)(probabilistic neural network,PNN)是一種基于貝葉斯決策論確定測試樣本類別的網(wǎng)絡(luò)。其基本結(jié)構(gòu)見圖3,輸入層:計算每個數(shù)據(jù)與其對應(yīng)的權(quán)值的乘積,節(jié)點數(shù)等于樣本特征空間的維數(shù)d;模式層:又稱隱藏層,計算測試樣本和訓(xùn)練樣本中每個樣本的高斯函數(shù)值,節(jié)點數(shù)等于訓(xùn)練樣本總數(shù)N;求和層:計算同一類測試樣本對應(yīng)的模式層節(jié)點的輸出的加權(quán)平均,節(jié)點數(shù)等于類別數(shù)k;輸出層:根據(jù)貝葉斯決策論確定其類別。

        圖3 PNN的基本結(jié)構(gòu)Fig.3 Basic structure of PNN

        PNN 的訓(xùn)練過程是構(gòu)造每個類別的判決函數(shù)的過程。其權(quán)重由每個樣本歸一化后直接賦值,見公式(5),其中xnj為第n個樣本的第j個分量。學(xué)習(xí)規(guī)則簡單,不需要迭代調(diào)優(yōu),學(xué)習(xí)速度極快,很好地解決了純梯度優(yōu)化算法速度慢的問題[24],并且泛化分類能力大致相同[25]。添加和刪除訓(xùn)練樣本只需要在模式層中添加或刪除“神經(jīng)元”,并且同一個類的模式單元獨立于模式層中另一個類的模式單元,具有并行分布式處理的特點。因此在在線學(xué)習(xí)方面上很有意義。

        PNN的輸出用來描述特定的概率分布的似然,并且隨著訓(xùn)練樣本數(shù)量的增加,可以收斂到貝葉斯最優(yōu)解,決策曲面保證接近貝葉斯最優(yōu)決策邊界,所以可以應(yīng)用于尋找模式間的決策邊界。Fang 等[26]通過主動學(xué)習(xí)概率神經(jīng)網(wǎng)絡(luò)對火箭間段的設(shè)計方案進行可行性狀態(tài)分析,實驗表明,相較于四種最先進的算法,該算法分類結(jié)果準確率更高,而且該方法構(gòu)建的分類器可以快速分析具有計算代價約束問題的設(shè)計方案的可行性。Karami等[27]用蒙特卡羅作為概率神經(jīng)網(wǎng)絡(luò)的一部分后估算了量化風(fēng)電功率的不確定性。

        PNN 結(jié)構(gòu)簡單并且其線性學(xué)習(xí)算法能夠很好地實現(xiàn)非線性學(xué)習(xí)算法的結(jié)果,同時保持了非線性算法的高精度。PNN不是黑盒優(yōu)化,其每個模式神經(jīng)元對網(wǎng)絡(luò)結(jié)果的貢獻是明確定義的并且有精確的解釋。所以PNN在各種應(yīng)用中表現(xiàn)出優(yōu)異的分類性能。Wu等[28]用PNN實現(xiàn)了衛(wèi)星通信輻射源的識別。Syahputra等[29]使用PNN對CXR圖像進行實驗,識別肺癌的準確率高達93.33%。Liu 等[30]用貝葉斯優(yōu)化了概率神經(jīng)網(wǎng)絡(luò),該算法對MITBIH 心律失常數(shù)據(jù)的分類正確率高達99.67%。Gong等[31]利用局部模擬退火優(yōu)化并行概率神經(jīng)網(wǎng)絡(luò)和PNN,通過實驗對比發(fā)現(xiàn)優(yōu)化后的并行概率神經(jīng)網(wǎng)絡(luò)的分類精度比之前的結(jié)果高得多,可達到83.3%,其平均運行時間明顯縮短,更適合大規(guī)模數(shù)據(jù)處理。尤其在診斷故障的分類領(lǐng)域中,它能將故障樣本空間映射到故障模式空間,形成具有較強容錯能力和自適應(yīng)結(jié)構(gòu)能力的診斷系統(tǒng),具有很強的應(yīng)用前景[32-34]。

        眾所周知,更大的數(shù)據(jù)集可以提高數(shù)據(jù)概率密度函數(shù)估計的準確性。所以相較于大多數(shù)的純梯度算法訓(xùn)練的神經(jīng)網(wǎng)絡(luò),PNN 需要的訓(xùn)練集要更大。但是在PNN 模式層中有一個用來度量輸入向量與其分配的數(shù)據(jù)模式之間的相似性的獨立單元,所以它需要更多的內(nèi)存空間。隨著數(shù)據(jù)的增大,模式層可能會變得非常大。因此PNN 解決大數(shù)據(jù)問題時,一般需要與特征約簡如主成分分析和k-means 聚類算法等方法一起使用[35-36],這樣才可以減少問題的規(guī)模但不過多減少PNN 性能損失。

        PNN的權(quán)值被直接指定,那么其訓(xùn)練過程的難點是確定平滑參數(shù)σ值。σ是高斯分布的標準偏差,決定了訓(xùn)練集高斯分布概率密度函數(shù)的高斯窗口接受寬度的大小。σ在分類問題中起著至關(guān)重要的作用。通過選擇適當(dāng)?shù)摩抑担梢允箾Q策曲面的形狀變得盡可能復(fù)雜,或者盡可能簡單,這對PNN 的性能有很大的影響。所以大量的計算σ值的方法被提出,見表1。一類是基于數(shù)據(jù)知識進行有根據(jù)的猜測:Specht等[37]分別對每個維度設(shè)置σ值。Ramakrishnan 等[38]提出了在模式層和求和層之間引入權(quán)重因子的加權(quán)概率神經(jīng)網(wǎng)絡(luò)。它們都以增加訓(xùn)練時間為代價來提供更高的分類精度。另一類是近年使用較多的啟發(fā)式算法估計:Yi等[39]提出訓(xùn)練過程中不需要調(diào)整參數(shù)的自適應(yīng)PNN。與PNN和基于反向傳播的神經(jīng)網(wǎng)絡(luò)等進行比較,自適應(yīng)PNN 在解決變壓器故障診斷問題時具有更準確的預(yù)測和更好的泛化性能。李君科等[32]用遺傳算法、孔慧芳等[33]用基于改進粒子群算法、Zhou 等[34]用灰狼算法優(yōu)化了PNN 的σ。實驗表明這些優(yōu)化算法都提高了PNN 在某個應(yīng)用上的分類精度。

        表1 優(yōu)化PNN的σ 值的方法Table 1 Method of optimizing σ value of PNN

        2.1.2 貝葉斯神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法

        貝葉斯神經(jīng)網(wǎng)絡(luò)(Bayesian neural network,BNN)將概率建模和神經(jīng)網(wǎng)絡(luò)相結(jié)合,是一種不需要知道任何數(shù)學(xué)或物理模型就可以學(xué)習(xí)復(fù)雜行為,并給出預(yù)測結(jié)果置信度的神經(jīng)網(wǎng)絡(luò)。相較于一般FNN,BNN 的每個權(quán)重都有均值和方差的概率分布。訓(xùn)練BNN本質(zhì)是計算這些權(quán)重的后驗分布。

        假設(shè)BNN的權(quán)重或偏差符合某個先驗分布p(ω),那么貝葉斯推理可以獲得權(quán)重ω的后驗分布p(ω|D),見公式(6),其中訓(xùn)練數(shù)據(jù)集D={(X,Y)}。然后得到可以量化模型在預(yù)測中的不確定性的邊際似然,見公式(7)。

        貝葉斯推理使用貝葉斯規(guī)則和概率推理量化了不確定性,而且可以區(qū)分認知不確定性p(ω|D)和任意不確定性p(y|x,ω) 。但似然函數(shù)通常是非高斯而且難以處理的,并且它依賴于先驗知識。所以各種近似后驗分布的方法如變分推理[40]、蒙特卡羅dropout[41]和卡爾曼濾波(Kalman filtering,KF)變體等被提出。但是變分推理無法保證近似分布足夠接近預(yù)期目標,蒙特卡羅dropout 比變分推理的訓(xùn)練速度更快,但可能無法完全捕捉到與模型預(yù)測相關(guān)的不確定性[42]。

        因此,既可以實時訓(xùn)練缺乏梯度信息的神經(jīng)網(wǎng)絡(luò)還可以擴展到貝葉斯模型比較和使用信息論方法的主動學(xué)習(xí)[43]的貝葉斯形式主義被廣泛使用。其中KF可以解決難以獲取貝葉斯推理的解析解的問題。KF分為預(yù)測方程和更新方程,預(yù)測方程負責(zé)及時向前推算當(dāng)前狀態(tài)變量和誤差協(xié)方差估計的值,以便為下一個時間狀態(tài)構(gòu)造先驗估計;更新方程負責(zé)反饋,它將先驗估計和新的測量變量結(jié)合用來構(gòu)造改進的后驗估計。KF可以高效地估計過程的狀態(tài),并且使估計的均方誤差最小。在測量方差已知的情況下,KF 能夠在有測量噪聲的數(shù)據(jù)中估計動態(tài)系統(tǒng)的狀態(tài),并且能夠?qū)ΜF(xiàn)場采集的數(shù)據(jù)進行實時的更新和處理,此外容易在計算機上編程實現(xiàn)。因此,KF可以作為一種非梯度算法來優(yōu)化神經(jīng)網(wǎng)絡(luò),尤其是BNN等具有高斯分布的神經(jīng)網(wǎng)絡(luò)。

        但是KF 只適用狀態(tài)函數(shù)和測量函數(shù)均為線性,且噪聲項均為零均值高斯變量的問題,其他非高斯和非線性的問題需要使用尋求近似解的KF 改進算法,比如用無跡變換選擇采樣點擬合狀態(tài)的后驗概率的無跡卡爾曼濾波(unscented Kalman filter,UKF)、用非線性函數(shù)的泰勒展開的一階項的擴展卡爾曼濾波(extended Kalman filter,EKF)和對狀態(tài)分布進行采樣以獲得下一時間的近似預(yù)測分布的集成卡爾曼濾波(ensemble Kalman filter,EnKF)等。

        Watanabe 等[44]假定BNN 的權(quán)值為高斯分布,采用EKF 更新個體權(quán)值的均值和方差。EKF 結(jié)構(gòu)更加簡單但需要局部線性化來更新隱藏的神經(jīng)元,所以系統(tǒng)非線性很強時,估計值可能會有較大的誤差。Puskorius等[45]在上面的基礎(chǔ)上允許貝葉斯網(wǎng)絡(luò)分層相關(guān)甚至其神經(jīng)元全相關(guān)。Huber[46]又提出貝葉斯感知器,該方法雖然局限于單個神經(jīng)元,但表明封閉式貝葉斯推斷可以計算權(quán)后驗分布的均值和協(xié)方差參數(shù),并且可以避免線性化。Wagner 等[47]進一步提出了一種基于封閉貝葉斯推理的方法,其核心思想是通過連續(xù)貝葉斯濾波訓(xùn)練BNN。其后向傳遞過程利用了馬爾可夫鏈的特性,可以順序處理數(shù)據(jù),依次更新權(quán)值矩陣。用該算法對月球數(shù)據(jù)集進行分類,發(fā)現(xiàn)高斯假設(shè)似乎不會影響該網(wǎng)絡(luò)在分類任務(wù)中的性能,它總是能夠有效地適應(yīng)新的數(shù)據(jù)分布,在某些數(shù)據(jù)集上實現(xiàn)了與其他方法相近的性能,同時訓(xùn)練時間也顯著減少。

        與UKF 和EKF 等其他KF 變體相比,EnKF 在大型非線性系統(tǒng)的參數(shù)估計中具有更好的性能[48]。它能有效地解決具有大量參數(shù)的深度神經(jīng)網(wǎng)絡(luò),并且它不需要梯度信息就可以捕獲到非線性引起的權(quán)重的后驗分布的非高斯行為[49]。Chen 等[50]提出了EnKF 推斷BNN 的權(quán)值的同時,可以處理非線性測量模型并自動調(diào)整測量噪聲。Haber 等[51]借鑒方差縮減方法的思想,提出了一種以次線性速率收斂于強凸函數(shù)的全局極小值的EnKF變體。該算法可以并行化訓(xùn)練神經(jīng)網(wǎng)絡(luò),只需幾次前向傳播即可獲得更低的損耗值。在此基礎(chǔ)上,Kovachki等[52]用集合卡爾曼反演算法訓(xùn)練四個神經(jīng)網(wǎng)絡(luò),與SGD相比,在參數(shù)數(shù)量相對較少的網(wǎng)絡(luò)上正確率相當(dāng),但是對于大量參數(shù)的神經(jīng)網(wǎng)絡(luò),集合卡爾曼反演算法速度更快,表現(xiàn)得更好。之后Guth等[53]提出用一次性的方式訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,集合卡爾曼反演是一種考慮到了未知參數(shù)的估計質(zhì)量的很有前途的算法,其能與貝葉斯方法建立連接并且收斂,而擬牛頓法不會收斂到可行估計。

        傳統(tǒng)FNN一般通過最小化網(wǎng)絡(luò)輸出和目標變量之間的平方誤差之和的方法來估計網(wǎng)絡(luò)權(quán)重和偏差,并且基于只要輸入?yún)?shù)就可以生成預(yù)測的非線性映射函數(shù),這會受到數(shù)據(jù)集中異常值的高度影響[54]。但BNN在網(wǎng)絡(luò)的權(quán)重中加入先驗值,即加入了不確定性,并用概率量化了不確定性,輸出一個表示預(yù)測的可能性的概率分布,所以BNN對噪聲的魯棒性更強,解決了點估計未考慮數(shù)據(jù)和不確定性的問題,比傳統(tǒng)FNN 有更好的校準能力[55-57]。因此,BNN 在有噪聲,需要高精度和高安全性的場景中應(yīng)用廣泛[41,54]。BNN本質(zhì)是正則化的,可以解決一般神經(jīng)網(wǎng)絡(luò)在小數(shù)據(jù)集上過度擬合的問題[58]。BNN可以把具有高度認知不確定性的訓(xùn)練數(shù)據(jù)點標記為更高優(yōu)先級,這在主動學(xué)習(xí)中很有用[59-60]。BNN可以把可用的新數(shù)據(jù)之前的后驗值作為先驗值回收,避免在線學(xué)習(xí)中常見的災(zāi)難性遺忘問題[61]。BNN 已被證明在中等規(guī)模的數(shù)據(jù)集上是有能力的,但尚未充分利用巨大的數(shù)據(jù)集。深度BNN 的結(jié)構(gòu)較冗余,所以解釋大量連續(xù)層的不確定性的成本很高。貝葉斯推理和大部分近似后驗分布的方法訓(xùn)練BNN 的成本比較高,兩者的對比見表2。BNN 在對網(wǎng)絡(luò)輸出進行最合理的推理時并不一定是最有用的,所以其他統(tǒng)計工具如基于模擬的推理訓(xùn)練BNN可能會更高效[62]。

        表2 訓(xùn)練BNN權(quán)重的方法Table 2 Methods for training BNN weights

        2.1.3 極限學(xué)習(xí)機及其各種改進算法

        針對基于純梯度的訓(xùn)練算法會迭代調(diào)整網(wǎng)絡(luò)中所有的參數(shù)這個問題,Huang 等[63]提出一種以可調(diào)參數(shù)為代價的用于訓(xùn)練單隱層FNN的快速算法——極限學(xué)習(xí)機(extreme learning machine,ELM)。該算法隨機選擇單隱藏層FNN 的輸入權(quán)值,并解析地確定單隱層FNN的輸出權(quán)值,即ELM 僅學(xué)習(xí)使得代價函數(shù)最小的輸出層的權(quán)重,見公式(8),其中T為訓(xùn)練目標,H為隱藏層的輸出矩陣。

        Huang等[64]在計算輸出權(quán)重時增加正則化系數(shù)提高了泛化能力,使預(yù)測結(jié)果更加穩(wěn)定。隨機隱藏節(jié)點使ELM 能夠更快地收斂,但也可能導(dǎo)致分類性能的波動。增量ELM、雙向ELM和自適應(yīng)ELM在訓(xùn)練過程中不斷改變隱藏層節(jié)點的數(shù)目。Xu等[65]提出了逐個添加隱藏節(jié)點的增量ELM 的改進版本,其輸出權(quán)重可以高效地遞歸更新。增加隱藏節(jié)點的數(shù)目平衡了經(jīng)驗風(fēng)險和結(jié)構(gòu)風(fēng)險,有效地避免了ELM 在大數(shù)據(jù)上過擬合的發(fā)生。但它們隨機初始化映射函數(shù),所以在求解輸出權(quán)重的過程中會出現(xiàn)無法求逆矩陣的現(xiàn)象,理論上設(shè)定較大的正則化參數(shù)可以保證矩陣是正定矩陣,但正則化系數(shù)過大會降低其泛化能力。所以一些群體智能如鯨魚優(yōu)化[66]、海豚群優(yōu)化[67]、灰狼優(yōu)化[68]等被用來優(yōu)化ELM的隨機初始參數(shù)。

        Liang等[69]提出了仍是隨機生成的但在訓(xùn)練過程中數(shù)量固定并且永不更新隱藏單元的參數(shù)的在線順序ELM(online sequential ELM,OS-ELM),它不依賴過去的數(shù)據(jù),使用實時數(shù)據(jù)學(xué)習(xí)固定數(shù)據(jù)的塊數(shù)據(jù),接收新的數(shù)據(jù)塊就重新運行一次ELM,得到新的輸出權(quán)重,組合新舊輸出權(quán)重后更新FNN。該算法在學(xué)習(xí)速度非常快的情況下具有更好的泛化性能。Zhang等[70]將遺忘機制引入OS-ELM,提出了一種選擇遺忘ELM算法,并將其應(yīng)用于混沌時間序列預(yù)測。該算法能夠?qū)εf的訓(xùn)練樣本進行迭代加權(quán),削弱了舊訓(xùn)練樣本的影響。在在線訓(xùn)練過程中,遞歸地確定其輸出權(quán)重,在計算量和預(yù)測精度方面比OS-ELM有更好的性能。

        Zong等[71]提出對內(nèi)核參數(shù)不進行任何調(diào)整,正則化參數(shù)與輸入數(shù)據(jù)大小相同的矩陣的加權(quán)極限學(xué)習(xí)機(weighted extreme learning machine,WELM),用基于相似性的激活函數(shù)代替了傳統(tǒng)的激活函數(shù),見公式(9),其權(quán)值是從數(shù)據(jù)集中隨意選取,s(· )代表相似的激活函數(shù),在相似任務(wù)上和不平衡數(shù)據(jù)的分類問題中表現(xiàn)很好,并且有良好的泛化能力。Horata等[72]在此基礎(chǔ)上提出了重加權(quán)極限學(xué)習(xí)機,這在一定程度上緩解了模型的性能容易受到異常的訓(xùn)練數(shù)據(jù)的影響。Kudisthalert等[73]在WELM 基礎(chǔ)上提出了一個依賴性別和種族的三重態(tài)特征的暹羅極限學(xué)習(xí)機,通過三重態(tài)的距離度量方式,發(fā)現(xiàn)相較于其他三種神經(jīng)網(wǎng)絡(luò),該算法對特定人口群體分類的正確率更高。

        Zhu等[74]建立了結(jié)合誤差修正的ELM,精準動態(tài)地預(yù)測出燃煤機組NOx 的排放量。Qing等[75]用基于時間預(yù)處理的ELM的網(wǎng)絡(luò),降低了系統(tǒng)的非線性失真,改善了短信號,同時提高了網(wǎng)絡(luò)的魯棒性和泛化性能??傊?,以上ELM訓(xùn)練速度極快,并且在現(xiàn)有的分類和回歸任務(wù)上具有很強的競爭力。但這些ELM沒有設(shè)計讓兩個輸入數(shù)據(jù)流并行的結(jié)構(gòu),讓多個數(shù)據(jù)流以串聯(lián)方式輸入,非常消耗計算資源。為了進一步提高ELM 的魯棒性,離群魯棒極限ELM被提出,Zhang等[76]用其解決了回歸問題。Legora 等[77]在離群魯棒ELM 和廣義正則化ELM 基礎(chǔ)上結(jié)合矩陣范數(shù)與交替方向乘子法,提出適用于多目標回歸問題的廣義離群值魯棒ELM。

        相較于基于純梯度的FNN,ELM 學(xué)習(xí)算法可訓(xùn)練具有不可微的激活函數(shù)的單隱藏層FNN;可以達到最小的加權(quán)范數(shù);其一次簡單的正向?qū)W習(xí),速度極快,并且解決了局部極小值和過擬合的問題。ELM理論得到了嚴格的證明并且具有良好的泛化能力和魯棒性。ELM可以用足夠多的隱藏節(jié)點逼近任意復(fù)雜的分類邊界。在處理小樣本、非線性自適應(yīng)信息性能問題時,ELM獨特的非線性自適應(yīng)信息處理能力克服了傳統(tǒng)人工智能方法對模式識別、語音識別等非結(jié)構(gòu)化信息處理的直觀性不足。但是ELM算法的隱藏層神經(jīng)元數(shù)量眾多,需要消耗更多的內(nèi)存空間。雖然ELM在理論上具有明顯的優(yōu)勢,但其本身的淺層結(jié)構(gòu),在解決任何回歸和多重分類問題上仍存在很多問題。ELM雖可以實現(xiàn)與訓(xùn)練參數(shù)相同的分類性能,但如何將深度學(xué)習(xí)和ELM 結(jié)合起來,使其以較少的訓(xùn)練時間在大型數(shù)據(jù)集中可以產(chǎn)生與深度學(xué)習(xí)相同的結(jié)果還有待研究。

        2.2 基于搜索的神經(jīng)網(wǎng)絡(luò)優(yōu)化算法

        Li等[78]和Du等[79]指出神經(jīng)網(wǎng)絡(luò)高度參數(shù)化,所以隨機濾波器的初始值非常接近最終解,基于梯度的優(yōu)化算法只需輕推參數(shù)即可獲得最終解。Frankle 等[80]只訓(xùn)練大于800 層的殘差網(wǎng)絡(luò)中與BatchNorm 相關(guān)的仿射參數(shù),并在初始化時凍結(jié)其他參數(shù),在ImageNet數(shù)據(jù)集上達到令人驚訝的高精度。Ramanujan等[81]證明隨機加權(quán)神經(jīng)網(wǎng)絡(luò)包含無需訓(xùn)練權(quán)值就能獲得良好性能的子網(wǎng)絡(luò),一個權(quán)重固定的隨機加權(quán)神經(jīng)網(wǎng)絡(luò)越寬或越深,那么“未經(jīng)訓(xùn)練的子網(wǎng)絡(luò)”在精確度上接近權(quán)重已被訓(xùn)練過的網(wǎng)絡(luò)。在此基礎(chǔ)上,Tripathi等[82]提出當(dāng)訓(xùn)練參數(shù)的數(shù)量大幅度減少時,基于純梯度的深度網(wǎng)絡(luò)訓(xùn)練算法可能是不必要的,基于搜索的算法也可能是一個可行的選擇。因此,本節(jié)從Tripathi提出的隨機搜索優(yōu)化開始,介紹了一系列基于搜索的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練算法,如粒子群算法、蟻群算法和遺傳算法及其變體。

        2.2.1 隨機搜索優(yōu)化

        Tripathi等[82]提出了訓(xùn)練多于10層的深度神經(jīng)網(wǎng)絡(luò)的隨機搜索優(yōu)化方法(random search optimization,RSO)。RSO 是一種基于無梯度馬爾可夫鏈和蒙特卡羅搜索的深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法。該算法在一個高斯分布中會改變采樣權(quán)值,初始的權(quán)值服從高斯分布輸入值進行歸一化,并使用有界步長N(0,σd)來探索初始點周圍的區(qū)域,首先更新最接近標簽的層的權(quán)重,然后依次向輸入層移動從而最小化目標函數(shù)。權(quán)值更新的規(guī)則見公式(10),Δωi為權(quán)重變化,ωid為第d層的第i個權(quán)值,σd為第d層的所有權(quán)重的標準差。

        相較于SGD 反向傳播,RSO 更新權(quán)值的數(shù)量要少一個數(shù)量級。但RSO 更新權(quán)重時需要計算損失函數(shù),所以訓(xùn)練時間與網(wǎng)絡(luò)中的參數(shù)數(shù)量成線性關(guān)系。RSO訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)后在MNIST上精確率達99.1%,CIFAR-10分類精確度達81.8%,其獲得了具有競爭力的準確率。這表明通過有效的先驗值分配權(quán)重可以減少計算成本,如果能構(gòu)建需要較少的學(xué)習(xí)參數(shù)的神經(jīng)網(wǎng)絡(luò),比如由一組固定的基函數(shù)組成的北極星神經(jīng)網(wǎng)絡(luò),那么即使沒有顯式的梯度計算,隨機初始化的網(wǎng)絡(luò)周圍的區(qū)域被探索到就足夠了。

        2.2.2 粒子群算法及其各種變體

        Eberhart 等[83]首次提出粒子群算法(particle swarm optimization,PSO)。在一個D維空間內(nèi),由初始速度和初始位置的M個粒子構(gòu)成了一個種群,它們根據(jù)自身慣性,自身最優(yōu)位置以及群最優(yōu)位置來更新飛行軌跡。假設(shè)第i個粒子當(dāng)前位置向量xid,速度向量vid,其不斷迭代搜索個體極值pbestid和全局最優(yōu)極值Gbest,從而更新自身的速度見公式(11)和位置見公式(12)。迭代搜索過程中會記錄下自身和群體經(jīng)歷的最佳位置以及對應(yīng)的適應(yīng)度函數(shù)值,從而得到最優(yōu)解,其過程見算法1。

        其中,t為當(dāng)前迭代次數(shù),學(xué)習(xí)因子c1和c2,r1、r2為[0,1]的隨機數(shù),vid為[vmin,vmax] 之間的數(shù),搜索空間內(nèi)限制的最小速度和最大速度分別為vmin、vmax,當(dāng)vid >vmax時取vid=vmax;當(dāng)vid <vmin時取vid=vmin。

        算法1粒子群算法

        輸入:學(xué)習(xí)因子c1、c2,最大迭代次數(shù)Tmax,速度范圍[vmin,vmax] ,位置范圍[xmin,xmax] ,粒子群維度D,粒子數(shù)M。

        輸出:最佳位置信息Gbest作為權(quán)值。

        步驟1初始化:設(shè)置第i粒子速度vid和位置xid,i=1,2,…,M;

        步驟2計算每個粒子的適應(yīng)度:根據(jù)適應(yīng)度函數(shù)計算第i個粒子當(dāng)前位置適應(yīng)度f(xid),i=1,2,…,M;

        步驟3更新每個粒子最優(yōu)適應(yīng)度:比較第i個粒子當(dāng)前位置的適應(yīng)度f(xid)與自身所經(jīng)歷的最好位置的適應(yīng)度f(pbestid),若更優(yōu)則把當(dāng)前位置定為pbestid,否則不變,i=1,2,…,M;

        步驟4更新全局最優(yōu)位置:第i個粒子當(dāng)前位置的適應(yīng)度值f(pbestid)與全局最優(yōu)位置的適應(yīng)度值f(Gbest)進行比較,若更優(yōu)則把當(dāng)前位置定為全局最優(yōu)位置Gbest,否則不變,i=1,2,…,M;

        步驟5更新速度和位置向量:根據(jù)公式(11)、(12)更新兩個向量,并檢查是否越界,若越界需進行處理;

        步驟6若t <Tmax設(shè)置t=t+1,回到步驟2,否則結(jié)束循環(huán)并輸出最佳位置信息Gbest作為神經(jīng)網(wǎng)絡(luò)的權(quán)值。

        基本PSO中c1和r1,c2和r2一起制約著粒子群受自身因素影響的程度,所以在全局和局部搜索能力方面有很大限制。后來Shi等[84]提出把慣性權(quán)重ω引入速度項的標準PSO,提高了尋找最優(yōu)的速度和精度。但在后期全局最優(yōu)解的附近容易出現(xiàn)振蕩現(xiàn)象,搜索能力反而減弱,又出現(xiàn)了一系列常見的權(quán)重遞減方法。為進一步平衡PSO 的全局與局部搜索能力,使ω能隨著粒子的目標函數(shù)值自動調(diào)節(jié)。所以出現(xiàn)了非線性的動態(tài)慣性權(quán)重系數(shù)。為了使粒子向自身和種群中其他粒子經(jīng)歷的最優(yōu)位置更接近,Clerc等[85]提出了一個在理論上可以保證算法收斂的收縮因子χ,它的本質(zhì)是慣性權(quán)值法中的ω取得合適值。

        神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中的參數(shù)可以被建模為一個粒子的位置,其所有可能的權(quán)值的組合可以被定義為解空間。神經(jīng)網(wǎng)絡(luò)的損失函數(shù)可以與PSO 的適應(yīng)度函數(shù)對應(yīng),神經(jīng)網(wǎng)絡(luò)的損失越小,適應(yīng)度越低,粒子越接近全局最優(yōu),即訓(xùn)練神經(jīng)網(wǎng)絡(luò)的目標與PSO 優(yōu)化目標是一致的。PSO 中的粒子群在每次迭代中更新其局部和全局位置,直到找到用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練的最佳權(quán)重。PSO在狀態(tài)空間中搜索能力強,早期收斂速度快,能夠提供全局最優(yōu)解[86],因此,PSO 中粒子群的迭代可以替代SGD中的反向傳播,已被用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏差值[87],從而避免了大量的梯度運算,提高了算法執(zhí)行效率,縮短了神經(jīng)網(wǎng)絡(luò)。Nadai 等[88]提供了一個基于PSO優(yōu)化的神經(jīng)網(wǎng)絡(luò),實驗表明該網(wǎng)絡(luò)有高水平的適應(yīng)性、穩(wěn)定性和泛化性。

        Yang 等[89]提出用標準PSO 優(yōu)化具有簡單結(jié)構(gòu)的徑向基神經(jīng)網(wǎng)絡(luò),在雙向八車道道路上進行了實驗,結(jié)果表明該方法能有效提高機動車電子注冊識別速度檢測的準確性。針對標準PSO 只能在連續(xù)空間中使用的問題,Tian等[90]把粒子速度轉(zhuǎn)化成Sigmoid函數(shù),粒子的位置設(shè)為0 或1 并且由該粒子速度的狀態(tài)轉(zhuǎn)移概率決定。用此離散的PSO 優(yōu)化用離散化方法改進的神經(jīng)網(wǎng)絡(luò)的參數(shù),實驗結(jié)果表明,相較于利用反向傳播算法的神經(jīng)網(wǎng)絡(luò),該算法優(yōu)化過的神經(jīng)網(wǎng)絡(luò)在預(yù)測體育教學(xué)上精度高,擬合殘差小。針對以上PSO中的粒子進行搜索時只依賴自身歷史最優(yōu)位置和種群的全局位置在高度多峰值問題中出現(xiàn)過早收斂的問題。Roy等[91]提出用只能在粒子自身鄰域內(nèi)學(xué)習(xí)的鄰域自適應(yīng)PSO 訓(xùn)練由一個隱藏層、單神經(jīng)元構(gòu)成的輸入層和單神經(jīng)元構(gòu)成的輸出層的FNN,對三種類型故障的軟件的可靠性進行評估。相較于PSO 訓(xùn)練FNN,該算法的擬合和預(yù)測性能更好。Roy等[92]繼續(xù)提出可以提高搜索精度和效率的具有模糊性質(zhì)的鄰域模糊PSO 訓(xùn)練以上FNN。實驗結(jié)果表明PSO 優(yōu)化的神經(jīng)網(wǎng)絡(luò)比其他模型具有更大的擬合和預(yù)測能力,鄰域的模糊PSO 比PSO 的擬合和預(yù)測誤差都要低得多,該框架對于軟件可靠性預(yù)測具有重要的應(yīng)用前景。Sehrish 等[93]提出了根據(jù)簇間距離生成團簇的PSO 即基于再生的PSO 和根據(jù)速度提升閾值更新位置的PSO 即基于速度提升的PSO。在預(yù)測居民用電量的實驗中表明,PSO優(yōu)化的神經(jīng)網(wǎng)絡(luò)比傳統(tǒng)的反向傳播神經(jīng)網(wǎng)絡(luò)有更高的準確率和更少的迭代次數(shù);這兩種PSO變體優(yōu)化的神經(jīng)網(wǎng)絡(luò)進一步提高了標準PSO 優(yōu)化的神經(jīng)網(wǎng)絡(luò)的預(yù)測精度,其中基于速度提升的PSO優(yōu)化的神經(jīng)網(wǎng)絡(luò)在準確性方面表現(xiàn)出最高的性能。他們指出將繼續(xù)使用PSO 變體訓(xùn)練神經(jīng)網(wǎng)絡(luò)為智能建筑建立預(yù)測模型。Nandi等[94]實證分析了三個時間序列,在MAE和MSE 方面,三種PSO 變體訓(xùn)練的神經(jīng)網(wǎng)絡(luò)比反向傳播算法的預(yù)測精度更高。Ye 等[95]將分布式神經(jīng)網(wǎng)絡(luò)的訓(xùn)練參數(shù)編碼到PSO 每個粒子中,用改進的PSO 計算DNN分布式訓(xùn)練過程中的參數(shù)。結(jié)果表明該PSO算法在小尺度的DNN 上收斂速度比同步隨機梯度下降法快,并且它能很好地處理不同尺度的神經(jīng)網(wǎng)絡(luò),但其加速效應(yīng)不穩(wěn)定。

        Zhang 等[96]用進化附加節(jié)點策略和部分訓(xùn)練算法來維持PSO 中粒子的行為聯(lián)系。該算法較好地解決了噪聲適應(yīng)度評估可能誤導(dǎo)進化的問題,還可以避免同時演化結(jié)構(gòu)和權(quán)重導(dǎo)致的移動目標問題。在此基礎(chǔ)上,Carvalho等[97]在內(nèi)部PSO中使用權(quán)重衰減啟發(fā)式,結(jié)果表明采用權(quán)重衰減啟發(fā)式的PSO-PSO實現(xiàn)具有更好的平均泛化性能,在其他工作中也表現(xiàn)出了良好的泛化性能[98]。而且提出未來可以嘗試在PSO-PSO 算法中增加連通模式優(yōu)化過程。

        PSO訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,既可以優(yōu)化神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值,又可以優(yōu)化隱藏層的傳遞函數(shù)和目標函數(shù)[96]。它克服了反向傳播算法收斂速度慢,容易陷入局部極小值等缺點。PSO中沒有選擇算子,所以原始種群中的每個個體在新種群中都有一個對應(yīng)的伙伴,從種群多樣性的角度來看,該性質(zhì)優(yōu)于遺傳算法。PSO中記憶和個體之間的建設(shè)性合作,可以更快地發(fā)現(xiàn)合理質(zhì)量的解,因此在一定程度上避免了遺傳算法的早熟收斂和停滯現(xiàn)象[99]。與基于純梯度的優(yōu)化算法比較,PSO算法訓(xùn)練同等小型規(guī)模的神經(jīng)網(wǎng)絡(luò)的預(yù)測精度更高[89-94],但PSO 一般需要更大的計算資源,速度較慢。總體來說,粒子群算法不僅調(diào)整參數(shù)較少,而且操作簡單,容易實現(xiàn)[100-101]。PSO從多個點開始,可能能夠在一次運行中識別多目標優(yōu)化中各種解決方案[102],是一種很有前途的訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)的算法??梢赃M一步探索PSO 與重組、精英粒子、變異等結(jié)合后有可能提高PSO的效率和可靠性的方法,探索可能產(chǎn)生更穩(wěn)健的結(jié)果并且快速有效地訓(xùn)練淺層網(wǎng)絡(luò)的可以根據(jù)問題自動調(diào)整PSO參數(shù)的方法[103]。

        2.2.3 蟻群算法及其各種變體

        Dorigo 等[104]首次用具有隨機搜索性質(zhì)的蟻群算法(ant colony algorithm,ACO)解決一些組合優(yōu)化問題。在ACO 中,每次迭代時,螞蟻k在當(dāng)前節(jié)點i根據(jù)一定概率訪問從未訪問的某一節(jié)點j從而建立路徑。然后關(guān)聯(lián)全局即根據(jù)所有螞蟻搜索到的路徑進行信息素的更新。

        ACO 在問題狀態(tài)空間中具有有效的搜索能力,Joseph等[105]用ACO優(yōu)化的神經(jīng)網(wǎng)絡(luò)選擇文本分類的特征。相較于基于純梯度的神經(jīng)網(wǎng)絡(luò),ACO 優(yōu)化的神經(jīng)網(wǎng)絡(luò)精度更高,能有效地找到Reuter的數(shù)據(jù)集中最小的特征子集。Zhang 等[106]用ACO 優(yōu)化具有一個隱藏層的神經(jīng)網(wǎng)絡(luò)和最多有六個隱藏層的深度神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏差。這比反向傳播訓(xùn)練的同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)預(yù)測露天采礦項目的成本的精度更高,即ACO 在提高預(yù)測模型的準確性方面發(fā)揮了至關(guān)重要的作用。通過實驗發(fā)現(xiàn)螞蟻的迭代次數(shù)與神經(jīng)網(wǎng)絡(luò)的隱藏層數(shù)呈高度負相關(guān),即螞蟻的全局搜索是隨機的,它們必須進行更多的迭代才能找到具有較少隱藏層的神經(jīng)網(wǎng)絡(luò)的最佳參數(shù)。

        ACO 已成功地應(yīng)用于求解離散問題,但它的離散性質(zhì)限制了應(yīng)用于連續(xù)領(lǐng)域。所以Ping等[107]提出了兩種求解連續(xù)域的ACO變體。Socha等[108]把ACO中的離散概率分布轉(zhuǎn)變?yōu)檫B續(xù)概率分布即高斯概率分布,從而提出了一種可以擴展到實數(shù)變量優(yōu)化的蟻群算法ACOR,其訓(xùn)練過程見算法2,并將其應(yīng)用在固定拓撲結(jié)構(gòu)的具有六個隱藏層的FNN的訓(xùn)練上[109]。

        算法2改進的蟻群算法

        輸入:蟻群規(guī)模N,信息因子α,最大迭代次數(shù)Tmax,啟發(fā)函數(shù)因子β,信息素表Table。

        輸出:最優(yōu)路徑向量作為權(quán)值。

        步驟1隨機初始化所有螞蟻的位置;

        步驟2第i個螞蟻根據(jù)信息素表Table依概率選擇下一個節(jié)點直到訪問完所有節(jié)點;

        步驟3把第i個螞蟻的路徑添加到信息素表Table;

        步驟4當(dāng)i≤N時設(shè)置i=i+1 回到步驟2;

        步驟5排序信息素表Table后,丟棄后N,取前R即更新Table;

        步驟6當(dāng)j≤N+R時,設(shè)置j=j+1 回到步驟5;

        步驟7若t <Tmax或者大于設(shè)定的精確度θ時,設(shè)置t=t+1,回到步驟2,否則結(jié)束循環(huán)并輸出路徑最優(yōu)解。

        ACO由一個信息素矩陣和一個啟發(fā)式權(quán)重矩陣組成的概率模型,這兩個矩陣基本上衡量了將決策變量設(shè)置為特定值的“回報”。其目標是進化信息素矩陣,以便通過抽樣中的概率模型生成最優(yōu)(或接近最優(yōu))解。ACOR與ACO 類似,每一次迭代被分兩個階段:構(gòu)建解和更新信息素。但ACO中的螞蟻更新信息素后會丟棄之前迭代尋找到的解,更利于尋找到最優(yōu)解,但遇到信息表中解的數(shù)量巨大時,ACOR需要對解進行比較和排序,耗時就比較長。

        針對ACOR中T只有信息素信息,沒有啟發(fā)式信息的問題,Zhao等[110]在ACOR的基礎(chǔ)上提出帶有啟發(fā)式信息的h-ACOR。結(jié)果顯示,相較于ACOR優(yōu)化的FNN,h-ACOR可以有效地減少訓(xùn)練次數(shù),提高訓(xùn)練精度,但也需要更大的存儲空間。Wan 等[111]提出一種加入了擾動策略的基于蟻群優(yōu)化的人工神經(jīng)網(wǎng)絡(luò)方法。將ACO變體的正反饋與該神經(jīng)網(wǎng)絡(luò)的記憶和聯(lián)想能力結(jié)合起來,克服了ACO 初期缺乏信息素和易局部優(yōu)化的缺點,實例表明,該混合算法在解決水庫徑流預(yù)測問題時具有合理性、可靠性和較高的精度。

        ACO 及其變體的基本機制是建立參數(shù)化概率模型,有堅實的數(shù)學(xué)基礎(chǔ),逐步構(gòu)造可行解。該概率模型的參數(shù)是根據(jù)算法每次迭代中生成的樣本解,隨時間而變化的。這樣做可以加強更好的解,最終得到一個最優(yōu),即ACO及變體通過螞蟻的正向反饋和并行式協(xié)作,實現(xiàn)了全局最優(yōu)。它們可以同時優(yōu)化網(wǎng)絡(luò)的權(quán)值和閾值。相較于遺傳算法,ACO 及其變體在較大的搜索空間中搜索速度更快,極大地提高了計算效率,而且受參數(shù)影響較小,還能充分利用每個螞蟻積累的經(jīng)驗來逼近最優(yōu)解。雖然ACO及其變體中啟發(fā)式性質(zhì)無法提供任何最優(yōu)保證,但它通常能夠在有限的計算預(yù)算內(nèi)找到給定問題的高質(zhì)量解決方案[112],所以ACO 與其他啟發(fā)式或數(shù)學(xué)規(guī)劃相結(jié)合具有一定前景。目前,在依靠專家經(jīng)驗設(shè)定的螞蟻的初始數(shù)量、ACO及變體在高維多目標優(yōu)化問題上[113]、平衡已搜索到的和未訪問到的方法等方面還值得被開發(fā)。

        2.2.4 遺傳算法及其各種變體

        Holland 受生物進化論啟發(fā)提出了一種由選擇,交叉和變異三個過程搜索最優(yōu)解的遺傳算法(genetic algorithm,GA)。選擇算法是選擇較優(yōu)個體遺傳到下一代,雖有很多,如依概率的輪盤賭選擇、排序選擇、最優(yōu)個體選擇和隨機聯(lián)賽選擇等,但這都與適應(yīng)度有關(guān)。Shen 等[114]發(fā)現(xiàn)GA 選擇策略影響種群的初始多樣性,認為適當(dāng)控制優(yōu)勢的基因有利于GA 的穩(wěn)定性。交叉法是相互配對的染色體交換部分基因,是區(qū)別其他進化算法最重要特征,是產(chǎn)生新個體的關(guān)鍵,有單點交叉、兩點交叉、均勻交叉和算術(shù)交叉等。變異法是用小概率隨機改變某等位基因值,所以可以探索到搜索空間中的新區(qū)域,確保了遺傳多樣性[115],有基本位變異、均勻變異和邊界變異等。交叉和變異策略的選擇對GA 的搜索能力、收斂效率和精度起著至關(guān)重要的作用。

        由于GA 不能直接處理問題空間的參數(shù),所以用GA 解決問題時必須進行編碼。Togelius等[116]指出不恰當(dāng)?shù)木幋a會導(dǎo)致找不到解決方案。所以GA 訓(xùn)練神經(jīng)網(wǎng)絡(luò)最主要的問題是:如何使用有效的遺傳表示對網(wǎng)絡(luò)進行編碼。直接編碼方案在基因組中指定了表型中出現(xiàn)的每個連接和節(jié)點,即網(wǎng)絡(luò)的參數(shù)值(如權(quán)重和神經(jīng)元)與其遺傳表示進行一對一映射,因此大量的突觸連接可以被相應(yīng)基因型中少量的參數(shù)編碼。間接編碼通常只指定構(gòu)建表型的規(guī)則,特定的基因或生長規(guī)則由細胞分裂確定,即計算它與種群中其他每個生物的距離,進而調(diào)整適合度。所以間接編碼比直接編碼具有更緊湊的表示形式。編碼方式一般有實值編碼和二進制編碼。在使用算法3解決問題時,目標函數(shù)與適應(yīng)度函數(shù)可能需要進行轉(zhuǎn)變。

        算法3遺傳算法

        輸入:種群規(guī)模N,迭代次數(shù)Tmax,交叉概率pc,變異概率pm,個體長度Len,個體范圍bound。

        輸出:適應(yīng)度值最優(yōu)的個體i。

        步驟1初始化:對每個個體進行編碼,計算各自的適應(yīng)度值fitness;

        步驟2選擇:對每個個體基于適應(yīng)度的過程進行選擇;

        步驟3交叉與變異:每個個體以交叉概率交叉,以變異概率變異;

        步驟4評估:重新計算每個個體的適應(yīng)度值,并找到適應(yīng)度值最優(yōu)的個體;

        步驟5若t≤Tmax或者大于設(shè)定的精確度時,設(shè)置t=t+1,回到步驟2,否則結(jié)束循環(huán)并輸出適應(yīng)度值最優(yōu)的個體。

        為了訓(xùn)練神經(jīng)網(wǎng)絡(luò)且提高算法的性能,出現(xiàn)了許多GA的變體。Deb等[117]改進交叉方式后對大規(guī)模現(xiàn)實問題進行實驗,解決了GA 在此大數(shù)據(jù)上較費時的問題。Mouret等[118]在GA基礎(chǔ)上,提出了一個可以提供一種全面視角的多維檔案算法。Pugh等[119]在質(zhì)量多樣性算法和GA的基礎(chǔ)上,提出了一種可以同時混合多個行為表征的新算法,它成功地克服了尋找量子點相關(guān)的一些挑戰(zhàn)。以上兩個實驗解決了遺傳算法局部搜索能力較差,網(wǎng)絡(luò)的訓(xùn)練精度可能不那么令人滿意的問題。Stanley[120]在沒有局部相互作用的情況下映射到表型,Gauci[121]同樣采用間接編碼方式,將超立方體中產(chǎn)生的空間模式解釋為低維空間中的連接模式,這都提高了遺傳算法的性能。Miller[122]首次嘗試用GA設(shè)計和進化神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。然后Jaddi 等[123]發(fā)現(xiàn)GA 可以同時優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和權(quán)重。Esfahanian等[124]提出一種半折疊染色體結(jié)構(gòu)編碼方式,在此基礎(chǔ)上用穩(wěn)態(tài)、世代和精英三種單獨的GA 訓(xùn)練神經(jīng)網(wǎng)絡(luò),發(fā)現(xiàn)該編碼方式不僅可以減小染色體大小,而且能隨著網(wǎng)絡(luò)的發(fā)展而擴展,所以可以更好地處理大型網(wǎng)絡(luò)。Sun 等[125]提出了一種可變長度基因編碼策略和一種新的適應(yīng)度評估方法,發(fā)現(xiàn)可以把GA擴展到訓(xùn)練深層卷積神經(jīng)網(wǎng)絡(luò)上。此改進算法不僅加快了搜索速度,而且在圖像分類錯誤率和參數(shù)數(shù)量(權(quán)重)方面具有顯著優(yōu)勢。Fang等[126]在Sun使用的二元錦標賽選擇算子中加入精英機制,選擇有前途的個體。這不僅保證了種群的多樣性和收斂性,而且可以在進化過程中有效地找到最優(yōu)的DNN結(jié)構(gòu)。Ghorbanzadeh等[127]將順序搜索方法與深度遺傳適應(yīng)度形成的GA相結(jié)合,實驗發(fā)現(xiàn),該方法不僅加快了GA 的收斂速度,而且促進了基于深度學(xué)習(xí)的分類器的訓(xùn)練。Yang等[128]通過在親本染色體長度范圍內(nèi)逐個交叉基因,并在一個小的突變率內(nèi),選擇性地突變進入染色體的每個基因來改進算法,這減少了迭代次數(shù),加快適應(yīng)度的收斂速度,還提高神經(jīng)網(wǎng)絡(luò)模型的魯棒性和安全性。

        GA 受啟發(fā)于進化論缺乏了數(shù)學(xué)理論,可能存在所有個體都陷于同一個極值,不合理的選擇和交叉算子會有早熟收斂的風(fēng)險。GA 的參數(shù)的選擇也缺乏指導(dǎo)信息。但是一個簡單的遺傳算法就能夠訓(xùn)練深度神經(jīng)網(wǎng)絡(luò),讓它們像DQN一樣玩很多的雅達利游戲[129]。GA具有并行性,能同時優(yōu)化結(jié)構(gòu)和連接權(quán)系數(shù),所以收斂速度很快,并且有效地提高了神經(jīng)網(wǎng)絡(luò)的泛化性能。該算法僅利用適應(yīng)度值作為度量,所以把握搜索過程總體能力較強,可以找出空間所有解。它的增強式學(xué)習(xí)能力優(yōu)化神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值的過程可以保證神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)固定不變。

        3 算法分析與總結(jié)

        Mcculloch 等[130]建立的第一個MP 模型標志著神經(jīng)網(wǎng)絡(luò)時代的到來。近年來,神經(jīng)網(wǎng)絡(luò)的熱度只增不減,當(dāng)人們面對一個新問題時需要清楚訓(xùn)練數(shù)據(jù)、網(wǎng)絡(luò)架構(gòu)和訓(xùn)練方法是什么樣的。目前還沒有一個明確的答案。但錯誤的選擇往往會讓人們付出高昂的代價。所以一個重要的問題就是,如何訓(xùn)練一個能夠解決問題并且性能較好的神經(jīng)網(wǎng)絡(luò),采取什么辦法提高神經(jīng)網(wǎng)絡(luò)泛化能力和學(xué)習(xí)時間這兩個關(guān)鍵性能指標?已出現(xiàn)大量方法,如對數(shù)據(jù)進行預(yù)處理、各種網(wǎng)絡(luò)初始化的技巧、訓(xùn)練網(wǎng)絡(luò)方法、激活函數(shù)的選擇、不同正則化方法和集成多個神經(jīng)網(wǎng)絡(luò)等。神經(jīng)網(wǎng)絡(luò)的性能高度依賴于訓(xùn)練過程,因此這是最近許多研究工作的重點[131-132]。但目前對于選擇什么算法沒有達成共識,好像是取決于使用者對算法的熟悉程度[133]。

        從Rumelhart等[4]提出用反向傳播算法開始,出現(xiàn)了一系列基于此的訓(xùn)練算法,有隨機梯度算法和小批量隨機梯度算法等一階的各種梯度下降算法、有擬牛頓和共軛梯度法等二階近似法、有Adam和RMSProp等自適應(yīng)學(xué)習(xí)率算法。面對復(fù)雜的網(wǎng)絡(luò)和高維空間,基于純梯度的訓(xùn)練算法暴露出了一系列弊端,尤其對初始設(shè)定值的過度依賴和在激活的平整度上等。由于采樣數(shù)據(jù)往往存在噪聲,所以代價函數(shù)并不準確,此時基于純梯度的算法不能過濾噪聲,優(yōu)化不準確的代價函數(shù)是不可取的。因此,本文總結(jié)出一些常見的訓(xùn)練神經(jīng)網(wǎng)絡(luò)權(quán)重的非梯度算法。

        訓(xùn)練神經(jīng)網(wǎng)絡(luò)是在考慮了精確度和損失率的基礎(chǔ)上,去找目標函數(shù)的最優(yōu)值。基于非梯度的訓(xùn)練算法與基于純梯度的訓(xùn)練算法相比,不需要調(diào)整復(fù)雜的超參數(shù),不需要反向傳播誤差,可以直接使用可微和不可微的激活函數(shù)。無梯度算法的優(yōu)點在于顯著減少了訓(xùn)練時間。但它的缺點是增加了網(wǎng)絡(luò)的復(fù)雜性,當(dāng)隱藏單元的生成數(shù)量增加許多倍,可能會導(dǎo)致過擬合。

        此文先介紹相關(guān)的神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),讓讀者首先對神經(jīng)網(wǎng)絡(luò)及其結(jié)構(gòu)有一定了解;然后介紹涉及到訓(xùn)練良好性能的神經(jīng)網(wǎng)絡(luò)的方方面面;再對部分較流行的非梯度訓(xùn)練神經(jīng)網(wǎng)絡(luò)權(quán)重的算法展開介紹,介紹這些算法如何訓(xùn)練神經(jīng)網(wǎng)絡(luò)的權(quán)重以及各自的優(yōu)缺點和各種變體。在當(dāng)今這個發(fā)展的社會,這些神經(jīng)網(wǎng)絡(luò)非梯度訓(xùn)練算法已慢慢被重視,而且已在多個領(lǐng)域得到應(yīng)用。

        3.1 非梯度神經(jīng)網(wǎng)絡(luò)算法理論分析與對比

        非梯度神經(jīng)網(wǎng)絡(luò)算法理論分析與對比如表3。

        表3 非梯度神經(jīng)網(wǎng)絡(luò)算法理論分析Table 3 Oretical analysis of non-gradient neural network algorithms

        3.2 神經(jīng)網(wǎng)絡(luò)非梯度優(yōu)化算法的展望

        沒有免費的午餐定理明確說出沒有最優(yōu)的學(xué)習(xí)算法。一個神經(jīng)網(wǎng)絡(luò)優(yōu)化算法并不能解決現(xiàn)實中所有問題,只可以很好地解決相應(yīng)的問題,即沒有萬能的神經(jīng)網(wǎng)絡(luò)優(yōu)化算法,只有比較適合某一個特定的問題的訓(xùn)練算法。而且Blum等[134]和Judd[135]在理論上證明神經(jīng)網(wǎng)絡(luò)的優(yōu)化算法都有性能限制。

        目前單純的基于無梯度的訓(xùn)練算法并不是基于純梯度的訓(xùn)練算法的競爭對手,但是當(dāng)梯度算法不能使用時,它是一個很好的選擇[136]。

        近年涌現(xiàn)出組合多個算法的思想去訓(xùn)練神經(jīng)網(wǎng)絡(luò),如基于純梯度的算法和非梯度算法一起訓(xùn)練神經(jīng)網(wǎng)絡(luò)[137-140],基于某種非梯度思想的非梯度算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)[141-145]等。這種混合優(yōu)化器顯示出極高的潛力,在某些問題上這些經(jīng)過組合的非梯度算法比其中的單個算法更有效。這種思想可以把算法的某種優(yōu)點組合在一起,這可能會成為一個研究方向[146]。本文列舉的這些算法有一定缺點,這些算法可以繼續(xù)被改進。訓(xùn)練一個性能良好的神經(jīng)網(wǎng)絡(luò)本來就與許多方面相關(guān),使用非梯度訓(xùn)練算法的同時考慮到神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)、數(shù)據(jù)的處理、目標函數(shù)的選擇和防止過擬合的正則化等因素。這些相關(guān)因素全被考慮到,可以使神經(jīng)網(wǎng)絡(luò)在解決問題時做出更好的決定。

        猜你喜歡
        權(quán)值梯度權(quán)重
        一種融合時間權(quán)值和用戶行為序列的電影推薦模型
        一個改進的WYL型三項共軛梯度法
        CONTENTS
        權(quán)重常思“浮名輕”
        一種自適應(yīng)Dai-Liao共軛梯度法
        一類扭積形式的梯度近Ricci孤立子
        為黨督政勤履職 代民行權(quán)重擔(dān)當(dāng)
        基于公約式權(quán)重的截短線性分組碼盲識別方法
        基于權(quán)值動量的RBM加速學(xué)習(xí)算法研究
        層次分析法權(quán)重的計算:基于Lingo的數(shù)學(xué)模型
        河南科技(2014年15期)2014-02-27 14:12:51
        日本国产一区二区在线| a级毛片免费观看视频 | 国产精品免费精品自在线观看| 精品国模一区二区三区| 欧美a在线播放| 国产人妖一区二区av| 日韩有码中文字幕在线观看| 中国妇女做爰视频| 免费无码毛片一区二区三区a片 | 无遮挡亲胸捏胸免费视频| 91麻豆精品激情在线观看最新 | 国产成人亚洲精品一区二区三区| 一区二区三区精品免费| 亚洲理论电影在线观看| 久久久久久久无码高潮| 加勒比无码专区中文字幕| 亚洲中文字幕精品一区二区| 国产成人av三级在线观看韩国| 精品久久有码中文字幕| 日本黄页网站免费观看| 精品91亚洲高清在线观看| 99视频一区二区日本| 激情精品一区二区三区| 日产无人区一线二线三线乱码蘑菇 | 久久国内精品自在自线图片| 亚洲Va中文字幕久久无码一区 | 在线视频日韩精品三区| 天堂网av一区二区三区在线观看| 午夜精品久久久久久久无码| av人摸人人人澡人人超碰小说| 中国免费一级毛片| 国产草逼视频免费观看| 国产激情一区二区三区| 久热在线播放中文字幕| 精品亚洲不卡一区二区| 最新国产熟女资源自拍| 亚洲av永久无码天堂网毛片| 国产美女高潮流白浆在线观看| 99伊人久久精品亚洲午夜| 午夜福利理论片在线观看| 国产欧美亚洲精品a|