-
當前位置:首頁 > 創(chuàng)意學院 > 景觀設計 > 專題列表 > 正文
人工神經網絡的三種類型(人工神經網絡的三種類型是什么)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于人工神經網絡的三種類型的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關鍵詞,就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網頁版、PC客戶端
創(chuàng)意嶺作為行業(yè)內優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解相關業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、神經網絡模型-27種神經網絡模型們的簡介
【1】Perceptron(P) 感知機
【1】感知機
感知機是我們知道的最簡單和最古老的神經元模型,它接收一些輸入,然后把它們加總,通過激活函數并傳遞到輸出層。
【2】Feed Forward(FF)前饋神經網絡
【2】前饋神經網絡
前饋神經網絡(FF),這也是一個很古老的方法——這種方法起源于50年代。它的工作原理通常遵循以下規(guī)則:
1.所有節(jié)點都完全連接
2.激活從輸入層流向輸出,無回環(huán)
3.輸入和輸出之間有一層(隱含層)
在大多數情況下,這種類型的網絡使用反向傳播方法進行訓練。
【3】Radial Basis Network(RBF) RBF神經網絡
【3】RBF神經網絡
RBF 神經網絡實際上是 激活函數是徑向基函數 而非邏輯函數的FF前饋神經網絡(FF)。兩者之間有什么區(qū)別呢?
邏輯函數--- 將某個任意值映射到[0 ,... 1]范圍內來,回答“是或否”問題。適用于分類決策系統,但不適用于連續(xù)變量。
相反, 徑向基函數--- 能顯示“我們距離目標有多遠”。 這完美適用于函數逼近和機器控制(例如作為PID控制器的替代)。
簡而言之,RBF神經網絡其實就是, 具有不同激活函數和應用方向的前饋網絡 。
【4】Deep Feed Forword(DFF)深度前饋神經網絡
【4】DFF深度前饋神經網絡
DFF深度前饋神經網絡在90年代初期開啟了深度學習的潘多拉盒子。 這些依然是前饋神經網絡,但有不止一個隱含層 。那么,它到底有什么特殊性?
在訓練傳統的前饋神經網絡時,我們只向上一層傳遞了少量的誤差信息。由于堆疊更多的層次導致訓練時間的指數增長,使得深度前饋神經網絡非常不實用。 直到00年代初,我們開發(fā)了一系列有效的訓練深度前饋神經網絡的方法; 現在它們構成了現代機器學習系統的核心 ,能實現前饋神經網絡的功能,但效果遠高于此。
【5】Recurrent Neural Network(RNN) 遞歸神經網絡
【5】RNN遞歸神經網絡
RNN遞歸神經網絡引入不同類型的神經元——遞歸神經元。這種類型的第一個網絡被稱為約旦網絡(Jordan Network),在網絡中每個隱含神經元會收到它自己的在固定延遲(一次或多次迭代)后的輸出。除此之外,它與普通的模糊神經網絡非常相似。
當然,它有許多變化 — 如傳遞狀態(tài)到輸入節(jié)點,可變延遲等,但主要思想保持不變。這種類型的神經網絡主要被使用在上下文很重要的時候——即過去的迭代結果和樣本產生的決策會對當前產生影響。最常見的上下文的例子是文本——一個單詞只能在前面的單詞或句子的上下文中進行分析。
【6】Long/Short Term Memory (LSTM) 長短時記憶網絡
【6】LSTM長短時記憶網絡
LSTM長短時記憶網絡引入了一個存儲單元,一個特殊的單元,當數據有時間間隔(或滯后)時可以處理數據。遞歸神經網絡可以通過“記住”前十個詞來處理文本,LSTM長短時記憶網絡可以通過“記住”許多幀之前發(fā)生的事情處理視頻幀。 LSTM網絡也廣泛用于寫作和語音識別。
存儲單元實際上由一些元素組成,稱為門,它們是遞歸性的,并控制信息如何被記住和遺忘。
【7】Gated Recurrent Unit (GRU)
【7】GRU是具有不同門的LSTM
GRU是具有不同門的LSTM。
聽起來很簡單,但缺少輸出門可以更容易基于具體輸入重復多次相同的輸出,目前此模型在聲音(音樂)和語音合成中使用得最多。
實際上的組合雖然有點不同:但是所有的LSTM門都被組合成所謂的更新門(Update Gate),并且復位門(Reset Gate)與輸入密切相關。
它們比LSTM消耗資源少,但幾乎有相同的效果。
【8】Auto Encoder (AE) 自動編碼器
【8】AE自動編碼器
Autoencoders自動編碼器用于分類,聚類和特征壓縮。
當您訓練前饋(FF)神經網絡進行分類時,您主要必須在Y類別中提供X個示例,并且期望Y個輸出單元格中的一個被激活。 這被稱為“監(jiān)督學習”。
另一方面,自動編碼器可以在沒有監(jiān)督的情況下進行訓練。它們的結構 - 當隱藏單元數量小于輸入單元數量(并且輸出單元數量等于輸入單元數)時,并且當自動編碼器被訓練時輸出盡可能接近輸入的方式,強制自動編碼器泛化數據并搜索常見模式。
【9】Variational AE (VAE) 變分自編碼器
【9】VAE變分自編碼器
變分自編碼器,與一般自編碼器相比,它壓縮的是概率,而不是特征。
盡管如此簡單的改變,但是一般自編碼器只能回答當“我們如何歸納數據?”的問題時,變分自編碼器回答了“兩件事情之間的聯系有多強大?我們應該在兩件事情之間分配誤差還是它們完全獨立的?”的問題。
【10】Denoising AE (DAE) 降噪自動編碼器
【10】DAE降噪自動編碼器
雖然自動編碼器很酷,但它們有時找不到最魯棒的特征,而只是適應輸入數據(實際上是過擬合的一個例子)。
降噪自動編碼器(DAE)在輸入單元上增加了一些噪聲 - 通過隨機位來改變數據,隨機切換輸入中的位,等等。通過這樣做,一個強制降噪自動編碼器從一個有點嘈雜的輸入重構輸出,使其更加通用,強制選擇更常見的特征。
【11】Sparse AE (SAE) 稀疏自編碼器
【11】SAE稀疏自編碼器
稀疏自編碼器(SAE)是另外一個有時候可以抽離出數據中一些隱藏分組樣試的自動編碼的形式。結構和AE是一樣的,但隱藏單元的數量大于輸入或輸出單元的數量。
【12】Markov Chain (MC) 馬爾科夫鏈
【12】Markov Chain (MC) 馬爾科夫鏈
馬爾可夫鏈(Markov Chain, MC)是一個比較老的圖表概念了,它的每一個端點都存在一種可能性。過去,我們用它來搭建像“在單詞hello之后有0.0053%的概率會出現dear,有0.03551%的概率出現you”這樣的文本結構。
這些馬爾科夫鏈并不是典型的神經網絡,它可以被用作基于概率的分類(像貝葉斯過濾),用于聚類(對某些類別而言),也被用作有限狀態(tài)機。
【13】Hopfield Network (HN) 霍普菲爾網絡
【13】HN霍普菲爾網絡
霍普菲爾網絡(HN)對一套有限的樣本進行訓練,所以它們用相同的樣本對已知樣本作出反應。
在訓練前,每一個樣本都作為輸入樣本,在訓練之中作為隱藏樣本,使用過之后被用作輸出樣本。
在HN試著重構受訓樣本的時候,他們可以用于給輸入值降噪和修復輸入。如果給出一半圖片或數列用來學習,它們可以反饋全部樣本。
【14】Boltzmann Machine (BM) 波爾滋曼機
【14】 BM 波爾滋曼機
波爾滋曼機(BM)和HN非常相像,有些單元被標記為輸入同時也是隱藏單元。在隱藏單元更新其狀態(tài)時,輸入單元就變成了輸出單元。(在訓練時,BM和HN一個一個的更新單元,而非并行)。
這是第一個成功保留模擬退火方法的網絡拓撲。
多層疊的波爾滋曼機可以用于所謂的深度信念網絡,深度信念網絡可以用作特征檢測和抽取。
【15】Restricted BM (RBM) 限制型波爾滋曼機
【15】 RBM 限制型波爾滋曼機
在結構上,限制型波爾滋曼機(RBM)和BM很相似,但由于受限RBM被允許像FF一樣用反向傳播來訓練(唯一的不同的是在反向傳播經過數據之前RBM會經過一次輸入層)。
【16】Deep Belief Network (DBN) 深度信念網絡
【16】DBN 深度信念網絡
像之前提到的那樣,深度信念網絡(DBN)實際上是許多波爾滋曼機(被VAE包圍)。他們能被連在一起(在一個神經網絡訓練另一個的時候),并且可以用已經學習過的樣式來生成數據。
【17】Deep Convolutional Network (DCN) 深度卷積網絡
【17】 DCN 深度卷積網絡
當今,深度卷積網絡(DCN)是人工神經網絡之星。它具有卷積單元(或者池化層)和內核,每一種都用以不同目的。
卷積核事實上用來處理輸入的數據,池化層是用來簡化它們(大多數情況是用非線性方程,比如max),來減少不必要的特征。
他們通常被用來做圖像識別,它們在圖片的一小部分上運行(大約20x20像素)。輸入窗口一個像素一個像素的沿著圖像滑動。然后數據流向卷積層,卷積層形成一個漏斗(壓縮被識別的特征)。從圖像識別來講,第一層識別梯度,第二層識別線,第三層識別形狀,以此類推,直到特定的物體那一級。DFF通常被接在卷積層的末端方便未來的數據處理。
【18】Deconvolutional Network (DN) 去卷積網絡
【18】 DN 去卷積網絡
去卷積網絡(DN)是將DCN顛倒過來。DN能在獲取貓的圖片之后生成像(狗:0,蜥蜴:0,馬:0,貓:1)一樣的向量。DNC能在得到這個向量之后,能畫出一只貓。
【19】Deep Convolutional Inverse Graphics Network (DCIGN) 深度卷積反轉圖像網絡
【19】 DCIGN 深度卷積反轉圖像網絡
深度卷積反轉圖像網絡(DCIGN),長得像DCN和DN粘在一起,但也不完全是這樣。
事實上,它是一個自動編碼器,DCN和DN并不是作為兩個分開的網絡,而是承載網路輸入和輸出的間隔區(qū)。大多數這種神經網絡可以被用作圖像處理,并且可以處理他們以前沒有被訓練過的圖像。由于其抽象化的水平很高,這些網絡可以用于將某個事物從一張圖片中移除,重畫,或者像大名鼎鼎的CycleGAN一樣將一匹馬換成一個斑馬。
【20】Generative Adversarial Network (GAN) 生成對抗網絡
【20】 GAN 生成對抗網絡
生成對抗網絡(GAN)代表了有生成器和分辨器組成的雙網絡大家族。它們一直在相互傷害——生成器試著生成一些數據,而分辨器接收樣本數據后試著分辨出哪些是樣本,哪些是生成的。只要你能夠保持兩種神經網絡訓練之間的平衡,在不斷的進化中,這種神經網絡可以生成實際圖像。
【21】Liquid State Machine (LSM) 液體狀態(tài)機
【21】 LSM 液體狀態(tài)機
液體狀態(tài)機(LSM)是一種稀疏的,激活函數被閾值代替了的(并不是全部相連的)神經網絡。只有達到閾值的時候,單元格從連續(xù)的樣本和釋放出來的輸出中積累價值信息,并再次將內部的副本設為零。
這種想法來自于人腦,這些神經網絡被廣泛的應用于計算機視覺,語音識別系統,但目前還沒有重大突破。
【22】Extreme Learning Machine (ELM) 極端學習機
【22】ELM 極端學習機
極端學習機(ELM)是通過產生稀疏的隨機連接的隱藏層來減少FF網絡背后的復雜性。它們需要用到更少計算機的能量,實際的效率很大程度上取決于任務和數據。
【23】Echo State Network (ESN) 回聲狀態(tài)網絡
【23】 ESN 回聲狀態(tài)網絡
回聲狀態(tài)網絡(ESN)是重復網絡的細分種類。數據會經過輸入端,如果被監(jiān)測到進行了多次迭代(請允許重復網路的特征亂入一下),只有在隱藏層之間的權重會在此之后更新。
據我所知,除了多個理論基準之外,我不知道這種類型的有什么實際應用。。。。。。。
【24】Deep Residual Network (DRN) 深度殘差網絡
【24】 DRN 深度殘差網絡
深度殘差網絡(DRN)是有些輸入值的部分會傳遞到下一層。這一特點可以讓它可以做到很深的層級(達到300層),但事實上它們是一種沒有明確延時的RNN。
【25】Kohonen Network (KN) Kohonen神經網絡
【25】 Kohonen神經網絡
Kohonen神經網絡(KN)引入了“單元格距離”的特征。大多數情況下用于分類,這種網絡試著調整它們的單元格使其對某種特定的輸入作出最可能的反應。當一些單元格更新了, 離他們最近的單元格也會更新。
像SVM一樣,這些網絡總被認為不是“真正”的神經網絡。
【26】Support Vector Machine (SVM)
【26】 SVM 支持向量機
支持向量機(SVM)用于二元分類工作,無論這個網絡處理多少維度或輸入,結果都會是“是”或“否”。
SVM不是所有情況下都被叫做神經網絡。
【27】Neural Turing Machine (NTM) 神經圖靈機
【27】NTM 神經圖靈機
神經網絡像是黑箱——我們可以訓練它們,得到結果,增強它們,但實際的決定路徑大多數我們都是不可見的。
神經圖靈機(NTM)就是在嘗試解決這個問題——它是一個提取出記憶單元之后的FF。一些作者也說它是一個抽象版的LSTM。
記憶是被內容編址的,這個網絡可以基于現狀讀取記憶,編寫記憶,也代表了圖靈完備神經網絡。
二、深度學習中什么是人工神經網絡?
人工神經網絡(Artificial Neural Network,即ANN )是從信息處理角度對人腦神經元網絡進行抽象,是20世紀80年代以來人工智能領域興起的研究熱點,其本質是一種運算模型,由大量的節(jié)點(或稱神經元)之間相互聯接構成,在模式識別、智能機器人、自動控制、生物、醫(yī)學、經濟等領域已成功地解決了許多現代計算機難以解決的實際問題,表現出了良好的智能特性。
人工神經網絡是由大量處理單元互聯組成的非線性、自適應信息處理系統,它是在現代 神經科學研究成果的基礎上提出的,試圖通過模擬大腦神經網絡處理、記憶信息的方式進行信息處理。人工神經網絡具有四個基本特征:
(1)非線性– 非線性關系是自然界的普遍特性,人工神經元處于激活或抑制二種不同的狀態(tài),這種行為在數學上表現為一種非線性
人工神經網絡
關系。具有閾值的神經元構成的網絡具有更好的性能,可以提高容錯性和存儲容量。
(2)非局限性– 一個 神經網絡通常由多個神經元廣泛連接而成。一個系統的整體行為不僅取決于單個神經元的特征,而且可能主要由單元之間的相互作用、相互連接所決定。通過單元之間的大量連接模擬大腦的非局限性。聯想 記憶是非局限性的典型例子。
(3)非常定性 –人工神經網絡具有自適應、自組織、自學習能力。神經網絡不但處理的信息可以有各種變化,而且在處理信息的同時,非線性動力系統本身也在不斷變化。經常采用迭代過程描寫動力系統的演化過程。
(4)非凸性–一個系統的演化方向,在一定條件下將取決于某個特定的狀態(tài)函數。例如 能量函數,它的極值相應于系統比較穩(wěn)定的狀態(tài)。非凸性是指這種函數有多個極值,故系統具有多個較穩(wěn)定的平衡態(tài),這將導致系統演化的多樣性。
人工神經網絡中,神經元處理單元可表示不同的對象,例如特征、字母、概念,或者一些有意義的抽象模式。網絡中處理單元的類型分為三類:輸入單元、輸出單元和隱單元。輸入單元接受外部 世界的信號與數據;輸出單元實現系統處理結果的輸出;隱單元是處在輸入和輸出單元之間,不能
人工神經網絡
由系統外部觀察的單元。神經元間的連接權值反映了單元間的連接強度,信息的表示和處理體現在網絡處理單元的連接關系中。
總結:人工神經網絡是一種非程序化、 適應性、大腦風格的信息處理 ,其本質是通過網絡的變換和動力學行為得到一種并行分布式的信息處理功能,并在不同程度和層次上模仿人腦神經系統的信息處理功能。
三、人工神經網絡概念梳理與實例演示
人工神經網絡概念梳理與實例演示
神經網絡是一種模仿生物神經元的機器學習模型,數據從輸入層進入并流經激活閾值的多個節(jié)點。
遞歸性神經網絡一種能夠對之前輸入數據進行內部存儲記憶的神經網絡,所以他們能夠學習到數據流中的時間依賴結構。
如今機器學習已經被應用到很多的產品中去了,例如,siri、Google Now等智能助手,推薦引擎——亞馬遜網站用于推薦商品的推薦引擎,Google和Facebook使用的廣告排名系統。最近,深度學習的一些進步將機器學習帶入公眾視野:AlphaGo 打敗圍棋大師李世石事件以及一些圖片識別和機器翻譯等新產品的出現。
在這部分中,我們將介紹一些強大并被普遍使用的機器學習技術。這當然包括一些深度學習以及一些滿足現代業(yè)務需求傳統方法。讀完這一系列的文章之后,你就掌握了必要的知識,便可以將具體的機器學習實驗應用到你所在的領域當中。
隨著深層神經網絡的精度的提高,語音和圖像識別技術的應用吸引了大眾的注意力,關于AI和深度學習的研究也變得更加普遍了。但是怎么能夠讓它進一步擴大影響力,更受歡迎仍然是一個問題。這篇文章的主要內容是:簡述前饋神經網絡和遞歸神經網絡、怎樣搭建一個遞歸神經網絡對時間系列數據進行異常檢測。為了讓我們的討論更加具體化,我們將演示一下怎么用Deeplearning4j搭建神經網絡。
一、什么是神經網絡?
人工神經網絡算法的最初構思是模仿生物神經元。但是這個類比很不可靠。人工神經網絡的每一個特征都是對生物神經元的一種折射:每一個節(jié)點與激活閾值、觸發(fā)的連接。
連接人工神經元系統建立起來之后,我們就能夠對這些系統進行訓練,從而讓他們學習到數據中的一些模式,學到之后就能執(zhí)行回歸、分類、聚類、預測等功能。
人工神經網絡可以看作是計算節(jié)點的集合。數據通過這些節(jié)點進入神經網絡的輸入層,再通過神經網絡的隱藏層直到關于數據的一個結論或者結果出現,這個過程才會停止。神經網絡產出的結果會跟預期的結果進行比較,神經網絡得出的結果與正確結果的不同點會被用來更正神經網絡節(jié)點的激活閾值。隨著這個過程的不斷重復,神經網絡的輸出結果就會無限靠近預期結果。
二、訓練過程
在搭建一個神經網絡系統之前,你必須先了解訓練的過程以及網絡輸出結果是怎么產生的。然而我們并不想過度深入的了解這些方程式,下面是一個簡短的介紹。
網絡的輸入節(jié)點收到一個數值數組(或許是叫做張量多維度數組)就代表輸入數據。例如, 圖像中的每個像素可以表示為一個標量,然后將像素傳遞給一個節(jié)點。輸入數據將會與神經網絡的參數相乘,這個輸入數據被擴大還是減小取決于它的重要性,換句話說,取決于這個像素就不會影響神經網絡關于整個輸入數據的結論。
起初這些參數都是隨機的,也就是說神經網絡在建立初期根本就不了解數據的結構。每個節(jié)點的激活函數決定了每個輸入節(jié)點的輸出結果。所以每個節(jié)點是否能夠被激活取決于它是否接受到足夠的刺激強度,即是否輸入數據和參數的結果超出了激活閾值的界限。
在所謂的密集或完全連接層中,每個節(jié)點的輸出值都會傳遞給后續(xù)層的節(jié)點,在通過所有隱藏層后最終到達輸出層,也就是產生輸入結果的地方。在輸出層, 神經網絡得到的最終結論將會跟預期結論進行比較(例如,圖片中的這些像素代表一只貓還是狗?)。神經網絡猜測的結果與正確結果的計算誤差都會被納入到一個測試集中,神經網絡又會利用這些計算誤差來不斷更新參數,以此來改變圖片中不同像素的重要程度。整個過程的目的就是降低輸出結果與預期結果的誤差,正確地標注出這個圖像到底是不是一條狗。
深度學習是一個復雜的過程,由于大量的矩陣系數需要被修改所以它就涉及到矩陣代數、衍生品、概率和密集的硬件使用問題,但是用戶不需要全部了解這些復雜性。
但是,你也應該知道一些基本參數,這將幫助你理解神經網絡函數。這其中包括激活函數、優(yōu)化算法和目標函數(也稱為損失、成本或誤差函數)。
激活函數決定了信號是否以及在多大程度上應該被發(fā)送到連接節(jié)點。階梯函數是最常用的激活函數, 如果其輸入小于某個閾值就是0,如果其輸入大于閾值就是1。節(jié)點都會通過階梯激活函數向連接節(jié)點發(fā)送一個0或1。優(yōu)化算法決定了神經網絡怎么樣學習,以及測試完誤差后,權重怎么樣被更準確地調整。最常見的優(yōu)化算法是隨機梯度下降法。最后, 成本函數常用來衡量誤差,通過對比一個給定訓練樣本中得出的結果與預期結果的不同來評定神經網絡的執(zhí)行效果。
Keras、Deeplearning4j 等開源框架讓創(chuàng)建神經網絡變得簡單。創(chuàng)建神經網絡結構時,需要考慮的是怎樣將你的數據類型匹配到一個已知的被解決的問題,并且根據你的實際需求來修改現有結構。
三、神經網絡的類型以及應用
神經網絡已經被了解和應用了數十年了,但是最近的一些技術趨勢才使得深度神經網絡變得更加高效。
GPUs使得矩陣操作速度更快;分布式計算結構讓計算能力大大增強;多個超參數的組合也讓迭代的速度提升。所有這些都讓訓練的速度大大加快,迅速找到適合的結構。
隨著更大數據集的產生,類似于ImageNet 的大型高質量的標簽數據集應運而生。機器學習算法訓練的數據越大,那么它的準確性就會越高。
最后,隨著我們理解能力以及神經網絡算法的不斷提升,神經網絡的準確性在語音識別、機器翻譯以及一些機器感知和面向目標的一些任務等方面不斷刷新記錄。
盡管神經網絡架構非常的大,但是主要用到的神經網絡種類也就是下面的幾種。
3.1前饋神經網絡
前饋神經網絡包括一個輸入層、一個輸出層以及一個或多個的隱藏層。前饋神經網絡可以做出很好的通用逼近器,并且能夠被用來創(chuàng)建通用模型。
這種類型的神經網絡可用于分類和回歸。例如,當使用前饋網絡進行分類時,輸出層神經元的個數等于類的數量。從概念上講, 激活了的輸出神經元決定了神經網絡所預測的類。更準確地說, 每個輸出神經元返回一個記錄與分類相匹配的概率數,其中概率最高的分類將被選為模型的輸出分類。
前饋神經網絡的優(yōu)勢是簡單易用,與其他類型的神經網絡相比更簡單,并且有一大堆的應用實例。
3.2卷積神經網絡
卷積神經網絡和前饋神經網絡是非常相似的,至少是數據的傳輸方式類似。他們結構大致上是模仿了視覺皮層。卷積神經網絡通過許多的過濾器。這些過濾器主要集中在一個圖像子集、補丁、圖塊的特征識別上。每一個過濾器都在尋找不同模式的視覺數據,例如,有的可能是找水平線,有的是找對角線,有的是找垂直的。這些線條都被看作是特征,當過濾器經過圖像時,他們就會構造出特征圖譜來定位各類線是出現在圖像的哪些地方。圖像中的不同物體,像貓、747s、榨汁機等都會有不同的圖像特征,這些圖像特征就能使圖像完成分類。卷積神經網絡在圖像識別和語音識別方面是非常的有效的。
卷積神經網絡與前饋神經網絡在圖像識別方面的異同比較。雖然這兩種網絡類型都能夠進行圖像識別,但是方式卻不同。卷積神經網絡是通過識別圖像的重疊部分,然后學習識別不同部分的特征進行訓練;然而,前饋神經網絡是在整張圖片上進行訓練。前饋神經網絡總是在圖片的某一特殊部分或者方向進行訓練,所以當圖片的特征出現在其他地方時就不會被識別到,然而卷積神經網絡卻能夠很好的避免這一點。
卷積神經網絡主要是用于圖像、視頻、語音、聲音識別以及無人駕駛的任務。盡管這篇文章主要是討論遞歸神經網絡的,但是卷積神經網絡在圖像識別方面也是非常有效的,所以很有必要了解。
3.3遞歸神經網絡
與前饋神經網絡不同的是,遞歸神經網絡的隱藏層的節(jié)點里有內部記憶存儲功能,隨著輸入數據的改變而內部記憶內容不斷被更新。遞歸神經網絡的結論都是基于當前的輸入和之前存儲的數據而得出的。遞歸神經網絡能夠充分利用這種內部記憶存儲狀態(tài)處理任意序列的數據,例如時間序列。
遞歸神經網絡經常用于手寫識別、語音識別、日志分析、欺詐檢測和網絡安全。
遞歸神經網絡是處理時間維度數據集的最好方法,它可以處理以下數據:網絡日志和服務器活動、硬件或者是醫(yī)療設備的傳感器數據、金融交易、電話記錄。想要追蹤數據在不同階段的依賴和關聯關系需要你了解當前和之前的一些數據狀態(tài)。盡管我們通過前饋神經網絡也可以獲取事件,隨著時間的推移移動到另外一個事件,這將使我們限制在對事件的依賴中,所以這種方式很不靈活。
追蹤在時間維度上有長期依賴的數據的更好方法是用內存來儲存重要事件,以使近期事件能夠被理解和分類。遞歸神經網絡最好的一點就是在它的隱藏層里面有“內存”可以學習到時間依賴特征的重要性。
接下來我們將討論遞歸神經網絡在字符生成器和網絡異常檢測中的應用。遞歸神經網絡可以檢測出不同時間段的依賴特征的能力使得它可以進行時間序列數據的異常檢測。
遞歸神經網絡的應用
網絡上有很多使用RNNs生成文本的例子,遞歸神經網絡經過語料庫的訓練之后,只要輸入一個字符,就可以預測下一個字符。下面讓我們通過一些實用例子發(fā)現更多RNNs的特征。
應用一、RNNs用于字符生成
遞歸神經網絡經過訓練之后可以把英文字符當做成一系列的時間依賴事件。經過訓練后它會學習到一個字符經常跟著另外一個字符(“e”經常跟在“h”后面,像在“the、he、she”中)。由于它能預測下一個字符是什么,所以它能有效地減少文本的輸入錯誤。
Java是個很有趣的例子,因為它的結構包括很多嵌套結構,有一個開的圓括號必然后面就會有一個閉的,花括號也是同理。他們之間的依賴關系并不會在位置上表現的很明顯,因為多個事件之間的關系不是靠所在位置的距離確定的。但是就算是不明確告訴遞歸神經網絡Java中各個事件的依賴關系,它也能自己學習了解到。
在異常檢測當中,我們要求神經網絡能夠檢測出數據中相似、隱藏的或許是并不明顯的模式。就像是一個字符生成器在充分地了解數據的結構后就會生成一個數據的擬像,遞歸神經網絡的異常檢測就是在其充分了解數據結構后來判斷輸入的數據是不是正常。
字符生成的例子表明遞歸神經網絡有在不同時間范圍內學習到時間依賴關系的能力,它的這種能力還可以用來檢測網絡活動日志的異常。
異常檢測能夠使文本中的語法錯誤浮出水面,這是因為我們所寫的東西是由語法結構所決定的。同理,網絡行為也是有結構的,它也有一個能夠被學習的可預測模式。經過在正常網絡活動中訓練的遞歸神經網絡可以監(jiān)測到入侵行為,因為這些入侵行為的出現就像是一個句子沒有標點符號一樣異常。
應用二、一個網絡異常檢測項目的示例
假設我們想要了解的網絡異常檢測就是能夠得到硬件故障、應用程序失敗、以及入侵的一些信息。
模型將會向我們展示什么呢?
隨著大量的網絡活動日志被輸入到遞歸神經網絡中去,神經網絡就能學習到正常的網絡活動應該是什么樣子的。當這個被訓練的網絡被輸入新的數據時,它就能偶判斷出哪些是正常的活動,哪些是被期待的,哪些是異常的。
訓練一個神經網絡來識別預期行為是有好處的,因為異常數據不多,或者是不能夠準確的將異常行為進行分類。我們在正常的數據里進行訓練,它就能夠在未來的某個時間點提醒我們非正常活動的出現。
說句題外話,訓練的神經網絡并不一定非得識別到特定事情發(fā)生的特定時間點(例如,它不知道那個特殊的日子就是周日),但是它一定會發(fā)現一些值得我們注意的一些更明顯的時間模式和一些可能并不明顯的事件之間的聯系。
我們將概述一下怎么用 Deeplearning4j(一個在JVM上被廣泛應用的深度學習開源數據庫)來解決這個問題。Deeplearning4j在模型開發(fā)過程中提供了很多有用的工具:DataVec是一款為ETL(提取-轉化-加載)任務準備模型訓練數據的集成工具。正如Sqoop為Hadoop加載數據,DataVec將數據進行清洗、預處理、規(guī)范化與標準化之后將數據加載到神經網絡。這跟Trifacta’s Wrangler也相似,只不過它更關注二進制數據。
開始階段
第一階段包括典型的大數據任務和ETL:我們需要收集、移動、儲存、準備、規(guī)范化、矢量話日志。時間跨度的長短是必須被規(guī)定好的。數據的轉化需要花費一些功夫,這是由于JSON日志、文本日志、還有一些非連續(xù)標注模式都必須被識別并且轉化為數值數組。DataVec能夠幫助進行轉化和規(guī)范化數據。在開發(fā)機器學習訓練模型時,數據需要分為訓練集和測試集。
訓練神經網絡
神經網絡的初始訓練需要在訓練數據集中進行。
在第一次訓練的時候,你需要調整一些超參數以使模型能夠實現在數據中學習。這個過程需要控制在合理的時間內。關于超參數我們將在之后進行討論。在模型訓練的過程中,你應該以降低錯誤為目標。
但是這可能會出現神經網絡模型過度擬合的風險。有過度擬合現象出現的模型往往會在訓練集中的很高的分數,但是在遇到新的數據時就會得出錯誤結論。用機器學習的語言來說就是它不夠通用化。Deeplearning4J提供正則化的工具和“過早停止”來避免訓練過程中的過度擬合。
神經網絡的訓練是最花費時間和耗費硬件的一步。在GPUs上訓練能夠有效的減少訓練時間,尤其是做圖像識別的時候。但是額外的硬件設施就帶來多余的花銷,所以你的深度學習的框架必須能夠有效的利用硬件設施。Azure和亞馬遜等云服務提供了基于GPU的實例,神經網絡還可以在異構集群上進行訓練。
創(chuàng)建模型
Deeplearning4J提供ModelSerializer來保存訓練模型。訓練模型可以被保存或者是在之后的訓練中被使用或更新。
在執(zhí)行異常檢測的過程中,日志文件的格式需要與訓練模型一致,基于神經網絡的輸出結果,你將會得到是否當前的活動符合正常網絡行為預期的結論。
代碼示例
遞歸神經網絡的結構應該是這樣子的:
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder(
.seed(123)
.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT).iterations(1)
.weightInit(WeightInit.XAVIER)
.updater(Updater.NESTEROVS).momentum(0.9)
.learningRate(0.005)
.gradientNormalization(GradientNormalization.ClipElementWiseAbsoluteValue)
.gradientNormalizationThreshold(0.5)
.list()
.layer(0, new GravesLSTM.Builder().activation("tanh").nIn(1).nOut(10).build())
.layer(1, new RnnOutputLayer.Builder(LossFunctions.LossFunction.MCXENT)
.activation("softmax").nIn(10).nOut(numLabelClasses).build())
.pretrain(false).backprop(true).build();
MultiLayerNetwork net = new MultiLayerNetwork(conf);
net.init();
下面解釋一下幾行重要的代碼:
.seed(123)
隨機設置一個種子值對神經網絡的權值進行初始化,以此獲得一個有復驗性的結果。系數通常都是被隨機的初始化的,以使我們在調整其他超參數時仍獲得一致的結果。我們需要設定一個種子值,讓我們在調整和測試的時候能夠用這個隨機的權值。
.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT).iterations(1)
決定使用哪個最優(yōu)算法(在這個例子中是隨機梯度下降法)來調整權值以提高誤差分數。你可能不需要對這個進行修改。
.learningRate(0.005)
當我們使用隨機梯度下降法的時候,誤差梯度就被計算出來了。在我們試圖將誤差值減到最小的過程中,權值也隨之變化。SGD給我們一個讓誤差更小的方向,這個學習效率就決定了我們該在這個方向上邁多大的梯度。如果學習效率太高,你可能是超過了誤差最小值;如果太低,你的訓練可能將會永遠進行。這是一個你需要調整的超參數。
四、什么是人工神經網絡?
工神經網絡是一種應用類似於大腦神經突觸聯接的結構進行信息處理的數學模型。在工程與學術界也常直接簡稱為「神經網絡」或類神經網路。神經網絡是一種運算模型[1],由大量的節(jié)點(或稱「神經元」,或「單元」)和之間相互聯接構成。每個節(jié)點代表一種特定的輸出函數,稱為激勵函數(activation function)。每兩個節(jié)點間的連接都代表一個對於通過該連接信號的加權值,稱之為權重(weight),這相當於人工神經網路的記憶。網絡的輸出則依網絡的連接方式,權重值和激勵函數的不同而不同。而網絡自身通常都是對自然界某種算法或者函數的逼近,也可能是對一種邏輯策略的表達。
它的構筑理念是受到生物(人或其他動物)神經網絡功能的運作啟發(fā)而產生的。人工神經網絡通常是通過一個基於數學統計學類型的學習方法(Learning Method)得以優(yōu)化,所以人工神經網絡也是數學統計學方法的一種實際應用,通過統計學的標準數學方法我們能夠得到大量的可以用函數來表達的局部結構空間,另一方面在人工智能學的人工感知領域,我們通過數學統計學的應用可以來做人工感知方面的決定問題(也就是說通過統計學的方法,人工神經網絡能夠類似人一樣具有簡單的決定能力和簡單的判斷能力),這種方法比起正式的邏輯學推理演算更具有優(yōu)勢。
以上就是關于人工神經網絡的三種類型相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。
推薦閱讀:
人工智能深度算法原理和應用(人工智能深度算法原理和應用論文)