これから機械学習の勉強したいのですが、仕事も忙しいし、何から始めれば良いのかわかりません。
独学での機械学習の勉強方法や手順がわかりません。具体的な方法を教えてください。
本記事の対象読者
- AI・機械学習に興味のある方
- AI・機械学習の学習の進め方が分からない方
- AI・機械学習エンジニアになりたいけれど、何から手を付けて良いのか分からない方
- AI・機械学習を勉強するのに独学かプログラミングスクールに通うか悩んでいる方
では、本記事の内容です。
本記事の内容:Pythonから機械学習の学習をするまでのロードマップ
独学でPythonの基礎から機械学習を学習する「5STEP」
- STEP1:目標設定:機械学習で「何をしたい(作りたい)か」イメージする
- STEP2:環境構築:プラットフォーム(環境設定)を構築する
- STEP3:概念理解 :機械学習の大まかなイメージをつかむ
- STEP4:学習手順:サイト、オンライン講座、書籍を駆使する
- STEP5:実践演習:身近なテーマ(Kaggleなど)で実践してみる
- STEP6:データ収集:SQL、スクレイピング、等の技術も身につける
- STEP7:アウトプット:身近な人やQiita、blogなどでアウトプットを行う
- STEP8:専門領域の確立:今まで働いてきた領域の専門分野の中で課題を見つける
自己紹介
この記事を書いている私は医師8年目の社会人で医学系大学院に通っており、大学院でAIや深層学習・機械学習に関する研究を行っています。
現在は周りの方々の協力もあり、研究に専念することができましたが、仕事しながらプログラミング(Python)と機械学習の勉強を一から行うのは、正直なかなか難しいです。
現在社会人の中でも勤務しながらAI・機械学習の勉強をされている方がいると思います。
しかし何から始めれば良いのか途方に暮れて居る方も多いのではないでしょうか。
結論から言いますと、Pythonから機械学習の導入部分までを独学で学習することは可能です。
それは自身が約半年間である程度機械学習を独学で習得することができたからです。(ある程度独学で習得後にプログラミングスクールに通い、更に知識は増えました。)
しかし、それから転職し実際に仕事にするとなると話はまた別です。
とはいえ、自身の経験から「Python・機械学習」をどの様に勉強すれば独学で効率よく学習できるのかをまとめてみました。
また、機械学習を学習する上で、有用な情報サイトのリンクも紹介させて頂きます。
この記事を読んで頂く前のメッセージ
- 機械学習の完全初心者向け、かつ独学で勉強したい方への記事なっています。
- Python、機械学習をある程度理解している方は飛ばしてください。
- この記事では機械学習の初歩的な内容までの理解に留めており、AIの深い内容(CNN等)に関する学習方法については記載していません。(AI学習のロードマップは後日作成予定です。)
この記事では、「実際に機械学習を行うにあたっての目標設定、学習方法、実践編」まで1から解説します。
そのため、この記事を読むことで一通り「独学で機械学習の基礎的内容ができるようになる」ことを目標としています。
AI・機械学習の勉強をできる環境を作ってくださった周りの方に感謝しつつ、これから忙しい中でも機械学習を勉強したいという方に向けて記事を書きました。
色々と試行錯誤して自分が得た知識を、「時間がなくて独学で機械学習の勉強をしたい」という方に全て公開します。
また、僕自身も現在発展途上ですので、随時有益だなと思った情報は追記していきます。
それではさっそく、見ていきましょう。
① 目標設定:機械学習を利用して「何がしたいのか」を決める。
独学で機械学習の勉強はハード【目標を立て直し、先輩の道標を参考にする】
» 経済産業省 IT人材の最新動向と将来推計に関する調査結果
この統計を見ても一目瞭然ですが、現在AIなど先端IT技術を必要とする人材は圧倒的に不足しており、仕事は引く手数多です。
機械学習を勉強する目標に対してマインドセットを行う
昨今では「プログラミングで自由な生活が得られる!会社なんかにとらわれずにフリーランスになる!」こんな風潮がありますね。
このノリで機械学習を1から独学で勉強するとなると、ただでさえ難しい上に最初に想像していたイメージと異なり、挫折するリスクが大きくなります。
元来、IT企業が発展してきた歴史を紐解けば「こんな便利なものがあれば良いな」「こんなソフトがあれば人に約立つかな」というマインドから現在のITの発展はスタートしています。
プログラミングだけでも7割の方が挫折すると言われています。数学的知識や統計学的知識を必要とするAIであれば尚更挫折率も上がります。さらに独学となるとリスク倍増です。
そこで今一度機械学習やAIの勉強を始める前にマインドセットしましょう。
「人材不足」「高収入」があるのは分かり切ってることなので、目標設定がしっかりしていると挫折もしにくいですし、何より楽しいので続きます。
「AIでこの様な仕事がしたい」「医療にAIを使って○○なアプリケーションを作りたい」という目標もgoodです。
自分がやりたいことの目標設定が最大の挫折予防です。
今のうちに目標設定をして礎石をしっかり作っておきましょう。
独学で機械学習エンジニアに転職された先輩の道標を知る
また、今までAI・機械学習はおろかプログラミングも未経験ではあるものの、独学でAI・機械学習を勉強しようと考えている方もいると思います。
その様な方に向けて、実際にプログラミングの知識が0の状態からAI・機械学習エンジニアの教育ベンチャ企業であるキカガクさんに転職された木村恵輔さんに「元ラグビー選手の未経験者が独学でAIエンジニアとして転職した方法」でインタビューを行っています。
その他にも、元々ハード系開発エンジニアではありましたが、未経験の状態から独学で学習しAI・機械学習に転職されたhiromu shojiさんにも「AIエンジニアになるために未経験から独学で転職するために実施したこと」のインタビューを行いました。
AI、機械学習エンジニアへの転職までの独学での学習方法を詳細にお話しして下さっており、非常に参考になります。
先人の独学での学習方法を知る事も一つの参考にして頂ければと思います。
② 環境構築:AI、機械学習に必要なプラットフォームを揃える。
プラットフォームの環境構築を行う。
プラットフォームのアカウント登録を行いましょう。
具体的には以下の項目の環境設定を行えばok。
- Google Cloud Platformの登録
- Azureの登録
- Slackアプリの登録
※ AWS Cloud9、Google Cloud Platform、Azureは、アプリケーションの開発やデータベースなどをクラウド環境で利用できるサービス(クラウドインフラ)です。
ブラウザ上で動くため、PCに依存することなく開発環境を準備することができます。
クラウドインフラは会社によってプラットフォームが異なっています。
といった感じで、好みによりますが、このうちどれかを登録しておけばokです。
個人的にはAWSのcloud9とGoogle Cloud Platformが好きで2つとも登録しています。
各々のクラウドインフラを整備するための参考リンクは以下をどうぞ。
③ 概念理解:機械学習のイメージをつかむ
Python、機械学習の独学のために効率的な学習方法は?
まず、機械学習の概要を大まかに掴みましょう。
AI(人工知能)、機械学習、ディープラーニングの違いについて説明をする事は出来るでしょうか。
まずは概要を掴めないことには「自分が今何を学習しているのか」が分かりません。
もしAI(人工知能)、機械学習、ディープラーニングの違いを説明できないという方は以下の記事を読んでください。
続きを見る
【初心者向け】人工知能、機械学習、ディープラーニングの違いとは
その上で、次のステップに移りましょう。
Python、機械学習のために必要な学習ステップは以下の4つです。
STEP④の学習手順は次のSTEPの項で解説します。まずはざっくりおさえましょう。
Python、機械学習の独学のための学習手順
- その①:人工知能の概論を学ぶ
- その②:pythonのプログラミングを学ぶ
- その③:機械学習のプログラミングのコードを実際に書いてみる
- その④:コードでErrorが出たらググる→STEP2に戻る
このような感じです。このイメージを持ちつつ、STEP④の学習手順に移りましょう。
機械学習に必要な知識は?
機械学習の必要な知識はこれだけの内容があります。
結構多い、、と思われるかもしれませんが、相手(敵?)を知る事は大事なので、勉強するべき事をおさえておきましょう。
- ⒈プログラミングスキル
- ⒉数学的知識:微分、偏微分、線形代数、線形代数、行列
- ⒊統計的知識: 標準偏差はもとより単回帰分析、重回帰分析など
- ⒋機械学習の基礎知識:STEP④の学習手順で確認しましょう。
この4つの知識がPython、機械学習には必要となります。
心配されなくても、この記事のロードマップ通りに学習すれば普通に修得可能です。
機械学習で使用する言語は?
入門者にはPythonがダントツでおすすめです。
C系の言語(C##, Object-C)やJava, R などを使用することもありますが、Pythonが最も学習コストが低いです。
AI・機械学習を勉強するのであれば可能なら、Pythonを使用した勉強方法に特化させるのが良いでしょう。
④ 学習手順:オンライン講座、書籍を駆使して独学
Python〜機械学習を独学するための具体的な学習手順
さて、いよいよ本題です。
具体的な手順を見ていきましょう。
Python〜機械学習の学習手順
- ① サイトを活用してPython・機械学習をつかむ【下積み】
- ② Python、機械学習に関する書籍と動画で学習する
- ③ Python、機械学習に関するオンライン講座を活用する
- 【補足】Python、機械学習のライブラリの紹介
※ ①と②は平行して進めてokです。③も交えても良いかと思います。
この流れで、2ヶ月やればまず簡単な機械学習の習得までは大丈夫です。
それでは、一つ一つの学習フェーズについてみていきましょう。
1. サイトを活用したPython・機械学習の独学勉強法【下積み】
サイトを活用した学習方法は以下2つにまとめています。
サイトを活用した学習方法
- 当サイトを利用する
- Python・機械学習に有用なサイトを利用する
当サイトを利用してPython・機械学習の学習する
当サイトでPythonの基本事項〜機械学習までの解説記事を網羅しています。
参考書に載っているような内容まで踏み込んで書いていますので、参考にしてください。当サイト内のPython・機械学習に関わる記事のうち、学習すべき内容の流れを以下の記事にまとめています。 続きを見る
【初心者向け】Pythonの基礎から機械学習修得までのロードマップ【無料教材公開】
※ 2020/05/23 上記Pythonのロードマップの記事は全て制作完了致しました。内容としてはプログラミングスクールに劣らない教材に仕上げていると自負しています。
またSNSでもこの教材を用いて学習して下さる方が多くいらっしゃいます。是非、学習成果をTwitter(@:obgyntommy)にメンションを付けて共有して頂ければ、必ず拝見します。
さらにPythonの基本〜機械学習の基礎を学習された方向けに、scikit-learnの使い方についてこちらの記事でまとめていますので、参考にどうぞ。
【機械学習】scikit-learnを使用して予測モデルを作成する方法【1から全て解説】
続きを見る
※ 2020/01/16 こちらの記事を大幅に改良し、プログラミングスクールにも劣らない内容に仕上げています。
Python学習に有用なサイト
他サイトでもPythonに有用なサイトは多くあります。
- Progate:ゲーム感覚で学習可能(ただしPythonのみ)
- ドットインスクール:ステップを踏まえて学習可能
- paizaラーニング:動画解説+練習問題付きで学習可能
これらのサイトも有用ですのでお試しください。
特にpaizaは動画解説付きなので評判良いですね。
※ これらのサイトはPythonの学習には有用ですが、機械学習には今ひとつ物足りないですね。
そこで、YouTubeでPython・機械学習を学習するためのサイトをまとめましたので、以下も参考にどうぞ。
» 機械学習入門のためのサイトはYouTubeにあり【無料かつ優良】
また、YouTubeだけではなく世の中には多くの機械学習を無料で学べるためのサイトが落ちています。
これもまとめましたので以下のリンクを参考にどうぞ。
» 機械学習入門のためのサイトは、ほぼ無料であるという件【保存版】
2. Python〜機械学習の独学におすすめな書籍と動画講座
次の更なる下積みとしては以下2点です。
Python〜機械学習を学習する為の学習方法②
- 独学でPython〜機械学習を修得するための、書籍を用いた学習ロードマップ
- 独学でPython〜機械学習を修得するための、オンライン講座の活用方法
では、一つづつ見ていきましょう。
独学でPython〜機械学習の習得のための、書籍を用いた学習ロードマップ
python〜機械学習を独学で学習するために、機械学習を行う際のオススメ参考書籍を記載しておきます。以下のSTEPで勉強していきましょう。
- STEP1: 「人工知能は人間を超えるか」→人工知能の概論を学ぶ
- STEP2: 「Python3入門ノート」→Pythonのコードの練習を行う
- STEP3: 「入門Python3」→機械学習プログラミングの練習を行う
- 補助書籍:「人工知能プログラミングのための数学がわかる本」
※ 補助書籍はSTEP1〜STEP3に出てくる数式でわからない箇所を調べる為に使用するのがおすすめです。
STEP1:人工知能、機械学習の概論を学ぶ
STEP2:Pythonのコードの練習を行う
STEP3:機械学習のプログラミングの練習を行う
補助教材:機械学習で出てきた数学的知識や統計的知識を補う
3. Python、機械学習を独学で習得するためのオンライン講座の活用方法
オンライン講座を活用しましょう。当サイトや書籍で学習した内容を勉強しながら、耳学問も利用してインプット+アウトプットしていくイメージです。
人によっては学習の手順としてはオンライン講座→書籍でも構いません。
オンライン講座でオススメは2つです。
Udemy で機械学習を学ぶ為に圧倒的にオススメな講座を紹介します。
- 【キカガク流】人工知能・機械学習 脱ブラックボックス -初級編-
- 【キカガク流】人工知能・機械学習 脱ブラックボックス -中級編-
- 【キカガク流】Python3の基礎 -超入門・再入門-
※ Udemyは1〜2週間に1度のバーゲンセールをやっています。1講座85%OFF程度になることもあります。
原価で受講しても十分価値はありますが、バーゲンセール期間を狙うのもおすすめです。
(個人ではバーゲンセール中に42講座購入しました。。)
僕もUdemyのキカガクを受講して、非常に分かりやすくて良かったです。
というか、講義が有益すぎるので、受講しないとか普通に損ですよ。。
» Udemyのキカガクを受講した感想
※ AIdemy はAI特化型プログラミングサービスというのがありますが、まずは無料カウンセリングで相談するのは価値があると思います。
【補足】Python、機械学習のライブラリの紹介
Python、機械学習を勉強する際に修得しておくべき強力なライブラリをいくつか紹介します。
ライブラリとはPythonで扱えるモジュールや関数をまとめられたパッケージのことで、その多くは自由に利用する事が許可されています。
- Scikit-learn
Scikit-learn は統計的な分析手法や機械学習の機能を有しています - Tensor Flow/Keras
Tensor FlowはGoogleが提供している深層学習のライブラリです。
非常に細かくコーディングできるプロ向けのライブラリと言って良いでしょう。 - PyTorch
PyTorch はここ1年で急激に成長している Facebook社制の深層学習ライブラリです。
良くTensor Flowと比較されますが、研究用途での利用が多いです。 - Jupyter Notebook
Jupyter Notebook はコードを埋め込んだりドキュメントを残せたりするPythonの開発環境ライブラリです。
⑤ 実践演習:具体的なテーマでアウトプットする
アウトプットを行う
上記の流れで学習をしたら、セットで実践、すなわちアウトプットを行うことが重要です。
自分がやりたかったことが少しでも実現できれば、この上なく嬉しい気持ちになります。
初心者向けの参考書や、プログラミングスクールは世の中に多く出回ってます。(この記事もそうです。)
一方で、会社でのプロジェクトなど実務内容を上級者向けとすると、世の中にはなかなか中級者向けの教材がありません。
そこで、ある程度知識がついたら、自分の知識のアウトプットとして練習問題を解くことをおすすめします。
練習問題を提供している有名サイトを2つ紹介します。
独学で勉強した仕上げとして練習問題におすすめなサイト
◻️プログラミンスレまとめ in VIP 練習問題
プログラミングにおける有名所の問題が集められています。
色々な言語に対応しており(もちろんPythonにも対応しています)、練習問題としては非常に有用です。
◻️ 【PyQ】
【PyQ】はPythonに特化したサイトになってまして、多くの(500問以上)のクエスト(問題)を解きつつステージをクリアしていくゲーム感覚で問題をこなせます。ゲーム好きの方には向いていますね。
プログラミングの勉強はしんどいので、ゲーム感覚のサイトがあるのは有り難いです。
ちなみにPythonだけではなく、機械学習まで対応しています。
プログラミングスクールは独学の挫折予防&独学の後の総仕上げに使おう
これまではプログラミングスクールに通わずに、独学でPythonと機械学習の学習を行う勉強方法について紹介してきました。
少し矛盾してしまうかもしれませんが、途中で挫折しそうになりそうなら、プログラミングスクールに通うのも全然アリです。また、独学である程度の知識を付けた方が実践に向けて短期集中で通うのもアリです。
理由は以下です。
- スクールのメンターは挫折予防の最強の抑止力
- スクールで独学の復習+総仕上げ → 定着率UP
僕自身は2つ目の動機でプログラミングスクールに通いました。
その結果、復習や自身が行なっている研究にもブーストがかかり、結果的に良かったと思っています。
スクールは学習効率を上げるチートです。
また、完全に独学で学習出来るのか、プログラミングスクールにも通った方が良いのか、これには個々の性格も関係しています。
「自分は独学で勉強するのに向いているのか、プログラミングスクールに通うべきなのか」迷われている方はこちらの記事を参考にどうぞ。
» 【プログラミングスクールvs独学】機械学習に独学は必要【結論】
また、「頑張って機械学習を勉強しているけれども、もはや挫折しそう」という方には、挫折の回避の方法としてこちらの記事をどうぞ。
» 機械学習は挫折しやすい【挫折が多い原因と挫折回避の方法を教えます】
機械学習やAIに特化したプログラミングスクールは沢山ありますが、実際に通学したり調査し厳選した結果、おすすめ出来るのは3社のみです。
AI・機械学習に特化したプログラミングスクールの記事として「無料あり: AI・機械学習エンジニアの僕がおすすめするプログラミングスクール3社」にまとめています。この3社は僕が実際に通った事のある2社と、友人が通っており実際に講義内容を確認した1社なのでハズレはないかと。
挫折しそうな方や、独学の総仕上げとしてプログラミングスクールを活用しようと思っている方は、この3社の活用をどうぞ。
おすすめのプログラミングスクールのリスト
- TechAcdemy AIコース ※ 1週間の無料体験あり
- Aidemy Premiun plan ※ 無料カウンセリング&講義あり
- キカガク ※ まずUdemy【機械学習 脱ブラックボックス講座】 がおすすめ