摘要:下面介紹一些值得注意的部分,有些簡(jiǎn)單解釋原理,具體細(xì)節(jié)不能面面俱到,請(qǐng)參考專(zhuān)業(yè)文章主要來(lái)源實(shí)戰(zhàn)那我們直接從拿到一個(gè)問(wèn)題決定用神經(jīng)網(wǎng)絡(luò)說(shuō)起。當(dāng)你使用時(shí)可以適當(dāng)減小學(xué)習(xí)率,跑過(guò)神經(jīng)網(wǎng)絡(luò)的都知道這個(gè)影響還蠻大。
神經(jīng)網(wǎng)絡(luò)構(gòu)建好,訓(xùn)練不出好的效果怎么辦?明明說(shuō)好的擬合任意函數(shù)(一般連續(xù))(為什么?可以參考http://neuralnetworksanddeeplearning.com/),說(shuō)好的足夠多的數(shù)據(jù)(https://en.wikipedia.org/wiki/Occam"s_razor),仔細(xì)設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)都可以得到比其他算法更好的準(zhǔn)確率和泛化性呢(當(dāng)然不是我說(shuō)的),怎么感覺(jué)不出來(lái)呢?
很直觀,因?yàn)樯窠?jīng)網(wǎng)絡(luò)可以隨意設(shè)計(jì),先驗(yàn)假設(shè)較少,參數(shù)多,超參數(shù)更多,那模型的自由度就非常高了,精心設(shè)計(jì)對(duì)于新手就變得較難了。這里講一些最簡(jiǎn)單的trick,肯定不全面,歡迎大家留言補(bǔ)充。
下面介紹一些值得注意的部分,有些簡(jiǎn)單解釋原理,具體細(xì)節(jié)不能面面俱到,請(qǐng)參考專(zhuān)業(yè)文章
主要來(lái)源
CS224D Lecture 6
(https://youtu.be/l0k-30FNua8)
Debugging Neural Networks
(https://stackoverflow.com/questions/41488279)
A Practical Guide to Training Restricted Boltzmann Machines
(https://www.cs.toronto.edu/~hinton/absps/guideTR.pdf)
My Neural Network isn"t working! What should I do?
(http://theorangeduck.com/page/neural-network-not-working)
Neural Network and Deep Learning
(http://neuralnetworksanddeeplearning.com/)
TensorFlow實(shí)戰(zhàn)
那我們直接從拿到一個(gè)問(wèn)題決定用神經(jīng)網(wǎng)絡(luò)說(shuō)起。一般而言,
首先選定你要采用的結(jié)構(gòu),如一對(duì)一,固定窗口,數(shù)據(jù)維度粒度,MLP,RNN或者CNN等
非線(xiàn)性選擇,sigmoid,tanh,ReLU,或者一些變體,一般tanh比sigmoid效果好一點(diǎn)(簡(jiǎn)單說(shuō)明下,兩者很類(lèi)似,tanh是rescaled的sigmoid,sigmoid輸出都為正數(shù),根據(jù)BP規(guī)則,某層的神經(jīng)元的權(quán)重的梯度的符號(hào)和后層誤差的一樣,也就是說(shuō),如果后一層的誤差為正,則這一層的權(quán)重全部都要降低,如果為負(fù),則這一層梯度全部為負(fù),權(quán)重全部增加,權(quán)重要么都增加,要么都減少,這明顯是有問(wèn)題的;tanh是以0為對(duì)稱(chēng)中心的,這會(huì)消除在權(quán)重更新時(shí)的系統(tǒng)偏差導(dǎo)致的偏向性。當(dāng)然這是啟發(fā)式的,并不是說(shuō)tanh一定比sigmoid的好),ReLU也是很好的選擇,較大的好處是,當(dāng)tanh和sigmoid飽和時(shí)都會(huì)有梯度消失的問(wèn)題,ReLU就不會(huì)有這個(gè)問(wèn)題,而且計(jì)算簡(jiǎn)單,當(dāng)然它會(huì)產(chǎn)生dead neurons,下面會(huì)具體說(shuō)。
Gradient Check,如果你覺(jué)得網(wǎng)絡(luò)feedforward沒(méi)什么問(wèn)題,那么GC可以保證BP的過(guò)程沒(méi)什么bug。值得提的是,如果feedforward有問(wèn)題,但是得到的誤差是差不多的,GC也會(huì)感覺(jué)是對(duì)的。大多情況GC可幫你找到很多問(wèn)題!步驟如下:
那如果GC失敗,可能網(wǎng)絡(luò)某些部分有問(wèn)題,也有可能整個(gè)網(wǎng)絡(luò)都有問(wèn)題了!你也不知道哪出錯(cuò)了,那怎么辦呢?構(gòu)建一個(gè)可視化過(guò)程監(jiān)控每一個(gè)環(huán)節(jié),這可以讓你清楚知道你的網(wǎng)絡(luò)的每一地方是否有問(wèn)題?。∵@里還有一個(gè)trick,先構(gòu)建一個(gè)簡(jiǎn)單的任務(wù)(比如你做MNIST數(shù)字識(shí)別,你可以先識(shí)別0和1,如果成功可以再加入更多識(shí)別數(shù)字);然后從簡(jiǎn)單到復(fù)雜逐步來(lái)檢測(cè)你的model,看哪里有問(wèn)題。舉個(gè)例子吧,先用固定的data通過(guò)單層softmax看feedforward效果,然后BP效果,然后增加單層單個(gè)neuron unit看效果;增加一層多個(gè);增加bias。。。。。直到構(gòu)建出最終的樣子,系統(tǒng)化的檢測(cè)每一步!
參數(shù)初始化也是重要滴!其主要考慮點(diǎn)在于你的激活函數(shù)的取值范圍和梯度較大的范圍!
隱層的bias一般初始化為0就可以;輸出層的bias可以考慮用reverse activation of mean targets或者mean targets(很直觀對(duì)不對(duì)) weights初始化一般較小的隨機(jī)數(shù),比如Uniform,Gaussion
更放心一點(diǎn),可視化每一層feedforward輸出的取值范圍,梯度范圍,通過(guò)修改使其落入激活函數(shù)的中間區(qū)域范圍(梯度類(lèi)似線(xiàn)性);如果是ReLU則保證不要輸出大多為負(fù)數(shù)就好,可以給bias一點(diǎn)正直的噪聲等。當(dāng)然還有一點(diǎn)就是不能讓神經(jīng)元輸出一樣,原因很簡(jiǎn)單
優(yōu)化算法,一般用mini-batch SGD,不要用full batch gradient(慢)。一般情況下,大數(shù)據(jù)集用2nd order batch method比如L-BFGS較好,但是會(huì)有大量額外計(jì)算2nd過(guò)程;小數(shù)據(jù)集,L-BFGS或共軛梯度較好。(Large-batch L-BFGS extends the reach of L-BFGSLe et al. ICML 2001)
mini-batch好處主要有:可以用矩陣計(jì)算加速并行;引入的隨機(jī)性可以避免困在局部最優(yōu)值;并行化計(jì)算多個(gè)梯度等。在此基礎(chǔ)上一些改進(jìn)也是很有效的(因?yàn)镾GD真的敏感),比如Momentum,他的意圖就是在原先的跟新基礎(chǔ)上增加一點(diǎn)摩擦力,有點(diǎn)向加速度對(duì)速度的作用,如果多次更新梯度都往一個(gè)方向,說(shuō)明這個(gè)方向是對(duì)的,這時(shí)候增加跟新的步長(zhǎng),突然有一個(gè)方向,只會(huì)較少影響原來(lái)的方向,因?yàn)榭梢暂^少的數(shù)據(jù)帶來(lái)的誤差。當(dāng)你使用momentum時(shí)可以適當(dāng)減小global learning rate
momentum
學(xué)習(xí)率,跑過(guò)神經(jīng)網(wǎng)絡(luò)的都知道這個(gè)影響還蠻大。一般就是要么選用固定的lr,要么隨著訓(xùn)練讓lr逐步變小
方案一:當(dāng)驗(yàn)證誤差不再下降時(shí),lr減小為原來(lái)的0.5
方案二:采用理論上可以保證收斂的減小比例,O(1/t),t是迭代次數(shù)
方案三:較好用自適應(yīng)的學(xué)習(xí)率,比如Adagrad(Duchi et al. 2010)等
簡(jiǎn)要說(shuō)明一下,Adagrad非常適合數(shù)據(jù)出現(xiàn)頻度不一樣的模型,比如word2vec,你肯定希望出現(xiàn)非常少的詞語(yǔ)權(quán)重更新非常大,讓它們遠(yuǎn)離常規(guī)詞,學(xué)習(xí)到向量空間中距離度量的意義,出現(xiàn)非常多的詞(the,very,often)每次更新比較小。
adagrad
按照上面式子,如果進(jìn)入一個(gè)local optimum,參數(shù)可能無(wú)法更新時(shí),可以考慮每隔一段epoch,reset sum項(xiàng)
看看你的模型有沒(méi)有能力過(guò)擬合!(training error vs. validation error)
如果沒(méi)有,想辦法讓它過(guò)擬合!(r u kidding?! 哈哈),一般而言,當(dāng)參數(shù)多于training數(shù)據(jù)時(shí),模型是有能力記住數(shù)據(jù)的,總歸先保證模型的能力么
如果過(guò)擬合了,那么就可以進(jìn)一步優(yōu)化啦,一般深度學(xué)習(xí)breakthrough的方法都是來(lái)自于更好的regularization method,解決過(guò)擬合很多方法在此就不多論述了。比如減小模型(layers, units);L1,L2正則(weight decay);early stop(按照數(shù)據(jù)集大小,每隔一段epoch(比如小數(shù)據(jù)集每隔5epoch,大的每隔(1/3epoch))保存模型,最后選擇validation error 最小的模型);sparsity constraints on hidden activation;Dropout;data
augumentation (CNN 一些變化不變性要注意)等
======================================================
大體流程如上,再引一篇大神之作,Practical Recommendations for Gradient-Based Training of Deep Architectures Y. Bengio(2012),額外提到的有unsupervised預(yù)訓(xùn)練。其實(shí)數(shù)據(jù)不夠時(shí)也可以找類(lèi)似任務(wù)做遷移學(xué)習(xí),fine-tuning等。
最后,可以看到一個(gè)網(wǎng)絡(luò)那么多的超參數(shù),怎么去選這些超參數(shù)呢?文章也說(shuō)了:
Random hyperparameter search!
以上提的多是supervised learning,對(duì)于unsupervised learning可以做fine tuning
接下來(lái)按一些模塊具體列舉下,歡迎補(bǔ)充!!
論文鏈接:
https://link.springer.com/chapter/10.1007/978-3-642-35289-8_26
標(biāo)準(zhǔn)化(Normalization)
很多machine learning模型都需要,在此不多論述,神經(jīng)網(wǎng)絡(luò)假設(shè)inputs/outputs服從近似均值為0方差為1分布。主要為了公平對(duì)待每個(gè)特征;使優(yōu)化過(guò)程變得平穩(wěn);消除量綱影響等
z-score; min-max; decimal scaling等
scale控制特征的重要性:大scale的output特征產(chǎn)生更大的error;大的scale的input的特征可以主導(dǎo)網(wǎng)絡(luò)對(duì)此特征更敏感,產(chǎn)生大的update
一些特征本來(lái)取值范圍很小需要格外注意,避免產(chǎn)生NaNs
就算沒(méi)有標(biāo)準(zhǔn)化你的網(wǎng)絡(luò)可以訓(xùn)練的話(huà),那可能前幾層也是做類(lèi)似的事情,無(wú)形增加了網(wǎng)絡(luò)的復(fù)雜程度
通常都是把所有inputs的特征獨(dú)立地按同樣的規(guī)則標(biāo)準(zhǔn)化,如果對(duì)任務(wù)有特殊需求,某些特征可以特別對(duì)待
檢查結(jié)果(Results Check)
有點(diǎn)類(lèi)似于在模型中按一個(gè)監(jiān)控系統(tǒng)(預(yù)處理,訓(xùn)練,預(yù)測(cè)過(guò)程中都要),這個(gè)步驟可以幫助你發(fā)現(xiàn)你的模型在哪里出了問(wèn)題,較好可以找到可視化的方法,一目了然,比如圖像方面就很直觀了。
需要注意的是,你需要理解你設(shè)定的error的意義,就算訓(xùn)練過(guò)程error在不斷減少,也需要來(lái)和真實(shí)的error比較,雖然training error減少了,但是可能還不夠,真實(shí)世界中需要更小的error,說(shuō)明模型學(xué)習(xí)的還不夠
當(dāng)在training過(guò)程中work后,再去看在validation集上的效果
再更新網(wǎng)絡(luò)結(jié)構(gòu)前,較好確保每一個(gè)環(huán)節(jié)都有“監(jiān)控”,不要盲目做無(wú)用功
預(yù)處理(Pre-Processing Data)
現(xiàn)實(shí)中同樣的數(shù)據(jù)可以有不同的表達(dá)方式,比如移動(dòng)的汽車(chē),你從不同角度位置去觀察,它做的都是同樣的事情。你應(yīng)該確保從南面觀察和從西面觀察的同樣的數(shù)據(jù),應(yīng)該是相似的!
神經(jīng)網(wǎng)絡(luò)假設(shè)數(shù)據(jù)的分布空間是連續(xù)的
減少數(shù)據(jù)表示多樣性帶來(lái)的誤差;間接減少了網(wǎng)絡(luò)前幾層做沒(méi)必要的“等同”映射帶來(lái)的復(fù)雜度
正則化(Regularization)
增加Dropout,隨機(jī)過(guò)程,噪聲,data augumentation等。就算數(shù)據(jù)足夠多,你認(rèn)為不可能over-fitting,那么較好還是有正則,如dropout(0.99)
一方面緩解過(guò)擬合,另一方面引入的隨機(jī)性,可以平緩訓(xùn)練過(guò)程,加速訓(xùn)練過(guò)程,處理outliers
Dropout可以看做ensemble,特征采樣,相當(dāng)于bagging很多子網(wǎng)絡(luò);訓(xùn)練過(guò)程中動(dòng)態(tài)擴(kuò)展擁有類(lèi)似variation的輸入數(shù)據(jù)集。(在單層網(wǎng)絡(luò)中,類(lèi)似折中Naiive bayes(所有特征權(quán)重獨(dú)立)和logistic regression(所有特征之間有關(guān)系);
一般對(duì)于越復(fù)雜的大規(guī)模網(wǎng)絡(luò),Dropout效果越好,是一個(gè)強(qiáng)regularizer!
較好的防止over-fitting就是有大量不重復(fù)數(shù)據(jù)
Batch Size太大
太大的batch size會(huì)減gradient descend的隨機(jī)性,對(duì)模型的精度產(chǎn)生負(fù)面影響。
如果可以容忍訓(xùn)練時(shí)間過(guò)長(zhǎng),較好開(kāi)始使用盡量小的batch size(16,8,1)
大的batch size需要更多的epoch來(lái)達(dá)到較好的水平
原因1:幫助訓(xùn)練過(guò)程中跳出local minima
原因2:使訓(xùn)練進(jìn)入較為平緩的local minima,提高泛化性
學(xué)習(xí)率lr
去掉gradient clipping(一般默認(rèn)有),訓(xùn)練過(guò)程中,找到較大的,使模型error不會(huì)爆掉的lr,然后用稍微小一點(diǎn)的lr訓(xùn)練
一般數(shù)據(jù)中的outliers會(huì)產(chǎn)生大的error,進(jìn)而大的gradient,得到大的weight update,會(huì)使最優(yōu)的lr比較難找
預(yù)處理好數(shù)據(jù)(去除outliers),lr設(shè)定好一般無(wú)需clipping
如果error explode,那么加gradient clipping只是暫時(shí)緩解,原因還是數(shù)據(jù)有問(wèn)題
最后一層的激活函數(shù)
限制輸出的范圍,一般不用任何激活
需要仔細(xì)考慮輸入是什么,標(biāo)準(zhǔn)化之后的輸出的取值范圍,如果輸出有正有負(fù),你用ReLU,sigmoid明顯不行;多分類(lèi)任務(wù)一般用softmax(相當(dāng)于對(duì)輸出歸一化為概率分布)
激活只是一個(gè)映射,理論上都可以
如果輸出沒(méi)有error明顯也不行,那就沒(méi)有g(shù)radient,模型也學(xué)不到什么
一般用tanh,產(chǎn)生一個(gè)問(wèn)題就是梯度在-1或1附近非常小,神經(jīng)元飽和學(xué)習(xí)很慢,容易產(chǎn)生梯度消息,模型產(chǎn)生更多接近-1或1的值
Bad Gradient(Dead Neurons)
使用ReLU激活函數(shù),由于其在小于零范圍梯度為0,可能會(huì)影響模型性能,甚至模型不會(huì)在更新
當(dāng)發(fā)現(xiàn)模型隨著epoch進(jìn)行,訓(xùn)練error不變化,可能所以神經(jīng)元都“死”了。這時(shí)嘗試更換激活函數(shù)如leaky ReLU,ELU,再看訓(xùn)練error變化
使用ReLU時(shí)需要給參數(shù)加一點(diǎn)噪聲,打破完全對(duì)稱(chēng)避免0梯度,甚至給biases加噪聲
相對(duì)而言對(duì)于sigmoid,因?yàn)槠湓?值附近最敏感,梯度較大,初始化全為0就可以啦
任何關(guān)于梯度的操作,比如clipping, rounding, max/min都可能產(chǎn)生類(lèi)似的問(wèn)題
ReLU相對(duì)Sigmoid優(yōu)點(diǎn):?jiǎn)蝹?cè)抑制;寬闊的興奮邊界;稀疏激活性;解決梯度消失
初始化權(quán)重
一般說(shuō)隨機(jī)初始化為一些小的數(shù),沒(méi)那么簡(jiǎn)單,一些網(wǎng)絡(luò)結(jié)構(gòu)需要一些特定的初始化方法,初始化不好很可能得不到文章上的效果!可以去嘗試一些流行的找到有用的初始化
太?。盒盘?hào)傳遞逐漸縮小難以產(chǎn)生作用
太大:信號(hào)傳遞逐漸放大導(dǎo)致發(fā)散和失效
比較流行的有 "he", "lecun", "Xavier"(讓權(quán)重滿(mǎn)足0均值,2/(輸入節(jié)點(diǎn)數(shù)+輸出節(jié)點(diǎn)數(shù)))
biases一般初始化為0就可以
每一層初始化都很重要
網(wǎng)絡(luò)太深
都說(shuō)深度網(wǎng)絡(luò)精度更高,但深度不是盲目堆起來(lái)的,一定要在淺層網(wǎng)絡(luò)有一定效果的基礎(chǔ)上,增加深度。深度增加是為了增加模型的準(zhǔn)確率,如果淺層都學(xué)不到東西,深了也沒(méi)效果。
開(kāi)始一般用3-8層,當(dāng)效果不錯(cuò)時(shí),為了得到更高的準(zhǔn)確率,再?lài)L試加深網(wǎng)絡(luò)
所以的優(yōu)化方法在淺層也有用,如果效果不好,不是深度不夠
訓(xùn)練和預(yù)測(cè)過(guò)程隨著網(wǎng)絡(luò)加深變慢
Hidden neurons的數(shù)量
較好參考researcher在相似的任務(wù)上結(jié)構(gòu),一般256-1024
太多:訓(xùn)練慢,難去除噪聲(over-fitting)
太少:擬合能力下降
考慮真實(shí)變量有多少信息量需要傳遞,然后再稍微增加一點(diǎn)(考慮dropout;冗余表達(dá);估計(jì)的余地)
分類(lèi)任務(wù):初始嘗試5-10倍類(lèi)別個(gè)數(shù)
回歸任務(wù):初始嘗試2-3倍輸入/輸出特征數(shù)
這里直覺(jué)很重要
最終影響其實(shí)不大,只是訓(xùn)練過(guò)程比較慢,多嘗試
loss function
多分類(lèi)任務(wù)一般用cross-entropy不用MSE
多分類(lèi)一般用softmax,在小于0范圍內(nèi)梯度很小,加一個(gè)log可以改善此問(wèn)題
避免MSE導(dǎo)致的學(xué)習(xí)速率下降,學(xué)習(xí)速率受輸出誤差控制(自己推一下就知道了)
AE降維
對(duì)中間隱層使用L1正則,通過(guò)懲罰系數(shù)控制隱含節(jié)點(diǎn)稀疏程度
SGD
不穩(wěn)定算法,設(shè)定不同的學(xué)習(xí)速率,結(jié)果差距大,需要仔細(xì)調(diào)節(jié)
一般希望開(kāi)始大,加速收斂,后期小,穩(wěn)定落入局部最優(yōu)解。
也可采用自適應(yīng)的算法,Adam,Adagrad,Adadelta等減輕調(diào)參負(fù)擔(dān)(一般使用默認(rèn)值就可以)
對(duì)于SGD需要對(duì)學(xué)習(xí)率,Momentum,Nesterov等進(jìn)行復(fù)雜調(diào)參
值得一提是神經(jīng)網(wǎng)絡(luò)很多局部最優(yōu)解都可能達(dá)到較好的效果,而全局最優(yōu)解反而是容易過(guò)擬合的解
CNN的使用
神經(jīng)網(wǎng)絡(luò)是特征學(xué)習(xí)方法,其能力取決隱層,更多的連接意味著參數(shù)爆炸的增長(zhǎng),模型復(fù)雜直接導(dǎo)致很多問(wèn)題。比如嚴(yán)重過(guò)擬合,過(guò)高的計(jì)算復(fù)雜度。
CNN其優(yōu)越的性能十分值得使用,參數(shù)數(shù)量只和卷積核大小,數(shù)量有關(guān),保證隱含節(jié)點(diǎn)數(shù)量(與卷積步長(zhǎng)相關(guān))的同時(shí),大量降低了參數(shù)的數(shù)量!當(dāng)然CNN更多用于圖像,其他任務(wù)靠你自己抽象啦,多多嘗試!
這里簡(jiǎn)單介紹一些CNN的trick
pooling或卷積尺寸和步長(zhǎng)不一樣,增加數(shù)據(jù)多樣性
data augumentation,避免過(guò)擬合,提高泛化,加噪聲擾動(dòng)
weight regularization
SGD使用decay的訓(xùn)練方法
最后使用pooling(avgpooling)代替全連接,減少參數(shù)量
maxpooling代替avgpooling,避免avgpooling帶來(lái)的模糊化效果
2個(gè)3x3代替一個(gè)5x5等,減少參數(shù),增加非線(xiàn)性映射,使CNN對(duì)特征學(xué)習(xí)能力強(qiáng)
3x3,2x2窗口
預(yù)訓(xùn)練方法等
數(shù)據(jù)預(yù)處理后(PCA,ZCA)喂給模型
輸出結(jié)果窗口ensemble
中間節(jié)點(diǎn)作為輔助輸出節(jié)點(diǎn),相當(dāng)于模型融合,同時(shí)增加反向傳播的梯度信號(hào),提供了額外的正則化
1x1卷積,夸通道組織信息,提高網(wǎng)絡(luò)表達(dá),可對(duì)輸出降維,低成本,性?xún)r(jià)比高,增加非線(xiàn)性映射,符合Hebbian原理
NIN增加網(wǎng)絡(luò)對(duì)不同尺度的適應(yīng)性,類(lèi)似Multi-Scale思想
Factorization into small convolution,7x7用1x7和7x1代替,節(jié)約參數(shù),增加非線(xiàn)性映射
BN減少I(mǎi)nternal Covariance Shift問(wèn)題,提高學(xué)習(xí)速度,減少過(guò)擬合,可以取消dropout,增大學(xué)習(xí)率,減輕正則,減少光學(xué)畸變的數(shù)據(jù)增強(qiáng)
模型遇到退化問(wèn)題考慮shortcut結(jié)構(gòu),增加深度
等等
RNN使用
小的細(xì)節(jié)和其他很像,簡(jiǎn)單說(shuō)兩句個(gè)人感覺(jué)的其他方面吧,其實(shí)RNN也是shortcut結(jié)構(gòu)
一般用LSTM結(jié)構(gòu)防止BPTT的梯度消失,GRU擁有更少的參數(shù),可以?xún)?yōu)先考慮
預(yù)處理細(xì)節(jié),padding,序列長(zhǎng)度設(shè)定,罕見(jiàn)詞語(yǔ)處理等
一般語(yǔ)言模型的數(shù)據(jù)量一定要非常大
Gradient Clipping
Seq2Seq結(jié)構(gòu)考慮attention,前提數(shù)據(jù)量大
序列模型考率性能優(yōu)良的CNN+gate結(jié)構(gòu)
一般生成模型可以參考GAN,VAE,產(chǎn)生隨機(jī)變量
RL的框架結(jié)合
數(shù)據(jù)量少考慮簡(jiǎn)單的MLP
預(yù)測(cè)采用層級(jí)結(jié)構(gòu)降低訓(xùn)練復(fù)雜度
設(shè)計(jì)采樣方法,增加模型收斂速度
增加多級(jí)shortcut結(jié)構(gòu)
聲明:本文版權(quán)歸原作者所有,文章收集于網(wǎng)絡(luò),為傳播信息而發(fā),如有侵權(quán),請(qǐng)聯(lián)系小編及時(shí)處理,謝謝!商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)
QQ群:81035754
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/4862.html
摘要:另外,在損失函數(shù)中加入感知正則化則在一定程度上可緩解該問(wèn)題。替代損失函數(shù)修復(fù)缺陷的最流行的補(bǔ)丁是。的作者認(rèn)為傳統(tǒng)損失函數(shù)并不會(huì)使收集的數(shù)據(jù)分布接近于真實(shí)數(shù)據(jù)分布。原來(lái)?yè)p失函數(shù)中的對(duì)數(shù)損失并不影響生成數(shù)據(jù)與決策邊界的距離。 盡管 GAN 領(lǐng)域的進(jìn)步令人印象深刻,但其在應(yīng)用過(guò)程中仍然存在一些困難。本文梳理了 GAN 在應(yīng)用過(guò)程中存在的一些難題,并提出了的解決方法。使用 GAN 的缺陷眾所周知,G...
摘要:接下來(lái)介紹一種非常重要的神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)。此后,卷積神經(jīng)網(wǎng)絡(luò)及其變種被廣泛應(yīng)用于各種圖像相關(guān)任務(wù)。目前,圖像識(shí)別大都使用深層的卷積神經(jīng)網(wǎng)絡(luò)及其變種。卷積神經(jīng)網(wǎng)絡(luò)有個(gè)基本的局部感知域,權(quán)值共享和池化。 本系列文章面向深度學(xué)習(xí)研發(fā)者,希望通過(guò)Image Caption Generation,一個(gè)有意思的具體任務(wù),深入淺出地介紹深度學(xué)習(xí)的知識(shí)。本系列文章涉及到很多深度學(xué)習(xí)流行的模型,如CNN,...
摘要:二階動(dòng)量的出現(xiàn),才意味著自適應(yīng)學(xué)習(xí)率優(yōu)化算法時(shí)代的到來(lái)。自適應(yīng)學(xué)習(xí)率類(lèi)優(yōu)化算法為每個(gè)參數(shù)設(shè)定了不同的學(xué)習(xí)率,在不同維度上設(shè)定不同步長(zhǎng),因此其下降方向是縮放過(guò)的一階動(dòng)量方向。 說(shuō)到優(yōu)化算法,入門(mén)級(jí)必從SGD學(xué)起,老司機(jī)則會(huì)告訴你更好的還有AdaGrad / AdaDelta,或者直接無(wú)腦用Adam??墒强纯磳W(xué)術(shù)界的paper,卻發(fā)現(xiàn)一眾大神還在用著入門(mén)級(jí)的SGD,最多加個(gè)Moment或者Nes...
摘要:在這篇文章中我們嘗試了用分類(lèi)類(lèi)圖像。實(shí)際上我們將每張訓(xùn)練集中的圖像認(rèn)為成一類(lèi)。我們采用了一個(gè)簡(jiǎn)單的方法在最后分類(lèi)前,讓文本和圖像使用一個(gè),那么在過(guò)程中會(huì)用一個(gè)軟的約束,這就完成了詳見(jiàn)論文。類(lèi)似圖像的操作吧。 Motivation在這篇文章中我們嘗試了 用CNN分類(lèi)113,287類(lèi)圖像(MSCOCO)。實(shí)際上我們將每張訓(xùn)練集中的圖像認(rèn)為成一類(lèi)。(當(dāng)然, 如果只用一張圖像一類(lèi),CNN肯定會(huì)過(guò)擬合...
摘要:測(cè)度是高維空間中長(zhǎng)度面積體積概念的拓廣,可以理解為超體積。前作其實(shí)已經(jīng)針對(duì)第二點(diǎn)提出了一個(gè)解決方案,就是對(duì)生成樣本和真實(shí)樣本加噪聲,直觀上說(shuō),使得原本的兩個(gè)低維流形彌散到整個(gè)高維空間,強(qiáng)行讓它們產(chǎn)生不可忽略的重疊。 在GAN的相關(guān)研究如火如荼甚至可以說(shuō)是泛濫的今天,一篇新鮮出爐的arXiv論文《Wasserstein GAN》卻在Reddit的Machine Learning頻道火了,連Go...
閱讀 2561·2021-11-23 09:51
閱讀 1907·2021-10-13 09:40
閱讀 1446·2021-09-30 10:01
閱讀 621·2021-09-26 09:46
閱讀 2294·2021-09-23 11:55
閱讀 1487·2021-09-10 10:51
閱讀 2323·2021-09-09 09:33
閱讀 2259·2019-08-29 17:25