深度學(xué)習(xí)
對(duì)于深度學(xué)習(xí)娩缰,大部分未接觸的人都處于模糊的階段灸撰。每次說(shuō)到這塊,都會(huì)聯(lián)想到機(jī)器統(tǒng)治人類(lèi)拼坎。覺(jué)得高大上浮毯,并且里面的邏輯晦澀難懂。但其實(shí)泰鸡,他沒(méi)有我們想象中的高大上债蓝,也沒(méi)有我們想象里的那么難。我們離所謂的機(jī)器人統(tǒng)治革命其實(shí)還差得遠(yuǎn)盛龄。因此饰迹,本文會(huì)簡(jiǎn)化深度學(xué)習(xí)各類(lèi)的模型和盡量使用通俗的指代和描述,旨在以簡(jiǎn)單直觀的方式進(jìn)行表達(dá)余舶。普及并解決下面一些疑問(wèn):到底什么是深度學(xué)習(xí)啊鸭?深度學(xué)習(xí)和機(jī)器學(xué)習(xí)有什么不同?深度學(xué)習(xí)要解決哪些問(wèn)題匿值。深度學(xué)習(xí)中的激勵(lì)函數(shù)莉掂,損失函數(shù)作用是什么等等問(wèn)題。
如果你對(duì)此產(chǎn)生了興趣千扔,不妨往下閱讀, 進(jìn)行更深入的了解憎妙。
深度學(xué)習(xí)的由來(lái)
說(shuō)的這個(gè)問(wèn)題,我們不得不聊一下深度學(xué)習(xí)的歷史曲楚±逋伲可以說(shuō)深度學(xué)習(xí) = 神經(jīng)網(wǎng)絡(luò) + 機(jī)器學(xué)習(xí)
,從另一種角度來(lái)說(shuō)他的發(fā)展也十分有趣龙誊。
深度學(xué)習(xí)的本源其實(shí)就是神經(jīng)網(wǎng)絡(luò)的在機(jī)器學(xué)習(xí)中的應(yīng)用抚垃。他是機(jī)器學(xué)習(xí)的子集。
他起源于1980年福島邦彥提出的感知機(jī)趟大。但因計(jì)算代價(jià)過(guò)大, 訓(xùn)練時(shí)間過(guò)長(zhǎng)鹤树。導(dǎo)致未能進(jìn)行實(shí)際的應(yīng)用。并且神經(jīng)網(wǎng)絡(luò)這個(gè)名詞, 可能因?yàn)楹蜕锵嚓P(guān), 投資者們都認(rèn)為賺不了錢(qián)逊朽。研究的經(jīng)費(fèi)也有所減少罕伯。自此,神經(jīng)網(wǎng)絡(luò)在機(jī)器學(xué)習(xí)的應(yīng)用如打入冷宮叽讳,一直不溫不火追他。但深度學(xué)習(xí)的萌芽已經(jīng)種下坟募。只等隨著科技的研究與發(fā)展,在未來(lái)進(jìn)行一輪革命性的爆發(fā)邑狸。
經(jīng)過(guò)一段漫長(zhǎng)的沉寂與暗中生長(zhǎng)懈糯。2006年,Geoffrey Hinton等人在Science雜志上發(fā)表Deep Belief Networks的文章单雾。為了能更好的騙經(jīng)費(fèi), 忽悠信徒赚哗。率先使用了“深度”這個(gè)詞。重新激活了神經(jīng)網(wǎng)絡(luò)的研究硅堆,開(kāi)啟了深度神經(jīng)網(wǎng)絡(luò)的新時(shí)代屿储。
自此, 學(xué)術(shù)界和工業(yè)界對(duì)深度學(xué)習(xí)熱情高漲,并逐漸在語(yǔ)音識(shí)別硬萍、圖像識(shí)別、自然語(yǔ)言處理等領(lǐng)域獲得突破性進(jìn)展围详。深度學(xué)習(xí)在語(yǔ)音識(shí)別領(lǐng)域獲得相對(duì)20%到30%的準(zhǔn)確率提升朴乖,突破了近十年的瓶頸。2012年圖像識(shí)別領(lǐng)域在ImageNet圖像分類(lèi)競(jìng)賽中取得了85%的top5準(zhǔn)確率 助赞,相比前一年74%的準(zhǔn)確率有里程碑式的提升买羞,并進(jìn)一步在2013年獲得89%的準(zhǔn)確率。事實(shí)證明, 改名字真的能改變命運(yùn)雹食!
什么是人工神經(jīng)網(wǎng)絡(luò)畜普?
在了解深度學(xué)習(xí)前,我們不得不先說(shuō)明什么是神經(jīng)網(wǎng)絡(luò)群叶。神經(jīng)網(wǎng)絡(luò)準(zhǔn)確來(lái)說(shuō)是被命名為 人工神經(jīng)網(wǎng)絡(luò)吃挑。他旨在用數(shù)學(xué)的方法,模擬我們細(xì)胞中的神經(jīng)元反應(yīng)街立。處理解決實(shí)際中的問(wèn)題舶衬。
人工神經(jīng)網(wǎng)絡(luò)與反射弧
讓我們來(lái)復(fù)習(xí)復(fù)習(xí)初中的知識(shí),神經(jīng)反射是如何產(chǎn)生的赎离。他的組成部分有哪些? 神經(jīng)反射源于反射弧逛犹。簡(jiǎn)單來(lái)分它由:感受器, 神經(jīng)中樞, 效應(yīng)器三部分組成。
肌肉受到刺激梁剔,感受器向中樞神經(jīng)發(fā)送興奮虽画。通過(guò)中樞神經(jīng)的閾值判斷強(qiáng)度,引起效應(yīng)器進(jìn)行響應(yīng)荣病。肌肉馬上對(duì)刺激做出應(yīng)激反應(yīng)码撰,收縮肌肉。
神經(jīng)興奮與閥值
并非所有
刺激
(興奮
) 都可以引起細(xì)胞的的應(yīng)激反應(yīng)
个盆。就像輕風(fēng)拂過(guò)和, 針刺釘扎的區(qū)別灸拍。細(xì)胞的反應(yīng)取決于刺激的程度做祝。而決定這一現(xiàn)象的因數(shù)被稱(chēng)為閥值
。只有總刺激度超過(guò)細(xì)胞閥值時(shí)鸡岗,細(xì)胞才會(huì)做出反應(yīng)混槐。
神經(jīng)的興奮與反應(yīng)閥值
但刺激的來(lái)源往往不是單一的。他的組成要素可能有很多轩性,因此他更類(lèi)似于如下模型声登。刺激的來(lái)源可能不只一種。并且每種來(lái)源的興奮揣苏,對(duì)中樞神經(jīng)的刺激程度也不一樣悯嗓。就像我們?cè)谕嬲嫘脑?huà)大冒險(xiǎn)時(shí),被逼喝下一碗混合 蜜糖
卸察,醬油
混辣椒
的嶗山神水脯厨。甜,咸坑质,辣每種味道對(duì)舌根的刺激都是不同的合武。如果是吃不得辣的廣東人喝了估計(jì)就要被辣出翔。而被湖南人吃了涡扼,只覺(jué)得是甜到膩稼跳。
? 因此,每種刺激對(duì)中樞神經(jīng)的說(shuō)都有不同的權(quán)重吃沪。假設(shè)三種味覺(jué)分別a1, a2, a3汤善。他們的權(quán)重即為w1, w2, w3∑北耄可得一個(gè)神經(jīng)元的刺激總和 z 為:
? 如果刺激從 3 種延伸到 k 種可得:
? 為了更具有普遍性,一般會(huì)在末尾帶上常熟變量b, 我們就得到了單個(gè)神經(jīng)元神經(jīng)網(wǎng)絡(luò)最基本的通項(xiàng)公式红淡。
? 一個(gè)神經(jīng)元的刺激 = 每種刺激 x 每種刺激對(duì)應(yīng)的權(quán)重
, 即:
? 但總所周知, 我們?nèi)颂幚硎挛飼r(shí), 往往不是一個(gè)而是多個(gè)神經(jīng)元決定的。就如我們辨認(rèn)人的聲音降铸,可能會(huì)有音色锉屈,尖細(xì)(頻率), 大小 多個(gè)閥值決定
。因此繼續(xù)推導(dǎo)垮耳,假設(shè)我們判斷事物需要有 j 個(gè)神經(jīng)元參與颈渊。分別為z1, z2, z3 … zj-1, zj≈辗穑可得每個(gè)神經(jīng)元的通項(xiàng)公式:
而我們決斷的最終結(jié)果就等于他們的總合俊嗽。即把z1 … zj求和。一個(gè)簡(jiǎn)單事物的判斷 = 多個(gè)神經(jīng)元的總刺激
, 他便變成了我們剛一直覺(jué)得看似晦澀難懂的公式:
機(jī)器學(xué)習(xí)的分類(lèi)
說(shuō)完神經(jīng)網(wǎng)絡(luò)铃彰,將該說(shuō)機(jī)器學(xué)習(xí)了绍豁。學(xué)習(xí)的分類(lèi)一般分為三種: 有監(jiān)督學(xué)習(xí)
和 無(wú)監(jiān)督學(xué)習(xí)
, 半監(jiān)督式學(xué)習(xí)
。他們的關(guān)系也非常直觀牙捉。
訓(xùn)練機(jī)器就正如養(yǎng)孩子竹揍。所謂的無(wú)監(jiān)督學(xué)習(xí)就是把孩子散養(yǎng)敬飒。讓熊孩子們自己去耍,從不干預(yù)芬位。讓他自己去區(qū)分和理解事物无拗。直到某一天認(rèn)為他們認(rèn)知夠了,就查看他們價(jià)值觀是否符合自己的期望昧碉。如果符合就把他送去做苦力英染,不符合就悄悄把他干掉, 再重新養(yǎng)一個(gè) (喪心病狂! = = )被饿。
期間沒(méi)有人為干涉,不需要給機(jī)器定制目標(biāo), 標(biāo)識(shí)出我們需要的特征四康。而是通過(guò)某些特征的距離算法
,讓他們自己把具有相似性的事物歸類(lèi)在一塊狭握,沒(méi)有經(jīng)過(guò)專(zhuān)門(mén)的學(xué)習(xí)(所謂的社會(huì)大學(xué)畢業(yè)生)闪金。就如把孩子放在寵物堆中,通過(guò)接觸貓狗小動(dòng)物论颅。孩子們很容易就能夠區(qū)分他們是兩種類(lèi)型的事物哎垦。但只是沒(méi)有經(jīng)過(guò)人為的教導(dǎo),并不知道其中一類(lèi)命名為 “狗”嗅辣,而另一類(lèi)命名為 “貓” 而已撼泛。
但無(wú)監(jiān)督算法的缺點(diǎn)也非常明顯挠说,便是分離結(jié)果只能通過(guò)特征的表象澡谭。因?yàn)槿鄙偌议L(zhǎng)人為的干預(yù)與監(jiān)督,“孩子” 們并不知道家長(zhǎng)的期望是怎么樣的损俭。他也沒(méi)有基本的倫理道德蛙奖,很容易就走歪了。并且事物的歸類(lèi)標(biāo)準(zhǔn)并不單一杆兵。萬(wàn)物互聯(lián)雁仲,所有事物都具有相似性。我們也很難說(shuō)哪些是正確的琐脏。如下圖攒砖,長(zhǎng)發(fā)的狗和人雖為同一物種。但無(wú)監(jiān)督學(xué)習(xí)很可能就把他們分為同一類(lèi)別日裙,雖說(shuō)從某種角度來(lái)說(shuō)也是有一定正確性吹艇。但對(duì)人的參考性就沒(méi)那么大了。因此昂拂,無(wú)監(jiān)督學(xué)習(xí)普遍識(shí)別率并不高受神。多用于數(shù)據(jù)預(yù)處理。面對(duì)于數(shù)據(jù)量巨大格侯,不好人為提取的抽象特征的數(shù)據(jù)集鼻听。
那么有監(jiān)督學(xué)習(xí)是怎么樣的呢财著。不妨先讓我們看看下面這個(gè)耳熟能詳?shù)膶?shí)驗(yàn)。
研究人員為了揭示了傳統(tǒng)是如何形成的撑碴。五只猴子被關(guān)進(jìn)籠子里撑教,籠子一角掛著一串香蕉,如果有猴子試圖摘取香蕉灰羽,就會(huì)被開(kāi)水潑到驮履。猴子們吃了幾次苦頭之后,就再也不想摘香蕉了廉嚼。
此時(shí)用一只新猴子替換老猴子玫镐,新猴子看到有香蕉剛想去摘,就被老猴子們拉住一頓暴打怠噪。新猴子挨了幾次打之后恐似,也不再去摘香蕉了。
此時(shí)再換進(jìn)一只新猴子傍念,它也看到香蕉想去摘矫夷,也被老猴子們一頓暴打,下手最狠的恰恰是那一只沒(méi)被開(kāi)水燙到過(guò)的憋槐。
最后老猴子們都被換干凈了双藕,仍然沒(méi)有猴子去碰那串香蕉,因?yàn)樗鼈冎馈鱿憬兑馕吨淮蜓糇校鵀槭裁磿?huì)被打忧陪,沒(méi)有猴子知道。
這個(gè)實(shí)驗(yàn)非常有趣近范,體現(xiàn)了有監(jiān)督學(xué)習(xí)的最大優(yōu)勢(shì)嘶摊。能夠?qū)C(jī)器制定目標(biāo)。 就像上文中的猴子一樣评矩,讓他們的行為都按照我們期望的方向發(fā)展叶堆。最后能優(yōu)秀的為我們所用。
有監(jiān)督學(xué)習(xí)與無(wú)監(jiān)督學(xué)習(xí)相反斥杜。都是些每天望子成龍虎爸虎媽?zhuān)焯毂O(jiān)督孩子學(xué)習(xí)虱颗。不是就是興趣組就是補(bǔ)習(xí)班。就怕你以后考不到個(gè)好學(xué)校蔗喂。我們會(huì)人為的給數(shù)據(jù)打上標(biāo)簽忘渔,并給出指標(biāo),給孩子們直接指出名為 “正確” 的答案弱恒。經(jīng)過(guò)這一系列的應(yīng)試教育辨萍,孩子成績(jī)不好也難。因此有監(jiān)督學(xué)習(xí)的識(shí)別率普遍比無(wú)監(jiān)督高許多。某些算法在 MNIST 數(shù)據(jù)集的正確率上都已經(jīng)高達(dá)92%锈玉, 93%了爪飘。
? 看起來(lái)非常的好啊。只要經(jīng)過(guò)不斷的訓(xùn)練和學(xué)習(xí)拉背,便能一朝飛上枝頭师崎,光宗耀祖。但這樣你就too young了椅棺,這樣訓(xùn)練的目的性太強(qiáng)犁罩。 容易制造精致的利己主義者。應(yīng)試教育培養(yǎng)出來(lái)的考試機(jī)器两疚,并不能應(yīng)付現(xiàn)實(shí)中多變的場(chǎng)景床估。往往容易問(wèn)題稍微的偏離考試大綱他就馬上懵逼(過(guò)擬合
情況)。并且現(xiàn)在家長(zhǎng)們 (開(kāi)發(fā)者) 的生存壓力也大诱渤,哪有時(shí)間一步步給他標(biāo)出 特征
來(lái)學(xué)習(xí)丐巫。
因此有監(jiān)督學(xué)習(xí)多用于有明確結(jié)果的數(shù)據(jù)有限的集合,這樣能得到更準(zhǔn)確的數(shù)據(jù)模型勺美。同時(shí)能更為節(jié)省訓(xùn)練哈飛的周期递胧。
針對(duì)于上述兩種學(xué)習(xí)方式, 都有其優(yōu)點(diǎn)與不足。因此赡茸,提出了第三種學(xué)習(xí)方式——半監(jiān)督試學(xué)習(xí)缎脾。半監(jiān)督學(xué)習(xí)把無(wú)監(jiān)督學(xué)習(xí)和有監(jiān)督學(xué)習(xí)相結(jié)合。在孩子幼年期占卧,進(jìn)行手把手教育遗菠,標(biāo)注出有用特征。給他傳授基本的倫理與社會(huì)道德屉栓。而剩下的數(shù)據(jù)則讓他在已有的基本道德與準(zhǔn)則下自我學(xué)習(xí)與發(fā)展舷蒲。因此半監(jiān)督學(xué)習(xí)會(huì)有小部分已標(biāo)注的訓(xùn)練集用于初始化學(xué)習(xí)耸袜,而留下一大部分未標(biāo)注的訓(xùn)練數(shù)據(jù)讓其自我學(xué)習(xí)友多。
深度學(xué)習(xí)
深度學(xué)習(xí)中的 “深度”
從上面的層層推到, 我們很容易就能理解人工神經(jīng)網(wǎng)絡(luò)公式由來(lái)。那么他和深度又有什么關(guān)系呢堤框∮蚶模“深度
” 一詞到底是深在哪里?單層的神經(jīng)網(wǎng)絡(luò)為什么就不能叫深度學(xué)習(xí)蜈抓?
雖然我在上文中很不地道的揣測(cè)了 Geoffrey Hinton 改變神經(jīng)網(wǎng)絡(luò)命名用以騙經(jīng)費(fèi)的意圖启绰, 但深度學(xué)習(xí)的深度一詞的提出,確實(shí)是有確切含義的沟使。非常明顯委可,深度
一詞自然是與淺度
相對(duì)應(yīng)的。而單層的神經(jīng)網(wǎng)絡(luò),就是所謂的 “淺層學(xué)習(xí)”着倾。
如下圖拾酝,他只有簡(jiǎn)單的單層細(xì)胞結(jié)構(gòu),包含:刺激 輸入層
(有N個(gè)則表示他的識(shí)別特征或刺激有N種)卡者,一層的神經(jīng)元 隱式層
(藍(lán)色)蒿囤,反應(yīng) 輸出層
(綠色,同時(shí)有兩個(gè)圈則表示輸出結(jié)果有兩種)崇决。而深度學(xué)習(xí)與淺層學(xué)習(xí)最大的區(qū)別在于神經(jīng)元的層數(shù)材诽,他的結(jié)果是通過(guò)過(guò)逐級(jí)深化的形式進(jìn)行判斷的。
就像我們識(shí)別一個(gè)人其實(shí)也是通過(guò)模糊到具體, 從面部輪廓恒傻,眼睛大小脸侥,發(fā)色,第二性征(性別)盈厘,等多個(gè)維度去判斷的湿痢。每個(gè)神經(jīng)元的閥值判斷,在宏觀上都會(huì)表現(xiàn)為區(qū)分事物的一個(gè) 特征
(后文特征即指代為上圖隱層每個(gè)判斷的神經(jīng)元)扑庞。因此每一層的神經(jīng)元相當(dāng)于一個(gè)特征組譬重。而通過(guò)多個(gè)特征組一步步判斷識(shí)別事物便是 深度學(xué)習(xí)。
? 那么罐氨,深度學(xué)習(xí)為什么能更優(yōu)于淺層學(xué)習(xí)呢臀规。其實(shí)是和我們大腦辨別事物的方式類(lèi)似的。深度學(xué)習(xí)多層的結(jié)構(gòu)更利于提取模糊特征栅隐。從輪廓到細(xì)節(jié)一步步去判定塔嬉。這樣有兩個(gè)好處。一是慢慢深入租悄,結(jié)果自然準(zhǔn)確谨究。二是比起單層的結(jié)構(gòu),前期能有效的篩選出有用的數(shù)據(jù)集泣棋。
? 如我們要辨別出人的四類(lèi)分類(lèi):長(zhǎng)發(fā)女生胶哲,長(zhǎng)發(fā)男生,短發(fā)女生潭辈,短發(fā)男生鸯屿。單層的神經(jīng)網(wǎng)絡(luò)需要對(duì)等的判斷4類(lèi)情況。即每個(gè)樣本要進(jìn)行4次判斷把敢。而在實(shí)際中短發(fā)女生的數(shù)量較少寄摆,長(zhǎng)發(fā)男生更是占男生總數(shù)不到10%。不應(yīng)該為每種情況平均的分配資源
修赞。
而深度網(wǎng)絡(luò)可以先提取 頭發(fā)長(zhǎng)度 作為一層神經(jīng)元的篩選婶恼。如果恰好篩選出為長(zhǎng)發(fā)。那么在篩選出來(lái)的集合里,我們已經(jīng)可以大概率的認(rèn)為這個(gè)樣本90%的概率是為女性了勾邦。
深度學(xué)習(xí)中的 “學(xué)習(xí)”
從前文,我們可以了解到 深度學(xué)習(xí) = 神經(jīng)網(wǎng)絡(luò) + 機(jī)器學(xué)習(xí)
联逻。那么深度學(xué)習(xí)又是怎么學(xué)習(xí)的呢?神經(jīng)網(wǎng)絡(luò)是從生命科學(xué)發(fā)展而來(lái)检痰。因此包归,深度的學(xué)習(xí)方式也與細(xì)胞體一致。細(xì)胞會(huì)通過(guò)細(xì)胞負(fù)反饋來(lái)學(xué)習(xí)铅歼。如下圖血壓的負(fù)反饋調(diào)節(jié)公壤。控制部分會(huì)通過(guò)感受器獲取現(xiàn)在的血壓指標(biāo)椎椰。如果過(guò)低則指令提高血壓厦幅。反之則降低血壓。深度學(xué)習(xí)的優(yōu)化學(xué)習(xí)算法于此原理相同慨飘。他會(huì)通過(guò)衡量當(dāng)前數(shù)值與期望值偏差數(shù)值确憨。反向調(diào)控自己的敏感度(梯度下降法
,見(jiàn)后文)瓤的,改變刺激的權(quán)重(上文w1,w2,w3…wk)休弃。從而達(dá)到負(fù)反饋調(diào)節(jié)的目的。那么圈膏,在深度學(xué)習(xí)中我們?cè)撛趺春饬恐笜?biāo)的偏差值呢塔猾。
深度學(xué)習(xí)中的誤差衡量——損失函數(shù)
在深度學(xué)習(xí)中,衡量實(shí)際與期望差誤的函數(shù)稱(chēng)為損失函數(shù)(或 代價(jià)函數(shù) )稽坤,兩種幾乎可以認(rèn)為是完全一樣丈甸,只是在不同層面的叫法。那么回想我們的高中知識(shí), 當(dāng)我們計(jì)算線(xiàn)性回歸的擬合函數(shù)時(shí)尿褪。是怎么計(jì)算他的誤差的呢睦擂?沒(méi)錯(cuò),就是最簡(jiǎn)單的平方誤差
函數(shù) (注意不是 平方差
函數(shù), 一字之別, 差之千里) 杖玲。平方誤差的公式等于平方誤差 = (當(dāng)前期望值 - 實(shí)際值) 的平方總和
:
在線(xiàn)性回歸問(wèn)題中顿仇,我們只要讓平方誤差 L 降低,就能提高我們最后結(jié)果的正確率天揖。并且平方誤差越低夺欲,正確率越高跪帝。至于原因今膊,可能下圖兩條數(shù)據(jù)擬合線(xiàn)段的誤差
能更為直觀的闡述。
由公式不難看出伞剑,平方誤差的總和斑唬,就等于黃色小球到擬合函數(shù)的垂直距離平方總和。所以,平方誤差函數(shù)越小恕刘,數(shù)據(jù)坐標(biāo)點(diǎn)就越近似擬合函數(shù)缤谎,擬合度就越高。右圖的擬合函數(shù)明顯優(yōu)于左圖褐着。因此深度學(xué)習(xí)中誤差衡量也使用了平方誤差
函數(shù)坷澡。
可能在這之中你會(huì)有個(gè)疑問(wèn), 為什么誤差衡量要使用
平方誤差
而不使用均方誤差
呢。原因在于平方形式對(duì)大誤差的懲罰會(huì)更大含蓉。為了得到更好的擬合度频敛,誤差的懲罰并非線(xiàn)性了。而是以凸函數(shù)的形式單向增長(zhǎng)馅扣。誤差會(huì)以平方的形式放大斟赚。這樣誤差越大,糾正(學(xué)習(xí))的力度也會(huì)倍增差油。使誤差更尖銳和明顯拗军,加快學(xué)習(xí)的能力。
另外, 常見(jiàn)的損失函數(shù)有: 蓄喇。各類(lèi)互有優(yōu)劣发侵,但我認(rèn)為平法差能更好地理解。
既然已經(jīng)有了 神經(jīng)網(wǎng)絡(luò)模擬函數(shù) 和 衡量誤差的平方差函數(shù)妆偏。那么器紧,要讓神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)起來(lái),我們就只剩下最后一個(gè)問(wèn)題了楼眷。怎么讓神經(jīng)網(wǎng)絡(luò)進(jìn)行反饋與自我學(xué)習(xí)铲汪。
權(quán)重的自我學(xué)習(xí)——梯度下降法
? 所謂自我學(xué)習(xí),其實(shí)只是找到損失函數(shù)最小值的一個(gè)過(guò)程罐柳。但實(shí)際上因硬件限制許多方程我們無(wú)法找到全局最優(yōu)解掌腰。因此機(jī)器學(xué)習(xí)中我們的算法都是尋求局部最優(yōu)解
的一個(gè)過(guò)程。而在計(jì)算機(jī)中张吉,求解的過(guò)程特別適合于 迭代算法
齿梁,就相當(dāng)于計(jì)算機(jī)的學(xué)習(xí)過(guò)程。
那么肮蛹,我們要怎么去找到損失函數(shù)的局部最優(yōu)解呢勺择。從大學(xué)數(shù)學(xué)的理論中,很容易得出伦忠。局部最小值便是函數(shù)的極值點(diǎn)省核,準(zhǔn)確來(lái)說(shuō)是極小值點(diǎn)。并且昆码,當(dāng)函數(shù)為凸函數(shù)是气忠,極小值點(diǎn)便是最小值點(diǎn)邻储。否則則為局部最小值點(diǎn)。這點(diǎn)我就不予證明了旧噪。所以深度學(xué)習(xí)的學(xué)習(xí)算法中最大的問(wèn)題就是怎么找到這些極值點(diǎn)了吨娜。
最自然的想法,當(dāng)然是求導(dǎo)拉。連續(xù)函數(shù)中淘钟,導(dǎo)函數(shù)為0的點(diǎn)即為極值點(diǎn)宦赠。使方程倒數(shù)為0就能夠得出所有極值的橫坐標(biāo)x。再通過(guò)比較 y 軸的值大小米母。不就能找出最小值了嗎袱瓮?但是,實(shí)際上爱咬。前文也說(shuō)道尺借,這樣的方程我們現(xiàn)在的計(jì)算機(jī)并一定能解出他的解。并且數(shù)據(jù)量過(guò)于巨大精拟,也太花費(fèi)時(shí)間燎斩,而方程的解也不一定是有窮的。這樣問(wèn)題就相當(dāng)大了蜂绎。又該如何得到損失函數(shù)的局部最優(yōu)解呢栅表?
這里最常見(jiàn)的便是使用一種迭代法——梯度下降法
。
我們來(lái)模擬一個(gè)場(chǎng)景:
假如你到了一座陌生小山上师枣,并且不認(rèn)識(shí)路, 你只能看到周?chē)沫h(huán)境, 你要怎么能保證下山的速度最快呢怪瓶?
最直觀的想法便是 —— 向坡度向下的地方走便是了!既然不認(rèn)識(shí)路践美。我們只要朝坡度向下的地方行進(jìn)洗贰,自然而然的就能朝山下去了。機(jī)器學(xué)習(xí)也同理陨倡。我們只要朝向下斜率的地方前進(jìn)便是了敛滋。
但是一個(gè)問(wèn)題隨之出現(xiàn)。山體是凹凸不平的兴革。我們這樣走很容易只是到了一個(gè)山溝溝里绎晃,而不能真正的找到下山的路。這也是這種算法的弊端杂曲,梯度下降法到達(dá)的只能是一個(gè)局部最優(yōu)點(diǎn)庶艾。
正如上圖所示一般。 我們?cè)偕襟w不同的地方出發(fā)擎勘,朝下走去咱揍。到達(dá)的可能是不一樣的極小值點(diǎn)。并且他到達(dá)的是哪個(gè)極小值點(diǎn)取決于他的初始位置货抄。并且很有可能我們會(huì)錯(cuò)過(guò)最小值點(diǎn)述召。
原理我們知道了朱转,我們要怎么把上面的想法映射成算法呢蟹地。便是我們的反向梯度积暖。我們對(duì)損失函數(shù)當(dāng)前位置求導(dǎo)。如果導(dǎo)函數(shù)為正則怪与,減去當(dāng)前的梯度夺刑。如果導(dǎo)函數(shù)為負(fù)則加上他的梯度。以達(dá)到局部最小值分别。如下圖所示:
小球在左側(cè), 梯度小于0,這時(shí)候減去他的斜率(梯度),則向右運(yùn)動(dòng)遍愿。在右側(cè)類(lèi)似。經(jīng)過(guò)不斷迭代耘斩,當(dāng)斜率為0時(shí)小球停下沼填。則得到此時(shí)的局部最優(yōu)解。
? 這時(shí)候我們就能得出神經(jīng)網(wǎng)絡(luò)權(quán)重的新公式, 權(quán)重W = 當(dāng)前值 - 損失函數(shù)L對(duì)當(dāng)前權(quán)重w求導(dǎo)
這樣我們所有的特征權(quán)重都會(huì)根據(jù)當(dāng)前平方誤差而變化迭代括授,直到到達(dá)局部最優(yōu)解坞笙。
為了能更好的控制梯度下降的速度,我們?yōu)楣教砑右粋€(gè)常量系數(shù)α, 稱(chēng)之為學(xué)習(xí)率荚虚。此時(shí),公式便變成:
?既然α是個(gè)常熟, 在公式中有什么用呢薛夜。他又該設(shè)成多大呢?α稱(chēng)之為學(xué)習(xí)率版述。在我們上述例子中梯澜,就相當(dāng)于我們邁的步子的步長(zhǎng)。步子邁的大渴析,下山便下得快晚伙。但在接近最低點(diǎn)時(shí),容易因?yàn)椴阶犹蠖谧畹偷淖笥乙苿?dòng)俭茧,而無(wú)法到達(dá)撬腾。而如果步子邁的太小,則下山速度過(guò)于緩慢恢恼。不能達(dá)到我們對(duì)時(shí)間的要求民傻。因此學(xué)習(xí)率的設(shè)定沒(méi)有一個(gè)具體數(shù)值。需要具體問(wèn)題具體分析场斑。即使是同一個(gè)模型漓踢,學(xué)習(xí)率不同。最后得出的模型的識(shí)別率也會(huì)相差很大漏隐。下圖是學(xué)習(xí)率設(shè)置的不同的三個(gè)值喧半。如果設(shè)的太大(紅線(xiàn)),結(jié)果一直徘徊在最低點(diǎn)附近青责。但設(shè)的太型荨(藍(lán)線(xiàn))取具,需要學(xué)習(xí)的時(shí)間就會(huì)太長(zhǎng)。而合理的值(黃線(xiàn))扁耐,既能到達(dá)局部最優(yōu)處暇检,也能快速的完成訓(xùn)練。
深度學(xué)習(xí)最基本的幾個(gè)環(huán)節(jié)都已經(jīng)進(jìn)行說(shuō)明了婉称。但如果是有相關(guān)學(xué)習(xí)的朋友是不是覺(jué)得少了什么块仆?激勵(lì)函數(shù)到哪去了?
深度學(xué)習(xí)中的非線(xiàn)性因素——激勵(lì)函數(shù)
其實(shí)激勵(lì)函數(shù)又稱(chēng)激活函數(shù)王暗。上文的深度學(xué)習(xí)雖已經(jīng)有了最基本的組成悔据。但是要到達(dá)高學(xué)習(xí)率這些僅僅是不夠的。上述的模型中有一個(gè)很大的缺點(diǎn):就是所有函數(shù)都是線(xiàn)性的俗壹,他不能很好的擬合某些邊界場(chǎng)景科汗。什么意思呢?
其實(shí)就如下圖所示绷雏,添加激活函數(shù)后头滔,邊界從直線(xiàn)變成了圓滑曲線(xiàn),不再那么分明之众。
其實(shí)激活函數(shù)的作用就是用來(lái)加入非線(xiàn)性因素的拙毫,因?yàn)榫€(xiàn)性模型的表達(dá)能力不夠。
我們用線(xiàn)性的線(xiàn)段去逼近一條曲線(xiàn)的時(shí)候棺禾,邊角過(guò)于規(guī)則缀蹄。有一種“躍遷”的感覺(jué)。因此膘婶,我們必須引入非線(xiàn)性的元素缺前。讓他的邊界不那么棱角分明,而能適用于更多情況悬襟。我就不進(jìn)行公式推導(dǎo)了衅码。可以參考知乎回答
文章參考:
什么是無(wú)監(jiān)督學(xué)習(xí)脊岳?
神經(jīng)網(wǎng)絡(luò)激勵(lì)函數(shù)的作用是什么逝段?有沒(méi)有形象的解釋?zhuān)?/a>
網(wǎng)易公開(kāi)課 - 斯坦福大學(xué)公開(kāi)課 :機(jī)器學(xué)習(xí)課程
谷歌機(jī)器學(xué)習(xí)課程
Deep Learning Tutorial-李宏毅