あさのひとりごと

3日坊主にならないように、全力を尽くします。 記事は個人のひとりごとです。所属する組織の意見を代表するほど、仕事熱心じゃないです。

【書評】技術者のための基礎解析学を読みました!

昨今のアプリケーション開発はどんどんインテリジェント化しており、 深層学習など高度な数理を必要とする技術に関する知識がエンジニアにも求められています。

そもそもコンピューターサイエンスに携わる人における「数学」は、小説家にとっての「国語」と同じなので、、、 よいアウトプットを出すためには、必ず基礎知識として学んでおかなければいけないと思います。

が、大学を卒業してあまりにも時間が経ってしまい 記憶が薄れている、、、いや、そもそもきちんと勉強した記憶が定かで、、、、、、(笑) という人は多いのではないでしょうか?

本書は自分のペースで少しずつ自習ができる書籍で、私にとっては大変勉強になりましたので書評をまとめました。

まさに、大学生のときに読みたかったわこれという感想です。

www.shoeisha.co.jp

前提読者

この本の前提読者は、理系大学の教養課程で学ぶ数学を履修したことがある方向けです。

ぶっちゃけセンター試験のような受験数学と、大学の教養課程で学ぶ数学は別物なので、文系の方には多少しんどいかもしれません。

が、途中計算を端折らず、ごまかさず丁寧に展開しているのが、本書の大きな特徴(逆に、そういうたぐいの自学自習出来る書籍は、大学の教科書でもほとんどなさそう)なので、時間をかけてゆっくり読み進められると良いかなと思います。

第1章 数学の基礎概念

集合と写像や、実数とは、、という基本的な内容ですが、1-2で実数の完備性について詳しい説明があります。わたしはこの実数の完備性について、この本で初めて知ったのですが、、、、これは、後述する関数の連続性を考えるときの基本的な考え方になります。

第2章 関数の基本操作

ここでは、関数の平行移動や拡大縮小、合成関数や逆関数など基本的な計算の仕方が丁寧に説明されています。文章での説明だけ読めば十分に理解できますが、具体的な関数を挙げてグラフによる例が説明されています。2-2では、関数の極限でヘビサイド関数の説明や、関数の連続性に関する丁寧な説明があります。

わたしは工学部の出身で、機械力学を専攻していましたので、完全に「数学を道具として使う」だけで、数式による事象のモデル化や式展開、離散化処理などなど「計算」はできるのですが、「定義」や「定理」など理論的なことはほとんど分かっておらず、「この関数は閉区間において連続として扱う、ゆえに、、、(キリ」という理解しかしていなかったのですが、「むむむむむむむむむ、ちょっと、、まっ、、て、、、連、、、、、続、、、、、、と、、は?!?」という深淵をみてしまい、あとは完全にアレです。

第3章 関数の微積

ここでは、関数の微分積分について取り上げられています。微分係数とはなんぞや、導関数とはなんぞや、という高校数学ぐらいからのレベルで易しい説明があります。 具体的に計算例をあげて、かなり具体的に導関数の計算方法を説明されているので、文系の方で「わ、、、わからん、、、」となってしまった方は1章2章はいったん読み飛ばして3章と4章から始めて、理解できたところで1章2章に戻ればいいと思います。

積分に関しても、まずは区分求積法で近似する手順を順を追って説明されています。原始関数とは、、ロルの定理とは、、平均値の定理とは、、、部分積分とは、、など基礎的なことをごまかすことなく、数式できちんと追っていて、すごい! わたしだったら絶対に「部分積分の公式です、覚えましょう(キリ」と言ってしまいそうなところです。

第4章 初等関数

いわゆる、おなじみの指数関数・対数関数・三角関数を、しつこくきっちりかっちり数式を追いながら説明されています。機械学習でよくさらっと登場するネイピア数ですが、そもそもこれの正体はなにものなのか、、が熱く語られています。 三角関数も、高校数学レベルから説明がされています。内心「(基礎のキなので)加法定理や余弦定理はさすがに説明要らないんじゃ、、、、、」と思いましたが、きちんと図を書いて証明されています。

第5章 テイラーの公式と解析関数

関数の近似で使われるテイラー展開についての説明があります。テイラー展開も、機械学習ナチュラルに多発するキーワードだと思うんですが、ここでも数式を使いながら厳密に証明がされています。私は、本書を読むまで無限小解析がよく分からず、「0に近づく速度??と、、は?」という状態だったのですが、ここの説明でだいぶイメージできるようになりました。そして、収束と発散。これは大学のときに読みたかったなと思いました。

第6章 多変数関数

機械学習や数値解析では高階偏導関数がばんばん出てきます。が、その数式の意味するところをきちんと理解しておかなければ、機械学習や数値解析で、一見それっぽいモデルを作ったりシミュレーションしたりの実装はできたとしても、モデルや解析結果の妥当性を1bitたりとも議論できなくて、ぐぬぬぬぬとなるはずです。

ここでは、全微分偏微分は何が違うのか、、、から始まりテイラーの公式を使って近似する説明がされています。一見数式が複雑で、難しそうに見えますが、力業で計算するだけなので、5章までの内容さえ理解しておけばそんなに難しくないのではないでしょうか。

まとめ

とても丁寧な良い本なので、長く広く読まれる本になるといいなとおもいます。

機械学習の、、、、」のような帯があると、「これを読めば機械学習が分かるのか!」と期待されてしまう方もいるかもしれませんが 「機械学習のための数学」というのはたぶん無くて、基礎にあるのは一般的な「線形代数」だったり「統計」だったり「微分積分解析学)」だったりするかなと思います。なので、これらをきちんと学ぶほかなし。という気がしています。

で、わたしも本を書くものの端くれとしての感想ですが、、、

もし、私がこのタイトルで編集者から企画を頂いたとしたら ごく簡単な最小二乗法やニューラルネットワークのようなものを例題にあげて、そこに出てくる数式の意味や解き方をイラストで図解して書いてしまうと思います。

商用誌の世界では、ある程度の部数を売らないといけません。そのため、表面的な内容をさらって読者に手を動かしながら理解してもらえる本は、安牌なのです。

きっと、読者のみなさんも「具体的で分かりやすい!」「すぐに理解できた!」みたいな満足感をもってもらえるとは思いますが、、、、

残念ながら、そのたぐいの本を読んだだけでは「最小二乗法」と「ニューラルネットワークしか分からないのです。

数学はそういうものじゃない!!

あらためて、中井さんすごいよなぁ。さすがだ。。。。という感想を持つとともに、 続編の線形代数と統計もこれから刊行されると思いますので、 みなさん大いに楽しみにしてください!!

こちらもすでに原稿を読ませていただいていますが、 線形代数も統計もとても読みごたえがあります!

ただ、中井さんの執筆する速度より、私が読んで理解する速度のほうが遅くてですね、、、、、(草)

おわり

© 2017 ASA.