見出し画像

【保存版・初心者向け】独学でAIエンジニアになりたい人向けのオススメのAI勉強方法 (2019年改定版)

はじめに

我々は、AI Academyというサービスを通じて、これまで1500名以上の方々に、プログラミング(Python)、統計的機械学習、深層学習(Deep Learning)、機械学習のための数学、確率・統計などを教えてきました。
そんな中、サービスを通じて一人一人に最適な勉強方法を日々出会う初学者の方々に、私達なりの学習アドバイスを行なっていたのですが、1500名以上の初学者に教えていく中で、人工知能を勉強するにあたって、多くの『わからない』には、共通する点があることに気づきました。
この記事では、我々が解決してきた受講生の方々の共通の『わからない』を体系的にまとめることで、
これからAIエンジニアになりたいと考えている多くの初学者にとって、役に立てれるのではないかと思い記事にすることに致しました。
今回の記事を通して、1人でも多くの方に何か参考になることがありましたら幸いです。
※この記事は以前書いた【保存版・初心者向け】独学でAIエンジニアになりたい人向けのオススメの勉強方法の改定版記事になります。
前回の内容で紹介していない書籍や、前回紹介していた書籍を今回は紹介していなかったりもします。
学習ロードマップも更新しましたので、最後までお読み頂けますと幸いです。

僕らのサービス紹介
AI Academy 無料でPythonや機械学習、ディープラーニングが学べるオンラインAIプログラミング学習サービス
AI Academy Bootcamp 個人向けのAIスクール(1ヶ月5万円で受講可能なAIスクール)

この記事の対象者

この記事の対象者は次のような方達に向けて書いております。
・将来Pythonでデータ分析をしたいと考えているが、何から手をつけたら良いかわからないという方
・将来、人工知能に関連した業務に携わりたいと検討中の初学者の方
・未経験者からAIエンジニアになりたく、そのためにどのような知識が必要か知りたい方
・AIプログラミングスクールや専門学校に進学しようか考えているが、独学で勉強できる方法を知りたいという方

対象ではない方

・既に業務でデータ分析している方
・機械学習やディープラーニングを使ったWebアプリなどを作りたいと考えている方
・ディープラーニングの資格試験の勉強方法
などなどは対象としておりません。

AIエンジニアに最低限必要な知識

AIエンジニアに最低限必要な知識を大きく6つに分けてみました。
ここでは、将来AIエンジニアとして業務を行うにあたり、大きく分けて6つの内容の基礎知識の全体像を把握してください。
①プログラミングスキル
- Python
- numpy、pandas、matplotlib、scikit-learn、TensorFlowやkeras
②数学
- 微分、線形代数、ベクトル、行列、確率など
③統計の知識
- 標準偏差、分散、確率分布、推定、検定などなど
④機械学習の基礎知識
教師あり学習と教師なし学習
前処理、特徴量設計、学習と評価
単回帰、重回帰分析、最小二乗法、パーセプトロン、ロジスティック回帰
決定木、ランダムフォレスト、サポートベクトルマシン、K-means、etc..
ディープラーニングの実装スキル及び知識
scikit-learn
TensorFlowやKerasなどのフレームワークの知識
scikit-learnで学習済みモデルを作るまでの流れなど。
1.データの収集とデータの前処理欠損値の補完や外れ値の削除)
2.特徴量の設計(特徴量の選択)
3.モデル開発(モデルの選択と学習)
4.モデル評価・・・交差検証、混合行列など
⑤SQLを使ってデータベースを操作する知識
- select、insert、update、delete、where、like、limit、sum、avg、max、group by、having、order by、テーブル結合、ビュー、サブクエリ、caseなどなど
⓺クラウドの知識
- AWSやGCPやAzureなどのクラウドインフラ回りの知識
大きく6つもあり、意外と多いなと思われたかもしれませんが、一度に全てやるのではなく、まずは①と④の2つに絞ることをオススメします。
理由は、実際にプログラムを書き、目に見える形にすることで継続して学びやすくなるからです。
はじめに理論から入ると独学だと挫折してしまうので。
その後、③の統計や②の数学、⑤のSQL、⓺のクラウドを進めていきましょう。
①プログラミングスキル
④機械学習の基礎知識
③の統計、②の数学
⑤のSQL、⓺のクラウド

人工知能を独学で勉強するオススメの方法

必要な知識は前の節で紹介しましたが、どのようにそれらを学べば良いのでしょうか。
①から⑥を学ぶ上で、以下のような順で知識を身につけていくことをオススメしています。
フェーズ1 pythonプログラミングと人工知能概論を学ぶ
フェーズ2 機械学習プログラミング
フェーズ3 Kaggleに挑戦
フェーズ4 SQL、スクレイピング、クラウドなどの技術も身につける。
フェーズ5 機械学習を活用したプロダクト制作をする
フェーズ6 教える
フェーズ7 専門分野を確立する
このフェーズごとに学んでいくことがもっとも自分自身に負荷をかけず、楽しく学ぶことができると考えています。
フェーズ1ではプログラミング初学者の方を指しております。
もし、プログラミングを初めてという方は是非フェーズ1から目を通してください。
フェーズ2では実際にフェーズ1で学んだ内容をベースに、機械学習プログラミングに関する勉強方法を説明して参ります。
既にscikit-learnを使った機械学習プログラミングを行なっている方は飛ばして頂いても構いません。
フェーズ3ではKaggleなどを利用し、実際にコンペに参加し、実践的な機械学習プログラミングを学ぶ方法を記述しています。
フェーズ4 機械学習をやる上で、データベースからデータを取り出すことは頻繁に行われますので、SQLの知識は必須です。ここでは、SQLの他にスクレイピング(データ収集用)、クラウド関連の内容に関して記述しています。
フェーズ5 機械学習スキルを活用してプロダクト制作に取り掛かりましょう。このレベルまで到達した方は、プロダクト制作を通じて学ぶという内容に関して記述しています。
フェーズ6 人に教えることで自分の分かっていなかったことが明確になることがあります。ですので、友人などに機械学習を教えて自分の理解を深めるという内容に関して記述しています。
フェーズ7 人工知能の領域は幅広く、画像認識や自然言語処理、音声認識などがあります。ここでは専門分野を確立する方法に関して記述しています。
以降、7つのフェーズごとに、どのようにこれらに取り組めば良いのか、オススメの書籍などを紹介しながら説明していきます。

フェーズ1 pythonプログラミングと人工知能概論を学ぶ

独学で、書籍を使って、
人工知能開発に最低限必要な知識は「機械学習の知識」と「Pythonの知識」と「機械学習のための数学と確率・統計学」です。
このフェーズでは、「機械学習の知識」と「Pythonの知識」に絞り、一旦「機械学習のための数学と確率・統計学」は違うフェーズに回しても大丈夫です。
数学や確率がわからなくても、機械学習用のライブラリを使えば機械学習を体験でき、理論だけの学びよりモチベーションが保ち安いからです。(人によっては理論からの方が継続できる方もいるかと思いますので断言はしません。)
その後、ライブラリに頼った実装をした後に、中で何が行われているのか気になってから、一度立ち戻って数学・統計学などを学ぶことをオススメします。
では、オススメ書籍を紹介していきます。
まず、プログラミング初心者または、Pythonの基本文法に自信がない方は下記書籍がオススメです。

Python3 入門ノート

2894円
こちらの書籍はpythonの基礎にあたる基本文法だけでなく、機械学習プログラミングに関する基礎も学べます。
この書籍を一通り読み終えることで、pythonプログラミングの基礎力と、機械学習プログラミングの体験が出来ます。
また、pythonプログラミングを始める際には、開発環境いらずのブラウザかつ無料で使える、CPU/GPUの機械学習環境が整ったGoogle Colaboratoryを利用してPythonプログラミングをしていきましょう。
次に、人工知能の概要に関してさらっと学びたい方は下記の書籍をお勧めします。

人工知能は人間を超えるか ディープラーニングの先にあるもの (角川EPUB選書) [単行本]

1512円
上記2冊はPythonの本を読み、出てくるプログラムを手を動かしながら進めてください。
さて、上記2冊で人工知能に関する知識及びPythonプログラミングの基礎が固まった方は、
機械学習の一連の流れと統計的機械学習のプログラミングを始めましょう。

フェーズ2 機械学習プログラミング

Pythonではじめる機械学習

3672円

こちらも手を動かしながらコードを書き、またその後コードを読む(写経)をおこなってください。
ただ本を読むだけより、手を動かしながら進める方が理解が深まります。

もしくは
PythonによるAIプログラミング入門 ―ディープラーニングを始める前に身につけておくべき15の基礎技術

3672円

4320円
もしくは
scikit-learnとTensorFlowによる実践機械学習

4860円
・数学
スバラシク実力がつくと評判の線形代数キャンパス・ゼミ―大学の数学がこんなに分かる!単位なんて楽に取れる!

機械学習に必要な数学編
もしくは、
やさしく学ぶ 機械学習を理解するための数学のきほん

2786円
機械学習の技術書を読み、数式アレルギーが出た方はキカガクさんの動画をオススメします。
手書きで講義で数学が学べ、何より説明がわかりやすいです。
数学がアレルギーの方は上記のほんと合わせて、2つの動画を利用することをオススメします。
【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 初級編 - | Udemy
【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 中級編 - | Udemy

・数学+α
機械学習のアルゴリズムを数学を学びながら、Pythonで実装したい方は下記書籍はオススメです。
機械学習のエッセンス -実装しながら学ぶPython,数学,アルゴリズム- (Machine Learning)

・統計学
統計学入門 (基礎統計学Ⅰ)

3,024円
確率・統計学編

・データ前処理
前処理大全[データ分析のためのSQL/R/Python実践テクニック]

3240円

次に、ライブラリを用いてDeep Learning(ディープラーニング)に関して勉強してみると良いでしょう。
(最近は、PyTorchも人気が出でおり、色々と試して使いやすいものを選ぶのが良いかと思います。)
初心者にオススメなのはKerasです。
・Keras
PythonとKerasによるディープラーニング


4190円
書籍以外にも、Udemyなどがオススメです。
次の動画も合わせてご利用してみてください。
Pythonで機械学習:scikit-learnで学ぶ識別入門

フェーズ3 Kaggleに挑戦

さて、フェーズ1,2では書店で販売されている機械学習関連の書籍を紹介しました。
上記の書籍を順番に1〜3ヶ月ほど手を動かしながら進めると、機械学習の一連の流れや、自分で機械学習のモデルを読み書きできるレベルになっているはずです。
ここでは、次のフェーズとしてKaggleSIGNATE(旧 DeepAnalytics)を使って、実践します。
Kaggleは、世界中のデータサイエンティストが集まるコンペティションサイトです。
企業などが分析してほしいデータをここに載せて、ユーザーが分析をして、分析の精度を競います。
上位3位にはデータをあげた企業から賞金が出る場合もあります。
Kaggleのオススメの使い方としては、Kernels(カーネル)という機能を使うことです。
カーネルでは、各データセットに対して他のユーザーが構築したモデルのコードの説明などがわかりやすく書いてあります。

Python データ分析実践編
Kaggleで実際にデータ解析を行うとわかりますが、データの前処理が大変重要です。
ここでのポイントとしては、pandasを上手く使いこなせるかが鍵になっております。
pandasのデータ加工でわからないことがあれば、
pandas公式 チュートリアルから再度復習してみてください。
書籍としてはPythonによるデータ分析入門がオススメです。

Pythonデータ分析/機械学習のための基本コーディング! pandasライブラリ活用入門

機械学習のための特徴量エンジニアリング ―その原理とPythonによる実践

フェーズ4 SQL、スクレイピング、クラウドなどの技術も身につける。

実データに関しては、Web上のデータであればデータベースに保存されていることが多いため、SQLの知識も必要になります。
SQLが使えると、自分でDBから必要なデータを抽出できますし、csvなどで書き出してpythonでそのままデータ分析に繋げることが出来ます。
ここでは、SQLを使ってデータ分析をするための参考になる書籍を紹介します。
・ProgateのSQL編(SQL初級者向け)
Progate[プロゲート] SQL

AI Academy SQL編 (SQL初心者向け)
AI Academy SQL編 (SQL中級者向け)
・SQLを使って分析をする(SQL中級者向け)
ビッグデータ分析・活用のためのSQLレシピ

データ収集はデータベースから行うこともあれば、スクレイピング等で行うこともあります。
スクレイピングはWebサイトに掲載されている情報を収集するための技術です。
ここでは、スクレイピングの技術習得のためにオススメの書籍を二冊紹介いたします。
・1冊目にオススメ
Pythonによるスクレイピング&機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみよう

AI Academy Webスクレイピング編 
・2冊目にオススメ
Pythonスクレイピングの基本と実践 データサイエンティストのためのWebデータ収集術 (impress top gear)

もしくは
Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド

・クラウド
ここではGoogle Cloud Platform(GCP)の簡単な説明をします。
Google Cloud Platformは、Googleが保有する膨大なインフラストラクチャや機械学習等といったサービスを使った分だけの支払いで利用することができるクラウドサービスの総称であり、GCPを使うことでサービスを開発する上でのインフラ周りや、高性能なデータ分析・機械学習サービスを各種APIを通じて利用が出来ます。
GCPとよく比較されるサービスとしてAmazonのAWS、Micro softのAzureなどがありますがそれらの違いは下記記事を参考にして見てください。
Google Cloud Platform とAWS、Azureの違い

また、GCPのAPIをPythonで呼び出すことが出来ますが、下記画像にある通り画像認識・動画解析、音声認識、自然言語処理などのAPIが用意されています。
自分の作りたいものを作るときに、0からscikit-learnやKerasなどを使って自前で作るより、APIを使った方が簡単にかつ、精度の良いものを作ることが出来ます。
自分にあったAPIを探し、ドキュメントや、Googleで検索したり、qiitaで調べたりして出てきた記事を参考にすれば実装が出来たりします。

GOOGLE CLOUD PLATFORM での PYTHON
フェーズ5 機械学習スキルを活用してプロダクト制作をする

フェーズ5まで、機械学習スキルやそれ以外の人工知能関連技術を学びました。
ほとんど最後のフェーズですが、次のフェーズとしてはプロダクト制作をすることをオススメします。
プロダクトには様々な形があると思いますが、ひとまずWebアプリケーションが学習コストが少なく済むので、オススメです。
次に、モバイルのアプリなどに取り組んで見ても良いでしょう。
Webアプリケーション作成にはPyhonの他にも、HTML, CSS, JavaScriptの知識が必要です。
これらの知識はプロゲート, ドットインストールなどを利用して身につけましょう。

・HTML, CSS, JavaScript
プロゲート
3分動画のドットインストール(dotinstall)
また、PythonでのWebアプリケーション開発はDjango,Flaskなどのフレームワークが有効ですが、一人で学ぶには、Flaskが学びやすいです。
FlaskはUdemyの動画を参考にすると良いでしょう。
Udemy
AI Academy Webアプリケーション開発編
動画やテキストをただ見る、読むのはでなく、実際にプログラムを打ち込みながら手を動かして進めるのがオススメです。
また、学習済みモデルを組み込んだWeb APIをFlaskなどで作れるようになっておくと良いです。
さらに、Web開発を身につけた方は、Google CloudのAPIなども合わせ学び、これまで学んだことを合わせてあなたのアイデアを形にしてみてください。
Google Cloudでは、画像・動画分析、音声認識、テキスト分析などを容易に扱うことが可能です。

フェーズ6 教える

プログラミングや機械学習を学んだら、友人でも良いので誰かに教えることをオススメします。
教える方法としては、イベントやセミナーを行うのも良いですし、Skypeなどを使い、友人にマンツーマンレッスンを行なったり、カフェで直接教えたりするのが良いです。
教える以外にもQiitaやブログに記事を書いたり、本を書くとかも良いかと思います。
AI Academyでは受講生の交流会やLT会もやっており、人前で教える機会も提供しておりますので、是非ご活用して見てください!

フェーズ7 専門分野を確立する

人工知能の領域には、画像認識や自然言語処理、音声認識、強化学習などあります。
フェーズ6まで進めた方は、自分の専門分野を身につけていきましょう。

・画像認識
画像認識 (機械学習プロフェッショナルシリーズ)

・自然言語処理
深層学習による自然言語処理 (機械学習プロフェッショナルシリーズ)

・音声認識
音声認識 (機械学習プロフェッショナルシリーズ)

・強化学習

・深層学習(ディープラーニング)【理論と実装】
深層学習の理論と実装+Kerasを用いて、基礎からしっかり学びたい方は下記の3冊+αで、基礎から実践までカバーできます。
①ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

もしくは、
はじめてのディープラーニング -Pythonで学ぶニューラルネットワークとバックプロパゲーション- (Machine Learning)

②ゼロから作るDeep Learning ❷ ―自然言語処理編

深層学習


直感 Deep Learning ―Python×Kerasでアイデアを形にするレシピ

学習ロードマップ

さて、上記で色々と書籍をご紹介しましたが、上記のロードマップの書籍をベース進めることで、機械学習エンジニアに最低限必要なスキルを体系的に身につけることができます。
順番ですが、①の機械学習から始め、必要に応じて数学・統計を進めてください。
①と②が終わったら、次に深層学習を進めるのをお勧めします。
ただし、AIエンジニアになることが目的ではなく、画像認識で〇〇を作りたい。という作りたいものが明確な方は、『直感 Deep Learning ―Python×Kerasでアイデアを形にするレシピ』だけで十分な場合もあります。
何度も記述していることですが、ポイントなのが、基本的に書籍に出てくるコードは実際に書いて進めることです。
例えば、英語などを勉強するときも教材を眺めるだけより、書いたり読み上げたり聞いたりすることが有効だったりします。
プログラミング言語も同様で、ただ本を眺めるだけより、実際に写経することでより理解が深まります。
ただし、どの教材も100%理解する必要はありません。
どのタイミングで、次の書籍へ進むかの判断基準ですが、書籍に書いてあること全て理解せずに、7割理解できたかなというレベルで十分です。
そこに到達したら次へ進みましょう。
AIエンジニアとして就職・転職希望の方は上記の書籍の内容に加え、
上記でまとめたSQLの基礎的な内容の理解や、Kaggleのコンペもいくつかやったり、統計検定2級あたりを所持したり、普段から英語に慣れておくと良いかもしれません。

まとめ

ここまでの流れをまとめます。
フェーズ1 pythonプログラミングと人工知能概論を学ぶ
フェーズ2 機械学習プログラミング
フェーズ3 Kaggleに挑戦
フェーズ4 SQL、スクレイピング、クラウドなどの技術も身につける。
フェーズ5 機械学習スキルを活用してプロダクト制作をする
フェーズ6 教える
フェーズ7 専門分野を確立する

英語に自信がある方へ

ここまでは、学習方法やオススメの書籍などを紹介しましたが、英語に自信がある方にはオススメのサービスを紹介します。
※英語苦手だとしてもCoursera (コーセラ)の機械学習は是非受講することをオススメします。
①Coursera (コーセラ)
Coursera Machine Laerning
コーセラは世界中の人に最高の教育を無料で提供するということを理念にしているオンライン教育サービスです。
特に機械学習のコースの講師はStanford Universityのアンドリュー・ウ(Andrew Ng)氏です。
アンドリュー氏は、人工知能の研究をしており、Google Brainの立ちあげやCouseraのファンダーでもあります。
シリコンバレーにあるBaiduの研究所で勤務しておられる方であり、機械学習を学ぶのに最も適した教材とも言え、機械学習の主要なアルゴリズムを直感的に理解し、実際にプログラミングできるように教えてくれます。
Andrew Ng氏は沢山褒めてくれるので、とても嬉しくなります笑
(※プログラミング言語はPythonではなく、Octave・MATLABです)

②Learn with Google AI (ai.google education)
Learn with Google AI

Google社内教育プログラムで無料で利用可能です。
コンテンツは、大変わかりやすい動画です。


こちらもオススメ

Udacity『Intro to Machine Learning』


Machine Learning with Python (YouTube)

本気でAIエンジニアを目指している方へ

上記内容を順に学んでいくことで、一定の基礎スキルが身につき、AIエンジニアとしての入り口に入れるかと思います。
ですが、実務でAIエンジニアとして活躍していくにはまだまだ知識的に足りない可能性があります。
その際には、以下に挙げる勉強法と、その書籍にも目を通していくことをオススメします。
1. C++及びJava言語で機械学習のアルゴリズムも書けるようにする。
2. 『データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC』以上の統計学の知識 
3. 統計的学習の基礎 ―データマイニング・推論・予測
ここで紹介した書籍をある程度読み、実際にプログラムを打つところまで終わったら、仕事を探してみましょう。
あなたが学生なら、実際にWantedlyなどで機械学習アルバイト・インターンを募集している会社に応募してみたり、社会人の方なら、社内の上司にデータ分析をしたいとお願いしてみるのも良いかもしれません。

終わりに

ここまでお読みいただきありがとうございました!
これまで長々と書いておりましたが、上記した書籍を全て1から学ぶにはそれなりの学習コストがかかります。
僕が会社で運営しているAI Academyという、無料で学べる(一部有料)オンラインAIプログラミング学習サービスやAIスクールも是非ご利用ください!
本気で将来AIエンジニアを目指されている方はAI Academy Gymもご検討頂けると幸いです!
最後にこの記事が良かったら是非シェア頂けると嬉しいです!
この記事読んで頂いた方は、返信が遅れる場合もありますが、TwitterにてDM頂ければ色々とご相談も乗ります。
改めて、ここまでお読みいただきありがとうございました!

この記事を書いた人

サイバーブレイン株式会社
代表取締役CEO 谷 一徳
フォロー、参加お待ちしております!
Twitter
Facebook
人工知能研究コミュニティ

この記事が気に入ったらサポートをしてみませんか?