Artifical neural network(ANN)

為了在語音及影像辨認獲致與人腦相似的功能,自1940年起,科學家即著手從事此方面的研究,仿造最簡單的神經元模式,開始建立最原始的類神經網路,歷經40年的發展,類神經的研究工作雖曾一度陷入低潮,近幾年又再度復甦,並且結合了生理,心理,電腦等科技而成為新的研究領域。

基本上,有兩種不同的途逕來嘗試研究大腦的功能。第一種屬於由下而上的方式,通常生物神經學家 (neurobiologists) 採用此種方式,藉由對單一神經細胞的刺激與反應 (stimulus-response) 特徵的瞭解,進而對由神經細胞聯結而成的網路能有所認識;心理學家 (psychologists) 採取的是由上而下的途逕,他們從知覺 (cognition) 與行為反應來瞭解大腦。

人類神經元

  • 人類的大腦是由大約 1011 10^11 個神經細胞 (nerve cells) 所構成,每個神經細胞又經由約 104 10^4 個突觸 (synapses) 與其它神經細胞互相聯結成一個高度非線性且複雜,但具有平行處理能力的資訊處理系統。人類的神經系統可視為三個子系統所互相協調而成的複合系統:
    • 細胞本體 (soma)
    • 軸突 (axon): 細胞藉由管狀似的軸突傳遞至其它相連接的神經元. 軸突的終點處是「突觸」,這種細胞間的信號傳遞以化學性的方式居多。
    • 樹突 (dendrites): 主要功能就是接受其它神經元所傳遞而來的信號. 若導致位於軸突丘的細胞膜電位超過某一特定閥值 (threshold)時,則所謂的「活化電位」(action potential) 的脈衝就會被激發出來。

活化電位

  • 細胞內外充滿了含有陰離子(如:氯離子,Cl- )及陽離子(如:鈉離子、鉀離子、鈣離子, Na+, K+, 及 Ca+2 等)的電解液。
    • 細胞的外圍是一層半滲透性的組織,此組織稱為細胞膜。
    • 這些離子在 (1)滲透壓和 (2)電場效應的影響下,最後會達到一種平衡狀態,使得鉀離子大部份位在細胞體內,而鈉離子大部份位在細胞體外,這時細胞便呈現約 -85mv 的「休止電位」(resting potential)。
    • 大多數的哺乳類動物的神經細胞,其休止電位差大約都接近 -70mv 。
    • 當神經細胞被刺激時,在樹突部位的細胞膜的特性會被改變,使得鈉離子可以進入細胞內,導致細胞膜電位的改變,這種電位稱為「層次電位」,其振幅與刺激強度成正比,並且會隨著傳遞距離的增加而衰減.
    • 所有位於樹突上,因刺激而引起的電位變化,都會朝向位於細胞本體上之軸突丘方向傳遞,若這些信號的綜合效果,導致軸突丘的細胞膜電位的增加,而且超過某一特定的閥值(如 -55mv)時,則「活化電位」會被激發。
    • 「活化電位」以一種振幅大小不變的方式,沿著軸突方向傳遞。刺激強度的資訊與活化電位的發生頻率有關,而與其振幅的大小無關,其傳遞的速度與 (1)軸突的直徑大小以及 (2)軸突上之細胞膜的電容及電阻性有關。
活化電位示意圖。
  • 類神經網路已被研究多年。這些類神經網路的模型主要是嘗試著去模仿人類的神經系統,因為人類的神經系統在語音、聽覺、影像和視覺方面均有很完美的表現,所以也期望這些模型能夠在這些方面有出色的成果。
人類神經系統示意圖

神經元連接方式

  • 發散型(divergent): 傳入型神經元(afferent neurons) 採取此種發散型模式,以便將所獲得之資訊,以平行之方式快速地傳達至大腦。
發散型神經元連接方式。
  • 收斂型(convergent): 大致上,所謂的輸出型神經元(efferent neurons) 與神經末稍之間的連接方式是屬於此種模式。
收斂型神經元型連接方式。
  • 鏈接及迴路型 (chains and loops): 大腦裏的神經元為了處理傳送而來的複雜資訊,發展出這種複雜的連接模式,其中有正迴授與負迴授等情形發生。
鏈接及迴路型神經元型連接方式。

人工神經元

  • 類神經網路是由很多非線性的運算單元(neuron)和位於這些運算單元間的眾多連結所組成,而這些運算單元通常是以平行且分散的方式進行運算,如此就可以同時處理大量的資料,由這樣的設計就可以被用來處理各種需要大量資料運算的應用上。

  • 個別的神經元透過是否激發出活化電位的機制,使其本身就具備處理部份資訊的能力 。

    • 至於我們要如何向生物神經網路借鏡呢?當然,第一步是設法模仿單一神經元的運作模式 。
  • 鍵結值 (synaptic weights):突觸的效果實際上可分為兩種:

    • 刺激性的突觸:此種突觸會使得被連接的神經元容易被激化,因而導致活化電位的產生。
    • 抑制性的突觸:此種突觸會使得被連接的神經元的細胞膜電位值,變得更負(即遠離閥值),因而導致此神經元不容易產生活化電位。
    • 正值的鍵結值代表是刺激性的突觸,而抑制性的突觸則由負值的鍵結值所代表,另外,突觸影響性的大或小,則與鍵結值的絕對值成正比。
    • 加法單元:產生於樹突頂端的「層次電位」,會從四面八方朝向軸突丘傳遞,此時軸突丘會執行「空間及時域」(spatio-temporal) 的整合處理,這是個十分複雜的過程,在簡單的類神經元的模型中,我們通常以一個加法單元來簡化此過程;而複雜一點的,可以用一個「有限脈衝響應濾波器」(finite impulse response filter) 來近似此過程。
    • 活化函數 (activation function):在軸突丘部位所呈現的整體細胞膜電位,若超過閥值,則「活化電位」脈衝會被激發,整個傳遞而來的資訊在這裏被調變 (modulation) 處理,軸突丘將資訊編碼於 (1)活化電位的是否產生及 (2)活化電位脈衝的產生頻率中。因此,我們將經過權重相加的輸入,透過活化函數的轉換,使得類神經元的輸出代表短期間之平均脈衝頻率。
  • Artificial neuron y=σ{i=1Nwixi+b} y = \sigma \lbrace \sum_{i=1}^N w_i x_i + b \rbrace .
    • y y 為資料的輸出(若為supervised learning時為已知,否則為未知)或是神經元的輸出.
    • xi, i=1,2,,N x_i,\ i=1,2,\cdots,N 為資料的輸入,共 N N 個特徵.
    • wi w_i 為資料中第i個輸入特徵連接到神經元的權重值.
    • b b 為神經元的bias.
  • 每一個神經細胞網路模型,其特性是由網路的拓樸(Topology)圖形,節點的特性加以決定。在訓練的過程中這些法則最初是由一組初始權重(initial Weights)值來決定,並在學習過程中調整其加權以增進效率,經由不斷的調整和學習,使得真正的網路輸出與目標值能達到相同值後,才固定網路中的加權值,此時才算訓練完成。

  • activation function是使用者自訂的函數,常用的函數如下:

    • threshold function: f(x)={1,x>0,0,x<0. f(x) = \begin{cases} 1, & x > 0, \\ 0, & x < 0. \end{cases}

    • piecewise linear function: f(x)={1,x>x1,cx,x2<x<x1,0,x<x2. f(x) = \begin{cases} 1, & x > x_1, \\ cx, & x_2 < x < x_1, \\ 0, & x < x_2. \end{cases}

    • sigmoid function: f(x)=11+ecx f(x) = \frac{1}{1+e^{-cx}}

    • Gaussian function: f(x)=ex22σ2 f(x) = e^{-\frac{x^2}{2\sigma^2}} .

網路架構

  • 單層前饋網路 (single-layer feedforward networks): 整個網路由一層具有處理資訊能力的類神經元所組成,通常此種網路的功能性較差,只能處理線性的問題。

  • 多層前饋網路 (multi-layer feedforward networks): 根據鍵結的聯接方式,此種網路又可細分為 (1)部份連結 (partially connected) 網路或 (2)完全連結 (fully connected) 網路,此種網路可處理複雜性高的問題。

  • 循環式網路 (recurrent networks): 此網路的輸出會透過另一組鍵結值,聯結於網路的某處(如輸入層或隱藏層)而迴授至網路本身。

  • 晶格狀網路 (lattice networks): 基本上,此種網路屬於前饋型網路,只不過其輸出層的類神經元是以矩陣方式所排列。

學習與記憶

  • 「學習」(learning) 是自然生物或人造系統之所以有智慧的一個極為重要的特徵。學習與記憶是密不可分的,因為有學習行為的發生才導致記憶的形成;能夠記憶才產生學習的效果。人類的記憶有以下的一些特點:
    • 人類的記憶屬於分散式 (distributed) 的儲存,並且是屬於聯想式的記憶 (associate memory) 。
    • 人類易於記憶,但卻難於回想 (recall) 。
    • 人類的記憶,根據儲存的期間長短又分為三種:
      • 立即記憶 (immediate memory);
      • 短程記憶 (short-term memory);
      • 長程記憶 (long-term memory);
  • 學習策略 (strategies) 可分為以下幾種:

    • 機械式的背誦學習 (rote learning)
    • 指令式的學習 (learning by instruction)
    • 類推式的學習 (learning by analogy)
    • 歸納式的學習 (learning by induction):此種學習又可分為以下兩種方式:
      • 從範例中學習 (learning from examples):又稱為監督式 (supervise) 學習 。
      • 從觀察及發現中學習 (learning from observation and discovery):又稱為非監督式 (unsupervised) 學習 。
  • 以數學式來描述通用型的學習規則如下: wij(t+1)=wij(t)+Δwij(t) w_{ij}(t+1) = w_{ij}(t) + \Delta w_{ij}(t) .

    • wij(t),wij(t+1) w_{ij}(t), w_{ij}(t+1) 分別代表原先與調整過後的權重值;
    • Δwij(t) \Delta w_{ij}(t) 代表此類神經元受到刺激後,為了達成學習效果,所必須採取的改變量。此改變量通常是當時的輸入 xi(t) x_{i}(t) 、原先的權重值 wij(t) w_{ij}(t) , 以及期望的輸出值 yi y_i (若為非監督學習時無此項)間的某種函數關係。

Hebbian 學習規則

  • Hebb提出「當神經元A的軸突與神經元B之距離,近到足以激發它的地步時,若神經元 A 重複地或持續地扮演激發神經元 B 的角色,則某種增長現象或新陳代謝的改變,會發生在其中之一或兩個神經元的細胞上,以至於神經元 A 能否激發神經元 B 的有效性會被提高。」

  • 因此我們得到以下的學習規則: wij(t+1)=wij(t)+F(y^j(t),xi(t)) w_{ij}(t+1) = w_{ij}(t) + F(\hat{y}_j(t), x_i(t)) .

  • 這種 Hebbian 學習規則屬於前饋 (feedforward) 式的非監督學習規則, 以下是最常使用的型式: wij(t+1)=wij(t)+ηy^j(t)xi(t) w_{ij}(t+1) = w_{ij}(t) + \eta \hat{y}_j(t) x_i(t) .

 錯誤更正法則

  • 錯誤更正法則的基本概念是,若類神經元的真實輸出值 y^j(t) \hat{y}_j(t) 與期望的目標值 yj(t) y_j(t) 不同時,則兩者之差定義為誤差信號: ej(t)=yj(t)y^j(t) e_j(t) = y_j(t) - \hat{y}_j(t) .

    • 我們可以選擇一特定的代價函數(cost function) 來反應出誤差信號的物理量;
    • 錯誤更正法則的終極目標,就是調整鍵結值使得代價函數值越來越小,亦即使類神經元的真實輸出值,越接近目標值越好,一般都採用梯度坡降法 (gradient decent method) 來搜尋一組鍵結值,使得代價函數達到最小。
  • Windrow-Hoff 學習法

    • cost function: 此學習規則,有時候亦被稱為最小均方演算法 (least square error algorithm)。 E=j=ej(t)=12j(yj(t)wj(t)x(t))2. \begin{array}{rcl} E & = & \sum_{j} = e_j(t) \\ & = & \frac{1}{2} \sum_{j} (y_j(t) - w_j^{\intop}(t)x(t))^2. \end{array}

    • 根據梯度坡降法: Δwj(t)=ηEwj(t)=η(yj(t)wjx(t))x(t). \begin{array}{rcl} \Delta w_j(t) & = & - \eta \frac{\partial E}{\partial w_j(t)} \\ & = & \eta (y_j(t) - w_j^{\intop}x(t))x(t). \end{array}

  • 競爭式學習法有時又稱為贏者全拿(winner-take-all) 學習法。

    • 步驟一:得勝者之篩選,假設在此網路中有 K 個類神經元,如果 wk(t)x(t)=maxj=1,2,,Kwj(t)x(t) w_k^{\intop}(t)x(t) = \max_{j=1,2,\cdots,K} w_j^{\intop}(t) x(t) , 那麼第k個神經元為得勝者。
    • 步驟二:鍵結值之調整 Δwj(t)={η(x(t)wj(t)), if j=k0, if jk. \Delta w_j(t) = \begin{cases} \eta(x(t) - w_j(t) ), & \text{ if } j = k \\ 0, & \text{ if } j \neq k. \end{cases}

deep neural network

  • DNN指的是hidden layers有二層以上的MLP。

    • DNN可想成把原本的複雜問題,在不同隱藏層分解成許多簡單的小問題後,最後在輸出層將結果合併以得到解答。
    • 比如說人臉辦識,輸入為圖像的每一個pixels,然後分解成許多小問題後再合併結果輸出是否為人臉,如下圖。
    • 圖中的小問題可再分解成更多子問題,即更多隱藏層,如下圖。

參考文獻

results matching ""

    No results matching ""