2009-10-01から1ヶ月間の記事一覧

有理数を使って、ベクトルの正規化

C++

水曜日に困っていたところ。 割合の合計して1にならない - Seeking for my unique color. コメントで有理数を使うとよいと教えてもらった。boostのほうは分数の形で渡さないといけないので、今回のにはちょっと使えなさそう。ということで、こちらのを使わせ…

Nelder-Mead methodの軌跡

教習所にも通うことになったので、さっさと課題片づけておくかーと思って、Nelder-Mead methodの実装を開始。すぐ終わった。どんな方法かは下に書いた。 Nelder-Mead method - yasuhisa's blog すぐ終わった、だけどこれ多変数最適化の手法であることを考え…

Rユーザー会が開催されるよ!!

Tsukuba.R#6の開催もありますが、年度末はRのイベント盛りだくさんです!!研究集会「データ解析環境Rの整備と利用」ということで、11月27日(金)と12月5日(土)の二回に分けて開催されます。12月5日(土)のほうでは僕らがTsukuba.Rでやっている活動をLTのような…

免許

つくばは自転車だけで生活できましたが、NAISTは最低原付がないと厳しそう。免許取る時間もあとあとないだろうなーという感じなので、秋休みの前後を使って免許を取ることにしますた。年あけてからだと混むだろうし。。。というわけで、土日ともう一日くらい…

ディリクレ過程とディリクレ過程混合モデル

多項分布とディリクレ分布NLP関係、特に言語モデルなどでは多項分布がよく使われる(N個のデータがあったときに、Aに1つ、Bに3つ…というような感じ)。言語モデルを作るときにはゼロ頻度問題が常に問題となるので、多項分布のパラメータを最尤推定で求めたもの…

確率過程は金太郎飴?

「ガウス過程やディリクレ過程は、ガウス分布やディリクレ分布を無限次元に拡張したものである。わっはっはっはっ!!」と言われてもぴーんとこなかったわけだが、「どんだけ周辺化してもその結果はまたガウス分布やディリクレ分布になってるお!」くらいにとら…

グラフィカルモデルは何がうれしいか

PRMLにはグラフィカルモデルの話が載っているけど、「グラフの表現にして一体何がうれしいんだ。。。」と思ってましたが、なんとなくうれしい理由が分かってきた。分かってきた、というかないと理解しづらくなってくるかなーという状況が出てきた、というの…

EMアルゴリズム→一般化EMアルゴリズム→変分ベイズ

EMアルゴリズム自然言語処理特論で、EMアルゴリズムが紹介されたので、自分たちでやっているゼミでEMアルゴリズムについて紹介した。EMアルゴリズムの基本的な考え方は、対数尤度を変形していき、イェンセンの不等式によって下界を与え、その下界をカルバッ…

library(plyr)のeach関数にバグがある件→作者さんに報告しました

R

複数の関数を適用した結果を返すeach関数 - Seeking for my unique color.の続き。library(plyr)のeach関数にバグというかよろしくない実装があるのをかつどんさんが見つけた。よろしくないことが起こる例としては > result <- 1:10 > each(length, mean, va…

複数の関数を適用した結果を返すeach関数

R

Rであるデータに対して、複数の処理をして、その結果をまとめて返すというのはlist関数を使うのが定石だと思うんだが、若干めんどくさいところがある。例えば無名関数でやるとこんな感じ。 > (function(x){list(mean(x), var(x))})(1:10) [[1]] [1] 5.5 [[2]…

はまった。。。

boost::tokenizerでうまくいかないときがあるなあと思っていたらはまっていた。 このようにやると、結果がめちゃくちゃです。悩んだ挙句 tokenizer.hpp を覗いてみて原因判明。tokenizer 内部では、コンストラクタの第1引数で渡されたオブジェクトの iterato…

割合の合計して1にならない

C++

Rでいうところの > sum(1:10 / sum(1:10)) [1] 1 という感じで、全部足すと1になるように正規化したいんですが、C++でうまくいかない。 /Users/syou6162/cpp% ./a.out The sum is 9.9999999999809e-01 The sum is not 1.0 以下ソース。

@TakaakiTalkさんとお食事

Twitterでノンパラモデルの付近のことを会話している流れから、バイト後に@TakaakiTalkさんと秋葉原でお食事。ノンパラベイズを研究されているということで、最近自然言語処理特論でもその辺をちょこっと触ったこともあり、色々面白いお話を聞けてよかった。…

初めての経験ベイズ

今日の自然言語処理特論は言語モデルから一旦離れて*1、ベイズ入門なお話。ベイズについては多少知っているので、その辺はもう書かない。新しく出てきたものの中に経験ベイズの話があった。経験ベイズを考える状況としては ベイズ的なフレームワークで考えて…

差集合的なにか

R

集合は定義から、同じ要素は含まないわけですが、そうゆうのも許して欲しいときがある。こういう2つのベクトルがあったとき x <- c("a", "b", "c", "a", "a", "b") y <- c("c", "d", "c") Rでの差集合演算を使うともちろんこうなる。 > setdiff(x, y) [1] "a…

Rと自然言語処理

Rは コーパス言語学的なものに対しては相性がよい 一方、(言語モデルなどの)自然言語処理に対してはひたすら相性が悪い そんな気がしている。 see also CRAN Task View: Natural Language Processing

Tsukuba.R#6を開催するよ!!

いやはや、Tsukuba.R#5をやってから大分経過しております。。。 Tsukuba.R#5をやってきました - Seeking for my unique color. というわけで、Tsukuba.R#6を開催しようと思います。# 実は10月半ばに開催する予定だったんですが、大学の全学停電や学園祭シー…

今月のWEB+DB PRESSを見逃がすな!!

なぜならば、はてなサマーインターン2009が記事になっているからだ!!WEB+DB PRESS Vol.53作者: 桜井雅史,縣俊貴,西田圭介,青木靖,川口耕介,井奥雄一,冨田慎一,森田創,鶴岡直也,長野雅広,武者晶紀,富士慶,中山大輔,常澤邦幸,山?賢,近藤裕介,稲葉健二,Elaine G…

STLをもっと使いこなしたい

コンテナにはどんな種類があって、どんな感じのことができるかは段々分かってきたけど、もっともっと使いこなしたい。ということで。Effective STL―STLを効果的に使いこなす50の鉄則作者: スコットメイヤーズ,Scott Meyers,細谷昭出版社/メーカー: ピアソン…

初めての最大エントロピー法

なぜ最大エントロピー法が必要か自然言語処理特論の授業で最大エントロピー法が紹介されました。言語モデルで、パープレキティが小さいモデルを作るのが目標なんですが、EMアルゴリズムでは、小さくできるパープレキシティにちょっと限界がありました。まあ…

初めてのSVM

ゼミでid:reposeがSVMについて話しました。SVRとかそういうのはとりあえずやらないで、マージン最大化とヒンジ関数を使った誤差最小化の枠組みを見たり、解のスパースネスがどうして導けるのかとかについて勉強しました。参考にしてたのはこの2冊。パターン…

PRMLのfigureをゆーっくり落としてくる

ネットに繋がらないところでゼミの準備とかをしていて、「あ、PRMLのこの図を今の資料に入れたい!でも、ネットつながらねー」ということが時々あるので、じわじわと落としてくるスクリプトを書いた。寝る前にでも走らせておいてください。くれぐれもゆーっく…

最近勉強している本

なんだかようやく調子が出てきはじめた、という感じらしいです。どれもトピックつまみぐい。書き出してみたところ「ああ、俺が好きそうなところばっかりやってるな」と思いました(謎)。工学基礎 最適化とその応用 (新・工科系の数学)作者: 矢部博出版社/メー…

初めてのEMアルゴリズム with R

混合正規分布について 混合正規分布のEMアルゴリズムによるパラメータ推定 EMアルゴリズムの単調増加性について この前はEMアルゴリズムがどんな感じのメカニズムで、どんな性質を持っているか簡単に書いた。 初めてのEMアルゴリズム - yasuhisa's blog とい…

「確率密度比」を用いた機械学習の新たなアプローチ

東工大の杉山先生の講演がすごく面白かったのでメモ。やりたいこと、特徴p(x)とp'(x)という分布を推定しようという問題があったとする。このとき、二つの分布のパラメータを推定しないといけないので普通は大変。そこで、w(x) = p'(x) / p(x)を推定するとい…

TBBのインストール

C++

基本ここを真似する。make installができないので精神衛生上よくないように思う。 http://ppwww.phys.sci.kobe-u.ac.jp/~akusumoto/linux/detail.php?d=config/tbb/install ヘッダーファイルは/usr/local/include、ライブラリは/usr/local/lib/tbbみたいな感…

差集合的なにか

C++

"cppref algorithm/set_difference"とかで調べればすぐに分かるだろう、と思ったら分からんかった><inserterって何やねん。 #include <iostream> #include <algorithm> #include <set> #include <boost/foreach.hpp> using namespace std; int main(int argc, char *argv[]) { set<int> s1; s1.insert(1); s1.</int></boost/foreach.hpp></set></algorithm></iostream>…

ある年代のディレクトリにおいてあるファイル数を調べる

こんなディレクトリ構成になっていて /Users/syou6162/dbcls/pne% ls 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 1885-1995のディレクトリ配下にあるファイルの数と1996-2006以下にあ…

アルファベット、数字、記号のみからなるような行を捨てる

Perlワンライナー。 perl -nle 'print unless $_ =~ m/^[!-~\s]+$/' result.txt ついでに半角カタカナさんも死んで欲しいとき。 perl -nle 'print $_ if $_ !~ /^(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/' umls.txt 参考 http://code.nanigac.com/so…

言語モデルの応用先

自然言語処理特論の最終課題は言語モデルを作ることで、評価はテストセットパープレキシティ(PP)によってされる。ちなみに、昨日は簡単な言語モデルを作っていた。Trigramで線形補完法*1。PPが14を下回ったら評価のAがくるのだが、線形補完法を使うとギリギ…