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