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

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

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

深度學習卷積神經(jīng)網(wǎng)絡和可視化學習

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

動機

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

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

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

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

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

學會看

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

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

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

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

可視化

對神經(jīng)網(wǎng)絡進行了五個時期的訓練,最小批量為1024個圖像,總共290個訓練步驟。 在每個步驟之后,將一組預先選擇的十個樣本圖像(每個數(shù)字之一)輸入模型,并保存每個卷積層的激活。 盡管tanh近年來它不再流行,而是支持更易于訓練的,但我還是決定將tanh用作卷積層中的激活函數(shù)。 這是因為tanh限制在-1和1之間,使其易于可視化。 將第一層的激活應用于紅藍色色圖時,結(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似乎已學會識別第一和第二通道的筆劃寬度,因為每個數(shù)字的內(nèi)部為深紅色,而外部為淺紅色。在第三和第四通道中,似乎已經(jīng)學會了邊緣的概念,其中數(shù)字為藍色,背景為粉紅色,數(shù)字邊緣為白色。然而,這些激活是深度學習規(guī)范所建議的一個長遠目標,那就是每個通道都將學習一個清晰而獨特的功能,例如垂直和水平邊緣。 Conv1在很大程度上復制帶有少量注釋的原始輸入。

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

Conv4: The same setup as Conv3.

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

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

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

不幸的是,Conv6文件太大,沒有上傳動圖。與Conv5相似,學習到的功能清晰可見,但是幾乎無法分辨出它們實際對應的含義。

Accuracy and loss (categorical_crossentropy) during training

得到教訓

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

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

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

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

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

    評論

    相關(guān)推薦

    BP神經(jīng)網(wǎng)絡深度學習的關(guān)系

    BP神經(jīng)網(wǎng)絡深度學習之間存在著密切的關(guān)系,以下是對它們之間關(guān)系的介紹: 一、BP神經(jīng)網(wǎng)絡的基本概念 BP神經(jīng)網(wǎng)絡,即反向傳播
    的頭像 發(fā)表于 02-12 15:15 ?434次閱讀

    深度學習中的卷積神經(jīng)網(wǎng)絡模型

    深度學習近年來在多個領(lǐng)域取得了顯著的進展,尤其是在圖像識別、語音識別和自然語言處理等方面。卷積神經(jīng)網(wǎng)絡作為深度
    的頭像 發(fā)表于 11-15 14:52 ?601次閱讀

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

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

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

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

    卷積神經(jīng)網(wǎng)絡與循環(huán)神經(jīng)網(wǎng)絡的區(qū)別

    深度學習領(lǐng)域,卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks, CNN)和循環(huán)神經(jīng)網(wǎng)絡(Recurrent Ne
    的頭像 發(fā)表于 07-03 16:12 ?4624次閱讀

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

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

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

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

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

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

    卷積神經(jīng)網(wǎng)絡訓練的是什么

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

    深度學習卷積神經(jīng)網(wǎng)絡的應用

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

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

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

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

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

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

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

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

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

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

    隨著大數(shù)據(jù)和計算機硬件技術(shù)的飛速發(fā)展,深度學習已成為人工智能領(lǐng)域的重要分支,而卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,簡稱CNN)作為
    的頭像 發(fā)表于 07-01 15:58 ?770次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品