在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于神經網絡學習的原理與在OpenCV中的應用

新機器視覺 ? 來源:CSDN ? 作者:CSDN ? 2021-05-11 09:40 ? 次閱讀

1. 神經網絡介紹

神經網絡的原理根本在于對人類大腦行為的神經生物學模擬,這樣看的話克隆技術也能算一種了吧。大腦可以看做一臺精密、穩定、計算能力超強的計算機,其中的信息處理單元就是神經元(Neuron)。神經元是大腦處理信息的最小單元,它的結構如下圖:

34c7fdb8-b1d6-11eb-bf61-12bb97331649.jpg

Figure 1. 神經元結構

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

34d34cc2-b1d6-11eb-bf61-12bb97331649.jpg

Figure 2. 突觸結構圖

軸突/樹突上的信號以電信號形式傳輸,突觸在信號傳遞的過程中會把電信號轉變成化學信號,然后通過突觸間隙傳遞到下一個神經元的樹突,再次轉換成電信號,從而經歷電信號-化學信號-電信號的轉變過程。

介紹完輸入輸出,下面就是神經元的細胞體了。細胞體接收輸入信號后,合成為一個輸出,它的具體作用過程是我所不知的,但是后面在人工神經網絡中可以看到用Sigmoid function來模擬它的處理過程。

這僅僅是一個信息處理單元,據估計大腦皮層擁有大約100億神經細胞和60萬億的突觸連接,這樣的網絡結構結果就是造就了大腦這樣的高效組織。大腦的能效大約是34e9c362-b1d6-11eb-bf61-12bb97331649.jpg焦耳每操作每秒,而相比之下最好的計算機這一數據要指數級地增長。由此也可以看到“集群”的力量,就好像螞蟻或者蜜蜂那樣。

2. 人工神經網絡(Artificial Neural Network)

2.1 神經元模型

現在用計算技術來模擬這樣的網絡,首先就是要實現一個神經元那樣的處理單元。來看一下人造的神經元:

34f4d504-b1d6-11eb-bf61-12bb97331649.jpg

Figure 3.神經元模型

看過了前面的神經元,這個模型就不難理解是如何模擬的。同樣,它也有多個(m)輸入,突觸以及樹突上信號傳遞的過程被簡化為加權34feec7e-b1d6-11eb-bf61-12bb97331649.jpg,這里下標的順序是神經元k的第j個輸入權重(synaptic weight)。在這里引入一個偏置項(bias)35099552-b1d6-11eb-bf61-12bb97331649.jpg,然后共同作為加法器(adder)的輸入。到此為止,可以看到我們是對輸入做了一個加權和計算,偏置項的引入實際上把加權和變成了對輸入的Affine transform。而這些突觸權重在神經網絡的學習過程中承擔著主體作用,因為神經網絡通過學習或者訓練獲得的知識表達(knowledge representation)就是這些權重和偏置項(偏置項可以看做是一個輸入為+1、權重為35099552-b1d6-11eb-bf61-12bb97331649.jpg的突觸連接)的具體取值。

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

351d9dc2-b1d6-11eb-bf61-12bb97331649.jpg

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

形式分別為:Threshold

35286770-b1d6-11eb-bf61-12bb97331649.jpg

Sigmoid

3531a98e-b1d6-11eb-bf61-12bb97331649.jpg

其中

353b80ee-b1d6-11eb-bf61-12bb97331649.jpg

激活函數的作用是把輸出壓扁(squash)到一定范圍內。以Sigmoid函數為例,輸入從負無窮到正無窮,經過sigmoid函數映射到(0,1)范圍,與Threshold函數不同的是它的連續性使得它的輸出可以看做是結果等于1的概率。當v>0時輸出為1;v<0時輸出為0。這對應的是神經網絡中神經元的兩種狀態:激活狀態和未激活狀態。

最后總結起來,神經元模型是一個對輸入做Affine變換后經過激活函數的數學模型。

2.2 網絡模型

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

3547b08a-b1d6-11eb-bf61-12bb97331649.jpg

Figure 5. 神經網絡模型

這樣的網絡包含一個4個神經元的隱含層,一個2個神經元的輸出層,一個包含10個輸入節點的輸入層。輸入節點因為沒有計算因為用方塊表示,神經元用深色圓形表示。

2.3 模擬的能力

首先考慮一個神經元里的輸出y與x之間的關系。激活函數的曲線在上面圖4b中已經畫出來,當輸入由x變為ax時,曲線的平滑度將會隨之變化:a越大函數曲線越陡,當a趨于正無窮時sigmoid函數逼近到Threshold函數。而如果輸入由x變為x+b時,對曲線做平移。因而單個神經元是對輸入的非線性映射。如圖5中的網絡模型,如果只有一個輸入x,這個只包含一個隱含層的網絡結構可以逼近x任意的非線性函數(隱含層神經元數目未必為4)。因而一個大型的全連接網絡的模擬能力是可以想見的。

2.4 計算的能力

利用網絡模型計算時,由輸入層開始,每一個節點接收來自前一層中節點的輸出,然后將計算結果傳遞到后面一層直到最后的輸出層,叫做前向傳播過程。

2.5 訓練---BP

網絡的訓練目的就是要找到網絡中各個突觸連接的權重和偏置項。作為有監督學習的一種,它的訓練過程是通過不斷反饋當前網絡計算結果與訓練數據的label之間的誤差來修正網絡權重。當滿足某個條件時退出訓練。

首先取一個訓練樣例,輸入經過初始化后的網絡得到輸出,然后計算輸出與樣例的desired output的誤差,然后計算該誤差對輸出層輸入的導數,再根據對輸入層導數計算誤差函數對隱含層-輸出層權重的導數,根據此導數修正隱含層-輸出層權重。繼續這樣的過程,計算誤差函數對輸入層-隱含層權重的導數,并修正輸入層-隱含層權重……直到滿足退出條件(誤差精度或無調整),訓練過程結束。

3. OpenCV中的神經網絡

OpenCV中封裝了類CvANN_MLP,因而神經網絡利用很方便。

首先構建一個網絡模型:

CvANN_MLP ann;

Mat structure(1,3,CV_32SC1);
structure.at(0) = 10;

structure.at(0) = 4;

structure.at(0) = 2; // structure中表示每一層中神經元數目

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

然后需要對訓練數據放在兩個Mat結構中。第一個是存儲訓練數據的Mat train,第二個是存儲類別的Mat label。其中,train的每一行代表一個訓練樣例,label的對應的一行是訓練樣例的類別。比如有25個屬于7個類別的訓練樣例,每個樣例為16維向量。則train結構為25*16,label結構為25*7。需要解釋的是類別數據,label中一行表示樣例所處類別,如果屬于第一類則為(1,0,0,0,0,0,0),第二類為(0,1,0,0,0,0,0)...

接下來需要給ann提供一個樣例的權重向量Mat weight,它標記的是訓練樣例的權重,這里都初始化為1:

Mat weight;

weight.ones(1,25,CV_32FC1);

接下來可以做訓練了:

ann.train(train,label,weight);

訓練結束后用ann來做分類,輸入為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);

責任編輯:lq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4810

    瀏覽量

    102918
  • 神經元
    +關注

    關注

    1

    文章

    368

    瀏覽量

    18769
  • OpenCV
    +關注

    關注

    32

    文章

    642

    瀏覽量

    42485

原文標題:神經網絡學習的原理與在OpenCV中的應用

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何優化BP神經網絡學習

    優化BP神經網絡學習率是提高模型訓練效率和性能的關鍵步驟。以下是一些優化BP神經網絡學習率的方法: 一、理解學習率的重要性
    的頭像 發表于 02-12 15:51 ?796次閱讀

    BP神經網絡與深度學習的關系

    BP神經網絡與深度學習之間存在著密切的關系,以下是對它們之間關系的介紹: 一、BP神經網絡的基本概念 BP神經網絡,即反向傳播神經網絡(Ba
    的頭像 發表于 02-12 15:15 ?746次閱讀

    BP神經網絡圖像識別的應用

    BP神經網絡圖像識別中發揮著重要作用,其多層結構使得網絡能夠學習到復雜的特征表達,適用于處理非線性問題。以下是對BP神經網絡
    的頭像 發表于 02-12 15:12 ?593次閱讀

    人工神經網絡的原理和多種神經網絡架構方法

    在上一篇文章,我們介紹了傳統機器學習的基礎知識和多種算法。本文中,我們會介紹人工神經網絡的原理和多種神經網絡架構方法,供各位老師選擇。
    的頭像 發表于 01-09 10:24 ?1053次閱讀
    人工<b class='flag-5'>神經網絡</b>的原理和多種<b class='flag-5'>神經網絡</b>架構方法

    深度學習的卷積神經網絡模型

    深度學習近年來多個領域取得了顯著的進展,尤其是圖像識別、語音識別和自然語言處理等方面。卷積神經網絡作為深度學習的一個分支,因其
    的頭像 發表于 11-15 14:52 ?763次閱讀

    不同類型神經網絡回歸任務的應用

    神經網絡是一種強大的機器學習模型,可以用于各種任務,包括回歸。本文中,我們將討論不同類型的神經網絡,以及它們回歸任務
    的頭像 發表于 07-11 10:27 ?1959次閱讀

    BP神經網絡學習機制

    BP神經網絡(Backpropagation Neural Network),即反向傳播神經網絡,是一種基于梯度下降算法的多層前饋神經網絡,其學習機制的核心在于通過反向傳播算法
    的頭像 發表于 07-10 15:49 ?1134次閱讀

    BP神經網絡語言特征信號分類的應用

    Network),即反向傳播神經網絡,作為一種強大的多層前饋神經網絡,憑借其優異的非線性映射能力和高效的學習機制,語言特征信號分類展現
    的頭像 發表于 07-10 15:44 ?723次閱讀

    BP神經網絡和卷積神經網絡的關系

    BP神經網絡(Backpropagation Neural Network)和卷積神經網絡(Convolutional Neural Network,簡稱CNN)是兩種人工智能和機器學習
    的頭像 發表于 07-10 15:24 ?2313次閱讀

    rnn是遞歸神經網絡還是循環神經網絡

    RNN(Recurrent Neural Network)是循環神經網絡,而非遞歸神經網絡。循環神經網絡是一種具有時間序列特性的神經網絡,能夠處理序列數據,具有記憶功能。以下是
    的頭像 發表于 07-05 09:52 ?960次閱讀

    循環神經網絡和卷積神經網絡的區別

    循環神經網絡(Recurrent Neural Network,RNN)和卷積神經網絡(Convolutional Neural Network,CNN)是深度學習領域中兩種非常重要的神經網絡
    的頭像 發表于 07-04 14:24 ?1949次閱讀

    深度神經網絡與基本神經網絡的區別

    探討深度神經網絡(Deep Neural Networks, DNNs)與基本神經網絡(通常指傳統神經網絡或前向神經網絡)的區別時,我們需
    的頭像 發表于 07-04 13:20 ?1692次閱讀

    卷積神經網絡和bp神經網絡的區別

    不同的神經網絡模型,它們結構、原理、應用等方面都存在一定的差異。本文將從多個方面對這兩種神經網絡進行詳細的比較和分析。 引言 神經網絡是一種模擬人腦
    的頭像 發表于 07-02 14:24 ?5946次閱讀

    神經網絡圖像識別的應用

    隨著人工智能技術的飛速發展,神經網絡圖像識別領域的應用日益廣泛。神經網絡以其強大的特征提取和分類能力,為圖像識別帶來了革命性的進步。本文將詳細介紹神經網絡
    的頭像 發表于 07-01 14:19 ?1118次閱讀

    神經網絡的激活函數有哪些

    神經網絡,激活函數是一個至關重要的組成部分,它決定了神經元對于輸入信號的反應方式,為神經網絡引入了非線性因素,使得
    的頭像 發表于 07-01 11:52 ?1039次閱讀
    主站蜘蛛池模板: 国产一区二区三区不卡观 | 操视频网站 | 特级aaa毛片 | 精品久久久久久久久久 | 国产亚洲片 | 色播五月综合 | 高清一级毛片一本到免费观看 | 国产亚洲精品成人a在线 | 久青草国产观看在线视频 | 人人澡人人草 | 午夜精品久久久久久毛片 | 深夜一级毛片 | 亚洲天堂导航 | 一区二区三区四区五区 | 亚洲精品色图 | 亚洲欧美国产高清va在线播放 | 亚洲涩色 | 免费看啪啪网站 | 天天操天天射天天插 | 成人在色线视频在线观看免费大全 | 亚洲国产婷婷综合在线精品 | 综合五月激情 | 163黄页网又粗又长又舒服 | 午夜在线视频国产 | 在线观看国产三级 | 波多野结衣一级特黄毛片 | 亚洲国产一区二区三区在线观看 | 中文字幕一区二区三区免费看 | 亚州怡红院 | 免费网站毛片 | 色网站在线观看 | 亚洲综合精品一区二区三区中文 | 国产精品国产午夜免费福利看 | 亚洲swag精品自拍一区 | 一级做a爱片特黄在线观看 一级做a爱片特黄在线观看免费看 | 狠狠色噜噜狠狠狠狠97 | 深爱五月激情网 | 免费的男女拍拍拍的视频 | 天天操网| 一区二区三区四区在线视频 | 天堂资源在线bt种子8 |