このページでは,人工知能や深層学習を学んだことのない方向けに,それらを学ぶためのロードマップを紹介しています.

ここでは対象者として「情報系以外の大学生向け」と「社会人向け」を想定し,それぞれ200時間・10時間で人工知能や深層学習について一通りの内容を学ぶことを念頭に作成しています.

もちろん限られた時間で全てを学ぶことは不可能ですが,人工知能や深層学習を身につけるためにどのように学び進めていけばいいかわからない方は,是非参考にしてください.

1. 情報系以外の大学生向け

数学は高校レベルまで習得済みで,プログラミングにあまり慣れていない大学生を想定したロードマップです.

a. 200時間コース

まずは人工知能の概要について掴んだ後に,数学やプログラミングの勉強へと進み,機械学習・深層学習について勉強や実装をします.最終的に自分で深層学習に関わるプロジェクトに取り組むところまでを目指します.

1. 人工知能の概要についての勉強(学習想定時間:20時間)

まずは人工知能の概要や歴史的背景について学びます.以下の本などがおすすめです.

2. 数学の勉強(学習想定時間:40時間)

機械学習や深層学習の理解に必要な「線形代数」「微分積分」「統計学」などについて最低限の内容を学びます.基本的には,それぞれの単元に関する教科書や参考書で勉強すれば良いですが,以下のような人工知能や機械学習に特化した数学の本で勉強するといいでしょう.

最初に数学の勉強をするのが大変だったり,なかなかモチベーションが続かない場合は,先に3.プログラミングの勉強に進んでも構いません.その際に,以下のようなプログラミングを動かしながら数学を学ぶ本も利用してみるといいでしょう.

また,3Blue1Brownのように数学の理解を大きく助けてくれるYouTube動画などもあります.このページでは紹介しませんが,機械学習を学ぶ上でネット上の記事や動画を活用するのは必須のスキルと言えるでしょう.

3. プログラミングの勉強(学習想定時間:40時間)

機械学習や深層学習を理解し実装するために,プログラミングについて学びましょう.ここでは,プログラミング言語としてPythonを学びます.中でもPythonの数値計算ライブラリであるNumPyの使用は,Pythonで機械学習をするにあたりほぼ必須となります.

以下の教材などを利用して,基本的なPythonの実装の仕方を学びましょう.Pythonプログラミングを勉強する際は,環境構築が不要でブラウザから実行できるGoogle Colaboratoryを利用することをおすすめします.他にも類似の無料で利用できるサービスとして,Kaggle NotebookAmazon SageMaker Studio Labなどがあります.

  • ゼロからのPython入門講座
    • Web上で公開されているPython公式の入門講座です.初めてプログラミングを触る人を想定して作られていて,Google Colaboratoryの使い方についても説明されているので,最初に取り組むと良いでしょう.
  • Pythonプログラミング入門
    • 東京大学 数理・情報教育研究センターが公開している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月〜開講している講義で,深層学習の基礎から最新トピックまで扱っています.各講義回でプログラミング演習があるので,手を動かしながら深層学習について学ぶことができます.学生ならば誰でも受講することができます.
  • NYU Deep Learning
    • ニューヨーク大学(NYU)のYann LeCun先生による深層学習の講義です.スライドやコード,講義ビデオは全て公開されており自習することができます.レクチャーノートは複数の言語で翻訳されていて,2020年度の講義内容は複数のボランティアによって日本語に翻訳されています
  • MIT Introduction to Deep Learning(英語のみ)
    • マサチューセッツ工科大(MIT)によって公開されている講義で,深層学習の基礎から自動運転・音声合成などの応用的な内容まで網羅的に学ぶことができます.こちらも講義ビデオとスライドの両方が公開されており,演習も用意されています.
  • Deep Learning Lecture Series 2020(英語のみ)
    • DeepMindとユニヴァーシティ・カレッジ・ロンドン(UCL)による講義です.こちらも講義ビデオとスライドの両方を閲覧することができます.
  • CS230 Deep Learning(英語のみ)
    • スタンフォード大学による講義です.シラバスから講義スライドを閲覧することができます.画像系の内容が中心になりますが,CS231 Deep Learning for Computer Visionもおすすめです.
  • 11-785 Introduction to Deep Learning(英語のみ)
    • カーネギーメロン大学(CMU)の講義です.各回の宿題も公開されているので,自習する場合でもしっかり学ぶことができます.
  • Neuromatch Academy: Deep Learning(英語のみ)
    • Neuromatch Academyによって毎年開催されている講義です.コンテンツがすべてJupyter Notebook上で完結していて説明動画も埋め込まれているので,Google Colab上で実装を進めながら学ぶことができます.
  • UvA Deep Learning Tutorials(英語のみ)
    • アムステルダム大学の講義で使われている演習コンテンツです.上記と同様コンテンツが全てJupyter Notebookでまとめられています.PyTorch以外にもJAX(Google発の深層学習実装フレームワーク)による実装に基づいたコンテンツも公開されています.

 

上記のような講義と合わせて,以下のような深層学習の定番本も活用するといいでしょう.

  • ゼロから作るDeep Learning
    • 本書では深層学習の基本的な構成要素のすべてをほぼNumPyのみを使って実装するため,PyTorchやTensorFlowといった深層学習用ライブラリを利用し始める前に経験しておくととても良い内容になっています.
  • 深層学習(岡谷貴之著)
    • 岡谷貴之先生による深層学習の定番本です.深層学習について基礎からしっかり学ぶことができます.改訂版では最近の話題を含み大幅にボリュームアップしています.
  • 詳解ディープラーニング
    • 深層学習について数学の基礎から扱っています.実装例も充実しています.
  • 深層学習(Ian Goodfellow著)
    • Ian Goodfellow先生やYoshua Bengio先生らによる深層学習についての名著です.ボリュームがあり最初に学ぶ本としては難しいかもしれませんが,複数の本や講義で深層学習を勉強した後に読むと,様々な発見があるはずです.

ここまで学べば,深層学習について理解し,自分で実装できるようになっているはずです.学んだ内容に基づいて,是非自分でプロジェクトを立ち上げて取り組んでみてください.さらに高度な内容を身につけたい場合は,松尾研究室が主催しているサマースクールなどに参加することをおすすめします.

エンジニアを目指す人は,自分で課題を設定し,データセットを用意して取り組んでみましょう.問題設定に迷っている方は,前述のKaggleなどに参加してみましょう.Kaggleでは,さまざまな問題設定に対してデータセットが用意されており,チュートリアルに取り組んだりコンペティションに参加することができます(日本語のものから始めるのであればSIGNATE, ProbSpace, Nishikaなどもあります).こちらでモデルの性能を向上させる工夫について試行錯誤しながら学びましょう.

研究者を目指す人は,是非論文や解説記事を読んで再現実装や実験をしてみてください.興味のある論文を選ぶといいですが,Twitterなどで話題となっている内容やDeep Learning Monitorでトレンド上位の論文を選んでみてもいいでしょう.話題の論文を理論含めて要約しているAI-SCHOLARもおすすめです.また,最近の論文はソースコードもGithubなどで公開していることが多いのでPaper with Codeなどを利用して,論文の実装を探してみて,自分で動かしてみましょう.また最新の内容をキャッチアップするためには,松尾研究室主催のDeep Learning輪読会をはじめとした輪読会に参加することをお勧めします.この輪読会は,松尾研主催講義を受講した人ならば,誰でも参加可能です.また,人工知能系の国際会議に参加することで,最新の内容をキャッチアップすることができます.

b. 10時間コース

上記の200時間コースを圧縮して,プログラミングに慣れて自分で機械学習モデルや深層学習モデルを構築するまでを目指します.

1. プログラミングの勉強(学習想定時間:4時間)

機械学習や深層学習を理解し実装するために,まずはプログラミングについて簡単に学びましょう.プログラミング言語にはPythonを選ぶといいでしょう.以下の教材などを利用して,基本的なPythonの実装の仕方を確認しましょう.

2. 深層学習の実装(学習想定時間:6時間)

Pythonプログラミングについてある程度理解できたら,実際に深層学習モデルを動かしてみましょう.200時間コースでは,数学や機械学習理論についても学びましたが,10時間コースでは手を動かしながら実践的に理解することを目指します.10時間コースでの深層学習のライブラリとしては,Kerasなど高レベルAPIのものがおすすめです.以下の教材などを利用するといいでしょう.

  • 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を動かしてニューラルネットワークを学習・予測する方法について最短で学ぶことができます.

200時間コースほど詳しく学ぶことはできませんが,本コースを終えることで,深層学習モデルを自分で実装し動かせるようになります.次のステップとして,自分で課題を設定しデータセットを準備して深層学習モデルを学習させてみましょう.200時間コースと同様に,Kaggleに参加して実践的にノウハウを学ぶのもいいでしょう.なお,研究者やAIエンジニアを目指す場合は10時間では足りないので,200時間コースを進めてください.

2. 社会人向け

社会人向けでは,深層学習技術を使ってビジネス展開やその産業応用をすることを念頭にロードマップを作成しています.数学の勉強は比較的少なめにして,人工知能による社会への影響や産業応用の理解や実装に重点をおきます.

a. 200時間コース

1. 人工知能についての勉強(学習想定時間:40時間)

学生向けコースと同様,最初に人工知能に関する本を読んで概要の理解を深めましょう.この段階を学び終わったタイミングで,ディープラーニング協会のG検定を受験してみると,勉強したことの確認になり良いでしょう.

学生向けコースでご紹介した入門書の他に,以下のような産業応用やAI経営などに関連した本があります.

2. プログラミングの勉強(学習想定時間:40時間)

多忙な社会人の方は長い期間をかけて数学の勉強をするのはモチベーションの点からも難しいかもしれません.そのため,まずは(作業した結果がわかりやすい)プログラミングから始めてみましょう.プログラミングの勉強方法については,学生向けコースと同様です.プログラミングに慣れていない方にとっては大変だと思いますが,頑張りましょう.

3. PythonやNumPyを用いたデータ分析の方法を学ぶ(学習想定時間:30時間)

こちらも学生向けコースと同様です.5で説明するE資格の認定プログラムを受講する方は,こちらを飛ばしても構いません.

4. 数学の勉強(学習想定時間:20時間)

社会人向けのコースでも,深層学習の理解や実装のためには最低限の数学の勉強は必要です.学生と比べるとまとまった勉強時間を取りづらいかもしれませんが,学生向けの200時間コースで紹介した本などを参考に,「線形代数」「微分積分」「統計学」について集中的に学びましょう.1~3と並行して進めてもいいですし,ここで完全に理解できなくても,以降の勉強の中でわからない箇所があれば,その都度戻って復習するといいでしょう.

5. 機械学習・深層学習の勉強・実装(学習想定時間:70時間)

社会人の方はDeep Learning基礎講座を受講できないので,学生向けコースで紹介した海外の公開講座や定番本などを参考に勉強しましょう.

社会人の方にはディープラーニング協会のE資格を受験してみることもお勧めします.E資格を受講するためには所定の認定プログラムを受講して修了する必要があります.受講には費用がかかってしまいますが,実装も含めてしっかり学ぶことができます.

ここまで進めれば,人工知能や深層学習の基本的な理解だけでなく,それらの活用方法や実装方法についても身につけていると思います.

次に,自社などで現在抱えている問題に対して実際にどのように人工知能を用いることができるのかを検討してみましょう.エンジニアの方は,実際に問題解決のためのモデルを設計・実装し,データを集めて学習させてみましょう.それをベースラインとして,どのように性能を改善できるかを考えてみましょう.経営者の方は,自社内にAIチームを作り(メンバーにはこのロードマップに従って勉強してもらうといいでしょう),自社のどの部分をAI化できるかについて戦略を考えましょう.

b. 10時間コース

時間がない方で,とにかく早めに習得して問題解決に人工知能を役立てたいという方は,学生向けコースの10時間コースを進めるといいでしょう.経営者の方で,人工知能の概要や活用方法について学びたいという方は,200時間コースの1で紹介した本を読み進めるといいと思います.ですが,経営者の方もDL4USなどの教材を使って,実装から学習までの流れを体験していただいた方が,今後のAI Transformationの戦略を考える上で間違いなく役立つでしょう.

以上でロードマップは終わりです.もちろん,こちらに完全に従う必要はありませんし,適宜読み替えていただいて自分なりの勉強方法を見つけていただくといいと思います.