① 我想問一下什麼是神經網路
神經網路可以指向兩種,一個是生物神經網路,一個是人工神經網路。
生物神經網路:一般指生物的大腦神經元,細胞,觸點等組成的網路,用於產生生物的意識,幫助生物進行思考和行動。
人工神經網路(Artificial Neural Networks,簡寫為ANNs)也簡稱為神經網路(NNs)或稱作連接模型(Connection Model),它是一種模仿動物神經網路行為特徵,進行分布式並行信息處理的演算法數學模型。這種網路依靠系統的復雜程度,通過調整內部大量節點之間相互連接的關系,從而達到處理信息的目的。
人工神經網路:是一種應用類似於大腦神經突觸聯接的結構進行信息處理的數學模型。在工程與學術界也常直接簡稱為「神經網路」或類神經網路。
② 一文看懂四種基本的神經網路架構
原文鏈接:
http://blackblog.tech/2018/02/23/Eight-Neural-Network/
更多干貨就在我的個人博客 http://blackblog.tech 歡迎關注
剛剛入門神經網路,往往會對眾多的神經網路架構感到困惑,神經網路看起來復雜多樣,但是這么多架構無非也就是三類,前饋神經網路,循環網路,對稱連接網路,本文將介紹四種常見的神經網路,分別是CNN,RNN,DBN,GAN。通過這四種基本的神經網路架構,我們來對神經網路進行一定的了解。
神經網路是機器學習中的一種模型,是一種模仿動物神經網路行為特徵,進行分布式並行信息處理的演算法數學模型。這種網路依靠系統的復雜程度,通過調整內部大量節點之間相互連接的關系,從而達到處理信息的目的。
一般來說,神經網路的架構可以分為三類:
前饋神經網路:
這是實際應用中最常見的神經網路類型。第一層是輸入,最後一層是輸出。如果有多個隱藏層,我們稱之為「深度」神經網路。他們計算出一系列改變樣本相似性的變換。各層神經元的活動是前一層活動的非線性函數。
循環網路:
循環網路在他們的連接圖中定向了循環,這意味著你可以按照箭頭回到你開始的地方。他們可以有復雜的動態,使其很難訓練。他們更具有生物真實性。
循環網路的目的使用來處理序列數據。在傳統的神經網路模型中,是從輸入層到隱含層再到輸出層,層與層之間是全連接的,每層之間的節點是無連接的。但是這種普通的神經網路對於很多問題卻無能無力。例如,你要預測句子的下一個單詞是什麼,一般需要用到前面的單詞,因為一個句子中前後單詞並不是獨立的。
循環神經網路,即一個序列當前的輸出與前面的輸出也有關。具體的表現形式為網路會對前面的信息進行記憶並應用於當前輸出的計算中,即隱藏層之間的節點不再無連接而是有連接的,並且隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出。
對稱連接網路:
對稱連接網路有點像循環網路,但是單元之間的連接是對稱的(它們在兩個方向上權重相同)。比起循環網路,對稱連接網路更容易分析。這個網路中有更多的限制,因為它們遵守能量函數定律。沒有隱藏單元的對稱連接網路被稱為「Hopfield 網路」。有隱藏單元的對稱連接的網路被稱為玻爾茲曼機。
其實之前的帖子講過一些關於感知機的內容,這里再復述一下。
首先還是這張圖
這是一個M-P神經元
一個神經元有n個輸入,每一個輸入對應一個權值w,神經元內會對輸入與權重做乘法後求和,求和的結果與偏置做差,最終將結果放入激活函數中,由激活函數給出最後的輸出,輸出往往是二進制的,0 狀態代表抑制,1 狀態代表激活。
可以把感知機看作是 n 維實例空間中的超平面決策面,對於超平面一側的樣本,感知器輸出 1,對於另一側的實例輸出 0,這個決策超平面方程是 w⋅x=0。 那些可以被某一個超平面分割的正反樣例集合稱為線性可分(linearly separable)樣例集合,它們就可以使用圖中的感知機表示。
與、或、非問題都是線性可分的問題,使用一個有兩輸入的感知機能容易地表示,而異或並不是一個線性可分的問題,所以使用單層感知機是不行的,這時候就要使用多層感知機來解決疑惑問題了。
如果我們要訓練一個感知機,應該怎麼辦呢?
我們會從隨機的權值開始,反復地應用這個感知機到每個訓練樣例,只要它誤分類樣例就修改感知機的權值。重復這個過程,直到感知機正確分類所有的樣例。每一步根據感知機訓練法則來修改權值,也就是修改與輸入 xi 對應的權 wi,法則如下:
這里 t 是當前訓練樣例的目標輸出,o 是感知機的輸出,η 是一個正的常數稱為學習速率。學習速率的作用是緩和每一步調整權的程度,它通常被設為一個小的數值(例如 0.1),而且有時會使其隨著權調整次數的增加而衰減。
多層感知機,或者說是多層神經網路無非就是在輸入層與輸出層之間加了多個隱藏層而已,後續的CNN,DBN等神經網路只不過是將重新設計了每一層的類型。感知機可以說是神經網路的基礎,後續更為復雜的神經網路都離不開最簡單的感知機的模型,
談到機器學習,我們往往還會跟上一個詞語,叫做模式識別,但是真實環境中的模式識別往往會出現各種問題。比如:
圖像分割:真實場景中總是摻雜著其它物體。很難判斷哪些部分屬於同一個對象。對象的某些部分可以隱藏在其他對象的後面。
物體光照:像素的強度被光照強烈影響。
圖像變形:物體可以以各種非仿射方式變形。例如,手寫也可以有一個大的圓圈或只是一個尖頭。
情景支持:物體所屬類別通常由它們的使用方式來定義。例如,椅子是為了讓人們坐在上面而設計的,因此它們具有各種各樣的物理形狀。
卷積神經網路與普通神經網路的區別在於,卷積神經網路包含了一個由卷積層和子采樣層構成的特徵抽取器。在卷積神經網路的卷積層中,一個神經元只與部分鄰層神經元連接。在CNN的一個卷積層中,通常包含若干個特徵平面(featureMap),每個特徵平面由一些矩形排列的的神經元組成,同一特徵平面的神經元共享權值,這里共享的權值就是卷積核。卷積核一般以隨機小數矩陣的形式初始化,在網路的訓練過程中卷積核將學習得到合理的權值。共享權值(卷積核)帶來的直接好處是減少網路各層之間的連接,同時又降低了過擬合的風險。子采樣也叫做池化(pooling),通常有均值子采樣(mean pooling)和最大值子采樣(max pooling)兩種形式。子采樣可以看作一種特殊的卷積過程。卷積和子采樣大大簡化了模型復雜度,減少了模型的參數。
卷積神經網路由三部分構成。第一部分是輸入層。第二部分由n個卷積層和池化層的組合組成。第三部分由一個全連結的多層感知機分類器構成。
這里舉AlexNet為例:
·輸入:224×224大小的圖片,3通道
·第一層卷積:11×11大小的卷積核96個,每個GPU上48個。
·第一層max-pooling:2×2的核。
·第二層卷積:5×5卷積核256個,每個GPU上128個。
·第二層max-pooling:2×2的核。
·第三層卷積:與上一層是全連接,3*3的卷積核384個。分到兩個GPU上個192個。
·第四層卷積:3×3的卷積核384個,兩個GPU各192個。該層與上一層連接沒有經過pooling層。
·第五層卷積:3×3的卷積核256個,兩個GPU上個128個。
·第五層max-pooling:2×2的核。
·第一層全連接:4096維,將第五層max-pooling的輸出連接成為一個一維向量,作為該層的輸入。
·第二層全連接:4096維
·Softmax層:輸出為1000,輸出的每一維都是圖片屬於該類別的概率。
卷積神經網路在模式識別領域有著重要應用,當然這里只是對卷積神經網路做了最簡單的講解,卷積神經網路中仍然有很多知識,比如局部感受野,權值共享,多卷積核等內容,後續有機會再進行講解。
傳統的神經網路對於很多問題難以處理,比如你要預測句子的下一個單詞是什麼,一般需要用到前面的單詞,因為一個句子中前後單詞並不是獨立的。RNN之所以稱為循環神經網路,即一個序列當前的輸出與前面的輸出也有關。具體的表現形式為網路會對前面的信息進行記憶並應用於當前輸出的計算中,即隱藏層之間的節點不再無連接而是有連接的,並且隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出。理論上,RNN能夠對任何長度的序列數據進行處理。
這是一個簡單的RNN的結構,可以看到隱藏層自己是可以跟自己進行連接的。
那麼RNN為什麼隱藏層能夠看到上一刻的隱藏層的輸出呢,其實我們把這個網路展開來開就很清晰了。
從上面的公式我們可以看出,循環層和全連接層的區別就是循環層多了一個權重矩陣 W。
如果反復把式2帶入到式1,我們將得到:
在講DBN之前,我們需要對DBN的基本組成單位有一定的了解,那就是RBM,受限玻爾茲曼機。
首先什麼是玻爾茲曼機?
[圖片上傳失敗...(image-d36b31-1519636788074)]
如圖所示為一個玻爾茲曼機,其藍色節點為隱層,白色節點為輸入層。
玻爾茲曼機和遞歸神經網路相比,區別體現在以下幾點:
1、遞歸神經網路本質是學習一個函數,因此有輸入和輸出層的概念,而玻爾茲曼機的用處在於學習一組數據的「內在表示」,因此其沒有輸出層的概念。
2、遞歸神經網路各節點鏈接為有向環,而玻爾茲曼機各節點連接成無向完全圖。
而受限玻爾茲曼機是什麼呢?
最簡單的來說就是加入了限制,這個限制就是將完全圖變成了二分圖。即由一個顯層和一個隱層構成,顯層與隱層的神經元之間為雙向全連接。
h表示隱藏層,v表示顯層
在RBM中,任意兩個相連的神經元之間有一個權值w表示其連接強度,每個神經元自身有一個偏置系數b(對顯層神經元)和c(對隱層神經元)來表示其自身權重。
具體的公式推導在這里就不展示了
DBN是一個概率生成模型,與傳統的判別模型的神經網路相對,生成模型是建立一個觀察數據和標簽之間的聯合分布,對P(Observation|Label)和 P(Label|Observation)都做了評估,而判別模型僅僅而已評估了後者,也就是P(Label|Observation)。
DBN由多個限制玻爾茲曼機(Restricted Boltzmann Machines)層組成,一個典型的神經網路類型如圖所示。這些網路被「限制」為一個可視層和一個隱層,層間存在連接,但層內的單元間不存在連接。隱層單元被訓練去捕捉在可視層表現出來的高階數據的相關性。
生成對抗網路其實在之前的帖子中做過講解,這里在說明一下。
生成對抗網路的目標在於生成,我們傳統的網路結構往往都是判別模型,即判斷一個樣本的真實性。而生成模型能夠根據所提供的樣本生成類似的新樣本,注意這些樣本是由計算機學習而來的。
GAN一般由兩個網路組成,生成模型網路,判別模型網路。
生成模型 G 捕捉樣本數據的分布,用服從某一分布(均勻分布,高斯分布等)的雜訊 z 生成一個類似真實訓練數據的樣本,追求效果是越像真實樣本越好;判別模型 D 是一個二分類器,估計一個樣本來自於訓練數據(而非生成數據)的概率,如果樣本來自於真實的訓練數據,D 輸出大概率,否則,D 輸出小概率。
舉個例子:生成網路 G 好比假幣製造團伙,專門製造假幣,判別網路 D 好比警察,專門檢測使用的貨幣是真幣還是假幣,G 的目標是想方設法生成和真幣一樣的貨幣,使得 D 判別不出來,D 的目標是想方設法檢測出來 G 生成的假幣。
傳統的判別網路:
生成對抗網路:
下面展示一個cDCGAN的例子(前面帖子中寫過的)
生成網路
判別網路
最終結果,使用MNIST作為初始樣本,通過學習後生成的數字,可以看到學習的效果還是不錯的。
本文非常簡單的介紹了四種神經網路的架構,CNN,RNN,DBN,GAN。當然也僅僅是簡單的介紹,並沒有深層次講解其內涵。這四種神經網路的架構十分常見,應用也十分廣泛。當然關於神經網路的知識,不可能幾篇帖子就講解完,這里知識講解一些基礎知識,幫助大家快速入(zhuang)門(bi)。後面的帖子將對深度自動編碼器,Hopfield 網路長短期記憶網路(LSTM)進行講解。
③ 人工神經網路,人工神經網路是什麼意思
一、 人工神經網路的概念
人工神經網路(Artificial Neural Network,ANN)簡稱神經網路(NN),是基於生物學中神經網路的基本原理,在理解和抽象了人腦結構和外界刺激響應機制後,以網路拓撲知識為理論基礎,模擬人腦的神經系統對復雜信息的處理機制的一種數學模型。該模型以並行分布的處理能力、高容錯性、智能化和自學習等能力為特徵,將信息的加工和存儲結合在一起,以其獨特的知識表示方式和智能化的自適應學習能力,引起各學科領域的關注。它實際上是一個有大量簡單元件相互連接而成的復雜網路,具有高度的非線性,能夠進行復雜的邏輯操作和非線性關系實現的系統。
神經網路是一種運算模型,由大量的節點(或稱神經元)之間相互聯接構成。每個節點代表一種特定的輸出函數,稱為激活函數(activation function)。每兩個節點間的連接都代表一個對於通過該連接信號的加權值,稱之為權重(weight),神經網路就是通過這種方式來模擬人類的記憶。網路的輸出則取決於網路的結構、網路的連接方式、權重和激活函數。而網路自身通常都是對自然界某種演算法或者函數的逼近,也可能是對一種邏輯策略的表達。神經網路的構築理念是受到生物的神經網路運作啟發而產生的。人工神經網路則是把對生物神經網路的認識與數學統計模型相結合,藉助數學統計工具來實現。另一方面在人工智慧學的人工感知領域,我們通過數學統計學的方法,使神經網路能夠具備類似於人的決定能力和簡單的判斷能力,這種方法是對傳統邏輯學演算的進一步延伸。
人工神經網路中,神經元處理單元可表示不同的對象,例如特徵、字母、概念,或者一些有意義的抽象模式。網路中處理單元的類型分為三類:輸入單元、輸出單元和隱單元。輸入單元接受外部世界的信號與數據;輸出單元實現系統處理結果的輸出;隱單元是處在輸入和輸出單元之間,不能由系統外部觀察的單元。神經元間的連接權值反映了單元間的連接強度,信息的表示和處理體現在網路處理單元的連接關系中。人工神經網路是一種非程序化、適應性、大腦風格的信息處理,其本質是通過網路的變換和動力學行為得到一種並行分布式的信息處理功能,並在不同程度和層次上模仿人腦神經系統的信息處理功能。
神經網路,是一種應用類似於大腦神經突觸連接結構進行信息處理的數學模型,它是在人類對自身大腦組織結合和思維機制的認識理解基礎之上模擬出來的,它是根植於神經科學、數學、思維科學、人工智慧、統計學、物理學、計算機科學以及工程科學的一門技術。
二、 人工神經網路的發展
神經網路的發展有悠久的歷史。其發展過程大致可以概括為如下4個階段。
1. 第一階段----啟蒙時期
(1)、M-P神經網路模型:20世紀40年代,人們就開始了對神經網路的研究。1943 年,美國心理學家麥克洛奇(Mcculloch)和數學家皮茲(Pitts)提出了M-P模型,此模型比較簡單,但是意義重大。在模型中,通過把神經元看作個功能邏輯器件來實現演算法,從此開創了神經網路模型的理論研究。
(2)、Hebb規則:1949 年,心理學家赫布(Hebb)出版了《The Organization of Behavior》(行為組織學),他在書中提出了突觸連接強度可變的假設。這個假設認為學習過程最終發生在神經元之間的突觸部位,突觸的連接強度隨之突觸前後神經元的活動而變化。這一假設發展成為後來神經網路中非常著名的Hebb規則。這一法則告訴人們,神經元之間突觸的聯系強度是可變的,這種可變性是學習和記憶的基礎。Hebb法則為構造有學習功能的神經網路模型奠定了基礎。
(3)、感知器模型:1957 年,羅森勃拉特(Rosenblatt)以M-P 模型為基礎,提出了感知器(Perceptron)模型。感知器模型具有現代神經網路的基本原則,並且它的結構非常符合神經生理學。這是一個具有連續可調權值矢量的MP神經網路模型,經過訓練可以達到對一定的輸入矢量模式進行分類和識別的目的,它雖然比較簡單,卻是第一個真正意義上的神經網路。Rosenblatt 證明了兩層感知器能夠對輸入進行分類,他還提出了帶隱層處理元件的三層感知器這一重要的研究方向。Rosenblatt 的神經網路模型包含了一些現代神經計算機的基本原理,從而形成神經網路方法和技術的重大突破。
(4)、ADALINE網路模型: 1959年,美國著名工程師威德羅(B.Widrow)和霍夫(M.Hoff)等人提出了自適應線性元件(Adaptive linear element,簡稱Adaline)和Widrow-Hoff學習規則(又稱最小均方差演算法或稱δ規則)的神經網路訓練方法,並將其應用於實際工程,成為第一個用於解決實際問題的人工神經網路,促進了神經網路的研究應用和發展。ADALINE網路模型是一種連續取值的自適應線性神經元網路模型,可以用於自適應系統。
2. 第二階段----低潮時期
人工智慧的創始人之一Minsky和Papert對以感知器為代表的網路系統的功能及局限性從數學上做了深入研究,於1969年發表了轟動一時《Perceptrons》一書,指出簡單的線性感知器的功能是有限的,它無法解決線性不可分的兩類樣本的分類問題,如簡單的線性感知器不可能實現「異或」的邏輯關系等。這一論斷給當時人工神經元網路的研究帶來沉重的打擊。開始了神經網路發展史上長達10年的低潮期。
(1)、自組織神經網路SOM模型:1972年,芬蘭的KohonenT.教授,提出了自組織神經網路SOM(Self-Organizing feature map)。後來的神經網路主要是根據KohonenT.的工作來實現的。SOM網路是一類無導師學習網路,主要用於模式識別﹑語音識別及分類問題。它採用一種「勝者為王」的競爭學習演算法,與先前提出的感知器有很大的不同,同時它的學習訓練方式是無指導訓練,是一種自組織網路。這種學習訓練方式往往是在不知道有哪些分類類型存在時,用作提取分類信息的一種訓練。
(2)、自適應共振理論ART:1976年,美國Grossberg教授提出了著名的自適應共振理論ART(Adaptive Resonance Theory),其學習過程具有自組織和自穩定的特徵。
3. 第三階段----復興時期
(1)、Hopfield模型:1982年,美國物理學家霍普菲爾德(Hopfield)提出了一種離散神經網路,即離散Hopfield網路,從而有力地推動了神經網路的研究。在網路中,它首次將李雅普諾夫(Lyapunov)函數引入其中,後來的研究學者也將Lyapunov函數稱為能量函數。證明了網路的穩定性。1984年,Hopfield 又提出了一種連續神經網路,將網路中神經元的激活函數由離散型改為連續型。1985 年,Hopfield和Tank利用Hopfield神經網路解決了著名的旅行推銷商問題(Travelling Salesman Problem)。Hopfield神經網路是一組非線性微分方程。Hopfield的模型不僅對人工神經網路信息存儲和提取功能進行了非線性數學概括,提出了動力方程和學習方程,還對網路演算法提供了重要公式和參數,使人工神經網路的構造和學習有了理論指導,在Hopfield模型的影響下,大量學者又激發起研究神經網路的熱情,積極投身於這一學術領域中。因為Hopfield 神經網路在眾多方面具有巨大潛力,所以人們對神經網路的研究十分地重視,更多的人開始了研究神經網路,極大地推動了神經網路的發展。
(2)、Boltzmann機模型:1983年,Kirkpatrick等人認識到模擬退火演算法可用於NP完全組合優化問題的求解,這種模擬高溫物體退火過程來找尋全局最優解的方法最早由Metropli等人1953年提出的。1984年,Hinton與年輕學者Sejnowski等合作提出了大規模並行網路學習機,並明確提出隱單元的概念,這種學習機後來被稱為Boltzmann機。
Hinton和Sejnowsky利用統計物理學的感念和方法,首次提出的多層網路的學習演算法,稱為Boltzmann 機模型。
(3)、BP神經網路模型:1986年,儒默哈特(D.E.Ru melhart)等人在多層神經網路模型的基礎上,提出了多層神經網路權值修正的反向傳播學習演算法----BP演算法(Error Back-Propagation),解決了多層前向神經網路的學習問題,證明了多層神經網路具有很強的學習能力,它可以完成許多學習任務,解決許多實際問題。
(4)、並行分布處理理論:1986年,由Rumelhart和McCkekkand主編的《Parallel Distributed Processing:Exploration in the Microstructures of Cognition》,該書中,他們建立了並行分布處理理論,主要致力於認知的微觀研究,同時對具有非線性連續轉移函數的多層前饋網路的誤差反向傳播演算法即BP演算法進行了詳盡的分析,解決了長期以來沒有權值調整有效演算法的難題。可以求解感知機所不能解決的問題,回答了《Perceptrons》一書中關於神經網路局限性的問題,從實踐上證實了人工神經網路有很強的運算能力。
(5)、細胞神經網路模型:1988年,Chua和Yang提出了細胞神經網路(CNN)模型,它是一個細胞自動機特性的大規模非線性計算機模擬系統。Kosko建立了雙向聯想存儲模型(BAM),它具有非監督學習能力。
(6)、Darwinism模型:Edelman提出的Darwinism模型在90年代初產生了很大的影響,他建立了一種神經網路系統理論。
(7)、1988年,Linsker對感知機網路提出了新的自組織理論,並在Shanon資訊理論的基礎上形成了最大互信息理論,從而點燃了基於NN的信息應用理論的光芒。
(8)、1988年,Broomhead和Lowe用徑向基函數(Radialbasis function, RBF)提出分層網路的設計方法,從而將NN的設計與數值分析和線性適應濾波相掛鉤。
(9)、1991年,Haken把協同引入神經網路,在他的理論框架中,他認為,認知過程是自發的,並斷言模式識別過程即是模式形成過程。
(10)、1994年,廖曉昕關於細胞神經網路的數學理論與基礎的提出,帶來了這個領域新的進展。通過拓廣神經網路的激活函數類,給出了更一般的時滯細胞神經網路(DCNN)、Hopfield神經網路(HNN)、雙向聯想記憶網路(BAM)模型。
(11)、90年代初,Vapnik等提出了支持向量機(Supportvector machines, SVM)和VC(Vapnik-Chervonenkis)維數的概念。
經過多年的發展,已有上百種的神經網路模型被提出。
④ 神經網路是什麼
神經網路是一種模仿動物神經網路行為特徵,進行分布式並行信息處理的演算法數學模型。這種網路依靠系統的復雜程度,通過調整內部大量節點之間相互連接的關系,從而達到處理信息的目的。
生物神經網路主要是指人腦的神經網路,它是人工神經網路的技術原型。人腦是人類思維的物質基礎,思維的功能定位在大腦皮層,後者含有大約10^11個神經元,每個神經元又通過神經突觸與大約103個其它神經元相連,形成一個高度復雜高度靈活的動態網路。作為一門學科,生物神經網路主要研究人腦神經網路的結構、功能及其工作機制,意在探索人腦思維和智能活動的規律。
人工神經網路是生物神經網路在某種簡化意義下的技術復現,作為一門學科,它的主要任務是根據生物神經網路的原理和實際應用的需要建造實用的人工神經網路模型,設計相應的學習演算法,模擬人腦的某種智能活動,然後在技術上實現出來用以解決實際問題。因此,生物神經網路主要研究智能的機理;人工神經網路主要研究智能機理的實現,兩者相輔相成。
(4)什麼是神經網路關系擴展閱讀:
神經網路的研究內容相當廣泛,反映了多學科交叉技術領域的特點。主要的研究工作集中在以下幾個方面:
1、生物原型
從生理學、心理學、解剖學、腦科學、病理學等方面研究神經細胞、神經網路、神經系統的生物原型結構及其功能機理。
2、建立模型
根據生物原型的研究,建立神經元、神經網路的理論模型。其中包括概念模型、知識模型、物理化學模型、數學模型等。
3、演算法
在理論模型研究的基礎上構作具體的神經網路模型,以實現計算機模擬或准備製作硬體,包括網路學習演算法的研究。這方面的工作也稱為技術模型研究。
神經網路用到的演算法就是向量乘法,並且廣泛採用符號函數及其各種逼近。並行、容錯、可以硬體實現以及自我學習特性,是神經網路的幾個基本優點,也是神經網路計算方法與傳統方法的區別所在。