input & output

完全文系プログラミングど素人が機械学習に興味を持ってしまった。

AIについて、学んで実践するためにオススメしたい4冊 +α

巷にAI関連の書物は溢れているけれど、どれを読んだら良いかわからない。

自分にあった本を見つけてくれるAIがあれば良いのに……と、AIのことをAIに聞きたがるくらい、AIへの期待(と恐怖)は膨れ上がっている。

 

 

これだけ話題になっていると、「AIについて少し勉強してみよう」と思う人も多いんじゃないだろうか。そんな人のために、AIに変わって役立つ本を4冊あげてみようと思う。

 

人工知能はどのようにして 「名人」を超えたのか?―――最強の将棋AIポナンザの開発者が教える機械学習・深層学習・強化学習の本質


将棋ソフトのポナンザが、現役の名人に勝ったり、また、囲碁のトップ棋士囲碁ソフトのアルファ碁が勝った。

佐藤天彦名人、将棋・電王戦でAIに敗北

人類最強棋士が電脳に敗れ去る… 中国のカケツ九段がアルファ碁に3連敗、AIは引退して新分野へ - MdN Design Interactive - デザインとグラフィックの総合情報サイト


この本は、「ポナンザ」の製作者が書いた本だ。

本書で主に3つのことが書かれている。
・ポナンザがどのように成長したか。また、将棋ソフト、囲碁ソフトがここ数年で急速に強くなったのはなぜか?
・「知能とはなにか」という問いへの筆者の考え。
・「機械学習」「深層学習」「強化学習」の本質。

特に3つ目の「機械学習」「深層学習」「強化学習」に関する説明は、単に教科書的な定義の説明にとどまることなく、ポナンザが強くなっていく過程と各「学習」の関係が説明されている。そのため、それぞれの「学習」の違いがとてもわかりやすい。

難しいことはおいといて、ざっくりとAIの基礎を学ぶにはとても役に立つ本だと思う。

 

あたらしい人工知能の教科書 プロダクト/サービス開発に必要な基礎知識

こちらはタイトルに「教科書」と入っているとおり、人工知能に関するいろいろな言葉の意味を解説している本。 まさに「教科書」、THE 「教科書」。
最初から最後まで通読するのは、AI初学者にとっては厳しい。

何か本や記事を読んでいて、わからない単語があったときのためにこの本を辞書がわりに持っておくと便利だと思う。
紙の本に索引はついているのだろうか?(自分の持っているkindle版にはついていない)
持ち運びとか、検索のしやすさを考えると、kindle版をオススメしたい。

あたらしい人工知能の教科書 プロダクト/サービス開発に必要な基礎知識

あたらしい人工知能の教科書 プロダクト/サービス開発に必要な基礎知識

 

 

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

とりあえず手を動かして学んでみたい、という人向け。
Pythonというプログラミング言語を使って、1〜9までの画像データを判別する仕組みを知ることができる。
実際にコードも明示されているため、本書に書かれていることを自分の持っているPCで再現することも可能だ。

自分(プログラミング歴数ヶ月)が読んで作業してみた結果:
・写経するだけでもなんとなく仕組みがわかる。畳み込みニューラルネットワークの意味もなんとなくわかる。
・コードを作ることがメインで、細かい数学の理解(行列、微分偏微分の意味や計算方法)をするには他の本が必要。
・超初心者がPythonと深層学習をまとめて勉強するには有用。

少し時間をかけて、手を動かしながらじっくりと勉強したい人にオススメしたい。
超初心者がなんとなく手にとって、電車の中で眺めるような本ではない。

(参考)
数学の勉強をするために買った本。数学の勉強は高校のⅡBで止まっていたので(しかも定期テストで平均点に辿り着いたことがない!)、とても参考になった。
プログラミングのための線形代数 → 「行列は写像だ」、ということをじっくりと説明してくれる。
ディープラーニングがわかる数学入門 → 勾配降下法や畳み込みニューラルネットワーク誤差逆伝播法をExcelでやってみるおまけ付き。 

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

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

 

 

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

プログラミングをかじってみると、「そもそもなんでこんな文字列で色々できるんだ?」という素朴な疑問がわきあがってきた。
ついでに、「毎日触っているけれど、実はパソコンの仕組みって詳しく知らない、、、というか全然知らない」ということに気がついてしまった。

ということで、大学生時代に買っていた本書を再度読んでみた(学生時代は結局興味がわかなくて読みきらなかったなぁ)。
本書の役割も「教科書」的な意味合いが強い。高校生の情報の授業(今もこういう名前の授業なのか……?)や、文系大学生の一般教養科目で使われそうな内容だ。
それゆえに、本書を読むことで、プログラムが動く仕組みをイメージできるようになる。

索引もついているので、わからない言葉の意味を調べるのにも役に立つ(もっとも、古い本で基礎的な内容が多いので、言葉の意味を調べるだけならwikipedia半導体製造企業のサイトを見れば済んでしまうかもしれない)。

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

 
 
(おまけ)これから読みたい本。

人工知能関係の本は日々増え続けていて、追いかけるのがめちゃくちゃ大変だ。全部読むのは無理だから、書評サイトの内容を眺めるだけでも良いかもしれない。
そんな中、個人的に6月の間に読みたいのは以下の本。

データサイエンティスト養成読本 登竜門編 (Software Design plus)
プログラミング超初心者のど文系としては、こういうまとめ系の本がすごく役に立つ。
紙で買ってしまったのだけれども、雑誌にしては分厚くて、電子版(pdf)にすればよかったとちょっと後悔している。
技術評論社の『Software Desigh』っていう雑誌は毎月買っていて、今月初めてpdf版を買ってみたら、目次と本文がきちんとリンクされていて感動した。すごく読みやすい。これまで買った文もpdf版で買い直したくなった。

 

そろそろ、人工知能の真実を話そう
タイトルにそそられた。出だし2、3ページを読んでみたけれど、結構硬めの本で読むのに1週間くらいかかりそうだ。
「真実」とはなんなんだろうか?

ベストセラーコード 「売れる文章」を見きわめる驚異のアルゴリズム
売れる本には共通した特徴があり、それを判別できるアルゴリズムも構築されているらしい。ぜひ自分のブログ記事を評価して、PV上昇に貢献してほしい。
なお、この本を読んでも、売れる本を判別できるアルゴリズムの構築はできない様子。

 

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

Pythonを勉強しながら仕事のつまらない作業を自動化したい。

今日発売。この記事を書き終えたら早速本屋に買いに行く。