深層学習初学者向けガイドライン
作成者:東北大学大学院医学系研究科 医用画像工学分野 野呂恭平
作成日:2019/3/18
はじめに
本ガイドラインは、これから深層学習を学び始める学生にむけて、参考図書や論文、Webページなどをまとめたものである。
本ガイドラインは、以下のような学生を対象としている。
深層学習の理論を知らない
大学基礎教養レベルの数学が危うい
プログラミングの経験は乏しい
でもやる気はある
下記には様々な資料を紹介してはいるが、このすべてを熟読して理解する必要はない。必要なのは、わからないことができたときに、それを自分で調べて解決する能力である。本ガイドラインのステップ3まで到達できれば、それができるだけの十分な基礎知識を得られるだろう。
フローチャートについて
https://gyazo.com/4f1a05d4bebeb05ad9640718480bbc11
このフローチャートを参照してほしい。この図は、初学者が必要な知識を身に着け、自分で情報を集められるようになるまでの流れを表している。図に記されている書籍などは学習資料の項目で解説している。チャートは3つのステップに分かれている。以下、各ステップを解説する。
Step 1
基礎を学ぶ段階である。“ゼロから作るDeep Learning”を使用し、深層学習とPythonの基礎を学ぶ。Pythonの補助資料として、2冊の教科書を提供している。はじめは“しんせつなPython”を読み、不足を感じたら“Pythonチュートリアル”を読むとよいだろう。
Step2
自分の興味ある領域について深く知識をつける段階である。Step2以降は、すべての資料について学ぶ必要はない。知りたい、或いは知る必要のあるものに関してのみ読み込むようにすればよいだろう。
Step3
独り立ちの段階である。ここまでくれば、必要な知識を自分で収集することができるようになっていることだろう。深層学習分野の発展は著しく、最新の書籍が出版される頃には既に周回遅れという状態である。従ってWebや論文を駆使し、最新の知識を得られる環境を構築することが重要である。チャートで紹介している物は勿論参考になるだろう。また、後進のためにも、チャートにはない情報源の開拓をぜひ試してみてほしい。
学習資料
教科書
「ゼロから作るDeep Learning」
斎藤康毅, オライリー・ジャパン, 2016年9月
Python, Deep Learning共に初心者ならこれが入門書
Deep Learningを自分で作ってみようという内容で、数学も平易に記述してくれている。
この1冊を理解できれば、基本的な知識は一通り見につくだろう。
「しんせつなPython」
とおやまただし・とおやまつよし, 秀和システム, 2016年9月
Python (プログラミング言語)を簡単にわかりやすく解説することに心血を注いだ一冊。
初学者が最もとっつきやすいだろう入門書。
ゼロからつくるDeep Learningのお供に。
「Pythonチュートリアル」
Guido van Rossum(著), 鴨澤 眞夫(訳), オライリー・ジャパン, 2016年3月
しんせつなPythonでは満足できなくなった人へ勧める教科書。
基礎的なPythonの機能を網羅的に解説しているので、入門書としてだけでなく、辞書としても使用できる。
「ディジタル画像処理 DIGITAL IMAGE PROCESSING  改定新版」
画像情報教育振興協会(CG-ARTS協会), 2015年3月
画像の基礎や有名な画像処理の手法について書かれている本。
図が多く読みやすい。深層学習以外の手法を知りたければ、最初に読む本としてお勧めできる。
「これならわかる深層学習」
瀧雅人, 講談社, 2017年10月
ゼロからつくるDeep Leaningは良書だが、数学に関しては深入りせず簡単な部分のみの解説にとどまっている。
Deep Learningの理論をしっかり勉強してみたい人はこの本を読むと、より深い理解が得られるだろう。
「深層学習」
Ian Goodfellow et al.(著), 岩澤 有祐 ほか(監修), KADOKAWA, 2018年3月
深層学習の分野全体を徹底的に網羅する一冊。
2章、3章において、深層学習を理解するのに必要な数学を解説してくれている。
深層学習を深く理解するにはベクトルや確率論などが必要になるので、数学知識の不足を感じたらこの本の2、3章を読んでみるといいだろう。
レビュー論文
レビュー論文とは
論文は通常、研究者当人の研究成果について書かれる。
対してレビュー論文は、ある分野について関係する複数の論文をまとめ上げ、分野の発展や歴史、注目されているアプローチなどについて書かれた論文である。
以下、深層学習に関係するレビュー論文を挙げる。
Liu et al. "Deep Learning for Generic Object Detection: A Survey." (arXiv.org)
深層学習を用いた物体検出の発展をまとめたレビュー論文。発表が18年7月と非常に新しく、最新のアーキテクチャや現在の流行、主要なネットワーク構造などについて解説してくれている。
Jiuxiang et al. "Recent Advances in Convolutional Neural Networks." (arXiv.org)
深層学習で用いられる各種レイヤーや損失関数について数学的に解説している。また、後半では深層学習が用いられるようになった様々なタスクを解説してくれている。
Ziwei Zhang et al. "Deep Learning on Graphs: A Survey" (arXiv.org)
最近流行のグラフネットワークという技術についてのサーベイ。グラフネットワークとは、ニューラルネットワークには従来不可能であった、階層構造や相互の関係性という情報の処理を可能にしようという取り組みである。この分野はこれから大いに発展していくであろうことが期待されるため、余裕があれば目を通しておくとよいだろう。
Webサイト
Qiita
エンジニアが情報交換をするために利用されているコミュニティサイト。
Pythonや深層学習について書かれた記事も多くあるため、なにか困ったことがあれば検索してみると解決策が見つかるかもしれない。
論文検索サイト
Google Scholar
論文を調べるときはとりあえずここ。信頼性の低い雑誌は検索に出てこない他、様々な分野の情報を調べることができるのも良い。
IEEE Explore
主に工学系の論文を検索できるサイト。
Pubmed
主に医学系の論文を検索できるサイト。
arXiv.org
近年の科学技術は非常に発展が早く、研究成果が出てから論文が発表されるまでのタイムラグはしばしば致命的になる。そこで、雑誌に掲載が決まった時点で掲載予定の論文を先に公開するというサイトが生まれた。それがarXiv.orgである。
arXiv.orgでは最新の論文を入手することができるが、以下の点に注意すること。
論文は雑誌に採択されるまでに、査読によって修正が入る。arXiv.orgに掲載されるのは査読前、あるいは修正途中の論文であり、正式に出版される論文とは細部が異なる。
arXiv.orgは誰でも論文を掲載でき、審査は非常に緩い(実質的には無いに等しい)。よく探してみると、リジェクト(雑誌に掲載できないと判断)された論文が掲載されていることもあるようだ。
自身が論文を執筆する場合にはarXiv.orgの論文は極力引用すべきではない。引用する場合はその論文がarXiv.org以外から出版されているかを調べ、もしあればそちらを使用するようにすること。
Twitter
深層学習に限らず、情報系の技術者はSNSを使って情報交換をしていたりする。そういった人を見つけることができれば、自動で情報を得られる環境が手に入る。以下に私が知る、有力な方を紹介する。
aidiary @sylvan5
深層学習に関連するニュースを良くリツイートしてくれる。社会の流れや関心などの情報を集めやすい。
Kaggle
世界中の機械学習・データサイエンスの技術者が集まるコミュニティ。様々な企業、団体がデータとタスクを提供し、技術者たちがそれを使ってよいモデルを作り上げ競争するというサイトである。対象のデータを無料で集められるのに加え、各タスクにおいて上位入賞者が自身の手法を公開してくれている。最新の手法を学びつつ、実力を磨くのには最高の環境だ。
その他Webサイト
上のチャートには記載しなかったが、学習に役立つページを以下に挙げる。
メディカルAIコース オンライン講義資料
https://japan-medical-ai.github.io/medical-ai-course-materials/notebooks/Basic_Math_for_ML.html
深層学習フレームワークChainerを用いて医用画像に対する画像認識を行う講義の資料。
今日から使えるChainerを使用する際に便利な5つのトリック
http://acro-engineer.hatenablog.com/entry/2018/12/24/185235
Chainerのノウハウ記事。医用画像で一般的な手法であるFine-tuningの簡単なやり方について解説してくれている。正直目から鱗だった。
Deep Learningで画像認識シリーズ
https://lp-tech.net/articles/gjZvu
深層学習フレームワークkerasを用いて画像認識を行うブログ記事。後半は医用画像に適用した例も挙げられている。
Meta-Learning: Learning to Learn Fast
https://lilianweng.github.io/lil-log/2018/11/30/meta-learning.html
メタ学習(ニューラルネットワークの構造自体の最適化)のまとめ記事。