詳解深度學習感知機原理

大家好课兄,歡迎閱讀深度學習專題牍氛。

我們之前的機器學習專題已經(jīng)結(jié)束了,我們把機器學習領域當中常用的算法烟阐、模型以及它們的原理以及實現(xiàn)都過了一遍搬俊。雖然還有一些技術,比如馬爾科夫曲饱、隱馬爾科夫悠抹、條件隨機場等等沒有涉及到。但是這些內(nèi)容相比來說要弱一些扩淀,使用頻率并不是非常高楔敌,我們就不一一敘述了,感興趣的同學可以自行研究一下驻谆。我想像是GBDT卵凑、SVM這些模型都能理解的話,那些模型想必也不在話下胜臊。

深度學習簡介

深度學習最近幾年非成茁火,很多人會把它和人工智能扯上聯(lián)系象对。這里的深入并不是指學習深入黑忱,也不是指概念很深入,只是單純地指多層神經(jīng)網(wǎng)絡組成的“深度”神經(jīng)網(wǎng)絡勒魔。

其實無論是神經(jīng)網(wǎng)絡還是深度神經(jīng)網(wǎng)絡或者是深度學習當中的算法甫煞,其實至今都已經(jīng)有好幾十年的歷史了。比如眾所周知的深度學習核心算法反向傳播算法最早提出在1989年冠绢,距今已經(jīng)三十多年了抚吠。雖然歷史并不短,但是這門領域之前起起伏伏弟胀,雖然也曾輝煌過楷力,但一直到最近幾年才強勢崛起,成為了幾乎家喻戶曉的概念孵户。

其中的原因也很簡單萧朝,因為訓練神經(jīng)網(wǎng)絡的復雜度實在是太大了,以之前的計算資源根本扛不住這么大規(guī)模的運算延届。所以在之前那個年代剪勿,深度學習還是一個偏小眾的領域。研究的人不多方庭,經(jīng)費也有限厕吉。直到最近幾年酱固,由于計算資源飛速發(fā)展,再加上通過GPU加速神經(jīng)網(wǎng)絡訓練的黑科技被發(fā)明出來头朱,使得原本不可能做到的變成了可能运悲。再加上阿爾法狗戰(zhàn)勝了李世石這種劃時代的事件發(fā)生,導致了深度學習一時間吸引了大量的資源與關注项钮,那么這個行業(yè)自然也就蒸蒸日上發(fā)展起來了班眯。

既然深度學習是有關于神經(jīng)網(wǎng)絡的技術,那么我們這個專題文章講解的內(nèi)容自然也不會脫離神經(jīng)網(wǎng)絡的范疇烁巫。今天我們就從神經(jīng)網(wǎng)絡最基礎的神經(jīng)元——感知機開始說起署隘。

感知機

感知機的英文是perceptron,我們可以把它理解成神經(jīng)網(wǎng)絡的最小構成單位亚隙。我們知道在自然界的生物體當中磁餐,神經(jīng)的最小單位是神經(jīng)元,一個神經(jīng)元是一個細胞阿弃,它大概長成下面這個樣子诊霹。我想絕大多數(shù)同學都應該曾經(jīng)在生物課的課本上看到過神經(jīng)元的圖片。

感知機可以理解成神經(jīng)元的仿生結(jié)構渣淳,我們都知道一個神經(jīng)元細胞可以連接多個神經(jīng)細胞脾还,這些神經(jīng)元之間彼此連接形成了一張巨大的網(wǎng)絡。神經(jīng)元之間可以互相傳遞電信號以及化學物質(zhì)入愧,從而形成了一系列復雜的反應鄙漏。人類的大腦就可以理解成一張極其巨大且復雜的神經(jīng)網(wǎng)絡,但是關于人類的大腦以及生物的神經(jīng)元網(wǎng)絡究竟是如何起作用的棺蛛,目前還沒有定論泥张。

但計算學家模擬神經(jīng)元以及神經(jīng)網(wǎng)絡搭建了深度學習的模型,的確在一些問題上取得了非凡的結(jié)果鞠值。感知機就可以認為是一個神經(jīng)元細胞的抽象,我們都知道一個神經(jīng)元細胞會從其他若干個神經(jīng)元當中獲取信號渗钉,也會向另一個神經(jīng)元細胞傳遞信號彤恶。我們把傳入的信號當成是輸入,傳出的信號當做是輸出鳄橘,這樣就得到了感知機的結(jié)構声离。

這里我們把結(jié)構做到了最簡,我們把輸入的信號都看成是浮點數(shù)瘫怜,每一個信號都有一個自己的權重术徊,所有的信號會累加在一起,最后通過一個映射函數(shù)輸出信號鲸湃。

我們來看最簡單的感知機來做個例子:

這個感知機只有兩個輸入赠涮,我們很容易得到

子寓。這里的y是一個浮點數(shù),我們可以在y上套一個sign函數(shù)笋除。所謂的sign函數(shù)斜友,即使根據(jù)閾值來進行分類。比如我們設置一個閾值

垃它,如果

鲜屏,那么

,否則的話

国拇。

說起來又是神經(jīng)元又是感知機什么的洛史,但它的原理很簡單,我們把公式寫出來就是:

酱吝,這里的

叫做激活函數(shù)(activate function)也殖。我們上面列舉的例子當中的激活函數(shù)是sign函數(shù),也就是根據(jù)閾值進行分類的函數(shù)掉瞳。在神經(jīng)網(wǎng)絡當中常用的激活函數(shù)主要有三種毕源,一種是我們之前就非常熟悉的sigmoid函數(shù),一種是relu函數(shù)陕习,另外一種是tanh函數(shù)霎褐。我們來分別看下他們的圖像。

relu函數(shù)的方程很簡單:

该镣。但是它的效果非常好冻璃,也是神經(jīng)網(wǎng)絡當中最常用的激活函數(shù)之一。使用它的收斂速度要比sigmoid更快损合,原因也很簡單省艳,因為sigmoid函數(shù)圖像兩邊非常非常光滑,導致我們求導得出的結(jié)果非常接近0嫁审,這樣我們梯度下降的時候自然收斂速度就慢了跋炕。這一點我們之前在介紹sigmoid函數(shù)的時候曾經(jīng)提到過。

從圖像上來看tanh函數(shù)和sigmoid函數(shù)非常相似律适,一點細微的差別是他們的值域不同辐烂,sigmoid函數(shù)的值域是0到1,而tanh是-1到1捂贿。雖然看起來只是值域不同纠修,但是區(qū)別還是挺大的,一方面是兩者的敏感區(qū)間不同厂僧。tanh的敏感區(qū)間相比來說更大扣草,另外一點是,sigmoid輸出的值都是正值,在一些場景當中可能會產(chǎn)生問題辰妙。

相信大家看出來了鹰祸,感知機其實就是一個線性方程再套上一個激活函數(shù)。某種程度上來說邏輯回歸模型也可以看成是一個感知機上岗。有一個問題大家可能感到很疑惑福荸,為什么線性方程后面需要加上一個激活函數(shù)呢?如果不加行不行肴掷?

答案是不行敬锐,原因也很簡單,因為當我們把多個神經(jīng)元組織在一起形成了一張網(wǎng)絡之后呆瞻。如果每一個神經(jīng)元的計算都是這樣純線性的台夺,那么整個神經(jīng)網(wǎng)絡其實也等價于一個線性的運算。這個是可以在數(shù)學上得到證明的痴脾,所以我們需要在感知機當中增加一點東西颤介,讓它的計算結(jié)果不是純線性的。

感知機和邏輯電路

最后我們來看一個實際一點的例子赞赖,最簡單的例子當然是邏輯電路當中的與或門滚朵。與門、或門前域、非門其實都差不多辕近,都是有兩個輸入和一個輸出。

我們以與門為例:

二進制的與操作我們都很熟悉了匿垄,只有兩個數(shù)都為1才能得到1移宅。我們要寫出這樣一個感知機來也非常簡單:

defAND(x1, x2):x=np.array([x1, x2])w=np.array([0.5, 0.5])theta=0.7returnw.dot(x) > theta

同樣我們也可以寫出或門或者是非門,這也并不困難椿疗。但是也會發(fā)現(xiàn)有一種情況我們無法解決漏峰,就是異或的情況。我們先來看下異或的真值表:

我們是沒有辦法通過一個感知機來實現(xiàn)異或數(shù)據(jù)的分割届榄,這個問題我們之前在SVM模型當中曾經(jīng)介紹過浅乔,因為異或的數(shù)據(jù)不是線性可分的,也就是說我們沒辦法通過一條分割線將它分割。

但是異或問題并非是不可解決的渴邦,我們用單獨的感知機不能夠分割瓮床,但是我們可以將感知機串聯(lián)起來,形成一張簡單的神經(jīng)網(wǎng)絡吼鱼,這個問題就變得可解了。假設我們已經(jīng)把與門绰咽、或門、非門都實現(xiàn)了一遍取募。我們可以這樣來實現(xiàn)異或門:

defXOR(x1, x2):? ? # 非門s1=NAND(x1, x2)s2=OR(x1, x2)returnAND(s1, s2)

整個感知機的結(jié)構是這樣的:

TensorFlow官網(wǎng)提供了一個叫做playground的網(wǎng)頁應用琐谤,可以讓我們自己直觀地感受神經(jīng)網(wǎng)絡的組成以及它的訓練過程。比如剛才的異或問題玩敏,我們就可以自己來設置神經(jīng)網(wǎng)絡的層數(shù)以及每一層包含的神經(jīng)元的數(shù)量斗忌。并且還可以設置神經(jīng)元的激活函數(shù),可以非常直觀地體會神經(jīng)網(wǎng)絡的訓練過程以及各種參數(shù)的作用旺聚。

到這里织阳,關于感知機的介紹就差不多結(jié)束了。感知機是神經(jīng)網(wǎng)絡的基礎砰粹,其實也沒有太多的內(nèi)容唧躲,無論是結(jié)構上還是形式上都和之前機器學習介紹過的邏輯回歸很近似,也沒有太多技術難點和要點,大家只需要直觀地感受就可以了弄痹。

衷心祝愿大家每天都有所收獲饭入。如果還喜歡今天的內(nèi)容的話,請來一個三連支持吧~(點贊肛真、關注谐丢、轉(zhuǎn)發(fā)

最后,小編想說:我是一名python開發(fā)工程師蚓让,整理了一套最新的python系統(tǒng)學習教程乾忱,想要這些資料的可以關注私信小編“01”即可(免費分享哦)希望能對你有所幫助.

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市凭疮,隨后出現(xiàn)的幾起案子饭耳,更是在濱河造成了極大的恐慌,老刑警劉巖执解,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寞肖,死亡現(xiàn)場離奇詭異,居然都是意外死亡衰腌,警方通過查閱死者的電腦和手機新蟆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來右蕊,“玉大人琼稻,你說我怎么就攤上這事∪那簦” “怎么了帕翻?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長萝风。 經(jīng)常有香客問我嘀掸,道長,這世上最難降的妖魔是什么规惰? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任睬塌,我火速辦了婚禮,結(jié)果婚禮上歇万,老公的妹妹穿的比我還像新娘揩晴。我一直安慰自己,他們只是感情好贪磺,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布硫兰。 她就那樣靜靜地躺著,像睡著了一般寒锚。 火紅的嫁衣襯著肌膚如雪劫映。 梳的紋絲不亂的頭發(fā)上呻粹,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音苏研,去河邊找鬼。 笑死腮郊,一個胖子當著我的面吹牛摹蘑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播轧飞,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼衅鹿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了过咬?” 一聲冷哼從身側(cè)響起大渤,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掸绞,沒想到半個月后泵三,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡衔掸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年烫幕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敞映。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡较曼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出振愿,到底是詐尸還是另有隱情捷犹,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布冕末,位于F島的核電站萍歉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏栓霜。R本人自食惡果不足惜翠桦,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胳蛮。 院中可真熱鬧销凑,春花似錦、人聲如沸仅炊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抚垄。三九已至蜕窿,卻和暖如春谋逻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背桐经。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工毁兆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人阴挣。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓气堕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親畔咧。 傳聞我的和親對象是個殘疾皇子茎芭,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345