91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

新手的你還在苦苦學習神經(jīng)網(wǎng)絡,看完本文相信你必會恍然大悟

人工智能實訓營 ? 2018-07-24 10:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


本文簡要介紹了什么是循環(huán)神經(jīng)網(wǎng)絡及其運行原理,并給出了一個 RNN 實現(xiàn)示例。


什么是循環(huán)神經(jīng)網(wǎng)絡(RNN)?它們?nèi)绾芜\行?可以用在哪里呢?本文試圖回答上述這些問題,還展示了一個 RNN 實現(xiàn) demo,你可以根據(jù)自己的需要進行擴展。


640?wx_fmt=png

循環(huán)神經(jīng)網(wǎng)絡架構


基礎知識。Python、CNN 知識是必備的。了解 CNN 的相關知識,是為了與 RNN 進行對比:RNN 為什么以及在哪些地方比 CNN 更好。


我們首先從「循環(huán)」(Recurrent)這個詞說起。為什么將其稱為循環(huán)?循環(huán)的意思是:


經(jīng)?;蛑貜统霈F(xiàn)


將這類神經(jīng)網(wǎng)絡稱為循環(huán)神經(jīng)網(wǎng)絡是因為它對一組序列輸入重復進行同樣的操作。本文后續(xù)部分將討論這種操作的意義。


我們?yōu)槭裁葱枰?RNN?


也許你現(xiàn)在想的是,已經(jīng)有像卷積網(wǎng)絡這樣表現(xiàn)非常出色的網(wǎng)絡了,為什么還需要其他類型的網(wǎng)絡呢?有一個需要用到 RNN 的特殊例子。為了解釋 RNN,你首先需要了解序列的相關知識,我們先來講一下序列。


序列是相互依賴的(有限或無限)數(shù)據(jù)流,比如時間序列數(shù)據(jù)、信息性的字符串、對話等。在對話中,一個句子可能有一個意思,但是整體的對話可能又是完全不同的意思。股市數(shù)據(jù)這樣的時間序列數(shù)據(jù)也是,單個數(shù)據(jù)表示當前價格,但是全天的數(shù)據(jù)會有不一樣的變化,促使我們作出買進或賣出的決定。



當輸入數(shù)據(jù)具有依賴性且是序列模式時,CNN 的結果一般都不太好。CNN 的前一個輸入和下一個輸入之間沒有任何關聯(lián)。所以所有的輸出都是獨立的。CNN 接受輸入,然后基于訓練好的模型輸出。如果你運行了 100 個不同的輸入,它們中的任何一個輸出都不會受之前輸出的影響。但想一下如果是文本生成或文本翻譯呢?所有生成的單詞與之前生成的單詞都是獨立的(有些情況下與之后的單詞也是獨立的,這里暫不討論)。所以你需要有一些基于之前輸出的偏向。這就是需要 RNN 的地方。RNN 對之前發(fā)生在數(shù)據(jù)序列中的事是有一定記憶的。這有助于系統(tǒng)獲取上下文。理論上講,RNN 有無限的記憶,這意味著它們有無限回顧的能力。通過回顧可以了解所有之前的輸入。但從實際操作中看,它只能回顧最后幾步。



本文僅為了與人類大體相關聯(lián),而不會做任何決定。本文只是基于之前關于該項目的知識做出了自己的判斷(我甚至尚未理解人類大腦的 0.1%)。


何時使用 RNN?


RNN 可用于許多不同的地方。下面是 RNN 應用最多的領域。


1. 語言建模和文本生成


給出一個詞語序列,試著預測下一個詞語的可能性。這在翻譯任務中是很有用的,因為最有可能的句子將是可能性最高的單詞組成的句子。


2. 機器翻譯


將文本內(nèi)容從一種語言翻譯成其他語言使用了一種或幾種形式的 RNN。所有日常使用的實用系統(tǒng)都用了某種高級版本的 RNN。


3. 語音識別


基于輸入的聲波預測語音片段,從而確定詞語。


4. 生成圖像描述


RNN 一個非常廣泛的應用是理解圖像中發(fā)生了什么,從而做出合理的描述。這是 CNN 和 RNN 相結合的作用。CNN 做圖像分割,RNN 用分割后的數(shù)據(jù)重建描述。這種應用雖然基本,但可能性是無窮的。


5. 視頻標記


可以通過一幀一幀地標記視頻進行視頻搜索。


深入挖掘


本文按照以下主題進行。每一部分都是基于之前的部分進行的,所以不要跳著讀。


  • 前饋網(wǎng)絡

  • 循環(huán)網(wǎng)絡

  • 循環(huán)神經(jīng)元

  • 基于時間的反向傳播(BPTT)

  • RNN 實現(xiàn)


前饋網(wǎng)絡入門


前饋網(wǎng)絡通過在網(wǎng)絡的每個節(jié)點上做出的一系列操作傳遞信息。前饋網(wǎng)絡每次通過每個層直接向后傳遞信息。這與其他循環(huán)神經(jīng)網(wǎng)絡不同。一般而言,前饋網(wǎng)絡接受一個輸入并據(jù)此產(chǎn)生輸出,這也是大多數(shù)監(jiān)督學習的步驟,輸出結果可能是一個分類結果。它的行為與 CNN 類似。輸出可以是以貓狗等作為標簽的類別。


前饋網(wǎng)絡是基于一系列預先標注過的數(shù)據(jù)訓練的。訓練階段的目的是減少前饋網(wǎng)絡猜類別時的誤差。一旦訓練完成,我們就可以用訓練后的權重對新批次的數(shù)據(jù)進行分類。


640?wx_fmt=png

一個典型的前饋網(wǎng)絡架構


還有一件事要注意。在前饋網(wǎng)絡中,無論在測試階段展示給分類器的圖像是什么,都不會改變權重,所以也不會影響第二個決策。這是前饋網(wǎng)絡和循環(huán)網(wǎng)絡之間一個非常大的不同。


與循環(huán)網(wǎng)絡不同,前饋網(wǎng)絡在測試時不會記得之前的輸入數(shù)據(jù)。它們始終是取決于時間點的。它們只會在訓練階段記得歷史輸入數(shù)據(jù)。


循環(huán)網(wǎng)絡


也就是說,循環(huán)網(wǎng)絡不僅將當前的輸入樣例作為網(wǎng)絡輸入,還將它們之前感知到的一并作為輸入。


我們試著建立了一個多層感知器。從簡單的角度講,它有一個輸入層、一個具備特定激活函數(shù)的隱藏層,最終可以得到輸出。


640?wx_fmt=png

多層感知器架構示例


如果在上述示例中的層數(shù)增加了,輸入層也接收輸入。那么第一個隱藏層將激活傳遞到下一個隱藏層上,依此類推。最后到達輸出層。每一個隱藏層都有自己的權重和偏置項?,F(xiàn)在問題變成了我們可以輸入到隱藏層嗎?


640?wx_fmt=png


每一層都有自己的權重(W)、偏置項(B)和激活函數(shù)(F)。這些層的行為不同,合并它們從技術層面上講也極具挑戰(zhàn)性。為了合并它們,我們將所有層的權重和偏置項替換成相同的值。如下圖所示:


640?wx_fmt=png


現(xiàn)在我們就可以將所有層合并在一起了。所有的隱藏層都可以結合在一個循環(huán)層中。所以看起來就像下圖:


640?wx_fmt=png


我們在每一步都會向隱藏層提供輸入?,F(xiàn)在一個循環(huán)神經(jīng)元存儲了所有之前步的輸入,并將這些信息和當前步的輸入合并。因此,它還捕獲到一些當前數(shù)據(jù)步和之前步的相關性信息。t-1 步的決策影響到第 t 步做的決策。這很像人類在生活中做決策的方式。我們將當前數(shù)據(jù)和近期數(shù)據(jù)結合起來,幫助解決手頭的特定問題。這個例子很簡單,但從原則上講這與人類的決策能力是一致的。這讓我非常想知道我們作為人類是否真的很智能,或者說我們是否有非常高級的神經(jīng)網(wǎng)絡模型。我們做出的決策只是對生活中收集到的數(shù)據(jù)進行訓練。那么一旦有了能夠在合理時間段內(nèi)存儲和計算數(shù)據(jù)的先進模型和系統(tǒng)時,是否可以數(shù)字化大腦呢?所以當我們有了比大腦更好更快的模型(基于數(shù)百萬人的數(shù)據(jù)訓練出的)時,會發(fā)生什么?


另一篇文章(https://deeplearning4j.org/lstm.html)的有趣觀點:人總是被自己的行為所困擾。


我們用一個例子來闡述上面的解釋,這個例子是預測一系列字母后的下一個字母。想象一個有 8 個字母的單詞 namaskar。


namaskar(合十禮):印度表示尊重的傳統(tǒng)問候或姿勢,將手掌合起置于面前或胸前鞠躬。


如果我們在向網(wǎng)絡輸入 7 個字母后試著找出第 8 個字母,會發(fā)生什么呢?隱藏層會經(jīng)歷 8 次迭代。如果展開網(wǎng)絡的話就是一個 8 層的網(wǎng)絡,每一層對應一個字母。所以你可以想象一個普通的神經(jīng)網(wǎng)絡被重復了多次。展開的次數(shù)與它記得多久之前的數(shù)據(jù)是直接相關的。


640?wx_fmt=gif


循環(huán)神經(jīng)網(wǎng)絡的運作原理


循環(huán)神經(jīng)元


這里我們將更深入地了解負責決策的實際神經(jīng)元。以之前提到的 namaskar 為例,在給出前 7 個字母后,試著找出第 8 個字母。輸入數(shù)據(jù)的完整詞匯表是 {n,a,m,s,k,r}。在真實世界中單詞或句子都會更復雜。為了簡化問題,我們用的是下面這個簡單的詞匯表。


640?wx_fmt=png


在上圖中,隱藏層或 RNN 塊在當前輸入和之前的狀態(tài)中應用了公式。在本例中,namaste 的字母 n 前面什么都沒有。所以我們直接使用當前信息推斷,并移動到下一個字母 a。在推斷字母 a 的過程中,隱藏層應用了上述公式結合當前推斷 a 的信息與前面推斷 n 的信息。輸入在網(wǎng)絡中傳遞的每一個狀態(tài)都是一個時間步或一步,所以時間步 t 的輸入是 a,時間步 t-1 的輸入就是 n。將公式同時應用于 n 和 a 后,就得到了一個新狀態(tài)。


用于當前狀態(tài)的公式如下所示:


640?wx_fmt=png


h_t 是新狀態(tài),h_t-1 是前一個狀態(tài)。x_t 是時間 t 時的輸入。在對之前的時間步應用了相同的公式后,我們已經(jīng)能感知到之前的輸入了。我們將檢查 7 個這樣的輸入,它們在每一步的權重和函數(shù)都是相同的。


現(xiàn)在試著以簡單的方式定義 f()。我們使用 tanh 激活函數(shù)。通過矩陣 W_hh 定義權重,通過矩陣 W_xh 定義輸入。公式如下所示:


640?wx_fmt=png


上例只將最后一步作為記憶,因此只與最后一步的數(shù)據(jù)合并。為了提升網(wǎng)絡的記憶能力,并在記憶中保留較長的序列,我們必須在方程中添加更多的狀態(tài),如 h_t-2、h_t-3 等。最后輸出可以按測試階段的計算方式進行計算:


640?wx_fmt=png


其中,y_t 是輸出。對輸出與實際輸出進行對比,然后計算出誤差值。網(wǎng)絡通過反向傳播誤差來更新權重,進行學習。本文后續(xù)部分會對反向傳播進行討論。


基于時間的反向傳播算法(BPTT)


本節(jié)默認你已經(jīng)了解了反向傳播概念。如果需要對反向傳播進行深入了解,請參閱鏈接:?http://cs231n.github.io/optimization-2/?。


現(xiàn)在我們了解了 RNN 是如何實際運作的,但是在實際工作中如何訓練 RNN 呢?該如何決定每個連接的權重呢?如何初始化這些隱藏單元的權重呢?循環(huán)網(wǎng)絡的目的是要準確地對序列輸入進行分類。這要靠誤差值的反向傳播和梯度下降來實現(xiàn)。但是前饋網(wǎng)絡中使用的標準反向傳播無法在此應用。


與有向無環(huán)的前饋網(wǎng)絡不同,RNN 是循環(huán)圖,這也是問題所在。在前饋網(wǎng)絡中可以計算出之前層的誤差導數(shù)。但 RNN 的層級排列與前饋網(wǎng)絡并不相同。


答案就在之前討論過的內(nèi)容中。我們需要展開網(wǎng)絡。展開網(wǎng)絡使其看起來像前饋網(wǎng)絡就可以了。


640?wx_fmt=png

展開 RNN


在每個時間步取出 RNN 的隱藏單元并復制。時間步中的每一次復制就像前饋網(wǎng)絡中的一層。在時間步 t+1 中每個時間步 t 層與所有可能的層連接。因此我們對權重進行隨機初始化,展開網(wǎng)絡,然后在隱藏層中通過反向傳播優(yōu)化權重。通過向最低層傳遞參數(shù)完成初始化。這些參數(shù)作為反向傳播的一部分也得到了優(yōu)化。


展開網(wǎng)絡的結果是,現(xiàn)在每一層的權重都不同,因此最終會得到不同程度的優(yōu)化。無法保證基于權重計算出的誤差是相等的。所以每一次運行結束時每一層的權重都不同。這是我們絕對不希望看到的。最簡單的解決辦法是以某種方式將所有層的誤差合并到一起??梢詫φ`差值取平均或者求和。通過這種方式,我們可以在所有時間步中使用一層來保持相同的權重。


RNN 實現(xiàn)


本文試著用 Keras 模型實現(xiàn) RNN。我們試著根據(jù)給定的文本預測下一個序列。


該模型是 Yash Katariya 建的。我對該模型做了一些細微的改動以適合本文的要求。



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

    關注

    165

    文章

    4797

    瀏覽量

    126045
  • 人工智能
    +關注

    關注

    1817

    文章

    50094

    瀏覽量

    265299
  • 機器學習
    +關注

    關注

    66

    文章

    8553

    瀏覽量

    136931
  • 機器識別
    +關注

    關注

    1

    文章

    15

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    神經(jīng)網(wǎng)絡的初步認識

    日常生活中的智能應用都離不開深度學習,而深度學習則依賴于神經(jīng)網(wǎng)絡的實現(xiàn)。什么是神經(jīng)網(wǎng)絡神經(jīng)網(wǎng)絡的核心思想是模仿生物
    的頭像 發(fā)表于 12-17 15:05 ?323次閱讀
    <b class='flag-5'>神經(jīng)網(wǎng)絡</b>的初步認識

    自動駕駛中常提的卷積神經(jīng)網(wǎng)絡是個啥?

    在自動駕駛領域,經(jīng)常會聽到卷積神經(jīng)網(wǎng)絡技術。卷積神經(jīng)網(wǎng)絡,簡稱為CNN,是一種專門用來處理網(wǎng)格狀數(shù)據(jù)(比如圖像)的深度學習模型。CNN在圖像處理中尤其常見,因為圖像本身就可以看作是由像素排列成的二維網(wǎng)格。
    的頭像 發(fā)表于 11-19 18:15 ?2072次閱讀
    自動駕駛中常提的卷積<b class='flag-5'>神經(jīng)網(wǎng)絡</b>是個啥?

    NMSIS神經(jīng)網(wǎng)絡庫使用介紹

    NMSIS NN 軟件庫是一組高效的神經(jīng)網(wǎng)絡內(nèi)核,旨在最大限度地提高 Nuclei N 處理器內(nèi)核上的神經(jīng)網(wǎng)絡的性能并最??大限度地減少其內(nèi)存占用。 該庫分為多個功能,每個功能涵蓋特定類別
    發(fā)表于 10-29 06:08

    在Ubuntu20.04系統(tǒng)中訓練神經(jīng)網(wǎng)絡模型的一些經(jīng)驗

    本帖欲分享在Ubuntu20.04系統(tǒng)中訓練神經(jīng)網(wǎng)絡模型的一些經(jīng)驗。我們采用jupyter notebook作為開發(fā)IDE,以TensorFlow2為訓練框架,目標是訓練一個手寫數(shù)字識別的神經(jīng)網(wǎng)絡
    發(fā)表于 10-22 07:03

    CICC2033神經(jīng)網(wǎng)絡部署相關操作

    在完成神經(jīng)網(wǎng)絡量化后,需要將神經(jīng)網(wǎng)絡部署到硬件加速器上。首先需要將所有權重數(shù)據(jù)以及輸入數(shù)據(jù)導入到存儲器內(nèi)。 在仿真環(huán)境下,可將其存于一個文件,并在 Verilog 代碼中通過 readmemh 函數(shù)
    發(fā)表于 10-20 08:00

    人工智能工程師高頻面試題匯總:循環(huán)神經(jīng)網(wǎng)絡篇(題目+答案)

    后臺私信雯雯老師,備注:循環(huán)神經(jīng)網(wǎng)絡,領取更多相關面試題隨著人工智能技術的突飛猛進,AI工程師成為了眾多求職者夢寐以求的職業(yè)。想要拿下這份工作,面試的時候得展示出不僅技術過硬,還得能解決問題。所以
    的頭像 發(fā)表于 10-17 16:36 ?703次閱讀
    人工智能工程師高頻面試題匯總:循環(huán)<b class='flag-5'>神經(jīng)網(wǎng)絡</b>篇(題目+答案)

    液態(tài)神經(jīng)網(wǎng)絡(LNN):時間連續(xù)性與動態(tài)適應性的神經(jīng)網(wǎng)絡

    1.算法簡介液態(tài)神經(jīng)網(wǎng)絡(LiquidNeuralNetworks,LNN)是一種新型的神經(jīng)網(wǎng)絡架構,其設計理念借鑒自生物神經(jīng)系統(tǒng),特別是秀麗隱桿線蟲的神經(jīng)結構,盡管這種微生物的
    的頭像 發(fā)表于 09-28 10:03 ?1198次閱讀
    液態(tài)<b class='flag-5'>神經(jīng)網(wǎng)絡</b>(LNN):時間連續(xù)性與動態(tài)適應性的<b class='flag-5'>神經(jīng)網(wǎng)絡</b>

    神經(jīng)網(wǎng)絡的并行計算與加速技術

    隨著人工智能技術的飛速發(fā)展,神經(jīng)網(wǎng)絡在眾多領域展現(xiàn)出了巨大的潛力和廣泛的應用前景。然而,神經(jīng)網(wǎng)絡模型的復雜度和規(guī)模也在不斷增加,這使得傳統(tǒng)的串行計算方式面臨著巨大的挑戰(zhàn),如計算速度慢、訓練時間長等
    的頭像 發(fā)表于 09-17 13:31 ?1124次閱讀
    <b class='flag-5'>神經(jīng)網(wǎng)絡</b>的并行計算與加速技術

    如何在機器視覺中部署深度學習神經(jīng)網(wǎng)絡

    圖 1:基于深度學習的目標檢測可定位已訓練的目標類別,并通過矩形框(邊界框)對其進行標識。 在討論人工智能(AI)或深度學習時,經(jīng)常會出現(xiàn)“神經(jīng)網(wǎng)絡”、“黑箱”、“標注”等術語。這些概念對非專業(yè)
    的頭像 發(fā)表于 09-10 17:38 ?900次閱讀
    如何在機器視覺中部署深度<b class='flag-5'>學習</b><b class='flag-5'>神經(jīng)網(wǎng)絡</b>

    無刷電機小波神經(jīng)網(wǎng)絡轉子位置檢測方法的研究

    摘要:論文通過對無刷電機數(shù)學模型的推導,得出轉角:與三相相電壓之間存在映射關系,因此構建了一個以三相相電壓為輸人,轉角為輸出的小波神經(jīng)網(wǎng)絡來實現(xiàn)轉角預測,并采用改進遺傳算法來訓練網(wǎng)絡結構與參數(shù),借助
    發(fā)表于 06-25 13:06

    神經(jīng)網(wǎng)絡專家系統(tǒng)在電機故障診斷中的應用

    摘要:針對傳統(tǒng)專家系統(tǒng)不能進行自學習、自適應的問題,本文提出了基于種經(jīng)網(wǎng)絡專家系統(tǒng)的并步電機故障診斷方法。本文將小波神經(jīng)網(wǎng)絡和專家系統(tǒng)相結合
    發(fā)表于 06-16 22:09

    神經(jīng)網(wǎng)絡RAS在異步電機轉速估計中的仿真研究

    眾多方法中,由于其結構簡單,穩(wěn)定性好廣泛受到人們的重視,且已被用于產(chǎn)品開發(fā)。但是MRAS仍存在在低速區(qū)速度估計精度下降和對電動機參數(shù)變化非常敏感的問題。本文利用神經(jīng)網(wǎng)絡的特點,使估計更為簡單、快速
    發(fā)表于 06-16 21:54

    基于FPGA搭建神經(jīng)網(wǎng)絡的步驟解析

    本文的目的是在一個神經(jīng)網(wǎng)絡已經(jīng)通過python或者MATLAB訓練好的神經(jīng)網(wǎng)絡模型,將訓練好的模型的權重和偏置文件以TXT文件格式導出,然后通過python程序將txt文件轉化為coe文件,(coe
    的頭像 發(fā)表于 06-03 15:51 ?1194次閱讀
    基于FPGA搭建<b class='flag-5'>神經(jīng)網(wǎng)絡</b>的步驟解析

    串口服務器究竟有何用途?看完這個恍然大悟了!

    在當今數(shù)字化快速發(fā)展的時代,串口服務器作為一種重要的網(wǎng)絡設備,正悄然在各個領域發(fā)揮著關鍵作用。今天,我們就來深入了解一下串口服務器究竟有何用途。 工業(yè)自動化領域:保障生產(chǎn)高效穩(wěn)定運行 在工業(yè)生產(chǎn)
    的頭像 發(fā)表于 03-25 12:43 ?778次閱讀

    神經(jīng)網(wǎng)絡壓縮框架 (NNCF) 中的過濾器修剪統(tǒng)計數(shù)據(jù)怎么查看?

    無法觀察神經(jīng)網(wǎng)絡壓縮框架 (NNCF) 中的過濾器修剪統(tǒng)計數(shù)據(jù)
    發(fā)表于 03-06 07:10