The First Cry of Atom

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

Scalaでロジスティクス回帰

PRMLをの勉強も兼ねて線形回帰モデルの構築をやってみたよ。 PRML本の内容とここを参考に書いてみたのでぜひ参考に。 リポジトリはこちら 最尤推定 基本的にはsin関数にガウスノイズを足した20個の訓練データからもとのsin関数が復元できるかということをやった。 1次元の多項式フィッティングの場合には最尤推定は最小二乗法でとけばいいだけなのでコードはこんな感じ。 package com.PhysicsEngine.cpistats import breeze.linalg._ object LeastSquares { // モデルパラメータの数 あとで正則化項を加えて計算したMAP推定と比較したいので割りとデカイ。over fittingしやすい val M = 20... Read more