閱讀和實現深度學習的論文初學者指南

2021-12-23 DeepHub IMBA

點擊上方「Deephub Imba」,關注公眾號,好文章不錯過 !


能夠使用代碼實現最新的論文對於數據科學家來說是一項極具競爭力的技能。

如果想了解黑匣子內部發生了麼,提高創造力或成為第一個將最新科學研究帶入業務的開發人員 這篇文章應該可以幫到你。

我們將討論如何選擇一篇「好」的論文作為開始,這對於初學者來說會比較容易;本文中將概述典型的論文結構以及重要信息的位置;並提供有關如何處理和實現論文的分步說明,並分享在遇到困難時可能有所幫助的連結。

從哪兒開始?

如果你想讓你的學習順利無壓力的開始,應該找一篇「好」的論文。作為起點建議選擇一篇描述你熟悉概念的並且被引用度高的論文。

高引用率的舊論文通常解釋了非常基本的概念,這些概念也是最近研究的基礎,這些基礎知識會更好的幫你理解最新的論文。但是要記住對於深度學習,2016 年之前的論文已經過時了。引用量高的論文意味著許多其他科學家能夠理解並使用該方法,也側面說明了該方法是可重複的。要找出特定論文的引用次數,可以在 Google Scholar 中搜索它。引用次數超過 1000 次的論文被認為是高被引論文。

最後,較舊的論文描述了更簡單的概念,這對初學者來說是一個很大的優勢。

論文結構:忽略什麼,讀什麼

典型的深度學習論文具有以下結構:

Abstract

Introduction

Related Work

Approach in Details

Experiments

Conclusion

References

摘要Abstract:論文的整體內容摘要,它很短。重點介紹為什麼這種方法比以前的方法更好,以及它的新穎之處。摘要會發布在會議日程表和在線歸檔(如 Arxiv)中,它們的唯一目的是說服你閱讀這篇特定的論文。如果你已經選擇了一篇論文來閱讀,可以隨意跳過摘要,但是如果你打算進行論文的創作,這個部分是你論文「營銷」的關鍵。

引言Introduction:是重要的必讀部分。它提供了論文中提到方法的高級概述。通常它不是太技術性並且非常「用戶友好」,因此如果閱讀的時候請先閱讀這部分,因為可以讓我們在深入研究算法細節之前先熱身。

相關工作Related Work:所有科學論文(以及深度學習)都是相關的,因為每一項發現都建立在之前數十項甚至數百項研究工作的基礎之上。相關工作概述是每篇論文的必填部分。作者必須確保他們的工作是相關的,並且解決了以前論文中的重要的問題的同時不會重複其他研究人員之前所做的工作。這是學術界的一個重要部分——但對我們(從業者)來說不是,所以如果知識閱讀和實現論文可以跳過,但是如果編寫改進改論文實現的方法的新論文,這裡一定要看。(或者有時你可能正在尋找該領域的其他基本論文/概念來閱讀,這裡也可以給你新的思路)

詳細方法Approach in Details:這是論文中最複雜和最具挑戰性的部分,也是最重要的部分(一定要閱讀!)。不要期望過高,也不要期望通過一次閱讀就了解所有內容。因為這是在編碼時一次又一次仔細閱讀理解的部分,所以我們的「樂趣」就從這裡開始。

不要害怕複雜的公式,在大多數情況下,它們解釋了基本概念。這就是研究人員以他們的形式「開的玩笑」。對於論文的實現我們甚至不用關注他們,當然如果你想改進論文,這些複雜的公式還是需要用的。看不懂也沒關係多看看論文,用不了多久你就會習慣了🤣。

在閱讀論文時,必須獲取可能需要的所有信息,例如:數據預處理技術、詳細的神經網絡架構、損失函數、訓練技巧和後處理。如果閱讀了幾次都不太明白也沒關係,後面我會告訴你怎麼做。

實驗Experiments:這一節充滿了圖表、表格和圖像。通常它包含有關數據集、訓練和指標評估的詳細信息,以及對模型在各種超參數下的表現以及與其他論文中的最新方法進行比較的回顧。如果論文是關於計算機視覺的,也會有模型預測的可視化。這部分可以選擇感興趣部分閱讀。

結論Conclusion:是對論文的總結,有時包含作者對未來研究的想法。小學作文中老師都說過要扣題對吧,這部分就是要與前面的摘要和引言呼應。所以跳過它沒什麼問題。

參考文獻References:學術界有一個嚴格的規則:如果研究人員使用屬於其他人的想法,他/她必須添加對原始作品的引用。當論文中已經解釋了這些參考文獻中的概念或只是不重要時,可以跳過大多數此類參考文獻。但是有時作者可能會說:「我們使用了論文 [2] 中描述的模型架構,只修改了最後一層的激活」。在這種情況下,您需要找到並閱讀論文 [2] 以完全理解該方法。

現在——是時候閱讀論文了。在接下來的 30 分鐘裡,你應該高度專注,因為你正潛入一個有挑戰性並且令人興奮新世界。

去哪裡尋求幫助?

對許多人來說,「實現論文」意味著「快速閱讀論文,然後在網際網路上尋找現成的實現」(paperwithcode:說的對😘)。這是的確是最簡單的方法,但不是有益的方法。我強烈建議你從頭開始,不要馬上尋找現成的解決方案。至少自己做些事情因為那才是對你的技能提高的關鍵。

即使你是一個完全初學者,總有一些事情你可以做:

下載數據集,研究它,對數據集做EDA,寫一個數據加載器等等。這是一項簡單而又容易的任務,但一旦完成它,你就會有信心並幫助你繼續前進:

開始編寫模型架構,簡化或跳過你不理解的部分。例如這裡有一個奇怪的權重初始化器(跳過它,使用通用甚至默認的那個)。以前從未使用過PReLU激活(那就先用ReLU)。你現在的目標是創建一個可訓練的模型把流程跑通(有輸入,有輸出,可以進行訓練),而不是要訓練出論文的模型或表現更好的模型。在論文中有一個自定義的損失:用一個類似的損失替換它。對優化器、數據擴充、後處理進行同樣的處理——簡化或跳過。這樣你最終會得到一個原型。你甚至可以使用這個原型跑通完整的流程,看看它如何工作-也許結果不會那麼糟糕🙂

下一步就是填補缺口,修復工作不好的部分。再次閱讀論文仔細理解你之前漏掉的概念。如果你被卡住了也不要生氣。因為你已經有原型了,這是一個很大的進步你已經學到了很多。你甚至可以給論文的作者寫信,因為在學術界大部分的論文作者還是非常的友善的。

覺得完全卡住了?那就進行總結一下具體是哪裡的問題,有重點的提高相關的知識。在下一篇論文,你會寫得更好,因為這是一個學習的過程。文章的開始建議選一篇被高度引用的論文。現在你就能感受到好處了。流行的論文在網際網路上有幾十種實現,(paperwithcode:我又來了🙃),這裡推薦paper With Code的原因是它包含了可能所有流行論文的代碼實現。這些有的實現是官方的,有的來自像你我這樣的研究人員。例如,word2vec在PyTorch和Tensorflow中有67個paper With Code實現。

您可以複製粘貼,但一定要花時間來理解代碼。

最後總結

選擇一篇被高度引用的舊論文。

仔細閱讀它並試著獲取儘可能多的信息——數據準備、模型架構、損失函數和訓練細節。

如果你不明白所有的事情,不要著急

通過跳過和簡化你不理解的概念來創建一個原型。如果你的原型與論文中的方法相去甚遠也沒關係,但是要試著自己改進草稿。

在網際網路上尋找文章和代碼。複製粘貼,但要閱讀和理解。

重複一篇新論文。然後感受第二次的感覺是多麼的順利🙂

真正的學習發生在步驟2-5上,所以你在這裡花的時間越多,你學得就越快。好運!

作者:Olga Chernytska

喜歡就關注一下吧:

點個 在看 你最好看! 




相關焦點

  • 深度學習論文閱讀路線圖
    哈佛研究: 長期太忙會變傻放羊和砍柴的故事——他們的結局是這樣的……翻譯:王軍福  原文連結:https://github.com/songrotek/Deep-Learning-Papers-Reading-Roadmap 如果你是深度學習領域的一名新手
  • CICC科普欄目|深度學習完全指南
    主要包括2個視頻教程,2部重要專著,一系列深入淺出的博客文章,以及一系列實現算法的指南和代碼,堪稱年度最有價值深度學習資料!深度學習是計算機科學和數學交叉的一個快速變化的領域,屬於機器學習的一個相對較新的分支。機器學習的目的是教計算機根據給定的數據執行各種任務。這份指南的目標讀者是已有一些數學基礎,了解一些程式語言,現在想深入學習深度學習的人。
  • 【乾貨薈萃】機器學習&深度學習知識資料大全集(二)(論文/教程/代碼/書籍/數據/課程等)
    【導讀】轉載來自ty4z2008(GItHub)整理的機器學習&深度學習知識資料大全薈萃,包含各種論文、代碼、視頻、書籍、文章、數據等等。是學習機器學習和深度學習的必備品!  介紹:受限波爾茲曼機初學者指南.
  • Keras 教程: Python 深度學習終極入門指南
    開始之前, 請注意, 本指南是面向對應用深度學習感興趣的初學者的.我們旨在向你介紹一個最流行的同時也是功能最強大的, 用於建立神經網絡的 Python 庫. 這意味著我們將跳過許多理論與數學知識, 但我們還是會向你推薦一些學習這些的極好的資源.
  • 深度學習論文集錦(中英文對照):圖像分類、物體識別等
    新智元報導  來源:Github/SnailTyan作者:趙武文【新智元導讀】Github用戶SnailTyan在他構建的「深度學習論文翻譯」庫中,提供了圖像識別、對象檢測和OCR等經典DL論文的全文翻譯,除了英文原版、中文譯文,還有中英文對照版。
  • 【乾貨薈萃】機器學習&深度學習知識資料大全集(一)(論文/教程/代碼/書籍/數據/課程等)
    【導讀】轉載來自ty4z2008(GItHub)整理的機器學習&深度學習知識資料大全薈萃,包含各種論文、代碼、視頻、書籍、文章、數據等等。是學習機器學習和深度學習的必備品!這裡,我們從兩個方面來給大家介紹,第一個方面是學習的方式,第二個方面是算法的類似性。介紹:看題目你已經知道了是什麼內容,沒錯。裡面有很多經典的機器學習論文值得仔細與反覆的閱讀。介紹:視頻由加州理工學院(Caltech)出品。需要英語底子。介紹:總結了機器學習的經典書籍,包括數學基礎和算法理論的書籍,可做為入門參考書單。
  • 純新手入門機器/深度學習自學指南(附一個月速成方案)
    準備用三個月入門,和想要一個月速成,肯定是截然不同的路徑。當然我建議大家穩紮穩打,至少可以拿出五個月的時間來學好機器學習的基礎知識。基礎很重要,知其所以然很重要。畢竟工具總在進步,每個月都會出現更好的深度學習技術,但基礎知識是不變的。如何用五個月時間入門?下面分三個部分,詳細指南。
  • 深度學習第18講:CNN經典論文研讀之VGG網絡及其tensorflow實現
    在前兩期的論文研讀中,筆者和大家一起學習了 LeNet-5 和 AlexNet 這兩個經典的卷積神經網絡結構和基本實現方式。
  • 【資源】深度學習Top100:近5年被引用次數最高論文(下載)
    這裡是近5年100篇被引用次數最多的深度學習論文,覆蓋了優化/訓練方法、無監督/生成模型、卷積網絡模型和圖像分割/目標檢測等十大子領域。重要的論文能夠超越其應用領域讓人獲益。新智元在每個領域都選擇了一篇論文重點介紹,這將是你縱覽深度學習研究絕好的開始。這裡是100篇被引用次數最多的深度學習論文,從海量的相關論文中脫穎而出。
  • 專訪Keras之父:關於深度學習、Keras的誕生和給初學者的建議
    能和你談話真是我的榮幸。Francois Chollet:謝謝你邀請我,我很樂意回答你的問題。問:你現在在 Google AI Research工作,並且你創建了最受歡迎的深度學習庫之一。你能告訴我們你是怎麼開始的嗎?是什麼讓你對深度學習開始感興趣?
  • 機器學習&深度學習經典資料匯總(續)
    Online learning,GPU Random forest,GPU CRF也會後續公開。《Hacker’s guide to Neural Networks》介紹:【神經網絡黑客指南】現在,最火莫過於深度學習(Deep Learning),怎樣更好學習它?
  • 機器學習(Machine Learning)&深度學習(Deep Learning)資料(之四精選411-861閱讀原文下載)
    (Machine Learning)&深度學習(Deep Learning)資料(之四精選411-861網址)》,文末「閱讀原文」百度網盤下載連結版PDF文件,包含861個網址超鏈的全文。《蘇州大學人類語言技術研究論文主頁》介紹:蘇州大學人類語言技術研究相關論文.421.《Neural Turing Machines implementation》介紹:實現神經圖靈機(NTM),項目地址,此外推薦相關神經圖靈機算法.422.
  • 怎樣快速上手深度學習?谷歌官方推薦的 TensorFlow 2 「豹書」來了!
    無數AI大廠、創業公司和個人開發者們都在使用 TensorFlow 開發和部署深度學習模型,TensorFlow 甚至成為人工智慧的代名詞。CSDN發布的《2019-2020中國開發者調查報告》顯示,TensorFlow 是目前 AI 工程師首選的深度學習框架。
  • 深度學習書籍推薦!最新,最實用,最前沿!
    第六章和第七章討論了調優一般神經網絡的基本原理,然後討論了如何調優深度網絡的特定架構。這些章節適用於任何深度學習圖書館的實踐。第八章是對矢量化技術和如何使用DataVec (DL4J的ETL和矢量化工作流工具)的基礎知識的回顧。第九章總結了該書的主體部分,回顧了如何在Spark和Hadoop上本地使用DL4J,並舉例說明了在Spark集群上運行的三個實例。
  • 「深度學習三巨頭」都做了啥?他們的訪談和論文都在這 | 合集
    約書亞·本希奧、傑弗裡·欣頓和楊立昆三位科學家意識到了利用多層結構建立深度神經網絡的重要性,「深度學習」便由此得名。三位科學家在 30 年間為該領域建立和帶來的概念基礎和技術革新,也隨著現代計算機圖像處理單元(Graphics Processing Unit, GPU)的硬體條件增強發展迅速。
  • 想學習高大上的深度學習技術麼?快來看看這本書
    這本書是第一本是從深度的角度涵蓋深度學習領域的書,同時,即使是初學者也可以讀懂。本書主要有三個部分。第一部分是數學和機器學習的基本知識。新手閱讀這一部分快速地補充必要的知識,老手也可以通過這一部分進行知識的回顧。該部分簡單介紹了線性代數,概率論,優化(主要是梯度下降,因為它是深度學習中的主導優化算法)的基礎。另外,這一部分還簡單介紹了機器學習的概念。
  • 綜合實踐指南:遷移學習及在深度學習中的應用
    此後,「學會學習」(Learning to Learn)、「知識整合」(Knowledge Consolidation)和「歸納遷移(」Inductive Transfer)等術語成為可以互換使用的概念。不同的研究人員和學術論文,總是會對遷移學習給出不同背景下的定義。在著名的《深度學習》一書中,Goodfellow 等著者基於泛化(generaliztion)定義了遷移學習。
  • Deep Learning(深度學習)各種資料網址
    公眾號: weic2c深度學習通俗易懂教程專欄  超智能體 - 知乎專欄https://zhuanlan.zhihu.com/YJango如果你只想閱讀深度學習的教程,下面是閱讀順序:深層神經網絡:深層學習為何要「Deep」(上)(由於下篇寫的並不通俗,不推薦閱讀,用公開課代替)反向傳播算法實例:未編寫深度學習總覽:公開課:深層神經網絡設計理念深度學習入門誤區:知乎Live
  • NIPS 2017 深度學習論文集錦 (2)
    本文是NIPS 2017 深度學習論文集錦第二篇,第一篇是NIPS 2017 深度學習論文集錦 (1)本文是對上文的續
  • 【腦洞大開】IBM AAAI2018論文DLPaper2Code:自動從深度學習論文生成執行代碼程序(附作者博士論文下載)
    【導讀】近日IBM研究院提出從深度學習相關論文中自動生成深度學習代碼,使用這項研究,在研究論文中提出的DL設計可以被自動提取,然後使用一種新穎的深度學習UI編輯器DARVIZ,可以手動修改和完善提取的設計。對於提取的DL設計,其原始碼可以在 Keras(Python)和 Caffe(prototxt)中實時生成。