tsujimotterのノートブック

日曜数学者 tsujimotter の「趣味で数学」実践ノート

「第1回プログラマのための数学勉強会」で素数の話をしてきました

このブログでもちょくちょく登場している id:taketo1024 さん(以下,佐野さん*1)主催の「プログラマのための数学勉強会」で発表をしてきました。開催日は 1/30 だったので,随分ご報告が遅れてしまいましが,今日は tsujimotter の発表の振り返りを中心に,レポートをまとめたいと思います。

今回は記念すべき第1回でした!

f:id:tsujimotter:20150130184118j:plain:w400
写真:開始前のようす(下に見えるのは,コーヒーブレイクのための軽食)

プログラマのための数学勉強会

「プログラマのための数学勉強会」は,3Dプログラミングやデータマイニングなど,実務レベルでも数学の基礎が必要になってきた人向けに,互いに数学の知識の補完をしあう会を作りましょう,という趣旨の会です。詳しくは公式サイトをみてください。

参加者の枠が30名であったのに対し,応募者はなんと 134 名!!

数学の勉強会にこんなにもたくさんの人が集まる,という事実に驚愕しました。「若者の数学離れ」はどこにいってしまったのでしょう。

最近は,ビッグデータや Deep Learning 等の高度な技術が流行していますが,「数学を学ばないと時代に乗り遅れる」という焦りでもあるのでしょうか。
はたまた,数学ガール等の影響で「年下女子に数学教えたい系理系男子」が増えてきたのか。

理由はともかく,数学を勉強したい仲間がこんなにもいることは,tsujimotter にとっても喜ばしいことです。というのも,私の周囲には,数学について一緒に語れる人があまり多くありません。そのためこの機会に,数学について一緒に語れる「数友(すうとも)」を増やしたいという目論見もありました。

というわけで,気合いを入れて発表資料を作りましたよ!

発表のねらい

tsujimotter は,日曜数学者と名乗っているように「実務で必要な数学を勉強している」というタイプではありません。ちょっと会の趣旨とは外れたところに位置しているかと思います。
主催の佐野さんからは「自由にやってくださいwww」という旨のメッセージをいただきましたので,文字通り自由にやらせてもらいました。笑

具体的には,tsujimotter が今もっとも熱いと思っている

「リーマンの素数公式」

について語ることにしました。

リーマンの素数公式は,それこそ専門的なテーマで,前提が非常に多いため,(普通は)30分で話すような内容じゃありません。そこで,エッセンスをぎゅっと凝縮して,でもドライにならないようにエキサイティングな部分は残して,というある意味「二律背反的な課題の克服」を目標に設定しました。

「理解することだけ」を目標に説明したところで面白くはないので,とにかく熱く伝えること,もっと言うと「面白いんだよを押し付けること」をコンセプトにお話ししました。

「数学の魅力を再発見することで,勉強のモチベーションが上がる。そこから日頃の業務のための数学勉強に戻れば,つまらない勉強も捗るようになるんじゃないかな。」
という言い訳を盾に。

明日話したくなる素数のお話

tsujimotter の発表について振り返りたいと思います。

発表スライドはこちら。


動画もとってもらえましたので,あわせてみるとわかりやすいかと思います。


リーマンの素数公式がテーマだったわけですが,このテーマで人前で話すのは,実はこれが初めてでした。

どんな反応が来るだろうか、わかってもらえるだろうか、不安でたまらなかったのです。最初緊張していたのはそのためです。
お客さんの反応を見た限りでは,結構ちゃんと聞いてもらえたのではないかと思います。(うなずいてくれる人は多かったという印象です。)


佐野さんのレポートにも素敵なコメントがありましたが,今回は「ストーリーテリング」を意識して作りました。
たとえ美しい理論や公式であっても,そのまま見せればその美しさ・面白さは十分伝わるかといえば,そうではないと思うのですね。ちょうど,ピカソの絵を見てもどこが良いのかわからないように。我々のような凡人には,意味合いや,どこが面白いのか,どうして熱いのかを順序立てて説明してもらわないとわからないわけです。
今回は,その点をかなり丁寧に話すようにプレゼンを組み立ててみました。完成形のイメージは「素数のソムリエ」です。いかがだったでしょうか。


そのおかげかはわかりませんが「リーマンの素数公式の可視化アプリ」を紹介したときには,歓声と拍手がおきました。これは嬉しかったですね。

実はこのアプリ,もともとは今回の発表のためだけに作ったものだったのですよ。あまりに良い出来だったので,テンションが上がって発表前にブログでも掲載してしまっています。笑


リーマンの素数公式の可視化アプリがパワーアップしました - tsujimotterのノートブック

今後の展望

今回は,プレゼンの様子を YouTube に動画としてアップロードしてもらえたので,後から発表を振り返ることができました。
良かった部分もあるのですが,いくつか今後改善していきたいポイントも出てきました。

特に,後半の話で「ゼータ関数のゼロ点の振動」の意義が,十分伝わりきっていないと思いました。

あの部分では言いたいことは,実は2つあったのです。

1. リーマンの素数階段は  p^m 1/m あがる階段であり,これがガウスの素数階段の代わりに,精度よく  {\rm Li}(x) で近似できる。
2.  {\rm Li}(x) と素数階段との「細かなずれ」を,後半の振動項によって厳密に 0 にすることが可能である(素数公式)。

これら2つが明確に分かれていないのが良くなかったと思います。結果として,リーマンの素数階段の定義の前に素数公式を話してしまったので,リーマンの素数階段の定義が曖昧になってしまいました。

もう1点改善点を挙げると,リーマンの素数公式に出てくる波の振幅は「ゼータ関数」という関数から「必然的に定まる」ということ,をもっと強調しておけば良かったと思いました。つまり「素数階段を補完できるような振幅や振動数を,適当に選んだわけではない」ということです。そのように話すことで「ゼータ関数のゼロ点が一直線上に並ぶ」という「リーマン予想」を,もっと驚きをもって伝えることが出来ると思うのです。

こういう問題点は,一度でも人前で話してみないと認識出来なかったりするので,今回のプレゼンは非常に良い機会でした。


そういえば,発表後にこんな感じの質問をいただきました。

「素数のパターンは分かっていないのに,なぜ素数公式を証明できるのか」

良い質問ですね!
これはリーマンが発見した定理に本質的に関わるものです。可能であれば,このブログでも解説していきたいです。

元ネタ

今回のプレゼンの内容は,実をいうと「元ネタ」があります。

NHKの番組「オックスフォード白熱教室 第一回 素数の音楽を聴け」です。マーカス・デュ・ソートイという数学者の講義を収録した番組です。

NHK オックスフォード白熱教室

がんばって探せばネット上でも動画が見つかるので,興味ある方は探してみてください。
(tsujimotter は,この講義があまりに好き過ぎて,台詞を覚えてしまうぐらいリピートしています。)


実は tsujimotter は,以前にも一般の人向けに,今回の発表と似たテーマでプレゼンしたことがありました。正確に言うと,ちょっと手前の「ガウスの素数階段」まで話したのです。「リーマンの素数公式」まで一般人に話すのは難しいと思い,妥協してしまったのですね。

その直後にNHKで上の番組を見たのですが,私は驚いてしまいました。私が難しいと思って諦めたことを,デュ・ソートイ教授がやり切ってしまったからです。しかもほとんど数式を使わずに。感動するとともに,悔しさがこみ上げてきました。そして,いつかデュ・ソートイを超えるプレゼンをしてみせる,と心に誓ったのでした。

今回のプレゼンは,そのリベンジです。デュ・ソートイにだいぶ影響を受けてしまっているので,超えられたとは言い切れないかもしれませんが,それでもオリジナルな部分を入れて工夫することは出来たのではないかと思います。


ちなみに,この講義の元になったデュ・ソートイ教授の著書もあります。時間がある方は,こちらも超おすすめです。

素数の音楽 (新潮クレスト・ブックス)

素数の音楽 (新潮クレスト・ブックス)

私が大学生の頃に購入したのですが,読んで感銘を受けました。あまりに感動して,家庭教師の教え子にプレゼントしてしまったぐらい。笑
(正確に言うと「これ面白いから読んでみて」と貸したっきり返してもらっていないので,結果的にそのままあげてしまった形になっています。なので2冊買ったことになりますw)

ほかの人のプレゼンについて

簡単にですが,ほかの発表者のプレゼンについて tsujimotter の感想を述べたいと思います。発表のスライドや動画は,上の佐野さんのレポートを参照ください。

佐野岳人さんの発表:「プログラマのための線形代数再入門」
佐野さんの発表はとても勉強になりました。内容だけでなく発表のスタイルも。丁寧で無駄がない。お手本のような発表でした。
もちろん内容も面白くて,特に同次座標の変換についての面白い見方を教わりました。
(実は,このあとちょうど楕円曲線について勉強をはじめて,むちゃくちゃ役に立っています。笑)

μ崎みのりさんの発表:「3D表示の数学と高次元への応用」
数学界で話題のμ崎さんのご発表。別名4次元の人です。tsujimotter は,暇さえあればこの方の動画をループしてるぐらいファンです。お会いできてよかった!
穏やかな口調でお話しされていますが,心は熱い,そんな感じの発表でした。好きなことを楽しそうに話している人の話って,聞いてて気持ちよいですよね。
EXEファイルを実行して発表するという,斬新なプレゼンスタイルも印象的でした。

佐々木海さんの発表:「AutoEncoderでの教師なし特徴抽出」
何かとホットな Deep Learning に関する話だったので,テーマ的には聞きたい人が多かったのではないか,と思います。「PRMLを読んだことある人」「読んだことない人」で反応が大きく変わりそうな話でした。tsujimotter は,機械学習についての予備知識はあったので,面白く聞かせてもらいました。Deep Learning における Auto Encoder の位置づけを理解できたのが一番の収穫です。

束田大介さんの発表:「ゲーム開発におけるバックトラック法」
Unity というゲームエンジンを使って数学的なプログラミングを実践してみた,というような内容でした。tsujimotter も前々から「Unity を自在に使えたら(数学的に)捗るだろうなぁ」と思っていたのですが,この発表をきっかけとして,後ろの席の方(すみません,お名前聞くの忘れました)に基本的な仕組みについて質問することができました。大収穫です。丁寧に教えてくださった方,ありがとうございました。


全体を通してみると,みなさん熱い!
(ぼくも人のこと言えませんが笑)

刺激的な発表だったので,満足感は高かったです。一方で,かなり熱い話が続いたので,頭がショートしてしまった人もいるかもしれませんね。tsujimotter も終わった後はしばらく頭がぽーっとしていました。笑

まとめ

というわけで「プログラマのための数学勉強会」で無事発表することができました。
tsujimotter にとって満足度の高い素敵な会でした。

今回の発表を通して,自分の数学に対する想いをまとめることができたのも収穫でした。
情報系研究者である私が,日曜数学をやっていることの意味合いを

プログラミングは「趣味で数学」の武器である

という一言に集約できたのは,よかったと思っています。

発表の機会を与えてくださった佐野さんには,本当に感謝です!

次回は3月末に予定されています。tsujimotter もまた発表する予定ですので,興味を持った方はぜひ来てくださいね。

関連記事


ガウスの素数定理 - tsujimotterのノートブック


リーマンの素数公式を可視化する - tsujimotterのノートブック

*1:ちなみに,主催の佐野さんとは,私が SlideShare であげた整数論のスライドを見て声をかけてもらったのがきっかけで知り合いました。私が12月にやっていた「明日話したくなる数学豆知識 Advent Calendar」でも記事を寄稿していただいています。