欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python與人工神經(jīng)網(wǎng)絡:使用神經(jīng)網(wǎng)絡識別手寫圖像介紹

 更新時間:2017年12月19日 09:21:40   投稿:mengwei  
文章主要介紹什么是神經(jīng)網(wǎng)絡,感知機的概念和模型,以及新一代的S曲線神經(jīng)元系統(tǒng)等相關內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下。

人體的視覺系統(tǒng)是一個相當神奇的存在,對于下面的一串手寫圖像,可以毫不費力的識別出他們是504192,輕松到讓人都忘記了其實這是一個復雜的工作。

實際上在我們的大腦的左腦和右腦的皮層都有一個第一視覺區(qū)域,叫做V1,里面有14億視覺神經(jīng)元。而且,在我們識別上面的圖像的時候,工作的不止有V1,還有V2、V3、V4、V5,所以這么一看,我們確實威武。

但是讓計算機進行模式識別,就比較復雜了,主要困難在于我們?nèi)绾谓o計算機描述一個數(shù)字9在圖像上應該是怎樣的,比如我們跟計算機說,9的上面是一個圈,下右邊是1豎。然而有的人寫9會帶勾,有的人還會在圈周圍多出點什么,總的來說,這種描述法太容易出現(xiàn)其他狀況。況且,我們這里討論的還只是數(shù)字,涉及到字母、漢字、符號就回更復雜。

于是人們就有了另外一種途徑,那就是我們不用告訴計算機什么是9,我們可以把他當作一個小孩子,讓他見很多9的圖片,對他說,這是9,記得哈。慢慢的他就形成了自己的評判標準,等他長大了,自然就知道以后遇到的圖片是不是9了。讓我們?nèi)藢W習的方式是見聞,讓計算機學習的就是給他數(shù)據(jù),這個數(shù)據(jù)通常被叫做訓練樣本(如圖),而這套學習的方法,就是神經(jīng)網(wǎng)絡了。

感知機(Perceptrons)

在說人工神經(jīng)網(wǎng)絡之前,我們先說另外一個人工神經(jīng)元系統(tǒng),叫感知機(Perceptrons)。感知機模型是這樣的:

其中x1,x2,x3是二進制的輸入值,output是二進制的輸出值。在每個輸入端,還會有一個權重,w1,w2,w3。output取決于x1*w1+x2*w2+x3*w3,如果他小于等于一個臨界值的時候,output就輸出0,大于等于那個臨界值的時候,output就輸出1。當然輸入值可以是任意多個,用公式表示就是:

output={01if ∑jwjxj≤ thresholdif ∑jwjxj> threshold

感知機模型就這么簡單,他是一個相當好的決策系統(tǒng),用來解決是或者不是,去或者不去,熟悉我的朋友可能知道我從古代儒家修身的功過格受啟發(fā),自己制定的一套決策系統(tǒng),也是用因素*權重然后匯總,看得到的正面因素占優(yōu)還是負面的因素占優(yōu),最后做決策,真是相當好用,只不過那時候還不知道感知機模型。

我們把Σwjxj用w·x表示,把臨界值提到等號右邊,用-b表示,那么上面的等式就如下所示:

b一般稱作偏差。

既然有一層的感知機模型,多層的就很好理解了,如圖:

這個多層(從左到右)的感知機里面,第一層的感知機比較簡單,只根據(jù)輸入的值和權重就可以得出結果,第二層的結果就得根據(jù)第一層的結果和相應的的權重了,與復雜度相對應,他也就可以用來做更加復雜和抽象的決定,第三層就更復雜了。

這種上世紀五十年代就出來的神經(jīng)元系統(tǒng)功能強大,但是對于機器學習有一個重大的缺陷。我們教小孩子的時候,小孩子進步一點點,我們就鼓勵他一下,小孩子退步一點點,我們就批評一下,他從我們的批評和鼓勵中自動的去調(diào)整自己的認知,慢慢的成長。但是這個感知機就不同了,他的輸入值只有0和1,他的成長沒有一點點的說法,所以壓根就不知道怎么調(diào)整,可能內(nèi)部參數(shù)調(diào)整的亂七八糟,輸出的結果還是不變的。要實現(xiàn)學習和進步,就得有這么一點點一點點進步的概念,也就是說,w或者b變了一點點,那么輸出值就得變一點點,總的來說,就是要實現(xiàn)下圖所示的效果:

于是新一代的神經(jīng)元系統(tǒng)就出世了,他叫S曲線神經(jīng)元系統(tǒng)(Sigmoid neurons)。

S曲線神經(jīng)元系統(tǒng)(Sigmoid neurons)

簡單來說,S曲線神經(jīng)元系統(tǒng)和感知機系統(tǒng)的區(qū)別在于我們的輸入值x1,x2,x3和輸出值output都不是0和1了,改為從0到1之間的任何實數(shù)。而且規(guī)定,對我輸出值output,由于是與w·x和b相關的,我們可以用σ(w·x,b)表示,他滿足函數(shù):

把w·x和b帶進去,就是:

試著看下,如果當w·x + b→+∞的時候,e^-(w·x+b)→0,σ(w·x,b)→1。相反,當w·x + b→-∞的時候,σ(w·x,b)→0,所以,感知機系統(tǒng)也是一個特殊的S曲線神經(jīng)元系統(tǒng)。

至于為什么σ(w·x,b)必須滿足上述的函數(shù)呢。請看σ(z)的圖形:

他的定義域是(-∞,+∞),值域是(0,1),也就是說,不管w·x和b怎么折騰,總能保證輸出值在0到1之間。特別的,當我們對一個事情做決定時,比如我們讓計算機決定看到的一個圖形是不是9,0到1之間的一個數(shù),可以在物理意義上對應他是9的概率。(我后來才意識道,這個說法是錯誤的)

我們說,我們拋棄感知器,采用S曲線神經(jīng)元系統(tǒng),是為了讓輸出結果的變動和我們采取權重w和偏離b的變動對應起來。那么對于方程output = σ(w·x,b),由于輸入值x是已知的常數(shù),根據(jù)全微分的定義,有:

輸出值的變動和我們選用的參數(shù)變動就對應起來了。

構造我們的神經(jīng)網(wǎng)絡

在我們構建神經(jīng)網(wǎng)絡的過程中,一般也會把輸入的數(shù)據(jù)當作神經(jīng)元,輸入的那層叫做輸入層,中間可能有多層,通常被叫做隱藏層,輸出的那一層就叫做輸出層。如圖:

在設計神經(jīng)網(wǎng)絡時,一般會采取簡單粗暴的方式,比如我們要讓計算機識別手寫稿的掃描件圖像,其中的一個字的圖像像素個數(shù)是64*64=4096個,那么我們設計神經(jīng)網(wǎng)絡的時候,輸入層神經(jīng)元個數(shù)就是4096個,其中每個神經(jīng)元的輸入數(shù)據(jù)就是該像素的灰度值(參照文章的第一幅圖)歸一化成0到1之間的數(shù)值。而我們要識別出的結果,可能包括數(shù)字0-9加26個大大小寫字母再加六千常用漢字,那我們設計的輸出層神經(jīng)元個數(shù)就用過是10+26*2+6000=6062個,其中每個神經(jīng)元對應一個我們要識別的結果。

具體到本實例中,訓練樣本和識別測試數(shù)據(jù)是28*28像素的,輸出結果只有10個數(shù)字,那么輸入層就應該是786個神經(jīng)元,輸出層是10個神經(jīng)元。至于中間隱藏層的神經(jīng)元,作者選了15個,說是經(jīng)過了多次實驗,15個的效果比較好。就我的理解,應該是越多約好的(不一定正確),不過越多也意味著運算量越大,所以作者最后選了15個。最終設計的結果如圖:

最后還有一個問題,如果是連續(xù)的書寫手稿,怎么把他分割成一個個的。作者說實際上這個問題可以在我們完成通過神經(jīng)網(wǎng)絡進行識別之后再說,因為識別出來誰都不像的,就說明應該要分割了,那我們也就跟著作者的思路,暫時先不管。

總結

以上就是本文關于Python與人工神經(jīng)網(wǎng)絡:使用神經(jīng)網(wǎng)絡識別手寫圖像介紹的全部內(nèi)容嗎,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

神經(jīng)網(wǎng)絡理論基礎及Python實現(xiàn)詳解

神經(jīng)網(wǎng)絡python源碼分享

70行Java代碼實現(xiàn)深度神經(jīng)網(wǎng)絡算法分享

如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關文章

  • PyTorch中的squeeze()和unsqueeze()解析與應用案例

    PyTorch中的squeeze()和unsqueeze()解析與應用案例

    這篇文章主要介紹了PyTorch中的squeeze()和unsqueeze()解析與應用案例,文章內(nèi)容介紹詳細,需要的小伙伴可以參考一下,希望對你有所幫助
    2022-03-03
  • python?Tkinter模塊使用方法詳解

    python?Tkinter模塊使用方法詳解

    Python的GUI庫非常多,之所以選擇 Tkinter,一是最為簡單,二是自帶庫,不需下載安裝,隨時使用,跨平臺兼容性非常好,下面這篇文章主要給大家介紹了關于python?Tkinter模塊使用方法的相關資料,需要的朋友可以參考下
    2022-04-04
  • python holidays獲取中國節(jié)日的示例

    python holidays獲取中國節(jié)日的示例

    在Python中,holidays庫是一個流行的庫,用于處理各種國家和地區(qū)的公共假期,這篇文章主要介紹了python holidays獲取中國節(jié)日,需要的朋友可以參考下
    2024-06-06
  • python實現(xiàn)水印圖片功能

    python實現(xiàn)水印圖片功能

    這篇文章主要為大家詳細介紹了python實現(xiàn)水印圖片功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Python中Parsel的兩種數(shù)據(jù)提取方式詳解

    Python中Parsel的兩種數(shù)據(jù)提取方式詳解

    在網(wǎng)絡爬蟲的世界中,數(shù)據(jù)提取是至關重要的一環(huán),Python 提供了許多強大的工具,其中之一就是 parsel 庫,下面我們就來深入學習一下Parsel的兩種數(shù)據(jù)提取方式吧
    2023-12-12
  • Python多線程編程(六):可重入鎖RLock

    Python多線程編程(六):可重入鎖RLock

    這篇文章主要介紹了Python多線程編程(六):可重入鎖RLock,本文直接給出使用實例,然后講解如何使用RLock避免死鎖,需要的朋友可以參考下
    2015-04-04
  • Pyqt5實戰(zhàn)小案例之界面與邏輯分離的小計算器程序

    Pyqt5實戰(zhàn)小案例之界面與邏輯分離的小計算器程序

    網(wǎng)上很多PyQt5信號槽與界面分離的例子,但是真正開發(fā)起來很不方便,下面這篇文章主要給大家介紹了關于Pyqt5實戰(zhàn)小案例之界面與邏輯分離的小計算器程序,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • python 安全地刪除列表元素的方法

    python 安全地刪除列表元素的方法

    這篇文章主要介紹了python 安全地刪除列表元素的方法,分享的方法有 創(chuàng)建新列表,過濾元素和列表副本上迭代,下面相關內(nèi)容需要的小伙伴可以參考一下
    2022-03-03
  • Python之列表推導式最全匯總(上篇)

    Python之列表推導式最全匯總(上篇)

    這篇文章主要介紹了Python之列表推導式最全匯總(上篇),本文章內(nèi)容詳細,通過案例可以更好的理解列表推導式的相關知識,本模塊分為了三部分,本次為上篇,需要的朋友可以參考下
    2023-01-01
  • 利用python將xml文件解析成html文件的實現(xiàn)方法

    利用python將xml文件解析成html文件的實現(xiàn)方法

    下面小編就為大家分享一篇利用python將xml文件解析成html文件的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12

最新評論