從生物神經網路到人工神經網路

2022-02-10 20:50:52 字數 3573 閱讀 3845

如今提及人工智慧,大家期待的一定是某種可以「學習」的方法,這種方法使用數學模型從資料中獲取模式的某種表示。在眾多「學習」方法中,獲得最多關注,承載最多期望的非「神經網路」莫屬。既然我們將這種數學方法稱作神經網路,那麼他必然和廣泛存在於生物體內的神經網路存在某種聯絡。讓我們考察乙個典型的神經連線。

每個神經元(細胞)都向外伸出許多分支,其中用來接收輸入的分支稱作樹突(dendrities),用來輸出訊號的分支稱作軸突(axon),軸突連線到樹突上形成乙個突觸(synapse)。每個神經元可以通過這種方式連線多個其他神經元,每個神經元也可以接受多個其他神經元的連線。很多連線起來的神經元形成了網狀結構,海量具有感測和伸縮功能的體細胞通過神經纖維連線在這個網狀結構的輸入和輸出端,中樞神經系統正是通過這種網狀結構獲得了「智慧型」,至少是驅動機體做出了趨利避害的選擇。

模式識別中的分類問題就是一種典型的選擇。看起來,這給出了一種解決分類問題的啟示。但是這種網狀結構是怎麼工作的呢?生物學家已經觀察到的事實是,當有外界刺激時,網路上的某些神經元會被次第啟用。神經元被啟用的意思是這個神經元會向外傳遞訊號或者對外傳遞的訊號強度較大。

為了便於利用,需要對啟用過程建立數學模型。首先將目光聚焦在乙個突觸上,軸突釋放遞質被樹突吸收或者電訊號從樹突傳遞到軸突就完成了資訊的傳遞。如何表示突觸傳遞的資訊呢?給出選擇是用乙個數值來表示,這寓示著將資訊只歸為乙個類別,並用數值的大小表示其數量方面的屬性。這樣粗暴的簡化有意義嗎?實際遞質可是多種多樣的啊[1]!顯而易見將乙個軸突的輸出表示成乙個多維向量才是更合理的。但是我們可以引入多個虛擬突觸來實現這個多維向量的各個維度的資訊的傳遞,既然都是同樣結構的突觸,為何不先只考察其中乙個呢。

接下來考察神經元的啟用。啟用可以有兩種模型結構——跳變式和連續式。跳變式啟用方式是:引入乙個閾值,當輸入資訊經過某種處理後大於閾值即表示啟用,小於閾值表示未啟用。連續式啟用方式表示神經元不是只有啟用和未啟用兩種狀態,而是有不同的啟用水平,輸入資訊經過某種處理後直接輸出啟用水平。同樣,因為在突觸中可能[幾乎是確定的]同時傳遞了多種資訊,是否應該為乙個神經元提供多個啟用模型呢?對這個問題解答同樣是同形重複,引入虛擬神經元,讓乙個神經元只表示其中乙個啟用模型。讓這個虛擬神經元接收所有樹突上的輸入資訊,經過啟用模型處理後生成一維的啟用水平。什麼?啟用水平也應該是多維的?好辦,再引入虛擬神經元,每個神經元只管生成其中某一維的啟用水平。

多維變一維,顯然數學模型應該是加權和,給每一維找到乙個權重相乘再加起來。

但是這個模型是線性的,所有輸入和輸出組成的點集落在乙個超平面上。是不是太簡單了點,不管怎麼調整這幾個權重引數可以表示的情形都是平面。那麼再引入乙個非線性[2]函式以這個加權和為輸入,將其輸出作為啟用水平,這個非線性函式稱作啟用函式。至此神經元的數學模型算是初步建立起來了。

啟用函式該如何選取呢?很可惜,答案是不知道。目前對生物神經網路的了解,不能給予確定啟用函式的啟示。不知道那麼就可以隨意安排,早期常用的啟用函式是sigmoid。其函式影象和公式如下。

這是乙個關於(0,0.5)中心對稱的函式,以加權和作為輸入形成的超平面總是關於(0,0.5)中心對稱的,這多少讓人感覺有些不安。那麼在啟用函式的自變數上增加乙個偏移量,這個偏移量將會導致函式影象在z軸上平移。至此構成神經網路的基本元素——處理輸入產生輸出的神經元模型已經建立好了。

啟用函式的偏移量使得超平面可以離開原點了,這僅僅是數學上的意義;其實它還完成了對跳變式啟用方式的建模。參考上圖,假設水平藍線以上的數值才能表示啟用,那麼對於藍色的影象來說處於持續啟用狀態,綠色的表示只要有輸入就啟用,而紅色的部分則表示當輸入數值超過5時才忽然進入啟用狀態,這就是跳變了。

在實際操作中對於啟用函式的選取是有一定指導原則的——層數越深,啟用函式越平緩。這個原則並不是來自於對神經網路模型的深入洞察,而來自於反向傳播(bp)訓練方法的缺陷。(對於這個缺陷我會新開一篇,並附上**專門說明。)然而,隨著對生物神經網路更進一步的了解,是否能給出更好的啟用函式模型呢?答案還是不知道,甚至啟示我們要放棄這種神經網路模型都是有可能的。

有了神經元,就可以構建網路了。在構建網路之前,先對神經元的圖示結構進行簡化。如下圖所示,最終我們用乙個圓圈表示了神經元,用帶箭頭的線表示了它可以接收的輸入和可以產生的輸出。

既然神經元是乙個處理輸入產生輸出的模型,是否可以隨意地把乙個神經元的輸出連線到另乙個神經元的輸入。當然可以!卷積神經網路(cnn)和回返神經網路(rnn)這兩款分別在計算機視覺和自然語言處理中發揮巨大價值的神經網路結構正是源自於神經網路模型的這種靈活性。當然,這種靈活性也是「深度學習專家們」的學術灌水手段!。為了便於模型求解和程式設計實現,有一種簡單的層狀結構的構網方法。某一層的神經元僅接收且完全接受緊前層神經元的輸入。採用這種原則構建出來的神經網路稱作全連線神經網路。

讓我們回到給生物神經網路建立數學模型的目的上去——分類。怎麼才能用神經網路進行分類呢?分類的數學語言描述是,找從特徵空間到類別空間的對映。特徵空間的確立比較簡單,比如為了確定乙個人是男是女,可以使用體重、身高、胸圍、腰圍、臀圍這幾個屬性組成的特徵空間。類別空間的確立有兩種比較顯然的方案。第一種,只用乙個維度,0表示女,1表示男。第二種,用兩個維度,那個維度取值大就認為屬於哪個類別,如:(1,0)表示女,(0,1)表示男。通常用第二種方案表示類別空間,第一種用於解決回歸問題。並沒有什麼特殊的原因,只是第二種比較便於建立目標函式模型(通常是損失函式)以實現最優化,這也是盡量把待解決問題向分類問題上轉換的原因。

讓神經網路的輸入層神經元的個數等於特徵空間的維數,輸出層神經元的個數等於類別空間的維數,中間層隨意安排。然後將已知的資料帶入模型,求解模型的引數。將不確定男女的(體重,身高,胸圍,腰圍,臀圍)帶入模型,求出乙個解(女,男);然後判斷那一維的數值大,女》男就認為輸入的是女性的特徵,男》女就為認為輸入的是男性的特徵。

[2]啟用函式也可以是分段線性函式

生物神經網路

生物神經網路 biological neural network 一般指生物的大腦神經元 細胞 觸點等組成的網路,用於產生生物意識,幫助生物進行思考和行動。每個神經元可以看做乙個小的處理單元,這些處理單元按照某種方式相互連線起來,構成了大腦內部的生物神經元網路,這些神經元之間連線的強弱,按照外部的激...

人工神經網路 多層神經網路

模型原型 sklearn.neural network.mlpclassifier hidden layer sizes 100,activation relu algorithm adam alpha 0.0001,batch size auto learning rate constant le...

人工神經網路之前饋神經網路

1.基本概念 深度前饋神經網路也叫作多層感知機,是深度學習中最常用的模型。它包含輸入層,隱含層和輸出層三個部分。它的目的是為了實現輸入到輸出的對映。它定義了乙個函式 y f x,theta 並且通過學習theta,得到了對映函式f。深度前饋神經網路之所以稱之為深度是因為它包含了很多層 隱含層可能會有...