Andrew Ng先生の講義動画の簡単なまとめ
- Stanford大での論文読みとMLエンジニアとしてのキャリアについての講義です
- 1時間の講義のうち、上記の内容についてそれぞれ30分ずつ話しています
- こちら(stanford online)から元動画が確認できます
この記事で説明すること
- 論文読みの手法
この記事で説明しないこと
- MLエンジニアとしてのキャリア選択について
自分の備忘録として残しておこうかなという感じですので、誤訳・スペルミスもあると思いますがご容赦ください。
論文読みの手法
論文読みは二つのステップに分けて考えることができます。
- Compile list of papers
- One paper reading
Compile list of papers
これは読むべき論文をリストアップする段階を指します。
大体の量としては
ベーシック(普通の大学生?)→15~20本のpaper
マスター(専門家?)→50~100本という感じで話されてました。頑張ろう(吐血)
リストアップした論文を一つずつ丁寧に理解していくのではなく、後述する読み方で優先度順で読んでいくのが良いそうです。また、複数の論文を並行で読み進めても良いとのことです。
One paper reading
今回の記事の主要な部分です。Andrew Ng先生は段階的に論文を読むことをオススメしています。
具体的には以下のように論文を切り分けて読んでいきます。
- Title,abst,and figures
- Intro,conclusion,figures, and skim rest
- Read but skip(or skim) Math
- Whole thing but skip parts that don't make sense
※skim → skimming 要点を拾って読む速読手法 skip→飛ばす
それぞれについてちょっと補足します。
- 1の部分については論文の要旨を把握する読み方です。タイトルと概要、そして論文内の図、特にモデルのArchitectureに着目して読んでいきます。講義内ではDenseNetが例で出されていましたが、Figureにかなりの情報が詰め込まれているので重要だと述べています。
- 2に関しては1よりももう少し広く読む方法で、Intro,related work等の背景知識もざっと見ていきます。特に全く新しい分野の論文を読む際はrelated workを読んでおくと学習がスムーズになります。
- 3では全体を通してより深く理解することを目指します。ただ、この段階では数式表現等はあまり気にせずに読んでくことをすすめています。
- 4でもう一度全体を通して読みます。意味のわからない部分は飛ばして読みます。
以上が効率的に論文を読むための手法になります。概要→詳細という流れです。
また、その論文に対して以下のkey-elementsを答えられるように意識して読むことも推奨されています。
- 著者は何を達成したかったのか?
- この論文(手法)の特徴・鍵は何か?
- 自分なら何に応用できるか?
- 他に読むべき論文はあるか?
さらに深い理解を得るためには以下の方法が良いと述べられています。
- 数式を自分で再現する(Re-drive from scratch)
- 公開されているコードを動かす(Run open-source code)
- 自分でコードを書いてみる(Re-implementation from scratch)
自分はいつも読むところで終わらせてしまうので、コードを動かす・数式を再現するのにも挑戦していきたいと思いますぅ...
補足・イメージ・教訓
- 頭から読んでいくよりも、数ステップに分けて読む
- 図はモデル構造の理解を助けてくれる
- key-elementsを意識して読む
- 深い理解にはコード実行・実装・数式の再現が良い
- 理解した内容をQiita等にまとめるのもいいんじゃないかなぁと思ってます
- Andrew Ng先生の話はすごい分かりやすいので、ぜひ元の動画を見ていただければと思います(足りない・間違ってる部分を教えていただけると幸いです!)
最後までお読みいただきありがとうございました!
ご質問等あればお気軽にコメントください!