2009-01-01から1年間の記事一覧

Tsukuba.R#6終了しました!!

ちょっと体調があれだったので、お昼の部やら懇親会出れなかったりして申し分けありませんでした。。。そんなわけでTsukuba.R#6終了しました。発表してくれた皆さん、聞きにきてくださった皆さんありがとうございました。特に岐阜(!!)からきてくださったid:i…

Tsukuba.R#6の発表資料

あげておきます。Keynoteをpdfで吐いてみた。 Tsukuba from syou6162 Tsukuba.pdf まあ、この辺とレイヤーで重ねていくってことですね。

ggplotはただの綺麗系graphics libraryではない

id:nozmaことかつどんさんに教えてもらいながらggplotを勉強して、Tsukuba.R#6の発表資料をせこせこと作っています(遅)。ggplotは何も考えずに使っていると「ディフォルトが綺麗な感じのパッケージなんだなー」みたいな印象で終わってしまいそうですが、ggpl…

自然言語処理特論最終回

今日は最終課題になっていた言語モデルのみんなのモデルがどれくらいのPPまでいったかというところをばっと見ていきました。自分はBack-offの実装にてこずっていたら期限が近づいていたので(おい)、線形補間法(EMアルゴリズムで係数推定)で挑みました。ただ…

バイナリデータの読み込み書き込み

C++

学習データの数がだんだんでかくなってきており、2000万サンプルくらいになってきている。こうなってくると「素性をファイルに書き出し、学習木に読み込ませる(学習はさせてない)」というプロセスすら結構時間がかかってくる。自然言語処理だとこのくらいの…

教習所にて運転

学科も始まり、車なるものを初めて運転しました。感想としては「20キロってこんなに早いのか…!」でした。スピードにも慣れないといけないということで、スピードを出してみるわけで「うおっ、出しすぎた!」と思って速度を見ていると20キロしか出ていなかった…

半教師あり学習でollを使いたいので、ollをライブラリとして使ってみる

バイトにて、岡野原さんが作られているオンライン学習をサポートした機械学習ライブラリ「oll」をめちゃくちゃ使わせてもらっている。 Google Code Archive - Long-term storage for Google Code Project Hosting. 自然言語処理のような大規模かつスパースな…

一行づつ、をstringで

R

自分用メモ。 #include <iostream> #include <fstream> #include <string> #include <vector> #include <R.h> #include <Rdefines.h> #include <Rinternals.h> extern "C" { SEXP my_scan(SEXP fn, SEXP rho) { SEXP result; std::vector<std::string> v; std::ifstream fis("/Users/syou6162/dbcls/umls/umls.txt"); std::string…</std::string></rinternals.h></rdefines.h></r.h></vector></string></fstream></iostream>

一気読みじゃなくて、一行づつ読み込んで何かしら変換をかます

R

昨日言ってたところを解決すべく、かなり久しぶりにRの拡張を書いた。Cはもう書く気になれないので、C++で書くことにした。 #include <iostream> #include <fstream> #include <string> #include <vector> #include <R.h> #include <Rdefines.h> #include <Rinternals.h> extern "C" { SEXP my_scan(SEXP fn, SEXP rho) { SEXP r</rinternals.h></rdefines.h></r.h></vector></string></fstream></iostream>…

一気読み、ではなく一行づつ

R

Rのデータ読み込みはscan、read.tableなどなどがあるが、基本的に一気に読み込む。このため、でかいファイルを読み込むときなどに非常に困る。Rubyのように file = File.open("test.txt", "r") file.each{|line| # do something } というような処理ができな…

Rでポインタ的何か

R

RのlistにめちゃくちゃでかいvectorやmatrixをつっこんでいくとRが落ちることがある。「ポインタ的何かをつっこめれば、、、」と思うこともあるけど、Rにポインタはない。と思っていたが、相当することができそうな気がしてきた。こんな感じ。 > x <- 1:1000…

SIR(重点サンプリング)を簡単な例で

木曜だと思っていたゼミが明日だということにさっき気がついてあたふたと準備をしています。。。担当している箇所はパターン認識と機械学習 下 - ベイズ理論による統計的予測の11.1.4の重点サンプリングと11.1.5のSIRです。重点サンプリングのところは去年研…

初めての企業説明会

大学会館で説明会があると聞いたので、行ってきた。いや、本当に就活するのは早くても来年なんですが。奈良にいると気軽には行けなくなりますからね。20社くらいこられていた感じだったと思いますが、色々話を聞いてて楽しそうだなーと思ったのはMixiかな。…

トピックモデル入門編

自然言語処理特論も最後の話題、トピックモデルに先週から入ってます。今日の資料はこの辺の最初の付近。 Topicに基づく統計的言語モデルの最善線 前々回までの内容は最尤推定に基づいていたものがほとんどで、(ベイズ的な流れではない)スムージングの方法の…

記憶制限準ニュートン法、最適化手法の相互の関連性、そして私が感じたこと

授業を聞いててなかなか興奮したので、これまでのおさらいとともにメモメモ。ニュートン法ニュートン法は目的関数を2次で近似したものだったが、目的関数が2次でないと、ヘッセ行列が正定値行列になるとは限らず、ニュートン方向が降下方向になる保証がない…

Liner Interpolation with EM Algorithm

線形補間法の係数をEMアルゴリズムで推定するコードがようやくちゃんと動いた。前は係数手動で決めたりしてたけど、とりあえず形にはなった。しかし、テストセットパープレキシティが14.805であり、14を切らないので、これではAは確実に取れるか分からない。…

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

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、ベイズ入門なお話。ベイズについては多少知っているので、その辺はもう書かない。新しく出てきたものの中に経験ベイズの話があった。経験ベイズを考える状況としては ベイズ的なフレームワークで考えて…