人工智慧-深度學習-神經網絡結構MLP,CNN,RNN,LSTM

2020-12-05 製造業企業信息化

人工神經網絡、激活函數、代價函數、梯度下降、反向傳播是深度學習的幾個關鍵點;常見的深度學習神經網絡結構有多層感知器MLP、CNN、RNN、LSTM等。不管是哪種網絡結構,其根本還是從傳統的神經網絡、多層感知機發展而來的,介紹如下:

MLP-Multilayer Perceptron 多層感知器

也叫人工神經網絡(ANN,Artificial Neural Network),除了輸入輸出層,它中間可以有多個隱層,最簡單的MLP只含一個隱層,即三層的結構,如下圖:

多層感知機層與層之間是全連接的。多層感知機最底層是輸入層,中間是隱藏層,最後是輸出層

輸入層:你輸入什麼就是什麼,比如輸入是一個n維向量,就有n個神經元。

隱藏層:其神經元與輸入層是全連接的,假設輸入層用向量X表示,則隱藏層的輸出就是 f (W1X+b1),W1是權重(也叫連接係數),b1是偏置,函數f 可以是常用的sigmoid函數或者tanh函數(如下圖)。

輸出層:隱藏層到輸出層可以看成是一個多類別的邏輯回歸,也即softmax回歸,所以輸出層的輸出就是softmax(W2X1+b2),X1表示隱藏層的輸出f(W1X+b1)。

函數是sigmoid函數的一種變體,它的取值範圍為

,而不是sigmoid函數的

DNN-可以理解為有很多隱藏層的神經網絡,有時也叫做多層感知機(Multi-Layer perceptron,MLP)

CNN-Convolutional Neural Networks 卷積神經網絡

由具有可學習的權重和偏置常量(biases)的神經元組成。每個神經元都接收一些輸入,並做一些點積計算,輸出是每個分類的分數

卷積神經網絡默認輸入是圖像,可以讓我們把特定的性質編碼入網絡結構,使是我們的前饋函數更加有效率,並減少了大量參數。

卷積神經網絡利用輸入圖片的特點,把神經元設計成三個維度 :width, height, depth(注意這個depth不是神經網絡的深度,而是用來描述神經元的) 。比如輸入的圖片大小是 32 × 32 × 3 (rgb),那麼輸入神經元就也具有 32×32×3 的維度。下面是圖解:

一個卷積神經網絡由很多層組成,它們的輸入是三維的,輸出也是三維的,有的層有參數,有的層不需要參數。

卷積神經網絡通常包含以下幾種層:

卷積層(Convolutional layer),卷積神經網路中每層卷積層由若干卷積單元組成,每個卷積單元的參數都是通過反向傳播算法優化得到的。卷積運算的目的是提取輸入的不同特徵,第一層卷積層可能只能提取一些低級的特徵如邊緣、線條和角等層級,更多層的網絡能從低級特徵中迭代提取更複雜的特徵。卷積層的神經元也是三維的,所以也具有深度。卷積層的參數包含一系列過濾器(filter),每個過濾器訓練一個深度,有幾個過濾器輸出單元就具有多少深度。具體如下圖所示,樣例輸入單元大小是32×32×3, 輸出單元的深度是5, 對於輸出單元不同深度的同一位置,與輸入圖片連接的區域是相同的,但是參數(過濾器)不同。

雖然每個輸出單元只是連接輸入的一部分,但是值的計算方法是沒有變的,都是權重和輸入的點積,然後加上偏置,這點與普通神經網絡是一樣的,如下圖所示:

線性整流層(Rectified Linear Units layer, ReLU layer),這一層神經的活性化函數(Activation function)使用線性整流(Rectified Linear Units, ReLU)。池化層(Pooling layer),通常在卷積層之後會得到維度很大的特徵,將特徵切成幾個區域,取其最大值或平均值,得到新的、維度較小的特徵。最常見的池化層是規模為2*2, 步幅為2,對輸入的每個深度切片進行下採樣。每個MAX操作對四個數進行,如下圖所示:

池化操作將保存深度大小不變。如果池化層的輸入單元大小不是二的整數倍,一般採取邊緣補零(zero-padding)的方式補成2的倍數,然後再池化。

全連接層( Fully-Connected layer), 把所有局部特徵結合變成全局特徵,用來計算最後每一類的得分。一個卷積神經網絡各層應用實例:

RNN-Recurrent Neural Networks, 循環神經網絡

人對一個問題的思考不會完全從頭開始。比如你想對電影中的每個片段去做事件分類,傳統的神經網絡是很難通過利用前面的事件信息來對後面事件進行分類。循環神經網絡(下面簡稱RNNs)可以通過不停的將信息循環操作,保證信息持續存在,從而解決上述問題。RNNs如下圖所示

將RNNs的自循環結構展開,像是將同一個網絡複製並連成一條線的結構,將自身提取的信息傳遞給下一個繼承者,如下圖所示。

LSTM-Long Short Term Memory networks

LSTM特殊的RNNs網絡結構, 該網絡設計出來是為了解決長依賴問題。

在標準的RNN中,重複模塊將具有非常簡單的結構,例如單個tanh層。標準的RNN網絡如下圖所示:

LSTMs也具有這種鏈式結構,但是它的重複單元內部有四個網絡層。LSTMs的結構如下圖所示。

各個符號的含義:黃色類似於激活函數操作,粉色圓圈表示點操作,單箭頭表示數據流向,箭頭合併表示向量的合併(concat)操作,箭頭分叉表示向量的拷貝操作。

LSTMs的核心是細胞狀態,用貫穿細胞的水平線表示

細胞狀態像傳送帶一樣。它貫穿整個細胞卻只有很少的分支,這樣能保證信息不變的流過整個RNNs。細胞狀態如下圖所示:

LSTM網絡能通過一種被稱為門的結構對細胞狀態進行刪除或者添加信息。

門能夠有選擇性的決定讓哪些信息通過。其實門的結構很簡單,就是一個sigmoid層和一個點操作的組合。如下圖所示

因為sigmoid層的輸出是0-1的值,這代表有多少信息能夠流過sigmoid層。0表示都不能通過,1表示都能通過。

一個LSTM裡面包含三個門來控制細胞狀態,這三個門分別稱為忘記門、輸入門和輸出門

忘記門

:LSTM的第一步就是決定細胞狀態需要丟棄哪些信息。這部分操作是通過一個稱為忘記門的sigmoid單元來處理的。它通過查看

信息來輸出一個0-1之間的向量,該向量裡面的0-1值表示細胞狀態

中的哪些信息保留或丟棄多少。0表示不保留,1表示都保留。忘記門如下圖所示。

輸入門:

下一步是決定給細胞狀態添加哪些新的信息。這一步又分為兩個步驟,首先,利用

通過一個稱為輸入門的操作來決定更新哪些信息。然後利用

通過一個tanh層得到新的候選細胞信息

,這些信息可能會被更新到細胞信息中。這兩步描述如下圖所示。

下面將更新舊的細胞信息

,變為新的細胞信息

。更新的規則就是通過忘記門選擇忘記舊細胞信息的一部分,通過輸入門選擇添加候選細胞信息

的一部分得到新的細胞信息

。更新操作如下圖所示

輸出門

更新完細胞狀態後需要根據輸入的

來判斷輸出細胞的哪些狀態特徵,這裡需要將輸入經過一個稱為

輸出門的sigmoid層

得到判斷條件,然後將細胞狀態經過tanh層得到一個-1~1之間值的向量,該向量與輸出門得到的判斷條件相乘就得到了最終該RNN單元的輸出。該步驟如下圖所示

拿語言模型來舉例說明,在預測動詞形式的時候,我們需要通過輸入的主語是單數還是複數來推斷輸出門輸出的預測動詞是單數形式還是複數形式。

神經網絡的基礎在於神經元。神經元是以生物神經系統的神經細胞為基礎的生物模型。把神經元數學化,從而產生了神經元數學模型。大量的形式相同的神經元連結在—起就組成了神經網絡。神經網絡是一個高度非線性動力學系統。

相關焦點

  • 人工智慧黑盒揭秘:深度神經網絡可視化技術
    但深度神經網絡又被稱為「黑盒」模型,多層隱藏結構,數據 / 特徵矢量化,海量決策關鍵元等因素讓模型使用者犯難:模型決策的依據是什麼?應該相信模型麼?特別是對於金融,醫藥,生物等關鍵型任務,深度學習模型的弱解釋性成為人工智慧項目落地的最大障礙。
  • 理解神經網絡:從神經元到RNN、CNN、深度學習
    隨著時間的推移,證明了神經網絡在精度和速度方面,比其他的算法性能更好。並且形成了很多種類,像CNN(卷積神經網絡),RNN,自編碼,深度學習等等。神經網絡對於數據科學和或者機器學習從業者,就像線性回歸對於統計學家一樣。因此,對神經網絡是什麼有一個基本的理解是有必要的,比如,它是怎麼構成的,它能處理問題的範圍以及它的局限性是什麼。
  • 如何選擇分別在一個特定的工作空間中選擇人工智慧
    人工智慧目前仍然是以數據思維為核心,cnn/rnn/mlp/lstm等網絡結構還是相對傳統的數據處理/預處理方式,特別是tensorflow的源碼文件還在直接copy,所以學習了很多,但是總是感覺沒學到啥實用的東西。
  • CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?
    我還常常會見到另一個問題——神經網絡需要強大的計算能力,那麼當問題中只是存在一些細微差別時,使用神經網絡真的值得嗎?問題的答案很簡單——值得!深度學習中不同的神經網絡(如卷積神經網絡CNN、循環神經網絡RNN、人工神經網絡ANN)正在改變著我們與世界之間的交互方式。這些不同類型的神經網絡是深度學習革命的核心,為無人機、自動駕駛汽車、語音識別等應用提供了推動力。
  • 「句子級」的深度強化學習方法難以求解器空間
    近期,nlp領域發生了兩件大事,可以說影響了整個rl界,分別是spancer-in-rl(用端到端模型替代完全獨立的backpropagation)以及negowave(深度神經網絡變革rl)。這些方法似乎無一不推動了整個機器學習發展,深度學習從不是真正的機器學習。近期,湧現出不少rl方面的工作,如mnietal.
  • 用純NumPy碼一個RNN、LSTM:這是最好的入門方式了
    機器之心報導參與:思源隨著 TensorFlow 和 PyTorch 等框架的流行,很多時候搭建神經網絡也就調用幾行 API 的事。大多數開發者對底層運行機制,尤其是如何使用純 NumPy 實現神經網絡變得比較陌生。
  • 入門| CNN也能用於NLP任務,一文簡述文本分類任務的7個模型
    該模型有助於學習單詞形態結構以及與這個單詞大概率相鄰單詞的形態結構。 將這些屬性結合在一起。 現在要用到深度學習模型了。深度學習模型的表現優於詞袋模型是因為深度學習模型能夠捕捉到句子中單詞間的順序依賴關係。這可能要歸功於循環神經網絡這一特殊神經網絡結構的出現了。
  • 能實現比TensorFlow更好的深度學習嗎?
    作者:Max Woolf機器之心編譯參與:Jane W、吳攀Keras 是由 Franois Chollet 維護的深度學習高級開源框架,它的底層基於構建生產級質量的深度學習模型所需的大量設置和矩陣代數。Keras API 的底層基於像 Theano 或谷歌的 TensorFlow 的較低級的深度學習框架。
  • 人工智慧系列(六) 深度學習中的神經網絡
    原力君在系列的第五篇《人工智慧系列(五) 深度學習簡介》中提到深度學習可以看作是一種更高級的函數擬合方法;人工神經網絡、激活函數、代價函數、梯度下降、反向傳播是深度學習的幾個關鍵點;常見的深度學習神經網絡結構有多層感知機、DNN、CNN、RNN等。
  • 人工智慧、機器學習、神經網絡和深度學習之間是什麼樣的關係?
    ,深度學習之間的關係。神經網絡在之前有非常多的問題,層數無法深入過多,有太多的參數需要調節,樣本數據量過小等問題。總之,其之前是一門並不被看好的技術。直到2006年,Hinton在《Science》和相關期刊上發表了論文,首次提出了「深度信念網絡」的概念。  深度學習(DeepLearning)其實算是神經網絡的延伸,從概念被提出,逐漸的在人工智慧領域大顯身手。
  • 獨家 | NLP的深度學習:ANN,RNN和LSTM詳解!(附資源)
    它遠不及Siri或Alexa,但它卻能很好地說明:即使使用非常簡單的深度神經網絡架構,也可以獲得不錯的結果。在這篇文章中,我們將學習人工神經網絡,深度學習,遞歸神經網絡和長短期記憶網絡。在下一篇文章中,我們將在真實項目中利用它來回答問題在開始討論神經網絡之前,先仔細看看下面的圖像。
  • 深度學習概述:NLP vs CNN
    最初的人工智慧和深度學習算法比較簡單,就像我們所知的簡單感知器模型和單層神經網絡一樣。隨著時間的推移和更加專注的研究,我們已經擁有了具有多層結構的複雜神經網絡。一些公司在他們的軟體和服務中使用了LSTMs、GANs、變分自編碼器等算法。本文在以下部分列出了人工智慧領域當前最熱門的技術以及正在研究這些熱門技術的公司。
  • 教程| 如何使用TensorFlow構建、訓練和改進循環神經網絡
    目前有很多人工智慧應用都依賴於循環深度神經網絡,在谷歌(語音搜索)、百度(DeepSpeech)和亞馬遜的產品中都能看到RNN的身影。然而,當我們開始著手構建自己的 RNN 模型時,我們發現在使用神經網絡處理語音識別這樣的任務上,幾乎沒有簡單直接的先例可以遵循。
  • 教程 | 如何使用TensorFlow構建、訓練和改進循環神經網絡
    目前有很多人工智慧應用都依賴於循環深度神經網絡,在谷歌(語音搜索)、百度(DeepSpeech)和亞馬遜的產品中都能看到RNN的身影。然而,當我們開始著手構建自己的 RNN 模型時,我們發現在使用神經網絡處理語音識別這樣的任務上,幾乎沒有簡單直接的先例可以遵循。
  • 人工智慧之卷積神經網絡(CNN)
    前言:人工智慧機器學習有關算法內容,請參見公眾號「科技優化生活」之前相關文章。人工智慧之機器學習主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點探討一下卷積神經網絡(CNN)算法。^_^本文引用地址:http://www.eepw.com.cn/article/201806/381807.htm  20世紀60年代,Hubel和Wiesel在研究貓腦皮層中用於局部敏感和方向選擇的神經元時發現其獨特的網絡結構可以有效地降低反饋神經網絡的複雜性,繼而提出了卷積神經網絡CNN(Convolutional Neural Networks)。
  • 深度學習技術和卷積神經網絡(CNN)讓機器視覺識別更智能
    隨著人工智慧技術的進步,深度學習技術(DL)和卷積神經網絡技術(CNN)領域的人工智慧(AI)被引入到機器視覺圖像處理系統的應用中來,從而幫助機器學習和機器檢測缺陷更加高效,使機器視覺識別的過程更加精確。也讓使用這些技術的企業可以從智能化中獲得更高的生產經營效益。
  • 如何惹怒一位人工智慧(機器學習、深度學習、強化學習等)愛好者?
    「原來比我年輕的人也做出來了啊(黑化)我還是去找工作吧……」15天學會Python,30天學會機器學習!xxx學院精品機器學習課程,帶你走向高薪算法崗!年薪百萬不是夢!What is cnn?What is rnn?What is lstm?What is cv?What is nlp?What is machine learning?What is ai?What is what?I cannot open this pdf.
  • 精講深度學習RNN三大核心點,三分鐘掌握循環神經網絡
    每天給小編五分鐘,小編用自己的代碼,讓你輕鬆學習人工智慧。本文將剖析循環神經網絡(RNN)的工作原理,精講循環神經網絡的特點和實現方式。野蠻智能,小白也能看懂的人工智慧。循環神經網絡從何而來?所以學者們設計了神奇的循環神經網絡。循環神經網絡的最大創新點簡單來說,序列指的就是前因後果。這種分辨因果的能力,對於計算機的智能化具有重要意義,所以序列問題倍受計算機學界關注。為了解決序列問題,循環神經網絡在1982年被提出,由於當時計算能力不足,無法實現。
  • 在 TensorFlow 上使用 LSTM 進行情感分析
    在這篇教程中,我們將介紹如何將深度學習技術應用到情感分析中。該任務可以被認為是從一個句子,一段話,或者是從一個文檔中,將作者的情感分為積極的,消極的或者中性的。這篇教程由多個主題組成,包括詞向量,循環神經網絡和 LSTM。在了解這些概念之後,我們將在文章的最後給出完整的代碼。