如何閱讀一篇學術論文
這篇文章摘要自 Siraj 新影片 的內容,剛好最近開始讀一篇學術論文,就透過筆記幫助內化。
Siraj 本身是沒有研究生學位,但透過網路自學的人。他平均一週讀10–20篇論文,並且在個人Youtube上談機器學習、深度學習、區塊鏈的主題影片,以一種挺幽默的風格。
Part I: Where to find good papers?
資源|機器學習SubReddit
每天都會更新,可以找到網眾的收集的機器學習研究。另外也有 WAYR (What are you reading)的貼文,可以從那邊找到被大家關注的論文。
資源|Arxiv Sanity
arxiv.org 是一個供閱讀、下載的論文平台,以數物CS等領域為主,而Arxiv Sanity 則是從 Arxiv去精選論文的網站。
資源|Google Brain Publications
收集 Google Research 的研究產出,領域很廣,包括 軟體工程、硬體與通訊、人工智慧、演算法、電商, etc,在上面可以找到高質量的論文。
21 Research Areas
- Algorithms and Theory
- Data Management
- Data Mining and Modeling
- Distributed Systems and Parallel Computing
- Economics and Electronic Commerce
- Education Innovation
- General Science
- Hardware and Architecture
- Human-Computer Interaction and Visualization
- Information Retrieval and the Web
- Machine Intelligence
- Machine Perception
- Machine Translation
- Mobile Systems
- Natural Language Processing
- Networking
- Quantum A.I.
- Security, Privacy and Abuse Prevention
- Software Engineering
- Software Systems
- Speech Processing
另外,Deep Mind也有收集他們論文網站(連結),即使他們跟 Google 屬於同一個母公司下。
Part2: How to read paper
每週有很多論文產出,其中大概會有一兩篇受到最多的關注。用上面的資源可以選到優秀的論文,那如何去吸收呢?
Tips #1 帶著目標閱讀
比如說你要了解激活函數、對抗式生成網路,就去找相關的在閱讀過程中比較容易看到重點。
Tips #2 閱讀論文可以是迭代的過程
第一輪:看標題、Abstract。若引起你的興趣,才繼續讀下去。第一遍用掃讀的方式,先跳過數學,一路看到結論。如果你覺得這個有趣,就進入第二輪的閱讀。
第二輪:了解這篇論文的論述架構,去讀英文內文、寫筆記,數學公式與演算法的部分,掌握大意上的理解即可。閱讀相關的圖示,並且跳到相關的Github去看Code(如果有)。實際去Run Code,讀註解,通常會幫助你得到更深的理解。去找相關的解釋、文章、筆記、教程,熱門的論文基本上都會有這些額外資源可以被找到。
(另外他也補充,如果教別人,或只是總結裡頭的概念,都能有效提升自己的理解程度。)
第三輪:數學。透過拆解去理解公式,補充相關的數學知識。掌握數學之後,再去與其他學習者及專家討論,激發出更深入的想法。
總結
- 判斷這篇論文對個人的吸引力
- 觀念式的了解論文細節,但先跳過數學。尋找額外資源,特別建議把 Github Repo給找出來。
- 深刻了解數學
Tips #3 讀論文是陸續進步的過程
正確的心態:挫折是正常的,讀越多吸收能力越好。堅持著學習,遇到困難要找人協助。
相關閱讀:
How to (seriously) read a scientific paper
[討論] How do you read math-heavy machine learning papers?
Infographic: How to read a scientific paper
How to Research a Machine Learning Algorithm