DIVE INTO CODE

2019年07月17日
  • #Python
  • #機械学習

Pythonで機械学習プロジェクトのリテラシーを学ぶならこの本からはじめよう

Aws4 request&x amz signedheaders=host&x amz signature=11a0d8722719f07bf63678ddce78b2f520128664add9d6436fcf0f90134b51ba

機械学習について知りたい!そんなとき、まずは機械学習の全体像から理解しましょう。そもそも機械学習って何なのか、何ができるのか、どうやって機械学習を組み込んだシステムを作っていくのか。そんな機械学習のリテラシーを学ぶ際におすすめの本を3冊ご紹介します。

【こんな方におすすめ】
・「機械学習って何?」というところから学び始めたい方
・いきなり仕事で機械学習をやることになったけれど、何から学べばいいのか分からない方
・機械学習の本がたくさんある中で、どれを読めばいいのか迷っている方

【目次】
1. まず全体像を理解しよう
2. おすすめは3冊
 ・『いちばんやさしい機械学習プロジェクトの教本』
 ・『仕事ではじめる機械学習』
 ・『PythonとKerasによるディープラーニング』

3. リテラシーを身につけることは「責任」

■話し手
DIVE INTO CODE 代表 野呂 浩良
■聞き手
StartGate 永田 拓也

まず全体像を理解しよう

「リテラシー」ということは「プログラミング技術」というだけではない?

そうですね、その手前のイメージです。機械学習というのを使って何を実現するのかという大枠から理解すると、「なんでこれを学ぶとできるのか」とか、技術の大切さが理解できると思うんですよ。まずは外堀から理解していくのは大事だと思います。エンジニアになろうと思っている方も何のためにどう使えるのかということを知っておかないと、ただ目の前にあるコードを暗記することになってしまうので、ちゃんと全体像を理解しておくといいと思います。そういう意味で「リテラシー」ですね。

なるほど。

おすすめは3冊

3冊の本がおすすめです。
1冊目は『いちばんやさしい機械学習プロジェクトの教本』

「いちばんやさしい」っていいですね!

2冊目は『仕事ではじめる機械学習』
これはより実践的で仕事でどう使うのかを論じている本ですね。鉄板です。

ステップアップした感じですね。

3冊目は『PythonとKerasによるディープラーニング』という本です。

「ケラス」?

いきなり「Python(パイソン)」「Keras(ケラス)」と専門用語が2つも出てきたんですけど、タイトルとはうらはらに全体像をしっかり載せてるんですよ。コードを書く人の立場になって全体像を書いてあるのでおすすめです。
 
1冊目,2冊目,3冊目の順に読むといいと思います。3冊目はコードを書けないと正直よく分からないと思うんですけど、持っておくといいと思います。
次に1冊ずつ詳しく紹介していきますね。

1.『いちばんやさしい機械学習プロジェクトの教本』

この本でプロジェクトに必要なキーワードを一通り押さえられます。なので、機械学習について会話をしようとか全体像をつかみたい方はこれ一冊で十分です。

特徴的なキーワードって結構多いんですか?

そうですね、特徴的なものでいうと、最初にそもそも「AI」って何だっけ、「機械学習」って何だっけとか。

確かにAI、AIって言われてますけど、そもそも何って言われると説明できないですね。

「機械学習」って何?どういう学習方法があるの?とか。「教師有り学習」「教師無し学習」とかあって、仕組みは「線形回帰」とか使うの?「サポートベクターマシン」とか使うの?とか。その中で使われているのが「最小二乗法」っていう数学の数式で…

さっぱり分からないです(笑)

今言ったところくらいまでなんとなく捉えておくと強いです。そこに対して踏み込んで理解するというのが最初にどうしても必要なんですよ。そんな時にこの『いちばんやさしい機械学習プロジェクトの教本』を読んでおけば、ちょっとしたさわりのセミナーに行かなくても全体の意味は分かると思います。最初にリテラシーを学びたい人には、私の今一番のおすすめです。

2.『仕事ではじめる機械学習』

「機械学習って仕事で使うにはどうすればいいんだろう」とか、「そもそも小難しいことをやらずに簡単な方法で実現できるほうがいいんじゃないか」とか、そういう観点で切り込んでいる本なんです。これは業務で機械学習を使ってAIを組み込んでいきたい方には必ず一度は読んでいただきたい本ですね。

なんでもかんでもAIや機械学習を取り入れればいいってものではないですよね。

はい、「そういう観点も持ってやろうね」というイメージです。小難しい知識がなくても、「何ができるのか」「どういうふうに進めていくのか」「機械学習を使うことでどういった結果を扱うことになるのか」ということが書いてあるんですよ。

機械学習というものを「活用する」という観点から書かれているんですね。

数式とかプログラミングのコードとかいっぱい出てくるのかなと思うかもしれないですが、それほど出てこないです。プログラムが分からなくても読めます。ビジネスパーソン向けです。

プロジェクトを立ち上げてプログラムは分からないけれど全体像は分かりたいという人は読んでおいたほうがいいということですね。

はい。社長が「何かAIでやれ」と言ってきて、分からないまま期限が迫って切羽詰まってきて…となる前に、これを読んでほしいですね。
 
この2冊とも著者の方の経験をもとに書かれた本なんですよ。実体験からの話をしているので、まずは守破離の「守」だと思って、その中に飛び込んでみるといいですね。読んで分からないところがあっても、何が分からないのか洗い出して、分からないキーワードがあったらググって調べて、というようにメモを取りながら学んでほしいです。

3.『PythonとKerasによるディープラーニング』

「Python(パイソン)」と「Keras(ケラス)」…言葉が難しめになってきました。

「Python」が何かというと、これはプログラミング言語ですよね。機械学習とかAIのプログラムを作るときに一番使われている言語です。なぜかというと昔からPythonを使う人たちの周りにPythonを使ってデータ分析をしたいという人たちが多くいて、いろんなデータ分析に必要なツールが開発され続けて、共有され続けて、進化し続けてきて。その結果、「もう機械学習というのはPythonを使わないとそれらの便利なツールを使えないよね」「他の言語でやる必要ないよね」「Pythonでやろうよ」みたいになっているんです。

なるほど。

その中のツールのひとつが「Keras」です。特にディープラーニングといわれる画像認識や動画認識といった複雑な学習をさせるときのプログラムの集合体で、簡単に使えるんです。それを使って実際にどういう流れでどういうふうにコードを書いて学習をさせていってその結果をどう見るのか、といった一連が全部書いてあるんですよ。

社長に「AIで何かやれ!」と言われて「何をどうすればいいんだ?」「具体的な進め方が分からない」という人にはいいですね。で、この本に関しては実践的な内容も含まれていると。

そうですね。これは読みながらコードを書けるという感じですね。ただその内容はかなり勉強をしてから、200~300時間くらいは勉強してからでないと、おそらくこれの真の良さが分からないと思います。

じゃあ2冊目と3冊目の本の間には壁があるような、だいぶ先にあるような感じでしょうか。

そうですね。だからこれは持っておいたほうがいいんですけど、果たしてどこまで使うかは…エンジニアになるわけではない人にとっては、なんとなくイメージが分かって手だけ動かせれば満点という感じですね。でもそこまで来たらすごいな!

(笑)

なぜこの本を紹介したかというと、1冊目2冊目は当たり前のようにリテラシーとして知っておいてほしいことなんです。これはもう絶対持っておいたほうがいいです。でもどこまでやればいいのかは難しいじゃないですか。私も説明するのがすごく難しくて。そんなときに、「2冊目と3冊目の間にあるんですよ、それが」という感じで勧めてます。全体像は理解してほしいんだけど、コードは書く必要がない。でもコードを書かないとイメージが分からない。でもここまではやる必要はないよね、という2冊目と3冊目のはざまが、リテラシーのゴールかなと思います

じゃあ、自転車に乗る方法みたいな本をいくら読んでも、実際にこいでみないと分からないよね、ということでしょうか。

そう、それです!本格的じゃなくてもまずはこうやってこいでみようね、と。教習付きで。

やっぱり手を動かしてみないことには本当の意味での理解ってしにくいですよね。

リテラシーを身につけることは「責任」

リテラシーがあるとどういいんですか?

仕事を企画して発注するときに役に立つと思います。どこに難しさがあるのか、どこに工数を割くべきなのかとか、どこに最も付加価値があるから、目の前の人に何を依頼するのが一番いいのかとか。

あー、なるほど。

企画から任せるのがいいのか、企画はこちらである程度固めて渡してあげたほうがいいのかとか。あと、プログラムの性能をどうとらえるべきなのか。そうでないと「100%こうなるようにやってください」と言っても「100%なんて難しいよ」なんてことがあるかもしれないです。

確かにそれは知っておかないと。

そうじゃないと発注を間違えるんですよ。納品の期間とか品質とか。相手が「いや、それは難しいですよ。こうしたほうがいいですよ。」と言っても、自分が分からなかったら言い返しちゃうかもしれない。逆に相手は正論なのに言いくるめられてる気になっちゃったり。

食い違いが起きそうですね!自分が理解していないために起きてるってよくないですよね。

自分ごとと捉えて自己責任でしっかりやろうという人ほど、リテラシーはあったほうがいいです。

じゃあ、プロジェクトを回していくような方にとっては、リテラシーを身につけるというのは「責任」ですね。リテラシーは「学んでおいたほうがいいのかな?」くらいの気持ちだったんですが。

プロジェクトを推進する予定があるのであれば、絶対やったほうがいいです。やらないとだめです。新しい海に飛び込むのは大変だと思いますが、やらなくなったら自分の進化が無いですから

進化していきたいと思います。ありがとうございました。

まとめ

今回おすすめしたのは以下の3冊です。
1.『いちばんやさしい機械学習プロジェクトの教本』
2.『仕事ではじめる機械学習』
3.『PythonとKerasによるディープラーニング』

1、2冊目はリテラシーを身につけるためにぜひ手に取っていただきたい本です。さらに手を動かして機械学習の入門から応用まで一連の流れを体験されたければ3冊目にも挑戦してみてください。

もっと手を動かしてPythonのコードを書いてみたい!と思われた方は、下記のブログも参考にしてみてください。
■「Pythonをゼロから勉強してデータサイエンティストになるまで自力でやりきる無料教材10選」の記事はこちら

DIVE INTO CODEのことをもっと知ってみませんか?