一壹士、仿生學
在經(jīng)典的機器學習領域役听,有很多不同類型的模型,它們大致可以分為兩類:一類是比較注重模型可解釋性的傳統(tǒng)統(tǒng)計模型孽水,比如線性回歸和邏輯回歸;另一類是側重于從結構上“模仿”數(shù)據(jù)的機器學習模型城看,比如監(jiān)督式學習SVM和非監(jiān)督式學習KMeans女气。
這些模型雖然在結構和形態(tài)上千差萬別,但它們有一個共同的建模理念测柠,就是首先對數(shù)據(jù)做假設炼鞠,然后根據(jù)這些假設進行數(shù)學推導,并最終得到模型的公式轰胁。其中最核心的部分就是模型的假設谒主,它直接決定了模型的適用范圍,也是模型效果的保障赃阀。這些模型不但能對未知數(shù)據(jù)做預測霎肯,還能幫助我們?nèi)ダ斫鈹?shù)據(jù)之間的相關關系。
但神經(jīng)網(wǎng)絡或者深度學習是一種全新的建模理念,它并不關心模型的假設以及相應的數(shù)學推導观游,也就是說它并不關心模型的可解釋性搂捧。這個理念的目的是借鑒仿生學[1]的思路,利用計算機和數(shù)學模型去模擬人的大腦备典,因此异旧,其中最核心的內(nèi)容就是工程實現(xiàn)意述。從模型角度來講提佣,這種理念的建模起點是最終的模型公式,而模型效果的保障是荤崇,這樣的模型能在一定程度上模仿大腦拌屏,而大腦是人類智能的基礎。
這種理念下設計出來的模型有很多酷炫的名字术荤,比如神經(jīng)網(wǎng)絡倚喂、人工智能以及深度學習等。這類模型雖然難以理解或者更準確地說瓣戚,到目前為止人類還無法理解端圈,但在某些特定應用場景里的預測效果卻出奇得好,因此也常常引起爭論子库。一部分人認為舱权,目前的人工智能熱只是一個泡沫,整個學科并沒有實質(zhì)性的突破仑嗅;另一部分人認為人工智能已經(jīng)在突破的前夜宴倍,在不遠的未來,它將給人類帶來巨大的便利仓技;還有一部分人認為人工智能是極其危險的東西鸵贬,我們正在創(chuàng)造一種新的具有智能的“生命”,也許在不遠的未來脖捻,這種人造的智能會統(tǒng)治地球并最終毀滅人類阔逼,就像很多科幻電影里的情節(jié)那樣。
以上這3種觀點都有其道理[2]地沮,本系列文章并不打算加入這種宏觀議題爭論嗜浮,而是采取中立立場討論相關的技術細節(jié)和發(fā)展趨勢。相信讀者通過這個系列的文章了解了人工智能的基礎知識后诉濒,會對上面的話題有自己的觀點周伦。
二、神經(jīng)元
由于神經(jīng)網(wǎng)絡的模擬對象是人的大腦未荒,那么在討論具體的模型之前专挪,我們有必要先從生物學的角度來看看人的大腦有哪些特性。
根據(jù)生物學的研究,人腦的計算單元是神經(jīng)元(neuron)寨腔。它能根據(jù)環(huán)境變化做出反應速侈,再將信息給其他的神經(jīng)元。在人腦中迫卢,大約有860億個神經(jīng)元倚搬,它們相互聯(lián)結構成了極其復雜的神經(jīng)系統(tǒng),而后者正是人類智慧的物質(zhì)基礎乾蛤。因此遵循人腦的生物結構每界,我們首先需要搭建模型來模擬人的神經(jīng)元。
如圖1所示家卖,一個典型的神經(jīng)元由4個部分組成眨层。
- 樹突:一個神經(jīng)元有若干個樹突,它們能接收來自其他神經(jīng)元的信號上荡,并將信號傳遞給細胞體趴樱。
- 細胞體:細胞體是神經(jīng)元的核心,它把各個樹突傳遞過來的信號加總起來酪捡,得到一個總的刺激信號叁征。
- 軸突:當細胞體內(nèi)的刺激信號超過一定閾值之后,神經(jīng)元的軸突會對外發(fā)送信號逛薇。
- 突觸:該神經(jīng)元發(fā)送的信號(若有)將由突觸向其他神經(jīng)元或人體內(nèi)的其他組織(對神經(jīng)信號做出反應的組織)傳遞捺疼。需要注意的是,神經(jīng)元通常有多個突觸金刁,但它們傳遞的信號都是一樣的帅涂。
將上述的神經(jīng)元結構抽象成數(shù)學概念,可以得到如圖1所示的神經(jīng)元模型尤蛮。
- 模型的輸入是數(shù)據(jù)里的自變量媳友,比如圖中的。它們用圓點表示产捞,對應著神經(jīng)元里的樹突醇锚。
- 接收輸入變量的是一個線性模型,在圖中用正方形表示坯临。這個線性模型對應著神經(jīng)元的細胞體焊唬。值得注意的是,對于神經(jīng)元中的線性模型看靠,我們將模型中的權重項和截距項特意分開赶促,用表示權重,用表示截距[3]挟炬。
- 接下來是一個非線性的激活函數(shù)(activation function)斑鼻,它將控制是否對外發(fā)送信號,在圖中用三角形表示聂儒,對應這神經(jīng)元里的軸突色难。在神經(jīng)網(wǎng)絡領域脂凶,常常用一個圓圈來概括地表示線性模型和激活函數(shù),并不將兩者分開,在本系列文章中,我們將沿用這一記號橘券。
- 將模型的各個部分聯(lián)結起來得到最后的輸出,這個值將傳遞給下一個神經(jīng)元模型卿吐,在圖中用箭頭表示旁舰,對應著神經(jīng)元里的突觸。值得注意的是但两,一個神經(jīng)元可以有多個輸出箭頭鬓梅,但它們所輸出的值都是一樣的。
在神經(jīng)元模型中谨湘,非線性的激活函數(shù)是整個模型的核心。在最初的神經(jīng)元模型中[4]芥丧,的定義是非常直觀的紧阔,當函數(shù)的自變量大于某個閾值時,則等于1续担,否則等于0擅耽。具體的公式如下:
這個模型在學術上被稱為感知器(perceptron),它可被用來解決二元分類問題(因為模型的輸出是0或1)物遇。感知器雖然在某種程度上模擬了神經(jīng)元里軸突的行為乖仇,但處理方式有些太過粗糙了,因為在生物學上询兴,神經(jīng)元輸出的是一個連續(xù)值而非離散值乃沙。這導致感知器的模型效果很一般。為了改進這一點诗舰,通常使用sigmoid函數(shù)(sigmoid function警儒,也稱為S函數(shù))來作為神經(jīng)元的激活函數(shù)[5],這樣的模型被稱為sigmoid神經(jīng)元(sigmoid neuron)眶根。
三蜀铲、Sigmoid神經(jīng)元與二元邏輯回歸
Sigmoid函數(shù)在數(shù)據(jù)科學領域是一個非常重要的函數(shù)。特別是在神經(jīng)網(wǎng)絡和深度學習領域属百,我們會經(jīng)常見到它记劝。sigmoid的函數(shù)圖像呈S形狀,因此也常被稱為S函數(shù)族扰,具體的公式如下:
使用sigmoid函數(shù)作為神經(jīng)元里的激活函數(shù)有兩大好處厌丑。從實用的角度來講钳恕,sigmoid函數(shù)能將任意的實數(shù)值映射到區(qū)間,當公式(2)中的變量是很大的負數(shù)時蹄衷,函數(shù)值接近0忧额;當變量是很大的正數(shù)時,函數(shù)值接近1愧口。這個特性在神經(jīng)元上也能找到很好的解釋:函數(shù)值接近0表示神經(jīng)元沒被激活睦番,而函數(shù)值接近1表示神經(jīng)元完全被激活。
從理論的角度來講耍属,sigmoid函數(shù)模擬了兩種效應的相互競爭:假設正效應和負效應都和自變量是近似線性關系托嚣。具體的公式如下,其中厚骗,表示正效應示启,表示負效應,和是模型參數(shù)领舰,和是服從正態(tài)分布的隨機干擾項夫嗓。
數(shù)學上可以證明,正效應大于負效應的概率可由一個sigmoid函數(shù)來近似冲秽,如公式(4)所示舍咖。
因此在神經(jīng)元模型里使用sigmoid函數(shù),就相當于給神經(jīng)元的輸出賦予了概率意義锉桑,這使得模型的理論基礎更加扎實排霉,也使得模型能被用于解決二元分類問題,比如當sigmoid神經(jīng)元的輸出大于0.5時民轴,則預測類別為1攻柠,否則預測類別為0。值得注意的是后裸,在這種情況下瑰钮,sigmoid神經(jīng)元其實就是二元邏輯回歸模型,如圖2所示轻抱。
四飞涂、廣告時間
這篇文章的大部分內(nèi)容參考自我的新書《精通數(shù)據(jù)科學:從線性回歸到深度學習》。
李國杰院士和韓家煒教授在讀過此書后祈搜,親自為其作序较店,歡迎大家購買。
另外容燕,與之相關的免費視頻課程請關注這個鏈接
-
仿生學(bionics)是模仿生物的特殊本領的一門科學梁呈,它在了解生物結構和功能原理的基礎上,來研制新的機械和新的技術蘸秘。以上簡介參考自維基百科 ?
-
這3種觀點的論據(jù)和邏輯超出了本書的討論范圍官卡,在此就不做展開蝗茁,僅列舉它們背后的權威支持者。
機器學習領域重要的學者邁克爾·I.喬丹(Michael I. Jordan)教授就持第一種觀點寻咒,他認為我們離接近人類水平的人工智能還很遠哮翘。雖然在某些領域,可以用神經(jīng)網(wǎng)絡來“偽造”智能毛秘,但理智來說饭寺,這并不是智能。
另一位很知名的學者吳恩達(Andrew Ng叫挟,他是邁克爾·I.喬丹的學生)以及企業(yè)家扎克伯格(Mark Zuckerberg)持第二種觀點艰匙。他們對人工智能的發(fā)展表示樂觀,主張人工智能是一場新的工業(yè)革命抹恳,將會像電力一樣改變工業(yè)以及人類的生活员凝。
來自業(yè)界的比爾·蓋茨(Bill Gates)和伊隆·馬斯克(Elon Musk)則持第三種觀點,他們認為雖然現(xiàn)階段人工智能并沒有表現(xiàn)出直接的危害奋献,但按照現(xiàn)在的發(fā)展速度健霹,在不遠的將來(5年或者10年之內(nèi)),我們將直接面對人工智能帶來的威脅 ? -
在神經(jīng)網(wǎng)絡中秽荞,線性模型里的截距項是有特殊生物含義的骤公,它通常對應著神經(jīng)元的激活閾值,因此需要單獨處理它 ?
-
Frank Rosenblatt于1957年在Cornell航空實驗室(Cornell Aeronautical Laboratory)設計了第一款人工神經(jīng)網(wǎng)絡扬跋。這個最初版的神經(jīng)網(wǎng)絡其實是一臺機器:由于當時的計算機還處在比較初級的階段,因此專門設計了一臺機器來實現(xiàn)這個模型 ?
-
事實上基于工程實現(xiàn)上面的考慮凌节,目前在實際應用中很少會使用sigmoid函數(shù)作為激活函數(shù) ?