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

        ?

        基于多參數(shù)融合優(yōu)化的深度神經(jīng)網(wǎng)絡(luò)設(shè)計研究

        2021-12-29 03:55:02蔣正鋒廖群麗
        現(xiàn)代計算機 2021年31期
        關(guān)鍵詞:優(yōu)化模型

        蔣正鋒,廖群麗

        (1.廣西民族師范學(xué)院數(shù)理與電子信息工程學(xué)院,崇左 532200;2.廣西理工職業(yè)技術(shù)學(xué)院電子工程與智能化學(xué)院,崇左 532200)

        0 引言

        近年來,隨著計算機技術(shù)的發(fā)展,深度學(xué)習(xí)(deep learning)在計算機視覺、自然語言處理和語音識別等多個領(lǐng)域[1]都已取得顯著的效果,表現(xiàn)出極大的應(yīng)用價值,現(xiàn)已成為人工智能的一個研究熱點,并開創(chuàng)了神經(jīng)網(wǎng)絡(luò)發(fā)展的新紀元。

        神經(jīng)網(wǎng)絡(luò)起源于1943年的McCulloch-Pitts(MCP)模型,是人工神經(jīng)模型的最早的原型[2]。1985年感知器算法被提出來,使得MCP模型能對多維數(shù)據(jù)進行二分類處理,隨后反向傳播算法的提出為現(xiàn)代神經(jīng)網(wǎng)絡(luò)的快速發(fā)展打開了大門。20世紀80年代,啟發(fā)卷積神經(jīng)網(wǎng)絡(luò)[3]和遞歸神經(jīng)網(wǎng)絡(luò)[4]相繼被提出,而20世紀90年代,LeNet[5]應(yīng)用于數(shù)字識別,取得了不錯的效果。2006年,因深度神經(jīng)網(wǎng)絡(luò)理論在機器學(xué)習(xí)中取得初步成功的應(yīng)用,Hinton等人提出了深度學(xué)習(xí)[6]的概念,引起了人們的關(guān)注。經(jīng)過多年的發(fā)展,從單層網(wǎng)絡(luò)逐漸發(fā)展到多層網(wǎng)絡(luò)[7-8],而多層的神經(jīng)網(wǎng)絡(luò)可能包含上百層以及上百兆的訓(xùn)練參數(shù)。2012年提出的深度學(xué)習(xí)架構(gòu)AlexNet摘取了2012年視覺領(lǐng)域競賽ILSVRC[9](imageNet large-scale visual recogni?tion challenge)的桂冠,Top-5的錯誤率降低到15.3%[10],其效果大幅度領(lǐng)先傳統(tǒng)的方法。隨后的幾年,識別錯誤率不斷被新提出更深層的卷積神經(jīng)網(wǎng)絡(luò)刷新,在2014年,VGGNet取得了89.3%的平均正確率[11],2016年He等人提出的ResNet,將分類的錯誤率降低到3.57%[12],而2017年由胡杰等人提出的SENet錯誤識別率只有2.25%。各種不同的深度神經(jīng)網(wǎng)絡(luò)模型的提出,促進了深度學(xué)習(xí)的發(fā)展。

        深度學(xué)習(xí)的快速發(fā)展,離不開設(shè)計更加優(yōu)秀的深度學(xué)習(xí)模型,人們也逐漸意識到深度學(xué)習(xí)模型的結(jié)構(gòu)是深度學(xué)習(xí)研究的重中之重。深度學(xué)習(xí)的本質(zhì)就是構(gòu)建具有多個隱層的人工神經(jīng)網(wǎng)絡(luò)模型,人工神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)不管淺層還是深層主要是根據(jù)實驗和經(jīng)驗來設(shè)計,但目前還沒有一套具體理論可遵循。本文基于TensorFlow框架,采用一種先簡單后復(fù)雜,多參數(shù)融合逐步優(yōu)化的神經(jīng)網(wǎng)絡(luò)設(shè)計方法,為后續(xù)設(shè)計更復(fù)雜的深度神經(jīng)網(wǎng)絡(luò)提供了思路。

        1 TensofFlow簡介

        Google公司在計算機相關(guān)的很多領(lǐng)域都有卓越的表現(xiàn),人工智能領(lǐng)域也不例外。TensforFlow是Google公司2015年開發(fā)的基于DistBelief的一款優(yōu)秀開源的深度學(xué)習(xí)框架,設(shè)計神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)代碼簡潔,得到越來越多開發(fā)者的青睞。TensFlow不是全部由Python編寫,很多底層代碼是由C++或CUDA編寫的,它提供Python和C++的編程接口,對線程和隊列的基本運算能從底層來實現(xiàn),也能較方便調(diào)用到硬件資源。用戶借助Tensor?Flow靈活的架構(gòu),可部署到多種平臺(CPU、GPU、TPU)進行分布式計算,為大數(shù)據(jù)分析提供支持。TensorFlow的跨平臺性也好,在各種設(shè)備(桌面設(shè)備、服務(wù)器集群、移動設(shè)備、邊緣設(shè)備)下工作??傊琓ensorFlow為計算機視覺、自然語言處理和語音識別等機器學(xué)習(xí)和深度學(xué)習(xí)提供了強有力的支持,并且其靈活性的數(shù)值計算核心也可廣泛應(yīng)用于其他科學(xué)領(lǐng)域。

        2 深度神經(jīng)網(wǎng)絡(luò)模型設(shè)計

        構(gòu)建一個神經(jīng)網(wǎng)絡(luò)模型,沒有具體理論可遵,但與待解決的具體問題有關(guān)。以TensorFlow的經(jīng)典實戰(zhàn)項目MNIST手寫數(shù)字識別為例,探索如何逐步設(shè)計一個滿足要求的多參數(shù)融合的神經(jīng)網(wǎng)絡(luò)模型。設(shè)計任意一個淺度或深度的神經(jīng)網(wǎng)絡(luò),一般來說按如下的4個步驟:①數(shù)據(jù)預(yù)處理。②構(gòu)建符合要求的初步模型。③選擇激活函數(shù)、損失函數(shù)和優(yōu)化器。④訓(xùn)練模型和評價模型。

        本文將詳細討論整個設(shè)計神經(jīng)網(wǎng)絡(luò)步驟中的各個環(huán)節(jié)。

        2.1 數(shù)據(jù)的預(yù)處理

        為了在訓(xùn)練中更加容易提取數(shù)據(jù)的相關(guān)信息,需要對數(shù)據(jù)進行預(yù)先處理。數(shù)據(jù)預(yù)處理包括歸一化技術(shù)、非線性變換、特征提取、離散輸入、目標編碼、缺失數(shù)據(jù)的處理和數(shù)據(jù)集的劃分等。數(shù)據(jù)集的劃分根據(jù)評估模型方法驗證和交叉驗證來劃分。模型方法為驗證時,選擇數(shù)據(jù)集后,一般會把數(shù)據(jù)劃分為三個子集:訓(xùn)練集、驗證集和測試集。訓(xùn)練集的大小占整個數(shù)據(jù)集的70%左右,用于構(gòu)建預(yù)測模型,驗證集占整個數(shù)據(jù)集的15%左右,評估訓(xùn)練階段模型的性能,測試集也占整個數(shù)據(jù)集的15%左右,評估模型未來可能性的性能。

        選擇MNIST數(shù)據(jù)集,它是著名的手寫體數(shù)字機器視覺數(shù)據(jù)集。兩條途徑獲得MNIST數(shù)據(jù)集,一是從Yann LeCun教授的官網(wǎng)上下載,二是使用TensorFlow的官方案例,而MNIST數(shù)據(jù)集包含在TensorFlow中。MNIST數(shù)據(jù)集有60000個樣本,其中55000個樣本為訓(xùn)練集,另5000個樣本為驗證集的一部分,驗證集總共10000個樣本,還有5000個是從訓(xùn)練集中隨機選擇的,測試集樣本數(shù)為10000。整個數(shù)據(jù)集的劃分如表1所示。

        在數(shù)據(jù)集MNIST中,每個樣本包含了灰度值信息和這個樣本對應(yīng)的標簽,每張圖片樣本都是28×28像素的手寫數(shù)字組成,為了簡化模型,通過降維處理,二維28×28的圖片轉(zhuǎn)化為有784個特征的一維向量,則訓(xùn)練集的特征為一個[55000,784]的張量,測試集和驗證集的特征分別為[10000,784]和[10000,784]的張量。訓(xùn)練數(shù)據(jù)集對應(yīng)的標簽是一個[55000,10]的張量,其中第55000表示訓(xùn)練集中有55000張樣本圖片,10表示訓(xùn)練集中每張圖片樣本的標簽是一個包含10個數(shù)字種類的one_hot編碼。在實驗中,用到訓(xùn)練集和測試集,訓(xùn)練集對神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,測試集驗證設(shè)計的神經(jīng)網(wǎng)絡(luò)效果。

        2.2 構(gòu)建符合要求的初步模型

        神經(jīng)網(wǎng)絡(luò)中輸入層神經(jīng)元的個數(shù)與數(shù)據(jù)集中樣本的維度有關(guān),而輸出層神經(jīng)元的個數(shù)與分類類別數(shù)量有關(guān)。MNIST數(shù)據(jù)集中樣本是28×28二維的,轉(zhuǎn)成一維向量有784個灰度值,決定神經(jīng)網(wǎng)絡(luò)模型的輸入層中神經(jīng)元的個數(shù)為784。MNIST數(shù)據(jù)集是手寫體數(shù)字是0到9共10個分類,所以輸出層神經(jīng)元的個數(shù)為10。先設(shè)計一個沒有隱含層的簡單神經(jīng)網(wǎng)絡(luò),即只有輸入層和輸出層,如圖1所示。

        圖1 沒有隱含層的簡單神經(jīng)網(wǎng)絡(luò)

        無隱層神經(jīng)網(wǎng)絡(luò)輸入層和輸出層的神經(jīng)元數(shù)量確定后,通過實驗優(yōu)化多參數(shù)融合的簡單神經(jīng)網(wǎng)絡(luò),然后在沒有隱含層神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上逐漸增加隱含層,隱層的層數(shù)以及每層神經(jīng)元的個數(shù)通過多參數(shù)調(diào)優(yōu)確定。

        2.3 選擇激活函數(shù)、損失函數(shù)和優(yōu)化器

        2.3.1 激活函數(shù)

        激活函數(shù)是使神經(jīng)網(wǎng)絡(luò)具備了分層的非線性映射學(xué)習(xí)的能力,幾乎可以逼近任意的函數(shù),能解決更為復(fù)雜的問題。早期神經(jīng)網(wǎng)絡(luò)的激活函數(shù)有sigmoid函數(shù)或tanh函數(shù),近年來在深度學(xué)習(xí)網(wǎng)絡(luò)中應(yīng)用relu函數(shù)比較多。如何選擇激活函數(shù),還沒有一個確定的方法,主要還是憑一些經(jīng)驗。幾個常用的激活函數(shù)如下:

        (1)sigmoid函數(shù)。sigmoid是常用的非線性的一種激活函數(shù),其定義如式(1)所示:

        把輸入z映射到0到1之間的范圍,但在深度神經(jīng)網(wǎng)絡(luò)中sigmoid激活函數(shù)會導(dǎo)致梯度爆炸和梯度消失的問題,并且sigmoid函數(shù)的輸出是非零均值信號作為下一層的輸入,會導(dǎo)致收斂緩慢,并且sigmoid函數(shù)有冪運算,運算比較耗時等缺點。

        (2)tanh函數(shù)。tanh函數(shù)解決了sigmoid函數(shù)的輸出是非零均值信號作為下一層輸入的問題,但梯度消失和冪運算問題在以tanh為激活函數(shù)的深度神經(jīng)網(wǎng)絡(luò)中依然存在。tanh函數(shù)的解析式如公式(2)所示。

        (3)relu函數(shù)。relu函數(shù)的解析式如公式(3)所示。

        relu是一個分區(qū)間取最大值的函數(shù),不是全區(qū)間可導(dǎo)的,但它解決了神經(jīng)網(wǎng)絡(luò)梯度消失的問題,只判斷輸入x與0的大小,計算速度非常快,收斂速度快于sigmoid和tanh激活函數(shù)。

        2.3.2 損失函數(shù)

        損失函數(shù)是估算設(shè)計的神經(jīng)網(wǎng)絡(luò)模型預(yù)測值ypre=f(x)與真實值yhat之間的差異,通常用L oss(yh at,ypre)來表示損失函數(shù),常見的損失函數(shù)如下:

        (1)0-1損失函數(shù)。0-1損失函數(shù)的定義如公式(4)所示。

        0-1損失函數(shù)不考慮預(yù)測值和真實值差異程度,如果預(yù)測正確,則損失函數(shù)的值為0,否則損失函數(shù)的值為1。

        (2)平方損失函數(shù)。平方損失函數(shù)的定義如公式(5)所示。

        平方損失函數(shù)的值是預(yù)測值和真實值差異的平方。

        (3)交叉熵損失函數(shù)。交叉熵是用來描述實際輸出概率分布q(x)與期望輸出概率p(x)的距離,交叉熵函數(shù)H(p,q)的定義如公式(6)所示。

        2.3.3 優(yōu)化器

        設(shè)計神經(jīng)網(wǎng)絡(luò)模型后,定義好損失函數(shù),在訓(xùn)練模型時使損失函數(shù)隨訓(xùn)練迭代次數(shù)的增加逐漸趨于0,這是優(yōu)化器的作用。常用的優(yōu)化器有梯度下降法(gradient descent)、動量優(yōu)化法和自適應(yīng)學(xué)習(xí)率優(yōu)化算法等。

        (1)梯度下降法。梯度下降法是最基本的優(yōu)化器,主要分三種,即標準梯度下降法(gradient descent)、隨機梯度下降(stochastic gradient de?scent)和批量梯度下降(batch gradient descent)。

        (2)動量優(yōu)化法。動量優(yōu)化方法是基于梯度下降法,具有加速梯度下降的作用。一般有標準動量優(yōu)化方法Momentum和NAG(nesterov acceler?ated gradient)動量優(yōu)化方法。

        (3)自適應(yīng)學(xué)習(xí)率優(yōu)化算法。傳統(tǒng)優(yōu)化器中學(xué)習(xí)率是常數(shù)或根據(jù)訓(xùn)練次數(shù)動態(tài)變化,沒有考慮學(xué)習(xí)率其他變化的可能性,而學(xué)習(xí)率對模型的收斂有顯著的影響,采取一些策略更新學(xué)習(xí)率,提高模型的訓(xùn)練速度。自適應(yīng)學(xué)習(xí)率優(yōu)化算法目前主要有AdaGrad算法、RMSProp算法、Adam算法和AdaDelta算法。

        2.4 訓(xùn)練模型和評估模型

        神經(jīng)網(wǎng)絡(luò)模型的參數(shù)是weight(權(quán)重)和bias(閾值),訓(xùn)練模型是通過訓(xùn)練樣本和學(xué)習(xí)算法反復(fù)調(diào)整weight和bias模型參數(shù)值,使實際輸出與理想輸出的誤差較少,最后得到神經(jīng)網(wǎng)絡(luò)解決問題所需要的參數(shù)。訓(xùn)練模型的學(xué)習(xí)算法中,最具有代表性的是誤差反向傳播(error backpropaga?tion,BP)算法,廣泛應(yīng)用于多層前饋神經(jīng)網(wǎng)絡(luò)。

        評估模型的方法有驗證和交叉驗證,不同的評估方法也決定數(shù)據(jù)集的劃分。分類問題常見的模型評價指標有混淆矩陣(confusion matrix)、準確率(accuracy)、精確率(precision)、召回率(recall)、特異度(specificity)等,如表2所示。

        (1)混淆矩陣是一個N×N的矩陣,其中的N表示類別數(shù)量,混淆矩陣中的行表示樣本的預(yù)測類別,列表示樣本的真實類別。

        (2)準確率是預(yù)測正確的樣本數(shù)占所有樣本數(shù)的比例。

        (3)陽性預(yù)測值或精確率是陽性預(yù)測值被預(yù)測正確的比例。

        (4)陰性預(yù)測值陰性預(yù)測值被預(yù)測正確的比例。

        (5)召回率或靈敏度是在陽性值中實際被預(yù)測正確所占的比例。

        (6)特異度在陰性值中實現(xiàn)被預(yù)測正確所占的比例。

        表2中True Positive(TP)是被模型預(yù)測為正的正樣本,F(xiàn)alse Positive(FP)是被模型預(yù)測為正的負樣本,F(xiàn)alse Negative(FN)是被模型預(yù)測為負的正樣本,True Negative(TN)是被模型預(yù)測為負的負樣本。大多數(shù)情況下評估模型只用到準確率,根據(jù)具體的應(yīng)用側(cè)重于不同的評估指標。

        表2 評估模型常見的指標

        3 實驗結(jié)果與分析

        實驗在Intel(R)Core(TM)i7-6700HQ CPU@2.6 GHz 2.59 GHz,8 GB內(nèi)存的Windows 10系統(tǒng)上使用TensorFlow進行測試的。

        3.1 簡單神經(jīng)網(wǎng)絡(luò)設(shè)計

        MNIST數(shù)據(jù)集中樣本圖片轉(zhuǎn)成一維向量有784個元素,決定輸入層神經(jīng)元的個數(shù)為784,而手寫體數(shù)字共10個類別,則輸出層神經(jīng)元的個數(shù)為10。無隱層簡單的神經(jīng)網(wǎng)絡(luò),只有輸入層和輸出層,層與層之間采用全連接方式。

        (1)損失函數(shù)的比較。學(xué)習(xí)率設(shè)置為0.1,訓(xùn)練模型樣本批次大小是100,迭代次數(shù)為30,優(yōu)化器采用梯度下降法,比較交叉熵和平方損失函數(shù)作用于簡單神經(jīng)網(wǎng)絡(luò)的識別準確率。

        圖2(a)是訓(xùn)練模型迭代次數(shù)與準確率之間的曲線關(guān)系,其中上邊兩條曲線為一組,是損失函數(shù)為交叉熵時訓(xùn)練集和測試集的準確率曲線,下邊兩條曲線是損失函數(shù)為平方損失函數(shù)時訓(xùn)練集和測試集的準確率曲線。由圖2(a)可知,在任何迭代次數(shù)上,損失函數(shù)為交叉熵時訓(xùn)練集和測試集的準確率都大于損失函數(shù)為平方損失函數(shù)時訓(xùn)練集和測試集的準確率。圖2(b)是迭代次數(shù)與損失值的曲線關(guān)系,同樣也分兩組,損失值高的一組是損失函數(shù)為平方損失函數(shù)時訓(xùn)練集和測試集的損失值曲線,損失值低的一組是損失函數(shù)為交叉熵時訓(xùn)練集和測試集的損失值曲線,圖2(b)可知,損失函數(shù)為交叉熵時收斂速度快。由圖2交叉熵與平方損失函數(shù)準確率和損失值的比較可知,選擇交叉熵作為簡單神經(jīng)網(wǎng)絡(luò)的損失函數(shù)。

        圖2 交叉熵與平方損失函數(shù)的比較

        (2)不同學(xué)習(xí)率。訓(xùn)練模型樣本批次大小是100,迭代次數(shù)為30,優(yōu)化器采用梯度下降法,損失函數(shù)為交叉熵,比較不同學(xué)習(xí)率(0.1、0.2、0.3、0.4、0.5、0.6)對神經(jīng)網(wǎng)絡(luò)模型的影響。

        圖3展示了基于不同學(xué)習(xí)率準確率的對比,上一行是訓(xùn)練集的測試結(jié)果,下一行是測試集的測試結(jié)果。

        圖3 不同學(xué)習(xí)率對神經(jīng)網(wǎng)絡(luò)準確率的影響

        圖3(a)展示學(xué)習(xí)率分別為0.1、0.2和0.3時準確率隨迭代次數(shù)變化的三條曲線。實驗結(jié)果表明,隨著學(xué)習(xí)率的增加,神經(jīng)網(wǎng)絡(luò)的性能逐步改善,在訓(xùn)練集和測試集中,學(xué)習(xí)率為0.3時準確率幾乎都是最高的,迭代次數(shù)為30準確率分別為93.30%和92.58%。圖3(b)是學(xué)習(xí)率分別為0.4、0.5和0.6時準確率隨迭代次數(shù)變化的曲線。實驗結(jié)果表明,訓(xùn)練集中學(xué)習(xí)率為0.5和0.6時準確率波動較大,特別是學(xué)習(xí)率為0.5準確率不穩(wěn)定。迭代次數(shù)為30時,學(xué)習(xí)率0.6訓(xùn)練集準確率最高,學(xué)習(xí)率0.5測試集準確率最高。圖3(c)是學(xué)習(xí)率分別為0.3、0.5和0.6時準確率隨迭代次數(shù)變化的曲線。實驗結(jié)果表明,不管是訓(xùn)練集還是測試集,不同學(xué)習(xí)率的準確率相差不大,學(xué)習(xí)率0.5和0.6的準確率比學(xué)習(xí)率0.3的準確率稍高,但訓(xùn)練集中學(xué)習(xí)率0.5和0.6的準確率波動較大。由圖3分析可知,學(xué)習(xí)率0.3到0.4之間比較合適,所以學(xué)習(xí)率選擇0.3。

        (3)批次大小。學(xué)習(xí)率為0.3,迭代次數(shù)為30,優(yōu)化器采用梯度下降法,損失函數(shù)為交叉熵,比較不同批次大小(50、100、150、200、250、300)對神經(jīng)網(wǎng)絡(luò)模型的影響。

        圖4展示不同批次大小準確率的對比,上一行是訓(xùn)練集在不同批次大小的測試結(jié)果,下一行是測試集在不同批次大小的測試結(jié)果。圖4(a)是批次大小分別為50、100和150時準確率隨迭代次數(shù)的三條曲線。實驗結(jié)果表明,訓(xùn)練集中,批次大小為50的準確率高于批次大小為100和150的準確率,而測試集中,批次大小為100的準確率高于批次大小為50和150的準確率。圖4(b)表示批次大小分別為200、250和300時準確率隨迭代次數(shù)的曲線關(guān)系,訓(xùn)練集中,迭代次數(shù)30批次大小200時準確率為93.03%,高于批次大小250和300對應(yīng)的準確率92.89%和92.85%,而測試集中迭代次數(shù)30批次大小200時準確率也是最高的。圖4(c)表示批次大小分別為100、200和300時準確率隨迭代次數(shù)的曲線關(guān)系,不管是訓(xùn)練集還是測試集,批次大小100時準確率最高。由圖4分析可知,批次大小為100模型的性能最好。

        圖4 不同批次大小對神經(jīng)網(wǎng)絡(luò)準確率的影響

        (4)優(yōu)化器的選擇。訓(xùn)練模型樣本批次大小是100,迭代次數(shù)為30,損失函數(shù)為交叉熵,學(xué)習(xí)率為0.3,比較不同優(yōu)化器(梯度下降、Adam算法、AdaDelta算法和AdaGrad算法)對神經(jīng)網(wǎng)絡(luò)模型的影響。圖5展示不同優(yōu)化器在訓(xùn)練集和測試集上的準確率曲線,圖5(a)表示的是梯度下降、Adam算法、AdaDelta算法和AdaGrad算法在訓(xùn)練集中準確率隨迭代次數(shù)增加的變化曲線,最上邊的兩條準確率曲線對應(yīng)的優(yōu)化器是梯度下降和AdaGrad。實驗結(jié)果表明,梯度下降和AdaGrad的性能優(yōu)化Adam和AdaDelta算法,而AdaGrad算法的性能最優(yōu)。圖5(b)與圖5(a)是對應(yīng)的,曲線的長度表示準確率的范圍,灰色曲線表示AdaGrad算法所對應(yīng)的準確率。圖5(c)表示在測試集中,不同優(yōu)化器的準確率隨迭代次數(shù)增加的變化曲線,實驗結(jié)果表明,最上邊的兩條準確率曲線對應(yīng)的優(yōu)化器是梯度下降和AdaGrad,而AdaGrad算法的性能最優(yōu)。由圖5分析可知,優(yōu)化器選擇AdaGrad算法。

        圖5 不同優(yōu)化器在訓(xùn)練集和測試集上準確率隨迭代次數(shù)的變化曲線

        以上所有實驗結(jié)果分析表明,設(shè)計無隱層多參數(shù)融合具有較高準確率的簡單神經(jīng)網(wǎng)絡(luò),可參考表3所示多個參數(shù)及對應(yīng)的值。

        表3 無隱層的簡單神經(jīng)網(wǎng)絡(luò)參數(shù)

        3.2 單層隱含層神經(jīng)網(wǎng)絡(luò)設(shè)計

        在無隱層多參數(shù)融合優(yōu)化的簡單神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上通過增加一隱層繼續(xù)提高準確率,需考慮的是隱層神經(jīng)元的個數(shù)、激活函數(shù)及迭代次數(shù)等方面。

        (1)隱層神經(jīng)元的個數(shù)。樣本批次大小100,迭代次數(shù)30,損失函數(shù)為交叉熵,學(xué)習(xí)率0.3,優(yōu)化器是AdaGrad算法,激活函數(shù)sigmoid,單層隱含層,比較隱層不同數(shù)量神經(jīng)元對神經(jīng)網(wǎng)絡(luò)模型的影響。

        圖6展示了單隱層不同數(shù)量神經(jīng)元在訓(xùn)練集和測試集中準確率隨迭代次數(shù)變化的曲線,每幅圖中6條曲線在迭代10次后明顯分成兩組,每組3條曲線幾乎重合在一起。實驗結(jié)果表明,單隱層神經(jīng)網(wǎng)絡(luò)在訓(xùn)練集的準確率高于在測試集的準確率,隱層不同神經(jīng)元個數(shù)對神經(jīng)網(wǎng)絡(luò)模型的性能影響不大,如訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型迭代25次時,圖6(a)神經(jīng)元個數(shù)為400、500和600在測試集中對應(yīng)的準確率分別為98.04%,98.07%和98.10%,在訓(xùn)練集中對應(yīng)的準確率分別為99.85%,99.83%和99.85%,準確率非常接近。圖6(b)和圖6(c)與圖6(a)類似,隱層不同神經(jīng)元的個數(shù)對準確率影響不大,所以選擇隱層神經(jīng)元個數(shù)為500。

        圖6 隱層不同神經(jīng)元個數(shù)對識別準確率的影響

        (2)激活函數(shù)。樣本批次大小100,迭代次數(shù)30,損失函數(shù)為交叉熵,學(xué)習(xí)率0.3,優(yōu)化器是AdaGrad算法,單隱層神經(jīng)元個數(shù)為500,比較不同激活函數(shù)(sigmoid、tanh、rule和selu)對神經(jīng)網(wǎng)絡(luò)模型的影響。

        圖7展示不同激活函數(shù)準確率的對比,上一行是訓(xùn)練集上不同激活函數(shù)的測試結(jié)果,下一行是測試集上不同激活函數(shù)的測試結(jié)果。圖7(a)表示激活函數(shù)sigmoid和tanh在訓(xùn)練集和測試集中準確率隨迭代次數(shù)變化的曲線。實驗結(jié)果表明不管在訓(xùn)練集還是測試集中使用tanh激活函數(shù)比使用sigmoid激活函數(shù)效果好。圖7(a)上圖展示迭代16次以后,使用tanh激活函數(shù)的準確率為100%,而使用sigmoid激活的準確率在99.30%~99.99%之間。圖7(b)表示激活函數(shù)relu和selu在訓(xùn)練集和測試集中準確率隨迭代次數(shù)變化的曲線。實驗結(jié)果表明,測試集中使用relu激活函數(shù)比使用selu激活函數(shù)效果好,訓(xùn)練集中迭代20次前使用relu激活函數(shù)比使用selu激活函數(shù)效果好,迭代20次以后使用relu和selu激活函數(shù)的準確率都為100%。圖7(c)是四種激活函數(shù)在訓(xùn)練集和測試集中準確率隨迭代次數(shù)變化的曲線,訓(xùn)練集中使用relu激活函數(shù)準確率在迭代12次達到了100%,測試集中使用relu激活函數(shù)的準確率比使用其他三種激活函數(shù)的準確率高。

        圖7 不同激活函數(shù)對識別準確率的影響

        以上單隱層所有實驗結(jié)果分析表明,設(shè)計單隱層多參數(shù)融合具有較高準確率的神經(jīng)網(wǎng)絡(luò),需確定隱層神經(jīng)元的個數(shù)、隱層的激活函數(shù)、學(xué)習(xí)率、優(yōu)化算法等參數(shù)參考表4所示。

        表4 單隱層的神經(jīng)網(wǎng)絡(luò)模型參數(shù)

        3.3 多層隱含層神經(jīng)網(wǎng)絡(luò)設(shè)計

        在多參數(shù)融合優(yōu)化的單隱含層神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上再增加一隱層,繼續(xù)優(yōu)化神經(jīng)網(wǎng)絡(luò)模型。樣本批次大小100,迭代次數(shù)30,損失函數(shù)為交叉熵,優(yōu)化器是AdaGrad算法,兩層隱含層,隱含層神經(jīng)元的個數(shù)分別為500和300,隱含層的激活函數(shù)是relu,在測試集中比較不同學(xué)習(xí)率(0.1、0.15、0.2、0.25、0.3、0.35、0.4、0.45、0.5、0.55、0.6、0.65、0.7)對神經(jīng)網(wǎng)絡(luò)模型的影響。

        由表5可知,學(xué)習(xí)率為0.1、0.15、0.2、0.25、0.3、0.35、0.4、0.45時的準確率高于學(xué)習(xí)率為0.5、0.55、0.6、0.65、0.7。學(xué)習(xí)率為0.1、0.15、0.2、0.25、0.3、0.35、0.4的準確率相差不大,它們的準確率隨迭代次數(shù)的變化曲線幾乎是重疊在一起,其中學(xué)習(xí)率0.2和0.25的性能最優(yōu)。實驗結(jié)果表明,多層隱含層神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率設(shè)定為0.2。

        表5 測試集中不同學(xué)習(xí)率

        樣本批次大小100,迭代次數(shù)30,損失函數(shù)為交叉熵,學(xué)習(xí)率為0.2,優(yōu)化器是AdaGrad算法,兩層隱含層,隱含層神經(jīng)元的個數(shù)分別為500和300,在測試集中比較隱含層不同激活函數(shù)(sigmoid、relu、selu和tanh)對神經(jīng)網(wǎng)絡(luò)模型的影響。圖8展示了使用不同激活函數(shù)在測試集上準確率的對比,上一行是不同激活函數(shù)在訓(xùn)練集上準確率的測試結(jié)果,下一行是上一行對應(yīng)損失函數(shù)隨迭代次數(shù)的收斂曲線。圖8(a)是激活函數(shù)sigmoid與relu準確率和損失函數(shù)值的對比,由上圖中的曲線可知,使用激活函數(shù)relu的準確率高于使用激活函數(shù)sigmoid的準確率,下圖中使用激活函數(shù)relu的多參數(shù)融合神經(jīng)網(wǎng)絡(luò)模型的損失函數(shù)隨迭代次數(shù)增加收斂的比較快。

        圖8 不同激活函數(shù)對識別準確率的影響

        圖8(b)是激活函數(shù)selu與tanh準確率和損失函數(shù)值的對比,使用激活函數(shù)tanh的準確率比較高及損失函數(shù)收斂比較快。圖8(c)是激活函數(shù)sigmoid、relu、selu和tanh準確率和損失函數(shù)值的對比。實驗結(jié)果表明,使用激活函數(shù)relu和tanh的多參數(shù)融合神經(jīng)網(wǎng)絡(luò)模型性能比較好,而使用激活函數(shù)relu的神經(jīng)網(wǎng)絡(luò)模型的性能最好,所以選擇relu作為激活函數(shù)。

        不同激活函數(shù)在測試集中準確率隨迭代次數(shù)的如表6所示。

        表6 測試集中不同激活函數(shù)

        樣本批次大小100,迭代次數(shù)30,學(xué)習(xí)率為0.2,優(yōu)化器是AdaGrad算法,兩層隱含層,隱含層神經(jīng)元的個數(shù)分別為500和300,隱含層的激活函數(shù)是relu,比較不同損失函數(shù)(平方損失函數(shù)和交叉熵)對模型的影響。圖9主要展示了使用不同損失函數(shù)在訓(xùn)練集和測試集上準確率的對比,上一行是不同損失函數(shù)準確率的測試結(jié)果,下一行是上一行對應(yīng)損失函數(shù)隨迭代次數(shù)的收斂曲線。上圖和下圖對比發(fā)現(xiàn),識別準確率高的曲線對應(yīng)的損失函數(shù)收斂的速度就快。圖9(a)上圖是在訓(xùn)練集中分別使用平方損失函數(shù)和交叉熵時神經(jīng)網(wǎng)絡(luò)模型的識別準確率曲線,由圖中兩條曲線對比可知,神經(jīng)網(wǎng)絡(luò)的損失函數(shù)為交叉熵優(yōu)于平方損失函數(shù),在訓(xùn)練使用交叉熵的神經(jīng)網(wǎng)絡(luò)模型迭代10次后訓(xùn)練集中的識別準確率達到了100%,其對應(yīng)的10(a)下圖損失值也快速收斂。圖9(b)上圖是測試集中分別使用平方損失函數(shù)和交叉熵時神經(jīng)網(wǎng)絡(luò)模型的識別準確率曲線,其中損失函數(shù)是交叉熵的神經(jīng)網(wǎng)絡(luò)模型的識別準確率高的。圖9(c)是平方損失函數(shù)和交叉熵在訓(xùn)練集和測試集上的識別準確率曲線以及對應(yīng)的損失函數(shù)的收斂曲線。實驗結(jié)果表明,在訓(xùn)練集和測試集上損失函數(shù)是交叉熵都優(yōu)于平方損失函數(shù)的多參數(shù)融合神經(jīng)網(wǎng)絡(luò)模型的性能。

        圖9 不同損失函數(shù)對識別準確率的影響

        樣本批次大小100,迭代次數(shù)30,學(xué)習(xí)率為0.2,損失函數(shù)為交叉熵,兩層隱含層,隱含層神經(jīng)元的個數(shù)分別為500和300,隱含層的激活函數(shù)是relu,比較不同優(yōu)化算法(梯度下降、Adam算法、AdaDelta算法和AdaGrad算法)對模型的影響。圖10展示了不同優(yōu)化算法的對比,上一行是梯度下降、AdaDelta算法和AdaGrad算法在訓(xùn)練集和測試集上識別準確率隨迭代次數(shù)增加的變化曲線,下一行是上一行不同優(yōu)化算法對應(yīng)交叉熵的收斂曲線。圖10(a)上圖是梯度下降、AdaDelta算法和AdaGrad算法在訓(xùn)練集的識別準確率變化曲線,其中梯度下降和AdaGrad優(yōu)化算法對應(yīng)的準確率變化曲線在迭代5次時準確率都就到達了99%以上,并且AdaGrad優(yōu)化算法稍微優(yōu)于梯度下降優(yōu)化算法,而AdaDelta優(yōu)化算法對應(yīng)的準確率變化曲線低于梯度下降和AdaGrad優(yōu)化算法對應(yīng)的準確率變化曲線。圖10(b)上圖是梯度下降、AdaDelta算法和AdaGrad算法在測試集的識別準確率變化曲線,在訓(xùn)練迭代3次后,識別準確率從高到低所對應(yīng)的優(yōu)化算法分別為AdaGrad算法、梯度下降優(yōu)化算法和AdaDelta算法,迭代30次AdaGrad優(yōu)化算法對應(yīng)的準確率為98.90%。圖10實驗結(jié)果表明,AdaGrad算法的性能最優(yōu)。

        圖10 優(yōu)化算法在訓(xùn)練集和測試集上對識別準確率的影響

        綜合以上多隱層實驗結(jié)果表明,設(shè)計多隱層多參數(shù)融合優(yōu)化具有較高準確率的神經(jīng)網(wǎng)絡(luò)模型,隱層神經(jīng)元個數(shù)、隱層的激活函數(shù)、優(yōu)化算法、學(xué)習(xí)率、損失函數(shù)等參數(shù)可參考表7所示。

        表7 多隱層神經(jīng)網(wǎng)絡(luò)模型參數(shù)

        4 結(jié)語

        深度學(xué)習(xí)是目前最火熱的研究方向之一,它借助于計算機強大的計算和存儲能力進行快速搜索而完成對樣本的特征提取,同時缺乏對網(wǎng)絡(luò)結(jié)構(gòu)及參數(shù)在理論上的完全解釋,所以結(jié)合領(lǐng)域知識的特征提取,設(shè)計多參數(shù)融合優(yōu)化的深度神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)發(fā)展的一個方向。本文討論了在無隱層神經(jīng)網(wǎng)絡(luò)模型的基礎(chǔ)上逐漸怎樣設(shè)計出一個多參數(shù)融合優(yōu)化的具有較高準確率的深度神經(jīng)網(wǎng)絡(luò)模型,特別是為初學(xué)者構(gòu)建深度神經(jīng)網(wǎng)絡(luò)模型提供了一種有效思路,也為以后在經(jīng)典深度神經(jīng)網(wǎng)絡(luò)模型的基礎(chǔ)上設(shè)計更復(fù)雜的神經(jīng)網(wǎng)絡(luò)打下基礎(chǔ)。

        猜你喜歡
        優(yōu)化模型
        一半模型
        超限高層建筑結(jié)構(gòu)設(shè)計與優(yōu)化思考
        民用建筑防煙排煙設(shè)計優(yōu)化探討
        關(guān)于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        由“形”啟“數(shù)”優(yōu)化運算——以2021年解析幾何高考題為例
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        3D打印中的模型分割與打包
        FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
        精品麻豆一区二区三区乱码| 女同亚洲女同精品| 亚洲三级在线播放| 一区二区三区在线乱码| 我和隔壁的少妇人妻hd| 国产深夜男女无套内射| 人妻无码一区二区| 一区二区在线视频大片| 一区二区在线观看视频高清| 天天噜日日噜狠狠噜免费| 婷婷四房播播| 超高清丝袜美腿视频在线 | 一区二区三区视频在线观看| 色777狠狠狠综合| 人妻丰满av∨中文久久不卡| 国产不卡一区二区三区视频| 少妇又色又爽又高潮在线看| 免费成人在线电影| 欧美一级三级在线观看| 精品久久日产国产一区| 亚洲美女av一区二区在线| 国产成人无码免费视频在线 | 日韩欧美成人免费观看| 亚洲欧美另类自拍| 91在线观看国产自拍| 亚洲一区二区三区乱码在线中国| 国产美女在线精品免费观看| 免费中文熟妇在线影片| 久久2020精品免费网站| 精品国产天堂综合一区在线| 久久中文精品无码中文字幕| 久久精品国产亚洲AV高清wy | 久久理论片午夜琪琪电影网| 日产无人区一线二线三线新版| 91久国产在线观看| 日韩中文字幕素人水野一区| 日韩成人无码| 国内成人精品亚洲日本语音| 久久精品国产自产对白一区| 天堂中文官网在线| 国产精品无码专区视频|