Sorry, this entry is only available in Japanese. For the sake of viewer convenience, the content is shown below in the alternative language. You may click the link to switch the active language.
このページでは,人工知能や深層学習を学んだことのない方向けに,それらを学ぶためのロードマップを紹介しています.
ここでは対象者として「情報系以外の大学生向け」と「社会人向け」を想定し,それぞれ10時間・200時間で人工知能や深層学習について一通りの内容を学ぶことを念頭に作成しています.
もちろん限られた時間で全てを学ぶことは不可能ですが,人工知能や深層学習を身につけるためにどのように学び進めていけば良いかわからない方は,是非参考にしてください.
また,フォローしてみようと思ったロードマップがある場合は,各教材をやり始める前にそのロードマップを最後まで読むことをお勧めします.
目次
1. 情報系以外の大学生向け
2. 社会人向け
1. 情報系以外の大学生向け
数学は高校レベルまで習得済みで,プログラミングにあまり慣れていない大学生を想定したロードマップです.
a. 10時間コース
10時間コースでは,深層学習の背景にある数学や理論を飛ばし,短時間でプログラミングに慣れて自分で機械学習モデルや深層学習モデルを構築するまでを目指します.ここで実物のモデルを動かすことを経験してから,200時間コースへ進んで理論や実装をより深く学ぶのも良いでしょう.
Pythonプログラミングの経験がある方も,1.プログラミングの勉強は見て知識に穴がないかを確認すると良いでしょう.
対象者
Pythonプログラミングの経験がない,または数学に自信がないが,短時間で深層学習モデルをとりあえず動かしてみたい方
1. プログラミングの勉強(学習想定時間:4時間)
機械学習や深層学習を理解し実装するために,まずはプログラミングについて簡単に学びましょう.プログラミング言語にはPythonを選ぶといいでしょう.以下の教材などを利用して,基本的なPythonの実装の仕方を確認しましょう.
プログラミングの勉強は,他人のコードを読んだり自分で書いたりしながら,わからないところを逐一調べて覚えていくのが最も効率的です.そういった意味では,何度も基礎を反復するよりは2. 深層学習の実装に進んでしまった方が結果的に早いかもしれません.
2. 深層学習の実装(学習想定時間:6時間)
Pythonプログラミングについてある程度理解できたら,実際に深層学習モデルを動かしてみましょう.200時間コースでは数学や機械学習理論についても学びますが,10時間コースでは手を動かしながら実践的に理解することを目指します.10時間コースでの深層学習のライブラリとしては,Kerasなど高レベルAPIのものがおすすめです.以下の教材などを利用するといいでしょう.
Keras (TensorFlow)
PyTorch
200時間コースほど詳しく学ぶことはできませんが,本コースを終えることで,深層学習モデルを自分で実装し動かせるようになります.次のステップとして,自分で課題を設定しデータセットを準備して深層学習モデルを学習させてみましょう.Kaggleなどのデータサイエンスコンペに参加すれば自分でデータを用意する必要もなく,実践的にノウハウを学ぶことができます.
なお,ここでは最も手っ取り早く使えるKeras (TensorFlow)のコースを中心に紹介しましたが,200時間コースではPyTorchによるものを中心に紹介しています.PyTorchとTensorFlowの普及率は同程度なので,両方とも触ってみてどちらが好みに合うかを選ぶのも良いでしょう.まだ日本語のドキュメントは少ないですが,新しく動作が速いJAXをはじめから選ぶのも手です.
b. 200時間コース
200時間コースでは,まず人工知能の概要について掴んだ後に,数学やプログラミングの勉強へと進み,機械学習・深層学習について勉強や実装をします.最終的に自分で深層学習に関わるプロジェクトに取り組むところまでを目指します.
対象者
Pythonプログラミングの経験がない,または数学に自信はないが,機械学習・深層学習の背景にある理論まで理解して動かせるようになりたい方
このコースを完了することで,最新論文を読んだり,解決したい問題があったときに自分で機械学習モデルを実装したりすることができるようになります.また,最も重要なこととして,わからないことや忘れたことがあったときにどう検索したら良いのか,何を見たら良いのかといったことがわかるようになります.
ここで学んだことを活かしてインターンシップなどを始めるのも良いでしょう.5. 機械学習・深層学習の勉強・実装で紹介するコースの多くは修了証をもらえるものなので,実力を示すという意味でも助けとなるはずです.
1. 人工知能の概要についての勉強(学習想定時間:20時間)
まずは人工知能の概要や歴史的背景について学びます.以下の本などがおすすめです.
2. 数学の勉強(学習想定時間:40時間)
機械学習や深層学習の理解に必要な「線形代数」「微分積分」「統計学」などについて最低限の内容を学びます.基本的には,それぞれの単元に関する教科書や参考書で勉強すれば良いですが,以下のような人工知能や機械学習に特化した数学の本で勉強するといいでしょう.
最初に数学の勉強をするのが大変だったり,なかなかモチベーションが続かない場合は,先に3.プログラミングの勉強に進んでも構いません.その際に,以下のようなプログラミングを動かしながら数学を学ぶ本も利用してみるといいでしょう.
また,3Blue1Brownのように数学の理解を大きく助けてくれるYouTube動画などもあります.このページでは紹介しませんが,機械学習を学ぶ上でネット上の記事や動画を活用するのは必須のスキルと言えるでしょう.
3. プログラミングの勉強(学習想定時間:40時間)
機械学習や深層学習を理解し実装するために,プログラミングについて学びましょう.ここでは,プログラミング言語としてPythonを学びます.中でもPythonの数値計算ライブラリであるNumPyの使用は,Pythonで機械学習をするにあたりほぼ必須となります.
以下の教材などを利用して,基本的なPythonの実装の仕方を学びましょう.Pythonプログラミングを勉強する際は,環境構築が不要でブラウザから実行できるGoogle Colaboratoryを利用することをおすすめします.他にも類似の無料で利用できるサービスとして,Kaggle NotebookやAmazon SageMaker Studio Labなどがあります.
- Pythonプログラミング入門
- 東京大学 数理・情報教育研究センターが公開しているPythonを学ぶための教材です.全てを網羅する必要はありませんが,NumPyの使い方はしっかり身につけましょう.
- 独習Python
- Pythonの基礎的な構文からオブジェクト指向,一部標準ライブラリの利用方法まで網羅的にまとめられている本です.
NumPyのメソッドは無数にあり,一度で覚え切れるようなものではありません.NumPyのAPI referenceは,今後何度も訪れるページになるでしょう(Pandasやscikit-learn,PyTorchなどについても同様).
4. PythonやNumPyを用いたデータ分析の方法を学ぶ(学習想定時間:30時間)
3. プログラミングの勉強で学んだPythonやNumPyを使って,データが与えられた時に,どのように読み込みや分析を行えばいいかについて学びましょう.以下の教材がおすすめです.
5. 機械学習・深層学習の勉強・実装(学習想定時間:70時間)
いよいよ機械学習や深層学習についての勉強に入っていきます.ここまでの流れで基本的な知識や実装能力は身についているはずなので,以下のような演習付きの講義などを受講してみるといいでしょう.
上記のような講義と合わせて,以下のような深層学習の定番本も活用するといいでしょう.
- ゼロから作る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の戦略を考える上で間違いなく役立つでしょう.
b. 200時間コース
対象者
Pythonプログラミングの経験がない,または数学に自信はないが,機械学習・深層学習の背景にある理論まで理解して動かせるようになりたい方
学生のようにまとまった時間を取るのが難しい方
1. 人工知能についての勉強(学習想定時間:40時間)
学生向けコースと同様,最初に人工知能に関する本を読んで概要の理解を深めましょう.この段階を学び終わったタイミングで,ディープラーニング協会のG検定を受験してみると,勉強したことの確認になり良いでしょう.
学生向けロードマップでご紹介した入門書の他に,10時間コースで紹介した産業応用やAI経営などに関連した本もお勧めです.
2. プログラミングの勉強(学習想定時間:40時間)
多忙な社会人の方は長い期間をかけて数学の勉強をするのはモチベーションの点からも難しいかもしれません.そのため,まずは(作業した結果がわかりやすい)プログラミングから始めてみましょう.プログラミングの勉強方法については,学生向けコースと同様です.プログラミングに慣れていない方にとっては大変だと思いますが,頑張りましょう.
3. PythonやNumPyを用いたデータ分析の方法を学ぶ(学習想定時間:30時間)
こちらも学生向けコースと同様です.5で説明するE資格の認定プログラムを受講する方は,こちらを飛ばしても構いません.
4. 数学の勉強(学習想定時間:20時間)
社会人向けのコースでも,深層学習の理解や実装のためには最低限の数学の勉強は必要です.学生と比べるとまとまった勉強時間を取りづらいかもしれませんが,学生向けの200時間コースで紹介した本などを参考に,「線形代数」「微分積分」「統計学」について集中的に学びましょう.1~3と並行して進めてもいいですし,ここで完全に理解できなくても,以降の勉強の中でわからない箇所があれば,その都度戻って復習するといいでしょう.
5. 機械学習・深層学習の勉強・実装(学習想定時間:70時間)
社会人の方は決まったスケジュールのあるコースやサマースクールなどに参加することは難しいと想定し,以下のコースをお勧めします.また,学生向けコースで紹介した定番本を参考に勉強しましょう.
社会人の方にはディープラーニング協会のE資格を受験してみることもお勧めします.E資格を受講するためには所定の認定プログラムを受講して修了する必要があります.受講には費用がかかってしまいますが,実装も含めてしっかり学ぶことができます.
ここまで進めれば,人工知能や深層学習の基本的な理解だけでなく,それらの活用方法や実装方法についても身につけていると思います.
次に,自社などで現在抱えている問題に対して実際にどのように人工知能を用いることができるのかを検討してみましょう.エンジニアの方は,実際に問題解決のためのモデルを設計・実装し,データを集めて学習させてみましょう.それをベースラインとして,どのように性能を改善できるかを考えてみましょう.経営者の方は,自社内にAIチームを作り(メンバーにはこのロードマップに従って勉強してもらうといいでしょう),自社のどの部分をAI化できるかについて戦略を考えましょう.
以上でロードマップは終わりです.もちろん,こちらに完全に従う必要はありませんし,適宜読み替えていただいて自分なりの勉強方法を見つけていただくといいと思います.