下町柚子黄昏記 by @yuzutas0

したまち発・ゆずたそ作・試行錯誤の瓦礫の記録

日曜数学会に参加しました&「プログラミングのための線形代数」を読みました

先日、日曜数学会というイベントに招待いただき、LTをしてきました。趣味で数学をやっているひと(=日曜数学者)が集まって、お酒を飲みながら研究を共有する会です。

f:id:yuzutas0:20150831233551p:plain

他の参加者のスライド

どんな話をしてきたか

f:id:yuzutas0:20150831235357p:plain

再学習の経緯

  • WEBサービスを作っているとレコメンドやラベル分類といった機械学習をやりたくなります。
  • ちょっとした実装ならライブラリとサンプルコードに乗っかれば簡単にできます。
  • しかし、がっつりカスタマイズしようとすると、線形代数を復習しておかないと苦しい場面が出てきます。
  • 線形代数とは言っても、計算問題の解法や証明の再現だけではダメで、概念を理解しておかないと応用が利きません。
  • せっかくの発表の場を得られたこともあり、上記を念頭に置いて線形代数を勉強し直しました。

再学習の内容・感想

  • 実際には『プログラミングのための線形代数』という書籍を通読しました。
  • 読んでみて「空間上のある値を別の見方に移す」のが行列であり、「線形空間における代数の作法」が線形代数と呼ばれる分野なのだと、自分なりに理解しました。
  • この理解は間違っているかもしれませんが、単なる数字の羅列・無味乾燥な手続き処理だったものに意味が与えられたということが、自分にとっては大きな一歩でした。
  • 読み進めるうちに「学生時代にやったあの計算や証明はこういう意味だったのか!」という納得感と感動を覚えることが何回かありました。

書籍の内容

目次は次の通り。基礎学習はほぼ網羅していると言っていいのではないでしょうか。

  • 1章:ベクトル・行列・行列式 - 「空間」で発想しよう
  • 2章:ランク・逆行列・一次方程式 - 結果から原因を求める
  • 3章:コンピュータでの計算(1) - LU分解で行こう
  • 4章:固有値・対角化・Jordan標準形 - 暴走の危険があるかを判断
  • 5章:コンピュータでの計算(2) - 固有値計算法

書籍の特徴

f:id:yuzutas0:20150831233716p:plain

図や日本語での説明がしっかりしているのに加えて、数式と照らし合わせながら読み進めることができます。私が学生時代に指定された線形代数のテキストは数式だらけ+略しすぎて何が言いたいのか分からない図しかありませんでした(単に私の学習不足によるところも大きいでしょうが)。一方で、分かりやすさを売りにする書籍は扱う範囲や数式が浅すぎて実用に耐えられなかった印象があります。本書は両者の不満を解決していたので、非常に助かりました。

f:id:yuzutas0:20150831233832p:plain

また、何と言っても素晴らしいのが「この数式や説明が分からなかったら、XXXについての理解がきちんとできていないからだ!XXXページを読み返せ!」という注釈が大量についている点です。ついつい分かったフリをして読み進めがちですが、このように何度でも戻って復習できる工夫がなされているので、着実に土台を固めることができます。

書籍の注意点

  • 「プログラミングのための」と銘打っており、演算処理に関する言及もあるものの、どちらかというと「実務で使えるように概念を説明する」という側面の方が強いです。なので、プログラミングをしない人でも本書の対象になり得ます。
  • 説明用のサンプルコードは書いてあるものの実用に耐えうる内容ではなく、結局は有名ライブラリを使ったり、数学の専門家に依頼するように、という注意書きがされています。なので、書籍に書いてあるアルゴリズムをそのまま使うのではなく、あくまでも概念を理解するためのものだ、という認識で読む必要があります。
  • どうしても理屈の説明がメインなので、線形代数の問題をがっつり計算するという書籍ではありません。実際に手を動かして計算することで理解が進むのだ!という人は問題演習に特化した書籍の併用をお薦めします。

その他

参加者へのメッセージとして「私と同じような初学者がいたら本書を勧めたら良いのではないでしょうか」「数学の輪を広げるには、レコメンドアプリを作って一発儲けられないかな、みたいなことを言っている俗人を引き込むことも有効かもね」という話をしました。

プログラミングのための線形代数

プログラミングのための線形代数

おわりに

ちなみに、私が参加したのは第2回目で、今後は2〜3ヶ月に1回くらいの頻度で開催するとのことです。興味のある方はぜひ参加してみてはいかがでしょうか。