神經(jīng)網(wǎng)絡(luò)初識

0.導引

機器學習早在20世紀中頁券犁,就已經(jīng)吸引了相當多的學者油吭,并引起了極為熱烈的學習和探討,然而由于受各方面技術(shù)的限制毡琉,其發(fā)展陷入了相當長的停滯期。近兩年來隨著硬件計算能力的增長和在棋類項目上的突破妙色,機器學習再一次成為了萬眾矚莫的焦點桅滋,甚至連國務(wù)院印發(fā)的《新一代人工智能發(fā)展規(guī)劃》都提出要在中小學階段設(shè)置人工智能相關(guān)課程,推動人工智能領(lǐng)域一級學科建設(shè)身辨,其火熱和重要程度可見一斑丐谋。


識別mnist數(shù)據(jù)集

神經(jīng)網(wǎng)絡(luò)雖然僅僅是機器學習的一個分支,但是近年來從簡單的AlexNet煌珊,LeNet到谷歌的inception v3和微軟的ResNet号俐,再到Hinton大神2017年提出的膠囊理論,發(fā)展不可謂不迅速定庵。究其本質(zhì)吏饿,還是在統(tǒng)計學范疇之內(nèi),利用大量數(shù)據(jù)內(nèi)在的分布邏輯蔬浙,來用各種模型進行擬合猪落,從而對相同條件的未知結(jié)果的實驗進行預(yù)測,并盡可能最大化預(yù)測成功的概率畴博,因此和決策樹笨忌,樸素貝葉斯等景點模型并沒有質(zhì)的區(qū)別。

1.線性回歸 & 邏輯回歸 & 感知機

這三者可以看做是最淺層的神經(jīng)網(wǎng)絡(luò)俱病,因為不包含隱層
基本的形式可以用如下表達式描述(這里為了方便下面討論官疲,省略了偏置項b):


一般的線性表達

主要的差別在于激活函數(shù)h(x)不同
線性回歸(Linear regression)的激活函數(shù)


線性回歸激活函數(shù)
線性回歸激活函數(shù)

感知機(Perceptron)的激活函數(shù)


感知機激活函數(shù)

感知機激活函數(shù)

邏輯回歸(Logistic regressoin)的激活函數(shù)sigmoid


邏輯回歸激活函數(shù)

邏輯回歸激活函數(shù)

從適用方法上看负敏,線性回歸是一種回歸算法袜茧,可用用于線性關(guān)系的值的預(yù)測,或者更抽象一點冷守,可以用來擬合n元線性方程
想象一個場景咱揍,來估計彈簧長度與懸掛物體重量的關(guān)系颖榜,橫軸x代表物體重量棚饵,縱軸y是彈簧的長度煤裙,雖然有各種各樣的統(tǒng)計誤差掩完,但是當統(tǒng)計的數(shù)據(jù)足夠多的時候,就會發(fā)現(xiàn)其實是一個線性關(guān)系硼砰,要求取這條直線且蓬,方法有很多,比如最小二乘法


一元線性回歸

對于多元的場景也是一樣的题翰,還是剛才的例子恶阴,除了物體重量x1,這里增加一個x2代表彈簧的松弛程度豹障,當兩者疊加的時候彈簧的最終長度依然是一個線性值


二元線性回歸

而后兩者(邏輯回歸和感知機)冯事,因為激活函數(shù)的特性,適用于做二分類血公,也就是分類算法

這兩種類型的算法也涵蓋了神經(jīng)網(wǎng)絡(luò)的兩種主要用途昵仅,回歸和分類

2.梯度下降法

上面介紹了幾種線性模型,那么在實際操作中累魔,如何確定系數(shù)矩陣W呢摔笤,這里主要介紹一下梯度下降法(Gradient Descent)
我們要實現(xiàn)的目標,是通過訓練后垦写,針對輸入數(shù)據(jù)吕世,產(chǎn)生和真實結(jié)果一致的輸出,假使不能完全一致梯投,這個概率也要越大越好命辖,那么這里首先要定義一下?lián)p失函數(shù)cost function:
對于線性回歸的損失函數(shù),比較容易理解


線性回歸損失函數(shù)

上式的意義在于分蓖,如果它的值越小吮龄,代表預(yù)測值與真實樣本約接近
對于邏輯回歸,應(yīng)該如何計算損失函數(shù)呢咆疗,這里要使用條件概率漓帚,也就是在輸入x的條件下,使得輸出y是正確的概率最大

邏輯回歸

這里y是真實值午磁,y(x)是預(yù)測值尝抖,如何理解呢,假設(shè)y趨近于1迅皇,那么上式可以表達為y(x)昧辽,這樣只有預(yù)測值也趨近于1才能是概率最大,假設(shè)y趨近于0登颓,上式表達為1-y(x)搅荞,則只有y(x)趨近于0,才能使概率最大,將這個式子推廣到全部的樣本咕痛,就是全部樣本的條件概率連乘積


邏輯回歸損失函數(shù)

為了方便計算痢甘,再取一次對數(shù),得到


邏輯回歸對數(shù)損失函數(shù)

有了損失函數(shù)這樣就可以通過數(shù)學的方式茉贡,求導獲取極值點塞栅,梯度下降就是這樣的一種算法,借助求導腔丧,將每一輪迭代的參數(shù)都向極值的位置靠攏放椰,最終得到一個全局(或者局部)的最優(yōu)解

梯度下降函數(shù)

下面對其原理略作解釋,假設(shè)我們求極值的函數(shù)是二次型f(x) = (x-3)^2:


梯度下降示意

現(xiàn)在迭代到x = 4愉粤,這一點的導數(shù)df(x)/dx=2x-6等于2砾医,假定學習率α=0.2,那么x經(jīng)過梯度下降就等于4 - 0.2 * 2 = 3.6
那么再重復(fù)上述步驟衣厘,x = 3.6的導數(shù)為1.2藻烤,x = 3.6 - 0.2 * 1.2 = 3.36
可以看出來,x的值一步一步地接近了極值點3头滔,
當然x值落在極值點左邊也是一樣的
比如x = 2怖亭,df(x)/dx=2x-6 = -2,x 經(jīng)過梯度下降等于2 - 0.2 * -2 = 2.4
同樣也是朝著目標3接近坤检,那么假設(shè)要用梯度方法求極大值兴猩,那么只要把減號改成加號就行了

3.多層感知機

一個簡單的定義就是包含了至少一個隱含層(輸入層和輸出層之外的層)的感知機


一個包含了兩個隱含層的多層感知機

為何要有多層感知機呢,來看下什么是線性不可分的例子早歇,譬如下圖的數(shù)據(jù)倾芝,就沒法在平面上用直線去劃分成兩類


xor問題

解決的辦法大致有兩種,一種是升維箭跳,把低維數(shù)據(jù)映射到高維空間晨另,自然可以劃分了,另外一種就是使用非線性的劃分谱姓,而多層感知機就恰好是這種方式借尿。

做一點引申,為何只有多層感知機屉来,而沒有多層線性回歸呢路翻,主要因為感知機的激活函數(shù)是非線性的,如果是多層線性回歸疊加在一起茄靠,那么可以通過數(shù)學證明茂契,最后的各層參數(shù)矩陣相乘的結(jié)果,可以等價于一次矩陣相乘慨绳,也就是多少層線性回歸疊在一起也沒用掉冶,最后只相當于一層真竖。

那么多層的非線性激活函數(shù)的疊加,究竟能起到怎樣的作用厌小,我們來看一個例子恢共,將上圖的xor問題中的叉叉和圓圈分成AB兩類,并且量化我們的預(yù)期:

待劃分的數(shù)據(jù)

所以我們希望得到的劃分結(jié)果如表格最右邊一列召锈,那么就構(gòu)造一個只有一個隱含層的多層感知機來試試能否做到旁振。

多層感知機解決xor

上圖中获询,f11和f12是對h1節(jié)點和h2節(jié)點的激活函數(shù)涨岁,這里用了分段函數(shù),也滿足非線性的條件吉嚣,計算過程如下表:


計算結(jié)果

可以看到經(jīng)過這幾步的計算梢薪,我們等價地完成了一個非線性的劃分,成功完成了一條直線所不能的任務(wù)


非線性劃分

正向傳播(forward propergation)

上面給出的例子尝哆,直接就把合適的參數(shù)值填進去了秉撇,所以一次計算就能得到正確結(jié)果,這個計算過程秋泄,就是正向傳播琐馆。下面列出上一個例子的正向計算步驟,一共四步


多層感知機的正向傳播

這里雖然使用了矩陣的乘法表示恒序,但是實際推導過程中瘦麸,完全可以轉(zhuǎn)化成代數(shù)表達式,當然注意一點歧胁,這里為了示意滋饲,隱含層的激活函數(shù)使用了兩個分段函數(shù)f11(v) 和 f12(v) 來快速求得結(jié)果,實際的訓練過程喊巍,多層感知機多使用上面提到的sigmoid函數(shù)屠缭,當然也可以選擇雙曲正切tanh或relu函數(shù)

反向傳播(backward propergation)

上面給出的例子,直接就把一個非常理想的w參數(shù)矩陣給填上去了崭参,而且又選擇了非常討巧的激活函數(shù)呵曹,但是實際的多層感知機訓練過程常常是初始化隨機參數(shù),然后通過迭代來一步一步調(diào)整參數(shù)使其和期望值接近何暮,這個迭代過程逢并,就是反向傳播,簡稱BP郭卫。
為了解釋BP砍聊,這里先引入計算圖的概念,假設(shè)我們有函數(shù)e = (a+b) ? (b+1)贰军,那么通過復(fù)合函數(shù)的分解法則玻蝌,可以把e表示為e = c * d,
其中c = a + b
d = b + 1, 把這一分解過程用圖表示出來蟹肘,就是計算圖了
計算圖是一種有向圖,它的節(jié)點可以表示常數(shù)俯树,向量帘腹,邊可以表示一種函數(shù)操作


計算圖示意

把上圖的有向圖看做一棵樹,如果從下往上一步步由葉子節(jié)點向上推導许饿,就構(gòu)成了正向傳播的過程阳欲,相反地,從根節(jié)點向下求導陋率,根據(jù)鏈式法則一步一步求導球化,最終有了各部分的導數(shù),就可以計依據(jù)偏導數(shù)的乘法和加法法則算出e對b的偏導數(shù)瓦糟,這就構(gòu)成了反向傳播筒愚。


根據(jù)計算圖求導

如上圖,在a=2菩浙, b=1這一點巢掺,我們先直接通過公式計算出最終e對b的偏導數(shù)為:(b + 1)+ (a +b)= 2b + a + 1,b的偏導數(shù)是5
然后逐步計算看看答案是否一樣

  1. 在e點劲蜻, e對c的偏導數(shù)和對d的偏導數(shù)可以用增量求得陆淀,先求c,比如c增加0.001先嬉,c=3.001轧苫,則e=2*3.001 = 6.002,增量是0.002,所以e對c的導數(shù)為0.002 / 0.001 = 2坝初,同理求出e對d的導數(shù)為3
  2. 在c點浸剩,試求c對a的偏導數(shù),a增加0.001鳄袍,a=2.001绢要,則c=3.001,增量為0.001拗小,可知導數(shù)為0.001 / 0.001=1
    同理重罪,c點c對b的導數(shù)也是1
  3. 容易在d點求得d對b的導數(shù)1
  4. 最下一層求e對b的偏導數(shù),就是 e對c偏導數(shù) x c對b的偏導數(shù) + e對d的偏導數(shù) x d對b的偏導數(shù)=3x1 + 2x1=5
根據(jù)計算圖求導

我們可以看出哀九,反向傳播的本質(zhì)其實就是一種計算工具剿配,通過在遍歷計算圖的過程中,不斷復(fù)用上層結(jié)果逐步算出每個節(jié)點的導數(shù)阅束,大大增加了梯度下降算法的效率


偏導數(shù)的加法和乘法法則

4. CNN卷積神經(jīng)網(wǎng)絡(luò)

CNN呼胚,即 convolution neural network的縮寫。我們以2維卷積神經(jīng)網(wǎng)絡(luò)來說明其含義息裸,首先理解一下卷積的概念蝇更,其實就是用滑動窗口的思想進行矩陣相乘沪编,假設(shè)我們有綠色的5x5數(shù)據(jù)矩陣,和黃色的3x3窗口(這里我們稱其為卷積核)年扩,通過步長為1的卷積操作操作蚁廓,就得到了右側(cè)紅色的3x3結(jié)果,通俗講就是不斷移動卷積核厨幻,讓其與輸入矩陣對應(yīng)位置相乘并求和相嵌,得出一個子矩陣


卷積過程

神經(jīng)網(wǎng)絡(luò)中使用的卷積運算,在數(shù)學上其實是互相關(guān)函數(shù)(corss-relation function)况脆,表達式如下

離散卷積的表達式

上式和我們給出的動畫一致饭宾,代表卷積操作的步長(stride)為1,如果垂直和水平方向的的步長s和t不為1漠另,那么需要修改如下:

卷積表達式加入步長

2維卷積運算后的矩陣大小如何計算呢:


水平方向-valid

垂直方向-valid

其中k和l代表卷積核的寬和高捏雌,t和s代表水平和垂直方向的步長跃赚,x和y代表輸入矩陣的寬度和高度笆搓。以本節(jié)開始給出的例子,輸入矩陣是5x5纬傲,卷積核是3x3满败,步長是1那么輸出矩陣的邊長就是(5 - 3 + 1)/ 1 = 3

這種計算方式是在valid的模式下適用的,也就是卷積核移動時不會超出原矩陣的邊界叹括,如果允許超出算墨,并對超出部分補0,這種模式叫做same模式汁雷,公式就改為:


水平方向-same
垂直方向-same

卷積層特別適合處理圖像净嘀,因為這種操作和人眼的視覺細胞工作方式很像,每個視覺神經(jīng)細胞都只能感受有限的圖像區(qū)域侠讯,但是這些負責顏色和形狀的神經(jīng)細胞掃描過圖像后挖藏,就能在我們大腦合成出有效的信息

CNN示意

多個卷積核,模擬了不同工種的視覺細胞厢漩,每個負責提煉原始2維信息中的部分結(jié)構(gòu)特征膜眠,通過層層加深,把一個扁平模型逐漸深化溜嗜,對深層次的特征進行學習宵膨,最后再通過感知機中的全連接網(wǎng)絡(luò)和激活函數(shù)實現(xiàn)對特征的分類


image.png

那么使用CNN的優(yōu)勢在什么地方呢?

卷積運算在機器學習領(lǐng)域有三個重要的優(yōu)勢炸宵,分別是:

  1. 稀疏交互(sparse interactions)
  2. 參數(shù)共享(parameter sharing)
  3. 等變表示(equivariant representations)

池化

池化是一種降采樣的過程辟躏。因為CNN層通常有不止一個卷積核來提取不同維度的特征,并且為了不限制網(wǎng)絡(luò)的表示能力土全,大部分場景都會使用same模式填充0捎琐,這樣輸入尺寸不變抑钟,輸出維度增多,如果一個網(wǎng)絡(luò)包含多層CNN野哭,數(shù)據(jù)會膨脹在塔,池化就可以很好的解決這個問題。除了下面列舉的最大池化和平均池化拨黔,池化函數(shù)還可以選擇如L2范數(shù)或者舉例中心像素的加權(quán)平均函數(shù)等蛔溃。


最大池化
平均池化

池化還有一個非常重要的作用就是學習不變性,當使用分離的幾個卷積核分別學得了不同的特征篱蝇,比如下圖中旋轉(zhuǎn)了不同角度的數(shù)字5贺待,當使用池化單元計算時,可以學得對輸入的某些變換的不變性零截。


池化學習不變性

使用來自LeCun論文中的LeNet5作為案例, 來看一個基本的CNN模型是如何構(gòu)成的
(這個模型的介紹非常多麸塞,這里不再詳述,中文介紹可以參考這里

LeNet5

可以看出來涧衙,基本上就是

輸入 +(卷積+池化)x n +全連接 x m

CNN模型中哪工,常見的激活函數(shù)是relu


Relu
image.png

Relu的特點
① 單側(cè)抑制
② 相對寬闊的興奮邊界
③ 稀疏激活性


大腦神經(jīng)元激活模型對比激活函數(shù)

帶來的好處:

  • 稀疏激活,更有利于擬合數(shù)據(jù)特征
  • 收斂速度快可以解決梯度彌散問題(Vanishing Gradient Problem)
  • 計算復(fù)雜度低

CNN中全連接層的作用
充當分類器

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弧哎,一起剝皮案震驚了整個濱河市雁比,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌撤嫩,老刑警劉巖偎捎,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異序攘,居然都是意外死亡茴她,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門程奠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丈牢,“玉大人,你說我怎么就攤上這事梦染∩穆螅” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵帕识,是天一觀的道長泛粹。 經(jīng)常有香客問我,道長肮疗,這世上最難降的妖魔是什么晶姊? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮伪货,結(jié)果婚禮上们衙,老公的妹妹穿的比我還像新娘钾怔。我一直安慰自己,他們只是感情好蒙挑,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布宗侦。 她就那樣靜靜地躺著,像睡著了一般忆蚀。 火紅的嫁衣襯著肌膚如雪矾利。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天馋袜,我揣著相機與錄音男旗,去河邊找鬼。 笑死欣鳖,一個胖子當著我的面吹牛察皇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播泽台,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼什荣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了师痕?” 一聲冷哼從身側(cè)響起溃睹,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤而账,失蹤者是張志新(化名)和其女友劉穎胰坟,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泞辐,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡笔横,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了咐吼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吹缔。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖锯茄,靈堂內(nèi)的尸體忽然破棺而出厢塘,到底是詐尸還是另有隱情,我是刑警寧澤肌幽,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布晚碾,位于F島的核電站,受9級特大地震影響喂急,放射性物質(zhì)發(fā)生泄漏格嘁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一廊移、第九天 我趴在偏房一處隱蔽的房頂上張望糕簿。 院中可真熱鬧探入,春花似錦、人聲如沸懂诗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽殃恒。三九已至徒爹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間芋类,已是汗流浹背隆嗅。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留侯繁,地道東北人胖喳。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像贮竟,于是被迫代替她去往敵國和親丽焊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容

  • "目錄號: HY-14605 Neuronal SignalingAutophagy- Rasagiline甲磺酸...
    莫小楓閱讀 296評論 0 0
  • 今天聽了紫雨老師的講課《跟孩子溝通如何存疑留懸完美收官》,很受啟發(fā)惰拱,收獲頗大雌贱。 我入群時間不長,修煉不夠偿短,還沒有...
    小瓶蓋Q日記閱讀 305評論 0 7
  • 若說這玻璃杯之妙呢昔逗,它盛滿酒的時候降传,在世人眼中看來竟全是酒,只有我將其摔碎了勾怒,那看到的才真是玻璃呢婆排,請想一想,這與...
    帰零閱讀 204評論 0 1
  • 不寫文字很久了笔链,心底一直有個聲音弱弱的說著很喜歡大學寂靜的深夜寫隨筆的感覺段只,終于思念戰(zhàn)勝了懶惰,我忍不住想寫寫...
    Echo的樹洞閱讀 230評論 1 1
  • 我看不到月亮 看不到星 他們的呼嚕聲是最美妙的音樂 我最喜愛的卡乾,是強愁詩賦 可寂靜的夜 太讓人感到恐懼 我要逃離翼悴,...
    大熊爸爸閱讀 169評論 0 0