吳恩達關於新手論文閱讀的建議![強烈推薦]
Reading Research Papers:
How can you learn efficiently and relatively quickly through reading research papers. So, what you should do in case you want to learn from the academic literature whether you want to learn to build a machine learning system/project of interest, or just to stay on top of things, gain more knowledge and evolve as a deep learning person.
Here comes the list:
Compile a list of papers: try to create a list of research papers, medium posts and whatever text or learning resource you have.
Skip around the list: basically, you should read research papers in a parallel fashion; meaning try to tackle more than one paper at a time. Concretely, try to quickly skim and understand each of these paper and do not read it all, maybe you read 10–20% of each one and probably that will be enough to give you a high-level understanding of the paper in hand. After that, you may decide to eliminate some of these papers or just go over one or two them and read them fully.
He mentioned also that if you read:
5–20 papers (in a field of choice, say speech recognition) => it may be probably enough knowledge for you to implement a speech recognition system, but maybe not enough to research or be at the cutting-edge.
50–100 papers => you probably have a very good understanding of the domain application (speech recognition).
閱讀論文:
你應該如何通過閱讀論文高效且快速地學習。 如果你出於某種原因——為了建立機器學習系統或項目,或者只是想要跟上潮流,獲得更多前沿知識並且參與進來——想要學習學術文獻,你應該怎麼做?
這裡是建議:
建立文獻的清單: 努力去建立一份關於論文,媒體部落格或者任何種類的文獻或學習資源的清單。
在清單中省略一部分:基本上,你應該以一種平行的方式去讀文獻;也就是說你應該同時處理多份文獻。 更具體一點,你應該快速略讀這些論文的一部分(或許10-20%)來獲得對於手上的論文的高層次的理解。 此後,你再決定是否去掉某些論文或者在這些裡面只保留一兩篇並且完整閱讀。
他還提到了,如果你在某個領域(比方說語音識別)閱讀了:
5-20篇論文,那麼可能你已經有了足夠的知識去建立一個語音識別的系統,但是對於前沿科技可能還不夠。
50-100篇論文,那麼你已經對於這個領域的應用已經有很好的理解了。
How do you read one paper?
Don』t start reading the paper from the first to the last word. Instead, take multiple passes through the paper, here』s how to do it:
Read the Title, the abstract and the figures: by reading the title, abstract, the key network architecture figure, and maybe the experiments section, you will be able to get a general sense of the concepts in the paper. In deep learning, there are a lot of research papers where the entire paper is summarized in one or two figures without the need to go hardly through the text.
Read the introduction + conclusions + figures + skim the rest: the introduction, the conclusions and the abstract are the places where the author(s) try to summarize their work carefully to clarify for the reviewer why their paper should be accepted for publication.
Also, skim the related work section (if possible), this section aims to highlight work done by others that somehow ties in with the author(s) work. Hence, it may be useful to read it but if you』re not familiar with the literature, it is sometimes very hard to understand.
Read the paper but skip the math.
Read the whole thing but skip the parts that don』t make sense: great research means we』re publishing things at the boundaries of our knowledge and understanding.
He also explained that when you read papers (even the most influential ones), you』ll find maybe some parts that is much less used or it doesn』t make sense. Consequently, it』s fine if you read a paper and some of it doesn』t make sense (it』s not unusual), it』s okay to skim it initially. Unless, you』re trying to master it, then spend more time.
如何閱讀一篇論文?
不要一字不落得從頭讀到尾。 相反地,你應該在閱讀過程中跳過一些部分,接下來我們將討論如何做到這件事:
閱讀標題,摘要和圖:通過讀標題、摘要和網路結構的圖,或許再加上實驗的部分,你就能對這篇論文的概念有一個總的理解。在深度學習中,很多學術論文都可以用一或兩張圖片來概括,而不需要費力氣去讀整篇文章。
閱讀引言+結論+圖+略讀剩下的:引言、結論和摘要,是作者概括他們的工作並以此來為審稿人闡述為什麼他們的論文應該被收錄的重要部分。另外,略讀相關工作的部分,這部分是為了標明其他人所做的與論文相關的工作,因此,這部分應該會比較有用,但是如果你對相關文獻不熟悉,這部分可能會比較難以理解。
閱讀整篇論文,但是跳過數學部分。
閱讀整篇論文,但是跳過講不通的地方:偉大的研究意味著我們在發表處在人類知識以及理解邊緣的東西。
他還提到了,當你閱讀論文的時候,你可能會遇到一些內容,這些內容很少被使用或者講不通。 因此,如果你閱讀一篇論文並且這篇論文中的部分內容很少見或者講不通,這是很正常的,你完全可以先跳過這些內容。 除非你想精通這個領域,這樣的話你可以花更多時間去搞懂它。
When you read a paper, try to answer the following questions:
What did the author(s) try to accomplish?
What were the key elements of the approach?
What can you use yourself?
What other references do you want to follow?
If you can answer these questions, hopefully, that will reflect that you have a good understanding of the paper.
It turns out as you read more papers, with practice you get faster. Because, a lot of authors use common formats when writing papers.
For example, this is a common format that authors use to describe the network architecture, especially in computer vision:
Reference: Densely Connected Convolutional Networks.
當你閱讀一篇論文時,試著回答下面幾個問題:
作者想要實現什麼?
實現方法的重要部分是什麼?
哪些內容可以為你所用?
作者引用了哪些參考文獻你可以去閱讀?
如果你能夠回答這些問題,這應該能說明你對論文已經有了一個很好的理解。
事實證明,隨著你讀的論文越來越多,你讀得也會越來越快。因為很多作者都會在寫論文時用共同的格式。
比方說,這是作者們用來表示網路結構地共同格式,尤其在電腦視覺方向:
Reference:Densely Connected Convolutional Networks.
How much time it takes to understand a paper?
It's not unusual for people that are relatively new to machine learning to need maybe an hour to understand a relatively easy paper. But, sometimes you may stumble across papers that takes 3 hours or even longer to really understand it.
Sources of papers:
There are a lot of great resources online. For example, blog posts listing the most important papers in speech recognition would be very useful if you』re new to this domain.
A lot of people try to keep up with the state-of-the-art of deep learning as it evolves rapidly. And so, here』s where you should go:
Twitter: surprisingly, Twitter is becoming an important place for researchers to find out about new things.
ML subreddit.
Important Machine Learning Conferences: NIPS/ICML/ICLR.
Friends: find a community or a group of friends ,interested in the field, that shares interesting research papers.
To understand the math in papers more deeply:
Try to rederive it from scratch. Although, it takes some time but it』s a very good practice.
To practice Coding:
Download open-source code (if you can find it) and run it.
Reimplement from scratch: if you can do this, that』s a strong sign that you have really understood the algorithm in hand.
To keep getting better:
The most important thing to keep on learning and getting better is to learn more steadily rather than having a focus-intensive activity. It』s better to read two papers a week for the next year than cramming everything over a short period of time.
論文的來源:
網路上有很多很好的資源。例如,列舉重要論文的部落格可能會對作為新人的你很有用。
很多人想要跟隨深度學習的前沿發展——畢竟這個領域日新月異——接下來是你應該去的地方:
推特:令人驚訝的是,推特在研究者發現新的事物地過程中正扮演著越來越重要地角色。
朋友們:加入一個社區或者一群有同樣愛好的朋友,他們會分享有趣的研究論文。
更深地理解論文中的數學:
試著去從頭到尾推導出來。 雖然這樣很費時間,但是這是很好的實踐。
練習程式碼:
如果能找到的話,下載開源的程式碼並且運行它。
從頭到尾重新實現一遍:如果你能做到,這說明你已經對這個演算法理解了。
不斷變得更好:
為了保持進步和不斷學習,最重要的就是穩定地學習,而不是心血來潮或者臨時抱佛腳。 每周讀兩篇論文,持續做一年,比把所有事情都擠在一段相對短的時間內做完更好。
Advice for navigating a career in machine learning:
Whether your goal is to get a Job (big company, startup and faculty positions) or do more advanced graduate studies (maybe join a PhD program)
Just focus on doing important work and consider your job as a tactic and a chance to do useful work.
What do recruiters look for?
Machine Learning Skills.
Meaningful work: projects which shows that you can do the work.
A very common pattern for successful machine learning engineers ,strong job candidates, is to develop a T-shaped knowledge base. Meaning to have a broad understanding of many different topics in AI and very deep understanding in at least one area.
Reference: deeplearning.ai.
To build the horizontal piece:
A very efficient way to build foundational skills in these domains is through courses and reading research papers.
To build the vertical piece:
You can build it by doing related projects, open-source contributions, research and internships.
招聘者們在尋求什麼?
1.機器學習的技能。
2.有意義的工作:能展現你能勝任這份工作的項目。
在成功的機器學習工程師(有競爭力的工作候選人)當中,很普遍的特徵是發展了一個T型的知識基礎。也就是說廣泛理解AI的多個領域,並且在某一個領域有極深的理解。
Reference: deeplearning.ai.
如何建立橫向部分:
一個很有效的方法就是通過課程和閱讀論文。
如何建立縱向部分:
你可以通過做相關的項目,為開源社區做貢獻,做研究或者實習來完成這部分。
Selecting a job:
If you want to keep learning new things, here are the things that affect your success:
Whether you are working with great people/projects: being surrounded by hard-working people will influence you.
Focus on knowing about and evaluating the team that you will be working with (the 10–30 people that you will interact with the most) in addition to the manager.
Do not focus on 「brand」: the brand of the company is not that much correlated to what your personal experience would be like.
So if you get a job offer, ask about which team you will be working with and don』t accept an offer that says 「join us, and we』ll assign to a team later」 because you might end up with a team that work on things that don』t interest you; which doesn』t help to evolve efficiently.
On the other hand, if you can track down a good team (even in an unknown company) and join them, you can actually learn a lot.
General Advice:
Learn the most: tend to choose things to work on that allow you to learn the most.
Do important work: work on worthy projects that moves the world forward.
Try to take machine learning to traditional industries: we』ve transformed a lot in the tech industry but I think one of the most exciting work to be done may be in traditional industries (outside the tech industry) because you can create much more value there.
選擇一個工作:
如果你想不斷學習新的東西,接下來的內容會影響到你的成功:
1.無論你是否在做偉大的項目或者在偉大的團隊:和努力的人呆在一起會影響到你。
2.除了了解你的經理,注意了解和評估你接下來會一起工作的團隊(比如10-30個你會接觸和互動的人)。
3.不要再注重」品牌「:公司的牌子並不完全和你個人的體驗相掛鉤。
因此如果你拿到了一份工作的offer,詢問你的未來團隊的情況,不要加入那些說」加入我們,我們會之後把你分到一個團隊裡面。「之類的公司,因為之後你可能會加入一個你根本不感興趣的團隊,他們做的事情可能意義不大或者很難迭代進步。
另一方面,如果你能夠找到某個很好的團隊(即使在不知名的企業里)並且加入他們,你實際上能學到很多。
一般建議:
1.多學習:你要傾向於去選擇能讓你學習到更多知識的事情來做。
2.做重要的工作:做能推動世界進步的有價值的項目。
3.試著把機器學習落地到傳統工業中:我們已經轉換過很多科技企業,但是我認為最激動人心的就是傳統工業(科技之外的),因為在那裡你能創造更多的價值。
Key Takeaways:
I tried to summarize the key takeaways of Andrew』s advice in the following list:
Develop a habit of reading research papers: maybe 2 papers a week as a start.
2.Read efficiently: compile a list of papers, read more than one paper at a time and take multiple passes through each one.
When reading a paper: start by reading the title/abstract/figures (especially)/introduction/conclusions.
When trying to understand an algorithm: try to rederive the math and practice coding by reimplementing it.
Try to stay on top of things: by checking papers in ML conferences and other online resources.
Build a T-shaped knowledge base in AI.
Try to join a good team (in a big company or a startup) that will help you grow efficiently.
Work on useful projects that helps you learn the most and moves the world forward.
Try to take machine learning to other industries: healthcare, astronomy, climate change, etc.
重要收穫:
我試著將吳恩達的建議總結成了以下幾點:
1.養成閱讀論文的習慣:或許一開始每周兩篇就好了。
2.高效閱讀:建立文獻清單,同時讀多篇文章並且在讀每一篇文章時跳過不重要的部分。
3.當你讀論文的時候:最先讀標題/摘要/圖片(重要)/引言/結論。
4.當你試圖理解演算法時:試著自行推導數學公式,並且用程式碼實現一遍。
5.試著跟上潮流:通過閱讀機器學習會議或者其他網上資源的論文。
6.建立T型的AI知識基礎。
7.努力加入一個能幫助你成長的好團隊。
8.做能讓你學習並且對世界有貢獻的有價值的項目。
9.試著將機器學習運用在其他領域:醫療,航天,氣候變化等等。

