人工知能・深層学習を学ぶためのロードマップ|松尾研究室
public.icon
1. 情報系以外の大学生向け
数学は高校レベルまで習得済みで,プログラミングにあまり慣れていない大学生を想定したロードマップです.
a. 10時間コース
10時間コースでは,深層学習の背景にある数学や理論を飛ばし,短時間でプログラミングに慣れて自分で機械学習モデルや深層学習モデルを構築するまでを目指します.ここで実物のモデルを動かすことを経験してから,200時間コースへ進んで理論や実装をより深く学ぶのも良いでしょう.Pythonプログラミングの経験がある方も,1.プログラミングの勉強は見て知識に穴がないかを確認すると良いでしょう.
対象者
Pythonプログラミングの経験がない,または数学に自信がないが,短時間で深層学習モデルをとりあえず動かしてみたい方
1. プログラミングの勉強(学習想定時間:4時間)
機械学習や深層学習を理解し実装するために,まずはプログラミングについて簡単に学びましょう.プログラミング言語にはPythonを選ぶといいでしょう.以下の教材などを利用して,基本的なPythonの実装の仕方を確認しましょう.
10時間コースでは,全てを網羅せずにGoogle Colaboratoryの使い方やPythonの使い方についてざっくりと理解するといいでしょう.
プログラミングの勉強は,他人のコードを読んだり自分で書いたりしながら,わからないところを逐一調べて覚えていくのが最も効率的です.そういった意味では,何度も基礎を反復するよりは2. 深層学習の実装に進んでしまった方が結果的に早いかもしれません.
2. 深層学習の実装(学習想定時間:6時間)
Pythonプログラミングについてある程度理解できたら,実際に深層学習モデルを動かしてみましょう.200時間コースでは数学や機械学習理論についても学びますが,10時間コースでは手を動かしながら実践的に理解することを目指します.10時間コースでの深層学習のライブラリとしては,Kerasなど高レベルAPIのものがおすすめです.以下の教材などを利用するといいでしょう.
Keras (TensorFlow)
Deep Learning実践開発講座(DL4US)
Kerasを用いて深層学習について手を動かしながら学べるコンテンツです.一通り進めることで,深層学習の概要を理解し実装できるようになります.
Introduction to Deep Learning & Neural Networks with Keras(英語のみ)
Courseraで公開されているKerasで深層学習を学ぶ講座です.修了まで約8時間かかるので,本ロードマップの時間をややオーバーしてしまいますが,Jupyter Notebook形式で配布される演習を中心的に進めるといいでしょう.
Introduction to TensorFlow using Keras(英語のみ)
Microsoft Learnで公開されている講座です.深層学習を学ぶには不十分ですが,Kerasを動かしてニューラルネットワークを学習・予測する方法について最短で学ぶことができます.
PyTorch official quickstart tutorial(英語)
Google Colabですぐに動かすことができ,PyTorchで最も簡単なデータセットでモデルを学習する一通りを経験することができます.これをやったあとは個別のより細かいチュートリアルに進んだり,PyTorch Hubから学習済みの大規模モデルなどをダウンロードしてより難しいタスクに使ってみたりするのが良いでしょう.
200時間コースほど詳しく学ぶことはできませんが,本コースを終えることで,深層学習モデルを自分で実装し動かせるようになります.次のステップとして,自分で課題を設定しデータセットを準備して深層学習モデルを学習させてみましょう.Kaggleなどのデータサイエンスコンペに参加すれば自分でデータを用意する必要もなく,実践的にノウハウを学ぶことができます. なお,ここでは最も手っ取り早く使えるKeras (TensorFlow)のコースを中心に紹介しましたが,200時間コースではPyTorchによるものを中心に紹介しています.PyTorchとTensorFlowの普及率は同程度なので,両方とも触ってみてどちらが好みに合うかを選ぶのも良いでしょう.まだ日本語のドキュメントは少ないですが,新しく動作が速いJAXをはじめから選ぶのも手です.
b. 200時間コース
200時間コースでは,まず人工知能の概要について掴んだ後に,数学やプログラミングの勉強へと進み,機械学習・深層学習について勉強や実装をします.最終的に自分で深層学習に関わるプロジェクトに取り組むところまでを目指します.
対象者
Pythonプログラミングの経験がない,または数学に自信はないが,機械学習・深層学習の背景にある理論まで理解して動かせるようになりたい方
このコースを完了することで,最新論文を読んだり,解決したい問題があったときに自分で機械学習モデルを実装したりすることができるようになります.また,最も重要なこととして,わからないことや忘れたことがあったときにどう検索したら良いのか,何を見たら良いのかといったことがわかるようになります.
ここで学んだことを活かしてインターンシップなどを始めるのも良いでしょう.5. 機械学習・深層学習の勉強・実装で紹介するコースの多くは修了証をもらえるものなので,実力を示すという意味でも助けとなるはずです.
1. 人工知能の概要についての勉強(学習想定時間:20時間)
まずは人工知能の概要や歴史的背景について学びます.以下の本などがおすすめです.
人工知能とは何かを知りたい場合は,まず読むといいでしょう.
ディープラーニング協会のG検定の公式テキストです.より網羅的で実用的な内容なので,先に読むと他の本が読みやすくなるでしょう.
著名な人工知能研究者へのインタビュー集です.網羅的な内容ですが,興味のある研究者から先にピックアップして読んでいくこともできます.
2. 数学の勉強(学習想定時間:40時間)
機械学習や深層学習の理解に必要な「線形代数」「微分積分」「統計学」などについて最低限の内容を学びます.基本的には,それぞれの単元に関する教科書や参考書で勉強すれば良いですが,以下のような人工知能や機械学習に特化した数学の本で勉強するといいでしょう.
人工知能プログラミングのための数学がわかる本
機械学習に関連したプログラミングに必要な数学を,初歩から体系的に学べます.
最短コースでわかる ディープラーニングの数学
高校1年生レベルから深層学習に必要な最小限の数学について説明しています.
機械学習のエッセンス
機械学習のための数学の基本(ベクトル,線形代数,微積分)を始め,Pythonのプログラミング (NumPy,SciPy,Jupyter Notebook)や機械学習アルゴリズムの実装を含んでいます.
最初に数学の勉強をするのが大変だったり,なかなかモチベーションが続かない場合は,先に3.プログラミングの勉強に進んでも構いません.その際に,以下のようなプログラミングを動かしながら数学を学ぶ本も利用してみるといいでしょう.
プログラマのためのディープラーニングのしくみがわかる数学入門
数式をコーディングから学ぶ形式になっています.
pythonで動かして学ぶ!あたらしい数学の教科書―機械学習・深層学習に必要な基礎知識
コードを書きながら数学を学ぶような形式になっています.対象読者に文系・非エンジニアも含まれています.
また,3Blue1Brownのように数学の理解を大きく助けてくれるYouTube動画などもあります.このページでは紹介しませんが,機械学習を学ぶ上でネット上の記事や動画を活用するのは必須のスキルと言えるでしょう.
3. プログラミングの勉強(学習想定時間:40時間)
機械学習や深層学習を理解し実装するために,プログラミングについて学びましょう.ここでは,プログラミング言語としてPythonを学びます.中でもPythonの数値計算ライブラリであるNumPyの使用は,Pythonで機械学習をするにあたりほぼ必須となります.
以下の教材などを利用して,基本的なPythonの実装の仕方を学びましょう.Pythonプログラミングを勉強する際は,環境構築が不要でブラウザから実行できるGoogle Colaboratoryを利用することをおすすめします.他にも類似の無料で利用できるサービスとして,Kaggle NotebookやAmazon SageMaker Studio Labなどがあります.
Web上で公開されているPython公式の入門講座です.初めてプログラミングを触る人を想定して作られていて,Google Colaboratoryの使い方についても説明されているので,最初に取り組むと良いでしょう.
東京大学 数理・情報教育研究センターが公開しているPythonを学ぶための教材です.全てを網羅する必要はありませんが,NumPyの使い方はしっかり身につけましょう.
独習Python
Pythonの基礎的な構文からオブジェクト指向,一部標準ライブラリの利用方法まで網羅的にまとめられている本です.
NumPyのメソッドは無数にあり,一度で覚え切れるようなものではありません.NumPyのAPI referenceは,今後何度も訪れるページになるでしょう(Pandasやscikit-learn,PyTorchなどについても同様).
4. PythonやNumPyを用いたデータ分析の方法を学ぶ(学習想定時間:30時間)
3. プログラミングの勉強で学んだPythonやNumPyを使って,データが与えられた時に,どのように読み込みや分析を行えばいいかについて学びましょう.以下の教材がおすすめです.
東京大学グローバル消費インテリジェンス寄附講座
データ分析の流れを手を動かしながら学ぶことができます.公開講座は学生ならば誰でも受講することができます.自習のための演習コンテンツも公開されています.
東京大学のデータサイエンティスト育成講座
上記の講座の書籍版です.
Kaggleの入門用コンペティションであるTitanic – Machine Learning from Disasterに参加してみるのもおすすめです.Codeタブから他の参加者のコード,特に評価の高いコードとその説明を読めるため,データの扱い方について手っ取り早く学ぶことができます.また,scikit-learnなどを用いたシンプルな機械学習モデルで十分解けるタスクなので,5.機械学習・深層学習の勉強・実装の予習にもなります.
5. 機械学習・深層学習の勉強・実装(学習想定時間:70時間)
いよいよ機械学習や深層学習についての勉強に入っていきます.ここまでの流れで基本的な知識や実装能力は身についているはずなので,以下のような演習付きの講義などを受講してみるといいでしょう.
Deep Learning基礎講座
松尾研究室が2015年から毎年4月〜開講している講義で,深層学習の基礎から最新トピックまで扱っています.各講義回でプログラミング演習があるので,手を動かしながら深層学習について学ぶことができます.学生ならば誰でも受講することができます.
MIT Introduction to Deep Learning(英語のみ)
マサチューセッツ工科大(MIT)によって公開されている講義で,深層学習の基礎から自動運転・音声合成などの応用的な内容まで網羅的に学ぶことができます.こちらも講義ビデオとスライドの両方が公開されており,演習も用意されています.
CS230 Deep Learning(英語のみ)
スタンフォード大学による講義です.シラバスから講義スライドを閲覧することができます.画像系の内容が中心になりますが,CS231 Deep Learning for Computer Visionもおすすめです.
Neuromatch Academy: Deep Learning(英語のみ)
Neuromatch Academyによって毎年開催されている講義です.コンテンツがすべてJupyter Notebook上で完結していて説明動画も埋め込まれているので,Google Colab上で実装を進めながら学ぶことができます.
上記のような講義と合わせて,以下のような深層学習の定番本も活用するといいでしょう.
ゼロから作るDeep Learning
本書では深層学習の基本的な構成要素のすべてをほぼNumPyのみを使って実装するため,PyTorchやTensorFlowといった深層学習用ライブラリを利用し始める前に経験しておくととても良い内容になっています.
深層学習(岡谷貴之著)
岡谷貴之先生による深層学習の定番本です.深層学習について基礎からしっかり学ぶことができます.改訂版では最近の話題を含み大幅にボリュームアップしています.
詳解ディープラーニング
深層学習について数学の基礎から扱っています.実装例も充実しています.
深層学習(Ian Goodfellow著)
Ian Goodfellow先生やYoshua Bengio先生らによる深層学習についての名著です.ボリュームがあり最初に学ぶ本としては難しいかもしれませんが,複数の本や講義で深層学習を勉強した後に読むと,様々な発見があるはずです.
ここまで学べば,深層学習について理解し,自分で実装できるようになっているはずです.学んだ内容に基づいて,是非自分でプロジェクトを立ち上げて取り組んでみてください.さらに高度な内容を身につけたい場合は,松尾研究室が主催しているサマースクールなどに参加することをおすすめします.
エンジニアを目指す人は,自分で課題を設定し,データセットを用意して取り組んでみましょう.問題設定に迷っている方は,前述のKaggleなどに参加してみましょう.Kaggleでは,さまざまな問題設定に対してデータセットが用意されており,チュートリアルに取り組んだりコンペティションに参加することができます(日本語のものから始めるのであればSIGNATE, ProbSpace, Nishikaなどもあります).こちらでモデルの性能を向上させる工夫について試行錯誤しながら学びましょう.
研究者を目指す人は,是非論文や解説記事を読んで再現実装や実験をしてみてください.興味のある論文を選ぶといいですが,Twitterなどで話題となっている内容やDeep Learning Monitorでトレンド上位の論文を選んでみてもいいでしょう.話題の論文を理論含めて要約しているAI-SCHOLARもおすすめです.また,最近の論文はソースコードもGithubなどで公開していることが多いのでPapers with Codeなどを利用して,論文の実装を探してみて,自分で動かしてみましょう.また最新の内容をキャッチアップするためには,松尾研究室主催のDeep Learning輪読会をはじめとした輪読会に参加することをお勧めします.この輪読会は,松尾研主催講義を受講した人ならば,誰でも参加可能です.また,人工知能系の国際会議に参加することで,最新の内容をキャッチアップすることができます.
2. 社会人向け
社会人向けでは,深層学習技術を使ってビジネス展開やその産業応用をすることを念頭にロードマップを作成しています.数学の勉強は比較的少なめにして,人工知能による社会への影響や産業応用の理解や実装に重点をおきます.
a. 10時間コース
対象者
時間がないが,とにかく早めに習得して問題解決に人工知能を役立てたいという方
経営をしていて,人工知能の概要や活用方法について学びたいという方
ある程度実装などに時間を取れる方は,学生向けの10時間コースを進めるといいでしょう.
経営者の方で,人工知能の概要や活用方法を簡単に学びたいという方は,以下の本から読み進めると良いと思います.ただし,経営者の方もDL4USなどの教材を使って,実装から学習までの流れを体験していただいた方が,今後のAI Transformationの戦略を考える上で間違いなく役立つでしょう.
東大生も学ぶ「AI経営」の教科書
東京大学 AI経営寄付講座の内容を学ぶことができます.
世界のトップ企業 50 は AI をどのように活用しているか?
世界のトップ企業のAIの活用法を簡潔にまとまっています.
ビジネスパーソンのための人工知能入門
ビジネスパーソンを対象に人工知能や深層学習についてわかりやすく解説しています.
b. 200時間コース
対象者
Pythonプログラミングの経験がない,または数学に自信はないが,機械学習・深層学習の背景にある理論まで理解して動かせるようになりたい方
学生のようにまとまった時間を取るのが難しい方
1. 人工知能についての勉強(学習想定時間:40時間)
学生向けコースと同様,最初に人工知能に関する本を読んで概要の理解を深めましょう.この段階を学び終わったタイミングで,ディープラーニング協会のG検定を受験してみると,勉強したことの確認になり良いでしょう.
学生向けロードマップでご紹介した入門書の他に,10時間コースで紹介した産業応用やAI経営などに関連した本もお勧めです.
2. プログラミングの勉強(学習想定時間:40時間)
多忙な社会人の方は長い期間をかけて数学の勉強をするのはモチベーションの点からも難しいかもしれません.そのため,まずは(作業した結果がわかりやすい)プログラミングから始めてみましょう.プログラミングの勉強方法については,学生向けコースと同様です.プログラミングに慣れていない方にとっては大変だと思いますが,頑張りましょう.
3. PythonやNumPyを用いたデータ分析の方法を学ぶ(学習想定時間:30時間)
こちらも学生向けコースと同様です.5で説明するE資格の認定プログラムを受講する方は,こちらを飛ばしても構いません.
4. 数学の勉強(学習想定時間:20時間)
社会人向けのコースでも,深層学習の理解や実装のためには最低限の数学の勉強は必要です.学生と比べるとまとまった勉強時間を取りづらいかもしれませんが,学生向けの200時間コースで紹介した本などを参考に,「線形代数」「微分積分」「統計学」について集中的に学びましょう.1~3と並行して進めてもいいですし,ここで完全に理解できなくても,以降の勉強の中でわからない箇所があれば,その都度戻って復習するといいでしょう.
5. 機械学習・深層学習の勉強・実装(学習想定時間:70時間)
社会人の方は決まったスケジュールのあるコースやサマースクールなどに参加することは難しいと想定し,以下のコースをお勧めします.また,学生向けコースで紹介した定番本を参考に勉強しましょう.
NYU Deep Learning
ニューヨーク大学(NYU)のYann LeCun先生による深層学習の講義です.スライドやコード,講義ビデオは全て公開されており自習することができます.レクチャーノートは複数の言語で翻訳されていて,2020年度の講義内容は複数のボランティアによって日本語に翻訳されています.
Deep Learning Lecture Series 2020(英語のみ)
DeepMindとユニヴァーシティ・カレッジ・ロンドン(UCL)による講義です.こちらも講義ビデオとスライドの両方を閲覧することができます.
11-785 Introduction to Deep Learning(英語のみ)
カーネギーメロン大学(CMU)の講義です.各回の宿題も公開されているので,自習する場合でもしっかり学ぶことができます.
UvA Deep Learning Tutorials(英語のみ)
アムステルダム大学の講義で使われている演習コンテンツです.上記と同様コンテンツが全てJupyter Notebookでまとめられています.PyTorch以外にもJAX(Google発の深層学習実装フレームワーク)による実装に基づいたコンテンツも公開されています.
社会人の方にはディープラーニング協会のE資格を受験してみることもお勧めします.E資格を受講するためには所定の認定プログラムを受講して修了する必要があります.受講には費用がかかってしまいますが,実装も含めてしっかり学ぶことができます.
ここまで進めれば,人工知能や深層学習の基本的な理解だけでなく,それらの活用方法や実装方法についても身につけていると思います.
次に,自社などで現在抱えている問題に対して実際にどのように人工知能を用いることができるのかを検討してみましょう.エンジニアの方は,実際に問題解決のためのモデルを設計・実装し,データを集めて学習させてみましょう.それをベースラインとして,どのように性能を改善できるかを考えてみましょう.経営者の方は,自社内にAIチームを作り(メンバーにはこのロードマップに従って勉強してもらうといいでしょう),自社のどの部分をAI化できるかについて戦略を考えましょう.
以上でロードマップは終わりです.もちろん,こちらに完全に従う必要はありませんし,適宜読み替えていただいて自分なりの勉強方法を見つけていただくといいと思います.
Copyright ©Matsuo Lab. All Rights Reserved.
U-Tokyo Matsuo Lab
MISSIONS & ACTIVITIES
RESEARCH
EDUCATION
PUBLICATIONS
STARTUPS
JOIN US
CONTACT
LANGUAGE: English