けんごのお屋敷

2015-09-07

プログラマのための数学勉強会@福岡を開催しました

こんにちは。

先日 プログラマのための数学勉強会@福岡 を LINE Fukuoka のオフィスで開催しました。当日はうちの社員も含めて全体で40名程度の人々で会場が埋まりました。この規模のイベントは主催したことがなかったので少々 (いや、かなり) 不安でしたが、多くの参加者に来て頂きまして無事にイベントを終えることができたので、とりあえずホッとしています。

Togetter にハッシュタグがついているツイートもまとめました。

プログラマのための数学勉強会@福岡ツイートまとめ

会場の様子

タイムキーパー役がいなかったので終了時間が予定より30分程オーバーしてしまいましたが、当日は以下の様なタイムテーブルの予定でした。

時間 タイトル 発表者
18:30 - 19:00 受付
19:00 - 19:30 数学とプログラミングの世界を楽しもう - ProjectEuler - @tkengo
19:30 - 19:50 暗号技術を支える素数 @shoyan__
20:00 - 20:30 ぼくの実装した最弱のディープラーニング @kis
20:30 - 21:00 圏論超絶基礎の基礎の基礎入門 @nobkz

数学とプログラミングの世界を楽しもう - ProjectEuler -

僕の話でした。

福岡での初開催ということで、最初から少し難易度を下げた話題を取り扱おうと思っていました。ということで、題材にプロジェクトオイラーの初級の問題を選んで、その問題の紹介と効率的な解き方の解説を入れてみました。スライドでは数列に関する 4 つの問題とその効率的な解き方を紹介していて、当日は時間がなかったので 1 〜 3 つ目に紹介した問題の解説は飛ばして、4 つ目の問題の解説だけやりました。

資料はこちら

数学とプログラミングの世界を楽しもう

資料に対する補足1 - はしょった解説

まず当日の発表では時間が足りなくて完全にスルーした 1 〜 3 つ目の問題ですが、公開した資料にはちゃんと全部解説スライドをつけています。基本的にどれも数列の問題で、高校の時に習った数列の和を求めることを目標としていますが、問題番号が後に行く程難しそうになっていくのがわかります。

資料に対する補足2 - 数列の一般項から無理数を消去

こちらも発表の時には時間が足りなくて最後にはしょった部分になります。4 つ目に紹介したフィボナッチ数列の問題で一般項を求めた後に無駄に頑張って最後にループを省いた結果を示していますが、一般項に無理数が入っているのでそのまま計算機で計算すると誤差が出てしまうのは容易に想像できるかと思います。ですので、実際にフィボナッチ数の一般項を計算機を使って計算する時に誤差がでないように、一般項から無理数が消える仕組みを説明したスライドがあります。一般項を計算する時はそのまま計算するのではなく、ちょっと工夫してやるようにしましょう。

暗号技術を支える素数

GMO ペパボ社の @shoyan__ の話でした。

暗号についての簡単な概要の説明から入って、公開鍵暗号方式の一つである RSA 暗号の暗号化、復号化の手法について簡単な数式を混じえながらの解説でした。RSA 暗号の安全性は、巨大な数の素因数分解が非常に困難であることに担保されていることは有名な話ですが、素数を使った鍵の生成方法からわかりやすく解説してくれました。暗号に使われる素数は 300 桁以上の巨大な数とのことですが、日本語での一番大きな数の位が 10^68 の無量大数ということを考えるとどれ程大きな数なのかわかりやすいですね。

資料はこちら

暗号技術を支える素数

ぼくの実装した最弱のディープラーニング

あの きしださん の話でした。

最近なにかと話題にディープラーニングの話題でした。プレゼンではご自身が開発された GUI 付きの学習ソフトウェアの紹介と共に、ディープラーニングの概要や、ソフトウェアの中で使われている技術や工夫などを話して頂きました。学習には GPU を使っているらしく CPU を使うよりも学習速度が早いということでした、さすがですね。ディープラーニングを業務としてやっているわけでもなく専門としているわけでもなく、しかも個人的にここまでのものを作りこんでいる人はなかなかいないんじゃないでしょうか。

資料はこちら

GUI アプリを披露するきしださん

圏論超絶基礎の基礎の基礎入門

グルーヴノーツ社の @nobkz さんの話でした。

僕が数学の勉強会をやりたいなとつぶやいたところに発破かけてくれた人で、プログラマのための数学勉強会@福岡は彼のお陰で開催が決定したと言っても過言ではありません。そんなのぶかずさんの圏論超絶入門のお話でした。今回の 4 人の登壇者の中で唯一ホワイトボードを使ってまるで大学の授業のようなプレゼンをした人で、彼らしい発表だったと思います。内容はというと、出だしでも彼が言っているように僕は難しくて分かりませんでしたが(笑)、雰囲気だけはなんとなくつかめた気がします。圏論の本、読んでみるとよさそうです。

資料はこちら(まだ公開されていないようです)

ホワイトボードに板書するのぶかずさん

開催を終えて

とりあえずホット一息です。しばらく登壇はいいかなという感じ。この勉強会の開催については昔から動機だけはありましたが、実際の開催までの経緯は 前にも書いた通り なかばインターネッツの流れに身を任せたところもありまして、ただ、僕の中のそれ以外の想いとしてはこの勉強会に参加した人達の中で「数学やりなおしたい」とか「数学って面白いんじゃ?」とか感じて、おうちに帰った後にせこせこ “行列” とか “素数” とかでググってみた、って人が 1 人でもいてくれたら嬉しい、そういう人達を増やせるイベントにしたかったな、というのはあります。数学という道具はプログラミングにおいて必ずしも必要なものではありません。しかし数学はプログラミングにおいて視野を広げるための武器にもなり得ます。考えることは楽しいことです。別に全てを知らなくてもいいです。わからなければ調べて考えましょう。自分なりの綺麗な説明を作り上げてみましょう。考えることを楽しみましょう。暗記ではないですよ。

プログラマのための数学勉強会@福岡の第二回目の開催は個人的にも気になるところですが、イベントの最後に「発表者が足りないので次の開催はみなさんの誰かがしゃべってくれるかどうかにかかってます」的な話をしたので、誰か声をかけていただいて人数がそろえばまた開催できる日もきっと来ることでしょう。すぐに次を開催というわけではもちろんないですが、東京の本家と同じように隔月ぐらいでゆっくり続けていければなと思っています。

当日は参加者の皆さん及び登壇者のみなさん、カメラマンとして来てくれた @keita_kawamoto 、そして会場準備を手伝ってくれた LINE Fukuoka のスタッフのみなさん、ありがとうございました。また第二回があればそこでお会いしましょう。

  • このエントリーをはてなブックマークに追加