34歳からの数学博士

数学徒・プログラマ・一児の父

2015/11/21 「第5回 プログラマのための数学勉強会」レポート(動画&資料付き)

f:id:taketo1024:20151123203842j:plain

11月21日 渋谷 dots. で開催された「第5回 プログラマのための数学勉強会」のレポート記事です!今回は初の土曜日開催で、会場の規模も開催時間も拡大してお送りすることができました。

当日の朝 とある記事 を見かけて知ったのですが、なんとこの日付を並べた数字は:

 20151121=67^4

と、67 の 4乗 になっているのです! 67 は素数であるだけでなく 幸運数 の一つでもあり、さらに驚くことに左の数字を2桁ごとに分解して足すと:

 20+15+11+21=67

となっているのです…!こんな珍しい日に数学勉強会を開催できたことはまさしく幸運でした。
それでは、早速発表内容を振り返っていきましょう!

1. 「内積が見えると統計学も見える」@kenmatsu4

f:id:taketo1024:20151123204405j:plain

「ベクトルの内積」の幾何的な意味を踏まえ、平均・分散・偏差などを内積を使って表現しなおすことで統計量が視覚的にイメージできるようになります。授業で習う「統計学」は表やグラフが出てくるばかりで「止まっているもの」という印象を受けがちですが、パラメータをアニメーションさせて見ることで統計量の意味が活きて見えるようになりました。

終盤、時間のためスキップした「主成分分析」は LT の最後に発表し直したので、続きを見たい方はページ下部へ!


[ 資料 ]

2. 「円柱、円錐以外の、展開図の描ける曲面」@taro_x

f:id:taketo1024:20151123210110j:plain

小学校で円柱や円錐の展開図を作って立体を組み立てたものですが、それ以外に展開図の描ける曲面はあるのでしょうか?前半では「可展面」であるための条件とそれを満たす見慣れない曲面を二つ紹介し、後半では「非可展」な曲面である球面を細かく近似して地球儀を展開する方法を紹介しました。応用として Theta360 で撮影した全天球イメージを印刷して球面に組み立てたものも見せてくれました。


[ 資料 ]

3. 「独学の不可能性について/群をつくる」@tsurumau

f:id:taketo1024:20151123211251j:plain

テレビでたまたまガロア理論の特集を見たことをキッカケに数学の独習を始めたという @tsurumau さん…しかし数学の一般書と専門書の間には越えられない壁があり、『初学者のための…』と謳う数学書でも何が書いてあるか分からない苦労を重ね「数学の独学は不可能だ」と悟ったそうです。

これは会場でも多くの共感を呼びました。僕も教科書で「自明」「簡単」「省略」といった言葉に出会うたびに脅かされ傷ついたものです。この発表中の @taro_x さんのツイート、そしてその反応の多さからも共感のほどが伺えます:

だからこそ独学だけでなく勉強会や公開ゼミに参加することが大事だと考えるようになったそうです。後半では「群の公理」をもとに、三つの元だけからなる集合にどんな演算を入れると「群」になるかを調べ、それがいかに特別なものであるかを調べるという内容でした。



4. 「回転する円のショートヒストリー」@Hyperion64

f:id:taketo1024:20151123213138j:plain

「深いこと考えずに、計算させて眺めて愉しむ」という主旨で、サイクロイドやエピサイクロイドなど色々な「回転する円」の式と軌跡、それにまつわる歴史や数学者のエピソードを紹介しました。「病的な曲線」は見すぎるとトリップしてしまうので注意とのことです。


Hyperion64 さんのブログにも不思議な曲線やイメージをたくさん標本されていて、こういう数学の愉しみ方もまた優雅で良いですよね。こちらの記事も是非ご覧ください!

5. 「Hybrid Monte Carlo 法の紹介」Kenji Ogawa

f:id:taketo1024:20151123222019j:plain

多重積分をモンテカルロ法を用いて数値計算するための、サンプルを効率的に抽出して計算する「ハイブリッド・モンテカルロ法」を紹介しました。サンプルの分布が分布に与えられたもの一致するための条件(Detailed Balance)と、それを実現する取り出し方(Metropolis法)をデモで説明した上で、分子動力学を取り入れることでいかにそれを改善できるかを説明しました。


[ 資料 ]

6. 「データに隠れた構造を推定して予測に活かす 〜行列分解とそのテストスコアデータへの応用〜」兼村厚範(産総研)

f:id:taketo1024:20151123224928j:plain


[ 資料 ]

Lightening Talk!

今回は LT 枠を設けることができました!各10分間の熱い数学トーク8連発をどうぞ!

1. 「球面上で踊る複素数」 @taketo1024

2. 「『これを買っている人はこれも買っています』実装してみた」 @tomzoh

[ 資料 ]

3. 「複素関数を見る」 @Hyrodium

[ 資料 ]

4. 「ゲームアプリの数学@プログラマのための数学勉強会」 @ryukbk

[ 資料 ]

5. 「グラフィックエンジニア必見!イージングの数学」 @butchi_y

[ 資料 ]

6. 「Google Apps Script で解く算数パズル」 @nekonenene

[ 資料 ]

7. 「プログラマのためのビジネス数学入門」 @masuipeo

[ 資料 ]

8. 「内積が見えると主成分分析も見える」 @kenmatsu4

まとめ

こうやって振り返ってみると本当に盛りだくさんでしたね…!今回も改めて「目に見える数学」は面白いものだなと感じました。歴史的に数学書は印刷技術の制約の中で書かれており、数学者たちの頭の中で広がる豊かな世界は伝えられにくい部分があったと思います。しかしコンピュータがこれだけ進化したのだから「数学の表現」はもっと色々あって良いはず。だからこそ今、プログラマが数学に対して果たすべき役割は大きい!と僕は思っています。

次回は少し先(来年3月?)になると思いますが、発表希望は随時受け付けてますので興味のある方は こちら からお願いします。 今回も写真は 馬場彩 さんに撮って頂きました!

こちらは会場に並べられた @taro_x さんと @Hyrodium さんの作品です。

Special Thanks!

f:id:taketo1024:20151124005709j:plain

CodeIQ さんと HULINKS さんのフードスポンサーで、休憩タイムにコーヒーと軽食を提供することができました。また dots. さんが会場を無料で貸し出してくれたお陰で、このイベントは参加費なしで開催することができました。100人規模のイベントを参加者/運営者の負担なしで開催できるのは本当にありがたいことですし、こういった動きがもっと広がっていけば良いなぁと思います。


togetter.com

2015/07/24 「第4回 プログラマのための数学勉強会」レポート(動画&資料つき)

こちらは 7/24(金) に開催された「第4回 プログラマのための数学勉強会」のレポート記事です。4ヶ月遅れのレポートとなってしまい申し訳ありませんm(_ _)m

それでは5つの発表の動画&資料をどうぞ!

1. 「何もないところから数を作る」@taketo1024

f:id:taketo1024:20151123145404j:plain

「数」は数学の歴史と共に古代より使われてきましたが、19世紀から20世紀にかけて「実数」が数学者によって厳密に定義されることとなりました。「数」は天から与えられたものではなく、人間の手(頭?)で作ることができるということを、プログラマ流の考え方で解説するという試みです。


[ 資料 ]

2. 「今日からはじめる微分方程式」Ryo Kaji

f:id:taketo1024:20151123150824j:plain

制御工学における制御モデルを表現・解析する上で「微分方程式」が使われます。一般に非線形の微分方程式は解を求めることができませんが、RC 回路など特定の系においては「ラプラス変換」と「変換表」を用いることで特殊解を求めることができます。


[ 資料 ]

3. 「忙しい人のための楕円曲線入門」@srtk86

f:id:taketo1024:20151123151450j:plain

「楕円曲線」は現代数学でも広く研究されており、フェルマーの最終定理の証明においても使われました。射影平面上の楕円曲線には演算を定義することができ(数直線上で二つの数の足し算が定義できるように)、標準形に変換することでそれはとても考えやすくなります(難易度は高めの発表です…!)


[ 資料 ]

4. 「コンピュータにおける数表現」@butchi_y

f:id:taketo1024:20151123151549j:plain

私たちが普通に数を表すときは 10進数、プログラマであれば 2進数・8進数・16進数 も使いますが、一般の N 進法以外にも数を表現する面白い方法はある! Excel を使って黄金進法・フィボナッチ記数法で書く方法を説明し、最後には独自で考案したという「物智数」も紹介してくれました。


[ 資料 ]

5. 「音楽とトポロジー」@simizut22

f:id:taketo1024:20151123151606j:plain

音楽を数学的な空間に入れてしまおう!音楽のリズムやピッチに対して「距離」を定義して音楽をその空間に入れたら、それを分類・解析する方法として Persistent Homology による TDA(Topological Data Analysis)が使えるという発表です。(この発表は理解できなくても心配ないですw)


[ 資料 ]

sponsored by CodeIQ

f:id:taketo1024:20151123152604j:plain

CodeIQ さんからのフードスポンサーで、おにぎりとお茶を提供して頂きました。ありがとうございます!


togetter.com

https://codeiq.jp/magazine/2015/08/28348/codeiq.jp

「第3回 プログラマのための数学勉強会」開催しました!(動画&資料つき)

f:id:taketo1024:20150525154952j:plain

どうも、佐野です。5/22(金)「第3回 プログラマのための数学勉強会」が開催されました。今回も各セッションの動画・資料と共に、簡単に内容のご紹介をさせて頂きます。

1. 「プログラマのための線形代数再入門 3」 - taketo1024

f:id:taketo1024:20150525155037j:plain

線形代数再入門シリーズのラストとして、「基底変換と固有値・固有ベクトル」について発表しました。基底変換(座標変換)は応用においても頻繁に使われる手段ですが、2つの座標系を同時に考えるというのはなかなか難しいものです。今回は変換を簡単に表現するという動機で、基底変換と固有値・固有ベクトルの仕組みが掴めるような構成にしてみました。

最後には一般のベクトル空間の話にも触れ、フィボナッチ数列の一般項を求めるのを固有値・固有ベクトル問題として見る方法を紹介しました。僕が大学で線形代数を学んで一番感動したのは「今まで習ったものほとんどベクトルだったんじゃないか!」というところだったので、その話をせずには終われませんでした。

[資料]

※ たまたま近い時期に「固有値・固有ベクトルを可視化するプログラム」を公開されていた方がいたので、こちらで紹介させて頂きます!

2. 「五次方程式が代数的に解けないわけ」 - tsujimotter

f:id:taketo1024:20150525162044j:plain

日曜数学者 id:tsujimotter さんの「ガロア理論」の発表です。高校の教科書にコラムとして載っていた「三次方程式、四次方程式の解の公式」の下に「五次方程式は解けない」とサラッと書いてあったのがガロア理論との出会いだったとのことです。

「五次方程式が解けないことを証明する理論」というと後ろ向きな感じがしてしまいますが、「方程式が解けるとはどういうことか」を突き詰めて、無限にある可能性の中からコアとなる構造を取り出すことでその性質を明らかにしていく壮大な謎解きの理論だと思えば、ガロア理論のワクワク感が感じられるかと思います。

終盤「群」に慣れていない方は難しく感じたかもしれません。基本領域ゼータ関数 など難しいものを次々と目に見えるものに変えてしまう辻さんなら、「大きな群でも見えるようになってしまう何か」をきっと作ってくれることでしょう…!(個人的希望)

[資料]

3. 「つながり方・まがり方・大きさ」 - matsumoring

f:id:taketo1024:20150525155211j:plain

学生時代に位相幾何学を専攻されていた matsumoring さんによる幾何学の発表です。小学校や中学校で習った図形には、実は不思議な性質が隠れています。正多面体の頂点・辺・面の数を数えていくと、そこに共通の法則がある。三角形の内角の和が 180° というのも、平面にない三角形については実は成り立たない。

身近な図形の性質を一つ一つ調べながら、その関係性に成り立たせている法則を明らかにし、最終的には「つながり方・まがり方・大きさ」が一般の立体においても一つの式で関係しているという「ガウス・ボンネの定理」まで到達するという驚きのプレゼンでした。

[資料]

4. 「線形計画法と整数計画法」 - kaneshin

f:id:taketo1024:20150525155332j:plain

株式会社エウレカの開発者 kaneshin さんの発表です。与えられた条件の中で目的の関数を最大・最小化する「最適化問題」の中で、特に条件・目的関数が線形である「線形計画問題」とさらにそれらが整数値を取る「整数計画問題」に関する解説でした。

連続値であれば条件を満たす領域における目的関数の等高線のギリギリのところを求めれば良いものが、整数値の場合は必ずしもそのようなやり方ではうまくいかない。「整数値は高々有限」などと高をくくっていると、膨大な量の候補の前には計算が追いつかなくなる。

このような計画法は実用上有用だし、解法は企業や国家が独占してオープンにされていないことが多いのでまだまだ研究の余地が残されているということです。

[資料]

5. 「物理における微分方程式と数値計算」 - 久徳浩太郎

f:id:taketo1024:20150525155434j:plain

理化学研究所で重力波・宇宙物理の研究をしている久徳さんによる微分方程式の発表です。ユニークな語り口調で、微分方程式とは何か、どうやって解くか、どういう場合に解けないか、解けない場合はどうするか、といったことを順に解説してくれました。

随所で研究者ならではキレがあって聞いていて楽しかったです。例えばスーパーコンピュータ「京」に突っ込むプログラムの正当性を検証するために、ブラックホールの周りでガウス・ボンネの定理が成り立っているかどうかをテストしたりするんだとか。テストの重要性を説くエンジニアはたくさんいますが、こんなテストコードを書いたことのある人は滅多にいないと思います。

[資料]

所感&反省

今回はだいぶ数学色の強い会になったと思います。数学好きな人は楽しめる内容だったとは思いますが、せっかくプログラマの方々に集まって頂いているので、何か簡単なデモアプリを作るとか、そういう見せ場もあった方が良かったかなと思いました。

あと個人的には資料の作り方をもっと工夫したい!黒板にスラスラと書いていくようなライブ感をスライドで表現できたら楽しいだろうなと思います。なんか良い感じの iPad アプリないかな。自分で作ろうかな。

それでは、また次回をお楽しみに!

※ 今回は馬場彩さんに写真を撮影していただきました。ありがとうございます!


https://codeiq.jp/magazine/2015/07/25421/