為什么叫神經網絡?
人腦是怎么工作的?
“人腦是一個高度復雜、非線性、并行的信息加工、處理系統。人腦神經網絡可以將聲音、視覺等信號經過多層的編碼,從最原始的底層特征不斷加工、抽象,最終得到原始信號的語義編碼。”
通俗來說,假設你眼前有一棵木蘭,你怎么知道你看到的是木蘭,而不是迎春花、桃花、其他花,甚至是一個人類?
大腦收到各個感官傳來的信息:枝干形狀,味道,花瓣質感。。等等
通過枝干形狀,大腦抽象出這是一棵樹;
通過味道,大腦抽象出這棵樹上有花;
通過花瓣質感,大腦抽象出這種花是木蘭;
在得出是木蘭的過程中可能會犯錯,大腦通過外界輸入信息(可能是識花app,可能是朋友告知等等)來不斷糾錯調整輸出值,得到最終的結果:一株木蘭
所以類似大腦的神經元,神經網絡是信息從輸入到輸出的信息處理系統。如果我們把神經網絡看作是由一組參數控制的復雜函數,并用來處理一些模式識別任務(比如語音識別、人臉識別等)時,神經網絡的參數可以通過機器學習的方式來從數據中學習。由于神經網絡模型一般比較復雜,從輸入到輸出的信息傳遞路徑一般比較長,所以復雜神經網絡的學習可以看成是一 種深度的機器學習,即深度學習。
深度學習一定用神經網絡模型嘛?
深度學習(Deep Learning)是指一類問題以及解決這類問題的方法。
首先,深度學習問題是一個機器學習問題,指從某一類任務的有限樣例中,通過算法總結出具有一般性的規律,并可以應用到新的未知數據上。比如可以從一些歷史病例的集合,總結出癥狀和疾病之間的規律。這樣,當有新的病例時,可以利用總結出來的規律,來判斷這個病人得了什么疾病。
其次,深度學習問題中采用的模型一般比較復雜,指樣本的原始輸入到輸出目標之間的數據流經過多個線性或非線性的組件加工,比如多層神經網絡可以看作 是一個深度學習模型。因為每個組件都會對信息進行加工,并進而影響后續的組件。當最后得到輸出結果時,并不清楚其中每個組件的貢獻是多少。 這個問題叫做貢獻度分配問題。
在深度學習中,貢獻度分配問題一直是一個很關鍵的問題,所以神經網絡模型成為深度學習中主要采用的模型。
但深度學習和神經網絡并不等價。深度學習可以采用神經網絡模型,也可以采用其它模型(比如深度信念網絡是一種概率圖模型)。
深度學習目前主要用于解決一些通用人工智能問題,包括計算機視覺、自然語言處理等。
人工智能
一個人在不接觸對方的情況下,通過一種特殊的方式,和 對方進行一系列的問答。如果在相當長時間內,他無法根據這 些問題判斷對方是人還是計算機,那么就可以認為這個計算機 是智能的。
— 阿蘭·圖靈 [1950],《機器能思維嗎?》
目前,人工智能的主要領域大體大體上可以分為以下幾個方面:
- 感知: 智能系統如何對外部刺激信息(視覺和語音等)進行感知和加工。在感知層面,人工智能的研究主要研究領域包括語音信息處理和計算機視覺等。
- 學習: 即機器學習,主要研究如何從樣例中進行學習。
自然語言處理: 自然語言處理主要包括自然語言理解和自然語言生成兩部分。
推理和決策: 包括知識表征、推理、規劃、決策等研究內容。
我們先來理解人腦的神經元:
一個神經元通常具有多個樹突,主要用來接受傳入信息;而軸突只有一條,軸突尾端有許多軸突末梢可以給其他多個神經元傳遞信息。軸突末梢跟其他神經元的樹突產生連接,從而傳遞信號。這個連接的位置在生物學上叫做“突觸”。簡化如下:
再簡化:
樹突(輸入)---軸突(連接)---軸突末梢(輸出)---樹突(輸入)--不斷迭代
也就是多次的由“輸入”通過“連接”到“輸出1”,“輸出1”再做為“輸入2”不斷重復輸出的過程;
在機器學習領域,神經網絡可以看作一個可學習的函數,接受不同數據的訓練,不斷通過調整權重而得到契合實際模型。
神經網絡可以看作是一個通用的函數逼近器,一個三層的神經網絡可以逼近任意的函數。因此,理論上只要有足夠的訓練數據和神經元數量,神經網絡就可以學到很多復雜的函數。人工神經網絡模型的塑造任何函數的能力大小可以稱為“容量”,與可以被儲存在網絡中的信息的數量和復雜性相關。
什么叫三層神經網絡或多層神經網絡?
單層神經網絡只有輸入層和輸出層;
二層神經網絡包括了一層隱藏層;
三層神經網絡或多層神經網絡即深度學習,意味著輸入層做為新的輸入層,以及新的一層隱藏層,最終才是目標輸入層。
隱藏層的數量以及每一層的節點數 即 神經網絡的參數,代表了神經網絡塑造函數的能力;
更多的層次代表更深入的表示特征,以及更強的函數模擬能力。
更深入的表示特征可以這樣理解,隨著網絡的層數增加,每一層對于前一層次的抽象表示更深入。
在神經網絡中,每一層神經元學習到的是前一層神經元值的更抽象的表示。
比如在識別木蘭花的例子中,神經網絡如何通過枝干形狀確定這是一棵樹?
第一個隱藏層學習到的是“邊緣”的特征;
第二個隱藏層學習到的是由“邊緣”組成的“形狀”的特征;
第三個隱藏層學習到的是由“形狀”組成的“圖案”的特征;
最后的隱藏層學習到的是由“圖案”組成的“目標”的特征。
通過抽取更抽象的特征來對事物進行區分,從而獲得更好的區分與分類能力。
神經網絡的進化過程:
神經網絡的發展背后的外在原因可以被總結為:更強的計算性能,更多的數據,以及更好的訓練方法。
只有滿足這些條件時,神經網絡的函數擬合能力才能得已體現:
量子計算
如果量子計算發展不力,仍然需要數十年才能使我們的計算能力得以突飛猛進的發展,那么缺少了強大計算能力的神經網絡可能會無法一帆風順的發展下去。三層神經網絡可能不會有更長遠的發展;
假設量子計算機真的能夠與神經網絡結合,并且助力真正的人工智能技術的誕生,而且量子計算機發展需要10年的話,那么神經網絡可能還有10年的發展期。直到那時期以后,神經網絡才能真正接近實現AI這一目標。