連休中に「ディープラーニングの数学」と「身近な数学」と「Google Colaboratory(Python)」でじっくり数学を復習しました

f:id:karaage:20190416010937j:plain:w640

「最短コースでわかる ディープラーニングの数学」「身近な数学」を読む

 GW(ゴールデンウィーク)中は日経BPさんから献本いただいた「最短コースでわかる ディープラーニングの数学」(以降ディープラーニングの数学)と、ほけきよ(id:imslotter)さんから献本いただいた「身近な数学」と数学と名のつく本2冊をじっくり読みました。

f:id:karaage:20190416010937j:plain:w640

 全然違う繋がりで献本いただいた両本ですが、奇しくも同じ「数学」というキーワードがタイトルにあるということで、大胆にもまとめて書評を書いてみたいと思います(笑)

 また、両者とも付録として、内容の理解を深めるためのPythonコードがGitHubで公開されているのですが「Google Colaboratory」(以降Google Colab)を使うことで、Python環境を構築することなく、手軽にコードを実行できることが分かったので、その活用方法も合わせて紹介しようと思います。本の理解が深まると思いますので、本書をお持ちの方は、ぜひご覧ください。

「ディープラーニングの数学」は数学忘れた社会人にはめちゃくちゃハードな内容

f:id:karaage:20190416010850j:plain:w640

 ディープラーニングの数学」は、名前の通りディープラーニングのバックグラウンドに必要な数学を基礎から勉強し直す、数学を完全に忘れた私のような社会人にはめちゃめちゃハードな本です。レベル的には、大学の学部生レベルくらいの印象です(高校生でも頑張れば読めるかも)。完全文系で数学の素養がないと、正直結構辛いと思います。

 巷に溢れるディープラーニングのセミナーや書籍といえば、コードをちょちょいと弄って簡単に凄い結果が出て「ディープラーニングすげー!そしてそれを使える俺すげー!」という気持ちにさせる軟派なものが溢れていますが、この本はそんなことは無くひたすら硬派です。途中になると、ディープラーニングの枕詞を忘れてしまい、「あれ、何で自分数学の復習やっているのだっけ」という気持ちになることうけあいです(実際自分はなりました)。

 ただ、個人的にこういった基礎はめちゃめちゃ大事だと思っています。「ディープラーニングって、便利なフレームワークたくさんあるから、数学なんて分からなくてもそれ使えばチョチョイのチョイでしょ?」と思う方もいるでしょうし、それもまた事実です。しかしながら、ディープラーニングはブラックボックスな分、うまくいったときは良いのですが、うまくいかなかったとき「その原因が何なのか?」「何をすればうまくいくのか?」ということを考える必要があります。その際、ディープラーニングの基礎となるアルゴリズム、そしてそれを支える数学の知識を知っているか知っていないかでは、非常に大きな違いが出てきます。

 問題が発生したら、その問題が起こっている分野に対しての基礎的な知識が重要ということは、多くの経験あるエンジニアの方なら実感していることではないかなと思います。

 そして、基礎的な知識というのは、幅広く応用ができるものでもあります。たとえディープラーニングのブームが廃れたとしても、この本で学べる微積分・確率・統計等の知識は、決して無駄にはならず、多くの他の分野に対して応用がきくものと思います。政府が検討しているという100万人規模のAI人材育成も、このような基礎をしっかり学ぶものであって欲しいなと切に願います。

 個人的には、直ぐに役に立たないという点においても、非常に重要という点でも、ディープラーニングの書籍では「ゼロから作るDeep Learning」に並ぶ良い本ではないかなと思います。すぐ凄いことやりたいという人には勧められませんが、ある程度ディープラーニング触って、これからじっくり知りたいという方にはおすすめです。

身近に数学を感じる思考を身につけられる「身近な数学」

f:id:karaage:20190416010907j:plain:w640

 著者のほけきよさんの人気ブログ「プロクラシスト」の理系ネタ記事がきっかけとなって生まれた本です。理系ネタ記事は以下から読めます。

 書籍には、上記の人気理系ネタ記事を丁寧に詳しく解説したものに加え、この本のために書き下ろした理系ネタが加えられています。ご本人もブログでおっしゃられていますが、ターゲットは「数学に興味を失ったオトナたちと、背伸びしたい理系高校生たち」です。ちなみに、私は完全に前者ですね。

 どのネタも非常に面白いのですが、私のお気に入りは「ファミレスのアレの体積を求めてみた」ですね。求め方として2つの解き方が紹介されるのですが、簡単に解ける方法の方が完全に目から鱗で、滝のようにウロコがポロポロこぼれ出ました。

 それぞれのネタの面白さはもとより、自分が見逃してしまう普段何気なく目にしているものに対して「そういう思考ができるんだ!」という気づきを与えてくれる本ですね。ほけきよさんは、リアルで何度かお会いしたことあるのですが、会うたびにその洞察力、思考力、発想力に驚ろかされる非常い優秀な方です。なんでそんな考え方ができるのだろうと不思議だったのですが、普段からこういう頭の使い方をしてトレーニングしているからなのだなと納得しました。

 実際、この本読んでからファミレスに行ってアレを見るたびに「もっと、ほけきよさんのように頭使って物事を見ないといけないな」と反省するようになりました。反省するだけのことが大半ですが(笑)

 そのほけきよさん、実はi Smart TechnologiesというハードウェアスタートアップのCTOであり、経歴も含め凄い人です。ブログのプロクラシストの理系ネタはもちろん、「データ分析勉強アドベントカレンダー、全部俺」や「ひとりでIoTまるっとチュートリアル Advent Calendar 2018」という全部俺Advent Calendarも必見ですので、興味を持った方は本と合わせて上記の記事を読むこともオススメです。

「Google Colab」を活用して本の理解を深めよう

 ここからは、本に載っていない独自ネタです。ディープラーニングの数学も、身近な数学も、本の理解を深めるためのPythonコードがGitHubで公開されています(以下参照)。

 ただ、Python環境を構築するのは、初心者の方にはそれなりに大変だと思います。そんな方にはGoogle Colabを使用するのがおすすめです。Google ColabとそのTIPSに関しては、以下記事参照下さい。

 上記記事に書いてある、「GitHub上のJupyter NotebookファイルをGoogle Colaboratory上で実行」という項目を使えば、GitHub上のJupyter NotebookファイルをそのままGoogle Colabで実行することが可能です。

 具体的には、以下のようにGoogle ColabでGITHUBというタブを選択して、GitHubのリンクを入力するだけです。

f:id:karaage:20190425130252p:plain:w640

 いくつか試して見ましたが、ほとんどのファイルは、そのまま実行することができました。

 是非書籍の理解を深めるために活用下さい。

まとめ

 「ディープラーニングの数学」と「身近な数学」の書評と「Google Colab」で書籍付録のPythonコードを動作させる方法に関して紹介しました。昔、数式を1つ載せると本の売り上げが1割下がるというまことしやかな噂を聞いたことがありますが、両書ともそんなことは全く気にせず、数式がバンバン出てくるハードな内容です。

 といっても、ものすごい高度な数学が出てくるわけではないので、学生だけでなく、「久しぶりに数学復習しないとな」と思った私のような社会人にもオススメです。数学の勉強しなおしのきっかけに、興味湧いた方は是非購入してみて下さい。2冊まとめてもオススメです(笑)

 また、実際にディープラーニングを手を動かして試してみたいという方は、以下で紹介しているチュートリアルを試してみるのもおすすめです。ぜひ理論と実践をバランスよくこなして理解を深めてみて下さい。

関連記事

変更履歴

  • 2020/06/14 関連記事追記