① 大腦是如何進行數據處理的
如果將人和計算機比較的話,確實有些相似之處:人的四肢和五官都是輸入和輸出設備,全身的神經網路相當於大腦的數據線,大腦左半區相當於CPU,海馬體相當於內存。
大腦擁有各種處理演算法,如視覺處理模塊、聽覺處理模塊、語言處理模塊、運動處理模塊、空間方位處理模塊等。從某種意義上來說,人的大腦,確實是一台無與倫比的超級電腦。然而,人的大腦工作機制至今還是一個前沿課題,種種不解之謎尚未完全揭開。
我們從能記事開始,大腦中就開始保存各種看到和感知的事情,就像是在存檔一個個視頻快照,只要意念一起,大腦中的神經元就能啟動播放程序,不想看來了,就放回去,這就是我們的記憶。
人腦的神經元是生物形態的神經網路,比起計算機的CPU要高級幾個維度,它們在意識的參與下,是如何完成記憶、計算和學習的,到目前為止還沒有一個很確定的答案。
如果完全弄清楚了人腦的工作機制,那目前最具劃時代意義的學科——人工智慧,將會出現飛躍式的發展。
② 神經網路是什麼
神經網路可以指向兩種,一個是生物神經網路,一個是人工神經網路。
生物神經網路:一般指生物的大腦神經元,細胞,觸點等組成的網路,用於產生生物的意識,幫助生物進行思考和行動。
人工神經網路(Artificial Neural Networks,簡寫為ANNs)也簡稱為神經網路(NNs)或稱作連接模型(Connection Model),它是一種模仿動物神經網路行為特徵,進行分布式並行信息處理的演算法數學模型。這種網路依靠系統的復雜程度,通過調整內部大量節點之間相互連接的關系,從而達到處理信息的目的。
人工神經網路:是一種應用類似於大腦神經突觸聯接的結構進行信息處理的數學模型。在工程與學術界也常直接簡稱為「神經網路」或類神經網路。
③ 神經網路從何而來
【嵌牛導讀】神經網路從何而來?這里說的『從何而來』,並不僅僅是從技術上去介紹一個方法的創造或發展,而更想探討方法背後所蘊含的思想基礎與演變之路。
【嵌牛鼻子】神經網路、深度學習
【嵌牛提問】神經網路的由來?
【嵌牛正文】深度學習與神經網路是近幾年來計算機與人工智慧領域最炙手可熱的話題了。為了蹭這波熱度,博主也打算分享一些自己的經驗與思考。第一篇文章想探討一個非常基礎的問題:神經網路從何而來?這里說的『從何而來』,並不僅僅是從技術上去介紹一個方法的創造或發展,而更想探討方法背後所蘊含的思想基礎與演變之路。
首先,需要為『神經網路』正一下名。在人工智慧領域,我們通常所說的神經網路(Neural Networks)全稱是人工神經網路(Artificial Neural Network),與之對應的是我們用肉長成的生物神經網路(Biology Neural Network)。眾所周知,人工神經網路受生物神經網路的啟發而產生,並在幾十年間不斷進步演化。可要論人類對人工智慧的探索歷史,卻遠遠長於這幾十年。為了深刻了解神經網路出現的背景,我們有必要從更早的歷史開始說起。
簡單說,人工智慧想做的事情就是去總結和提煉人類思考的過程,使之能夠機械化、可重復。從各種神話、傳說來看,我們的祖先在幾千年前就對這件事兒充滿了好奇與遐想。到兩千多年前,一大批偉大的哲學家在希臘、中國和印度相繼誕生,並將人類對這一問題的認識推向了新的高度。為避免本文成為枯燥的哲學史,這里不想舉太多的例子。偉大的希臘哲學家亞里士多德在他的《前分析篇》中提出了著名的三段論(sollygism),類似於:
所有希臘人是人
所有人終有一死
因此所有希臘人終有一死
雖然這是我們現在已經無比熟悉的推理模式,但是要在2000年前從無到有系統總結出一系列這樣的命題與推理模式,卻著實不易。有了『三段論』這種的武器,人們對問題的認識與決策就能從感性真正走向理性,做到可以重復。此外,我們熟悉的歐式幾何也是當時這種邏輯推理學派的代表。歐式幾何以一系列的公理為基礎,基於一套嚴密的邏輯推理體系,最終得到結論的證明,現在仍然是每個學生需要反復訓練的思維體操。
隨著時間的演進,認知哲學與邏輯學也在不斷的發展。在17世紀時,以笛卡爾、萊布尼茨為代表的哲學家進一步提出通過數學的方式對邏輯推演進行標准化,這也是對人腦推理與思考的再次抽象,為後續以後基於數字電路的人工智慧打下了基礎。之後,數理邏輯進一步發展,而到了20世紀中期,數理邏輯又一次取得了巨大的突破,哥德爾不完備理論、圖靈機模型等的相繼提出,科學家們既認識到了數理邏輯的局限性,也看到了將推理機械化的無限可能性,一種新的計算方式呼之欲出。
在圖靈機的思想指導下,第一台電子計算機很快被設計出來,為人工智慧的真正實現提供了物質上的基礎。其實回望人工智慧歷史上的歷次重大飛躍,硬體技術的發展無不扮演者重要的作用。很多看似有效的演算法都苦於沒有足夠強大的計算平台支持無疾而終,而計算能力的提升也可以促進科學家們們擺脫束縛,在演算法的研究道路上天馬行空。深度學習這些年的迅猛發展,很大程度就是得益於大規模集群和圖形處理器等技術的成熟,使得用復雜模型快速處理大規模數據成為可能。
1956年達特茅斯會議上,斯坦福大學科學家約翰·麥卡錫(John McCarthy)正式提出了『人工智慧』這一概念, 標志著一個學科的正式誕生,也標志著人工智慧的發展開始進入了快車道。如果說邏輯符號操作是對人類思維的本質的抽象,那麼利用電子計算機技術來模擬人類的符號推理計算也是一個自然而然的想法。在艾倫·紐威爾(Alan Newell)和赫伯特·西蒙(Herbert A.Simon)等大師的推動下,以邏輯推演為核心符號主義(symbolicism)流派很快占據了人工智慧領域的重要地位。符號主義在很多領域取得了成功,比如在80年代風靡一時的專家系統,通過知識庫和基於知識庫的推理系統模擬專家進行決策,得到了廣泛的應用。而本世紀初熱炒的語義網路以及當下最流行的知識圖譜,也可以看做這一流派的延續與發展。
符號主義最大的特點是知識的表示直觀,推理的過程清晰,但是也存在著許多局限性。除去在計算能力方面的困擾,一個很大的問題就在於雖然我們可以通過邏輯推理解決一些復雜的問題,但是對一些看似簡單的問題,比如人臉識別,卻無能為力。當看到一張人臉的照片,我們可以毫不費力的識別出這個人是誰,可這個過程並不需要做什麼復雜的推理,它在我們的大腦中瞬間完成,以至於我們對這個過程的細節卻一無所知。看起來想通過挖掘一系列嚴密的推理規則解決這類問題是相對困難的,這也促使很多人去探索與人腦工作更加貼合的解決方案。實際上在符號主義出現的同時,人工智慧的另一重要學派聯結主義(Connectionism)也開始蓬勃發展,本文的『主角』神經網路終於可以登場了。
在文章的一開始就提到,我們現在所說的人工神經網路是受生物神經網路啟發而設計出來的。在1890年,實驗心理學先驅William James在他的巨著《心理學原理》中第一次詳細論述人腦結構及功能。其中提到神經細胞受到刺激激活後可以把刺激傳播到另一個神經細胞,並且神經細胞激活是細胞所有輸入疊加的結果。這一後來得到驗證的假說也成為了人工神經網路設計的生物學基礎。基於這一假說,一系列模擬人腦神經計算的模型被相繼提出,具有代表性的有Hebbian Learning Rule, Oja's Rule和MCP Neural Model等,他們與現在通用的神經網路模型已經非常相似,例如在Hebbian Learning模型中,已經可以支持神經元之間權重的自動學習。而在1958年,Rosenblatt將這些模型付諸於實施,利用電子設備構建了真正意義上的第一個神經網路模型:感知機(Perceptron)。Rosenblatt現場演示了其學習識別簡單圖像的過程,在當時的社會引起了轟動,並帶來了神經網路的第一次大繁榮。此後的幾十年裡,神經網路又經歷了數次起起伏伏,既有春風得意一統天下的歲月,也有被打入冷宮無人問津的日子,當然,這些都是後話了。
本文更想討論這樣一個問題:神經網路產生的動機僅僅是對生物學中對神經機制的模仿嗎?在神經網路產生的背後,還蘊含著一代代科學家怎麼樣的思想與情懷呢?事實上,在神經網路為代表的一類方法在人工智慧中又被稱為聯結主義(Connectionism)。關於聯結主義的歷史,一般的文獻介紹按照慣例會追溯到希臘時期哲學家們對關聯性的定義與研究,例如我們的老朋友亞里士多德等等。然而當時哲學家研究的關聯其實並不特指神經元之間的這種關聯,比如前文提到的符號推理本身也是一種形式關聯,在希臘哲學中並沒有對這兩者進行專門的區分。所以硬要把這些說成是連接主義的思想起源略微有一些牽強。
前文提到,在數理邏輯發展過程中,17世紀的歐陸理性主義起到了重要的作用。以笛卡爾、萊布尼茨等為代表的哲學家,主張在理性中存在著天賦觀念,以此為原則並嚴格按照邏輯必然性進行推理就可以得到普遍必然的知識。與此同時,以洛克、休謨等哲學家為代表的英國經驗主義,則強調人類的知識來自於對感知和經驗歸納。這一定程度上是對絕對的真理的一種否定,人類的認識是存在主觀的,隨經驗而變化的部分的。如果在這個思想的指導下,我們與其去尋找一套普世且完備的推理系統,不如去構造一套雖不完美但能夠隨著經驗積累不斷完善的學習系統。而休謨甚至提出了放棄揭示自然界的因果聯系和必然規律,而是依據「習慣性聯想」去描繪一連串的感覺印象。這其實和神經網路設計的初衷是非常類似的:重視經驗的獲得與歸納(通過樣本進行學習),但對模型本身的嚴謹性與可解釋行則沒有那麼關注,正如有時候我們願意把神經網路模型看做是一個『黑箱』。
然而單單一個『黑箱』是不能成為經驗的學習與整理的系統的,我們還需要去尋找構建『黑箱』的一種方法論。現代哲學發展到20世紀初期時,在維特根斯坦和羅素等哲學家的倡導下,產生了邏輯經驗主義學派。依託當時邏輯學的迅猛發展,這一主義既強調經驗的作用,也重視通過嚴密的邏輯推理來得到結論,而非簡單的歸納。在數理邏輯領域頗有建樹的羅素有一位大名鼎鼎的學生諾伯特·維納,他創立的控制論與系統論、資訊理論一道,為信息科學的發展提供了堅實的理論基礎。而神經網路模型的創立也深受這『三論』的影響。前文提到MCP神經元模型的兩位創始人分別是羅素和維納的學生。作為一個系統,神經網路接受外部的輸入,得到輸出,並根據環境進行反饋,對系統進行更新,直到達到穩定狀態。這個過程,同樣也是神經網路對環境信息傳遞的接受和重新編碼的過程。如果如果把神經網路當做一個『黑盒』,那麼我們首先關心該是這個黑盒的輸入與輸出,以及如何根據環境給黑盒一個合理的反饋,使之能夠進行調整。而黑盒內部的結構,則更多的成為了形式的問題。我們借鑒生物神經網路構造這個黑盒,恰好是一個好的解決方案,但這未必是唯一的解決方案或者說與人類大腦的神經元結構存在必然的聯系。比如在統計學習領域中最著名的支持向量機(Support Vector Machines),最終是作為一種特殊的神經網路而提出的。可當其羽翼豐滿之後,則和神經網路逐漸脫離關系,開啟了機器學習的另一個門派。不同的模型形式之間可以互相轉化,但是重視經驗(樣本),強調反饋的思想卻一直保留下來。
前面說了這些,到底神經網路從何而來呢?總結下來就是三個方面吧:1.對理性邏輯的追求,對樣本實證的重視,為神經網路的誕生提供了思想的基礎。2.生物學與神經科學的發展為神經網路形式的出現提供了啟發。3.計算機硬體的發展與計算能力的提升使神經網路從理想變成了現實。而這三方面的發展也催生著神經網路的進一步發展與深度學習的成熟:更大規模的數據,更完善的優化演算法使網路能夠學習到更多更准確的信息;對人腦的認識的提升啟發設計出層次更深,結構更高效的網路結構;硬體存儲與計算能力提升使海量數據的高效訓練成為可能。而未來神經網路給我們帶來的更多驚喜,也很大可能源自於這三個方面,讓我們不妨多一些期待吧。
④ 神經網路的來源
神經網路技術起源於上世紀五、六十年代,當時叫 感知機 (perceptron),包含有輸入層、輸出層和一個隱藏層。輸入的特徵向量通過隱藏層變換到達輸出層,由輸出層得到分類結果。但早期的單層感知機存在一個嚴重的問題——它對稍微復雜一些的函數都無能為力(如異或操作)。直到上世紀八十年代才被Hition、Rumelhart等人發明的多層感知機克服,就是具有多層隱藏層的感知機。
多層感知機可以擺脫早期離散傳輸函數的束縛,使用sigmoid或tanh等連續函數模擬神經元對激勵的響應,在訓練演算法上則使用Werbos發明的反向傳播BP演算法。這就是現在所說的神經網路NN。
神經網路的層數直接決定了它對現實的刻畫能力 ——利用每層更少的神經元擬合更加復雜的函數。但問題出現了——隨著神經網路層數的加深, 優化函數越來越容易陷入局部最優解 ,並且這個「陷阱」越來越偏離真正的全局最優。利用有限數據訓練的深層網路,性能還不如較淺層網路。同時,另一個不可忽略的問題是隨著網路層數增加, 「梯度消失」現象更加嚴重 。(具體來說,我們常常使用sigmoid作為神經元的輸入輸出函數。對於幅度為1的信號,在BP反向傳播梯度時,每傳遞一層,梯度衰減為原來的0.25。層數一多,梯度指數衰減後低層基本上接受不到有效的訓練信號。)
2006年,Hition提出了深度學習的概念,引發了深度學習的熱潮。具體是利用預訓練的方式緩解了局部最優解的問題,將隱藏層增加到了7層,實現了真正意義上的「深度」。
DNN形成
為了克服梯度消失,ReLU、maxout等傳輸函數代替了sigmoid,形成了如今DNN的基本形式。結構跟多層感知機一樣,如下圖所示:
我們看到 全連接DNN的結構里下層神經元和所有上層神經元都能夠形成連接,從而導致參數數量膨脹 。假設輸入的是一幅像素為1K*1K的圖像,隱含層有1M個節點,光這一層就有10^12個權重需要訓練,這不僅容易過擬合,而且極容易陷入局部最優。
CNN形成
由於圖像中存在固有的局部模式(如人臉中的眼睛、鼻子、嘴巴等),所以將圖像處理和神將網路結合引出卷積神經網路CNN。CNN是通過卷積核將上下層進行鏈接,同一個卷積核在所有圖像中是共享的,圖像通過卷積操作後仍然保留原先的位置關系。
通過一個例子簡單說明卷積神經網路的結構。假設我們需要識別一幅彩色圖像,這幅圖像具有四個通道ARGB(透明度和紅綠藍,對應了四幅相同大小的圖像),假設卷積核大小為100*100,共使用100個卷積核w1到w100(從直覺來看,每個卷積核應該學習到不同的結構特徵)。
用w1在ARGB圖像上進行卷積操作,可以得到隱含層的第一幅圖像;這幅隱含層圖像左上角第一個像素是四幅輸入圖像左上角100*100區域內像素的加權求和,以此類推。
同理,算上其他卷積核,隱含層對應100幅「圖像」。每幅圖像對是對原始圖像中不同特徵的響應。按照這樣的結構繼續傳遞下去。CNN中還有max-pooling等操作進一步提高魯棒性。
注意到最後一層實際上是一個全連接層,在這個例子里,我們注意到輸入層到隱藏層的參數瞬間降低到了100*100*100=10^6個!這使得我們能夠用已有的訓練數據得到良好的模型。題主所說的適用於圖像識別,正是由於CNN模型限制參數了個數並挖掘了局部結構的這個特點。順著同樣的思路,利用語音語譜結構中的局部信息,CNN照樣能應用在語音識別中。
RNN形成
DNN無法對時間序列上的變化進行建模。然而,樣本出現的時間順序對於自然語言處理、語音識別、手寫體識別等應用非常重要。為了適應這種需求,就出現了大家所說的另一種神經網路結構——循環神經網路RNN。
在普通的全連接網路或CNN中,每層神經元的信號只能向上一層傳播,樣本的處理在各個時刻獨立,因此又被成為前向神經網路(Feed-forward Neural Networks)。而在RNN中,神經元的輸出可以在下一個時間段直接作用到自身,即第i層神經元在m時刻的輸入,除了(i-1)層神經元在該時刻的輸出外,還包括其自身在(m-1)時刻的輸出!表示成圖就是這樣的:
為方便分析,按照時間段展開如下圖所示:
(t+1)時刻網路的最終結果O(t+1)是該時刻輸入和所有歷史共同作用的結果!這就達到了對時間序列建模的目的。RNN可以看成一個在時間上傳遞的神經網路,它的深度是時間的長度!正如我們上面所說,「梯度消失」現象又要出現了,只不過這次發生在時間軸上。
所以RNN存在無法解決長時依賴的問題。為解決上述問題,提出了LSTM(長短時記憶單元),通過cell門開關實現時間上的記憶功能,並防止梯度消失,LSTM單元結構如下圖所示:
除了DNN、CNN、RNN、ResNet(深度殘差)、LSTM之外,還有很多其他結構的神經網路。如因為在序列信號分析中,如果我能預知未來,對識別一定也是有所幫助的。因此就有了雙向RNN、雙向LSTM,同時利用歷史和未來的信息。
事實上,不論是哪種網路,他們在實際應用中常常都混合著使用,比如CNN和RNN在上層輸出之前往往會接上全連接層,很難說某個網路到底屬於哪個類別。不難想像隨著深度學習熱度的延續,更靈活的組合方式、更多的網路結構將被發展出來。
參考鏈接:https://www.leiphone.com/news/201702/ZwcjmiJ45aW27ULB.html
⑤ 神經網路:卷積神經網路(CNN)
神經網路 最早是由心理學家和神經學家提出的,旨在尋求開發和測試神經的計算模擬。
粗略地說, 神經網路 是一組連接的 輸入/輸出單元 ,其中每個連接都與一個 權 相關聯。在學習階段,通過調整權值,使得神經網路的預測准確性逐步提高。由於單元之間的連接,神經網路學習又稱 連接者學習。
神經網路是以模擬人腦神經元的數學模型為基礎而建立的,它由一系列神經元組成,單元之間彼此連接。從信息處理角度看,神經元可以看作是一個多輸入單輸出的信息處理單元,根據神經元的特性和功能,可以把神經元抽象成一個簡單的數學模型。
神經網路有三個要素: 拓撲結構、連接方式、學習規則
神經網路的拓撲結構 :神經網路的單元通常按照層次排列,根據網路的層次數,可以將神經網路分為單層神經網路、兩層神經網路、三層神經網路等。結構簡單的神經網路,在學習時收斂的速度快,但准確度低。
神經網路的層數和每層的單元數由問題的復雜程度而定。問題越復雜,神經網路的層數就越多。例如,兩層神經網路常用來解決線性問題,而多層網路就可以解決多元非線性問題
神經網路的連接 :包括層次之間的連接和每一層內部的連接,連接的強度用權來表示。
根據層次之間的連接方式,分為:
1)前饋式網路:連接是單向的,上層單元的輸出是下層單元的輸入,如反向傳播網路,Kohonen網路
2)反饋式網路:除了單項的連接外,還把最後一層單元的輸出作為第一層單元的輸入,如Hopfield網路
根據連接的范圍,分為:
1)全連接神經網路:每個單元和相鄰層上的所有單元相連
2)局部連接網路:每個單元只和相鄰層上的部分單元相連
神經網路的學習
根據學習方法分:
感知器:有監督的學習方法,訓練樣本的類別是已知的,並在學習的過程中指導模型的訓練
認知器:無監督的學習方法,訓練樣本類別未知,各單元通過競爭學習。
根據學習時間分:
離線網路:學習過程和使用過程是獨立的
在線網路:學習過程和使用過程是同時進行的
根據學習規則分:
相關學習網路:根據連接間的激活水平改變權系數
糾錯學習網路:根據輸出單元的外部反饋改變權系數
自組織學習網路:對輸入進行自適應地學習
摘自《數學之美》對人工神經網路的通俗理解:
神經網路種類很多,常用的有如下四種:
1)Hopfield網路,典型的反饋網路,結構單層,有相同的單元組成
2)反向傳播網路,前饋網路,結構多層,採用最小均方差的糾錯學習規則,常用於語言識別和分類等問題
3)Kohonen網路:典型的自組織網路,由輸入層和輸出層構成,全連接
4)ART網路:自組織網路
深度神經網路:
Convolutional Neural Networks(CNN)卷積神經網路
Recurrent neural Network(RNN)循環神經網路
Deep Belief Networks(DBN)深度信念網路
深度學習是指多層神經網路上運用各種機器學習演算法解決圖像,文本等各種問題的演算法集合。深度學習從大類上可以歸入神經網路,不過在具體實現上有許多變化。
深度學習的核心是特徵學習,旨在通過分層網路獲取分層次的特徵信息,從而解決以往需要人工設計特徵的重要難題。
Machine Learning vs. Deep Learning
神經網路(主要是感知器)經常用於 分類
神經網路的分類知識體現在網路連接上,被隱式地存儲在連接的權值中。
神經網路的學習就是通過迭代演算法,對權值逐步修改的優化過程,學習的目標就是通過改變權值使訓練集的樣本都能被正確分類。
神經網路特別適用於下列情況的分類問題:
1) 數據量比較小,缺少足夠的樣本建立模型
2) 數據的結構難以用傳統的統計方法來描述
3) 分類模型難以表示為傳統的統計模型
缺點:
1) 需要很長的訓練時間,因而對於有足夠長訓練時間的應用更合適。
2) 需要大量的參數,這些通常主要靠經驗確定,如網路拓撲或「結構」。
3) 可解釋性差 。該特點使得神經網路在數據挖掘的初期並不看好。
優點:
1) 分類的准確度高
2)並行分布處理能力強
3)分布存儲及學習能力高
4)對噪音數據有很強的魯棒性和容錯能力
最流行的基於神經網路的分類演算法是80年代提出的 後向傳播演算法 。後向傳播演算法在多路前饋神經網路上學習。
定義網路拓撲
在開始訓練之前,用戶必須說明輸入層的單元數、隱藏層數(如果多於一層)、每一隱藏層的單元數和輸出層的單元數,以確定網路拓撲。
對訓練樣本中每個屬性的值進行規格化將有助於加快學習過程。通常,對輸入值規格化,使得它們落入0.0和1.0之間。
離散值屬性可以重新編碼,使得每個域值一個輸入單元。例如,如果屬性A的定義域為(a0,a1,a2),則可以分配三個輸入單元表示A。即,我們可以用I0 ,I1 ,I2作為輸入單元。每個單元初始化為0。如果A = a0,則I0置為1;如果A = a1,I1置1;如此下去。
一個輸出單元可以用來表示兩個類(值1代表一個類,而值0代表另一個)。如果多於兩個類,則每個類使用一個輸出單元。
隱藏層單元數設多少個「最好」 ,沒有明確的規則。
網路設計是一個實驗過程,並可能影響准確性。權的初值也可能影響准確性。如果某個經過訓練的網路的准確率太低,則通常需要採用不同的網路拓撲或使用不同的初始權值,重復進行訓練。
後向傳播演算法學習過程:
迭代地處理一組訓練樣本,將每個樣本的網路預測與實際的類標號比較。
每次迭代後,修改權值,使得網路預測和實際類之間的均方差最小。
這種修改「後向」進行。即,由輸出層,經由每個隱藏層,到第一個隱藏層(因此稱作後向傳播)。盡管不能保證,一般地,權將最終收斂,學習過程停止。
演算法終止條件:訓練集中被正確分類的樣本達到一定的比例,或者權系數趨近穩定。
後向傳播演算法分為如下幾步:
1) 初始化權
網路的權通常被初始化為很小的隨機數(例如,范圍從-1.0到1.0,或從-0.5到0.5)。
每個單元都設有一個偏置(bias),偏置也被初始化為小隨機數。
2) 向前傳播輸入
對於每一個樣本X,重復下面兩步:
向前傳播輸入,向後傳播誤差
計算各層每個單元的輸入和輸出。輸入層:輸出=輸入=樣本X的屬性;即,對於單元j,Oj = Ij = Xj。隱藏層和輸出層:輸入=前一層的輸出的線性組合,即,對於單元j, Ij =wij Oi + θj,輸出=
3) 向後傳播誤差
計算各層每個單元的誤差。
輸出層單元j,誤差:
Oj是單元j的實際輸出,而Tj是j的真正輸出。
隱藏層單元j,誤差:
wjk是由j到下一層中單元k的連接的權,Errk是單元k的誤差
更新 權 和 偏差 ,以反映傳播的誤差。
權由下式更新:
其中,△wij是權wij的改變。l是學習率,通常取0和1之間的值。
偏置由下式更新:
其中,△θj是偏置θj的改變。
Example
人類視覺原理:
深度學習的許多研究成果,離不開對大腦認知原理的研究,尤其是視覺原理的研究。1981 年的諾貝爾醫學獎,頒發給了 David Hubel(出生於加拿大的美國神經生物學家) 和Torsten Wiesel,以及Roger Sperry。前兩位的主要貢獻,是「發現了視覺系統的信息處理」, 可視皮層是分級的 。
人類的視覺原理如下:從原始信號攝入開始(瞳孔攝入像素Pixels),接著做初步處理(大腦皮層某些細胞發現邊緣和方向),然後抽象(大腦判定,眼前的物體的形狀,是圓形的),然後進一步抽象(大腦進一步判定該物體是只氣球)。
對於不同的物體,人類視覺也是通過這樣逐層分級,來進行認知的:
在最底層特徵基本上是類似的,就是各種邊緣,越往上,越能提取出此類物體的一些特徵(輪子、眼睛、軀乾等),到最上層,不同的高級特徵最終組合成相應的圖像,從而能夠讓人類准確的區分不同的物體。
可以很自然的想到:可以不可以模仿人類大腦的這個特點,構造多層的神經網路,較低層的識別初級的圖像特徵,若干底層特徵組成更上一層特徵,最終通過多個層級的組合,最終在頂層做出分類呢?答案是肯定的,這也是許多深度學習演算法(包括CNN)的靈感來源。
卷積神經網路是一種多層神經網路,擅長處理圖像特別是大圖像的相關機器學習問題。卷積網路通過一系列方法,成功將數據量龐大的圖像識別問題不斷降維,最終使其能夠被訓練。
CNN最早由Yann LeCun提出並應用在手寫字體識別上。LeCun提出的網路稱為LeNet,其網路結構如下:
這是一個最典型的卷積網路,由 卷積層、池化層、全連接層 組成。其中卷積層與池化層配合,組成多個卷積組,逐層提取特徵,最終通過若干個全連接層完成分類。
CNN通過卷積來模擬特徵區分,並且通過卷積的權值共享及池化,來降低網路參數的數量級,最後通過傳統神經網路完成分類等任務。
降低參數量級:如果使用傳統神經網路方式,對一張圖片進行分類,那麼,把圖片的每個像素都連接到隱藏層節點上,對於一張1000x1000像素的圖片,如果有1M隱藏層單元,一共有10^12個參數,這顯然是不能接受的。
但是在CNN里,可以大大減少參數個數,基於以下兩個假設:
1)最底層特徵都是局部性的,也就是說,用10x10這樣大小的過濾器就能表示邊緣等底層特徵
2)圖像上不同小片段,以及不同圖像上的小片段的特徵是類似的,也就是說,能用同樣的一組分類器來描述各種各樣不同的圖像
基於以上兩個假設,就能把第一層網路結構簡化
用100個10x10的小過濾器,就能夠描述整幅圖片上的底層特徵。
卷積運算的定義如下圖所示:
如上圖所示,一個5x5的圖像,用一個3x3的 卷積核 :
101
010
101
來對圖像進行卷積操作(可以理解為有一個滑動窗口,把卷積核與對應的圖像像素做乘積然後求和),得到了3x3的卷積結果。
這個過程可以理解為使用一個過濾器(卷積核)來過濾圖像的各個小區域,從而得到這些小區域的特徵值。在實際訓練過程中, 卷積核的值是在學習過程中學到的。
在具體應用中,往往有多個卷積核,可以認為, 每個卷積核代表了一種圖像模式 ,如果某個圖像塊與此卷積核卷積出的值大,則認為此圖像塊十分接近於此卷積核。如果設計了6個卷積核,可以理解為這個圖像上有6種底層紋理模式,也就是用6種基礎模式就能描繪出一副圖像。以下就是24種不同的卷積核的示例:
池化 的過程如下圖所示:
可以看到,原始圖片是20x20的,對其進行采樣,采樣窗口為10x10,最終將其采樣成為一個2x2大小的特徵圖。
之所以這么做,是因為即使做完了卷積,圖像仍然很大(因為卷積核比較小),所以為了降低數據維度,就進行采樣。
即使減少了許多數據,特徵的統計屬性仍能夠描述圖像,而且由於降低了數據維度,有效地避免了過擬合。
在實際應用中,分為最大值采樣(Max-Pooling)與平均值采樣(Mean-Pooling)。
LeNet網路結構:
注意,上圖中S2與C3的連接方式並不是全連接,而是部分連接。最後,通過全連接層C5、F6得到10個輸出,對應10個數字的概率。
卷積神經網路的訓練過程與傳統神經網路類似,也是參照了反向傳播演算法
第一階段,向前傳播階段:
a)從樣本集中取一個樣本(X,Yp),將X輸入網路;
b)計算相應的實際輸出Op
第二階段,向後傳播階段
a)計算實際輸出Op與相應的理想輸出Yp的差;
b)按極小化誤差的方法反向傳播調整權矩陣。
⑥ 神經網路的基本原理是什麼
神經網路的基本原理是:每個神經元把最初的輸入值乘以一定的權重,並加上其他輸入到這個神經元里的值(並結合其他信息值),最後算出一個總和,再經過神經元的偏差調整,最後用激勵函數把輸出值標准化。基本上,神經網路是由一層一層的不同的計算單位連接起來的。我們把計算單位稱為神經元,這些網路可以把數據處理分類,就是我們要的輸出。
神經網路常見的工具:
以上內容參考:在眾多的神經網路工具中,NeuroSolutions始終處於業界領先位置。它是一個可用於windows XP/7高度圖形化的神經網路開發工具。其將模塊化,基於圖標的網路設計界面,先進的學習程序和遺傳優化進行了結合。該款可用於研究和解決現實世界的復雜問題的神經網路設計工具在使用上幾乎無限制。
以上內容參考:網路-神經網路