luggage baggage

Machine learning, data analysis, web technologies and things around me.

Python 使いのための、Python と Ruby の違い(基本文法)

こんにちは。吉田弁二郎です。

今回は、web 開発の主力言語の一つとなっている Ruby の文法について、Python との違いをまとめます。文法の完全な紹介を目指すのではなく、特に紛らわしい項目の差分に注目していきます。そのため、Ruby 独自の文法的な事項(module/include/extend, Proc など)には触れていませんのでご容赦を。なお、今回は Python 3.5.2 および Ruby 2.3.1 で確認しています。

続きを読む

pandas で pivot_table が機能しない場合の対処(DataError: No numeric types to aggregate)

こんにちは。吉田弁二郎です。

Python でデータ分析をする際には pandas を使うのが標準的です。特に、通常はデータを横持ちで格納しているDBから抽出してクロス集計をするというような時には、pandas.pivot_table を使うと便利ですね。最近この関数がうまく使えなかった経験をしたので、対策を記録しておきます。(小ネタ)

続きを読む

混合ポアソン分布を題材に、変分ベイズ法を理解する④

こんにちは。吉田弁二郎です。有給消化中です。

前回、混合ポアソン分布に対して変分ベイズ法を適用し、実際に学習が行われた様子を見ました。
yoshidabenjiro.hatenablog.com

ところで、推定した分布が真の分布とどの程度異なっているのか、やはり定量的に把握したいと思うのが人情というものです。そこで今回は補足的な内容として、Kullback-Liebler ダイバージェンス(もしくは KL 情報量)を基準として学習の進捗を観察します。

続きを読む

混合ポアソン分布を題材に、変分ベイズ法を理解する③

明けましておめでとうございます。吉田弁二郎です。

前回の記事yoshidabenjiro.hatenablog.comで、混合ポアソン分布の変分ベイズ更新式を導出しました。今回は、これらを実装してアルゴリズムの動作を確認していきます。

続きを読む

混合ポアソン分布を題材に、変分ベイズ法を理解する②

こんにちは。吉田弁二郎です。

前回の記事yoshidabenjiro.hatenablog.comでは、変分ベイズ法の定式化についてまとめました。今回は、この方法を具体的な事例に応用していきます。

混合ポアソンモデルの構成

続きを読む

混合ポアソン分布を題材に、変分ベイズ法を理解する①

年の瀬にこんにちは。吉田弁二郎です。

今回から3回に渡って、変分ベイズ法について書きます。『パターン認識と機械学習』(PRML)の特に第10章「近似推論法」を読んでいて面白かったのですが、どうも自分でコードを書いてみないと使える気がせず、ここで理論と応用のまとめをしてみたいと思っています。混合ポアソン分布を例として扱うのは、完全にこちら(http://machine-learning.hatenablog.com/entry/2016/07/06/200605)のパクりインスパイアになります。具体的な計算などは私が独立に行ったものを書いていくので、間違いがありましたらご指摘いただけますと幸いです。本記事では、変分ベイズ法の一般的な考え方をまとめます。

変分ベイズ法の一般論

続きを読む

これってもしかしたら老害かも

こんにちは。吉田弁二郎です。

大学での専攻は理論物理だったのですが、当時の友人と先日飲む機会があって、そこでの会話が印象的だったので残しておこうかと思います。

彼は素粒子論、私はふらふらしていたけど一応は非平衡統計理論が専門で、お互いに細かく見てきた分野は違っています。けれど、大学に入学して以来、新しく理論を学べばそのたびに世界観が更新される、そんな経験をしてきたという感触は共通して持っているのが面白かった。

例えば一般相対性理論においては、光が曲がって進むのはあくまでも時空が曲がっているからであって、光自体は時空に沿って「まっすぐ」進んでいるにすぎない。そして時空は物質の存在によって曲げられる(アインシュタイン方程式)。また量子力学において物質は波動関数という確率の波のようなもので記述され、所在は確定しない。誰もが常識として持っていた世界観は一部のスケールでのみ有効なのであって、一歩その外に出れば全く想像もしていなかった世界が広がっている。それを数学という言葉で理解し、ものの見方を広げていくことはなかなか刺激的だ。

……といった感じで盛り上がっていたのですが、しばらくして「こんな経験ができるのはやっぱ物理しかないよね」みたいな話がどこからともなく出てきて、その瞬間は特に何も考えず同意したものの、振り返ってみればこれこそ老害の第一歩だなと反省したわけです。

考えてみれば当たり前すぎるほど当たり前のことなんだけど、おそらくどんな学問、いや学問に限らずどんな行いであっても、何かを真摯に学び取る姿勢があれば必ず eye-opening な経験をするはず。確かに物理は自然法則をもっとも普遍的な形で理解しようとするため、少なくとも物質的な世界観についてドラスティックな変更を迫ることは事実だし、その方法論自体を他の分野に援用することも可能だということも理解しています(経済物理とか情報の物理という分野が存在する)。

とはいえ、例えば生物観や社会観、人間観が変わるような経験の仕方は、それこそビジネスとかも含めて無数にあることも間違いない。自分たちの経験が唯一無二にして最上のものだったね、とか思いこんでしまうのは、まるで「物理」という初期値からスタートして結局は損失関数の極小点にトラップされてしまったような、新たな学びを止め自身の世界観のみでものを語る老害そのものだな、と結構不自由な気持ちになったのでした。

年齢的にも若いとは言いづらくなってきたここ最近、知的態度を固くしない方向に努力していかないと、自覚してるよりも早く老いそうだなと感じてます。