1. 程式人生 > >神經網路(一):神經元模型與邏輯迴歸

神經網路(一):神經元模型與邏輯迴歸

一、仿生學

在經典的機器學習領域,有很多不同型別的模型,它們大致可以分為兩類:一類是比較注重模型可解釋性的傳統統計模型,比如線性迴歸和邏輯迴歸;另一類是側重於從結構上“模仿”資料的機器學習模型,比如監督式學習SVM和非監督式學習KMeans。

這些模型雖然在結構和形態上千差萬別,但它們有一個共同的建模理念,就是首先對資料做假設,然後根據這些假設進行數學推導,並最終得到模型的公式。其中最核心的部分就是模型的假設,它直接決定了模型的適用範圍,也是模型效果的保障。這些模型不但能對未知資料做預測,還能幫助我們去理解資料之間的相關關係。

但神經網路或者深度學習是一種全新的建模理念,它並不關心模型的假設以及相應的數學推導,也就是說它並不關心模型的可解釋性。這個理念的目的是借鑑仿生學

1的思路,利用計算機和數學模型去模擬人的大腦,因此,其中最核心的內容就是工程實現。從模型角度來講,這種理念的建模起點是最終的模型公式,而模型效果的保障是,這樣的模型能在一定程度上模仿大腦,而大腦是人類智慧的基礎。

這種理念下設計出來的模型有很多酷炫的名字,比如神經網路、人工智慧以及深度學習等。這類模型雖然難以理解或者更準確地說,到目前為止人類還無法理解,但在某些特定應用場景裡的預測效果卻出奇得好,因此也常常引起爭論。一部分人認為,目前的人工智慧熱只是一個泡沫,整個學科並沒有實質性的突破;另一部分人認為人工智慧已經在突破的前夜,在不遠的未來,它將給人類帶來巨大的便利;還有一部分人認為人工智慧是極其危險的東西,我們正在創造一種新的具有智慧的“生命”,也許在不遠的未來,這種人造的智慧會統治地球並最終毀滅人類,就像很多科幻電影裡的情節那樣。

以上這3種觀點都有其道理2,本系列文章並不打算加入這種巨集觀議題爭論,而是採取中立立場討論相關的技術細節和發展趨勢。相信讀者通過這個系列的文章瞭解了人工智慧的基礎知識後,會對上面的話題有自己的觀點。

二、神經元

由於神經網路的模擬物件是人的大腦,那麼在討論具體的模型之前,我們有必要先從生物學的角度來看看人的大腦有哪些特性。

根據生物學的研究,人腦的計算單元是神經元(neuron)。它能根據環境變化做出反應,再將資訊給其他的神經元。在人腦中,大約有860億個神經元,它們相互聯結構成了極其複雜的神經系統,而後者正是人類智慧的物質基礎。因此遵循人腦的生物結構,我們首先需要搭建模型來模擬人的神經元。

如圖1所示,一個典型的神經元由4個部分組成。

  • 樹突:一個神經元有若干個樹突,它們能接收來自其他神經元的訊號,並將訊號傳遞給細胞體。
  • 細胞體:細胞體是神經元的核心,它把各個樹突傳遞過來的訊號加總起來,得到一個總的刺激訊號。
  • 軸突:當細胞體內的刺激訊號超過一定閾值之後,神經元的軸突會對外發送訊號。
  • 突觸:該神經元傳送的訊號(若有)將由突觸向其他神經元或人體內的其他組織(對神經訊號做出反應的組織)傳遞。需要注意的是,神經元通常有多個突觸,但它們傳遞的訊號都是一樣的。
圖1

將上述的神經元結構抽象成數學概念,可以得到如圖1所示的神經元模型。

  • 模型的輸入是資料裡的自變數,比如圖中的x1,x2,x3x_1, x_2, x_3。它們用圓點表示,對應著神經元裡的樹突。
  • 接收輸入變數的是一個線性模型,在圖中用正方形表示。這個線性模型對應著神經元的細胞體。值得注意的是,對於神經元中的線性模型,我們將模型中的權重項和截距項特意分開,用表示權重wiw_i,用bb表示截距3
  • 接下來是一個非線性的啟用函式ff(activation function),它將控制是否對外發送訊號,在圖中用三角形表示,對應這神經元裡的軸突。在神經網路領域,常常用一個圓圈來概括地表示線性模型和啟用函式,並不將兩者分開,在本系列文章中,我們將沿用這一記號。
  • 將模型的各個部分聯結起來得到最後的輸出f(iwixi+b)f(\sum_i w_ix_i + b),這個值將傳遞給下一個神經元模型,在圖中用箭頭表示,對應著神經元裡的突觸。值得注意的是,一個神經元可以有多個輸出箭頭,但它們所輸出的值都是一樣的。

在神經元模型中,非線性的啟用函式ff是整個模型的核心。在最初的神經元模型中4,的定義是非常直觀的,當函式的自變數大於某個閾值時,則等於1,否則等於0。具體的公式如下:

(1)f={1,x>00,x<=0f = \begin{cases} 1, x > 0\\0, x <= 0 \end{cases} \tag{1}

這個模型在學術上被稱為感知器(perceptron),它可被用來解決二元分類問題(因為模型的輸出是0或1)。感知器雖然在某種程度上模擬了神經元裡軸突的行為,但處理方式有些太過粗糙了,因為在生物學上,神經元輸出的是一個連續值而非離散值。這導致感知器的模型效果很一般。為了改進這一點,通常使用sigmoid函式(sigmoid function,也稱為S函式)來作為神經元的啟用函式5,這樣的模型被稱為sigmoid神經元(sigmoid neuron)。

三、Sigmoid神經元與二元邏輯迴歸

Sigmoid函式在資料科學領域是一個非常重要的函式。特別是在神經網路和深度學習領域,我們會經常見到它。sigmoid的函式影象呈S形狀,因此也常被稱為S函式,具體的公式如下:

(2)S(z)=11+ezS(z) = \frac{1}{1 + e^{-z}}\tag{2}

使用sigmoid函式作為神經元裡的啟用函式有兩大好處。從實用的角度來講,sigmoid函式能將任意的實數值對映到(0,1)(0, 1)區間,當公式(2)中的變數zz是很大的負數時,函式值接近0;當變數zz是很大的正數時,函式值接近1。這個特性在神經元上也能找到很好的解釋:函式值接近0表示神經元沒被啟用,而函式值接近1表示神經元完全被啟用。

從理論的角度來講,sigmoid函式模擬了兩種效應的相互競爭:假設正效應和負效應都和自變數X=(x1,x2,...,xk)X = (x_1, x_2, ..., x_k)是近似線性關係。具體的公式如下,其中,YY^*表示正效應,YY^{\sim}表示負效應,Wi=(wi,1,wi,2,...,wi,k)W_i = (w_{i, 1}, w_{i, 2}, ..., w_{i, k})bib_i是模型引數,θ\thetaτ\tau是服從正態分佈的隨機干擾項。

(3)Y=XW1T+b1+θY=XW2T+b2+τY^* = XW_1^T + b_1 + \theta \\ Y^\sim = XW_2^T + b_2 + \tau \tag{3}

數學上可以證明,正效應大於負效應的概率可由一個sigmoid函式來近似,如公式(4)所示。

(4)P(YY)=S(XWT+b)P(Y^* - Y^\sim) = S(XW^T + b) \tag{4}

因此在神經元模型裡使用sigmoid函式,就相當於給神經元的輸出賦予了概率意義,這使得模型的理論基礎更加紮實,也使得模型能被用於解決二元分類問題,比如當sigmoid神經元的輸出大於0.5時,則預測類別為1,否則預測類別為0。值得注意的是,在這種情況下,sigmoid神經元其實就是二元邏輯迴歸模型,如圖2所示。

圖2

四、廣告時間

李國傑院士和韓家煒教授在讀過此書後,親自為其作序,歡迎大家購買。

另外,與之相關的免費視訊課程請關注這個連結

  1. 仿生學(bionics)是模仿生物的特殊本領的一門科學,它在瞭解生物結構和功能原理的基礎上,來研製新的機械和新的技術。以上簡介參考自維基百科 ↩︎

  2. 這3種觀點的論據和邏輯超出了本書的討論範圍,在此就不做展開,僅列舉它們背後的權威支持者。
    機器學習領域重要的學者邁克爾·I.喬丹(Michael I. Jordan)教授就持第一種觀點,他認為我們離接近人類水平的人工智慧還很遠。雖然在某些領域,可以用神經網路來“偽造”智慧,但理智來說,這並不是智慧。
    另一位很知名的學者吳恩達(Andrew Ng,他是邁克爾·I.喬丹的學生)以及企業家扎克伯格(Mark Zuckerberg)持第二種觀點。他們對人工智慧的發展表示樂觀,主張人工智慧是一場新的工業革命,將會像電力一樣改變工業以及人類的生活。
    來自業界的比爾·蓋茨(Bill Gates)和伊隆·馬斯克(Elon Musk)則持第三種觀點,他們認為雖然現階段人工智慧並沒有表現出直接的危害,但按照現在的發展速度,在不遠的將來(5年或者10年之內),我們將直接面對人工智慧帶來的威脅 ↩︎

  3. 在神經網路中,線性模型裡的截距項是有特殊生物含義的,它通常對應著神經元的啟用閾值,因此需要單獨處理它 ↩︎

  4. Frank Rosenblatt於1957年在Cornell航空實驗室(Cornell Aeronautical Laboratory)設計了第一款人工神經網路。這個最初版的神經網路其實是一臺機器:由於當時的計算機還處在比較初級的階段,因此專門設計了一臺機器來實現這個模型 ↩︎

  5. 事實上基於工程實現上面的考慮,目前在實際應用中很少會使用sigmoid函式作為啟用函式 ↩︎

相關推薦

no