プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

PyCon JP 2015に参加してきたので振り返る #pyconjp

PyCon JP 2015に参加してきました。今年のPyConも盛況に終わり、参加者も600名を超えるまでに増加したとのことです。イベント開催に尽力した運営スタッフをはじめ、関係者の方の努力には頭が下がるばかりです。

例年真面目に参加エントリを書こうと気負いすぎて全てのことを一度に書こうとして、いつも仕上げられずにお蔵入りする羽目になっているため、今回は少し手法を変えて書いてみます。

取りあえず思いついた感想を数点書いて一旦公開、それから時間を見つけて参加したトークの感想や感じたことなどを気の済むまで追記していく、というスタイルでやってみようかと思います。

後で書くつもりのことは"Todo"とか書いておいて目印にするつもり。時間が無くて書けなくなったらしれっと消すと思いますが。

チュートリアル

昨年のPyCon JPが終わったあとのブログ記事やら感想を見ていたら「チュートリアル参加したかった」という後悔が強くなったということがあったので、今年はちゃんと射程を合わせて有給を取ってフルで参加しようと思い、実行。

チュートリアルの全体的な感想

有休使ってお金を払って午前も午後も参加してよかった!と思いました。

というのも、今回のチュートリアルで個人的に狙っていた効果は以下のようなもので、それが達成されたからです。

  1. 自習すると無駄に時間がかかりそうな分野の知識・情報を概観して後で自学自習する効率を高めるようにすること
  2. お金を払って受講することで習ったことを無駄にしないようにある種の強制力を働かせること

今後の活動にいい影響が出るかどうかは今後の私次第なのでなんとも言えませんが、少なくとも「機械学習」と「ベイズ推定」に関しては数時間かけて詰め込んだことと豊富な参考資料をゲットしたことを考えると、後で振り返る際の取っ掛かりが出来たのではないかと思います。

Machine Learning Bootstrapの感想

チュートリアルは1日券を購入したのですが、それは午前にも午後にもちょうど参加してみたいものがあったからです。その一つがこのMachine Learning Bootstrapでした。

前々から機械学習には興味があって、空いた時間で勉強していたんですが、どの資料を読んでコードを書いてもそもそもの理論が難しかったり前提となる知識が多くて「全然分からん!」となっていました。特にPackt Publishingで半額期間の時に買ったこの本を読んでいたときにそう感じました。

Building Machine Learning Systems With Python: Get More from Your Data Through Creating Practical Machine Learning Systems With Python

Building Machine Learning Systems With Python: Get More from Your Data Through Creating Practical Machine Learning Systems With Python

英語とかそういう以前に、読んでいて「確率的勾配降下法って何?読んでも分からん…」と分からなくなることが多く、機械学習の習得を少し諦めていたという流れがあったところに丁度よさげなチュートリアルが出てきてしめしめと思い、参加。

実際の内容を細かく書こうとすると多分また書き切れなくてボツ行き になると思うので軽めに書くとすると、(環境構築が事前に必要とは言え)細かい所に時間を割かずに実際に動くアプリケーション環境が事前に用意されていてそれを動かしながら学習の様子を試すことが出来たので、自分で環境構築とエラーを出し続けるコードと闘いながら本を読み進めるよりかはずっと効率的に学べた気がします。

実際やった内容の自習編がQiitaで公開されているので興味がある人、興味があるけど参加できなかった人は見てみるといいと思います。

qiita.com

エンジニアのためのベイズ推定入門:確率論的プログラミングのすすめの感想

(詳しくは後日書く。ハミルトニアンモンテカルロ法とNo-U-Turn-Samplerという単語だけは持ち帰った)

午後にはこのチュートリアルに参加しました。参加した正直なところをいうと、自分には前提知識が足りなすぎて消化不良を起こした感があります。

ただ参加して無駄だったかというとそうではなく、後で確率論的プログラミングを習得してみたいと思った時に復習できるポイントをいくつも提示されたのでそれだけでも価値があるのと、一応自分なりの理解として以下のことを何となく持ちかえることが出来たのでそれが成果かなと思います。

  • MCMCは絶対に収束する。が、いつ収束するか分からない。
  • ハミルトンモンテカルロ法は汎用的に収束を速くする手法(らしい)
  • ハミルトンモンテカルロ法はパラメータの調整がすごく重要で難しかった
  • そういう中、No-U-Turn Samplerが考案されてそのパラメータ調整が非常に楽になった。
  • そのNo-U-Turn Samplerを使って実装されているものの一つがpymc3

メモ書きからの抜粋なので間違っている可能性大なので、間違っていたら教えてくれると嬉しいです。

PyCon JP 2015

PyCon JP 2015の全体的な感想

(各トークの感想を律儀に最初から書いていたら書き終わらずに旬を逃すので、後で少しずつ書いていくつもり)

個人的に非常に勿体ないことというか、後悔したことは「チュートリアルの日以外寝不足で頭が回らず、聞きたかったトークも集中して聞けないことがあった」ということです。

チュートリアルの日を除いたどの日も(スプリントの日も!)前日は22〜23時という早い時間に床につくようにしていたのに、PyConに参加するのが楽しみだったのか全然寝付けず、そのせいで母語である日本語のトークなのに全然意味が頭の中に入ってこないで理解できないという状態になったところもあり、非常に勿体ないなと思いました。

そんなこともありましたが、一応事前に参加したいトークを決め、前年の反省を踏まえて「聴講しに行くトークは本当に参加したいものだけに絞り、空いた時間で休んだり他の人とコミュニケーション取ったり、スポンサーブースを見て回ったりしよう」ということを実践したおかげで、燃え尽きずに平均的に楽しめたので少しはイベント参加経験値上がったなと思いました。

そのおかげでこういうことも経験できました。

オープンスペースで勃発的に発生した講義に運良く参加して知見を得られるというのもイベントの醍醐味ですね。

Todo: 各トークの感想を少しずつ書く

(全てではないにしろ、聴講したトークの感想とかを後でかくつもり…)

まとめ

来年のPyCon JPも楽しく参加したいですね!

後、一回くらい海外のPyConにも参加してみたいと思いました。ワーキングプアなので行くとしても近場(韓国か台湾)になると思いますが。そこまでお金を貯めて他の娯楽に散在したくなる誘惑を抑えるというハードルが高そうなのでどうなるかは分かりません。

まあ、そんな感じです。