-
當前位置:首頁 > 創(chuàng)意學院 > 技術 > 專題列表 > 正文
神經網絡分類器原理(神經網絡分類器原理圖解)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于神經網絡分類器原理的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關鍵詞,就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網頁版、PC客戶端
創(chuàng)意嶺作為行業(yè)內優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、一文看懂四種基本的神經網絡架構
原文鏈接:
http://blackblog.tech/2018/02/23/Eight-Neural-Network/
更多干貨就在我的個人博客 http://blackblog.tech 歡迎關注
剛剛入門神經網絡,往往會對眾多的神經網絡架構感到困惑,神經網絡看起來復雜多樣,但是這么多架構無非也就是三類,前饋神經網絡,循環(huán)網絡,對稱連接網絡,本文將介紹四種常見的神經網絡,分別是CNN,RNN,DBN,GAN。通過這四種基本的神經網絡架構,我們來對神經網絡進行一定的了解。
神經網絡是機器學習中的一種模型,是一種模仿動物神經網絡行為特征,進行分布式并行信息處理的算法數學模型。這種網絡依靠系統(tǒng)的復雜程度,通過調整內部大量節(jié)點之間相互連接的關系,從而達到處理信息的目的。
一般來說,神經網絡的架構可以分為三類:
前饋神經網絡:
這是實際應用中最常見的神經網絡類型。第一層是輸入,最后一層是輸出。如果有多個隱藏層,我們稱之為“深度”神經網絡。他們計算出一系列改變樣本相似性的變換。各層神經元的活動是前一層活動的非線性函數。
循環(huán)網絡:
循環(huán)網絡在他們的連接圖中定向了循環(huán),這意味著你可以按照箭頭回到你開始的地方。他們可以有復雜的動態(tài),使其很難訓練。他們更具有生物真實性。
循環(huán)網絡的目的使用來處理序列數據。在傳統(tǒng)的神經網絡模型中,是從輸入層到隱含層再到輸出層,層與層之間是全連接的,每層之間的節(jié)點是無連接的。但是這種普通的神經網絡對于很多問題卻無能無力。例如,你要預測句子的下一個單詞是什么,一般需要用到前面的單詞,因為一個句子中前后單詞并不是獨立的。
循環(huán)神經網路,即一個序列當前的輸出與前面的輸出也有關。具體的表現形式為網絡會對前面的信息進行記憶并應用于當前輸出的計算中,即隱藏層之間的節(jié)點不再無連接而是有連接的,并且隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出。
對稱連接網絡:
對稱連接網絡有點像循環(huán)網絡,但是單元之間的連接是對稱的(它們在兩個方向上權重相同)。比起循環(huán)網絡,對稱連接網絡更容易分析。這個網絡中有更多的限制,因為它們遵守能量函數定律。沒有隱藏單元的對稱連接網絡被稱為“Hopfield 網絡”。有隱藏單元的對稱連接的網絡被稱為玻爾茲曼機。
其實之前的帖子講過一些關于感知機的內容,這里再復述一下。
首先還是這張圖
這是一個M-P神經元
一個神經元有n個輸入,每一個輸入對應一個權值w,神經元內會對輸入與權重做乘法后求和,求和的結果與偏置做差,最終將結果放入激活函數中,由激活函數給出最后的輸出,輸出往往是二進制的,0 狀態(tài)代表抑制,1 狀態(tài)代表激活。
可以把感知機看作是 n 維實例空間中的超平面決策面,對于超平面一側的樣本,感知器輸出 1,對于另一側的實例輸出 0,這個決策超平面方程是 w⋅x=0。 那些可以被某一個超平面分割的正反樣例集合稱為線性可分(linearly separable)樣例集合,它們就可以使用圖中的感知機表示。
與、或、非問題都是線性可分的問題,使用一個有兩輸入的感知機能容易地表示,而異或并不是一個線性可分的問題,所以使用單層感知機是不行的,這時候就要使用多層感知機來解決疑惑問題了。
如果我們要訓練一個感知機,應該怎么辦呢?
我們會從隨機的權值開始,反復地應用這個感知機到每個訓練樣例,只要它誤分類樣例就修改感知機的權值。重復這個過程,直到感知機正確分類所有的樣例。每一步根據感知機訓練法則來修改權值,也就是修改與輸入 xi 對應的權 wi,法則如下:
這里 t 是當前訓練樣例的目標輸出,o 是感知機的輸出,η 是一個正的常數稱為學習速率。學習速率的作用是緩和每一步調整權的程度,它通常被設為一個小的數值(例如 0.1),而且有時會使其隨著權調整次數的增加而衰減。
多層感知機,或者說是多層神經網絡無非就是在輸入層與輸出層之間加了多個隱藏層而已,后續(xù)的CNN,DBN等神經網絡只不過是將重新設計了每一層的類型。感知機可以說是神經網絡的基礎,后續(xù)更為復雜的神經網絡都離不開最簡單的感知機的模型,
談到機器學習,我們往往還會跟上一個詞語,叫做模式識別,但是真實環(huán)境中的模式識別往往會出現各種問題。比如:
圖像分割:真實場景中總是摻雜著其它物體。很難判斷哪些部分屬于同一個對象。對象的某些部分可以隱藏在其他對象的后面。
物體光照:像素的強度被光照強烈影響。
圖像變形:物體可以以各種非仿射方式變形。例如,手寫也可以有一個大的圓圈或只是一個尖頭。
情景支持:物體所屬類別通常由它們的使用方式來定義。例如,椅子是為了讓人們坐在上面而設計的,因此它們具有各種各樣的物理形狀。
卷積神經網絡與普通神經網絡的區(qū)別在于,卷積神經網絡包含了一個由卷積層和子采樣層構成的特征抽取器。在卷積神經網絡的卷積層中,一個神經元只與部分鄰層神經元連接。在CNN的一個卷積層中,通常包含若干個特征平面(featureMap),每個特征平面由一些矩形排列的的神經元組成,同一特征平面的神經元共享權值,這里共享的權值就是卷積核。卷積核一般以隨機小數矩陣的形式初始化,在網絡的訓練過程中卷積核將學習得到合理的權值。共享權值(卷積核)帶來的直接好處是減少網絡各層之間的連接,同時又降低了過擬合的風險。子采樣也叫做池化(pooling),通常有均值子采樣(mean pooling)和最大值子采樣(max pooling)兩種形式。子采樣可以看作一種特殊的卷積過程。卷積和子采樣大大簡化了模型復雜度,減少了模型的參數。
卷積神經網絡由三部分構成。第一部分是輸入層。第二部分由n個卷積層和池化層的組合組成。第三部分由一個全連結的多層感知機分類器構成。
這里舉AlexNet為例:
·輸入:224×224大小的圖片,3通道
·第一層卷積:11×11大小的卷積核96個,每個GPU上48個。
·第一層max-pooling:2×2的核。
·第二層卷積:5×5卷積核256個,每個GPU上128個。
·第二層max-pooling:2×2的核。
·第三層卷積:與上一層是全連接,3*3的卷積核384個。分到兩個GPU上個192個。
·第四層卷積:3×3的卷積核384個,兩個GPU各192個。該層與上一層連接沒有經過pooling層。
·第五層卷積:3×3的卷積核256個,兩個GPU上個128個。
·第五層max-pooling:2×2的核。
·第一層全連接:4096維,將第五層max-pooling的輸出連接成為一個一維向量,作為該層的輸入。
·第二層全連接:4096維
·Softmax層:輸出為1000,輸出的每一維都是圖片屬于該類別的概率。
卷積神經網絡在模式識別領域有著重要應用,當然這里只是對卷積神經網絡做了最簡單的講解,卷積神經網絡中仍然有很多知識,比如局部感受野,權值共享,多卷積核等內容,后續(xù)有機會再進行講解。
傳統(tǒng)的神經網絡對于很多問題難以處理,比如你要預測句子的下一個單詞是什么,一般需要用到前面的單詞,因為一個句子中前后單詞并不是獨立的。RNN之所以稱為循環(huán)神經網路,即一個序列當前的輸出與前面的輸出也有關。具體的表現形式為網絡會對前面的信息進行記憶并應用于當前輸出的計算中,即隱藏層之間的節(jié)點不再無連接而是有連接的,并且隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出。理論上,RNN能夠對任何長度的序列數據進行處理。
這是一個簡單的RNN的結構,可以看到隱藏層自己是可以跟自己進行連接的。
那么RNN為什么隱藏層能夠看到上一刻的隱藏層的輸出呢,其實我們把這個網絡展開來開就很清晰了。
從上面的公式我們可以看出,循環(huán)層和全連接層的區(qū)別就是循環(huán)層多了一個權重矩陣 W。
如果反復把式2帶入到式1,我們將得到:
在講DBN之前,我們需要對DBN的基本組成單位有一定的了解,那就是RBM,受限玻爾茲曼機。
首先什么是玻爾茲曼機?
[圖片上傳失敗...(image-d36b31-1519636788074)]
如圖所示為一個玻爾茲曼機,其藍色節(jié)點為隱層,白色節(jié)點為輸入層。
玻爾茲曼機和遞歸神經網絡相比,區(qū)別體現在以下幾點:
1、遞歸神經網絡本質是學習一個函數,因此有輸入和輸出層的概念,而玻爾茲曼機的用處在于學習一組數據的“內在表示”,因此其沒有輸出層的概念。
2、遞歸神經網絡各節(jié)點鏈接為有向環(huán),而玻爾茲曼機各節(jié)點連接成無向完全圖。
而受限玻爾茲曼機是什么呢?
最簡單的來說就是加入了限制,這個限制就是將完全圖變成了二分圖。即由一個顯層和一個隱層構成,顯層與隱層的神經元之間為雙向全連接。
h表示隱藏層,v表示顯層
在RBM中,任意兩個相連的神經元之間有一個權值w表示其連接強度,每個神經元自身有一個偏置系數b(對顯層神經元)和c(對隱層神經元)來表示其自身權重。
具體的公式推導在這里就不展示了
DBN是一個概率生成模型,與傳統(tǒng)的判別模型的神經網絡相對,生成模型是建立一個觀察數據和標簽之間的聯合分布,對P(Observation|Label)和 P(Label|Observation)都做了評估,而判別模型僅僅而已評估了后者,也就是P(Label|Observation)。
DBN由多個限制玻爾茲曼機(Restricted Boltzmann Machines)層組成,一個典型的神經網絡類型如圖所示。這些網絡被“限制”為一個可視層和一個隱層,層間存在連接,但層內的單元間不存在連接。隱層單元被訓練去捕捉在可視層表現出來的高階數據的相關性。
生成對抗網絡其實在之前的帖子中做過講解,這里在說明一下。
生成對抗網絡的目標在于生成,我們傳統(tǒng)的網絡結構往往都是判別模型,即判斷一個樣本的真實性。而生成模型能夠根據所提供的樣本生成類似的新樣本,注意這些樣本是由計算機學習而來的。
GAN一般由兩個網絡組成,生成模型網絡,判別模型網絡。
生成模型 G 捕捉樣本數據的分布,用服從某一分布(均勻分布,高斯分布等)的噪聲 z 生成一個類似真實訓練數據的樣本,追求效果是越像真實樣本越好;判別模型 D 是一個二分類器,估計一個樣本來自于訓練數據(而非生成數據)的概率,如果樣本來自于真實的訓練數據,D 輸出大概率,否則,D 輸出小概率。
舉個例子:生成網絡 G 好比假幣制造團伙,專門制造假幣,判別網絡 D 好比警察,專門檢測使用的貨幣是真幣還是假幣,G 的目標是想方設法生成和真幣一樣的貨幣,使得 D 判別不出來,D 的目標是想方設法檢測出來 G 生成的假幣。
傳統(tǒng)的判別網絡:
生成對抗網絡:
下面展示一個cDCGAN的例子(前面帖子中寫過的)
生成網絡
判別網絡
最終結果,使用MNIST作為初始樣本,通過學習后生成的數字,可以看到學習的效果還是不錯的。
本文非常簡單的介紹了四種神經網絡的架構,CNN,RNN,DBN,GAN。當然也僅僅是簡單的介紹,并沒有深層次講解其內涵。這四種神經網絡的架構十分常見,應用也十分廣泛。當然關于神經網絡的知識,不可能幾篇帖子就講解完,這里知識講解一些基礎知識,幫助大家快速入(zhuang)門(bi)。后面的帖子將對深度自動編碼器,Hopfield 網絡長短期記憶網絡(LSTM)進行講解。
二、簡要介紹圖像識別技術在無人機攝圖的應用
姓名:朱睿琦
學號:15180288015
【嵌牛導讀】:隨著數字圖像處理技術和人工智能的不斷發(fā)展,圖像識別技術無論在識別精度還是識別速度都有了長足的進步。圖像識別技術如何應用于無人機的巡檢中?下文將進行簡要的介紹。
【嵌牛鼻子】:圖像識別技術,無人機
【嵌牛提問】:圖像識別技術與無人機的攝圖是如何結合的?無人機巡檢的優(yōu)點有哪些?
【嵌牛正文】:針對橋梁出現裂縫,露筋,剝落,螺栓脫落等病害,無人機直達檢測部位拍攝病害圖像,針對病害圖像的特點,運用機器視覺對數字圖像進行增強、去噪、圖像分割、邊緣檢測,采用基于監(jiān)督學習的機器學習算法,對圖像進行病害識別,解決病害分類問題及病害標記的問題。
1.圖像識別在無人機巡檢中應用的技術:
(1)圖像增強——運用自適應的局部增強處理技術,只增強感興趣區(qū)域的對比度,而模糊其他區(qū)域的清晰程度,實現突出病害部分圖像的目的。
采用了拉普拉斯算子,使圖像中的各灰度值得到保留、灰度突變處的對比度得到增強,最終保留圖像背景的前提下,突現出圖像中的小細節(jié)。
其原理是:
對原圖像進行處理產生描述灰度突變的圖像;
將拉普拉斯算子處理圖像與原圖像疊加產生銳化圖像。
(2)圖像去噪——包括濾除圖像的隨機噪聲、高斯噪聲等,為圖像分割前做平滑處理以減弱噪聲的影響。
采用中值濾波法,其原理是:
選定窗口為 的模版,其中 的大小由原圖像的二階導數的均值決定,使窗口中心與圖像某點重合;
窗口在圖像上逐個像素移動;
窗口對應像素灰度值大小排序,找出中間值;
將中間值作為窗口所在像素的灰度值。
(3)圖像分割——將圖像背景和目標物體進行分割,通常情況下,目標物體較背景暗,在灰度直方圖上的灰度處在不同的灰度區(qū)間,因此可以選擇一個灰度閾值將物體區(qū)域分割出來。
采用局部動態(tài)閾值算法中的Bradley二值化,其原理是:
利用自適應算法計算圖像中每個像素點對應的閾值;
利用得到的一個 大小的閾值矩陣實現二值化。
(4)圖像邊緣檢測——邊緣主要存在于目標與目標,目標與背景或區(qū)域與區(qū)域之間,是圖像灰度不連續(xù)性的反映,圖像邊緣檢測是檢測圖像函數不連續(xù)點的過程表示。
采用梯度算子中的Canny算子,其原理是:
用高斯濾波器對原始圖像進行平滑去噪;
用一階偏導數的有限差分計算梯度的幅值和方向;
采用迭代法得到圖像梯度中的局部極大值點,把其他非局部極大值置零來得到細化的邊緣;
用雙閾值算法檢測和連接邊緣。
(5)圖像特征提取——在滿足分類識別正確率要求的前提下,使用較少的特征就能完成分類設別任務。
利用Bag Feature模型提取特征并構建圖像的虛擬字典,其原理是:
利用surf算法生成每幅圖像的特征點;
生成每幅圖像的向量;
將有疑問的圖像向量與圖庫中圖像的向量求夾角,夾角最小的即為匹配成功。
(6)圖像分類——利用神經網絡訓練樣本數據,在圖像識別階段,只要將圖像的特征向量作為神經網絡分類器的輸入,經過網絡計算,分類器的輸出就是識別結果。
神經網絡分類器用n個表示的樣本送入神經網絡,這些分類用二值表示,其原理是:
第一級計算匹配度,然后被平行的通過輸出線送到第二級;
第二級中各類均有一個輸出,當得到正確的分類結果后,分類器的輸出可反饋到第一級;
當樣本十分相似時,分類器會做出正確的響應。
2>無人機巡檢的優(yōu)勢:
針對橋梁偏塔、橋梁斜拉鎖保護層脫落、橋梁路面坑槽、裂縫、結構連接件露筋、銹蝕及螺栓脫落的檢測,無人機巡檢具備諸多優(yōu)勢。
1) 無人機可以直達檢測部位,無需其它輔助措施,節(jié)省費用;
2) 檢測橋墩、橋座、橋腹等危險場所,無需搭架或者吊籃配合人員檢測,極大地提高了安全性;
3) 對于部分無法企及的橋腹、拉索等部位,無人機可以抵近觀察了解更多細節(jié);
4) 在橋梁定期檢測時,無需封閉道路中斷交通,僅十分鐘準備時間,隨檢隨走;
5) 支持在線即時航線規(guī)劃,可在執(zhí)行飛行前現場新建、修改規(guī)劃;
6) 飛行狀態(tài)全程監(jiān)控,添加多種中斷操作和相機控制,確保安全飛行同時獲得更好畫質的圖像數據。
總結:隨著圖像識別技術在無人機上越來越多的應用,無人機可以比人工更高效的巡檢陸海上設施,到達人難以到達的危險地區(qū)或特殊角度收集更加全面,時效的數據
三、入門 | 一文簡述循環(huán)神經網絡
入門 | 一文簡述循環(huán)神經網絡
本文簡要介紹了什么是循環(huán)神經網絡及其運行原理,并給出了一個 RNN 實現示例。
什么是循環(huán)神經網絡(RNN)?它們如何運行?可以用在哪里呢?本文試圖回答上述這些問題,還展示了一個 RNN 實現 demo,你可以根據自己的需要進行擴展。
循環(huán)神經網絡架構
基礎知識。Python、CNN 知識是必備的。了解 CNN 的相關知識,是為了與 RNN 進行對比:RNN 為什么以及在哪些地方比 CNN 更好。
我們首先從「循環(huán)」(Recurrent)這個詞說起。為什么將其稱為循環(huán)?循環(huán)的意思是:
經?;蛑貜统霈F
將這類神經網絡稱為循環(huán)神經網絡是因為它對一組序列輸入重復進行同樣的操作。本文后續(xù)部分將討論這種操作的意義。
我們?yōu)槭裁葱枰?RNN?
也許你現在想的是,已經有像卷積網絡這樣表現非常出色的網絡了,為什么還需要其他類型的網絡呢?有一個需要用到 RNN 的特殊例子。為了解釋 RNN,你首先需要了解序列的相關知識,我們先來講一下序列。
序列是相互依賴的(有限或無限)數據流,比如時間序列數據、信息性的字符串、對話等。在對話中,一個句子可能有一個意思,但是整體的對話可能又是完全不同的意思。股市數據這樣的時間序列數據也是,單個數據表示當前價格,但是全天的數據會有不一樣的變化,促使我們作出買進或賣出的決定。
當輸入數據具有依賴性且是序列模式時,CNN 的結果一般都不太好。CNN 的前一個輸入和下一個輸入之間沒有任何關聯。所以所有的輸出都是獨立的。CNN 接受輸入,然后基于訓練好的模型輸出。如果你運行了 100 個不同的輸入,它們中的任何一個輸出都不會受之前輸出的影響。但想一下如果是文本生成或文本翻譯呢?所有生成的單詞與之前生成的單詞都是獨立的(有些情況下與之后的單詞也是獨立的,這里暫不討論)。所以你需要有一些基于之前輸出的偏向。這就是需要 RNN 的地方。RNN 對之前發(fā)生在數據序列中的事是有一定記憶的。這有助于系統(tǒng)獲取上下文。理論上講,RNN 有無限的記憶,這意味著它們有無限回顧的能力。通過回顧可以了解所有之前的輸入。但從實際操作中看,它只能回顧最后幾步。
本文僅為了與人類大體相關聯,而不會做任何決定。本文只是基于之前關于該項目的知識做出了自己的判斷(我甚至尚未理解人類大腦的 0.1%)。
何時使用 RNN?
RNN 可用于許多不同的地方。下面是 RNN 應用最多的領域。
1. 語言建模和文本生成
給出一個詞語序列,試著預測下一個詞語的可能性。這在翻譯任務中是很有用的,因為最有可能的句子將是可能性最高的單詞組成的句子。
2. 機器翻譯
將文本內容從一種語言翻譯成其他語言使用了一種或幾種形式的 RNN。所有日常使用的實用系統(tǒng)都用了某種高級版本的 RNN。
3. 語音識別
基于輸入的聲波預測語音片段,從而確定詞語。
4. 生成圖像描述
RNN 一個非常廣泛的應用是理解圖像中發(fā)生了什么,從而做出合理的描述。這是 CNN 和 RNN 相結合的作用。CNN 做圖像分割,RNN 用分割后的數據重建描述。這種應用雖然基本,但可能性是無窮的。
5. 視頻標記
可以通過一幀一幀地標記視頻進行視頻搜索。
深入挖掘
本文按照以下主題進行。每一部分都是基于之前的部分進行的,所以不要跳著讀。
前饋網絡循環(huán)網絡循環(huán)神經元基于時間的反向傳播(BPTT)RNN 實現
前饋網絡入門
前饋網絡通過在網絡的每個節(jié)點上做出的一系列操作傳遞信息。前饋網絡每次通過每個層直接向后傳遞信息。這與其他循環(huán)神經網絡不同。一般而言,前饋網絡接受一個輸入并據此產生輸出,這也是大多數監(jiān)督學習的步驟,輸出結果可能是一個分類結果。它的行為與 CNN 類似。輸出可以是以貓狗等作為標簽的類別。
前饋網絡是基于一系列預先標注過的數據訓練的。訓練階段的目的是減少前饋網絡猜類別時的誤差。一旦訓練完成,我們就可以用訓練后的權重對新批次的數據進行分類。
一個典型的前饋網絡架構
還有一件事要注意。在前饋網絡中,無論在測試階段展示給分類器的圖像是什么,都不會改變權重,所以也不會影響第二個決策。這是前饋網絡和循環(huán)網絡之間一個非常大的不同。
與循環(huán)網絡不同,前饋網絡在測試時不會記得之前的輸入數據。它們始終是取決于時間點的。它們只會在訓練階段記得歷史輸入數據。
循環(huán)網絡
也就是說,循環(huán)網絡不僅將當前的輸入樣例作為網絡輸入,還將它們之前感知到的一并作為輸入。
我們試著建立了一個多層感知器。從簡單的角度講,它有一個輸入層、一個具備特定激活函數的隱藏層,最終可以得到輸出。
多層感知器架構示例
如果在上述示例中的層數增加了,輸入層也接收輸入。那么第一個隱藏層將激活傳遞到下一個隱藏層上,依此類推。最后到達輸出層。每一個隱藏層都有自己的權重和偏置項?,F在問題變成了我們可以輸入到隱藏層嗎?
每一層都有自己的權重(W)、偏置項(B)和激活函數(F)。這些層的行為不同,合并它們從技術層面上講也極具挑戰(zhàn)性。為了合并它們,我們將所有層的權重和偏置項替換成相同的值。如下圖所示:
現在我們就可以將所有層合并在一起了。所有的隱藏層都可以結合在一個循環(huán)層中。所以看起來就像下圖:
我們在每一步都會向隱藏層提供輸入。現在一個循環(huán)神經元存儲了所有之前步的輸入,并將這些信息和當前步的輸入合并。因此,它還捕獲到一些當前數據步和之前步的相關性信息。t-1 步的決策影響到第 t 步做的決策。這很像人類在生活中做決策的方式。我們將當前數據和近期數據結合起來,幫助解決手頭的特定問題。這個例子很簡單,但從原則上講這與人類的決策能力是一致的。這讓我非常想知道我們作為人類是否真的很智能,或者說我們是否有非常高級的神經網絡模型。我們做出的決策只是對生活中收集到的數據進行訓練。那么一旦有了能夠在合理時間段內存儲和計算數據的先進模型和系統(tǒng)時,是否可以數字化大腦呢?所以當我們有了比大腦更好更快的模型(基于數百萬人的數據訓練出的)時,會發(fā)生什么?
另一篇文章(https://deeplearning4j.org/lstm.html)的有趣觀點:人總是被自己的行為所困擾。
我們用一個例子來闡述上面的解釋,這個例子是預測一系列字母后的下一個字母。想象一個有 8 個字母的單詞 namaskar。
namaskar(合十禮):印度表示尊重的傳統(tǒng)問候或姿勢,將手掌合起置于面前或胸前鞠躬。
如果我們在向網絡輸入 7 個字母后試著找出第 8 個字母,會發(fā)生什么呢?隱藏層會經歷 8 次迭代。如果展開網絡的話就是一個 8 層的網絡,每一層對應一個字母。所以你可以想象一個普通的神經網絡被重復了多次。展開的次數與它記得多久之前的數據是直接相關的。
循環(huán)神經網絡的運作原理
循環(huán)神經元
這里我們將更深入地了解負責決策的實際神經元。以之前提到的 namaskar 為例,在給出前 7 個字母后,試著找出第 8 個字母。輸入數據的完整詞匯表是 {n,a,m,s,k,r}。在真實世界中單詞或句子都會更復雜。為了簡化問題,我們用的是下面這個簡單的詞匯表。
在上圖中,隱藏層或 RNN 塊在當前輸入和之前的狀態(tài)中應用了公式。在本例中,namaste 的字母 n 前面什么都沒有。所以我們直接使用當前信息推斷,并移動到下一個字母 a。在推斷字母 a 的過程中,隱藏層應用了上述公式結合當前推斷 a 的信息與前面推斷 n 的信息。輸入在網絡中傳遞的每一個狀態(tài)都是一個時間步或一步,所以時間步 t 的輸入是 a,時間步 t-1 的輸入就是 n。將公式同時應用于 n 和 a 后,就得到了一個新狀態(tài)。
用于當前狀態(tài)的公式如下所示:
h_t 是新狀態(tài),h_t-1 是前一個狀態(tài)。x_t 是時間 t 時的輸入。在對之前的時間步應用了相同的公式后,我們已經能感知到之前的輸入了。我們將檢查 7 個這樣的輸入,它們在每一步的權重和函數都是相同的。
現在試著以簡單的方式定義 f()。我們使用 tanh 激活函數。通過矩陣 W_hh 定義權重,通過矩陣 W_xh 定義輸入。公式如下所示:
上例只將最后一步作為記憶,因此只與最后一步的數據合并。為了提升網絡的記憶能力,并在記憶中保留較長的序列,我們必須在方程中添加更多的狀態(tài),如 h_t-2、h_t-3 等。最后輸出可以按測試階段的計算方式進行計算:
其中,y_t 是輸出。對輸出與實際輸出進行對比,然后計算出誤差值。網絡通過反向傳播誤差來更新權重,進行學習。本文后續(xù)部分會對反向傳播進行討論。
基于時間的反向傳播算法(BPTT)
本節(jié)默認你已經了解了反向傳播概念。如果需要對反向傳播進行深入了解,請參閱鏈接:?http://cs231n.github.io/optimization-2/?。
現在我們了解了 RNN 是如何實際運作的,但是在實際工作中如何訓練 RNN 呢?該如何決定每個連接的權重呢?如何初始化這些隱藏單元的權重呢?循環(huán)網絡的目的是要準確地對序列輸入進行分類。這要靠誤差值的反向傳播和梯度下降來實現。但是前饋網絡中使用的標準反向傳播無法在此應用。
與有向無環(huán)的前饋網絡不同,RNN 是循環(huán)圖,這也是問題所在。在前饋網絡中可以計算出之前層的誤差導數。但 RNN 的層級排列與前饋網絡并不相同。
答案就在之前討論過的內容中。我們需要展開網絡。展開網絡使其看起來像前饋網絡就可以了。
展開 RNN
在每個時間步取出 RNN 的隱藏單元并復制。時間步中的每一次復制就像前饋網絡中的一層。在時間步 t+1 中每個時間步 t 層與所有可能的層連接。因此我們對權重進行隨機初始化,展開網絡,然后在隱藏層中通過反向傳播優(yōu)化權重。通過向最低層傳遞參數完成初始化。這些參數作為反向傳播的一部分也得到了優(yōu)化。
展開網絡的結果是,現在每一層的權重都不同,因此最終會得到不同程度的優(yōu)化。無法保證基于權重計算出的誤差是相等的。所以每一次運行結束時每一層的權重都不同。這是我們絕對不希望看到的。最簡單的解決辦法是以某種方式將所有層的誤差合并到一起。可以對誤差值取平均或者求和。通過這種方式,我們可以在所有時間步中使用一層來保持相同的權重。
RNN 實現
本文試著用 Keras 模型實現 RNN。我們試著根據給定的文本預測下一個序列。
代碼地址:?https://gist.github.com/09aefc5231972618d2c13ccedb0e22cc.git?
該模型是 Yash Katariya 建的。我對該模型做了一些細微的改動以適合本文的要求。
四、貝葉斯網絡分類器和神經網絡分類器的區(qū)別
貝葉斯分類器由概率統(tǒng)計得出,和神經網絡都需要經過訓練得到相應的分類的功能,如果非要說區(qū)別的話就是結構上的區(qū)別,神經網絡通過高階級數或者幾何空間逼近,無數多的節(jié)點構成了非常復雜的數據相關性,而貝葉斯分類器則通過每個模式(事件幾何下)中發(fā)生該事件的概率來反過來推導發(fā)生該這些事件概率后 屬于那種模式,理論上神經網絡是連續(xù)系統(tǒng),貝葉斯不是連續(xù)的,并且貝葉斯不能處理維度間高度相關性的事件(這就好比 z=ax+by ,但y里又有x的相關因子,x和y并不獨立),而神經網絡沒這個問題。
以上就是關于神經網絡分類器原理相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。
推薦閱讀:
腰椎間盤突出壓迫神經腿疼怎么治(腰椎間盤突出壓迫神經腿疼怎么治中藥)
快音悅聽歌免費下載安裝手機版(快音悅聽歌免費下載安裝手機版)