中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

優(yōu)秀的機器學習開發(fā)者都是這樣做的!

2018-09-13    來源:raincent

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

每年我們都會與一起從事短期機器學習研究項目的學生溝通。到目前為止,我們已經和很多學生交流過并且在他們的項目中發(fā)現(xiàn)了很多問題,并根據問題給予了他們諸多的建議。我們發(fā)現(xiàn)很多問題是大家都存在的,在這篇文章中,我們將集中的介紹這些問題并且給出解決方法。這篇文章絕不是全面的,而是強調了我們一遍又一遍地看到的那些陷阱。例如,我們不會談論如何選擇一個好項目。我們的一些建議通常適用于機器學習,特別是深度學習或強化學習研究的項目。

1、主要陷阱:

1.1假設你的代碼沒有錯誤

眾所周知,機器學習,特別是深度學習和強化學習模型很難調試。為了讓你了解無數(shù)的犯錯方式,請查看Andrej Karpathy的Twitter主題。我們所有人,甚至是更高級的研究人員,都會一直犯同樣的錯誤。使這些如此難以察覺的原因是即使是有缺陷的模型通常仍然可以學習并產生有意義的輸出。錯誤可能會對你的模型進行細微更改,并且大多數(shù)只會在運行時顯示。考慮到這一點,你可以做的最糟糕的事情是假設你的代碼不包含任何錯誤。機器學習研究者對待代碼的態(tài)度也是將他們分成生產性和非生產性的原意。如果你的默認假設是你的代碼可能有問題,那么你將更仔細地搜索錯誤,逐行完成代碼,仔細檢查中間輸出。如果可能的話,你還會可視化它們。你會考慮張量的形狀是否合適?它們是否已正確初始化?克隆還是分離?在訓練期間監(jiān)控梯度并注意NaN。通過設置隨機數(shù)生成器的種子來編寫單元測試并使你的實驗可重現(xiàn)等等。這些措施可以讓你的代碼更具有實際性用處,有關神經網絡調試的更多提示,請參閱Goodfellow等人的深度學習書。

1.2僅看最終評估指標

雖然你的項目目標可能是實現(xiàn)某些評估指標的改進,但更重要的是,你應該充分了解模型的工作原理和原因。特別是在項目的早期階段,最終評估指標包含的信息很少,但是這些信息對迭代和開發(fā)算法或模型很有用。為了獲得更多的信息,我們必須提出更深入的問題并獲得信息反饋。例如,如果你引入了門控機制或注意機制,你的模型實際上是否使用了它?你提出的哪些模型創(chuàng)新實際上是有助于整體性能提升?你的模型需要多少個訓練樣例/時期才能達到合理的性能,這與你使用的基線有何不同?你的模型運行良好或非常嚴重的測試實例之間是否存在系統(tǒng)差異?你可以從模型的隱藏狀態(tài)預測重要特征嗎?請記住,你的研究和項目報告并非真正告知研究界對先前技術水平的一些(邊際)改進,而是為我們對該領域的理解作出貢獻。

1.3嘗試隨機變化并沒有明確的期望

使用當前的深度學習庫,通過添加更多組件、層和優(yōu)化技巧,可以輕松地使模型更復雜。但是,當你對代碼或模型進行更改時,你至少應該對此更改有一個大致的直覺。同樣,當你進行實驗時,你應該對其結果有明確的期望。你期望繪制的結果看起來像什么,他們會告訴你什么?當你發(fā)現(xiàn)自己的模型沒有按照預期的方式進行時,這一點就更為重要。通過這些措施,你更有可能看到出現(xiàn)錯誤的原因,因為擴展你的模型不會幫助你找到該錯誤,甚至可能使得更難以找到問題。在使模型更復雜之前,先了解它可能出錯的底線。此外,請記住,在你的報告中,你必須證明你的所作所為。因為你的報告是別人幫你解決問題的唯一切入口。如果你不能制定一個研究假設,并向自己解釋為什么你在做這個工作,那么其他任何人更沒有機會了解你在干什么。

1.4過度復雜

我們經?吹椒e極的學生立即跳出難題并嘗試復雜的解決方案。其實真正的出現(xiàn)問題,一般都會很難分析。相反,問問自己:應該起作用的最小的東西是什么?模型能學會記住一個小數(shù)據集嗎?只使用幾個參數(shù)時會學到什么?在單個訓練實例而不是批處理訓練時,代碼是否有效?我們期望看到的最簡單的概括形式是什么?

1.5迭代太慢了

進行訓練實驗可能需要很長時間。特別是深度學習和強化學習在積累統(tǒng)計顯著數(shù)量的隨機種子時可能非常耗時。因此,在短期項目過程中不要過早陷入緩慢的迭代周期是至關重要。盡量使用簡單的環(huán)境調試你的模型,并實現(xiàn)你的想法的概念驗證,爭取整個過程可以在你的個人計算機上運行。有時,簡單的矩陣游戲或網格世界實驗也可以提供有用的想法驗證。類似的你也可以使用MDP的精確值函數(shù)來測試算法思想,而不必亂用梯度估計,演員評論訓練等。當轉向更大規(guī)模的實驗時,簡化你啟動實驗和檢查結果的過程。在實驗完成全部過程之前檢查這些結果,看看性能是否平穩(wěn)。投資訓練模型使用的基礎設施在開始時可能很耗時,但在項目結束時都會有所回報。

2一些建議:

2.1在項目開始之前,開始閱讀背景知識和準備相關工作

我們通常在正式開始日期前就應該分析項目。其中一個原因是了解背景和相關工作,接著我們要進行實施和實驗,最后要認真撰寫一份好的報告,在做項目之前一定要有一個大局觀的設定。另一個原因是我們通常會提出研究項目,如果成功,可能會在機器學習論壇或者雜志上公布。雖然我們都知道整個項目過程中會有很多事情發(fā)生,但大多數(shù)時候我們都會鼓勵你至少提前開始閱讀相關文獻。理想情況下,當你開始全職工作時,你應該知道該做什么,它如何與現(xiàn)有方法相關,并且知道如何做到這一點。

2.2正確用軟件版本及備份

你真的應該為你的項目代碼和項目報告使用嚴格的版本控制,并且及時做好備份。沒有什么比在截止日期之前失去所有辛苦工作更糟的了。如果你還沒有,請打開GitHub帳戶,作為一個學生,你可以獲得免費的私人存儲庫。

2.3使用隨機重復進行評估

在學術界,你不可能在項目期間使用多個GPU進行訓練。然而,另外一個尷尬的事情,特別是在深層強化學習中,不能簡簡單單的就從單個或幾個實驗中得出過早的結論。理想情況下,你希望多次重復實驗,并且如上所述,可以了解不同起始條件和超參數(shù)的穩(wěn)健性。

2.4在實施項目中盡早開始寫文檔

如果你正在做一個碩士項目,你的工作將根據你的書面報告進行評估,而不是基于你所做的杰出工作,這個時候你需要有足夠的時間來寫清楚你做了那些工作。我個人建議是盡早開始寫作,不要低估傳播研究的價值。明確說明你的目標、假設和貢獻,并讓讀者遵循你的思維過程,認真的讀你的文章。你需要在文檔中解釋你的設計選擇并清楚地討論你的發(fā)現(xiàn)。理想情況下,你應該在項目過程中始終如一地編寫報告。這樣,你就強迫自己考慮下一步,在截止日期到達時你不太可能忘記任何重要信息。

2.5在需要時主動尋求幫助

你的上級是忙碌的人,但他們的存在是為了幫助你。一旦出現(xiàn)問題時一定要及時反饋聯(lián)系上級,千萬不要等到下次預定會議時再反饋。積極主動地溝通并準備你想要提前討論的結果。充分利用你的主管!最后,不要驚慌!他們都經歷過這一切,一些問題在你這里可能是個不能解決的問題,但是在你上級哪里可能就是順手的事情。

文章原標題《ADVICE FOR SHORT-TERM MACHINE LEARNING RESEARCH PROJECTS》,

作者:Jakob Foerster and Greg Farquhar 譯者:虎說八道

標簽: 代碼 搜索 網絡

版權申明:本站文章部分自網絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:機房的未來趨勢,互聯(lián)網數(shù)據中心(IDC)行業(yè)前

下一篇:軟件定義電源如何提高數(shù)據中心容量