書評:『Pythonからはじめる数学入門』


2016年 10月 19日

Oreilly_pytho_mathintro (213x300).jpg

Pythonからはじめる数学入門
Amit Saha 著
黒川 利明 訳
オライリー・ジャパン
2016/5/20 発行
A5, 304ページ
ISBN978-487311-768-3

本書は、数学の入門書であり、かつPythonの数学に関連する主要なライブラリの入門書でもある。
というか、今はやりの人工知能、Deep Learning で Pythonがやたらに使われているのだが、Pythonの標準部分しか知らずに、急にPythonで書かれたDeep Learningのプログラムの勉強を始めると、Deep Learning自体を勉強する前に、基本的なことでつまづく可能性があるのだが、この本は、そのあたりのことを一通り教えてくれる。
でも、本書はDeep Learningのために書かれたのではなく、あくまでPythonで数学遊びができるようになるための入門書である。

本書を読む前に、一応Pythonの入門書を読み終えておいた方がよい。

数学については、せいぜい高校の数学程度の知識があれば十分だ。高校数学で挫折した人でも、本書で数学再入門が可能な本だ。

本書で教えてくれるPythonのライブラリは3つあり、その基本的な使い方を、数学的な素材を使いながら説明している。

最初にNumPyの説明がある。
NumPyは、数値計算などを行うための基本である。Python自体はリストを提供しているが、様々な数値計算、統計処理、技術計算などを行うとき、圧倒的に使うのが配列であり、行列である。
Pythonのリストで代用できないことはないが、猛烈に遅い。でも、NumPyを使って、配列演算、行列演算などを行うと、非常に高速に処理ができ、人工知能で要求される処理が可能になる。NumPyは、Deep Learning にはなくてはならないものである。

次に、matplotlibというグラフを描くためのライブラリの説明がある。
AIに限らないが、処理がうまくいっているのか破綻しているのかを数字の羅列で見るのは大変だ。でも、適切なグラフで示せば一目瞭然のことが多い。Deep Learning で学習の進行状態、過学習の有無など、本当に分かりやすくなる。

最後に、SymPyの説明がある。
これは、数値計算ではなく、式を記号のまま操作しようということである。方程式を、ちゃんと根号や記号が含まれたままで、処理しようということだ。
級数や微分なども、もちろん扱える。

これらのライブラリについて本気で知りたいときには、当然オリジナルを見に行こう。
http://www.numpy.org/
http://matplotlib.org/
http://www.scipy.org/

さまざまな情報が山のように提供されている。もちろん英語だけれど、プログラムの英語は簡単な中学英語レベルだから大丈夫だろう。