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