業種別の学習ロードマップ
ROADMAP
このページでは、人工知能や深層学習を学んだことのない方を対象に、
それらを学ぶためのロードマップを紹介しています。
本ロードマップでは達成目標として、
「研究者」「データサイエンティスト」「エンジニア」「ビジネス」の
4つの職業ごとに4つのレベルを設けています。
レベル0の方は、
まずは以下で基礎を身につけましょう!
研究者・データサイエンティスト・エンジニア
数学の勉強(学習想定時間:30時間)
機械学習や深層学習の理解に必要な「線形代数」「微分積分」「統計学」などについて最低限の内容を学びます。基本的には、それぞれの単元に関する教科書や参考書で勉強すれば良いですが、以下のような人工知能や機械学習に特化した数学の本で勉強するといいでしょう。
・人工知能プログラミングのための数学がわかる本
機械学習に関連したプログラミングに必要な数学を、初歩から体系的に学べます。
・最短コースでわかる ディープラーニングの数学
高校1年生レベルから深層学習に必要な最小限の数学について説明しています。
・機械学習のエッセンス
機械学習のための数学の基本(ベクトル、線形代数、微積分)を始め、Pythonのプログラミング (NumPy、SciPy、Jupyter Notebook)や機械学習アルゴリズムの実装を含んでいます
最初に数学の勉強をするのが大変だったり、なかなかモチベーションが続かない場合は、次のプログラミングと並行して進めるのが良いでしょう。以下のような、手を動かしながら学ぶ本がおすすめです。
・プログラマのためのディープラーニングのしくみがわかる数学入門
数式をコーディングから学ぶ形式になっています。
・Pythonで動かして学ぶ!あたらしい数学の教科書―機械学習・深層学習に必要な基礎知識
コードを書きながら数学を学ぶような形式になっています。対象読者に文系・非エンジニアも含まれています。
また、3Blue1Brownのように数学の理解を助けてくれるYouTube動画などもあります。このページでは紹介しませんが、ネット上の動画やブログは積極的に活用しましょう。
プログラミングの勉強(学習想定時間:40時間)
機械学習・深層学習を実装するために、プログラミングを学びましょう。
本ロードマップでは、最もライブラリなどが充実しているPythonを言語として選びます。Pythonで機械学習・深層学習をする場合はNumPyやscikit-learn、PyTorchといったライブラリの使用が重要になりますが、それぞれに利用できるAPIは無数にあるため、実装を学びながら徐々に覚えていくことになります。
ここではその前段階として、Pythonの基礎を学びます。以下のような教材がおすすめです。
・ゼロからのPython入門講座
Web上で公開されているPython公式の入門講座です。初めてプログラミングを触る人を想定して作られていて、Google Colaboratoryの使い方についても説明されているので、最初に取り組むと良いでしょう。
・Pythonプログラミング入門
東京大学 数理・情報教育研究センターが公開しているPythonを学ぶための教材です。全てを網羅する必要はありませんが、NumPyの使い方はしっかり身につけましょう。
・独習Python
Pythonの基礎的な構文からオブジェクト指向、一部標準ライブラリの利用方法まで網羅的にまとめられている本です。
Pythonプログラミングに入門する際は、環境構築が不要でブラウザから実行できるGoogle Colaboratoryの利用をおすすめします。類似の基本無料サービスとして、他にKaggle NotebooksやAmazon SageMaker Studio Labなどがあります。
Pythonの基礎を学んだら、NumPy や Pandas といったデータ分析ライブラリを使って、データの取り扱い方について学びましょう。以下の教材を使用するのがおすすめです。
・東京大学グローバル消費インテリジェンス寄附講座
データ分析の流れを手を動かしながら学ぶことができます。公開講座は学生ならば誰でも受講することができます。自習のための演習コンテンツも公開されています。
・東京大学のデータサイエンティスト育成講座
上記の講座の書籍版です。
本セクションの内容は機械学習・深層学習の実装を学びながら必要に応じて思い出しにくることもできるので、あまり気負わずに学習しましょう。
機械学習・深層学習の勉強・実装(学習想定時間:70時間)
いよいよ機械学習や深層学習についての勉強に入っていきます。ここまでで前提知識は身についているはずなので、以下のような演習つきの講義を受講して理論とともに実装能力を上げていきましょう。
・Deep Learning基礎講座
松尾・岩澤研究室が2015年から開講している講義で、深層学習の基礎から最新トピックまで扱っています。各講義回でプログラミング演習があるので、手を動かしながら深層学習について学ぶことができます。学生ならば誰でも受講することができます。
・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のみを使って実装するため、それらがあらかじめ実装されてしまっている深層学習用ライブラリを利用し始める前に経験しておくと良い内容になっています。上記の講義の代わりに、本書で手を動かして学ぶのも良いでしょう。
・深層学習(岡谷貴之著)
岡谷貴之先生による深層学習の定番本です。深層学習について基礎からしっかり学ぶことができます。改訂版では最近の話題を含み大幅にボリュームアップしています。
・詳解ディープラーニング
深層学習について数学の基礎から扱っています。実装例も充実しています。
・深層学習(Ian Goodfellow著)
Ian Goodfellow先生やYoshua Bengio先生らによる深層学習についての名著です。ボリュームがあり最初に学ぶ本としては難しいかもしれませんが、複数の本や講義で深層学習を勉強した後に読むと、様々な発見があるはずです。
ビジネス
AI・データ活用事例(学習想定時間:20時間)
レベル0でAIの技術的な基礎を学んだ上で、ビジネスにおいてどのように活用されてきたかを知りましょう。
・東大生も学ぶ「AI経営」の教科書
東京大学 AI経営寄付講座の内容を学ぶことができます。
・世界のトップ企業 50 は AI をどのように活用しているか?
世界のトップ企業のAIの活用法を簡潔にまとまっています
・AI・データ分析プロジェクトのすべて
ビジネスにおけるAI活用について全体像を把握することができます。
データの集計・可視化(学習想定時間:10時間)
エクセルや様々なBIツールが存在しますが、AI領域ではPythonの使用をお勧めします。ここでは、データの可視化とPythonの初歩を同時に学べる教材を紹介します。
・指標・特徴量の設計から始めるデータ可視化学入門
データを理解するためにどのような変換や可視化が有用なのかを学べます。補遺にPython入門講座があります。
研究者
研究リテラシー(学習想定時間:2時間)
論文を読む力や書く力は実際にそれを行うことで身についていきますが、それを含めた研究遂行に関わる様々な能力について把握する意味で、以下のような書籍やwebページに目を通しておくと良いでしょう。
・大学生のためのリサーチリテラシー入門:研究のための8つの力
課題発見力・情報収集力・読解力・執筆力など、研究遂行に重要な能力が網羅的にまとめられています。
・アカデミック・スキルズ(第3版) ――大学生のための知的技法入門
文理問わず大学生の学習の指南書として一般的に読まれている本です。最終章で論文を書くことについて述べられています。
・INFORMATION – YUTAKA MATSUO
松尾教授による記事です。良い研究を行い、論文を書くために重要なことが簡潔にまとめられています。
・駒場アカデミック・ライティング・センター
こちらも文理問わず、レポートや論文を書くにあたり注意しなければならないことを伝えています。「ミニ講座シリーズ」を一度さらっておくと良いでしょう。
読むすべての論文を細部まで理解する必要はありませんが、要点を自分なりに書いてまとめておくことは重要です。読みきれなかった論文を関連度で紐づけたり、あとで探しやすくするために、ZoteroやPaperpileといった文献管理ソフトもぜひ活用しましょう。
再現実装(学習想定時間:40時間)
既存研究の論文や解説記事を読み、それを実装に落とす練習をしましょう。すでにやりたい研究がある場合は領域の代表的な論文や自身の研究のベースラインとしたい論文を選ぶと良いですが、SNSで話題のものや、Deep Learning MonitorやPapers with Codeで上位のものを選ぶのも良いでしょう。
最近の論文はソースコードもGitHubで公開している場合が多いので参考にして良いですが、可能ならばデータセット・モデル・訓練や可視化スクリプトなどすべて自分で一から実装してみましょう。論文に記載されたモデル評価指標の再現が取れたら、このセクションは完了です。その上で別のデータセットに適用してみたり、モデルに改変を行い性能向上させてみたりするのも良いでしょう。PyTorchを使用する場合は、多くの重要なモデルを実装に落としているlucidrainsのGitHubが読みやすく参考になります。
特定の領域に関する最新の内容を身につけたい場合は、松尾・岩澤研究室主催のDeep Learning応用講座から関心のある領域の講義を受講することをお勧めします。これにより、各分野の基礎から応用までを体系的に学び、研究の幅を広げることができます。また、受講生限定の講義資料や実装例を通じて、学んだ内容を実践に結びつけやすくなります。
松尾・岩澤研究室主催のDeep Learning応用講座
最後に、松尾・岩澤研究室主催のDeep Learning輪読会などに参加することをお勧めします。これは松尾・岩澤研究室主催の講義を受講した人ならば誰でも参加可能の輪読会で、最新の内容をキャッチアップすることができます。
データサイエンティスト
データサイエンス(学習想定時間:30時間)
レベル1では、基本的なデータの取り扱い方について学びました。本セクションでは、様々なデータセットやタスクを用いて、実際にデータ分析や機械学習の手法を試してみましょう。特に、Kaggleへの参加をおすすめします。
Kaggleは、世界中のデータサイエンティストやエンジニアが集まる、データ分析・機械学習の競技プラットフォームです。ここでは企業や研究者が提供するデータセットを用いて、参加者が様々な課題(コンペティション)に取り組みます。
初心者から上級者まで参加できるコンペティションが豊富に用意されており、ランキングやディスカッションを通じて他の参加者とスキルを競い合ったり、学び合ったりすることができます。Kaggleで実践的な経験を積むことは、データサイエンスのスキルを向上させる上で非常に効果的です。そのために、まずは以下の解説書などを参考にしてみましょう。
・実践Data Scienceシリーズ PythonではじめるKaggleスタートブック
データサイエンスの代表的なコンペティションであるKaggleの入門方法とともに、特徴量エンジニアリングなどをはじめとしたデータサイエンスに重要な事項をわかりやすい形でまとめています。
上記のKaggle解説書を参考に、本セクションのレベルの第一歩としてKaggleの入門用コンペティション「Titanic – Machine Learning from Disaster」に参加してみましょう。このコンペティションは、機械学習初心者向けに設計されており、乗客のデータを用いて「タイタニック号の生存者を予測する」というシンプルな課題を解くものです。KaggleのCodeタブを利用すれば、他の参加者のコード(特に高評価のコード)やその解説を読むことができ、効率的にデータの扱い方やモデル構築の方法を学べます。
「Titanic」のコンペティションを通じて基本的な操作に慣れたら、次はもう少し難易度の高いコンペティションに挑戦してみましょう。
エンジニア
コンピュータサイエンス(学習想定時間:40時間)
研究者やデータサイエンティストと対比して、特にエンジニアはアプリケーションの作成など、効率的に動作するプログラムを書けることが重要な場面があります。そのために、アルゴリズムやデータ構造の基礎を理解しましょう。以下の教材がおすすめです。
・問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本
図が多く初歩的な内容から扱っているため、初学者におすすめの本です。
・問題解決力を鍛える!アルゴリズムとデータ構造
初学者の場合インターネットで調べるなどしつつ読む場面が出てくるかと思われますが、より発展的な内容までわかりやすく解説されている本です。
・アルゴリズム実技検定 公式テキスト[エントリー~中級編]
競技プログラミングを運営するAtCoderが主催する、アルゴリズム実技検定(PAST)の公式テキストです。Pythonの基礎から解説しているので、前段階のプログラミングの勉強を同時にカバーすることもできます。ぜひ競技プログラミングにも参加し手を動かしてみましょう。本ロードマップのレベル1としては、AtCoderの場合はBeginner Contestの中盤〜終盤の問題を安定して解ければ十分だと思います。
アプリ開発(学習想定時間:20時間)
画像生成やLLM、物体検出など、アプリケーションのレベルにある深層学習技術やそのアプリケーション形態は様々あり、企業によっても独自のプロジェクトテンプレートなどをもって開発を行っていると思います。ここでは、個人で実際にアプリケーションを作って経験できる具体例をいくつか紹介します。あくまで例なので、ぜひご自分で作りたいものを見つけて作ってみてください。また、以下のような例については手順を追って解説しているYouTube動画やQiita記事があったりしますので、手の付け方がわからない方は活用してみてください。
・Ultralytics提供のモデルを用い、PCのwebカメラでリアルタイムに物体や顔を認識するアプリケーションを作成する。
Ultralyticsは、オープンソースで物体検出モデルYOLOなどを提供する企業です。GitHubページやdocsを見ることでモデルの利用方法がわかるので、OpenCVなどでPCのwebカメラから動画を取得し、リアルタイムで物体や顔を認識・表示するアプリケーションを作成してみましょう。
・Slack Bolt for PythonとOpenAI APIを用い、Slack上で動くチャットボットを作成する。
・Amazon Bedrockを用いた画像生成、チャットボットなどのWebアプリケーション作成サンプル [1 , 2]
BedrockはAWSからサーバーレスで様々なLLMや生成AIを利用できるAPIです。このチュートリアルでは、LangChainによるLLMの拡張や、webアプリケーションのフロントエンドとして手軽に使うことができるStreamlitなども追加で経験することができます。
アプリケーションを作成する際は、モデルのライセンスに注意しましょう。個人で利用する分には基本的に問題ありませんが、例えば上記のUltralyticsはAGPL-3.0ライセンスであり、商用利用する場合はアプリケーションのソースコードを公開し、それ自体もAGPLライセンスとする義務が生じます。ライセンスについては、利用を検討しているモデルのGitHubのLicenseタブを注意深く読むか、Open Source Initiativeなどを参照してください。
ビジネス
問題設定(学習想定時間:20時間)
・データで話す組織
2章(現状把握とデジタル化)や4章(AI・データサイエンスの応用)を中心に読めば、業務におけるデータ活用の流れや問題設定について把握できます。
・施策デザインのための機械学習入門
機械学習が実環境で効力を発揮するための正しい問題設定の仕方や、データ取得のバイアスを考慮することなどに焦点を当てて解説しています。対象読者は機械学習エンジニア・データサイエンティストですが、重要な部分をピックアップして読むと良いでしょう。
アプリ開発(学習想定時間:20時間)
機械学習・深層学習のビジネス面を考える上で一からモデルの実装をできる必要はありませんが、問題設定がなされた上で利用すべきモデルを適切に判断できることは重要です。また、場合によっては多少の実装をもって自身で仮説検証できると良いでしょう。検討しているモデル・手法が課題を実際に解決できそうなものかどうか、手元で動かして確かめられるようになりましょう。
・Hugging Face tutorials
Hugging Faceにある学習済みモデルとデータセットをロードして利用するコーディングを学びます。Colab Notebookが用意されているので、環境構築をすることなく動作させることができます。一方で、レベル0でも紹介したHugging Face Spacesを利用すれば、数サンプル程度でモデルを動かして性能を定性的に確かめることができるでしょう。時間がない方はそちらをチェックしてみてください。
・Scikit-learn algorithm cheat sheet
Scikit-learnはPythonでベーシックな機械学習を行う場合に使うこととなるライブラリの一つです。このチートシートでは、データサンプル数や目的によって利用すべき手法をガイドしています。各手法はその解説やAPIのページに繋がっており、実際に利用しやすくなっています。
より深く理論と実装を理解しレベルアップしたい方は、データサイエンティストのレベル2の参照を推奨します。
研究者
論文を読むことに慣れ、再現実装をいくつか経験したころには、サーベイをしながら新たな研究のアイディアを練ることもできるでしょう。ベースラインとしたい論文の著者実装や自身による再現実装などを元に初期的な検証を行ったあとは、目標とする学会を定めましょう。はじめは国内のものをおすすめします(参考)。学会にはそれぞれサブミットするための論文テンプレート(スタイルファイル)が存在するので、それを学会webページなどからダウンロードして執筆を開始します(論文執筆ツールとしては、Overleafが最も一般的に使われています)。
研究内容に十分な自信がない場合でも、現状の研究内容を論文としてまとめることを意識しましょう。これを続けることで、質の高い論文を書けるようになります。次のステップとして、国際会議を目指しましょう(参考)。
データサイエンティスト
レベル2までの勉強を済ませるころには、興味のある問題やデータに取り組むためにはどう調査したら良いのか、どういった組織にコンタクトを取れば良いのかなど、ある程度わかると思います。その意味でも、レベル2までで最も養っておきたい能力は情報収集力と言えるでしょう。例えば、興味のある情報をよく発信しているアカウントをSNSでフォローしたり、そういったブログを見つけておきましょう。
データサイエンティストのエンジニアやAI研究者との違いを挙げるとすれば、扱うデータのドメイン知識を持っていることだと言えます。生体信号や金融など、固有のドメイン知識が有効となるデータは様々あります。適切なドメイン知識を持っていることで、必ずしも最新の深層モデルを利用する必要がないことがわかったり、そのデータに有効な特徴量やモデルのアーキテクチャ・ハイパーパラメータなどを推測したりできます。初めての分野のデータを扱うのであれば、webで断片的な知識を得るよりは、その分野の書籍に一度目を通しておくことを意識しましょう。
エンジニア
エンジニアは多くの場合、他のエンジニアと共同して開発を行います。そのため、コード管理システムGitを理解しておくことが他の職業と比較して重要になります。また、他エンジニア(や自分)がコードを読みやすくするためのtyping、docstringやformatting、さらに想定通りにコードが動くことを確認するためのテスト、自作コードのパッケージ化など、必要となってくる細かな知識が多くあります。一方で、そういった知識セットは個人で勉強している分には気にする必要性がなかったり、企業ごとに異なっていたりします。そのため、自分の技術力にまだ自信がなくても、積極的にインターンシップやジョブにアプライしていきましょう。またその際に、レベル2で作ったアプリをGitHub上で公開しておくことが助けになるかもしれません。
ビジネス
ビジネスで人工知能や深層学習を活用していくには、自分が考えているビジネスの業務フローを明確にして、そのフローの中のどこに人工知能や深層学習を活用することで、誰にどんなメリットがあるのかを考えることが重要になります。また、技術がどんどん進展していくことで、いままでは人工知能や深層学習を活用することができなかった内容でも、ある時から活用できるようになることもあります。そのため、最新のAI技術について把握するための情報収集が重要になります。興味のある情報をよく発信しているアカウントをSNSでフォローしたり、クラウド事業者(GoogleやAmazon、Microsoftなど)のAI活用事例を紹介しているセミナー、情報処理学会や人工知能学会などの国内学会主催のセミナーやウェビナー(参考1, 2, 3)などで情報収集し、自分のビジネスに応用できるところを考えるのもよいでしょう。
最後に、特にベンチャー企業において他社との契約の中でデータを扱う場合が多いでしょう。協業も考慮した法律的なデータの扱い方について、経済産業省発表のガイドラインに目を通すことをおすすめします。