序列文章 上文《一文速覽機器學習的類別(Python代碼)》 提到邏輯回歸并做了簡單介紹。本文將從神經(jīng)元到邏輯回歸模型結(jié)構(gòu),并將其擴展到深度深度網(wǎng)絡(luò)模型。

一、談?wù)勚腔?/h2>
對于人類智慧奧秘的探索,不同時代、學科背景的人對于智慧的理解及其實現(xiàn)方法有著不同的思想主張。有的主張用顯式邏輯體系搭建人工智能系統(tǒng),即符號主義。有的主張用數(shù)學模型模擬大腦組成以實現(xiàn)智慧,即聯(lián)結(jié)主義,這也就是我們本文討論的方向。
那大腦為什么能夠思考?科學家發(fā)現(xiàn),原因在于人體的神經(jīng)網(wǎng)絡(luò),而神經(jīng)網(wǎng)絡(luò)的基本組成就是神經(jīng)元:

1、外部刺激通過神經(jīng)元的神經(jīng)末梢,轉(zhuǎn)化為電信號,傳導到神經(jīng)元。
2、神經(jīng)元的樹突接收電信號,由神經(jīng)元處理是否達到激活閾值再輸出興奮或者抑制電信號,最后由軸突將信號傳遞給其它細胞。
3、無數(shù)神經(jīng)元構(gòu)成神經(jīng)中樞。神經(jīng)中樞綜合各種信號,做出判斷。
4、 人體根據(jù)神經(jīng)中樞的指令,對外部刺激做出反應(yīng)。
二、神經(jīng)元
既然智慧的基礎(chǔ)是神經(jīng)元,而正因為神經(jīng)元這些特點才使大腦具有強大的 “運算及決策的能力”,科學家以此為原理發(fā)明了人工神經(jīng)元數(shù)學模型,并以神經(jīng)元為基礎(chǔ)而組合成人工神經(jīng)網(wǎng)絡(luò)模型。(注:下文談到的神經(jīng)元都特指人工神經(jīng)元)

如上圖就是人工神經(jīng)元的基本結(jié)構(gòu)。它可以輸入一定維數(shù)的輸入(如:3維的輸入,x1,x2, x3),每個輸入都相要乘上相應(yīng)的權(quán)重值(如:w0,w1,w2),乘上每一權(quán)重值的作用可以視為對每一輸入的加權(quán),也就是對每一輸入的神經(jīng)元對它的重視程度是不一樣的。
接下來神經(jīng)元將乘上權(quán)重的每個輸入做下求和(也就是加權(quán)求和),并加上截距項(截距項b可以視為對神經(jīng)元閾值的直接調(diào)整),最后由激活函數(shù)(f)非線性轉(zhuǎn)換為最終輸出值。
激活函數(shù)的種類很多,有sigmoid,tanh,sign,relu,softmax等等(下一專題會討論下激活函數(shù))。激活函數(shù)的作用是在神經(jīng)元上實現(xiàn)一道非線性的運算,以通用萬能近似定理——“如果一個前饋神經(jīng)網(wǎng)絡(luò)具有線性輸出層和至少一層隱藏層,只要給予網(wǎng)絡(luò)足夠數(shù)量的神經(jīng)元,便可以實現(xiàn)以足夠高精度來逼近任意一個在 ?n 的緊子集 (Compact subset) 上的連續(xù)函數(shù)”所表明,激活函數(shù)是深度神經(jīng)網(wǎng)絡(luò)學習擬合任意函數(shù)的前提。
三、神經(jīng)元到邏輯回歸
單個神經(jīng)元且其激活函數(shù)為sigmoid時,既是我們熟知的邏輯回歸的模型結(jié)構(gòu)。

邏輯回歸是一種廣義線性的分類模型且其模型結(jié)構(gòu)可以視為單層的神經(jīng)網(wǎng)絡(luò),由一層輸入層、一層僅帶有一個sigmoid激活函數(shù)的神經(jīng)元的輸出層組成,而無隱藏層。(注:計算網(wǎng)絡(luò)層數(shù)不計入輸入層)
在邏輯回歸模型結(jié)構(gòu)中,我們輸入數(shù)據(jù)特征x,通過輸出層神經(jīng)元激活函數(shù)σ(sigmoid函數(shù))將輸入的特征經(jīng)由sigmoid(wx + b)的計算后非線性轉(zhuǎn)換為0~1區(qū)間的數(shù)值后輸出。學習訓練過程是通過梯度下降學到合適的參數(shù)w的模型 Y=sigmoid(wx + b),使得模型輸出值Y與實際值y的誤差最小。
四、邏輯回歸到深度神經(jīng)網(wǎng)絡(luò)
基于前面的介紹可以知道,神經(jīng)網(wǎng)絡(luò)也就是神經(jīng)元按層次連接而成的網(wǎng)絡(luò),邏輯回歸是單層的神經(jīng)網(wǎng)絡(luò),當我們給僅有輸入層及輸出層的單層神經(jīng)網(wǎng)絡(luò)中間接入至少一層的隱藏層,也就是深度神經(jīng)網(wǎng)絡(luò)了。

深度神經(jīng)網(wǎng)絡(luò)包含了三種網(wǎng)絡(luò)層:輸入層、隱藏層及輸出層。
- 輸入層:為數(shù)據(jù)特征輸入層,輸入數(shù)據(jù)特征個數(shù)就對應(yīng)著網(wǎng)絡(luò)的神經(jīng)元數(shù)。
- 隱藏層:即網(wǎng)絡(luò)的中間層,隱藏層層數(shù)可以為0或者很多層,其作用接受前一層網(wǎng)絡(luò)輸出作為當前的輸入值,并計算輸出當前結(jié)果到下一層。隱藏層是神經(jīng)網(wǎng)絡(luò)性能的關(guān)鍵,通常由含激活函數(shù)的神經(jīng)元組成,以進一步加工出高層次抽象的特征,以增強網(wǎng)絡(luò)的非線性表達。隱藏網(wǎng)絡(luò)層數(shù)直接影響模型的擬合效果。
- 輸出層:為最終結(jié)果輸出的網(wǎng)絡(luò)層。輸出層的神經(jīng)元個數(shù)代表了分類標簽的個數(shù)(注:在做二分類時,如果輸出層的激活函數(shù)采用sigmoid,輸出層的神經(jīng)元個數(shù)為1個;如果采用softmax分類器,輸出層神經(jīng)元個數(shù)為2個)
數(shù)據(jù)特征(x)從輸入層輸入,每層的計算結(jié)果由前一層傳遞到下一層,最終到輸出層輸出計算結(jié)果。每個網(wǎng)絡(luò)層由一定數(shù)量的神經(jīng)元組成,神經(jīng)元可以視為一個個的計算單元,對輸入進行加權(quán)求和,故其計算結(jié)果由神經(jīng)元包含的權(quán)重(即模型參數(shù)w)直接控制,神經(jīng)元內(nèi)還可以包含激活函數(shù),可以對加權(quán)求和的結(jié)果進一步做非線性的計算,如sigmoid(wx + b)。