The First Cry of Atom Today is the first day of the rest of my life.

モデルエビデンスの評価

作ったプログラムは以下においたよ。 https://github.com/PhysicsEngine/cpi-stats ここで作成した線形回帰モデルのエビデンス評価をしてみた。 モデルエビデンスはざっくり言うと、訓練データを与える尤度を周辺化した値。つまり、そのデータを与える可能性が最も高いものを選ぶことができればパラメタの複雑さなどを自分で判断しなくてもよいというメリットがある。 今回、実装したのは基底関数を多項式とした場合で各目標値には加法性のガウスノイズがのる前提で計算を行った。 超パラメタalpha(モデルパラメタのばらつき)とbeta(ガウスノイズの精度)はそれぞれ0.0001、15.0にした。推定の方法としてはベイズ推定の予測分布を計算して行った。 // Mはモ... Read more

DevOpsDay Tokyo 2013に行ってきたよ

印象に残った話しをざっとまとめてみる。なぜならBlogをかくまでがDev Ops Dayだから!! “Making Operations Visible” Nick Galbreath 使いやすいツールとか紹介 DevOpsとはコミュニケーション(マシン間、人間の間、組織の間) ビジネス側から見えないから価値がない DevとOpsとBizで相互不信的な感じになると Destructiveですよね。だから、データを使おう(運用としてだけではなく、会社の仕組みとして) ビジネス視点でのDevOpsと大事なことはコミュニケーションだと言い切ったところが新鮮だった。 Graphiteという統計可視化ツールの話。 https://github.com/graphite-pro... Read more

Neo4jの使い方(1)

Neo4jを使ってみたよ。とりあえず触ってみたかったのでインストールはせずにGraphGistを使ってCypherの書き方を勉強してみた。 Cypherって? グラフデータベースを操作するためのSQLのこと。他のグラフデータベースに利用されているのかは知らないけれどNeo4jに関してはこのCypherを使ってデータを操作する。SQLを知らないとMySQLに対して何もできないのと同じようにCypherを知らないとNeo4jを何もできない。今回はこのCypherの基本的な構文や書き方を書いてみる。 本家のドキュメントはここだよ ノードの作成 CREATE (n:Actor {name:"Doraemon"}) Actorは型。nameは属性。nはマッチさせるときの記述子 エッ... Read more

知識表現のためのデータ構造

知識表現 http://ja.wikipedia.org/wiki/%E7%9F%A5%E8%AD%98%E8%A1%A8%E7%8F%BE 知識表現(ちしきひょうげん)、KR(Knowledge Representation)は、推論を導けるような知識の表現、およびその方法を開発する人工知能研究の領域である。 人工知能って何って考えたときにぼんやりと、何かの入力に対して何らかの”知識”を使って出力を行う機械というふうに考えていた。そもそも漠然とはしている答えではあるものの、じゃあ”知識”って何?どうやって得ればいいの?どうやって持っていればいいの?という考えになる。それに答えを与えるのが知識表現(Knowledge Representation)だ。 この知識のデータ構造は推... Read more

バイアス-バリアンス分解

今回はモデルのバイアスとバリアンスを前回までの正則化最小二乗法のモデルを使って計算してみたよ。線形回帰モデルのバイアスとバリアンスはトレードオフの関係にあって、表現力の高いモデルを用いるとバイアスは小さくなるがバリアンスは大きくなってしまう。逆にバリアンスの小さいモデルを用いるとデータによる差が小さくなる代わりに全ての予測値の平均が理想的な回帰関数から離れていってしまう。 20通りの異なる訓練データ集合に対して正則化パラメータを調整して、訓練させてみた。 λ=1.1の場合 正則化パラメータが大きい場合は複雑なモデルに対するペナルティが大きくなるので、このようにバリアンスが小さく抑えられる。けれども表現力の豊かなモデルが抑えられるのでそもそも訓練データから理想的な曲線を表現でき... Read more