俵言

しがない社会人が書く、勉強とかのこと。最近は機械学習や kaggle 関連がメイン。

感想文:データサイエンスのための数学 を読んでいます (その1)

はじめに

ちょい前から基礎的な数学を復習したいという考えが強まり(特に線形代数と確率論)、さりとて難しい本を読み始めると挫折するのは必至...ということで、半年ぐらい前に出た データサイエンスのための数学 (データサイエンス入門シリーズ) を読んでいます。

選定基準は数学の知識全般というよりはデータサイエンスに関連しそうなところから基礎を復習したいという気持ちがあったため。もちろん内容的な不足がある可能性は否めないのですがとりあえず基礎ということで。

内容としては第Ⅰ部(1~6章)が線形代数、第Ⅱ部(7~11章)が微分積分、第Ⅲ部(12~14章)が確率 となってます*1。 少なくとも行列のランクとか固有値の話が復習できればいいだろうという気持ちで読み始めました。

さて、この記事はある程度切りの良い所まで読み進めたら備忘録あるいはチェックポイントとして残すために書いてます。読むためのモチベーションにも多分(?)なる。

事細かに本で勉強した内容を書こうとすると挫折するため(2敗)、感想文位が本当に丁度良いんですよね(というか詳細は本を読めという話なので...)。まあ気楽にご覧ください。

今回は 1 - 3章 の感想(的な何か)です。4章以降は読み進めるごとに書く(予定)。

目次

1章 行列とベクトル (p.3 - p.40)

ベクトルや行列の定義、その演算の定義といった前提知識の話が主。あ、正則行列って逆行列が存在する正方行列でしたね...(曖昧になってた)。
線形代数やったことある人なら書かれている定理は基本的に証明できると思われます(一部を除く)。書き下せば証明できる系なので。

個人的に覚えておくと役に立つなと思ったことは、行列は縦ベクトルを横に並べたもの、または横ベクトルを縦に並べたもの捉えられるという話です(まあ当たり前っちゃ当たり前の話なのですが)。
ちゃんと書くと、  m × n \ 行列 \ A  m 次元縦ベクトル  a_j \ ( 1 \leq j \leq n) を横に並べた


A = \begin{pmatrix}
a_1  & a_2  & ... & a_n \\
\end{pmatrix}

と見なせるし、あるいは  n 次元縦ベクトル  a^{(i)} \ ( 1 \leq i \leq m)転置(横ベクトルにするため)を縦に並べた


A = \begin{pmatrix}
{a^{(1)}}^{\mathrm{T}}  \\
{a^{(2)}}^{\mathrm{T}} \\
. \\
. \\
{a^{(m)}}^{\mathrm{T}} \\
\end{pmatrix}

とも見なせるということです。

これを意識すると、二つの行列  A, B の積  A B i, j 成分が内積  \langle {a^{(i)}}, b_j \rangle で表現できることがすぐにわかり、この後よく出てくる行列にその行列の転置を左からかけた  A^{\mathrm{T}} A i, j 成分が  \langle a_i, a_j \rangle であることがわかりやすくなります。

行列の積がシンプルにとらえられるようになるので色々と非常に楽になりました(今まで書き下すときは大体  \sum を使ってた顔)。

2章 ベクトル空間 (p.41 - p.68)

この本の線形代数の前半の山場な気がします。1章は具体的に書き下せるので記号表現を理解すれば問題ないのですが、ベクトル空間の話は抽象的な話になるのでちょっとややこしい。
ベクトル空間を張る基底、写像カーネル(※kaggle でも CNN でも SVM でも Linux でもない)、行列の rank、... などなど色々な概念が登場。

読んでてあー完全に忘れてたな―と思ったのは 写像射影 の違いですね。
写像は大雑把に言えばある集合の元からある集合のただ一つの元への対応を指す、広い概念。一方、射影はある空間からその空間を直和分解した部分空間への写像を指すので結構特殊。
射影が「影を落とす」って意味なのはイメージはわかるし結構好きなんですが"しゃ"の音が被ってるせいで(僕の中で)混ざりがち。

因みに変換のちゃんとした意味は(ちょい雑な言い方ですが) ある集合から同じ集合への写像 で、これも「あ、そうなんだ」となりました。

結局重要なのは行列がある空間からある空間への線形写像と見なせるということで、空間の概念と絡めて行列の性質が色々考えられることです(適当)。

3章 行列式 (p.69 - p.76)

何かやたらとページ数が薄いんですが、「定義はこれです! => こういう定理(性質)が成り立ちます! => 逆行列も余因子使って求まります!」という感じで「あっ、ハイ...」とちょっと戸惑いました。
ちゃんと説明すると大変ってことだと思うんですが*2、ページ数からしてここに関しては力を入れないことにしたのかも...?

行列式によってその行列の列ベクトルで張る空間のボリュームを捉えられるみたいな説明が登場するんですが、あんまりしっくり来てないです(式の上では体積を表してるのはそうなんですが...)。

余因子を使って行列式求めたり逆行列求めるの超懐かしい。

おわりに

適当に感想を書いたのでこれで終わりです。あんまり書こうとすると良くないということは過去の経験で痛いほどわかっているので...。

読んでて思ったのは、数学を全然やったこと無い人は読むのがちょいしんどいだろうなと言うことです(それはそう)。巻頭言などでは教育や実践の場での活用を期待するといった記述があり、ある程度の経験もしくは教師の存在が想定されてるのかもしれません。

まあ僕みたいな大学で線形代数とか学んだけどもう大分風化しつつあるって大人には丁度良いレベル感かなって思いました。 一方で、定理とかを「これが成り立ちます(ドン☆」て出されると「なんでや!」て思う気持ちも結構あって、実家に戻って大学の時のノート探そうかなあという気持ちになっています。
たまにモヤっとするのはさておき、実際に手計算で行列の計算とかやると頭の体操にちょうどよいので今後もちょっとずつ読み進めます。

その2 は線形代数の残り(4 - 6章) を読み終わったら書く予定です。むしろ機械学習的にはこっからの固有値、対角化、行列分解が本題なところあるのでちゃんと復習したいところ。1 週間くらいで読めるといいな...。

*1:なんか確率の内容薄くない?と思ったけど同シリーズの別の本でも扱うからっぽいです

*2:冒頭にも「厳密な定義は本書のレベルを超えてしまう」という記述がある