MATHEMATICS FOR MACHINE LEARNING の読書記録

いくつかの Kaggle competitions を経験し数学の復習が必要だと気づいたので Mathematics for Machine Learning を読む。まずはトライアルで2章を読み切る。新・数学の学び方 を参考に以下のルールで読みすすめる。

  • 数式を完全に分かるまで追う。
  • 実際に手を動かして同じ式変形をする。分からない場合は覚えるまで式変形を繰り返す。
  • 記録をここに残す。
  • どうしても分からないところは誰かに質問する。
  • これがうまくいくようであれば仲間を募る?
  • https://mml-book.com

読後の感想など

数字

  • 355 ページ 12章
  • 70日
  • GoodNotes の手書きノート407ページ

なぜ読んだか

冒頭にも書いたが Kaggle Indoor コンペでチームメイトの Saito さんのやっていることが分からなかったのが直接の動機。それ以外にも Discussions で線形代数の基礎が分かっていれば深い理解が得られそうな場面もあった。 なので機械学習をからめて線形代数を網羅的に勉強したかった(正確には復習)。

何を得たか

以下の2つが大きい。

  • 70日間ほぼ毎日、数式を書く・追うことを繰り返して勘を取り戻していった(助けて下さった Twitter の皆さんには感謝しかない)
  • 網羅的に勉強したのだから大丈夫。という謎の安心感。(これはCSを網羅的に学習したときも感じた。)

Twitter での記録 (上が最新)

  • すべてのノート
  • 12章
  • 11章
  • 10章
  • 9章
  • 8章
  • 7章
  • 6章
  • 5章
  • 4章
  • 3章
  • 2章

    • 2021/6/16 朝。Exercis 2.20 終わった。 e と f の答えが合わず悔しい。どこで間違った。これにて2章読了。合計20日・ノート117ページ。サポートしてくださった。@Ak141J, @kengohirachi, @__garzon, @NeXTSTEP2OSX, @TwShotaro , @melonsode (敬称略)本当にありがとうございました。3章も挫折禁止でいきます。
    • 2021/6/15 夜。Exercise 2.20 d まで。もう少し
    • 2021/6/15 朝。Exercis 2.15 G={(a-b, a+b, a-3b)|a,b∈R} の basis の求め方が分からない。(a-b, a+b, a-3b) が basis かとも思ったが a,b∈R なので定まっていないから違う。(a-b, a+b, a-3b) = (a-b)[1 0 0]T + (a+b)[0 1 0]T + (a-3b)[0 0 1]Tと書けるから the canonical basis でよいのだろうか
      • 良くない。詳細は__garzon@さんのコメント。
    • 2021/6/14 Kengo Hirachi (@kengohirachi) さんによるヒント で Exercise 2.12 光が見えた。本当に感謝。
    • 2021/6/13 Exercise 2.12 で突然 basis of U1 ∩ U2 を求めろと言われお手上げ。そもそも intersection について言及なかったはず。
    • 2021/6/12 Exercise 2.5 まで。2.2 はぱっと見の難しさがすごい。読み解くとギリギリ分かる範囲。
    • 2021/6/11 (1) Rank Nullity Theorem の唐突感。何がうれしいのか分からず戸惑う。(2) Affine subspaces のところで間違いを見つけて errata 見たら修正されてた。(3) というわけで2章は Excercises を残すのみ!
    • 2021/6/10 Image and Kernel の Definition 2.23 まで。Basis Change は数式が多かった。おかげで飛躍が少なく理解しやすかった。Kernel/null space と書いている割に文脈によっては null space を多用しているけど ker(φ) と。面白い。
    • 2021/6/9 Theorem 2.20 (Basis Change) の途中。やりたいことの背景は分かるのであとは式を丁寧に追うだけのはず。
    • 2021/6/8 (2.94) は https://twitter.com/Ak141J/status/1401922706858135554 において @Ak141J さんが教えてくださった。方法で完全に納得しました。
      • 2021/6/10 更新。Nyoho@NeXTSTEP2OSX さんに間違いをご指摘いただいたので修正。このスレッドから追える。
    • 2021/6/5 式 (2.94) がやはり分からない。あいまいな理解を減らすために 2.7.1 を全体的に見直して 2.94 直前までは理解できたのだが分からない。明日もうすこしネットで同じ内容のものを探そう。
    • 2021/6/3 (2.94) まで。Example 2.21 がが理解出来ないので明日も続ける。任意のx∈V, y∈Wのlinear mapping について話していたのにいつの間にか basis の変換の話に。
    • 2021/6/2 (2.84)まで。generating set, basis, rank 。新しい概念がたくさん。rankは分かったような分からないような。
    • 2021/6/1 (2.76)まで。Linear Independence をクリア。定義、例、直感的な説明、手を動かしてようやく理解できた気がする。
    • 2021/5/31 Example 2.12 まで。Example 2.12 内の The intersection of arbitrarily many subspaces is a subspace itself. がしっくりこない。

      • Kengo Hirachi (@kengohirachi) さんによるコメント 参照。いつもコメントくださってありがたい。
    • 2021/5/30 事情により時間を取れず

    • 2021/5/29 式(2.64)まで。Gaussian Elimination の計算に苦労した。Group を学んでからの Vector Spaces の定義は分かったような分からないような。
    • 2021/5/28 式(2.53)まで。きちんと追えたと思う。
    • 2021/5/27 式(2.45)まで。式(2-40)から(2-43)が最初全然分からなかった。Ax=b の解 x=x' 。Ax=0 の解 x=x'' はA(x'+x'')=b を満たすので x'+x'' は Ax=b の解であることは分かる。だがなぜそれが一般解なのか。Ax=0 を満たす解を2種類求めているのはなぜなのか?が分からなかった。
    • 2021/5/26 式(2.37)まで。さすがに覚えている内容だが式をきちんと追った。
  • 1章

    • 2021/5/26 本書の読み方的な章。