【2022年】AI独学 おすすめ本と優良サイト(未経験⇒国立理系大学院のAI研究室⇒AIエンジニア)

2022年1月9日

こんにちは、国立理系大学院でAI関連の研究をしている”でーい”です。現在は研究しながらバイト先でAIのエンジニアとしても働いています。

私は、高校の時から数学が苦手で飽きっぽい性格でした。皆さんの中にもAIと聞いただけで、難しそうだと躊躇してしまう人もいるかも知れません。しかし、適切な手順で学習すれば身につけられます。

いままでの経験を踏まえて、未経験から着実に知識を身に着けられるように、おすすめの書籍と無料で利用できる優良なサイトを紹介します。紹介した順に学習をしていくことでスムーズに身につけられると思います。

ゼロから作るDeepLearning

私は、学部時代にAI関連の研究室がない私立の大学に通っていました。ダラダラと過ごしていたのですが、この書籍の影響を受けて勉強をしたくなり、AI研究室のある国立の大学院に進むことにしました。

コードを実行しながら理論的なことも同時に学習できるのでおすすめです。最初におすすめするのは、わかりやすいから、そして、AIの楽しさを知ることができるからです。自分で1から書いたコードで画像の分類を行うことができるようになるので、達成感があります(私は動いたとき感動しました)。基本的な理論もわかりやすく解説されており、難しい数学的な知識もほとんど必要ありません(微積分レベルが不安な方は後ほど書籍紹介)。

Amazonリンク⇓

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

また、人工知能の勉強で切っても切り離せないのが、プログラミング言語Pythonの勉強です。Pythonには、AIの開発をサポートしてくれる便利なライブラリーが充実しているからです。このゼロから作るディープラーニングもPythonを用いて学習を行います。書籍内でもPythonの説明が軽くされていますが、Pythonについてもっとしっかり学習してから取り組みたい人もいると思います。自分にあったPythonの書籍を買うのも良いですが、学習におすすめの良いサイトがあります。

東京大学が公開しているPythonプログラミング入門です。

Pythonプログラミング入門


https://utokyo-ipp.github.io/index.html

このサイトでは、google colaboratoryという無料でpythonの開発環境を使えるサービスを利用し、学習できます。コードを書きながら学習できるのでおすすめです。

無料の講座を紹介しましたが、お金があるなら次の教材が一番オススメです。

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

これは、動画で学習できるUdemyの教材です。現役のシリコンバレーエンジニアの方がPythonを教えてくれます。

正直いままで見てきたPythonの教材の中で一番オススメです。

単なる基本文法だけでなく、実務での使い所等、どんなときにその文法を使用するかも教えてくれます。シリコンバレーでのコードを書くときのルールなども教えてくれます。

一度Pythonを学んだ人でも新たな発見があるような充実した内容になっています。

基本編だけでも十分ですが、応用編では、データ解析、データーベース、ネットワーク、暗号化、並列化、テスト、インフラ自動化、キューイングシステム、非同期処理なども習得できます。

注意としては、Udemyで頻繁に行われるセール期間中に購入することです。
そうしないと10倍以上お金を余計に払うことになります。

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

次におすすめしたいのが、scikit-learnとTensorFlowによる実践機械学習です。

scikit-learn, Keras, TensorFlowによる実践機械学習

ゼロから作るDeep Learningでは最終的に深層学習(Deep Learning)という技術を用いて画像分類を行いました。深層学習は機械学習の技術の一つで、機械学習はAIの手法の一つです。近年騒がれているAIは、深層学習を指すものがほとんどです。しかし、必ずしも深層学習を使えばうまくいくとは限りません。むしろ深層学習を使用しない機械学習のアルゴリズムを適用したほうが良い場合も多いです。

この本では、機械学習手法の全体像を学ぶことができます。第一章では、scikit-learnというライブラリを用いて深層学習を用いない機械学習の手法を学習します。第二章では、ゼロから作るDeep Learningでも学んだ深層学習をTensorFlowというライブラリを用いて学習します。

TensorFlowは、Googleが提供しているライブラリです。ゼロから作るで1から実装した後にTensorFlowを使用すると、簡単に実装ができるので驚くと思います。AIのプログラムは、主にGoogleが出しているTensorFlowとFacebookが出しているPytorchというライブラリを使って実装されていることが多いです。この2つがわかれば困ることはほとんどないです。

Amazon リンク⇓

scikit-learn、Keras、TensorFlowによる実践機械学習 第2版

ここまで学習すると、より深く知るために数学的な知識が欲しくなってくる方もいると思います(私はそうでした)。数学的なことはふんわりでいいからいろいろ実装したいという人は、後で紹介するPytorchによる発展ディープラーニングまで飛ばしてください。

理論を固めるためには、ある程度の数学の知識が必要になってきます。私は、数学が苦手で大学院の試験にも必要だったので微分積分から復習しました。以下に紹介する書籍は私にとってわかりやすかったものですが、数学系の書籍は説明に好き嫌いが出やすいので、書店に行って自分にあったものを見つけるのが良いと思います。キーワードは、微分積分、線形代数、統計です。

微分積分 キャンパスゼミ

線形代数 キャンパスゼミ

確率統計 キャンパスゼミ

これらの基本的な知識を習得することで機械学習の専門書や、論文を読むのに必要な下地ができます。

次に機械学習を数学的に詳しく学ぶときにおすすめな書籍を紹介します。研究室に入る方は、教授が指定してくださるときもあるので事前に聞いておく方が良いかもしれません。

情報工学 機械学習 

機械学習でよく使用する手法や数式がコンパクトに纏まっています。次に紹介する2冊は量が多く、網羅的に知識を把握できるので一度目を通すことはおすすめしますが、私はコンパクトな参考書を何周もする方がモチベーションを保ちやすいタイプなのでこの”情報工学 機械学習”のサイズ感を気に入っています。一人で勉強するならこちらはおすすめです。

Amazon リンク⇓

東京大学工学教程 情報工学 機械学習

深層学習 

英語版を日本語に訳したものです。英語版は、無料で見れるので日本語訳がわかりにくかったら英語版を確認すると良いです(https://www.deeplearningbook.org/)。ページ数が多く、内容も難しいので一人ですべて読むのは、相当気合を入れる必要があります。しかし、内容は素晴らしく、深層学習について網羅的に学習できます。日本語訳がおかしいところはありますが、すべてを訳してくれているのは、やはりありがたいです。私は、大学院に入ってから研究室のメンバーで分担して読みました。

すべての内容がわからなくても、一度さらっと目を全部通すことが重要です。AI全体を俯瞰して知ることができます。”こんな用語があるんだー” と頭の中に引っかかりを残すことができれば、儲けものです。後に論文などを読んで、”これそういえば何だっけー?、あ、あの本に書いてあったな!” となったときに見返してどんどん知識を深めてください。

Amazonリンク⇓

深層学習 (アスキードワンゴ)

以上2つをおすすめしましたが、いきなりレベルが上って勉強のモチベーションが下がってしまう方もいるかも知れません。しかし、わからないからと言って全く落ち込む必要はありません。いろんな手法があることや、理論を網羅的になんとなく把握しておき、必要になったときに部分的に勉強して詳しくなっていけば良いと思います。

実装系にもどります。次におすすめしたいのが、Pytorchによる発展ディープラーニングです。

Pytorchによる発展ディープラーニング

この本では、先ほど紹介したPytorchというライブラリを使用して様々な分野のタスクに対してモデルを実装します。画像分類だけではなく、物体検出や画像生成、テキストによる感情分析から動画分類まで様々なモデルを体験でき、解説もわかりやすいのでおすすめです(特に、コードの解説が詳しくてわかりやすい)。すべてを体験してみて、興味の湧いた分野を中心に更に深堀りしていくのが良いと思います。

Amazonリンク⇓

つくりながら学ぶ!PyTorchによる発展ディープラーニング

ここまで書籍を紹介しましたが、更に専門的に学習して行くには、その分野の論文を読んでみたり、githubというコードを投稿できるサイトでコードを確認して参考にしたり、自分で実装をしてみたりする必要があります。githubに関する詳しい説明はここでは省きますが、githubにあるコードはダウンロードすることができるので、自分で試しに使ってみるのが良いと思います。そのときに便利なのが次のサイトです。

paper with code

AI分野では多くのタスクが存在し、日々増えています。そして世界中の研究者が、それらを解決するためのモデルを日々開発しています。このページでは、それぞれのタスクごとに世界で一番良い結果を出したモデルの論文とgithubに公開されているコードのリンクが簡単に見れるようになっています。どんな分野があって、どんな手法があるのかを網羅的に知ることができるので一度訪れてみてください。

以上、私の経験を踏まえたおすすめの本やサイト、勉強法を紹介しました。AI分野は技術の進歩が早く、勉強するのが大変ですが、とても面白い分野です。ぜひ一度体験してみてください。

また、返信はできないかもしれませんが、こんな本もおすすめだよという方がいらっしゃれば、教えていただけるとありがたいです。

おまけ

ゼロから作るDeep Learning②

ゼロから作るDeep Learning② この本では、文章を扱うAIを学習できます(自然言語処理タスク)。私は最近読んだのですが、とてもわかり易いです。画像処理にしか興味ないから読まなくてよいかなと思った人もいるかと思います。しかし、最近の画像処理分野では、文章を処理するときに使用されていたTransformerという技術がよく使われており、もはや勉強は必須レベルです。この本は、それらを理解する上で大いに役に立つと思います。ゼロから作るDeep Learningを読んでみて気に入った人もぜひ一度読んでみてください。

Amazonリンク⇓

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