女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

神經網絡的評估和內部狀態解析

zhKF_jqr_AI ? 2017-11-25 11:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文盡可能地減少使用數學公式,更多地基于可視化幫助讀者入門,一方面降低了對背景知識的要求,一方面也是因為用這種方式介紹神經網絡可能更易于理解。事實上,理解大部分機器學習的內容都只需要高中程度的數學知識,加上一點類比和抽象的能力。在此基礎上入門機器學習是可能的,也是很多人所盼望的(否則很多人可能就放棄接觸這個領域了)。

在本文中,我們將更仔細些地評估它的表現,同時查看它的內部狀態,以得到一些關于它是如何運作的直覺。在本文的后半部分,我們將嘗試在一個更復雜的數據集(狗、汽車和船舶)上訓練神經網絡,看看需要什么樣的革新能將我們的網絡提高一個等級。

可視化權重

讓我們來訓練一個分類MNIST手寫數字的網絡,和前一篇文章不同的是,我們直接映射輸入層到輸出層,不設置隱藏層。所以我們的網絡看起來像這樣。

用于MNIST的單層神經網絡。10個輸出神經元對應數字0-9

當我們向神經網絡輸入圖像時,我們通過將像素“展開”為一列神經元來可視化網絡,如下圖左半部分所示。讓我們集中注意力到第一個輸出神經元的連接,我們將這個神經元標記為z,并將每個輸入神經元和相應的權重標記為xi和wi。

我們并不展開像素,而是將權重看成一個28x28的網格,其中權重的排列方式與對應的像素完全一致。上圖右半部分和下圖看起來不同,但是它們都表達了相同的等式,即z = b + ∑ wx。

另一種可視化每個輸出神經元的像素權重乘積的方式

現在讓我們看一下基于這個架構的訓練好的網絡,同時可視化第一個輸出神經元接受的學習好的權重,這是負責歸類數字0的神經元。我們給它們標上顏色,最低的權重是黑色的,最高的則是白色。

可視化MNIST分類器0-神經元的權重

瞇起你的眼睛,右邊那個圖形看起來是不是有點像一個模糊的0?想一下這個神經元在做什么,這樣可以更容易理解為什么這個圖形是這個形狀。這個神經元“負責”歸類零,它的目標是輸出一個較高的值(如果數字是零)或一個較低的值(如果數字不是零)。它將較高的權重賦值給一些像素,在表示零的圖像中,這些像素通常趨向高值。通過這樣的方法,對于表示零的圖像,它可以得出較高的值。類似地,它將較低的權重賦值給一些像素,在表示非零的圖像中,這些像素通常趨向高值,而在表示零的圖像中,這些像素通常趨向低值。通過這樣的方法,對于表示非零的圖像,它可以得出較低的值。權重圖像中相對黑的中心源自這樣一個事實,表示零的圖像的像素在這個位置通常趨向于最低值(數字零當中的空洞),而表示其他數字的圖像的像素在這個位置通常有一個相對較高的值。

讓我們來看看所有10個輸出神經元學習到的權重。 正如我們所猜測的那樣,它們都看起來像是10個數字有些模糊的版本,看起來好像是我們平均了許多屬于每個數字類別的圖像。

可視化MNIST分類器所有輸出神經元的權重

假設輸入是表示數字2的圖像,我們可以預見負責歸類2的神經元的值應該較高,因為它的權重是這樣設定的:高權重傾向于賦值給在表示2的圖像中趨向于高值的像素。其他神經元的一些權重也會與高值像素一致,使得他們的分數也有所提高。然而,共同之處要少很多,并且這些圖像中的許多高值像素會被歸類2的神經元中的低權重所抵消。激活函數不會改變這一點,因為它是單調的,也就是說,輸入值越高,輸出值越高。

我們可以將這些權重解釋為輸出分類的模板。這真是引人入勝,因為我們從來沒有事先告訴過網絡這些數字是什么或者這些數字是什么意思,然而它們最終卻和這些分類的對象很相似。這暗示了神經網絡內部機制的特殊性:它們形成了訓練對象的表示,在簡單的分類或預測之外,這些表示還有其他作用。當我們開始研究卷積神經網絡時,我們將把這個表示能力提升至一個新等級,但就目前而言,讓我們不要過于超前了。

相比提供的答案,這引發了更多問題。例如,添加隱藏層時權重會發生什么變化?正如我們很快會看到的,這個問題的答案基于我們在前一節中以直觀的方式看到的東西。但在我們討論這一點之前,讓我們先檢視一下我們神經網絡的表現,特別是考慮它往往會造成哪些種類的錯誤。

0op5, 1 d14 17 2ga1n

有時候,我們的網絡會犯一些情有可原的錯誤。 在我看來,下面的第一個數字是9這一點并不是很明顯。有人可能很容易把它誤認為4,就像我們的網絡做的那樣。類似地,我們也可以理解為什么第二個數字3被網絡誤認為8。下面第三和第四個數字的錯誤更明顯。幾乎任何人都可以立刻認出它們分別是3和2,我們的機器卻把第一個數字誤認為5,對第二個數字是什么則毫無頭緒。

我們的單層MNIST網絡的一些錯誤。左邊兩個屬于可以理解的錯誤,右邊兩個則是明顯的錯誤

讓我們仔細看看上一篇的最后一個神經網絡的性能,它在MNIST數字上達到了90%的精確度。達到這個精確度的其中一個方法是查找一個混淆矩陣,這個矩陣將我們的預測分解成一張表格。在下面的混淆矩陣中,行對應MNIST數據集的實際標簽,列對應預測的標簽。例如,第4行(actual 3)、第6列(predicted 5)的單元格表示有71個3被我們的神經網絡誤標記為5。混淆矩陣的綠色對角線表示預測正確的數量,而其他所有單元格均表示錯誤的數量。

將每個單元格的頂部取樣填入混淆矩陣,我們可以得到一些很好的洞見。

MNIST混淆矩陣中網絡最自信的樣本

這給了我們一個網絡如何學習進行某種預測的印象。看前面兩列,我們看到,我們的網絡看起來在尋找大環形來預測0,尋找細線來預測1,如果其他數字碰巧具有這些特征,網絡會誤認。

玩壞我們的神經網絡

到目前為止,我們只討論了訓練識別手寫數字的神經網絡。我們從中獲得了許多洞見,但是我們選擇的卻是一個非常簡單的數據集,這給了我們很多優勢;我們只有10個分類,這些分類定義非常明確,其中的內部差異相對很小。在大多數現實世界的場景中,我們試圖在非常不理想的情況下分類圖像。 讓我們來看看同一個神經網絡在另一個數據集CIFAR-10上的表現。這個數據集包括6萬張32x32的彩色圖像,分屬10類:飛機、汽車、鳥、貓、鹿、狗、青蛙、馬、船和卡車。以下是CIFAR-10中的一些隨機樣本圖像。

現在,很明顯,我們必須面對這樣一個困境,這些圖像類別存在我們未曾應對過的差異。例如,貓可以面向不同的方向,具有不同的顏色和毛皮紋理,舒展或卷曲,還有許多其他我們在手寫數字上不曾遇到過的變體。貓的照片也會與其他物體混雜在一起,加劇問題的復雜程度。

果然,如果我們在這些圖像上訓練一個雙層神經網絡,我們的精確度只有37%。這還是要比隨機猜測好很多(精確度10%),但是遠遠低于我們的MNIST分類器達到的90%。使用卷積神經網絡后,我們將大大提升精確度,不管是MNIST還是CIFAR-10。目前而言,我們可以通過審查權重來更準確地了解普通神經網絡的缺陷。

讓我們重復先前的試驗,觀察一個不帶隱藏層的單層神經網絡的權重,只不過這次我們將訓練CIFAR-10中的圖像。權重顯示在下面。

可視化單層CIFAR-10分類器的權重

與MNIST的權重相比,明顯的特征更少,清晰度也低很多。某些細節確實有直覺上的意義,例如飛機和船舶圖像的外邊緣大多是藍色,反映了這些圖像的周圍傾向于是藍天或者水體。由于特定類別的權重圖像確實與屬于該類別的圖像的平均值相關,所以我們可以如先前一般期待斑點狀的平均顏色凸現出來。然而,由于CIFAR類的內部一致性要低很多,我們看到的界限清晰的“模板”相比MNIST要不明顯很多。

讓我們來看看與這個CIFAR-10分類器相關的混淆矩陣。

毫無意外,表現非常差,精確度只有37%。顯然,我們簡單的單層神經網絡不能應付這個復雜的數據集。我們可以引入一個隱藏層,多少改善一下表現。下一小節將分析這樣做的效果。

添加隱藏層

到目前為止,我們專注于輸入直接連接到輸出的單層神經網絡。隱藏層將如何影響我們的神經網絡?在我們的MNIST網絡中插入一個包含10個神經元的中間層看看。那么,現在我們的手寫數字分類神經網絡大概是這個樣子:

MNIST雙層神經網絡

上面提到的單層網絡的簡單模板象征不再適用于這種情況,因為784個輸入像素并沒有直接連接到輸出類。從某種意義上來說,我們過去“強制”我們原來的單層網絡去學習這些模板,因為每個權重直接連接到一個類別標簽,因而只影響該類別。但在我們現在引入的更復雜的網絡中,隱藏層的權重影響輸出層中所有10個神經元。那么我們應該期待這些權重看起來是什么樣子呢?

為了理解發生了什么,我們將像原來那樣可視化第一層中的權重,但是我們也會仔細查看他們的激活在第二層是如何合并的,從而得到類別分數。回顧一下前面提到的內容,如果圖像在很大程度上和過濾器相交感,那么圖像將在第一層的特定神經元中產生高激活。因此,隱藏層中的10個神經元反映了原始圖像中這10個特征的存在性。在輸出層中,對應于某個類別標簽的單個神經元,是前10次隱藏激活的加權組合。下圖展示了這一點。

讓我們先來看看上圖頂部的第一層權重。它們看起來很陌生,不再像圖像模板了。一些看起來像偽數字,其他看起來像數字的組成部分:半環、對角線、孔,等等。

過濾器圖像下面的行對應于我們的輸出神經元,每行代表一個圖像類別。條形代表隱藏層傳遞給10個過濾器的激活對應的權重。例如,0類似乎偏愛外緣的值較高的第一層過濾器(因為數字零傾向于如此)。它厭惡中間的像素的值較低的過濾器(通常對應數字零中間的孔)。1類幾乎與此正相反,鐘愛在中間的值較高的過濾器,你可能已經想到了,那里對應數字1的豎筆。

這種方法的優勢是靈活性。對于每個類別而言,更廣泛的輸入模式可以刺激相應的輸出神經元。每個類別都可以由前一個隱藏層的若干抽象特征或者它們的組合來觸發。從本質上講,我們可以學習不同種類的數字零,不同種類的數字一等等。對大多數任務而言,這通常能改善網絡的表現(盡管并不總是如此)。

特征和表示

讓我們概括一下我們在本文學到的內容。在單層和多層神經網絡中,每一層都有類似的功能;它將來自前一層的數據轉換為該數據的“高層”表示。“高層”的意思是它包含了這些數據更緊湊、更突出的表示,就像內容概要是書的“高層”表示一樣。例如,在上面提到的雙層網絡中,我們將“低層”像素映射到第一層網絡中數字(筆劃、圓圈等)的“高層”特征,然后將這些高層特征映射為下一層的更高層表示(實際數字)。這種將數據轉換成更小但更有意義的信息的觀念是機器學習的核心,也是神經網絡的主要功能。

通過在神經網絡中增加一個隱藏層,我們讓它有機會在多個抽象層次上學習特征。這給了我們數據的豐富表示,其中,較前的層包含低層特征,較后的層包含由前層特征組合而成的高層特征。

正如我們所看到的,隱藏層可以提高精確性,不過程度有限。隨著越來越多圖層的迅速增加,很快精確性就不能再提升了,而且這會帶來運算成本——我們不能簡單地要求我們的神經網絡在隱藏層中記憶圖像類別的每個可能版本。事實證明,使用卷積神經網絡是一個更好的方法。

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

    關注

    42

    文章

    4812

    瀏覽量

    103215

原文標題:初窺神經網絡內部機制

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    神經網絡教程(李亞非)

      第1章 概述  1.1 人工神經網絡研究與發展  1.2 生物神經元  1.3 人工神經網絡的構成  第2章人工神經網絡基本模型  2.1 MP模型  2.2 感知器模型  2.3
    發表于 03-20 11:32

    神經網絡簡介

    神經網絡簡介
    發表于 08-05 21:01

    遺傳算法 神經網絡 解析

    關于遺傳算法和神經網絡
    發表于 05-19 10:22

    神經網絡基本介紹

    神經網絡基本介紹
    發表于 01-04 13:41

    【PYNQ-Z2試用體驗】神經網絡基礎知識

    能在外界信息的基礎上改變內部結構,是一種自適應系統,通俗的講就是具備學習功能。現代神經網絡是一種非線性統計性數據建模工具。簡單來說,就是給定輸入,神經網絡經過一系列計算之后,輸出最終結果。這好比人的大腦
    發表于 03-03 22:10

    全連接神經網絡和卷積神經網絡有什么區別

    全連接神經網絡和卷積神經網絡的區別
    發表于 06-06 14:21

    卷積神經網絡如何使用

    卷積神經網絡(CNN)究竟是什么,鑒于神經網絡在工程上經歷了曲折的歷史,您為什么還會在意它呢? 對于這些非常中肯的問題,我們似乎可以給出相對簡明的答案。
    發表于 07-17 07:21

    【案例分享】ART神經網絡與SOM神經網絡

    今天學習了兩個神經網絡,分別是自適應諧振(ART)神經網絡與自組織映射(SOM)神經網絡。整體感覺不是很難,只不過一些最基礎的概念容易理解不清。首先ART神經網絡是競爭學習的一個代表,
    發表于 07-21 04:30

    解析深度學習:卷積神經網絡原理與視覺實踐

    解析深度學習:卷積神經網絡原理與視覺實踐
    發表于 06-14 22:21

    什么是LSTM神經網絡

    簡單理解LSTM神經網絡
    發表于 01-28 07:16

    基于FPGA的神經網絡的性能評估及局限性

    FPGA實現神經網絡關鍵問題分析基于FPGA的ANN實現方法基于FPGA的神經網絡的性能評估及局限性
    發表于 04-30 06:58

    基于光學芯片的神經網絡訓練解析,不看肯定后悔

    基于光學芯片的神經網絡訓練解析,不看肯定后悔
    發表于 06-21 06:33

    如何構建神經網絡

    原文鏈接:http://tecdat.cn/?p=5725 神經網絡是一種基于現有數據創建預測的計算系統。如何構建神經網絡神經網絡包括:輸入層:根據現有數據獲取輸入的層隱藏層:使用反向傳播優化輸入變量權重的層,以提高模型的預測
    發表于 07-12 08:02

    基于BP神經網絡的PID控制

    最近在學習電機的智能控制,上周學習了基于單神經元的PID控制,這周研究基于BP神經網絡的PID控制。神經網絡具有任意非線性表達能力,可以通過對系統性能的學習來實現具有最佳組合的PID控制。利用BP
    發表于 09-07 07:43

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

    。 遞歸神經網絡的概念 遞歸神經網絡是一種具有短期記憶功能的神經網絡,它能夠處理序列數據,如時間序列、文本、語音等。與傳統的前饋神經網絡不同,遞歸
    的頭像 發表于 07-04 14:54 ?1500次閱讀