こんにちは、はやたす(@hayatasuuu )です。
機械学習を学びたいんだけど、どんな教材をどの順番で勉強すれば良いんだろう…
そんな悩みを抱えていませんか?
機械学習って勉強するべき周辺知識が多いし、何から手をつけたら良いのか分からないですよね。
でも実は、機械学習の学習手順はめちゃくちゃシンプルなんですよ…
というわけで、本記事では「機械学習の独学完全ロードマップ」を紹介していきます。
「何をどの手順で学習していけば良いか」具体的に書いているので、この記事を読めば、初学者でも迷うことなく機械学習を勉強できるようになりますよ!
※余談:以前に紹介したデータサイエンスの独学ロードマップは、そのとおりに学習したら「大学1年生にして、インターンに参加できた」という報告をいただけました。
ありがとうございます…!!😭
— 有明@DSインターン生 (@Aria3712001) November 7, 2020
実は、はやたすさんのデータサイエンス独学完全ロードマップを参考にしていました!!!
progateもUdemyもやりましたし、統計検定の2級も取りました!最近は東大DS講座を進めていたところなのですが、今回インターンが決まり、実践の場ができてとっても嬉しいです!!!
この記事で紹介する独学ロードマップも、仕事で活かせるレベルまで到達できるようになります。
この機械学習の独学ロードマップで目指す目標
この独学ロードマップでは、以下の状態を目標にしていきます。
- Pythonを使った、機械学習モデルの実装ができる
- ネットで検索すれば、新しい実装にも対応できる
- AIエンジニアになるための、基礎体力が身に付いている
上記の内容を、独学でも挫折することなく学べるようにしました。
そもそも「機械学習を習得したい」と思ったら、以下のような知識が必要になります。
- Pythonの基礎知識
- 機械学習に関する用語の理解
- Python機械学習ライブラリの取り扱い
- 数学の知識
とても多いですよね。これでは勉強する順番を迷ってしまうのも当然です。
でもこの独学ロードマップでは、以下のように適切な順番で学べるようにしました。
- Pythonの基礎知識 → STEP①で習得
- 機械学習に関する用語の理解 → STEP②で習得
- Python機械学習ライブラリの取り扱い → STEP③〜⑤、STEP⑧で習得
- 数学の知識 → STEP⑥で習得
機械学習を勉強する目的は色々あると思いますが、教養として学びたい人からエンジニアになりたい人まで、共通で使えるロードマップになっています。
※エンジニア転職を目指している場合は、さらに学習すべきことまで書いておきました。
機械学習を学びたいすべての人にとって、最初の一歩になるはずです。
STEP① : Pythonの基礎を学ぶ
「機械学習を習得したい」と思ったら、まずはじめにプログラミングを学ぶ必要があります。
機械学習を実装できるプログラミング言語はたくさんありますが、2022年の時点だとPythonを勉強すれば問題ないです。
Pythonの基礎を学習する方法も、これまたたくさんあります。ただ僕の基本方針として、本を使った学習はおすすめしていません。
※本を使った学習をおすすめしない理由は、挫折する確率が高くなるからです。書き写しているのにエラーが発生することが多々あります。
Pythonを習得するなら、以下2つのいずれかを使っていきましょう。
それぞれの特徴を紹介していきます。
Pythonの学習教材① : Progate
Progateは、プログラミング初心者に人気のサービスです。
プログラミング学習の挫折ポイント1つ目は”環境構築”なのですが、Progateを使えば環境構築する必要がありません。
インターネットだけあればPythonを学習できてしまう素晴らしいサービスなので、積極的に使っていきましょう。
Progateの学習は、2週間を目安にするのが良いです。
- 1週目 : Pythonの全5レッスン(1回目)
- 2週目 : Pythonの全5レッスン(2回目)
プログラミング学習はダラダラやるより、短期集中で学習の方が確実に伸びます。
とはいえ、一度で完璧に理解するのは難しいので、回数を重ねて反復学習するようにしましょう。
Pythonの学習教材② : YouTube
最近だとYouTubeを使ってPythonを学習できます。
手前味噌ですが、僕自身YouTubeでPythonの講座を紹介しています。
»参考 : はやたす / Pythonエンジニア – YouTube
YouTubeだから無料で使えるし、動きを確認できるから挫折しづらいです。
いきなり課金するのも抵抗があると思うので、まずは無料で学習してみるのが良いかなと思いますね!
機械学習エンジニア転職への目指している場合
機械学習エンジニアへの転職を目指しているなら、ProgateやYouTubeの学習だけだと物足りないのが事実です。
最終的な目標が「転職」にあるなら、追加でUdemy講座の受講をおすすめします。
参考:現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
この講座の追加受講をおすすめする理由は、以下のとおりです。
- コーディングスタイルまで解説されている
- 実務で必要になるPython文法の基礎を学べる
- 初心者〜中級者まで使えるので無駄がない
ざっくりいえば、機械学習エンジニアとして実務をこなしていくのに必要な基礎体力が身に付くってことです。
僕自身、フリーランスになった今でも、この講座を使って復習しています。それくらい汎用性が高い講座になっているので、買っておいて損はないと思いますね!
STEP② : 機械学習の基礎を学ぶ【コーディングなし】
Pythonの基礎を学んだら、次に機械学習の基礎を学んでいきます。
ただ、このフェーズで勉強していく「機械学習の基礎」というのは、以下のような内容です。
- 機械学習で、何ができるのか?
- 機械学習には、どんな種類があるのか?
- ディープラーニングとは何か?
- どんな機械学習モデルがあるのか?
このような全体を掴める内容を学習していきます。その上で、役に立つ書籍が2冊あります。
書籍① : 人工知能は人間を超えるか
人工知能の現状と、今後の展望が分かる書籍です。
この本を書いているのは、日本における人工知能の第一人者である「松尾豊先生」です。
ネットを見れば人工知能に関する情報はたくさん出てきますが、やはり専門家が解説している書籍が一番信頼できるかなと。
読みもの感覚で人工知能について理解できるので、まずはこの本から読んでみることをおすすめします。
書籍② : G検定 公式テキスト
人工知能・機械学習で登場する用語が分かりやすくまとまっている書籍です。
機械学習を勉強していると「分類・回帰」とか「アンサンブル学習」など、色々な用語が登場してきます。
こういった紛らわしい用語を、これ一冊でカバーできます。
なお、この本は「G検定」という資格試験の公式テキストですが、資格試験を受験する必要ないです。
シンプルに機械学習を学ぶとき役に立つので、これ一冊をとりあえず読んでおきましょう!
STEP③ : 機械学習における「一連の流れ」を掴む
機械学習の用語をおさえたら、いよいよPythonを使った実装を学んでいきます。
機械学習は、どんなものを予測するとしても、同じステップを踏んで実装を進めていきます。
文章を翻訳するときも、明日の株価を予測するときも、同じ流れで実装するってことですね!
- 課題の特定 : 予測したいものを決める
- データの準備 : 予測するための使うデータを集める
- データの理解 : どんなデータが入っているのか確認する
- データの加工 : 欠けているデータを補完または削除する
- データの分割 : 学習用とテスト用のデータに分割する
- モデルの作成 : 機械学習モデルの作成(花形の部分です)
- モデルの評価 : 良い精度のモデルが作成できたか確認する
このような手順で、機械学習の実装を進めていきます。
他の記事とか書籍を見ると、もう少し大雑把だったり詳細だったりしますが、だいたい同じ流れのはずです。
まずは機械学習アルゴリズムを深追いするのではなく、これら一連の流れをPythonを使って実装していきましょう。
このステップでおすすめの学習教材は2つあります。
おすすめ教材① : YouTube(無料)
僕のYouTubeチャンネルで紹介しているデータサイエンス入門を見れば、機械学習における一連の流れを把握できます。
この動画では”データサイエンス”という言葉を使っており、機械学習との違いが気になるかもしれません。
データサイエンスは「データ分析と機械学習を使って課題解決すること」です。
ゆえに、データサイエンス入門を見ておけば「機械学習における一連の流れを学べる」ということになります。
YouTubeで紹介しているので、空き時間を使ってスマホに入っているアプリで確認できるのも嬉しいですね!
おすすめ教材② : Udemy(有料)
もし「有料でも良いから、この人のYouTubeは見たくない!」という場合には、Udemy講座「【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門」がおすすめです。
≫参考 : 【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門
僕のYouTube動画と違うのは、データ分析を重点的に紹介している部分です。
反対に僕のYouTube動画は、データサイエンスとか機械学習の一連の流れを1〜2時間で把握することを目的にしています。
なので「時間をしっかり確保できて、データ分析もしっかり学びたい」なら、こちらのUdemy講座を受講すると良いです。
STEP④ : 機械学習アルゴリズムの実装を学ぶ
ここまで学習すると、線形回帰や決定木のような、基本的な機械学習モデルが分かるようになります。
ただ、2〜3コだけだと、武器が少ないように感じますよね。機械学習モデルは、全部で100種類は余裕に超えてきます。
すべての機械学習モデルを習得するのは物理的に難しいですが、このステップでは基本的なアルゴリズムをおさえておきましょう。
以下の教材がオススメです。
»参考 : Pythonで機械学習:scikit-learnで学ぶ識別入門
僕も2019年5月に購入していますが、Pythonを使った機械学習の実装を学ぶのに、非常に役立ちました。
教師あり学習・教師なし学習だけでなく、Grid Searchなどの機械学習を実装するときに必要な知識を、この講座ひとつで学べます。
この講座からスタートすると少し難しいですが、前のステップで機械学習における一連の流れを習得しているので、挫折することなく独学できるはずです。
なお少し余談ですが、機械学習の実装で使うライブラリは、主に以下の5つあります。
- Scikit-learn : 機械学習全般の実装で使える
- TensorFlow : ディープラーニングの実装で使える
- PyTorch : ディープラーニングの実装で使える
- XGBoost, LightGBM : XGBoostとLightGBMの実装で使える
- PyCaret : チート(笑)
XGBoostとLightGBMは双子みたいなものなので、ひとまとまりにしました。
これらのうち、最もよく使うのがscikit-learnです。
要するに、このステップでは機械学習の実装で最も使うライブラリを習得できたということになります。
STEP⑤ : 機械学習で必要になる「4つの周辺ライブラリ」を習得する
Scikit-learnの扱いに慣れて、機械学習モデルの実装ができるようになったら、周辺ライブラリを習得していきましょう。
具体的にいうと、以下の4つになります。
- Numpy : 数値計算で使うライブラリ
- Pandas : データを扱いやすくするライブラリ
- Matplotlib : グラフを作成するためのライブラリ
- Seaborn : グラフをキレイに、かつ簡潔に描くためのライブラリ
上記のライブラリが、機械学習を実装していく上で必要です。
特に、機械学習を学びたいと考えているなら、NumpyとPandasが重要になります。
あとでディープラーニングを実装するとき、テンソル(tensor)という概念が登場するのですが、これを理解するのにNumpyが役立ちます。
周辺ライブラリを学ぶなら、以下の書籍がオススメです。
この本は、Pandasの生みの親が執筆しており、その日本語版ということになります。
ページ数が多く少し分厚いですが、機械学習を学ぶのであれば持っておいて損のない書籍です。
なお「機械学習するのに、データ分析の本を読むんですか…」と思われるかもしれません。
でも、STEP3で機械学習の一連の流れを学習した皆さんなら、機械学習の実装をするよりも、手前のデータ分析に時間がかかることが分かったはず。
データ分析をしっかりできないと、適切な機械学習モデルを作成できません。結果として、言い方が悪いですがゴミを作成することになってしまいます。
少し遠回りに見えますが、データ分析の本を使って機械学習の周辺ライブラリをおさえておきましょう。
ちなみに、ここまで学習すると、ディープラーニング以外の機械学習モデルの実装は、しっかり習得できている状態になっています。
なので、自身を持っていただいて大丈夫です(`・ω・´)!
STEP⑥ : 数学の基礎知識と機械学習の理論を学ぶ
あと学ぶべきことは、ディープラーニングですね。
一般的な機械学習モデルと違って、ディープラーニングを理解するのは、以下のステップが必要になります。
- 数学の基礎知識を身につける
- ディープラーニングの理論を勉強する
- ディープラーニングの実装を勉強する
つまり、まず理論を学んで、次に実装を習得する必要があります。
ディープラーニングの実装自体はTensorFlowを使えば習得できます。でも理論が分からないと、いったい何をやっているのか理解不能です。
モデルを理解できないということは、良い精度のモデルを作成することができません。
というわけで、まずはディープラーニングを理解するのに必要な「数学の基礎」を勉強していきましょう。
機械学習で必要になる数学の知識は、以下のとおりです。
- 微分・積分
- 線形代数(ベクトル・行列)
- 確率・統計
「勉強すること多いな…」と思われるかもしれないですが、使うべき教材は以下だけで十分です。
これ一冊で、数学の基礎知識だけでなく、機械学習の理論まで学べます。
これから機械学習を学ぶ人向けに書かれている本なので、数学がはじめてだとしても、安心して学習できるのがポイントです。
僕は数学科出身だから分かりますが、数学はあんまり深入りすると間違えなく挫折します。
そういう意味で、この本で解説されている数学は「ちょうど良いボリューム感」になっています。
さらに、この書籍では数学だけでなく、今まで学んでいた機械学習モデルの理論まで解説されています。
Pythonの基礎文法は重複してしまいますが、他の部分は間違いなく役に立つ内容です!
STEP⑦ : ディープラーニングの理論を勉強する
このステップからは、ディープラーニングを学んでいきます。
ディープラーニングは、AI・機械学習がブームになったきっかけで、それだけ注目されている技術です。
画像認識とかテキスト処理(自然言語処理)に活かせるAIを学びたいと思ったら、ぜひディープラーニングに入門しましょう!
途中でも書きましたが、ディープラーニングの実装自体は、TensorFlowを使うことで簡単に実装できます。
ただ、他の機械学習モデル違って、ディープラーニングは理論が分かっていないと自分で応用できません。
TensorFlowを使った実装を学び始める前に、まずは以下の書籍で理論面を固めていきましょう。
「ディープラーニングでおすすめの書籍はありますか…?」と聞いたら、間違いなく推奨される本です。
ディープラーニングの理論面は、これ以上に分かりやすい書籍がありません。
2017年に発売された書籍ですが、今でも根幹となる知識は変わりません。
Python・TensorFlowを使った実装を学ぶ前に、まずはこちらの書籍で理論をおさえておきましょう!
ただし、こちらの本で書かれているコードは、TensorFlow1系で古い実装になっていて実行できません。
最新のTensorFlowは2系になっており、だいぶ書き方が違います。
理論を理解するための本だと割り切って学習していきましょう。
STEP⑧ : ディープラーニングも含めた機械学習の実装を学ぶ
ディープラーニングの理論を学んだら、あとは実装を学ぶのみです。
ディープラーニングの実装では、主に以下2つのフレームワークが使われます。
- TensorFlow : 初心者向き
- PyTorch : 中級者・研究者向き
2つの違いは、上記のとおり。
大学院への進学を考えていないなら、TensorFlowを学んでおけば問題ないです。
TensorFlowに内包されているKerasを使うことで、初心者でも簡単にディープラーニングを実装できます。
逆に、PyTorchだと少し習得する難易度が上がります。
というわけで、以下の書籍でTensorFlowを使った実装を学びましょう。
最新版のTensorFlow2.xに対応していて、なおかつ内容も分かりやすい書籍です。
「TensorFlow 本」とかで検索すると古い本ばかり紹介されているので、十分に注意してから本は購入するようにしましょう。
僕が今回おすすめしている書籍は、しっかり最新版のTensorFlow2.xで書かれているので、安心して勉強できます。
※なお、この書籍にはこれまで学習した内容と重複する部分が出てきます。ただ、TensorFlow単体で紹介されている書籍が圧倒的に少ないので、この本を使って学習することをおすすめします。
STEP⑨ : インターン・転職を視野にできるレベルです
ここまで学習すると、十分にインターンや転職を狙っていけるレベルです。
教養として学んでいる人は、十分すぎるくらいに機械学習をマスターできています。
エンジニア転職を目指している人は、少しずつ会社を見ながら、ポートフォリオの作成を進めていきましょう。
具体的にいうと、機械学習を使ったアプリケーションを作成するのが良いですね。
Kaggleという、機械学習モデルの精度を競い合うコンペも、ポートフォリオの選択肢になります。良い精度のモデルを作成できるとメダルを取得でき、それが実績になる感じです。
なお、Kaggleの代わりにSIGNATEでも良いと思います。SIGNATEはKaggleの日本語版です。
最近だと転職サービスにも力を入れているので、日系企業ならSIGNATEの利用もありかなと。
»参考 : TOP | SIGNATE – Data Science Competition
ポートフォリオ作成は、求人を見て決めましょう
ここまで読むと「アプリを作るのと、Kaggleに挑戦するの、どっちが良いんだろう…」と感じるはず。
これに関しては、以下の転職エージェントで実際の求人を見るのが良いと思います。
- リクルートエージェント : 業界No.1 / とりあえず登録しておけば安心
- doda(デューダ) : 有名なエージェント / AI系の求人が多い
- Wantedly(ウォンデッドリー) : スタートアップ多め
業務委託先のデータサイエンティストの人は、doda(デューダ)を使って年収を120万円ほど上げていました。
1つしか登録しないと比較できずに良い求人を紹介してもらえるか分かりません。
転職で失敗しないためにも、2〜3つほど登録しておきましょう。
ここまでしっかり独学できた皆さんなら、間違えなくインターン参加やエンジニア転職できるはずです。
自信を持って、キャリアチェンジに挑戦していきましょう(`・ω・´)!
Good luck!!