HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務(wù)案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    神經(jīng)網(wǎng)絡(luò)分類原理(神經(jīng)網(wǎng)絡(luò)分類原理圖)

    發(fā)布時間:2023-04-19 04:18:28     稿源: 創(chuàng)意嶺    閱讀: 59        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于神經(jīng)網(wǎng)絡(luò)分類原理的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    神經(jīng)網(wǎng)絡(luò)分類原理(神經(jīng)網(wǎng)絡(luò)分類原理圖)

    一、機器學(xué)習(xí)之人工神經(jīng)網(wǎng)絡(luò)算法

    機器學(xué)習(xí)中有一個重要的算法,那就是人工神經(jīng)網(wǎng)絡(luò)算法,聽到這個名稱相信大家能夠想到人體中的神經(jīng)。其實這種算法和人工神經(jīng)有一點點相似。當(dāng)然,這種算法能夠解決很多的問題,因此在機器學(xué)習(xí)中有著很高的地位。下面我們就給大家介紹一下關(guān)于人工神經(jīng)網(wǎng)絡(luò)算法的知識。

    1.神經(jīng)網(wǎng)絡(luò)的來源

    我們聽到神經(jīng)網(wǎng)絡(luò)的時候也時候近一段時間,其實神經(jīng)網(wǎng)絡(luò)出現(xiàn)有了一段時間了。神經(jīng)網(wǎng)絡(luò)的誕生起源于對大腦工作機理的研究。早期生物界學(xué)者們使用神經(jīng)網(wǎng)絡(luò)來模擬大腦。機器學(xué)習(xí)的學(xué)者們使用神經(jīng)網(wǎng)絡(luò)進行機器學(xué)習(xí)的實驗,發(fā)現(xiàn)在視覺與語音的識別上效果都相當(dāng)好。在BP算法誕生以后,神經(jīng)網(wǎng)絡(luò)的發(fā)展進入了一個熱潮。

    2.神經(jīng)網(wǎng)絡(luò)的原理

    那么神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)機理是什么?簡單來說,就是分解與整合。一個復(fù)雜的圖像變成了大量的細節(jié)進入神經(jīng)元,神經(jīng)元處理以后再進行整合,最后得出了看到的是正確的結(jié)論。這就是大腦視覺識別的機理,也是神經(jīng)網(wǎng)絡(luò)工作的機理。所以可以看出神經(jīng)網(wǎng)絡(luò)有很明顯的優(yōu)點。

    3.神經(jīng)網(wǎng)絡(luò)的邏輯架構(gòu)

    讓我們看一個簡單的神經(jīng)網(wǎng)絡(luò)的邏輯架構(gòu)。在這個網(wǎng)絡(luò)中,分成輸入層,隱藏層,和輸出層。輸入層負責(zé)接收信號,隱藏層負責(zé)對數(shù)據(jù)的分解與處理,最后的結(jié)果被整合到輸出層。每層中的一個圓代表一個處理單元,可以認為是模擬了一個神經(jīng)元,若干個處理單元組成了一個層,若干個層再組成了一個網(wǎng)絡(luò),也就是”神經(jīng)網(wǎng)絡(luò)”。在神經(jīng)網(wǎng)絡(luò)中,每個處理單元事實上就是一個邏輯回歸模型,邏輯回歸模型接收上層的輸入,把模型的預(yù)測結(jié)果作為輸出傳輸?shù)较乱粋€層次。通過這樣的過程,神經(jīng)網(wǎng)絡(luò)可以完成非常復(fù)雜的非線性分類。

    4.神經(jīng)網(wǎng)絡(luò)的應(yīng)用。

    圖像識別領(lǐng)域是神經(jīng)網(wǎng)絡(luò)中的一個著名應(yīng)用,這個程序是一個基于多個隱層構(gòu)建的神經(jīng)網(wǎng)絡(luò)。通過這個程序可以識別多種手寫數(shù)字,并且達到很高的識別精度與擁有較好的魯棒性??梢钥闯?,隨著層次的不斷深入,越深的層次處理的細節(jié)越低。但是進入90年代,神經(jīng)網(wǎng)絡(luò)的發(fā)展進入了一個瓶頸期。其主要原因是盡管有BP算法的加速,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程仍然很困難。因此90年代后期支持向量機算法取代了神經(jīng)網(wǎng)絡(luò)的地位。

    在這篇文章中我們大家介紹了關(guān)于神經(jīng)網(wǎng)絡(luò)的相關(guān)知識,具體的內(nèi)容就是神經(jīng)網(wǎng)絡(luò)的起源、神經(jīng)網(wǎng)絡(luò)的原理、神經(jīng)網(wǎng)絡(luò)的邏輯架構(gòu)和神經(jīng)網(wǎng)絡(luò)的應(yīng)用,相信大家看到這里對神經(jīng)網(wǎng)絡(luò)知識有了一定的了解,希望這篇文章能夠幫助到大家。

    二、神經(jīng)網(wǎng)絡(luò)淺談

    人工智能技術(shù)是當(dāng)前炙手可熱的話題,而基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)技術(shù)更是熱點中的熱點。去年谷歌的Alpha Go 以4:1大比分的優(yōu)勢戰(zhàn)勝韓國的李世石九段,展現(xiàn)了深度學(xué)習(xí)的強大威力,后續(xù)強化版的Alpha Master和無師自通的Alpha Zero更是在表現(xiàn)上完全碾壓前者。不論你怎么看,以深度學(xué)習(xí)為代表的人工智能技術(shù)正在塑造未來。

    下圖為英偉達(NVIDIA)公司近年來的股價情況, 該公司的主要產(chǎn)品是“圖形處理器”(GPU),而GPU被證明能大大加快神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度,是深度學(xué)習(xí)必不可少的計算組件。英偉達公司近年來股價的飛漲足以證明當(dāng)前深度學(xué)習(xí)的井噴之勢。

    好,話不多說,下面簡要介紹神經(jīng)網(wǎng)絡(luò)的基本原理、發(fā)展脈絡(luò)和優(yōu)勢。

    神經(jīng)網(wǎng)絡(luò)是一種人類由于受到生物神經(jīng)細胞結(jié)構(gòu)啟發(fā)而研究出的一種算法體系,是機器學(xué)習(xí)算法大類中的一種。首先讓我們來看人腦神經(jīng)元細胞:

    一個神經(jīng)元通常具有多個樹突 ,主要用來接受傳入信息,而軸突只有一條,軸突尾端有許多軸突末梢,可以給其他多個神經(jīng)元傳遞信息。軸突末梢跟其他神經(jīng)元的樹突產(chǎn)生連接,從而傳遞信號。

    下圖是一個經(jīng)典的神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN):

    乍一看跟傳統(tǒng)互聯(lián)網(wǎng)的拓撲圖有點類似,這也是稱其為網(wǎng)絡(luò)的原因,不同的是節(jié)點之間通過有向線段連接,并且節(jié)點被分成三層。我們稱圖中的圓圈為神經(jīng)元,左邊三個神經(jīng)元組成的一列為輸入層,中間神經(jīng)元列為隱藏層,右邊神經(jīng)元列為輸出層,神經(jīng)元之間的箭頭為權(quán)重。

    神經(jīng)元是計算單元,相當(dāng)于神經(jīng)元細胞的細胞核,利用輸入的數(shù)據(jù)進行計算,然后輸出,一般由一個線性計算部分和一個非線性計算部分組成;輸入層和輸出層實現(xiàn)數(shù)據(jù)的輸入輸出,相當(dāng)于細胞的樹突和軸突末梢;隱藏層指既不是輸入也不是輸出的神經(jīng)元層,一個神經(jīng)網(wǎng)絡(luò)可以有很多個隱藏層。

    神經(jīng)網(wǎng)絡(luò)的關(guān)鍵不是圓圈代表的神經(jīng)元,而是每條連接線對應(yīng)的權(quán)重。每條連接線對應(yīng)一個權(quán)重,也就是一個參數(shù)。權(quán)重具體的值需要通過神經(jīng)網(wǎng)絡(luò)的訓(xùn)練才能獲得。我們實際生活中的學(xué)習(xí)體現(xiàn)在大腦中就是一系列神經(jīng)網(wǎng)絡(luò)回路的建立與強化,多次重復(fù)的學(xué)習(xí)能讓回路變得更加粗壯,使得信號的傳遞速度加快,最后對外表現(xiàn)為“深刻”的記憶。人工神經(jīng)網(wǎng)絡(luò)的訓(xùn)練也借鑒于此,如果某種映射關(guān)系出現(xiàn)很多次,那么在訓(xùn)練過程中就相應(yīng)調(diào)高其權(quán)重。

    1943年,心理學(xué)家McCulloch和數(shù)學(xué)家Pitts參考了生物神經(jīng)元的結(jié)構(gòu),發(fā)表了抽象的神經(jīng)元模型MP:

    符號化后的模型如下:

    Sum函數(shù)計算各權(quán)重與輸入乘積的線性組合,是神經(jīng)元中的線性計算部分,而sgn是取符號函數(shù),當(dāng)輸入大于0時,輸出1,反之輸出0,是神經(jīng)元中的非線性部分。向量化后的公式為z=sgn(w^T a)(w^T=(w_1,w_2,w_3),a=〖(a_1,a_2,a_3)〗^T)。

    但是,MP模型中,權(quán)重的值都是預(yù)先設(shè)置的,因此不能學(xué)習(xí)。該模型雖然簡單,并且作用有限,但已經(jīng)建立了神經(jīng)網(wǎng)絡(luò)大廈的地基

    1958年,計算科學(xué)家Rosenblatt提出了由兩層神經(jīng)元組成(一個輸入層,一個輸出層)的神經(jīng)網(wǎng)絡(luò)。他給它起了一個名字–“感知器”(Perceptron)

    感知器是當(dāng)時首個可以學(xué)習(xí)的人工神經(jīng)網(wǎng)絡(luò)。Rosenblatt現(xiàn)場演示了其學(xué)習(xí)識別簡單圖像的過程,在當(dāng)時引起了轟動,掀起了第一波神經(jīng)網(wǎng)絡(luò)的研究熱潮。

    但感知器只能做簡單的線性分類任務(wù)。1969年,人工智能領(lǐng)域的巨擘Minsky指出這點,并同時指出感知器對XOR(異或,即兩個輸入相同時輸出0,不同時輸出1)這樣的簡單邏輯都無法解決。所以,明斯基認為神經(jīng)網(wǎng)絡(luò)是沒有價值的。

    隨后,神經(jīng)網(wǎng)絡(luò)的研究進入低谷,又稱 AI Winter 。

    Minsky說過單層神經(jīng)網(wǎng)絡(luò)無法解決異或問題,但是當(dāng)增加一個計算層以后,兩層神經(jīng)網(wǎng)絡(luò)不僅可以解決異或問題,而且具有非常好的非線性分類效果。

    下圖為兩層神經(jīng)網(wǎng)絡(luò)(輸入層一般不算在內(nèi)):

    上圖中,輸出層的輸入是上一層的輸出。

    向量化后的公式為:

    注意:

    每個神經(jīng)元節(jié)點默認都有偏置變量b,加上偏置變量后的計算公式為:

    同時,兩層神經(jīng)網(wǎng)絡(luò)不再使用sgn函數(shù)作為激勵函數(shù),而采用平滑的sigmoid函數(shù):

    σ(z)=1/(1+e^(-z) )

    其圖像如下:

    理論證明: 兩層及以上的神經(jīng)網(wǎng)絡(luò)可以無限逼近真實的對應(yīng)函數(shù),從而模擬數(shù)據(jù)之間的真實關(guān)系 ,這是神經(jīng)網(wǎng)絡(luò)強大預(yù)測能力的根本。但兩層神經(jīng)網(wǎng)絡(luò)的計算量太大,當(dāng)時的計算機的計算能力完全跟不上,直到1986年,Rumelhar和Hinton等人提出了反向傳播(Backpropagation,BP)算法,解決了兩層神經(jīng)網(wǎng)絡(luò)所需要的復(fù)雜計算量問題,帶動了業(yè)界使用兩層神經(jīng)網(wǎng)絡(luò)研究的熱潮。

    但好景不長,算法的改進僅使得神經(jīng)網(wǎng)絡(luò)風(fēng)光了幾年,然而計算能力不夠,局部最優(yōu)解,調(diào)參等一系列問題一直困擾研究人員。90年代中期,由Vapnik等人發(fā)明的SVM(Support Vector Machines,支持向量機)算法誕生,很快就在若干個方面體現(xiàn)出了對比神經(jīng)網(wǎng)絡(luò)的優(yōu)勢:無需調(diào)參;高效;全局最優(yōu)解。

    由于以上原因,SVM迅速打敗了神經(jīng)網(wǎng)絡(luò)算法成為主流。神經(jīng)網(wǎng)絡(luò)的研究再一次進入低谷, AI Winter again 。

    多層神經(jīng)網(wǎng)絡(luò)一般指兩層或兩層以上的神經(jīng)網(wǎng)絡(luò)(不包括輸入層),更多情況下指兩層以上的神經(jīng)網(wǎng)絡(luò)。

    2006年,Hinton提出使用 預(yù)訓(xùn)練 ”(pre-training)和“微調(diào)”(fine-tuning)技術(shù)能優(yōu)化神經(jīng)網(wǎng)絡(luò)訓(xùn)練,大幅度減少訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)的時間

    并且,他給多層神經(jīng)網(wǎng)絡(luò)相關(guān)的學(xué)習(xí)方法賦予了一個新名詞–“ 深度學(xué)習(xí) ”,以此為起點,“深度學(xué)習(xí)”紀(jì)元開始了:)

    “深度學(xué)習(xí)”一方面指神經(jīng)網(wǎng)絡(luò)的比較“深”,也就是層數(shù)較多;另一方面也可以指神經(jīng)網(wǎng)絡(luò)能學(xué)到很多深層次的東西。研究發(fā)現(xiàn),在權(quán)重參數(shù)不變的情況下,增加神經(jīng)網(wǎng)絡(luò)的層數(shù),能增強神經(jīng)網(wǎng)絡(luò)的表達能力。

    但深度學(xué)習(xí)究竟有多強大呢?沒人知道。2012年,Hinton與他的學(xué)生在ImageNet競賽中,用多層的卷積神經(jīng)網(wǎng)絡(luò)成功地對包含一千類別的一百萬張圖片進行了訓(xùn)練,取得了分類錯誤率15%的好成績,這個成績比第二名高了近11個百分點,充分證明了多層神經(jīng)網(wǎng)絡(luò)識別效果的優(yōu)越性。

    同時,科研人員發(fā)現(xiàn)GPU的大規(guī)模并行矩陣運算模式完美地契合神經(jīng)網(wǎng)絡(luò)訓(xùn)練的需要,在同等情況下,GPU的速度要比CPU快50-200倍,這使得神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時間大大減少,最終再一次掀起了神經(jīng)網(wǎng)絡(luò)研究的熱潮,并且一直持續(xù)到現(xiàn)在。

    2016年基于深度學(xué)習(xí)的Alpha Go在圍棋比賽中以4:1的大比分優(yōu)勢戰(zhàn)勝了李世石,深度學(xué)習(xí)的威力再一次震驚了世界。

    神經(jīng)網(wǎng)絡(luò)的發(fā)展歷史曲折蕩漾,既有被捧上神壇的高潮,也有無人問津的低谷,中間經(jīng)歷了數(shù)次大起大落,我們姑且稱之為“三起三落”吧,其背后則是算法的改進和計算能力的持續(xù)發(fā)展。

    下圖展示了神經(jīng)網(wǎng)絡(luò)自發(fā)明以來的發(fā)展情況及一些重大時間節(jié)點。

    當(dāng)然,對于神經(jīng)網(wǎng)絡(luò)我們也要保持清醒的頭腦。由上圖,每次神經(jīng)網(wǎng)絡(luò)研究的興盛期持續(xù)10年左右,從最近2012年算起,或許10年后的2022年,神經(jīng)網(wǎng)絡(luò)的發(fā)展將再次遇到瓶頸。

    神經(jīng)網(wǎng)絡(luò)作為機器學(xué)習(xí)的一種,其模型訓(xùn)練的目的,就是使得參數(shù)盡可能的與真實的模型逼近。理論證明,兩層及以上的神經(jīng)網(wǎng)絡(luò)可以無限逼近真實的映射函數(shù)。因此,給定足夠的訓(xùn)練數(shù)據(jù)和訓(xùn)練時間,總能通過神經(jīng)網(wǎng)絡(luò)找到無限逼近真實關(guān)系的模型。

    具體做法:首先給所有權(quán)重參數(shù)賦上隨機值,然后使用這些隨機生成的參數(shù)值,來預(yù)測訓(xùn)練數(shù)據(jù)中的樣本。假設(shè)樣本的預(yù)測目標(biāo)為yp ,真實目標(biāo)為y,定義值loss,計算公式如下:

    loss = (yp -y) ^2

    這個值稱之為 損失 (loss),我們的目標(biāo)就是使對所有訓(xùn)練數(shù)據(jù)的損失和盡可能的小,這就轉(zhuǎn)化為求loss函數(shù)極值的問題。

    一個常用方法是高等數(shù)學(xué)中的求導(dǎo),但由于參數(shù)不止一個,求導(dǎo)后計算導(dǎo)數(shù)等于0的運算量很大,所以常用梯度下降算法來解決這樣的優(yōu)化問題。梯度是一個向量,由函數(shù)的各自變量的偏導(dǎo)數(shù)組成。

    比如對二元函數(shù) f =(x,y),則梯度∇f=(∂f/∂x,∂f/∂y)。梯度的方向是函數(shù)值上升最快的方向。梯度下降算法每次計算參數(shù)在當(dāng)前的梯度,然后讓參數(shù)向著梯度的反方向前進一段距離,不斷重復(fù),直到梯度接近零時截止。一般這個時候,所有的參數(shù)恰好達到使損失函數(shù)達到一個最低值的狀態(tài)。下圖為梯度下降的大致運行過程:

    在神經(jīng)網(wǎng)絡(luò)模型中,由于結(jié)構(gòu)復(fù)雜,每次計算梯度的代價很大。因此還需要使用 反向傳播 (Back Propagation)算法。反向傳播算法利用了神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)進行計算,不一次計算所有參數(shù)的梯度,而是從后往前。首先計算輸出層的梯度,然后是第二個參數(shù)矩陣的梯度,接著是中間層的梯度,再然后是第一個參數(shù)矩陣的梯度,最后是輸入層的梯度。計算結(jié)束以后,所要的兩個參數(shù)矩陣的梯度就都有了。當(dāng)然,梯度下降只是其中一個優(yōu)化算法,其他的還有牛頓法、RMSprop等。

    確定loss函數(shù)的最小值后,我們就確定了整個神經(jīng)網(wǎng)絡(luò)的權(quán)重,完成神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。

    在神經(jīng)網(wǎng)絡(luò)中一樣的參數(shù)數(shù)量,可以用更深的層次去表達。

    由上圖,不算上偏置參數(shù)的話,共有三層神經(jīng)元,33個權(quán)重參數(shù)。

    由下圖,保持權(quán)重參數(shù)不變,但增加了兩層神經(jīng)元。

    在多層神經(jīng)網(wǎng)絡(luò)中,每一層的輸入是前一層的輸出,相當(dāng)于在前一層的基礎(chǔ)上學(xué)習(xí),更深層次的神經(jīng)網(wǎng)絡(luò)意味著更深入的表示特征,以及更強的函數(shù)模擬能力。更深入的表示特征可以這樣理解,隨著網(wǎng)絡(luò)的層數(shù)增加,每一層對于前一層次的抽象表示更深入。

    如上圖,第一個隱藏層學(xué)習(xí)到“邊緣”的特征,第二個隱藏層學(xué)習(xí)到“邊緣”組成的“形狀”的特征,第三個隱藏層學(xué)習(xí)到由“形狀”組成的“圖案”的特征,最后的隱藏層學(xué)習(xí)到由“圖案”組成的“目標(biāo)”的特征。通過抽取更抽象的特征來對事物進行區(qū)分,從而獲得更好的區(qū)分與分類能力。

    前面提到, 明斯基認為Rosenblatt提出的感知器模型不能處理最簡單的“異或”(XOR)非線性問題,所以神經(jīng)網(wǎng)絡(luò)的研究沒有前途,但當(dāng)增加一層神經(jīng)元后,異或問題得到了很好地解決,原因何在?原來從輸入層到隱藏層,數(shù)據(jù)發(fā)生了空間變換,坐標(biāo)系發(fā)生了改變,因為矩陣運算本質(zhì)上就是一種空間變換。

    如下圖,紅色和藍色的分界線是最終的分類結(jié)果,可以看到,該分界線是一條非常平滑的曲線。

    但是,改變坐標(biāo)系后,分界線卻表現(xiàn)為直線,如下圖:

    同時,非線性激勵函數(shù)的引入使得神經(jīng)網(wǎng)絡(luò)對非線性問題的表達能力大大加強。

    對于傳統(tǒng)的樸素貝葉斯、決策樹、支持向量機SVM等分類器,提取特征是一個非常重要的前置工作。在正式訓(xùn)練之前,需要花費大量的時間在數(shù)據(jù)的清洗上,這樣分類器才能清楚地知道數(shù)據(jù)的維度,要不然基于概率和空間距離的線性分類器是沒辦法進行工作的。然而在神經(jīng)網(wǎng)絡(luò)中,由于巨量的線性分類器的堆疊(并行和串行)以及卷積神經(jīng)網(wǎng)絡(luò)的使用,它對噪聲的忍耐能力、對多通道數(shù)據(jù)上投射出來的不同特征偏向的敏感程度會自動重視或忽略,這樣我們在處理的時候,就不需要使用太多的技巧用于數(shù)據(jù)的清洗了。有趣的是,業(yè)內(nèi)大佬常感嘆,“你可能知道SVM等機器學(xué)習(xí)的所有細節(jié),但是效果并不好,而神經(jīng)網(wǎng)絡(luò)更像是一個黑盒,很難知道它究竟在做什么,但工作效果卻很好”。

    人類對機器學(xué)習(xí)的環(huán)節(jié)干預(yù)越少,就意味著距離人工智能的方向越近。神經(jīng)網(wǎng)絡(luò)的這個特性非常有吸引力。

    1) 谷歌的TensorFlow開發(fā)了一個非常有意思的神經(jīng)網(wǎng)絡(luò) 入門教程 ,用戶可以非常方便地在網(wǎng)頁上更改神經(jīng)網(wǎng)絡(luò)的參數(shù),并且能看到實時的學(xué)習(xí)效率和結(jié)果,非常適合初學(xué)者掌握神經(jīng)網(wǎng)絡(luò)的基本概念及神經(jīng)網(wǎng)絡(luò)的原理。網(wǎng)頁截圖如下:

    2) 深度學(xué)習(xí)領(lǐng)域大佬吳恩達不久前發(fā)布的《 神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí) 》MOOC,現(xiàn)在可以在網(wǎng)易云課堂上免費觀看了,并且還有中文字幕。

    3) 《神經(jīng)網(wǎng)絡(luò)于深度學(xué)習(xí)》(Michael Nielsen著)、《白話深度學(xué)習(xí)與TensorFlow》也是不錯的入門書籍。

    三、BP神經(jīng)網(wǎng)絡(luò)原理

    人工神經(jīng)網(wǎng)絡(luò)有很多模型,但是日前應(yīng)用最廣、基本思想最直觀、最容易被理解的是多層前饋神經(jīng)網(wǎng)絡(luò)及誤差逆?zhèn)鞑W(xué)習(xí)算法(Error Back-Prooaeation),簡稱為BP網(wǎng)絡(luò)。

    在1986年以Rumelhart和McCelland為首的科學(xué)家出版的《Parallel Distributed Processing》一書中,完整地提出了誤差逆?zhèn)鞑W(xué)習(xí)算法,并被廣泛接受。多層感知網(wǎng)絡(luò)是一種具有三層或三層以上的階層型神經(jīng)網(wǎng)絡(luò)。典型的多層感知網(wǎng)絡(luò)是三層、前饋的階層網(wǎng)絡(luò)(圖4.1),即:輸入層、隱含層(也稱中間層)、輸出層,具體如下:

    圖4.1 三層BP網(wǎng)絡(luò)結(jié)構(gòu)

    (1)輸入層

    輸入層是網(wǎng)絡(luò)與外部交互的接口。一般輸入層只是輸入矢量的存儲層,它并不對輸入矢量作任何加工和處理。輸入層的神經(jīng)元數(shù)目可以根據(jù)需要求解的問題和數(shù)據(jù)表示的方式來確定。一般而言,如果輸入矢量為圖像,則輸入層的神經(jīng)元數(shù)目可以為圖像的像素數(shù),也可以是經(jīng)過處理后的圖像特征數(shù)。

    (2)隱含層

    1989年,Robert Hecht Nielsno證明了對于任何在閉區(qū)間內(nèi)的一個連續(xù)函數(shù)都可以用一個隱層的BP網(wǎng)絡(luò)來逼近,因而一個三層的BP網(wǎng)絡(luò)可以完成任意的n維到m維的映射。增加隱含層數(shù)雖然可以更進一步的降低誤差、提高精度,但是也使網(wǎng)絡(luò)復(fù)雜化,從而增加了網(wǎng)絡(luò)權(quán)值的訓(xùn)練時間。誤差精度的提高也可以通過增加隱含層中的神經(jīng)元數(shù)目來實現(xiàn),其訓(xùn)練效果也比增加隱含層數(shù)更容易觀察和調(diào)整,所以一般情況應(yīng)優(yōu)先考慮增加隱含層的神經(jīng)元個數(shù),再根據(jù)具體情況選擇合適的隱含層數(shù)。

    (3)輸出層

    輸出層輸出網(wǎng)絡(luò)訓(xùn)練的結(jié)果矢量,輸出矢量的維數(shù)應(yīng)根據(jù)具體的應(yīng)用要求來設(shè)計,在設(shè)計時,應(yīng)盡可能減少系統(tǒng)的規(guī)模,使系統(tǒng)的復(fù)雜性減少。如果網(wǎng)絡(luò)用作識別器,則識別的類別神經(jīng)元接近1,而其它神經(jīng)元輸出接近0。

    以上三層網(wǎng)絡(luò)的相鄰層之間的各神經(jīng)元實現(xiàn)全連接,即下一層的每一個神經(jīng)元與上一層的每個神經(jīng)元都實現(xiàn)全連接,而且每層各神經(jīng)元之間無連接,連接強度構(gòu)成網(wǎng)絡(luò)的權(quán)值矩陣W。

    BP網(wǎng)絡(luò)是以一種有教師示教的方式進行學(xué)習(xí)的。首先由教師對每一種輸入模式設(shè)定一個期望輸出值。然后對網(wǎng)絡(luò)輸入實際的學(xué)習(xí)記憶模式,并由輸入層經(jīng)中間層向輸出層傳播(稱為“模式順傳播”)。實際輸出與期望輸出的差即是誤差。按照誤差平方最小這一規(guī)則,由輸出層往中間層逐層修正連接權(quán)值,此過程稱為“誤差逆?zhèn)鞑ァ保愓?005)。所以誤差逆?zhèn)鞑ド窠?jīng)網(wǎng)絡(luò)也簡稱BP(Back Propagation)網(wǎng)。隨著“模式順傳播”和“誤差逆?zhèn)鞑ァ边^程的交替反復(fù)進行。網(wǎng)絡(luò)的實際輸出逐漸向各自所對應(yīng)的期望輸出逼近,網(wǎng)絡(luò)對輸入模式的響應(yīng)的正確率也不斷上升。通過此學(xué)習(xí)過程,確定下各層間的連接權(quán)值后。典型三層BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)及程序運行過程如下(標(biāo)志淵,2006):

    (1)首先,對各符號的形式及意義進行說明:

    網(wǎng)絡(luò)輸入向量Pk=(a1,a2,...,an);

    網(wǎng)絡(luò)目標(biāo)向量Tk=(y1,y2,...,yn);

    中間層單元輸入向量Sk=(s1,s2,...,sp),輸出向量Bk=(b1,b2,...,bp);

    輸出層單元輸入向量Lk=(l1,l2,...,lq),輸出向量Ck=(c1,c2,...,cq);

    輸入層至中間層的連接權(quán)wij,i=1,2,...,n,j=1,2,...p;

    中間層至輸出層的連接權(quán)vjt,j=1,2,...,p,t=1,2,...,p;

    中間層各單元的輸出閾值θj,j=1,2,...,p;

    輸出層各單元的輸出閾值γj,j=1,2,...,p;

    參數(shù)k=1,2,...,m。

    (2)初始化。給每個連接權(quán)值wij、vjt、閾值θj與γj賦予區(qū)間(-1,1)內(nèi)的隨機值。

    (3)隨機選取一組輸入和目標(biāo)樣本

    提供給網(wǎng)絡(luò)。

    (4)用輸入樣本

    、連接權(quán)wij和閾值θj計算中間層各單元的輸入sj,然后用sj通過傳遞函數(shù)計算中間層各單元的輸出bj

    基坑降水工程的環(huán)境效應(yīng)與評價方法

    bj=f(sj) j=1,2,...,p (4.5)

    (5)利用中間層的輸出bj、連接權(quán)vjt和閾值γt計算輸出層各單元的輸出Lt,然后通過傳遞函數(shù)計算輸出層各單元的響應(yīng)Ct。

    基坑降水工程的環(huán)境效應(yīng)與評價方法

    Ct=f(Lt) t=1,2,...,q (4.7)

    (6)利用網(wǎng)絡(luò)目標(biāo)向量

    ,網(wǎng)絡(luò)的實際輸出Ct,計算輸出層的各單元一般化誤差

    。

    基坑降水工程的環(huán)境效應(yīng)與評價方法

    (7)利用連接權(quán)vjt、輸出層的一般化誤差dt和中間層的輸出bj計算中間層各單元的一般化誤差

    。

    基坑降水工程的環(huán)境效應(yīng)與評價方法

    (8)利用輸出層各單元的一般化誤差

    與中間層各單元的輸出bj來修正連接權(quán)vjt和閾值γt。

    基坑降水工程的環(huán)境效應(yīng)與評價方法

    (9)利用中間層各單元的一般化誤差

    ,輸入層各單元的輸入Pk=(a1,a2,...,an)來修正連接權(quán)wij和閾值θj。

    基坑降水工程的環(huán)境效應(yīng)與評價方法

    (10)隨機選取下一個學(xué)習(xí)樣本向量提供給網(wǎng)絡(luò),返回到步驟(3),直到m個訓(xùn)練樣本訓(xùn)練完畢。

    (11)重新從m個學(xué)習(xí)樣本中隨機選取一組輸入和目標(biāo)樣本,返回步驟(3),直到網(wǎng)路全局誤差E小于預(yù)先設(shè)定的一個極小值,即網(wǎng)絡(luò)收斂。如果學(xué)習(xí)次數(shù)大于預(yù)先設(shè)定的值,網(wǎng)絡(luò)就無法收斂。

    (12)學(xué)習(xí)結(jié)束。

    可以看出,在以上學(xué)習(xí)步驟中,(8)、(9)步為網(wǎng)絡(luò)誤差的“逆?zhèn)鞑ミ^程”,(10)、(11)步則用于完成訓(xùn)練和收斂過程。

    通常,經(jīng)過訓(xùn)練的網(wǎng)絡(luò)還應(yīng)該進行性能測試。測試的方法就是選擇測試樣本向量,將其提供給網(wǎng)絡(luò),檢驗網(wǎng)絡(luò)對其分類的正確性。測試樣本向量中應(yīng)該包含今后網(wǎng)絡(luò)應(yīng)用過程中可能遇到的主要典型模式(宋大奇,2006)。這些樣本可以直接測取得到,也可以通過仿真得到,在樣本數(shù)據(jù)較少或者較難得到時,也可以通過對學(xué)習(xí)樣本加上適當(dāng)?shù)脑肼暬虬凑找欢ㄒ?guī)則插值得到。為了更好地驗證網(wǎng)絡(luò)的泛化能力,一個良好的測試樣本集中不應(yīng)該包含和學(xué)習(xí)樣本完全相同的模式(董軍,2007)。

    四、遺傳神經(jīng)網(wǎng)絡(luò)識別原理

    4.3.1 遺傳BP簡介

    遺傳識別是遺傳算法+神經(jīng)網(wǎng)絡(luò)的一種新興的尋優(yōu)技術(shù),適合于復(fù)雜的、疊加的非線性系統(tǒng)的辨識描述。神經(jīng)網(wǎng)絡(luò)算法是當(dāng)前較為成熟的識別分類方法,但網(wǎng)絡(luò)權(quán)值的訓(xùn)練一直存在著缺陷。為此結(jié)合具體應(yīng)用,在對遺傳算法進行改進的基礎(chǔ)上,本文采用了一種基于遺傳學(xué)習(xí)權(quán)值的神經(jīng)網(wǎng)絡(luò)識別方法,并取得了較好的效果。

    盡管常規(guī)遺傳算法是穩(wěn)健的,但針對一個具體問題遺傳算法只有和其他方法(或稱原有算法)有效地結(jié)合在一起,組成一個新的混合算法,才能在實際中得到廣泛應(yīng)用?;旌纤惴纫3衷兴惴ǖ拈L處,又要保持遺傳算法的優(yōu)點,因此常規(guī)遺傳算法中的適應(yīng)值函數(shù)、編碼、遺傳算子等必須做適當(dāng)?shù)男薷囊赃m應(yīng)混合算法的要求。

    4.3.1.1 適應(yīng)值信息

    常規(guī)算法中,適應(yīng)值常被表示為全局極小,用歐氏距離來實現(xiàn)。例如,適應(yīng)值常被表示為如下形式:

    神經(jīng)網(wǎng)絡(luò)分類原理(神經(jīng)網(wǎng)絡(luò)分類原理圖)

    儲層特征研究與預(yù)測

    式中:)Yi為第i 個樣本的實際輸出,Yi為第i 個樣本的期望輸出,N 為學(xué)習(xí)樣本數(shù)。這種表示法的單點擬合能力較強,能夠滿足精度要求,但大多數(shù)情況下,還要考慮樣本整體的一些性質(zhì),如方差、連續(xù)性等。適應(yīng)值作為GA中的惟一使用信息,除了體現(xiàn)樣本的差異性,還 應(yīng)當(dāng)兼顧樣本間的相關(guān)性。這樣就在一定程度上克服了劇烈振蕩、網(wǎng)絡(luò)容錯能力差等弱點。因此,我們將灰色系統(tǒng)的灰關(guān)聯(lián)引入進來,在保證樣本的遺傳操作的同時,加強樣本間橫向上的聯(lián)系,從而更有效地選擇權(quán)值。

    設(shè) X0={X0(K),K=1,2,…,n}為母序列,Xi={Xi(K),K=1,2,…,n i=1,2,…,m}為子序列。

    則關(guān)聯(lián)系數(shù)為:

    神經(jīng)網(wǎng)絡(luò)分類原理(神經(jīng)網(wǎng)絡(luò)分類原理圖)

    儲層特征研究與預(yù)測

    關(guān)聯(lián)度為:

    神經(jīng)網(wǎng)絡(luò)分類原理(神經(jīng)網(wǎng)絡(luò)分類原理圖)

    儲層特征研究與預(yù)測

    4.3.1.2 編碼問題

    二進制位串編碼是GA中常見的編碼技術(shù)。但在實際編程中,采用浮點數(shù)直接表示更有利。主要有以下原因:

    (1)避免了因網(wǎng)絡(luò)權(quán)值范圍不明確,難以進行編碼的困難;

    (2)取消了編碼、譯碼過程,提高了學(xué)習(xí)算法的速度;

    (3)十進制數(shù)字串的引入,在數(shù)字串長度不變的情況下,計算精度可以大為提高。例如,用七位二進制數(shù)字串來表示(-10,10)之間的數(shù)值,則精度最高為:

    神經(jīng)網(wǎng)絡(luò)分類原理(神經(jīng)網(wǎng)絡(luò)分類原理圖)

    儲層特征研究與預(yù)測

    用同樣長度的十進制數(shù)字串來表示(-10,10)之間的數(shù)值,去掉符號位和小數(shù)點所占用的一位,余下的四位表示小數(shù)值,則精度最高可以達到0.0001。

    4.3.1.3 修改雜交算子

    由于編碼方式的改變,雜交算子可以設(shè)計為具有數(shù)值特點的向量的線性組合。通常表示為如下形式:

    若有兩個個體Sa、Sb雜交,則產(chǎn)生的個體為

    神經(jīng)網(wǎng)絡(luò)分類原理(神經(jīng)網(wǎng)絡(luò)分類原理圖)

    儲層特征研究與預(yù)測

    其中u的取值在(0,1),也可根據(jù)情況適當(dāng)縮小取值范圍。當(dāng)u取常數(shù)時,雜交算子即為一致雜交,當(dāng)u隨代數(shù)變化時,雜交算子則為非一致雜交。

    在遺傳算法中,隨著迭代次數(shù)的增加,個體的平均性能逐步提高,個體間的差異縮小。為了防止個體趨向一致,影響算法的收斂性能,本文對u作了如下改變,令

    神經(jīng)網(wǎng)絡(luò)分類原理(神經(jīng)網(wǎng)絡(luò)分類原理圖)

    儲層特征研究與預(yù)測

    其中t為當(dāng)前代數(shù),T為預(yù)置最大代數(shù),隨著代數(shù)的增加,u從1到0變化,完成雜交的漸變過程。

    4.3.1.4 修改變異算子

    設(shè)個體x=(v1,v2,…,vn),則每個分量以一定概率進行變異,一次變異后的結(jié)果為(v1,…,神經(jīng)網(wǎng)絡(luò)分類原理(神經(jīng)網(wǎng)絡(luò)分類原理圖),…,vn),1<=K<=n,的值按下面的隨機方式?jīng)Q定:

    神經(jīng)網(wǎng)絡(luò)分類原理(神經(jīng)網(wǎng)絡(luò)分類原理圖)

    儲層特征研究與預(yù)測

    式中:LB,UB為第K個變量的左、右鄰居,函數(shù)Δ(t,y)返回(0,y)上的一個值,并使這個值隨著代數(shù)t的增大而接近于0,這樣選取的函數(shù)允許這個算子在算法的開始階段一致搜索整個空間,而在算法的后階段進行局部搜索。

    神經(jīng)網(wǎng)絡(luò)分類原理(神經(jīng)網(wǎng)絡(luò)分類原理圖)

    儲層特征研究與預(yù)測

    式中:r為[0,1]上的隨機數(shù),T為預(yù)置的最大代數(shù),t為當(dāng)前代數(shù),b是決定非一致程度的參數(shù),這里取為0.5。

    4.3.1.5 成熟前收斂問題

    成熟前收斂是指GA不能再產(chǎn)生性能超過父代的后代,盡管尚未達到全局最優(yōu)解,主要表現(xiàn)形式是連續(xù)數(shù)代或數(shù)十代適應(yīng)值不發(fā)生變化。它與其他方法中的局部極值問題很相似,但又不同,因為它并不一定出現(xiàn)在局部極小點。目前解決這一問題的方法主要有:重新啟動法、動態(tài)參數(shù)編碼法、混合法等。為了便于程序表現(xiàn),我們引進了一個動態(tài)記憶窗口W,W用來記錄從當(dāng)前代開始最優(yōu)目標(biāo)值保持連續(xù)不變的代數(shù)。當(dāng)W達到某個給定的值時,就認為出現(xiàn)了成熟前收斂,這時就令雜交算子和變異算子突然增大,實現(xiàn)基因的重組。當(dāng)然用這種方法來判別收斂問題是不嚴格的,對一個算法收斂性能的評價主要應(yīng)體現(xiàn)在時間復(fù)雜性和空間復(fù)雜性上。對于像GA這樣帶有隨機搜索性質(zhì)的具體方法,理論上說,只有當(dāng)隨機數(shù)字完全取盡,目標(biāo)值仍未改變才可認為是成熟前收斂。但在實際中是不可能這樣做的。因此可根據(jù)隨機數(shù)的總個數(shù),每次計算出最多取多少個隨機參數(shù),來大致估算所需的次數(shù),這個次數(shù)就可認為是動態(tài)記憶機制W。

    4.3.2 遺傳BP網(wǎng)絡(luò)結(jié)構(gòu)

    遺傳算法一般可以通過兩種方式應(yīng)用到神經(jīng)網(wǎng)絡(luò)中。一種方式是利用遺傳算法訓(xùn)練已知結(jié)構(gòu)的網(wǎng)絡(luò),優(yōu)化網(wǎng)絡(luò)的連接權(quán);另一種方式是利用遺傳算法尋找網(wǎng)絡(luò)的規(guī)模、結(jié)構(gòu)和學(xué)習(xí)參數(shù)。目前這種方法在理論上還不完全成熟,尋優(yōu)機理、學(xué)習(xí)效率等有待進一步研究,離實際應(yīng)用還有一定的距離。

    對多層前饋神經(jīng)網(wǎng)絡(luò),目前用得最多的學(xué)習(xí)算法是BP算法。然而由于BP本身固有的學(xué)習(xí)機理的限制,從根本上改進BP算法是很困難的。BP的學(xué)習(xí)過程實際上是連接權(quán)的重組優(yōu)化過程,因此在保持網(wǎng)絡(luò)結(jié)構(gòu)的前提下,尋找一種能使連接權(quán)達到最優(yōu)組合的學(xué)習(xí)方法,具有一定的實際意義。

    利用GA的優(yōu)點來克服BP算法收斂慢和易局部收斂的缺陷,同時與BP算法的結(jié)合,也解決了單獨利用GA往往只能在短時間內(nèi)尋找到接近最優(yōu)解的近優(yōu)解這一問題,引入BP算法的梯度信息將會避免這種現(xiàn)象。GA與BP算法可以有多種不同的組合方法:

    先BP后GA:先用BP培訓(xùn)一個預(yù)先選定結(jié)構(gòu)的ANN(人工神經(jīng)網(wǎng)絡(luò))直到平均誤差不再有意義地減少時為止,然后在此基礎(chǔ)上再用GA進行若干代的優(yōu)化。重復(fù)進行這樣的搜索,直到誤差范圍達到滿意的要求或者發(fā)現(xiàn)搜索不收斂為止。這種組合方法的基本思想是先用BP確定使誤差函數(shù)取極小值的參數(shù)組合在參數(shù)空間的位置,再利用GA擺脫掉可能的局部極小。應(yīng)用這種組合必須事先選定ANN的結(jié)構(gòu)。即只能用它確定ANN的連接權(quán)重。顯然,如果事先選擇的ANN結(jié)構(gòu)不合理或有關(guān)的參數(shù)(如學(xué)習(xí)率等)不合適,可能會導(dǎo)致搜索不收斂。

    先GA后BP:先用GA反復(fù)優(yōu)化描述ANN模型的參數(shù)組合,直到適應(yīng)函數(shù)的平均不再有意義地增加為止。在此基礎(chǔ)上再用 BP算法對它們進行優(yōu)化。這種組合方法的基本思想是先用GA粗選ANN模型,再用 BP算法精細與優(yōu)化。這種組合方法的優(yōu)點是通用性好,既可像前一組合方法那樣用來優(yōu)選指定結(jié)構(gòu)下的部分參數(shù),也可用來優(yōu)選其他的參數(shù),例如 ANN 的結(jié)構(gòu)、學(xué)習(xí)率等,甚至還可用于優(yōu)選它們的組合。

    圖4-4 GABP結(jié)構(gòu)圖

    上面兩種組合GA與 BP的方法是比較基本的兩種,以它們?yōu)榛A(chǔ)可以衍生出多種具體的實現(xiàn)方案。但由于 BP 算法本身也有許多參數(shù)需要選定,而且選擇方法也無規(guī)則可循,因而組合 GA 與BP在一定程度上也使待解決的問題更加復(fù)雜化。為此,這里提出了一種改進的GABP方法,即利用 BP網(wǎng)絡(luò)的非線性分類能力和網(wǎng)絡(luò)結(jié)構(gòu)來設(shè)計分類器,將遺傳學(xué)習(xí)的結(jié)果直接送入網(wǎng)絡(luò),不再經(jīng)過BP優(yōu)化,通過網(wǎng)絡(luò)結(jié)構(gòu)輸出結(jié)果。這種改進既體現(xiàn)了系統(tǒng)的非線性,與前面的處理方法相銜接,又通過GA的學(xué)習(xí)優(yōu)化了權(quán)值,提高了運算速度。該網(wǎng)絡(luò)為一個三層 BP 網(wǎng)絡(luò),結(jié)構(gòu)如圖4-4所示。

    4.3.3 遺傳BP計算過程

    遺傳BP算法的具體步驟:

    (1)隨機產(chǎn)生N組(-1,1)區(qū)間內(nèi)取值的初始網(wǎng)絡(luò)權(quán)值。

    (2)用BP算法對這N組始值分別進行訓(xùn)練,若這N組權(quán)值中至少已有一組滿足精度要求,則算法結(jié)束;否則轉(zhuǎn)入步驟(3)。

    (3)分別依據(jù)經(jīng)過訓(xùn)練的這N組較好的權(quán)值所對應(yīng)的上下限確定取值區(qū)間,在區(qū)間內(nèi)再隨機生產(chǎn)成N組新的權(quán)限,連同經(jīng)過訓(xùn)練的N組權(quán)值在一起,構(gòu)成一個完整的基因群體,共2*N組權(quán)值。

    (4)從這2*N組權(quán)值進行選擇、交叉、變異等遺傳操作。

    (5)從經(jīng)過遺傳操作的這2*N組權(quán)值中選出N組較好的,回復(fù)到步驟(2)。

    神經(jīng)網(wǎng)絡(luò)分類原理(神經(jīng)網(wǎng)絡(luò)分類原理圖)

    圖4-5 改進的 GABP計算流程圖

    GABP的計算過程圖如圖4-5所示。

    以上就是關(guān)于神經(jīng)網(wǎng)絡(luò)分類原理相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    神經(jīng)網(wǎng)絡(luò)分類原理(神經(jīng)網(wǎng)絡(luò)分類原理圖)

    神經(jīng)網(wǎng)絡(luò)系統(tǒng)設(shè)計(神經(jīng)網(wǎng)絡(luò)系統(tǒng)設(shè)計論文)

    神經(jīng)排行榜(神經(jīng)著名神經(jīng)哥)

    杭州高樓排名前十名(杭州高樓排名前十名有哪些)

    城東現(xiàn)代庭院景觀設(shè)計施工(城東現(xiàn)代庭院景觀設(shè)計施工方案)