女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

3天內不再提示

CNN、RNN、DNN的內部網絡結構有什么區別?

mK5P_AItists ? 來源:YXQ ? 2019-06-05 11:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

神經網絡技術起源于上世紀五、六十年代,當時叫感知機(perceptron),擁有輸入層、輸出層和一個隱含層。輸入的特征向量通過隱含層變換達到輸出層,在輸出層得到分類結果。早期感知機的推動者是Rosenblatt。(扯一個不相關的:由于計算技術的落后,當時感知器傳輸函數是用線拉動變阻器改變電阻的方法機械實現的,腦補一下科學家們扯著密密麻麻的導線的樣子…)

但是,Rosenblatt的單層感知機有一個嚴重得不能再嚴重的問題,即它對稍復雜一些的函數都無能為力(比如最為典型的“異或”操作)。連異或都不能擬合,你還能指望這貨有什么實際用途么o(╯□╰)o

隨著數學的發展,這個缺點直到上世紀八十年代才被Rumelhart、Williams、Hinton、LeCun等人(反正就是一票大牛)發明的多層感知機(multilayer perceptron)克服。多層感知機,顧名思義,就是有多個隱含層的感知機(廢話……)。好好,我們看一下多層感知機的結構:

圖1:上下層神經元全部相連的神經網絡——多層感知機

多層感知機可以擺脫早期離散傳輸函數的束縛,使用sigmoid或tanh等連續函數模擬神經元對激勵的響應,在訓練算法上則使用Werbos發明的反向傳播BP算法。對,這貨就是我們現在所說的神經網絡NN——神經網絡聽起來不知道比感知機高端到哪里去了!這再次告訴我們起一個好聽的名字對于研(zhuang)究(bi)很重要!

多層感知機解決了之前無法模擬異或邏輯的缺陷,同時更多的層數也讓網絡更能夠刻畫現實世界中的復雜情形。相信年輕如Hinton當時一定是春風得意。

多層感知機給我們帶來的啟示是,神經網絡的層數直接決定了它對現實的刻畫能力——利用每層更少的神經元擬合更加復雜的函數[1]。

(Bengio如是說:functions that can be compactly represented by a depth k architecture might require an exponential number of computational elements to be represented by a depth k ? 1 architecture.)

即便大牛們早就預料到神經網絡需要變得更深,但是有一個夢魘總是縈繞左右。隨著神經網絡層數的加深,優化函數越來越容易陷入局部最優解,并且這個“陷阱”越來越偏離真正的全局最優。利用有限數據訓練的深層網絡,性能還不如較淺層網絡。同時,另一個不可忽略的問題是隨著網絡層數增加,“梯度消失”現象更加嚴重。具體來說,我們常常使用sigmoid作為神經元的輸入輸出函數。對于幅度為1的信號,在BP反向傳播梯度時,每傳遞一層,梯度衰減為原來的0.25。層數一多,梯度指數衰減后低層基本上接受不到有效的訓練信號。

2006年,Hinton利用預訓練方法緩解了局部最優解問題,將隱含層推動到了7層[2],神經網絡真正意義上有了“深度”,由此揭開了深度學習的熱潮。這里的“深度”并沒有固定的定義——在語音識別中4層網絡就能夠被認為是“較深的”,而在圖像識別中20層以上的網絡屢見不鮮。為了克服梯度消失,ReLU、maxout等傳輸函數代替了sigmoid,形成了如今DNN的基本形式。單從結構上來說,全連接的DNN和圖1的多層感知機是沒有任何區別的。

值得一提的是,今年出現的高速公路網絡(highway network)和深度殘差學習(deep residual learning)進一步避免了梯度消失,網絡層數達到了前所未有的一百多層(深度殘差學習:152層)[3,4]!具體結構題主可自行搜索了解。如果你之前在懷疑是不是有很多方法打上了“深度學習”的噱頭,這個結果真是深得讓人心服口服。

圖2:縮減版的深度殘差學習網絡,僅有34層,終極版有152層,自行感受一下

如圖1所示,我們看到全連接DNN的結構里下層神經元和所有上層神經元都能夠形成連接,帶來的潛在問題是參數數量的膨脹。假設輸入的是一幅像素為1K*1K的圖像,隱含層有1M個節點,光這一層就有10^12個權重需要訓練,這不僅容易過擬合,而且極容易陷入局部最優。另外,圖像中有固有的局部模式(比如輪廓、邊界,人的眼睛、鼻子、嘴等)可以利用,顯然應該將圖像處理中的概念和神經網絡技術相結合。此時我們可以祭出題主所說的卷積神經網絡CNN。對于CNN來說,并不是所有上下層神經元都能直接相連,而是通過“卷積核”作為中介。同一個卷積核在所有圖像內是共享的,圖像通過卷積操作后仍然保留原先的位置關系。

兩層之間的卷積傳輸的示意圖如下:

圖3:卷積神經網絡隱含層(摘自Theano教程

通過一個例子簡單說明卷積神經網絡的結構。假設圖3中m-1=1是輸入層,我們需要識別一幅彩色圖像,這幅圖像具有四個通道ARGB(透明度和紅綠藍,對應了四幅相同大小的圖像),假設卷積核大小為100100,共使用100個卷積核w1到w100(從直覺來看,每個卷積核應該學習到不同的結構特征)。用w1在ARGB圖像上進行卷積操作,可以得到隱含層的第一幅圖像;這幅隱含層圖像左上角第一個像素是四幅輸入圖像左上角100100區域內像素的加權求和,以此類推。同理,算上其他卷積核,隱含層對應100幅“圖像”。每幅圖像對是對原始圖像中不同特征的響應。按照這樣的結構繼續傳遞下去。CNN中還有max-pooling等操作進一步提高魯棒性。

圖4:一個典型的卷積神經網絡結構,注意到最后一層實際上是一個全連接層(摘自Theano教程)

在這個例子里,我們注意到輸入層到隱含層的參數瞬間降低到了100100100=10^6個!這使得我們能夠用已有的訓練數據得到良好的模型。題主所說的適用于圖像識別,正是由于CNN模型限制參數了個數并挖掘了局部結構的這個特點。順著同樣的思路,利用語音語譜結構中的局部信息,CNN照樣能應用在語音識別中。

全連接的DNN還存在著另一個問題——無法對時間序列上的變化進行建模。然而,樣本出現的時間順序對于自然語言處理、語音識別、手寫體識別等應用非常重要。對了適應這種需求,就出現了題主所說的另一種神經網絡結構——循環神經網絡RNN。

在普通的全連接網絡或CNN中,每層神經元的信號只能向上一層傳播,樣本的處理在各個時刻獨立,因此又被成為前向神經網絡(Feed-forward Neural Networks)。而在**RNN中,神經元的輸出可以在下一個時間戳直接作用到自身,即第i層神經元在m時刻的輸入,除了(i-1)層神經元在該時刻的輸出外,還包括其自身在(m-1)時刻的輸出!表示成圖就是這樣的:

圖5:RNN網絡結構

我們可以看到在隱含層節點之間增加了互連。為了分析方便,我們常將RNN在時間上進行展開,得到如圖6所示的結構:

圖6:RNN在時間上進行展開

Cool,(t+1)時刻網絡的最終結果O(t+1)是該時刻輸入和所有歷史共同作用的結果!這就達到了對時間序列建模的目的。

不知題主是否發現,RNN可以看成一個在時間上傳遞的神經網絡,它的深度是時間的長度!正如我們上面所說,“梯度消失”現象又要出現了,只不過這次發生在時間軸上。對于t時刻來說,它產生的梯度在時間軸上向歷史傳播幾層之后就消失了,根本就無法影響太遙遠的過去。因此,之前說“所有歷史”共同作用只是理想的情況,在實際中,這種影響也就只能維持若干個時間戳。

為了解決時間上的梯度消失,機器學習領域發展出了長短時記憶單元LSTM,通過門的開關實現時間上記憶功能,并防止梯度消失,一個LSTM單元長這個樣子:

圖7:LSTM的模樣

除了題主疑惑的三種網絡,和我之前提到的深度殘差學習、LSTM外,深度學習還有許多其他的結構。舉個例子,RNN既然能繼承歷史信息,是不是也能吸收點未來的信息呢?因為在序列信號分析中,如果我能預知未來,對識別一定也是有所幫助的。因此就有了雙向RNN、雙向LSTM,同時利用歷史和未來的信息。

圖8:雙向RNN

事實上,不論是那種網絡,他們在實際應用中常常都混合著使用,比如CNN和RNN在上層輸出之前往往會接上全連接層,很難說某個網絡到底屬于哪個類別。不難想象隨著深度學習熱度的延續,更靈活的組合方式、更多的網絡結構將被發展出來。盡管看起來千變萬化,但研究者們的出發點肯定都是為了解決特定的問題。如果想進行這方面的研究,不妨仔細分析一下這些結構各自的特點以及它們達成目標的手段。

入門的話可以參考:Ng寫的Ufldl:UFLDL教程 - Ufldl

也可以看Theano內自帶的教程,例子非常具體:Deep Learning Tutorials

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

    關注

    42

    文章

    4812

    瀏覽量

    103335
  • AI
    AI
    +關注

    關注

    88

    文章

    34917

    瀏覽量

    277943

原文標題:CNN、RNN、DNN的內部網絡結構有什么區別?

文章出處:【微信號:AItists,微信公眾號:人工智能學家】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    GD32與STM32什么區別

    電子發燒友網站提供《GD32與STM32什么區別.docx》資料免費下載
    發表于 04-03 17:27 ?0次下載

    私有云和公有云什么區別

    私有云和公有云在多個方面存在顯著的區別,以下是具體的比較,主機推薦小編為您整理發布私有云和公有云什么區別
    的頭像 發表于 02-20 10:38 ?688次閱讀

    AIGC和AI什么區別

    AIGC是AI在內容生成領域的一個特定應用方向,AI的技術發展為AIGC提供了基礎和支撐。那么,AIGC和AI什么區別呢?下面,AI部落小編帶您詳細了解。
    的頭像 發表于 02-20 10:33 ?786次閱讀

    BP神經網絡網絡結構設計原則

    BP(back propagation)神經網絡是一種按照誤差逆向傳播算法訓練的多層前饋神經網絡,其網絡結構設計原則主要基于以下幾個方面: 一、層次結構 輸入層 :接收外部輸入信號,不
    的頭像 發表于 02-12 16:41 ?716次閱讀

    RNN與LSTM模型的比較分析

    RNN(循環神經網絡)與LSTM(長短期記憶網絡)模型在深度學習領域都具有處理序列數據的能力,但它們在結構、功能和應用上存在顯著的差異。以下是對RN
    的頭像 發表于 11-15 10:05 ?2154次閱讀

    RNN模型與傳統神經網絡區別

    神經網絡是機器學習領域中的一種強大工具,它們能夠模擬人腦處理信息的方式。隨著技術的發展,神經網絡的類型也在不斷增加,其中循環神經網絡RNN)和傳統神經
    的頭像 發表于 11-15 09:42 ?1081次閱讀

    LSTM神經網絡與傳統RNN區別

    神經網絡RNNRNN的基本結構 RNN是一種特殊的神經網絡,它能夠處理序列數據。在
    的頭像 發表于 11-13 09:58 ?1171次閱讀

    RTOS與Linux到底什么區別

    很多做嵌入式開發的小伙伴都存在這樣的疑惑:RTOS與Linux到底什么區別
    的頭像 發表于 10-29 09:53 ?1230次閱讀

    請問ESPTOUCH和AIRKISS什么區別

    請問ESPTOUCH和AIRKISS什么區別?謝謝!
    發表于 07-12 12:44

    如何理解RNN與LSTM神經網絡

    的基本概念和應用背景。這兩種網絡結構都是深度學習領域中處理序列數據的重要工具,尤其在自然語言處理(NLP)、時間序列分析等領域展現出強大的能力。
    的頭像 發表于 07-09 11:12 ?1314次閱讀

    深度神經網絡(DNN)架構解析與優化策略

    深度神經網絡(Deep Neural Network, DNN)作為機器學習領域中的一種重要技術,以其強大的特征學習能力和非線性建模能力,在多個領域取得了顯著成果。DNN的核心在于其多層結構
    的頭像 發表于 07-09 11:00 ?3775次閱讀

    CNNRNN的關系?

    在深度學習的廣闊領域中,卷積神經網絡CNN)和循環神經網絡RNN)是兩種極為重要且各具特色的神經網絡模型。它們各自在圖像處理、自然語言處
    的頭像 發表于 07-08 16:56 ?1627次閱讀

    rnn是什么神經網絡模型

    RNN(Recurrent Neural Network,循環神經網絡)是一種具有循環結構的神經網絡模型,它能夠處理序列數據,并對序列中的元素進行建模。
    的頭像 發表于 07-05 09:50 ?1171次閱讀

    rnn是什么神經網絡

    時間步的輸入,從而實現對時間序列數據的處理。RNN的循環結構使得網絡能夠在處理當前時間步的數據時,考慮到之前
    的頭像 發表于 07-05 09:49 ?1327次閱讀

    遞歸神經網絡結構形式主要分為

    遞歸神經網絡(Recurrent Neural Networks,簡稱RNN)是一種具有時間序列處理能力的神經網絡,其結構形式多樣,可以根據不同的需求進行選擇和設計。本文將介紹遞歸神經
    的頭像 發表于 07-05 09:32 ?923次閱讀
    主站蜘蛛池模板: 腾冲县| 泊头市| 文昌市| 崇明县| 涿州市| 卢氏县| 沁阳市| 翼城县| 金坛市| 油尖旺区| 嘉定区| 伊通| 石首市| 新乡县| 缙云县| 广南县| 个旧市| 修武县| 逊克县| 龙泉市| 黔南| 磴口县| 栾城县| 南投市| 内丘县| 巴塘县| 黔西| 灌阳县| 开封县| 长海县| 海兴县| 凭祥市| 星子县| 新民市| 陆河县| 磐安县| 平乡县| 宁乡县| 泾阳县| 会泽县| 进贤县|