0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)和可視化學(xué)習(xí)

汽車玩家 ? 來源:今日頭條 ? 作者:聞數(shù)起舞 ? 2020-05-03 18:02 ? 次閱讀

動(dòng)機(jī)

與其他機(jī)器學(xué)習(xí)技術(shù)相比,深度學(xué)習(xí)的主要優(yōu)勢(shì)在于它能夠自動(dòng)學(xué)習(xí)輸入數(shù)據(jù)的抽象表示。 但是,并非總是如此。 早在1969年,Minsky和Papert出版了一本書,該書(除其他事項(xiàng)外)證明了單層感知器(人工神經(jīng)網(wǎng)絡(luò)的祖先)無法解決XOR問題。 對(duì)于我們這些沒有計(jì)算機(jī)科學(xué)背景的人,XOR問題的任務(wù)是接受兩個(gè)二進(jìn)制輸入A和B,并且僅當(dāng)A或B中只有一個(gè)為真時(shí)才返回true,因此名稱為“ 異或”或XOR。 單層感知器無法解決此問題的原因是它們只能解析線性可分離的類。 如果要為XOR問題及其輸出繪制可能的輸入,則該空間應(yīng)如下所示:

The world’s worst game of tic-tac-toe (source: wikimedia commons)

現(xiàn)在,您可以在此圖像上繪制一條直線并將圓與十字分開嗎? 劇透:您不能,感知器也不能。 幸運(yùn)的是,勇敢的先驅(qū)者擁有將兩個(gè)感知器結(jié)合在一起的見識(shí),并且深度學(xué)習(xí)領(lǐng)域誕生了(或多或少)。 之所以可行,是因?yàn)樯窠?jīng)網(wǎng)絡(luò)的每一層都可以看作是前一層的嵌入。 盡管上圖中的圓圈和十字可能無法以其原始形式線性分離,但可以通過簡(jiǎn)單的編碼進(jìn)行線性分離。 拍攝圖像的左上角和右下角,并將它們保持在您的腦海中。 然后,借助您的想象力,將圖像對(duì)折至第三維的一半,將右上角拖出屏幕,然后將其向下壓回到左下角。 如果操作正確,它將看起來像這樣:

If you look closely, you may notice I’m not an artist

現(xiàn)在,您可以在此圖像上繪制一條直線并將圓與十字分開嗎? 我衷心希望如此。 這種獲取信息并將其編碼為其他更有用形式的動(dòng)作是神經(jīng)網(wǎng)絡(luò)擅長(zhǎng)的主要任務(wù)。 實(shí)際上,訓(xùn)練神經(jīng)網(wǎng)絡(luò)不是為了具有預(yù)測(cè)能力,而是為了發(fā)現(xiàn)它們所獲得的學(xué)習(xí)表現(xiàn),已經(jīng)成為深度學(xué)習(xí)研究的主要內(nèi)容。

學(xué)會(huì)看

卷積神經(jīng)網(wǎng)絡(luò)(CNN)是將深度學(xué)習(xí)應(yīng)用于圖像數(shù)據(jù)的最受歡迎的體系結(jié)構(gòu)。 簡(jiǎn)而言之,CNN可以學(xué)習(xí)許多過濾器,它們適用于圖像的每個(gè)像素及其層。 通過將這些過濾器應(yīng)用于圖像以及重復(fù)進(jìn)行下采樣,神經(jīng)網(wǎng)絡(luò)將學(xué)會(huì)在其第一層中識(shí)別簡(jiǎn)單的低層特征,并在其最后一層中識(shí)別復(fù)雜的高層特征。 至少,這就是通常的解釋方式。

Image Source: Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations, by Lee et al.

如您所見,模型學(xué)會(huì)了識(shí)別各種邊緣,然后識(shí)別出面部特征,然后識(shí)別出整個(gè)面部(去除了許多中間層)。 如果您使用Google“卷積神經(jīng)網(wǎng)絡(luò)層可視化”,則會(huì)發(fā)現(xiàn)大量上述圖片。 但是,我從未在訓(xùn)練過程中看到CNN圖層的可視化,所以我想我會(huì)看到它們的外觀。 在此探索中,我使用了常見的MNIST數(shù)據(jù)集,即一組60,000個(gè)黑白手繪數(shù)字,每個(gè)數(shù)字的高度和寬度為28像素。 我使用了一個(gè)簡(jiǎn)單的卷積模型,如下所示:

The network architecture, including 6 convolutional layers and 3 dense layers

可視化

對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行了五個(gè)時(shí)期的訓(xùn)練,最小批量為1024個(gè)圖像,總共290個(gè)訓(xùn)練步驟。 在每個(gè)步驟之后,將一組預(yù)先選擇的十個(gè)樣本圖像(每個(gè)數(shù)字之一)輸入模型,并保存每個(gè)卷積層的激活。 盡管tanh近年來它不再流行,而是支持更易于訓(xùn)練的,但我還是決定將tanh用作卷積層中的激活函數(shù)。 這是因?yàn)閠anh限制在-1和1之間,使其易于可視化。 將第一層的激活應(yīng)用于紅藍(lán)色色圖時(shí),結(jié)果如下:

Conv1: The input images (top row) and the activations of the four channels in convolutional layer 1. Activations range from +1 (blue) to 0 (white) to -1 (red). Frame (top left) is the number of training steps applied.

Conv1似乎已學(xué)會(huì)識(shí)別第一和第二通道的筆劃寬度,因?yàn)槊總€(gè)數(shù)字的內(nèi)部為深紅色,而外部為淺紅色。在第三和第四通道中,似乎已經(jīng)學(xué)會(huì)了邊緣的概念,其中數(shù)字為藍(lán)色,背景為粉紅色,數(shù)字邊緣為白色。然而,這些激活是深度學(xué)習(xí)規(guī)范所建議的一個(gè)長(zhǎng)遠(yuǎn)目標(biāo),那就是每個(gè)通道都將學(xué)習(xí)一個(gè)清晰而獨(dú)特的功能,例如垂直和水平邊緣。 Conv1在很大程度上復(fù)制帶有少量注釋的原始輸入。

Conv2: The same setup as Conv1.

與Conv1相似,Conv2也似乎正在再現(xiàn)原始輸入。 通道1、2和4彼此幾乎相同,并且與Conv1中看到的邊緣突出顯示行為幾乎相同,通道3只是輸入的模糊再現(xiàn)。

Conv3: The same setup as Conv1, except with eight channels instead of four. This layer has half the resolution as the original image, so activations were upscaled without interpolation for visualization.

在Conv3中,我們看到了可能是第一個(gè)真正了解的功能。在第六個(gè)通道中,在訓(xùn)練即將結(jié)束時(shí),我們看到數(shù)字是藍(lán)色的,大多數(shù)背景是粉紅色的,而數(shù)字每個(gè)部分正下方的背景是紅色。這表明該通道已學(xué)會(huì)識(shí)別水平邊緣的底部。同樣,第七個(gè)通道在每個(gè)數(shù)字上方都有紅色數(shù)字,粉紅色背景和白色水平邊緣。但是,其他通道似乎只是原始圖像的簡(jiǎn)單復(fù)制。

Conv4: The same setup as Conv3.

在Conv4中,我們看到了更清晰定義的功能。 特別是,我們看到了不同角度的邊緣。 第一,第二和第六通道標(biāo)識(shí)水平邊緣的頂部。 第三,第七和第八通道標(biāo)識(shí)對(duì)角線邊緣。 其他兩個(gè)通道是原始圖像的粗略復(fù)制。

Conv5: The same setup as Conv1, except with sixteen channels instead of four. This layer has one-quarter the resolution of the original image, so activations were upscaled without interpolation for visualization.

Conv5進(jìn)行了大幅下采樣,分辨率僅為7x7像素,但似乎具有有意義的特征提取。 在訓(xùn)練的最早步驟中,每個(gè)通道都是粉紅色的,幾乎沒有任何信息。 到了步驟70,該層已學(xué)會(huì)產(chǎn)生模糊地類似于輸入的斑點(diǎn)。 但是,在訓(xùn)練結(jié)束時(shí),通道之間已經(jīng)明顯地區(qū)分開,并且在激活方面顯示出急劇的變化。 由于分辨率低和我們稱之為獨(dú)立功能的糾結(jié),目前尚不清楚在這里學(xué)到了哪些功能,但是很顯然,這里的每個(gè)通道都有一些有用的功能。

Conv6: The gif was too large for Medium, so these are the activations after training has completed.

不幸的是,Conv6文件太大,沒有上傳動(dòng)圖。與Conv5相似,學(xué)習(xí)到的功能清晰可見,但是幾乎無法分辨出它們實(shí)際對(duì)應(yīng)的含義。

Accuracy and loss (categorical_crossentropy) during training

得到教訓(xùn)

那么這個(gè)故事的寓意是什么?我建議有三個(gè)。

首先,深度學(xué)習(xí)成果很少像教科書所建議的那樣清晰。許多教科書,包括深度學(xué)習(xí)(Goodfellow等人),都將低級(jí)卷積層比作Gabor濾鏡和其他手工制作計(jì)算機(jī)視覺濾鏡。盡管該模型在測(cè)試數(shù)據(jù)上的準(zhǔn)確性達(dá)到了95%以上,但是就特征提取而言,前四個(gè)卷積層所做的很少。當(dāng)然,對(duì)于一個(gè)非常簡(jiǎn)單的任務(wù)來說,這是一個(gè)非常簡(jiǎn)單的模型,而且為一個(gè)更艱巨的任務(wù)而訓(xùn)練的更復(fù)雜的模型可能至少學(xué)到了一些有用的低級(jí)功能,但是通常采用深度學(xué)習(xí)的方式進(jìn)行教學(xué)(在我的經(jīng)驗(yàn))表明,即使對(duì)于簡(jiǎn)單的任務(wù),特征的優(yōu)化和提取也是不可避免的;顯然不是這樣。

第二個(gè)教訓(xùn)是,學(xué)習(xí)的功能不太可能是人類可能會(huì)選擇的直觀,獨(dú)立的特質(zhì)。 Conv5和Conv6清楚地學(xué)到了一些東西,并且原始圖像的編碼方式使得網(wǎng)絡(luò)的密集層可以按數(shù)字類型對(duì)它們進(jìn)行分類,但是他們學(xué)會(huì)了檢測(cè)的內(nèi)容并不能立即顯而易見。 這是深度學(xué)習(xí)中的一個(gè)常見問題,尤其是在生成建模中,模型可能會(huì)學(xué)習(xí)將兩個(gè)或多個(gè)看似無關(guān)的特質(zhì)嵌入為單個(gè)功能。

這是第三課,這是我作為數(shù)據(jù)科學(xué)家在工作中每天都想起的一課,那就是可視化所有內(nèi)容。 我參加了這個(gè)項(xiàng)目,期望寫一篇非常不同的文章。 我很高興展示從低級(jí)邊緣檢測(cè)到高級(jí)循環(huán)和旋轉(zhuǎn)的網(wǎng)絡(luò)學(xué)習(xí)和優(yōu)化功能。 取而代之的是,我發(fā)現(xiàn)一個(gè)懶散的漫步,直到第11個(gè)小時(shí)才具有完善的功能。 最值得注意的是,我驚訝地發(fā)現(xiàn),一旦各層學(xué)會(huì)了輸入的某種表示形式,它們?cè)谟?xùn)練過程中幾乎就不會(huì)改變。 可視化增強(qiáng)了我對(duì)卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的理解。 希望您也從這里學(xué)到了一些東西。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用場(chǎng)景及優(yōu)缺點(diǎn)

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱CNNs)是一種深度學(xué)習(xí)架構(gòu),它在圖像識(shí)別、視頻分析、自然語(yǔ)言處理等領(lǐng)域有著廣泛的應(yīng)用。 一、
    的頭像 發(fā)表于 07-11 14:45 ?241次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本概念、原理及特點(diǎn)

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱CNN)是一種深度學(xué)習(xí)算法,它在圖像識(shí)別、視頻分析、自然語(yǔ)言處理等領(lǐng)域有著廣泛的應(yīng)用。本文將詳細(xì)介紹
    的頭像 發(fā)表于 07-11 14:38 ?384次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)原理

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語(yǔ)言處理等領(lǐng)域。本文將詳細(xì)介紹
    的頭像 發(fā)表于 07-03 10:49 ?387次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)和工作原理

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語(yǔ)言處理等領(lǐng)域。本文將詳細(xì)介紹
    的頭像 發(fā)表于 07-03 09:38 ?245次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)分類有哪些

    卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像分類、目標(biāo)檢測(cè)、語(yǔ)義分割等領(lǐng)域。本文將詳細(xì)介紹CNN在分類任務(wù)中的應(yīng)用,包括基本結(jié)構(gòu)、關(guān)鍵技術(shù)、常見
    的頭像 發(fā)表于 07-03 09:28 ?320次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的是什么

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語(yǔ)言處理等領(lǐng)域。本文將詳細(xì)介紹
    的頭像 發(fā)表于 07-03 09:15 ?219次閱讀

    深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用

    隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)作為其中的重要分支,已經(jīng)在多個(gè)領(lǐng)域取得了顯著的應(yīng)用成果。從圖像識(shí)
    的頭像 發(fā)表于 07-02 18:19 ?559次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的原理與實(shí)現(xiàn)

    1.卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語(yǔ)言處理等領(lǐng)域。
    的頭像 發(fā)表于 07-02 16:47 ?324次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)及其功能

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語(yǔ)言處理等領(lǐng)域。本文將詳細(xì)介紹
    的頭像 發(fā)表于 07-02 14:45 ?532次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的原理是什么

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、語(yǔ)音識(shí)別、自然語(yǔ)言處理等領(lǐng)域。本文將詳細(xì)介紹
    的頭像 發(fā)表于 07-02 14:44 ?350次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)和bp神經(jīng)網(wǎng)絡(luò)的區(qū)別

    化能力。隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,神經(jīng)網(wǎng)絡(luò)已經(jīng)成為人工智能領(lǐng)域的重要技術(shù)之一。卷積神經(jīng)網(wǎng)絡(luò)和BP神經(jīng)
    的頭像 發(fā)表于 07-02 14:24 ?1008次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)勢(shì)和應(yīng)用領(lǐng)域

    說到機(jī)器學(xué)習(xí),大相信大家自然而然想到的就是現(xiàn)在大熱的卷積神經(jīng)網(wǎng)絡(luò),或者換句話來說,深度學(xué)習(xí)網(wǎng)絡(luò)。對(duì)于這些
    的頭像 發(fā)表于 01-25 09:25 ?1794次閱讀
    <b class='flag-5'>卷積</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的優(yōu)勢(shì)和應(yīng)用領(lǐng)域

    詳解深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用

    處理技術(shù)也可以通過深度學(xué)習(xí)來獲得更優(yōu)異的效果,比如去噪、超分辨率和跟蹤算法等。為了跟上時(shí)代的步伐,必須對(duì)深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)技術(shù)有所
    的頭像 發(fā)表于 01-11 10:51 ?1595次閱讀
    詳解<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>、<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>與<b class='flag-5'>卷積</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的應(yīng)用

    卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)

    卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)? 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種基于深度
    的頭像 發(fā)表于 12-07 15:37 ?3748次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)通俗理解

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)是一類包含卷積計(jì)算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò)(Feed
    的頭像 發(fā)表于 11-26 16:26 ?887次閱讀