読者です 読者をやめる 読者になる 読者になる

31歳からの数学修士

なぜ再び数学するのか

31歳からの大学院進学(数学・修士課程)

どうも、佐野です。4月から会社を休職して、大学院に進学しました。一人の学生として、日々数学を学んでおります。ちょうど一ヶ月経ったところで、記憶が新鮮なうちに受験までの経緯を振り返ってみようと思います。

f:id:taketo1024:20160430194911j:plain

学部生時代 〜 9年前

僕は大学で数学を専攻していました。大学院は試験には合格したものの進学せず、社会に出ることにしました。

学部で数学科を選んだのは数学が好きだからではあったのですが、他に興味の持てる分野がなかったという面もありました。大学院も「まぁ行くんだろうな」ぐらいに思ってはいたけど、研究したい分野がハッキリとあった訳でもなく、その先も研究者にはならないだろうと思いつつ、就職に対しても全く前向きでありませんでした。

「数学が好き」といっても、それも曖昧な感覚です。「数学は才能がないとやっていけない」という言葉はよく耳にしますし、小さい頃から数学に没頭していたタイプでもなければ、バリバリ問題が解けるタイプでもない。素数の音楽が聞こえたり、円周率の色彩が見えるような感覚も持っていません。数学科にいると根っからの数学好きみたいな人はいて、そういう人を見ると距離を感じてしまうものでした。

そういった不安に加えて、4人で暮らしていた実家で1人になり(両親は海外へ、兄は地方へ)、バイト先の人間関係がうまくいかず、授業はどんどん難しくなってついていけなくなって、そんな自分に数学で鍛えた批判精神を向けてしまって、ストレスで心身ともにダメにしてしまいました。院試はなんとか合格したのですが、「落ちたらどうしよう」という不安から解放されたという安堵が強かったのを覚えています。

そんな状況の中で、中学のときのコンピュータ部の先輩から「未踏に応募しないか?」と誘われ、それがキッカケでそのメンバーと会社を設立することになります。具体的な目標に向かってチャレンジするのは久しぶりに心の底から燃えたし、このメンバーと何かをやれるチャンスは今しかない、大学院は試験に受かればいつでも入れるんだから、またその気になったときに戻ればいいと思って、大学院の進学を辞退しました(父親には強く反対されましたが、一年も経った頃には僕の決断も認めてくれていました)。

とはいえ大学に入ってから直向きに勉強してきて、全然納得の行くレベルで「数学をやった」と言えない状態でそこから離れるのは未練が強かった。中途半端ではいけないと思い、持っていた数学本は全て図書館に寄付したり友人にあげたりして手放しました。それ以降は数学のことは心に秘めて過ごしてきました。

心境の変化 〜 2014年

その後は色々な紆余曲折がありながら、二度転職し、結婚もして子供も産まれ、「決して振り返るまい」と思っていた過去のことも少しずつ受け容れられるようになってきました。

2014年、 Apple から新しい開発言語 Swift が発表されました。僕は iOS アプリ開発をしていたので Swift は出てすぐ熱心に勉強しました。そしてたまたま Swiftの隠し機能:数学記号をカスタムオペレータとして使う という記事を見かけ、これは面白いと感心しました。例えば というカスタム演算子を定義すれば、配列の総和をとるコードもこんな風に書けるのです:

let sum = ∑[1, 2, 3, 4, 5]

これは  \sum_{n=1}^5 n です。定積分 だって作れます:

let val = 0...2*M_PI ∫ sin

これは  \int_{0}^{2\pi} \sin{x} dx です(もちろん結果は近似値です)。単にこういう書き方ができるというだけのことですが、コードの見え方が変わって面白いなと。そんな話を社内 LT でしたらウケが良かったので、今度は社外向けの勉強会で「虚数は作れる!Swift で学ぶ複素数」という発表をしました。無謀にもこれを 250 人のエンジニアの前で発表したのですが、これがまたウケがよかった。

この勉強会に参加してくれていた束田さんが偉く感動してくれて、「数学勉強会を開催してほしい!」という熱烈リクエストを送ってくれました。そんなニッチな勉強会を開催しても人は集まらんだろうと思ったのですが、「ゲーム界隈では数学勉強し直したい人は多い!」と言われ「確かにそれはそうかも」と思って検討を始めました。

僕一人でできる話には限りがあるので(特に僕は役に立つ方の数学には疎めなので)、プログラミングと絡めて面白い話をしてくれそうな人を募ってみようと。そうして年明けの 2015年1月に「第1回 プログラマのための数学勉強会」を開催することとなります。

これが大好評であったことは僕にとって革命的に嬉しいものがありました。

数学に没頭できない苦しみと受験の決意

その後も第2回、第3回、第4回と勉強会を開催し、毎回発表者が素晴らしく面白いテーマで話してくれるので「自分ももっとやりたい!」という気持ちは高まる一方でした。それまで数学の話ができる仲間に出会えていなかったので、一気に孤独から解放された気分でもありました。しかし仕事もあって、生まれたばかりの子供もいて、学生の頃のようにしっかりとした数学の勉強をするのには無理があります。一週間丸っと有給休暇をとって図書館に引きこもってみたりもしたのですが、たった数ページしか進まず愕然としたものです(ブランクがあるんだから当たり前…)

たまたま TL で見かけたこの記事にも強く心を動かされました。

勉強をやり直したい大人のための大学受験のすすめ

勉強は楽しい。無茶苦茶楽しいぞ。死ぬほど頭のキレる教授や、自分より若くて自分よりはるかに賢い友人と知り合えるぞ。毎日のように興味深い勉強会が開かれているぞ。図書館で2時まで勉強して、ああ疲れたと周りを見ると、まだ何十人も残っている、そんな環境に、日本では、一定の学力さえ満たせば誰でも参加できるのだ。

大学へ遊びにおいで、と言いたい。

仕事・育児・数学の三つは不可能だ。本当に数学をやり直すなら学生になるしかない。しかしそれは今やるべきなのか…そうだ、大学時代の指導教官に相談メールを送ってみよう。勇気を振り絞ってメールを送ったのですが、一週間待っても二週間待っても返事はきません。「もしや…」と思って調べてみたら既に退官されていた。それはもう深く落ち込みましたが、充分落ち込んだ末に「相談してどうしたかった?『君ならやれる』とでも言って欲しかったのか?」という自問を経て、反乱を起こすような気持ちで受験を決意しました。会社に「勉学休職制度」があったことも強い後押しになりました。

この決意が5月で、試験は9月。8年のブランクがあって数ヶ月で受験勉強というのは明らかに無謀ですが、落ちたところで失うものといったら受験料ぐらいだ、一度受かってるんだからなんとかなるだろう!とテンションを上げて「エイヤ!」と申込書を提出しました。

狂気の受験勉強

「一様収束ってなんだっけ?」レベルまで抜けていたので、大学一年の解析・線形代数から復習し直しました。平日は行き帰りの通勤時間と昼休み、帰宅後から就寝前まで、土日は部屋に引きこもってひたすら勉強。一ヶ月で一年分復習しないといけないのでじっくりと読み込むことはできず、消化不良のままガツガツ詰め込んでいったので相当にキツかった。取り組んだ読んだ本は以下の通りです:

初学でこのペースはもちろん無理ですが、学生時代にちゃんとやったものはそれなりに潜在記憶に残っているようです。「代数は?」と思われた方は鋭い。スルーしました。選択問題で選ばなければいいのです(本当はダメですよ)。

この狂気の受験勉強ですが、一人心の支えとなる師がいました。第3回プログラマのための数学勉強会で発表してくれたリングさんです。受験に関する悩み相談のみならず、夜遅くにノートの写真を送り合って数学の指導までして頂きました…!

f:id:taketo1024:20160430202103p:plain
(受験一ヶ月前のやり取り、殴り書きからもテンパり具合が伺える)

そして受験!

9月、いよいよ本番です。受験はもちろん平日なので、有給休暇を使い切って休みを取りました。準備は上記の通りボロボロの付け焼き刃です。1次は筆記。それはもう緊張したし、「ルーシェの定理」と「リウヴィルの定理」どっちがどっちか分からなくなったりして大変テンパりました。試験の翌日には1次の合格者が掲示され、自分の受験番号を見つけることができました。

2次、面接。数名の教授の前で黒板の前に立たされるのですが、これまた劇的に緊張しました。人前で喋るのは仕事でそれなりに慣れていたはずですが、自信のないこととなればフレッシュに緊張するものだと分かりました。最後に「自分で興味を持って勉強したテーマについて、いくつか書いてください」と言われ、いくつか書いたところ、「そんな簡単なのじゃなくて、4年でやったでしょう、ホモロジー群とか…」と言われ、ジャンピング土下座したい気持ちになりました。

そして2週間後、合格者発表。掲示板に自分の番号を見つけることができました。9年前にも同じ経験をしているはずですが、桁違いに嬉しく感じました。

その後、入学まで…

その後は、上司やチームへの報告と、勉学休職を取得するための手続き。「休職」なので給与は出ませんから、支出を抑えるための準備を諸々。あの学力のままではゼミで殺されるのでちゃんと復習をしたかったのですが、まぁ無理でした(有給も使い切っちゃったし)。3月31日まで働き、最終日には激励と共にお世話になった人たちに見送りをして頂きました。

学生になって

そして4月から学生となり、雨の日も晴れの日も図書館にこもって数学しています。数学していると1日がすぐに過ぎてしまい、もう一ヶ月経ったのかと思うと少し焦ります。それでも数学に没頭できることは幸せですし、この時間は大切に使わねばと心から思います。常にフルパフォーマンスでいたいので、心身の健康にも気をつけねばなりません。

研究室は第一希望のところに配属されました。面談で「何を研究したい?」と問われ、「先生、数学がしたいです…」としか言えなかったのは情けない限りでしたが、この一年のうちにテーマを見つけたいと思っています。先日はじめて先生や先輩方の前でゼミ発表をしました。「できるだけノートは見ずに、自分の内から出てくる数学を話してください」と言われたのがとても印象的でした。早くそうなりたい。

ちなみに家計については貯金と妻の収入で回しています。保育園の送りは毎朝僕が担当し、お迎えは週に2, 3回。土日のいずれかは勉強させてもらい、残りは子供と過ごす日にしています。家事も洗濯物を畳んだり食器を洗ったりして、今のところは「予想以上に協力してくれるので、なんとかやっていけそう」と合格点をもらえているようです。受験中は大変な負担をかけてしまったので、ここもちゃんと継続したい。

まとめ

改めて、9年前の心身を蝕んだ悩みはなんだったのかと考えると、将来への不安と凝り固まった考え方による必然的な行き詰まりだったのではないかと思います。僕にとっては一度数学を離れたのは良かったと思いますし、また晴れやかな気持ちで戻ってこれたのも良かった。9年間を総括して過去の自分にアドバイスを送るとしたらこんな感じです:

  • その気になればいつでも稼げるという自信はデカい。
  • 目的意識を持って真剣に取り組んだことは目標の通りにならなくても無駄にはならない。
  • 合わないと思った人でも共通の目的意識が持てればやっていけるし、それを通して「合う人」の幅も広がっていく。

数々の縁があって今の自分があるので、その一つ一つに感謝しています。僕が id:sho_yokoi さんの記事に動かされたように、この記事も再び学生に戻りたいと考えている社会人や、就職について悩んでいる学生にとってのヒントとなれば幸いです。

そういえば、とあるゼミに参加したら9年前の指導教官がいらしてました。僕の顔は覚えてくれていたようで、挨拶の後に「昨年の5月ごろにメールをお送りしたのですが…」というと「あぁ、あったね、顔見たら思い出した」と笑顔で返されました。どんだけ落ち込んだと…と思いましたが、結果として自分の意思で数学に戻ってくることができたのでそれも良かったとしましょう。

最後までありがとうございました。

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

f:id:taketo1024:20160403234539j:plain

第6回 プログラマのための数学勉強会」を開催しました!今回も 渋谷 dots. の会場をお借りして、5つの 30 分セッションと9つの LT をお届けしました。今回は「ブログまとめ枠」で3名の方に記事を書いて頂いたので是非そちらも御覧ください!

1. 「心地よさと数字」矢崎 裕一

f:id:taketo1024:20160404000217j:plain

デザイナ 矢崎裕一さんのセッションです。「データビジュアライゼーション」の考え方や効果について、ご自身の仕事を取り上げつつ紹介してくれました。紹介された作品は見ているだけでも楽しく、またその背後でどういう考え方があるのかを知ることができました。

同じデータでも、表に数字がズラッと並んでいるのと、視覚的に分かりやすく動きが見えるのとでは受け取られ方は全然変わります。テクノロジーの力でデータや式が「見える」ようになるということは、もっと初等教育でも取り入れられるべきだと思います。またデザインにおける「すでに完成していると思われているものを疑う」という姿勢は、数学の心にも通じるんじゃないかと感じました。


[ 資料 ]

2. 「数学がデジタルアートに!高速なシェーダで可視化する数学の世界」@h_doxas

f:id:taketo1024:20160404000944j:plain

webgl.orgWebGL総本山 を運営し、WebGL / GLSL の講師として活動されている @h_doxas さん。前半で WebGL の基礎を説明し、後半はご自身で開発された GLSL editor を使って GLSL ライブコーディングを披露してくれました。会場の参加者も一緒にコードを書いて、簡単なベクトルの演算や三角関数を組み合わせて見る見る不思議な映像が作れていくのは面白かったですね!

@h_doxas さんが昨年末開いていた GLSL短期スクール に僕が生徒として参加したことがキッカケで今回ご登壇いただきました。5月から WebGL 基礎スクール も開催されるそうなので、興味のある方は是非ご覧ください!


[ 資料 ]

3. 「6-3. Wolfram Language コトハジメ 〜 Wolfram Alpha って聞いたことあります?」若林 登

f:id:taketo1024:20160404003630j:plain

株式会社ヒューリンクス 執行役員の若林 登さんのセッションです。前回に続き今回もフードスポンサーをして頂き、製品紹介も兼ねて Wolfram AlphaMathematica に関する発表をして頂きました!

Wolfram Alpha は検索サイトのような UI でありながら、内部で Mathematica を動かして「計算結果」を返してくれます。数式を描画するだけでなく「ボーイング747には野球ボールがいくつ入るか?」といった問いにも答えてくれます。Mathematica は膨大な数の関数が備わっている数式処理ソフトで、「ノートブック」として計算結果と共に思考過程を記述していくことができるのが特長です。

Stephen Wolfram 自身の TED Talk 「万物の理論を研究する」もとても面白いので興味のある方は是非!


[ 資料 ]

4. 「暗号文のままで計算しよう 〜 準同型暗号入門」 光成 滋生

クラウドを支えるこれからの暗号技術」の著者、サイボウズラボの光成滋生さんのセッションです。

前半では「楕円ElGamal暗号」を紹介。トーラスには加法群の構造が入り、暗号がトーラス上の点と対応するように定めると暗号文のままで足し算ができてしまうのです。デモ でクライアント・サーバ間の通信を一画面内で表示し、サーバ側で「足した」値をクライアント側に戻して復号すると、ちゃんとクライアント側で足し算されていることを実演されました(会場から感動の拍手!)後半ではさらに足し算だけでなく掛け算もできる「完全準同型暗号」を紹介。足し算と掛け算ができれば、原理的にはコンピュータが行う演算を全て暗号のまま行えることになります。現状では 1bit のデータでも 1GB ほどに膨らんでしまうんだとか…!

僕はこの発表を聞いて「カッコイイ!」と感じました。復号されない限り何の意味も持たなかった暗号文がそれ自体として「代数的構造」という生命を持つようになり、人間に分かる平文と分からない暗号の間でパラレルな関係が成り立つようになるのは、なんとも男心(?)を燃えさせるものがあります!この先まだまだ研究が進んで行くんだろうと思うとワクワクします。

[ 資料 ]

5. 「圏論Haskellは仲良し」 大森 健児

f:id:taketo1024:20160404014912j:plain

3月に法政大学教授を退官されたばかりの大森健児先生のセッションです。ブログ bitterharvest's diary圏論Haskell について親切に解説をされていたので(法政大学の教授とはつゆ知らず)登壇のお願いをしてご快諾を頂きました。

圏論Haskell …それは数学とプログラミングにおいて最も難しいものとして恐れられています。圏論は「抽象的な数学の中でも最も抽象的なもの」「異なる分野で異なる言葉として話される同じような概念を抜き出して共通化したもの」です。その圏論をベースに作られたプログラミング言語Haskell です。Haskell は「純粋関数型言語」と呼ばれる言語で、プログラミングで当たり前と思われるような a = a + 1 のような再代入が一切できません。そんな難解な圏論Haskell ですが、大森先生はにこやかに楽しそうに親しみやすい喩えを交えながら紹介してくれました。

大森先生が圏論を学び始めたのは68歳だそうです…「何ごとも学び始めるのに遅すぎることはない」というメッセージには胸が高鳴りました。


[ 資料 ]

Lightening Talk

1. 「√2 をつくる」 @taketo1024

[ 資料 ]

2. 「実践Scalaペアノの公理 @busterdayo

[ 資料 ]

3. 「せいほうけい育成日記」 @nekonenene

[ 資料 ]

4. 「packing にまつわるアレコレ」 @simizut22

[ 資料 ]

5. 「Introducing PONS」 @dankogai

[ 資料 ]

6. 「すべての図形を分類した男」 @matsumoring

[ 資料 ]

7. 「かんたんベジェ曲線 @butchi_y

[ 資料 ]

8. 「ベータ分布の謎に迫る」 @kenmatsu4

[ 資料 ]

9. 「始代数とCatamorphism」 Ryo Mikami

[ 資料 ]

まとめ

今回も実に盛りだくさんでしたね…!セッションの前半は見て楽しめる数学、後半は難しいが分かると面白い数学、そして LT は数学好きが暴れまわるという感じでバランスが取れていたんじゃないかと思います(笑) HULINKS さん、今回もフードスポンサーありがとうございます!写真は今回も 馬場彩 さんに撮って頂きました!

f:id:taketo1024:20160404023644j:plain

リンク

Facebookページ

「プログラマのための数学勉強会」の一年を振り返る

この記事は Math Advent Calendar 2015 の 24日目の記事です。(23日目:空の見えないセカイ - tsujimotterのノートブック

このブログはちょうど一年前 id:tsujimotter さんの 明日話したくなる数学豆知識 Advent Calendar 2014 に記事を書くために開設したのでした。今年も tsujimotter さんからバトンタッチを受けてクリスマス・イヴに数学について書けることを心から嬉しく思います。

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

f:id:taketo1024:20151224020415j:plain

今年一月に第1回「プログラマのための数学勉強会」を開催し、以後も隔月ペースで全5回開催しました。毎回定員を超える参加応募があり、開催後も多くの満足の声を頂くことができました。僕自身も毎回発表者の話を楽しく聞いていますし、この勉強会を通してたくさんの出会いもあり、もっと勉強したいという情熱を得ることもでき、本当にやって良かったと思っています。

よく「発表者の方とはお知り合いなんですか?」と聞かれるのですが、知り合いに発表をお願いしているケースよりも、面白い数学記事を書いている方に直接連絡を取ったり、発表希望者からフォームを送って頂いているケースの方が多いです。なので当日まで「本当に来てくれるのかな…?」というドキドキはありますし、お会いして「こんな人だったのか!」という驚きもあって楽しいです。

発表内容についても事前のすり合わせはしておらず、面白そうだと思ったらもう丸っとお任せしています。前回参加者の方が「この会の「語りたい人が語る」という形式が素晴らしい」とツイートしてくれたのですが、まさにその感じを大切にしたいと思っています。語りたい人が語りたいことを語り、それを面白いと感じた人が興味を広げていく、そうして数学とプログラミングの距離が縮まっていけば良いなと思っています。

発表を振り返ろう!

せっかくなので過去の発表を振り返ろうと思うのですが、全部リストするとめちゃくちゃ長くなってしまうので、いくつかのテーマで発表をピックアップしてみました。

1. 見て楽しめる数学

明日話したくなる「素数」のお話 - @tsujimotter

3D表示の数学と高次元への応用 - μ崎みのり

円柱、円錐以外の、展開図の描ける曲面 - @taro_x

2. プログラマ向け数学の基本

プログラマのための線形代数再入門 - @taketo1024

内積が見えると統計学も見える - @kenmatsu4

今日からはじめる微分方程式 - Ryo Kaji

3. 数学とコンピュータサイエンス

フーリエ変換と画像圧縮 - @ginrou799

線形計画法と整数計画法 - @kaneshin

Hybrid Monte Carlo 法の紹介 - Kenji Ogawa

4. 数学ガチ寄り

五次方程式が代数的に解けないわけ - @tsujimotter

何もないところから数を作る - @taketo1024

忙しい人のための楕円曲線入門 - @srtk86

5. もっと広い数学とプログラミングの世界

エニグマ暗号とはなんだったのか - @thorikawa

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

音楽とトポロジー - @simizut22

いかがでしたか?上のリストにない素晴らしい発表もたくさんあるので、末尾のリンクから過去のレポート記事をご覧ください。

数学を「実験」するプログラミング

プログラマによる数学の発表がなぜこんなに面白いのか考えてみたのですが、それはプログラミングが数学の「実験」を可能にしているからなんじゃないかなと思いました。例えば小学校の理科で、アルミ片を塩酸水に入れて水素を発生させ、これに火をつけて「ヒュッ!」とやったら水が出来てる、という実験をやりましたよね。高校になると、

 2Al + 6HCl \rightarrow 2AlCl_3 + 3H_2 \\
2H_2 + O_2 \rightarrow 2H_2O

という化学式を習います(これであってますよね?w)。この式は小学校でやった「あの実験」の記憶があるから何が起きてるかイメージできますが、最初から化学式だけ習っていたら何のこっちゃ分かりません。しかし数学の教育ではそれと同じことが起きてしまっているように思います。公式の暗記と適用ばかりやらされていたら「これが何の役に…」みたいなことも言いたくなるでしょう。

先日たまたまこの「ピタゴラスの定理」の実証実験を見つけてとても感心しました:

学校でも公式を習うたびこのような実験ができれば良いのですが、一個一個作ってたら先生が大変でしょうがないし、製作における物理的な制約があります(4次元図形とかなると原理的に作れません)。しかしプログラムなら書けます。アルゴリズムを実装して計算をさせたり、複雑なグラフを表示して動かしたり、物理エンジンを使って現実世界をシミュレートしたり…工夫次第で色々な「実験」ができます。

プログラマのための数学勉強会」で発表してくれた方々は、それぞれ得意な方法でその実験を見せてくれました。その数学が理論か応用かということは関係なく「実験が分かれば面白い」という素朴な感動がたくさんあったんじゃないかと思います。

未来の数学教育では(それもそう遠くない未来で)プログラミングは当たり前のようにそこにあり、分からないことはその場でパパッと実験するようになっているでしょう。生徒は先生から一方的に教わるのではなく、生徒が自分で見つけた面白い実験方法を公開してお互いに教えあっているんじゃないかと夢見ています。

最後に

このブログ、しばらく「プログラマのための数学勉強会」レポート専用ブログになっちゃってますが、元々は数学記事を書くつもりで始めたものでしたw 年明けから勉強も再開し、記事もちょっとずつ書いていこうと思うのでそちらも楽しんで頂ければ幸いです。

改めて「プログラマのための数学勉強会」に関わってくれた皆さん、ありがとうございます。それでは、メリークリスマス&良いお年を 🎅


プログラマのための数学勉強会」過去レポート記事

Facebook ページ