中文筆記8神經(jīng)網(wǎng)絡(luò)_第1頁(yè)
中文筆記8神經(jīng)網(wǎng)絡(luò)_第2頁(yè)
中文筆記8神經(jīng)網(wǎng)絡(luò)_第3頁(yè)
中文筆記8神經(jīng)網(wǎng)絡(luò)_第4頁(yè)
中文筆記8神經(jīng)網(wǎng)絡(luò)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

可視化拓展使用中心 該在檢查梯度的每個(gè)維度的時(shí)候,會(huì)要求計(jì)算兩次損失函數(shù)(所以計(jì)算資源的耗費(fèi)也是兩倍),但是梯度的近似值會(huì)準(zhǔn)確很多。要理解這一點(diǎn),對(duì)和使用 階近似)。(譯者注:展開(kāi)相關(guān)內(nèi)容可閱讀《高等數(shù)學(xué)》第十二章第四節(jié):函數(shù)展開(kāi)上式考慮了差值占兩個(gè)梯度絕對(duì)值的比例。注意通常相對(duì)誤差只包含兩個(gè)式子中的一為了防止在其中一個(gè)式子為0時(shí),分母為0(這種情況,在ReLU中是經(jīng)常發(fā)生1e-4>OK的。但如果目標(biāo)函數(shù)kink(tanhsoftmax),那么相對(duì)誤差值還是太高。10層網(wǎng)絡(luò)的輸入1e-2OK了,因?yàn)檎`差一直在累積。相反,如1e-2,那么通常說(shuō)明梯度實(shí)現(xiàn)不正確。1e-21e-8的情況。保持在浮點(diǎn)數(shù)的有效范圍。建議通讀《WhatEveryComputerScientistShouldKonwAboutFloating-PointArtthmetic》一文,該文將闡明你可能犯的錯(cuò)誤,促使你寫下更加細(xì)據(jù)打印出來(lái),確保用來(lái)比較的數(shù)字的值不是過(guò)小(1e-10就絕對(duì)讓人擔(dān)1.0的數(shù)量級(jí)上,即當(dāng)浮點(diǎn)數(shù)指0目標(biāo)函數(shù)的不可導(dǎo)點(diǎn)(kn)在進(jìn)行度檢查,一個(gè)導(dǎo)確原因是可導(dǎo)點(diǎn)問(wèn)題。不導(dǎo)點(diǎn)是目標(biāo)函不可導(dǎo)部分,由eU)等函數(shù),或M損失,Maxout神經(jīng)元等引入??紤]當(dāng)?shù)臅r(shí),對(duì)ReLU函數(shù)進(jìn)行梯度檢查。因?yàn)?的結(jié)果。你可能會(huì)認(rèn)為這是一個(gè)的案例,但實(shí)際上這種情況很常見(jiàn)。例如,一個(gè)用子,所以包含有450,000個(gè)式子。而一個(gè)用SVM進(jìn)行分類的神經(jīng)網(wǎng)絡(luò)因?yàn)椴捎昧薘eLU,還會(huì)有的不可導(dǎo)點(diǎn)。的函數(shù)中持續(xù)所有“贏家”的,就可以實(shí)現(xiàn)這一點(diǎn)。其實(shí)就是看向時(shí),到底x和y誰(shuí)更大。如果在計(jì)算和的時(shí)候,至少有一個(gè)“贏家”的 了,那就說(shuō)明不可導(dǎo)點(diǎn)被越過(guò)了,數(shù)值梯度會(huì)確。可導(dǎo)點(diǎn)的損失函數(shù)(ReLU或者邊緣損失等函數(shù))的數(shù)據(jù)點(diǎn)越少,不可導(dǎo)2-3個(gè)數(shù)據(jù)點(diǎn)都有效,那么基本上對(duì)整個(gè)批量數(shù)據(jù)進(jìn)行梯度檢查也是沒(méi)問(wèn)題的。所h。在實(shí)踐中h并不是越小越好,因?yàn)楫?dāng)特別小的時(shí)候,就可能就會(huì)遇到1e-41e-6,然后突然梯度檢查可能就恢復(fù)正常。這篇百科文章中有一個(gè)圖表,其x軸為值,y軸為數(shù)值在操作的特性模式中梯度檢查。)能導(dǎo)致入某種的情,即梯看來(lái)是正確現(xiàn)了,際上并有。例如,M0(“”)的之后進(jìn)行梯檢查。第一次代進(jìn)行梯度查的就在于此時(shí)可不要讓正則化吞沒(méi)數(shù)據(jù)。通常損失函數(shù)是數(shù)據(jù)損失和正則化損失的和(L2對(duì)權(quán)重的(例如隨機(jī)失活的反向?qū)崿F(xiàn)可能有錯(cuò)誤)。因此,一個(gè)更好的解決方案就是在計(jì)算和前強(qiáng)制增加一個(gè)特定的隨機(jī),在計(jì)算解析梯度時(shí)也同樣如此。尋找特定情況的正確損失值。(0。例如,對(duì)于一個(gè)跑CF-0的omx2001(10個(gè)類別,然后oax-ln01232。對(duì)于WesnaknsM),91)很小的數(shù)據(jù)集上進(jìn)行訓(xùn)練(20個(gè)數(shù)據(jù))0的損失值。進(jìn)行這個(gè)實(shí)驗(yàn)的時(shí)候,最好讓正則化強(qiáng)度為0,不然它會(huì)得到0的損失。除非能通過(guò)這一個(gè)正常在下面的圖表中,x軸通常都是表示周期(epochs)單位,該單位衡量了在訓(xùn)練中每個(gè)樣于迭代次數(shù)(itions),一般更傾向周期,這是因?yàn)榈螖?shù)與數(shù)據(jù)的批尺寸—優(yōu)化到一個(gè)很好的點(diǎn)上。右圖CIFAR-10— —遇到這種情況,就應(yīng)該增大正則化強(qiáng)度(更強(qiáng)的L2權(quán)重懲罰,的隨機(jī)失活等)或收集的數(shù)據(jù)。另一種可能就是驗(yàn)證集曲線和訓(xùn)練集曲線如影隨形,這種情況說(shuō)明你的?!詈笠粋€(gè)應(yīng)該的量是權(quán)重中更新值的數(shù)量和全部值的數(shù)量之間的比例。注意:是更新的,而不是原始梯度(sgd中就是梯度乘以學(xué)習(xí)率)。需要對(duì)每個(gè)參數(shù)集的更新比例進(jìn)行單獨(dú)的計(jì)算和。一個(gè)經(jīng)驗(yàn)性的結(jié)論是這個(gè)比例應(yīng)該在1e-3左右。如果更設(shè)參數(shù)向量為W,其梯度向量為dWparam_scale=np.linalg.norm(W.ravel())update=-learning_rate*dWSGD新update_scalenp.linalg.norm(update.ravel())Wupdate際更printupdate_scaleparam_scale得到1e-3tanh的神經(jīng)0,或者全都飽和了往-11上跑,那肯定就是有問(wèn)題了?!獏?shù)更新拓展但是我們通常希望最小化損失函數(shù))xdx,那么最簡(jiǎn)單的##普通更x+=-learning_rate*learning_rate是一個(gè)超參數(shù),它是一個(gè)固定的常量。當(dāng)在整個(gè)數(shù)據(jù)集上進(jìn)行計(jì)算時(shí), 在某個(gè)位置給質(zhì)點(diǎn)設(shè)定初始速度為0。這樣最優(yōu)化過(guò)程可以看做是模擬參數(shù)向量(即質(zhì)##vmu*vlearning_rate*dxxv致。這個(gè)變量有效地抑制了速度,降低了系統(tǒng)的動(dòng)能,不然質(zhì)點(diǎn)在山底不會(huì)停下來(lái)。Nesterov動(dòng)量與普通動(dòng)量有些許不同,最近變得比較流行。在理論上對(duì)于凸函數(shù)它能得到Nesterov動(dòng)量的思路是,當(dāng)參數(shù)向量位于某個(gè)位置x時(shí),觀察上面的動(dòng)量更新可以發(fā)現(xiàn),動(dòng)量部分(忽視帶梯度的第二個(gè)部分)mu*v稍微改變參數(shù)向量。因此,x+mu*v看做是“向前看”,這個(gè)點(diǎn)在我們x+mu*v的梯度而不是“舊”x的梯度就有意—(紅色點(diǎn))Nesterov動(dòng)量,我們就在這個(gè)“向前看”的地方計(jì)算梯—x_aheadx_ahead=x+mu*#計(jì)算dx_ahead(在x_ahead處的梯度,而不是在x處的梯度v=mu*v-learning_rate*dx_aheadx+=vSGD或上面的動(dòng)量方法一樣簡(jiǎn)單的表達(dá)式。通過(guò)對(duì)x_ahead=x+mu*vx_aheadx來(lái)表示上面的更新。也就是說(shuō),實(shí)際的參數(shù)向量總是向前一步的那個(gè)版本。x_ahead的(將其重新命名為x)就變成了:v_prevv_prev=vvmu*vlearning_rate*dx度更新保持不xmu*v_prev(1mu*v置更新變了形對(duì)于NAG(Nesterov'sAcceleratedMomentum)的來(lái)源和數(shù)學(xué)推導(dǎo),我們推薦以下YoshuaBengioAdvancesinoptimizingRecurrentNetworks,Section3.5IlyaSutskever'sthesis(pdf)在section7.2對(duì)于這個(gè)有更詳盡的闡述。隨步數(shù)衰減5個(gè)周期就將200.1。這些數(shù)值的設(shè)定是嚴(yán)重依賴具體問(wèn) 是超參數(shù),是迭代次數(shù)(也可以使用周期1/t衰減的數(shù)學(xué)是,其 (衰減系數(shù)和以周期為時(shí)間單位的步數(shù))比更有解釋性。最后,如果你有足夠的計(jì)算資和梯度下降中一樣。直觀理解上,Hessian矩陣描述了損失函數(shù)的局部曲率,從而使得可以進(jìn)行更高效的參數(shù)更新。具體來(lái)說(shuō),就是乘以Hessian轉(zhuǎn)置矩陣可以讓最優(yōu)化過(guò)程在曲率小的時(shí)候大步前進(jìn),在曲率大的時(shí)候小步前進(jìn)。需要重點(diǎn)注意的是,在這個(gè)中是沒(méi)Hessian矩陣操作非常耗費(fèi)時(shí)間和空間。舉例來(lái)說(shuō),假設(shè)一個(gè)有一百萬(wàn)個(gè)參數(shù)的神經(jīng)網(wǎng)Hessian矩陣大小就是[1,000,000x1,000,000]3,725GB的內(nèi)存。這樣,各種各樣的擬-法就被發(fā)明出來(lái)用于近似轉(zhuǎn)置Hessian矩陣。在這些方法中最流行L-BFGS,該方法使用隨時(shí)間的梯度中的信息來(lái)隱式地近似(也就是說(shuō)整個(gè)矩陣是從然而,即使解決了空間的問(wèn)題,L-BFGS應(yīng)用的一個(gè)巨大劣勢(shì)是需要對(duì)整個(gè)訓(xùn)練集進(jìn)SGD)L-BFGS在小批量上運(yùn)行起來(lái)是很需要技巧,同時(shí)也是研究熱點(diǎn)。實(shí)踐L-BFGS之類的二階方法并不常見(jiàn)。相反,基于(Nesterov的)動(dòng)量更新的各種隨機(jī)梯度下降方法更加常用,因?yàn)樗鼈兏雍?jiǎn)單且容易LargeScaleDistributedDeepNetworks一文來(lái)自谷歌大腦團(tuán)隊(duì),比較了在大規(guī)模數(shù)據(jù)情L(zhǎng)-BFGSSGD算法的表現(xiàn)。SFOSGD和L-BFGS的優(yōu)勢(shì)結(jié)合起來(lái)。Adagrad是一個(gè)由Duchi等適應(yīng)性學(xué)習(xí)率算##假設(shè)有梯度和參數(shù)向量cache+=x+=-learning_rate*dx/(np.sqrt(cache)+注意,變量cache的尺寸和梯度矩陣的尺寸是一樣的,還了每個(gè)參數(shù)的梯度的平方eps(一1e-41e-8之間)0的情況。Adagrad的一個(gè)缺點(diǎn)是,在深度學(xué)RMSprop。是一個(gè)非常高效,但沒(méi)有公開(kāi)的適應(yīng)性學(xué)習(xí)率方法。有趣的是,每個(gè)使用這個(gè)方法的人在他們的中都自GeoffHinton的Coursera課程的第六課的第29頁(yè)P(yáng)PTAdagrad方法,讓它不那么激進(jìn),單調(diào)地降低cachecache=decay_rate*cache+(1-decay_rate)*x+=-learning_rate*dx/(np.sqrt(cache)+在上面的代碼中,decay_rate是一個(gè)超參數(shù),常用的值是[0.9,0.99,0.999]x+=和Adagradcache變量是不同的。因此,RMSProp仍然是基于梯度的大Adagrad不同,其更新不會(huì)Adam。Adam是最近才一種更新方法,它看起來(lái)像是RMSProp的動(dòng)量版。簡(jiǎn)化的mm=beta1*m+(1-v=beta2*v+(1-x+=-learning_rate*m/(np.sqrt(v)+注意這個(gè)更新方法看起來(lái)真的和RMSProp很像,除了使用的是平滑版的梯度m,而不是用的原始梯度向量dx。 中推薦的參數(shù)值eps=1e-8,beta1=0.9,beta2=0.999。在實(shí)際操作中,我們推薦Adam作為默認(rèn)的算法,一般而言跑起來(lái)比RMSProp要好一點(diǎn)。但是也可以試試SGD+Nesterov動(dòng)量。完整的Adam更新算法也包含了一個(gè)偏置(bias)矯正機(jī)制,因?yàn)閙,v兩個(gè)矩陣初始為0,在沒(méi)有完全熱身之前存在偏差,需要采取一些補(bǔ)償措 查看細(xì)節(jié),或者課程的PPT。UnitTestsforStochasticOptimization——曲率不同(一個(gè)維度下降另一個(gè)維度上升)SGD很難突破對(duì)稱性,一直卡在頂RMSProp之類的方法能夠看到馬鞍方向有很低的梯度。因?yàn)樵赗MSProp更新方:AlecRadford——樣:learning_rate10**uniform(-61)。也就是說(shuō),我們從標(biāo)準(zhǔn)分布中隨機(jī)生成了一個(gè)10的階數(shù)。對(duì)于正則化強(qiáng)度,可以采用同樣的策略。直觀地說(shuō),這0.0010.01,那么對(duì)于學(xué)習(xí)進(jìn)程會(huì)有很大影響。然而當(dāng)學(xué)習(xí)率是10的時(shí)候,影響就微乎其微了。這就是因?yàn)閷W(xué)習(xí)率乘以了計(jì)算出的梯度。因此,比起加上隨機(jī)搜索優(yōu)于網(wǎng)格搜索。BergstraBengio在文章RandomSearchforHyper-ParameterOptimization中說(shuō)“隨機(jī)選擇比網(wǎng)格化的選擇更加有效”,而且在實(shí)踐中也更容易實(shí)現(xiàn)?!赗andomSearchforHyper-ParameterOptimization中的說(shuō)明圖。通常,有些超參——對(duì)于邊界上的最優(yōu)值要。這種情況一般發(fā)生在你在一個(gè)不好的范圍內(nèi)搜索超參數(shù)(比如學(xué)習(xí)率)learning_rate=10**uniform(-6,1)來(lái)進(jìn)行搜從粗到細(xì)地分階段搜索。在實(shí)踐中,先進(jìn)行初略范圍(10**61])搜索,然后根據(jù)5個(gè)周期,而最后一個(gè)階段就其的思路是在不同超參數(shù)設(shè)置下查看算法性能時(shí),要在探索和使用中進(jìn)行合理的權(quán)SpearmintSMAC,和Hyperopt。個(gè)(10個(gè))模型來(lái)進(jìn)行集成。這樣就提高了集成的多樣性,但風(fēng)險(xiǎn)在于可能會(huì)包含

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論