99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

訓(xùn)練神經(jīng)網(wǎng)絡(luò)到底有訣竅和套路嗎?

MqC7_CAAI_1981 ? 來源:lq ? 2019-04-28 10:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

訓(xùn)練神經(jīng)網(wǎng)絡(luò)到底有訣竅和套路嗎?

Andrej Karpathy認為,還的確有。

這位特斯拉人工智能研究負責人、李飛飛的斯坦福高徒剛剛難得更新了博客,推出了一篇長文《神經(jīng)網(wǎng)絡(luò)的訓(xùn)練秘籍》,詳細講述了我們在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時候可以遵循的套路。

據(jù)Andrej Karpathy推特說,他本來是在推特上寫了一些自己訓(xùn)練神經(jīng)網(wǎng)絡(luò)的經(jīng)驗教訓(xùn),結(jié)果網(wǎng)友們反響強烈,所以他決定把相關(guān)內(nèi)容更完整的在一篇文章中呈現(xiàn)給大家。

在這篇長文中,Andrej Karpathy像一個操心的老父親一樣,詳細且循循善誘地對所有機器學(xué)習從業(yè)者講述了構(gòu)建神經(jīng)網(wǎng)絡(luò)的難處,以及如何才能循序漸進地構(gòu)造神經(jīng)網(wǎng)絡(luò)。講述細致,邏輯清晰,非常值得一看。

文摘菌也在第一時間對文章做了翻譯,以下是翻譯原文,enjoy~

以下內(nèi)容翻譯至Andrej Karpathy的博客:A Recipe for Training Neural Networks。

神經(jīng)網(wǎng)絡(luò)訓(xùn)練是一個漏洞百出的抽象概念

都說萬事開頭難,但隨著訓(xùn)練神經(jīng)網(wǎng)絡(luò)的一些即插即用的工具的出現(xiàn),很多30行代碼解決問題的案例讓人誤以為訓(xùn)練神經(jīng)網(wǎng)絡(luò)很簡單,就像這樣:

>>> your_data = # plug your awesome dataset here>>> model = SuperCrossValidator(SuperDuper.fit, your_data, ResNet50, SGDOptimizer)# conquer world here

這些庫和例子是不是對你來說很熟悉?比如Request庫。

>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))>>> r.status_code200

這些分享非常酷炫, 一些開發(fā)人員提供了理解查詢字符串,URL,GET / POST請求,HTTP連接等等,并且在很大程度上隱藏了幾行代碼背后的復(fù)雜性。

但不幸的是,神經(jīng)網(wǎng)絡(luò)并不是這樣的。它們不是“現(xiàn)成的”技術(shù),這個可以在我之前寫的“你該知道backprop"一文中有介紹。

文章鏈接

https://medium.com/@karpathy/yes-you-should-understand-backprop-e2f06eab496b

Backprop + SGD并沒有神奇地讓你的網(wǎng)絡(luò)運作,批量規(guī)范也不會神奇地使其收斂得更快。RNN也不會地讓輕而易舉地你“插入”文本。你可以用RL制定問題也不意味你應(yīng)該這么做。

如果你堅持使用該神經(jīng)網(wǎng)絡(luò)訓(xùn)練而不了解其工作原理,就很容易會失敗。

訓(xùn)練失敗的神經(jīng)網(wǎng)絡(luò)

當你錯誤配置代碼時,通常會遇到某種異常。比如你在一個預(yù)期字符串的位置插入了整數(shù)。因為該函數(shù)只需要3個參數(shù),所以輸入失敗。對此我們通??梢詾樘囟üδ軇?chuàng)建一個單元測試。

這只是訓(xùn)練神經(jīng)網(wǎng)絡(luò)的一個開始。但可能出現(xiàn)所有語法正確,整個事情就是不對的情況,而且很難說清楚哪里不對。

“可能的錯誤“的覆蓋面非常大,而且是邏輯性的(與語法相反),這很難通過單元測試判斷出來。例如,在數(shù)據(jù)增強期間需要左右翻轉(zhuǎn)圖像時,你可能忘記翻轉(zhuǎn)標簽。你的網(wǎng)絡(luò)仍然可以繼續(xù)工作得非常好,因為它可以在內(nèi)部學(xué)習檢測翻轉(zhuǎn)的圖像,然后左右翻轉(zhuǎn)其預(yù)測。

這之后,或許你的自回歸模型會因為一個錯誤的錯誤而將它想要預(yù)測的東西作為輸入?;蛘吣阆M眉裟愕奶荻鹊悄P筒眉袅巳笔е?,導(dǎo)致模型忽略異常值?;蛘吣銜念A(yù)訓(xùn)練檢查點初始化權(quán)重,但沒有使用原始均值?;蛘吣阒皇歉阍伊苏齽t化強度,學(xué)習率,衰減率,模型大小等設(shè)置。因此,錯誤配置的神經(jīng)網(wǎng)絡(luò)只有在你運氣好的時候才會讓你發(fā)現(xiàn)異常,大部分時間它會自己訓(xùn)練,默默工作,然后越來越糟糕。

過猶不及,訓(xùn)練神經(jīng)網(wǎng)絡(luò)的“快速和大強度”的方法不起作用,只能帶來一系列麻煩,這在過去是對的。但現(xiàn)在,這些麻煩可以成為讓神經(jīng)網(wǎng)絡(luò)運作良好的一個部分,主要通過可視化來達到。深度學(xué)習要想成功,最需要的品質(zhì)是耐心和對細節(jié)的關(guān)注。

秘籍在手,訓(xùn)練不愁

基于上文講述的兩個問題,我為自己開發(fā)了一套神經(jīng)網(wǎng)絡(luò)訓(xùn)練”套路”。本文中我將嘗試描述這個套路。這個套路非常重視上述兩個原則,并且從簡到繁,在每一步都對將要發(fā)生的事情做出具體假設(shè),然后通過實驗驗證或進行檢查,直到問題出現(xiàn)。

避免一次性地引入多個“未經(jīng)驗證的”復(fù)雜因素,這會導(dǎo)致你長時間的查找錯誤配置(如果有的話)。如果編寫神經(jīng)網(wǎng)絡(luò)代碼就像訓(xùn)練一樣,最好控制學(xué)習速率,作出猜測,然后在每次迭代后評估完整的測試集。

1.開始訓(xùn)練前,先對數(shù)據(jù)了熟于心

訓(xùn)練神經(jīng)網(wǎng)絡(luò)的第一步不是研究神經(jīng)網(wǎng)絡(luò)代碼,而是從徹底檢查數(shù)據(jù)開始。這一步至關(guān)重要。我喜歡花費大量時間(以小時為單位)瀏覽數(shù)千個示例,了解它們的分布并尋找規(guī)律。幸運的是,我們的大腦非常擅長這一點。

有一次我發(fā)現(xiàn)數(shù)據(jù)集中包含重復(fù)的例子,還有一次我發(fā)現(xiàn)了損壞的圖像/標簽。我會嘗試尋找數(shù)據(jù)的不平衡和偏見。我通常也會關(guān)注我自己的數(shù)據(jù)分類過程,從中可以看到我們最終要探索的各種架構(gòu)。

這個數(shù)據(jù)集的背景是什么?有多少變化,它采取什么形式?什么變化是假的,可以預(yù)處理?空間位置是否重要,或者我們是否想要將其平均化?細節(jié)有多重要,我們可以在多大程度上對圖像進行縮減采樣?標簽有多少?

此外,由于神經(jīng)網(wǎng)絡(luò)實際上是數(shù)據(jù)集的壓縮/編譯版本,因此你將能夠查看網(wǎng)絡(luò)(錯誤)預(yù)測并了解它們的來源。如果你的網(wǎng)絡(luò)給你的預(yù)測看起來與你在數(shù)據(jù)中看到的內(nèi)容不一致,那么就會有所收獲。

一旦獲得定性意義,編寫一些簡單的代碼來搜索/過濾/排序也是一個好主意(例如標簽的類型,注釋的大小,注釋的數(shù)量等),你可以可視化它們的分布,發(fā)現(xiàn)沿任何軸的異常值,注意,異常值幾乎總能揭示數(shù)據(jù)質(zhì)量或預(yù)處理中的一些錯誤。

2. 設(shè)置端到端的評估框架

當你了解數(shù)據(jù)就可以利用多尺度ASPP FPN ResNet并開始訓(xùn)練模型了么?那你真是想多了。

下一步應(yīng)該做的是建立一個完整的訓(xùn)練模型+評估框架,并通過一系列實驗獲得對其正確性的信任。在這個階段, 你最好選擇一種有把握的簡單模型,例如線性分類器或非常小的ConvNet。訓(xùn)練的內(nèi)容通常包括可視化損失、準確度、模型預(yù)測等,并在此過程中使用伴有明確假設(shè)的一系列消融實驗。

固定隨機種子

始終使用固定的隨機種子來確保當你運行代碼兩次時,還可以獲得相同的結(jié)果。這種方法可以消除差異因素的影響。

簡化

不要野心太大加入過多數(shù)據(jù), 這個階段一定要關(guān)閉其他數(shù)據(jù)庫的擴充,在我們以后的正規(guī)訓(xùn)練中可能會嘗試擴充數(shù)據(jù), 但現(xiàn)在加入無疑是給自己找麻煩。

在評估中添加有效數(shù)字

當你在整個大的測試集進行評估并出現(xiàn)失敗時, 不要繼續(xù)進行批量的測試然后指望在Tensorboard進行平滑處理。我們需要追求準確,但也需要在適當?shù)臅r候保持理智的放棄。

驗證損失函數(shù)

用正確的損失值來驗證損失函數(shù), 例如,如果要保證初始化最后一層的正確, 你需要在softmax初始化時測試log(1/n_classes), 相同的默認值可以是L2 回歸、Huber losses等。

初始化正確

確定初始化最終圖層權(quán)重正確。例如,如果你回歸一些平均值為50的值,則將最終偏差初始化為50。如果你有一個比例為1:10的不平衡數(shù)據(jù)集:正數(shù):負數(shù),請設(shè)置對數(shù)的偏差,以便你的網(wǎng)絡(luò)預(yù)測概率在初始化時為0.1。在最初的幾次迭代中,你的網(wǎng)絡(luò)只是基本地學(xué)習偏差,正確設(shè)置這些將加速收斂并消除“曲棍球棒”損失曲線。

人為設(shè)置基準

監(jiān)控除人為可解釋和可檢查的損失之外的指標,例如準確性。盡可能評估你自己的準確性并與之進行比較?;蛘?,對測試數(shù)據(jù)進行兩次注解,將一個視為預(yù)測,將第二個作為基礎(chǔ)事實。

輸入-獨立基準

訓(xùn)練一個輸入-獨立的基準,最簡單的方法是將所有輸入設(shè)置為零。如果不清零,當你插入數(shù)據(jù)時就變得很糟糕,因為你的模型可能會從輸入中提取信息。

先過擬合一部分數(shù)據(jù)

我們可以增加模型的容量(例如添加層或過濾器)以驗證我們可以達到可實現(xiàn)的最低損失(例如零)。然后可以在同一個圖中同時顯示標簽和預(yù)測,并確保一旦達到最小損失,它們就會完美對齊。如果沒有對齊,那么就意味著哪里有一個錯誤,我們將無法進入下一個階段。

自我驗證

在使用玩具模型的階段,數(shù)據(jù)集和你的模型越不合適越好。嘗試稍微增加容量,然后看看你的訓(xùn)練損失是否隨之下降了。

提前可視化數(shù)據(jù)

在運行y_hat = model(x)或sess.run在tf指令之前,最好先明確數(shù)據(jù)的位置,也就是說可視化網(wǎng)絡(luò)中的內(nèi)容,將原始的大量數(shù)據(jù)和標簽可視化。使它成為唯一的事實來源”。這個步驟無數(shù)次地節(jié)省了我的時間,并且為我揭示了數(shù)據(jù)預(yù)處理和擴充中的問題。

可視化預(yù)測動態(tài)

我喜歡在訓(xùn)練模型過程中對固定測試批次上的模型預(yù)測進行可視化。這些預(yù)測的“動態(tài)”可以讓你直觀地了解到模型訓(xùn)練的進展情況。如果你看到網(wǎng)絡(luò)劇烈擺動,顯示出不穩(wěn)定性,那就可能是你選擇的模型不適合這套數(shù)據(jù)。學(xué)習率非常低或非常高地情況下抖動量也會很明顯。

使用反向傳播來繪制依賴關(guān)系

深度學(xué)習代碼通常包含復(fù)雜的,矢量化的和工作量巨大的操作。一個相對常見的錯誤是人們弄錯指令(例如在應(yīng)該使用transposepermute到地方使用了view并且無意中在不同維度上混合信息。

令人沮喪的是,機器學(xué)習模型仍然可以正常訓(xùn)練,因為它會學(xué)習忽略其他示例中的數(shù)據(jù)。調(diào)試此問題(以及其他相關(guān)問題)的一種方法是將一個案例的的缺失值設(shè)定為1.0,然后反向傳遞一直運行到輸入,確保在這個案例到其他案例上獲得一個非零梯度值。梯度值可以提供網(wǎng)絡(luò)中關(guān)鍵內(nèi)容的信息,這對調(diào)試很有用。

使用特例

編寫特例是一個通用的編碼技巧,但我經(jīng)常看到人們寫下一個非常復(fù)雜的例子。我建議先從相對一般的功能開始。我喜歡為我現(xiàn)在正在做的事情編寫一個非常具體的函數(shù),讓它運行,之后概括它得出的的結(jié)果。這非常適用于矢量化代碼,我一般都是先寫出一個完全循環(huán)的版本,然后一次一個循環(huán)地將它轉(zhuǎn)換為矢量化代碼。

3.過擬合

到這個階段,我們應(yīng)該對數(shù)據(jù)集有了很好的理解,同時我們必須保證我們的模型能夠滿足訓(xùn)練與驗證結(jié)果的要求。對于任意模型,我們能夠計算得出一個我們足以信任的指標。同時,我們也對我們的模型性能提出不基于輸入的性能指標(模型性能不應(yīng)受輸入影響),我們模型的性能應(yīng)當勝過傻瓜模型(比如隨機分類)的性能,我們也應(yīng)當對于人工的性能有一定的了解(我們希望我們的模型能夠達到人類智能的層次)。到了處理擬合的這個階段,我們將對模型進行迭代,從而提高模型的質(zhì)量。

我用來尋找高質(zhì)量模型的方法就是兩步:首先找一個過擬合的模型(比如說,過擬合的判定標準可以是訓(xùn)練損失),然后我對這個模型進行規(guī)范化(regularize)處理從而使這個過擬合的模型變成一個高質(zhì)量的模型(以降低部分訓(xùn)練損失的代價提高驗證損失的質(zhì)量——即以提高一點訓(xùn)練誤差的代價降低較多的驗證誤差)。我喜歡用兩步法的原因很簡單,如果我們不能在第一步中根本不能使用任何模型取得較低的誤差,這意味著我們的機器學(xué)習存在著一些問題,或者bug,或者錯誤配置。

這一步的一些提示與技巧:

挑選模型。為了取得較好的訓(xùn)練損失(較低的訓(xùn)練誤差),你應(yīng)當根據(jù)數(shù)據(jù)選取合適的網(wǎng)絡(luò)結(jié)構(gòu)。在選擇模型時,我的第一條建議是:不要想著一口吃能胖子。我看到了好多人,如同堆樂高玩具一般,使用神經(jīng)網(wǎng)絡(luò)工具箱瘋狂調(diào)整網(wǎng)絡(luò)結(jié)構(gòu),狂熱地妄想著創(chuàng)造詭異的神經(jīng)網(wǎng)絡(luò),一步取得高質(zhì)量的模型。在你項目的初期階段,千萬要抑制自己產(chǎn)生這樣的想法。我經(jīng)常建議人們就簡簡單單地查查和自己項目相關(guān)的論文,然后把他們模型的簡化版應(yīng)用在自己的項目來取得較好的性能。比如說,你想對圖片分類,那就別先急著創(chuàng)建自己的神經(jīng)網(wǎng)絡(luò),簡簡單單把ResNet-50抄過來試一試。在這之后,你就可以在這個網(wǎng)絡(luò)上做一些自己的調(diào)整,并且用調(diào)整后的新網(wǎng)絡(luò),告訴ResNet-50誰才是真的爸爸。

Adam優(yōu)化是靠譜的。在最初的訓(xùn)練階段,我會使用學(xué)習速率為3e-4的Adam作為網(wǎng)絡(luò)參數(shù)的優(yōu)化/迭代方法。對于ConvNets(卷積神經(jīng)網(wǎng)絡(luò))而言,精準調(diào)參的隨機梯度下降(Stochastic Gradient Descent)會比Adam擁有更好地性能,但是最優(yōu)學(xué)習速率的區(qū)間會更窄,對于不同的問題會有不同的最優(yōu)學(xué)習速率區(qū)間。(注意:如果你在使用遞歸神經(jīng)網(wǎng)絡(luò)或者相關(guān)的序列模型,Adam的使用就更加廣泛了。在你項目的初期,我再強調(diào)一次,不要想著一步登天,跟著論文依樣畫瓢。)

提高模型復(fù)雜程度時,每次只改動一處。如果你有多個想要加入到分類器里的東西,我建議你依次加入它們(比如先加入dropout再加入batch normalization),來保證你得到你期待的性能。不要把所有東西都一股腦地一下塞到自己的模型里。先用較少的數(shù)據(jù)集進行訓(xùn)練,然后再加入更多的數(shù)據(jù)集,循序漸進,一步步提高模型的性能。

不要相信默認的學(xué)習速率衰減率。如果你將原有的訓(xùn)練代碼運用在一些新的領(lǐng)域時,你應(yīng)該對學(xué)習速率衰減率萬分警惕。對于不同的問題,你不僅僅應(yīng)該用不同的學(xué)習速率衰減方法,更應(yīng)該注意的是,對于特定的問題,衰減速率應(yīng)當基于當前的epoch數(shù)(epoch number),這會基于你當前數(shù)據(jù)集的尺寸。比如說,ImageNet的學(xué)習速率在第30個epoch的時候,會減少10。如果你不在訓(xùn)練ImageNet,那你最好就不要那么做。如果你改代碼調(diào)參的時候不小心,然后讓你模型參數(shù)的學(xué)習速率下降過快,你的模型參數(shù)可能會不收斂。在我自己的工作中,我會完全地取消學(xué)習速率的衰減率(我就用常值學(xué)習速率),然后在最后的最后來調(diào)節(jié)學(xué)習速率衰減率。

4.正則化

理想情況下,我們現(xiàn)在已經(jīng)擁有一個有效的模型,至少對于訓(xùn)練集來說是有效的?,F(xiàn)在是時候放棄一些訓(xùn)練精度,使它更規(guī)范并且具有更高的測算精度了。下面是一些提示和技巧:

獲取更多數(shù)據(jù)。首先,目前為止,在任何實際環(huán)境中規(guī)范模型的最佳和首選方法是添加更多真實的訓(xùn)練數(shù)據(jù)。一個很常見的錯誤是,當你可以收集更多的數(shù)據(jù)時,你卻絞盡腦汁花大量的工程周期在一個小數(shù)據(jù)集中提高效率。據(jù)我所知,添加更多的數(shù)據(jù)幾乎是唯一能夠保證提高配置良好的神經(jīng)網(wǎng)絡(luò)性能的方法。另一種方法則是集成學(xué)習器(如果你能負擔得起的話),但它只有在集成5個個體學(xué)習器以上才能展現(xiàn)比較好的效果。

數(shù)據(jù)擴增。除了真正數(shù)據(jù),你還可以使用半真半假的數(shù)據(jù)-嘗試更具有挑戰(zhàn)性的數(shù)據(jù)增強。

創(chuàng)意性地造數(shù)據(jù)。如果半真半假的數(shù)據(jù)不起作用,那么可以嘗試假數(shù)據(jù)。人們正在尋找擴展數(shù)據(jù)集的創(chuàng)造性方法;例如,域隨機化、模擬、甚至是GAN。

預(yù)訓(xùn)練。即使你有足夠的數(shù)據(jù),如果可以的話,建議使用一個經(jīng)過預(yù)先訓(xùn)練的網(wǎng)絡(luò)。

堅持有監(jiān)督學(xué)習。不要太執(zhí)著于無監(jiān)督的預(yù)先訓(xùn)練。據(jù)我所知,與2008年的博客文章所告訴你的不同,目前為止還沒有任何一個現(xiàn)代計算機視覺領(lǐng)域的無監(jiān)督學(xué)習網(wǎng)絡(luò)呈現(xiàn)了好的效果(盡管近幾天BERT模型表現(xiàn)不俗,但這很可能是由于文本的謹慎性和更高的信噪比)。

減小輸入維度。刪除可能包含虛假信號的輸入。如果數(shù)據(jù)集很小,任何的偽輸入都將是一個過擬合的機會。同樣,如果低層次的細節(jié)不太重要,嘗試輸入較小的圖像。

縮減模型大小。在許多情況下,你可以使用域知識來約束并縮減模型大小。例如,過去流行在ImageNet的主干網(wǎng)頂部使用完全連接層,但是這些層后來被簡單的平均池化所取代,這個過程消除了大量的參數(shù)使用。

減小batch大小。由于batch內(nèi)部的規(guī)范化,較小的batch在一定程度上對應(yīng)著較強的規(guī)范化。這是因為相對于完全平均值-標準差比,batch的經(jīng)驗平均值-標準差比更加有效,所以比例和偏移對于你的batch影響更大

防止過擬合。添加dropout。對ConvNets使用dropout2d(一種dropout方法)。當然,請謹慎地使用,因為dropout似乎不能很好地處理批處理規(guī)范化。

權(quán)重衰減。增加權(quán)重衰減懲罰力度。

及時停止訓(xùn)練。基于已測量驗證的損失,及時停止訓(xùn)練,防止模型過擬合。

嘗試大一點的模型。我在最后,并且是在“及時停止”之后提到這一點,是因為我在過去發(fā)現(xiàn)過幾次,更大的模型最終會有更大程度的過擬合,但它們的“及時停止”性能往往比較小的模型好得多。

最后,為了讓你更確信自己的神經(jīng)網(wǎng)絡(luò)已經(jīng)是一個合理的分類器了,我建議你可視化網(wǎng)絡(luò)的第一層權(quán)重,并確保你的結(jié)果是有意義的。如果你的第一層過濾器看起來像噪音,那么也許哪里是有問題的。同樣,網(wǎng)絡(luò)內(nèi)的激活函數(shù)有時會顯示奇怪的效應(yīng),你可以利用這些信息去追蹤問題所在。

5.開始調(diào)參

你現(xiàn)在應(yīng)該把你的數(shù)據(jù)集放在“循環(huán)迭代中”,為模型探索更寬泛的空間,以實現(xiàn)低驗證成本的體系結(jié)構(gòu)。以下是關(guān)于這一步的一些提示和技巧:

隨機網(wǎng)格搜索。為了同時調(diào)整多個超參數(shù),使用網(wǎng)格搜索來確保能夠覆蓋所有設(shè)置參數(shù),這顯然聽起來很誘人,但請記住,最好使用隨機搜索。直觀地說,這是因為神經(jīng)網(wǎng)絡(luò)通常對某些參數(shù)比其他參數(shù)更敏感。在極限情況下,如果一個參數(shù)很重要但是改變參數(shù)b并沒有效果。那么你應(yīng)該多次采樣,因為這比簡單采樣幾個固定點更好。

超級參數(shù)優(yōu)化。目前有很多貝葉斯超參數(shù)優(yōu)化工具箱可以供我們參考使用,當然,我的一些朋友也有成功使用他們的案例,但我的個人經(jīng)驗是,探索一個非常好的、應(yīng)用廣泛的模型以及高級別的訓(xùn)練方法是使用實習生:)。哈哈哈…只是開玩笑。

6.再“榨”點東西出來

一旦你找到體系結(jié)構(gòu)和超參數(shù)的最佳方法,你仍然可以使用一些技巧,從系統(tǒng)中提煉出一些精髓和方法:

集合/合并。模型集合是一種非常有保證非??孔V的方法,可以在任何事情上提升2%的精度。如果你在測試時無法承受計算的成本,請考慮使用“黑匣子”進行整體提升。

自行訓(xùn)練。把模型放在一邊然后讓它自己一直訓(xùn)練。有些人在模型的驗證損失幾乎趨于平穩(wěn)時就直接停止了訓(xùn)練。這是不對的,根據(jù)我的經(jīng)驗,模型的網(wǎng)絡(luò)可以長時間不間斷地進行訓(xùn)練并不斷優(yōu)化提升。有一次我在寒假期間,在訓(xùn)練模型的時候不小心離開了,然后模型自己一直訓(xùn)練,當我1月份回來時,它是SOTA(達到了最好的狀態(tài))

結(jié)論

一旦你做到了以上所有這些,你會對技術(shù),數(shù)據(jù)集和問題有更加深刻的理解,因為你已經(jīng)建立了整個神經(jīng)網(wǎng)絡(luò)訓(xùn)練的邏輯,并了解了提高準確性的信心與把握,而且你已經(jīng)探索了越來越復(fù)雜的模型,模型可以每一步都能按照你預(yù)測的方法途徑進行訓(xùn)練優(yōu)化并且得到相應(yīng)的進步。

現(xiàn)在你可以閱讀大量的論文,嘗試大量實驗,并獲得你的SOTA結(jié)果。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4814

    瀏覽量

    103575
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4380

    瀏覽量

    64848
  • 機器學(xué)習
    +關(guān)注

    關(guān)注

    66

    文章

    8502

    瀏覽量

    134590

原文標題:秘籍在手,訓(xùn)練不愁!特斯拉AI負責人Karpathy的超全神經(jīng)網(wǎng)絡(luò)訓(xùn)練套路

文章出處:【微信號:CAAI-1981,微信公眾號:中國人工智能學(xué)會】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    無刷電機小波神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)子位置檢測方法的研究

    摘要:論文通過對無刷電機數(shù)學(xué)模型的推導(dǎo),得出轉(zhuǎn)角:與三相相電壓之間存在映射關(guān)系,因此構(gòu)建了一個以三相相電壓為輸人,轉(zhuǎn)角為輸出的小波神經(jīng)網(wǎng)絡(luò)來實現(xiàn)轉(zhuǎn)角預(yù)測,并采用改進遺傳算法來訓(xùn)練網(wǎng)絡(luò)結(jié)構(gòu)與參數(shù),借助
    發(fā)表于 06-25 13:06

    基于FPGA搭建神經(jīng)網(wǎng)絡(luò)的步驟解析

    本文的目的是在一個神經(jīng)網(wǎng)絡(luò)已經(jīng)通過python或者MATLAB訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型,將訓(xùn)練好的模型的權(quán)重和偏置文件以TXT文件格式導(dǎo)出,然后通過python程序?qū)xt文件轉(zhuǎn)化為coe
    的頭像 發(fā)表于 06-03 15:51 ?402次閱讀
    基于FPGA搭建<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的步驟解析

    BP神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計原則

    BP(back propagation)神經(jīng)網(wǎng)絡(luò)是一種按照誤差逆向傳播算法訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計原則主要基于以下幾個方面: 一、層次結(jié)構(gòu) 輸入層 :接收外部輸入信號,不
    的頭像 發(fā)表于 02-12 16:41 ?739次閱讀

    BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的比較

    BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)在多個方面存在顯著差異,以下是對兩者的比較: 一、結(jié)構(gòu)特點 BP神經(jīng)網(wǎng)絡(luò) : BP神經(jīng)網(wǎng)絡(luò)是一種多層的前饋神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 02-12 15:53 ?662次閱讀

    如何優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的學(xué)習率

    優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的學(xué)習率是提高模型訓(xùn)練效率和性能的關(guān)鍵步驟。以下是一些優(yōu)化BP神經(jīng)網(wǎng)絡(luò)學(xué)習率的方法: 一、理解學(xué)習率的重要性 學(xué)習率決定了模型參數(shù)在每次迭代時更新的幅度。過大的學(xué)習率可能導(dǎo)致模型在
    的頭像 發(fā)表于 02-12 15:51 ?930次閱讀

    BP神經(jīng)網(wǎng)絡(luò)的優(yōu)缺點分析

    自學(xué)習能力 : BP神經(jīng)網(wǎng)絡(luò)能夠通過訓(xùn)練數(shù)據(jù)自動調(diào)整網(wǎng)絡(luò)參數(shù),實現(xiàn)對輸入數(shù)據(jù)的分類、回歸等任務(wù),無需人工進行復(fù)雜的特征工程。 泛化能力強 : BP神經(jīng)網(wǎng)絡(luò)通過
    的頭像 發(fā)表于 02-12 15:36 ?914次閱讀

    什么是BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法

    BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法(Backpropagation Algorithm)是一種用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的有效方法。以下是關(guān)于BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法的介紹: 一、基本概念 反向傳播算
    的頭像 發(fā)表于 02-12 15:18 ?765次閱讀

    BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習的關(guān)系

    ),是一種多層前饋神經(jīng)網(wǎng)絡(luò),它通過反向傳播算法進行訓(xùn)練。BP神經(jīng)網(wǎng)絡(luò)由輸入層、一個或多個隱藏層和輸出層組成,通過逐層遞減的方式調(diào)整網(wǎng)絡(luò)權(quán)重,目的是最小化
    的頭像 發(fā)表于 02-12 15:15 ?851次閱讀

    如何訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)模型

    BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是一種經(jīng)典的人工神經(jīng)網(wǎng)絡(luò)模型,其訓(xùn)練過程主要分為兩個階段:前向傳播和反向傳播。以下是訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 02-12 15:10 ?904次閱讀

    人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法

    在上一篇文章中,我們介紹了傳統(tǒng)機器學(xué)習的基礎(chǔ)知識和多種算法。在本文中,我們會介紹人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法,供各位老師選擇。 01 人工神經(jīng)網(wǎng)絡(luò) ? 人工神經(jīng)網(wǎng)絡(luò)模型之所
    的頭像 發(fā)表于 01-09 10:24 ?1183次閱讀
    人工<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的原理和多種<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>架構(gòu)方法

    卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的比較

    在深度學(xué)習領(lǐng)域,神經(jīng)網(wǎng)絡(luò)模型被廣泛應(yīng)用于各種任務(wù),如圖像識別、自然語言處理和游戲智能等。其中,卷積神經(jīng)網(wǎng)絡(luò)(CNNs)和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)是兩種常見的模型。 1. 結(jié)構(gòu)差異 1.1 傳統(tǒng)神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 11-15 14:53 ?1866次閱讀

    LSTM神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)準備方法

    LSTM(Long Short-Term Memory,長短期記憶)神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)準備方法是一個關(guān)鍵步驟,它直接影響到模型的性能和效果。以下是一些關(guān)于LSTM神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)準備的
    的頭像 發(fā)表于 11-13 10:08 ?2102次閱讀

    關(guān)于卷積神經(jīng)網(wǎng)絡(luò),這些概念你厘清了么~

    可以不局限于已知的訓(xùn)練圖像開展識別。該神經(jīng)網(wǎng)絡(luò)需要映射到MCU中。 5、AI的模式識別內(nèi)部到底是什么? AI的神經(jīng)元網(wǎng)絡(luò)類似于人腦的生物神經(jīng)元網(wǎng)絡(luò)
    發(fā)表于 10-24 13:56

    如何構(gòu)建多層神經(jīng)網(wǎng)絡(luò)

    構(gòu)建多層神經(jīng)網(wǎng)絡(luò)(MLP, Multi-Layer Perceptron)模型是一個在機器學(xué)習和深度學(xué)習領(lǐng)域廣泛使用的技術(shù),尤其在處理分類和回歸問題時。在本文中,我們將深入探討如何從頭開始構(gòu)建一個多層神經(jīng)網(wǎng)絡(luò)模型,包括模型設(shè)計、數(shù)據(jù)預(yù)處理、模型
    的頭像 發(fā)表于 07-19 17:19 ?1557次閱讀

    Python自動訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)

    人工神經(jīng)網(wǎng)絡(luò)(ANN)是機器學(xué)習中一種重要的模型,它模仿了人腦神經(jīng)元的工作方式,通過多層節(jié)點(神經(jīng)元)之間的連接和權(quán)重調(diào)整來學(xué)習和解決問題。Python由于其強大的庫支持(如TensorFlow、PyTorch等),成為了實現(xiàn)和
    的頭像 發(fā)表于 07-19 11:54 ?698次閱讀