成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的原理與在OpenCV中的應(yīng)用

韓冰 / 1336人閱讀

摘要:分工各不相同,樹突的龐大組織作為神經(jīng)元的輸入,軸突則作為輸出。這對(duì)應(yīng)的是神經(jīng)網(wǎng)絡(luò)中神經(jīng)元的兩種狀態(tài)激活狀態(tài)和未激活狀態(tài)。輸入節(jié)點(diǎn)因?yàn)闆]有計(jì)算因?yàn)橛梅綁K表示,神經(jīng)元用深色圓形表示。模擬的能力首先考慮一個(gè)神經(jīng)元里的輸出與之間的關(guān)系。

1. 神經(jīng)網(wǎng)絡(luò)介紹 ?

神經(jīng)網(wǎng)絡(luò)的原理根本在于對(duì)人類大腦行為的神經(jīng)生物學(xué)模擬,這樣看的話克隆技術(shù)也能算一種了吧。大腦可以看做一臺(tái)精密、穩(wěn)定、計(jì)算能力超強(qiáng)的計(jì)算機(jī),其中的信息處理單元就是神經(jīng)元(Neuron)。神經(jīng)元是大腦處理信息的最小單元,它的結(jié)構(gòu)如下圖:

Figure 1. 神經(jīng)元結(jié)構(gòu)

這個(gè)圖抽象一下,由三部分組成:細(xì)胞體(Cell Body)、樹突(Dendrite)、軸突(Axon)。名字都很形象,樹突像一棵樹那樣伸展開來(lái),軸突長(zhǎng)而細(xì),我隱約記得某篇文章里好像曾說(shuō)道軸突有2mm那么長(zhǎng),對(duì)于一個(gè)看不見的細(xì)胞體帶著這樣長(zhǎng)的軸突,還是相對(duì)較長(zhǎng)的。神經(jīng)元之間就是通過(guò)這些樹突和軸突連接進(jìn)行信息交互。分工各不相同,樹突的龐大組織作為神經(jīng)元的輸入,軸突則作為輸出。一個(gè)神經(jīng)元通過(guò)其龐大的樹突結(jié)構(gòu)從多個(gè)神經(jīng)元處接受輸入信號(hào)。同時(shí)它的軸突也會(huì)伸展向不同神經(jīng)元輸出信號(hào)。那神經(jīng)元A的樹突和另一個(gè)神經(jīng)元B的軸突之間是如何實(shí)現(xiàn)信號(hào)傳遞的呢?這就引出下一個(gè)概念:突觸(Synapse)。

Figure 2. 突觸結(jié)構(gòu)圖

軸突/樹突上的信號(hào)以電信號(hào)形式傳輸,突觸在信號(hào)傳遞的過(guò)程中會(huì)把電信號(hào)轉(zhuǎn)變成化學(xué)信號(hào),然后通過(guò)突觸間隙傳遞到下一個(gè)神經(jīng)元的樹突,再次轉(zhuǎn)換成電信號(hào),從而經(jīng)歷電信號(hào)-化學(xué)信號(hào)-電信號(hào)的轉(zhuǎn)變過(guò)程。

介紹完輸入輸出,下面就是神經(jīng)元的細(xì)胞體了。細(xì)胞體接收輸入信號(hào)后,合成為一個(gè)輸出,它的具體作用過(guò)程是我所不知的,但是后面在人工神經(jīng)網(wǎng)絡(luò)中可以看到用Sigmoid function來(lái)模擬它的處理過(guò)程。

這僅僅是一個(gè)信息處理單元,據(jù)估計(jì)大腦皮層擁有大約100億神經(jīng)細(xì)胞和60萬(wàn)億的突觸連接,這樣的網(wǎng)絡(luò)結(jié)構(gòu)結(jié)果就是造就了大腦這樣的高效組織。大腦的能效大約是焦耳每操作每秒,而相比之下較好的計(jì)算機(jī)這一數(shù)據(jù)要指數(shù)級(jí)地增長(zhǎng)。由此也可以看到“集群”的力量,就好像螞蟻或者蜜蜂那樣。

2. 人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network) ??

2.1 ?神經(jīng)元模型 ?

現(xiàn)在用計(jì)算技術(shù)來(lái)模擬這樣的網(wǎng)絡(luò),首先就是要實(shí)現(xiàn)一個(gè)神經(jīng)元那樣的處理單元。來(lái)看一下人造的神經(jīng)元:

Figure 3.神經(jīng)元模型

看過(guò)了前面的神經(jīng)元,這個(gè)模型就不難理解是如何模擬的。同樣,它也有多個(gè)(m)輸入,突觸以及樹突上信號(hào)傳遞的過(guò)程被簡(jiǎn)化為加權(quán),這里下標(biāo)的順序是神經(jīng)元k的第j個(gè)輸入權(quán)重(synaptic weight)。在這里引入一個(gè)偏置項(xiàng)(bias),然后共同作為加法器(adder)的輸入。到此為止,可以看到我們是對(duì)輸入做了一個(gè)加權(quán)和計(jì)算,偏置項(xiàng)的引入實(shí)際上把加權(quán)和變成了對(duì)輸入的Affine transform。而這些突觸權(quán)重在神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程中承擔(dān)著主體作用,因?yàn)樯窠?jīng)網(wǎng)絡(luò)通過(guò)學(xué)習(xí)或者訓(xùn)練獲得的知識(shí)表達(dá)(knowledge representation)就是這些權(quán)重和偏置項(xiàng)(偏置項(xiàng)可以看做是一個(gè)輸入為+1、權(quán)重為的突觸連接)的具體取值。

加法器的輸出就是后面激活函數(shù)(Activation function)的輸入范圍,通過(guò)激活函數(shù)得到神經(jīng)元的最終輸出。激活函數(shù)有多種類型,最常見的就是Threshold函數(shù)和Sigmoid函數(shù)。

Figure 4. (a) Threshold function; ?(b) Sigmoid function

形式分別為:Threshold?

? ? ? ? ? ? ? ? ? ? ? Sigmoid?其中

激活函數(shù)的作用是把輸出壓扁(squash)到一定范圍內(nèi)。以Sigmoid函數(shù)為例,輸入從負(fù)無(wú)窮到正無(wú)窮,經(jīng)過(guò)sigmoid函數(shù)映射到(0,1)范圍,與Threshold函數(shù)不同的是它的連續(xù)性使得它的輸出可以看做是結(jié)果等于1的概率。當(dāng)v>0時(shí)輸出為1;v<0時(shí)輸出為0。這對(duì)應(yīng)的是神經(jīng)網(wǎng)絡(luò)中神經(jīng)元的兩種狀態(tài):激活狀態(tài)和未激活狀態(tài)。

最后總結(jié)起來(lái),神經(jīng)元模型是一個(gè)對(duì)輸入做Affine變換后經(jīng)過(guò)激活函數(shù)的數(shù)學(xué)模型。

2.2 ?網(wǎng)絡(luò)模型

人工神經(jīng)網(wǎng)絡(luò)是以層(layer)形式組織起來(lái),包含一個(gè)輸入層、一個(gè)輸出層和一個(gè)或多個(gè)隱含層。每一層(除去輸入層)中包含多個(gè)神經(jīng)元,或者叫計(jì)算單元。輸入層只是接收輸入信號(hào),并沒有做計(jì)算。層與層之間通過(guò)神經(jīng)連接(synaptic link)連接起來(lái),如果神經(jīng)元與前一層的每一個(gè)神經(jīng)元之間都有連接(下圖所示),這樣的網(wǎng)絡(luò)叫做全連接網(wǎng)絡(luò)(completely-linked network),否則叫做部分連接網(wǎng)絡(luò)(partially-linked network)。

Figure 5. 神經(jīng)網(wǎng)絡(luò)模型

這樣的網(wǎng)絡(luò)包含一個(gè)4個(gè)神經(jīng)元的隱含層,一個(gè)2個(gè)神經(jīng)元的輸出層,一個(gè)包含10個(gè)輸入節(jié)點(diǎn)的輸入層。輸入節(jié)點(diǎn)因?yàn)闆]有計(jì)算因?yàn)橛梅綁K表示,神經(jīng)元用深色圓形表示。

2.3 ?模擬的能力

首先考慮一個(gè)神經(jīng)元里的輸出y與x之間的關(guān)系。激活函數(shù)的曲線在上面圖4b中已經(jīng)畫出來(lái),當(dāng)輸入由x變?yōu)閍x時(shí),曲線的平滑度將會(huì)隨之變化:a越大函數(shù)曲線越陡,當(dāng)a趨于正無(wú)窮時(shí)sigmoid函數(shù)逼近到Threshold函數(shù)。而如果輸入由x變?yōu)閤+b時(shí),對(duì)曲線做平移。因而單個(gè)神經(jīng)元是對(duì)輸入的非線性映射。如圖5中的網(wǎng)絡(luò)模型,如果只有一個(gè)輸入x,這個(gè)只包含一個(gè)隱含層的網(wǎng)絡(luò)結(jié)構(gòu)可以逼近x任意的非線性函數(shù)(隱含層神經(jīng)元數(shù)目未必為4)。因而一個(gè)大型的全連接網(wǎng)絡(luò)的模擬能力是可以想見的。

2.4 ?計(jì)算的能力

利用網(wǎng)絡(luò)模型計(jì)算時(shí),由輸入層開始,每一個(gè)節(jié)點(diǎn)接收來(lái)自前一層中節(jié)點(diǎn)的輸出,然后將計(jì)算結(jié)果傳遞到后面一層直到最后的輸出層,叫做前向傳播過(guò)程。

2.5 ?訓(xùn)練---BP

網(wǎng)絡(luò)的訓(xùn)練目的就是要找到網(wǎng)絡(luò)中各個(gè)突觸連接的權(quán)重和偏置項(xiàng)。作為有監(jiān)督學(xué)習(xí)的一種,它的訓(xùn)練過(guò)程是通過(guò)不斷反饋當(dāng)前網(wǎng)絡(luò)計(jì)算結(jié)果與訓(xùn)練數(shù)據(jù)的label之間的誤差來(lái)修正網(wǎng)絡(luò)權(quán)重。當(dāng)滿足某個(gè)條件時(shí)退出訓(xùn)練。

首先取一個(gè)訓(xùn)練樣例,輸入經(jīng)過(guò)初始化后的網(wǎng)絡(luò)得到輸出,然后計(jì)算輸出與樣例的desired output的誤差,然后計(jì)算該誤差對(duì)輸出層輸入的導(dǎo)數(shù),再根據(jù)對(duì)輸入層導(dǎo)數(shù)計(jì)算誤差函數(shù)對(duì)隱含層-輸出層權(quán)重的導(dǎo)數(shù),根據(jù)此導(dǎo)數(shù)修正隱含層-輸出層權(quán)重。繼續(xù)這樣的過(guò)程,計(jì)算誤差函數(shù)對(duì)輸入層-隱含層權(quán)重的導(dǎo)數(shù),并修正輸入層-隱含層權(quán)重……直到滿足退出條件(誤差精度或無(wú)調(diào)整),訓(xùn)練過(guò)程結(jié)束。

3. ?OpenCV中的神經(jīng)網(wǎng)絡(luò)

OpenCV中封裝了類CvANN_MLP,因而神經(jīng)網(wǎng)絡(luò)利用很方便。

首先構(gòu)建一個(gè)網(wǎng)絡(luò)模型:

? ? CvANN_MLP ann;

? ? Mat structure(1,3,CV_32SC1);

? ? structure.at(0) = 10;

? ? structure.at(0) = 4;

? ? structure.at(0) = 2; ?// structure中表示每一層中神經(jīng)元數(shù)目

? ? ann.create(structure,CvANN_MLP::SIGMOID_SYM,1,1); ?// 很明顯第二個(gè)參數(shù)選擇的是激活函數(shù)的類型

然后需要對(duì)訓(xùn)練數(shù)據(jù)放在兩個(gè)Mat結(jié)構(gòu)中。第一個(gè)是存儲(chǔ)訓(xùn)練數(shù)據(jù)的Mat train,第二個(gè)是存儲(chǔ)類別的Mat label。其中,train的每一行代表一個(gè)訓(xùn)練樣例,label的對(duì)應(yīng)的一行是訓(xùn)練樣例的類別。比如有25個(gè)屬于7個(gè)類別的訓(xùn)練樣例,每個(gè)樣例為16維向量。則train結(jié)構(gòu)為25*16,label結(jié)構(gòu)為25*7。需要解釋的是類別數(shù)據(jù),label中一行表示樣例所處類別,如果屬于第一類則為(1,0,0,0,0,0,0),第二類為(0,1,0,0,0,0,0)...

接下來(lái)需要給ann提供一個(gè)樣例的權(quán)重向量Mat weight,它標(biāo)記的是訓(xùn)練樣例的權(quán)重,這里都初始化為1:

Mat weight;

?weight.ones(1,25,CV_32FC1);

接下來(lái)可以做訓(xùn)練了:

ann.train(train,label,weight);

訓(xùn)練結(jié)束后用ann來(lái)做分類,輸入為Mat testSample,testSample為1*16的向量,輸出為Mat output,output為1*7向量:

ann.predict(testSample,output);

最后找到output中的較大值就知道所屬類別maxPos了:

int maxPos;

double maxVal;

minMaxLoc(output,0,&maxVal,0,&maxPos);

歡迎加入本站公開興趣群

商業(yè)智能與數(shù)據(jù)分析群

興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)

QQ群:81035754

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/4351.html

相關(guān)文章

  • opencv+mtcnn+facenet+python+tensorflow 實(shí)現(xiàn)實(shí)時(shí)人臉識(shí)別

    摘要:實(shí)現(xiàn)實(shí)時(shí)人臉識(shí)別本文記錄了在學(xué)習(xí)深度學(xué)習(xí)過(guò)程中,使用,開發(fā)環(huán)境為,實(shí)現(xiàn)局域網(wǎng)連接手機(jī)攝像頭,對(duì)目標(biāo)人員進(jìn)行實(shí)時(shí)人臉識(shí)別,效果并非特別好,會(huì)繼續(xù)改進(jìn)這里是項(xiàng)目地址項(xiàng)目中用到的大文件地址如果各位老爺看完覺得對(duì)你有幫助的話,請(qǐng)給個(gè)小星星,當(dāng)前時(shí)間 opencv+mtcnn+facenet+python+tensorflow 實(shí)現(xiàn)實(shí)時(shí)人臉識(shí)別 Abstract:本文記錄了在學(xué)習(xí)深度學(xué)習(xí)過(guò)程中,...

    megatron 評(píng)論0 收藏0
  • 首次公開,整理12年積累博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<