① BP神經網路的原理的BP什麼意思
原文鏈接:http://tecdat.cn/?p=19936
在本教程中,您將學習如何在R語言中創建神經網路模型。
神經網路(或人工神經網路)具有通過樣本進行學習的能力。人工神經網路是一種受生物神經元系統啟發的信息處理模型。它由大量高度互連的處理元件(稱為神經元)組成,以解決問題。它遵循非線性路徑,並在整個節點中並行處理信息。神經網路是一個復雜的自適應系統。自適應意味著它可以通過調整輸入權重來更改其內部結構。
該神經網路旨在解決人類容易遇到的問題和機器難以解決的問題,例如識別貓和狗的圖片,識別編號的圖片。這些問題通常稱為模式識別。它的應用范圍從光學字元識別到目標檢測。
本教程將涵蓋以下主題:
神經網路概論
正向傳播和反向傳播
激活函數
R中神經網路的實現
案例
利弊
結論
神經網路概論
神經網路是受人腦啟發執行特定任務的演算法。它是一組連接的輸入/輸出單元,其中每個連接都具有與之關聯的權重。在學習階段,網路通過調整權重進行學習,來預測給定輸入的正確類別標簽。
人腦由數十億個處理信息的神經細胞組成。每個神經細胞都認為是一個簡單的處理系統。被稱為生物神經網路的神經元通過電信號傳輸信息。這種並行的交互系統使大腦能夠思考和處理信息。一個神經元的樹突接收來自另一個神經元的輸入信號,並根據這些輸入將輸出響應到某個其他神經元的軸突。
創建測試數據集
創建測試數據集:專業知識得分和溝通技能得分
預測測試集的結果
使用計算函數預測測試數據的概率得分。
現在,將概率轉換為二進制類。
預測結果為1,0和1。
利弊
神經網路更靈活,可以用於回歸和分類問題。神經網路非常適合具有大量輸入(例如圖像)的非線性數據集,可以使用任意數量的輸入和層,可以並行執行工作。
還有更多可供選擇的演算法,例如SVM,決策樹和回歸演算法,這些演算法簡單,快速,易於訓練並提供更好的性能。神經網路更多的是黑盒子,需要更多的開發時間和更多的計算能力。與其他機器學習演算法相比,神經網路需要更多的數據。NN僅可用於數字輸入和非缺失值數據集。一位著名的神經網路研究人員說:「神經網路是解決任何問題的第二好的方法。最好的方法是真正理解問題。」
神經網路的用途
神經網路的特性提供了許多應用方面,例如:
模式識別:神經網路非常適合模式識別問題,例如面部識別,物體檢測,指紋識別等。
異常檢測:神經網路擅長異常檢測,它們可以輕松檢測出不適合常規模式的異常模式。
時間序列預測:神經網路可用於預測時間序列問題,例如股票價格,天氣預報。
自然語言處理:神經網路在自然語言處理任務中提供了廣泛的應用,例如文本分類,命名實體識別(NER),詞性標記,語音識別和拼寫檢查。
最受歡迎的見解
1.r語言用神經網路改進nelson-siegel模型擬合收益率曲線分析
2.r語言實現擬合神經網路預測和結果可視化
3.python用遺傳演算法-神經網路-模糊邏輯控制演算法對樂透分析
4.用於nlp的python:使用keras的多標簽文本lstm神經網路分類
5.用r語言實現神經網路預測股票實例
6.R語言基於Keras的小數據集深度學習圖像分類
7.用於NLP的seq2seq模型實例用Keras實現神經機器翻譯
8.python中基於網格搜索演算法優化的深度學習模型分析糖
9.matlab使用貝葉斯優化的深度學習
② 循環神經網路(RNN)簡介
循環神經網路英文名稱為 ( Recurrent Neural Network, RNN ),其通過使用帶自反饋的神經元,能夠處理任意長度的 時序 數據。
給定輸入時序序列
式中, 表示一段時序數據, 為時間長度
以一段英文段落為例,其時序數據可以表示為:
若是一段視頻,將其每一幀通過CNN網路處理得到相應的編碼向量
循環神經網路通過以下公式更新隱藏層的活性值
循環神經網路圖示
RNN的基本模型如下圖所示,為便於理解,圖中將RNN的模型展開,按照時序方向對其前向傳播流程進行介紹
RNN的基本模型
利用數學表達式整個過程可以變得更加清晰,RNN的前向傳播公式如下:
將上述過程整合到一個RNN cell中,可以表示為如下圖所示的過程:
RNN的前向傳播示意圖
缺陷:
沒有利用到模型後續的信息,可以通過雙向RNN網路進行優化
RNN主要有兩種計算梯度的方式:隨時間反向傳播(BPTT)和實時循環學習法(RTRL)演算法
本文中主要介紹隨時間反向傳播的方法 ( BackPropagation Through Time )
RNN的損失函數與任務有關,對於同步的序列對序列任務,其loss可以用交叉熵公式表示
然後通過BPTT演算法便可以進行梯度的反向傳播計算
梯度爆炸的解決方法:梯度修剪
梯度消失的解決方法:增加長程依賴 LSTM,GRU
GRU的基本思路:增加相關門(Relate Gate)和更新門(Update Gate),進而使得RNN單元具有記憶能力
首先從數學角度對GRU的前向傳播過程進行介紹,具體公式如下:
公式中各變數的含義:
將上述數學公式轉化為圖像,可得
GRU Cell的前向傳播流程
LSTM意為長短時記憶網路 (Long Short-Term Memory Network,LSTM) ,可以有效地解決簡單神經網路的梯度消失和爆炸問題
在LSTM中,與GRU主要有兩點不同
同樣,先從數學公式入手,對LSTM的前向傳播過程進行了解
基於數學公式的過程,可將LSTM CELL的前向傳播過程總結為(圖片借用於nndl):
LSTM Cell的前向傳播示意圖
從上圖中可以看出,LSTM在前向傳播的過程中傳輸了兩個狀態:內部狀態 以及外部狀態 ,在整個傳播過程中 外部狀態(隱狀態) 每個時刻都會被重寫,因此可以看作一種 短時記憶 ,而 內部狀態 可以在某個時刻捕捉一些關鍵信息,並將此信息保存一段時間間隔,可以看作一種 長時記憶 (長的短時記憶)
此外,在LSTM網路初始化訓練的時候,需要手動將遺忘門的數值設置的大一些,否則在參數初始化的時候,遺忘門的數據會被初始化為一個很小的值,前一時刻的內部狀態 大部分都會丟失,這樣網路很難獲取到長距離的依賴信息,並且相鄰時間間隔的梯度會非常小,導致 梯度彌散 問題,因此遺忘門的 偏置變數 的初始值 一般很大,取 1或2
將 設置為1即可,但是長度非常的大的時候會造成記憶單元的飽和,降低性能
三個門不僅依賴於 和 ,也依賴於
將兩者合並為一個門,即:
首先,我們要理解什麼是深層的RNN,對於單個的RNN cell,若將其在時間維度上展開,其深度與時間維度的長度成正比,但若將一個RNN cell看作為單個從 的映射函數,則單個cell實際上是很淺顯的一層,因此深層循環神經網路要做的就是把多個RNN cell組合起來,換句話說,就是增加從輸入 到輸出 的路徑,使得網路的深度更深。
如何增加從輸入 到輸出 的路徑呢?兩種途徑:
堆疊循環神經網路示意圖
將網路帶入到實際應用場景中:假如我們要翻譯一段句子
在這里,is和are實際上是由後面的Lucy和they所決定的,而這種單向的按照時序進行傳播的方式沒有利用到後面的信息。因此誕生了雙向循環網路
雙向循環神經網路示意圖
雙向循環神經網路實際上就是簡單的雙層循環神經網路,只不過第二層網路的傳播方式為按時序的逆向傳播,其傳播公式為: