タグ

ブックマーク / shuyo.hatenablog.com (47)

  • ディリクレ分布のパラメータが0のとき - 木曜不足

    ディリクレ分布のハイパーパラメータは a_i > 0 なのだけど、a_i = 0 の場合はその要素が縮退したと考えることが出来るよ〜的なことを Furguson の論文で見た覚えがあったので、社内での PRML 勉強会でそれをちらっと言ってみたら、ちゃんと証明してくれないと〜、と西尾さんにフルボッコにされた。 というわけで、PRML の範囲でちょっとまじめに考えてみた。 まず準備として x = cy と変数変換することで以下の式を示しておく。ただし B(a,b) はβ関数。 K 次のディリクレ分布を考える(Z は正規化定数) ただし なので、 x_K を消すと これを x_{K-1} で周辺化する。 これより が をハイパーパラメータとする (K-1) 次のディリクレ分布に従うことがわかる。 同様に1つずつ変数を減らしていくことで、 各 x_k はβ分布 に従うことが言える。 次に、β分布

    ディリクレ分布のパラメータが0のとき - 木曜不足
    yuiseki
    yuiseki 2017/02/25
  • 夏のプログラミングシンポジウムで「数式を綺麗にプログラミングするコツ」を発表してきました - 木曜不足

    8/25 に開催された夏のプログラミングシンポジウム 2013 にて、「数式を綺麗にプログラミングするコツ」というお話をさせてもらいました。運営、発表に携わった&参加者のみなさん、会場のドリコムさん、お疲れ様でした&ありがとうございました。お水おいしかったです。 こちらが発表資料。 数式を綺麗にプログラミングするコツ #spro2013 from Shuyo Nakatani www.slideshare.net この発表、実は一昨年に Tokyo.SciPy #2 でやらせてもらった「数式を numpy に落としこむコツ」のブラッシュアップ版である。 数式をnumpyに落としこむコツ 変更点は R のサンプルコードの追加と、表現をよりわかりやすくリライトしたという2点であり、紹介されているサンプルも含め質的にはほぼ同じ内容である。手抜きっぽくてごめん。 当は他の例を追加したかったのだ

    夏のプログラミングシンポジウムで「数式を綺麗にプログラミングするコツ」を発表してきました - 木曜不足
    yuiseki
    yuiseki 2013/09/07
  • Active Learning を試す(Uncertainly Sampling 編) - 木曜不足

    教師あり学習の教師データの作成はとても大変。例えば、twitter 言語判定のために、訓練・テストデータあわせて70万件のツイートに言語ラベルを振った人もいたりいなかったり。 Active Learning(能動学習) はそんな教師データ作成のコストを抑えながらモデルの性能向上を測るアプローチの1つ。 具体的には、正解なしデータの中から「こいつの正解がわかれば、モデルが改善する(はず)」というデータを選び、Oracle と呼ばれる「問い合わせれば正解を教えてくれる何か(ヒント:人間)」にそのデータを推薦、得られた正解付きデータを訓練データに追加して、以下繰り返し。 しかし「こいつの正解がわかれば、モデルが改善」を選び出す基準なんて素人考えでも何通りも思いつくわけで、実際 Active Learning のやり口は幾通りもある。 Active Learning Literature Surv

    Active Learning を試す(Uncertainly Sampling 編) - 木曜不足
    yuiseki
    yuiseki 2013/08/06
  • R で Vanishing Component Analysis - 木曜不足

    どんなデータでも(※)線形分離可能にしてしまう技術,Vanishing Component Analysis(ICML 2013)を紹介してきました - a lonely miner Vanishing Component Analysis を試作してみました – Tech.D-ITlab | Denso IT Laboratory researcher's blog sites 行けなかった ICML 読み会で紹介されてた Vanishing Component Analysis (Livni+ ICML2013)、うちの社内勉強会でも光成さんが紹介してくれて、ふむふむしていたところに、試作実装がでてきて、おーおもしろいと思ったんだけど、Matlab なので試せない orz というわけで貧乏人の Matlab (失礼) である R で実装してみた。 極力、論文の pseudo code

    R で Vanishing Component Analysis - 木曜不足
    yuiseki
    yuiseki 2013/07/28
  • Kneser-Ney スムージングによる文書生成 - 木曜不足

    少し前に Kneser-Ney スムージングの性能を測ってみた記事 を書いたが、今回は Kneser-Ney スムージングによる n-Gram 言語モデルで文書生成を行なってみた。 スクリプトはこちら。 https://github.com/shuyo/iir/blob/master/ngram/knlm.py 適当なテキストファイル(複数可)を入力すると、1行1文書の訓練データとみなして Kneser-Ney スムージング付きの n-Gram 言語モデルを学習後、文書を生成してファイルに出力する。 オプションもいくつか指定できるが、-h でヘルプを出すか、ソースを読むかしてもらえば。 与えられた文書の確率を Kneser-Ney で計算するには、ディスカウントによって生じる正規化係数の補正を求めるために N1+ などのちょいややこしい値をあらかじめ計算して保持しておかないといけないが、文

    Kneser-Ney スムージングによる文書生成 - 木曜不足
    yuiseki
    yuiseki 2013/07/25
  • URI Templates の各言語実装 - Mi manca qualche giovedi`?

    今日は第3回 RESTful 読書会だった。主催の id:kunit さん&nsiena さん、担当の方々、参加者の皆さんお疲れ様でした〜。 読書会の模様(特に8章の DIS られっぷり)はまた今度まとめるとして。 この前 URI Templates ( http://bitworking.org/projects/URI-Templates/ ) の各言語の実装を調べたよと読書会で話したら、id:t-wada さんに「調査結果が addressable になるといいなーw」とリクエストされたので、早速宿題をやっつけておく。 URI Templates の実装一覧 家 (experimental implementation in Python、 59:04+09:00">draft-03相当):http://code.google.com/p/uri-templates/ Ruby -

    URI Templates の各言語実装 - Mi manca qualche giovedi`?
  • PRMLガール 〜 文芸部のマネージャーが「パターン認識と機械学習」を読んだら 〜 - 木曜不足

    放課後の学は、普段なら常時腹を空かせた運動部の連中があちこちにたむろっているのだが、今日は珍しく先客は一人きりだった。 静かな様子にほっとしたカズは、まったり休憩でもしようとジュースを片手に奥の目立たない席を目指す。が、学で筆記用具を広げている女子生徒の横を通り過ぎたところで突然立ち止まった。 振り返ってその先客をよく眺めると、ツインテールの頭をどこか見覚えのある黄色いに乗せて、机に突っ伏すようにして寝ていた。カズは思わず近寄って、の正体を確認するためにのぞき込もうとしたそのとき。 「やっぱ、わかんない! ……って、ひゃあ!?」 「わわっ」 突然跳ね起きたその生徒は、目と鼻の先にいたカズの姿にびっくりして悲鳴を上げた。カズもやはり驚きうろたえてしまった。 二人してしばらくそのまま息をのむようにして顔を見合わせていたが、そのうちどちらともなくぷっと吹き出した。 「あはは、ごめん……す

    PRMLガール 〜 文芸部のマネージャーが「パターン認識と機械学習」を読んだら 〜 - 木曜不足
    yuiseki
    yuiseki 2013/01/17
    大作だった
  • 言語判定のモデルパラメータを自己組織化マップで可視化 - 木曜不足

    サイボウズでも巷の流行りに乗っかって、アドベントカレンダーなるものをやってて、担当した記事が今日公開された。 言語判定の仕組み - Cybozu Inside Out | サイボウズエンジニアのブログ 通常のアドベントカレンダーと違って、テーマは「技術ならなんでも」って広すぎるやろー。というわけで言語処理な人には当たり前で、それ以外の人にはおそらく興味がないという、なかなかニッチな記事に(よく言えば)。 当は「なるほど、わからん」と言ってもらえるような記事が書きたくて、いくつかネタ候補を用意したんだけど、ことごとく自らボツに。実は先週の Kneser-Ney perplexity 記事もそんなボツネタの1つ。あの記事を一般技術者向けの Cybozu Inside Out に書いてみるという誘惑もあったんだけどねw 他にも ldig のパラメータを可視化して遊んでみるというネタもあって、こ

    言語判定のモデルパラメータを自己組織化マップで可視化 - 木曜不足
  • 機械学習×プログラミング勉強会にて「ノンパラベイズ入門の入門」を発表しました #pgml - 木曜不足

    11/9 に開催された機械学習×プログラミング勉強会 vol.2 にのこのこ参加&発表。主催の愛甲さん、参加者&発表者の皆さん、会場を提供して下さった DeNA さんありがとうございました。 機械学習×プログラミング勉強会 vol.2 : ATND 愛甲さんから発表の依頼をいただいた時、言語判定の話をすればいいか〜とか考えて気楽に引き受けちゃったのだが、あれを20分で話すと痛い目にあうと広島方面で学んだことを思い出し。 じゃあ、テキストマイニング始めました的なことでも〜と構成を考えてみたのだが、データの前処理の話だけで20分使い果たして機械学習出てこなさそう。しかも発表順で中谷の次があんちべ先生の番。後ろに専門家がいるのにテキストマイニングの真似事とかしゃべってたら、やばい。 そこで、勉強会タイトルの「〜×プログラミング」にあわないのは承知しつつ、社内勉強会でやったノンパラベイズ入門的な話

    機械学習×プログラミング勉強会にて「ノンパラベイズ入門の入門」を発表しました #pgml - 木曜不足
  • 「プログラマが本当に理解するには実装しないといけない」か - 木曜不足

    ジュンク堂池袋店にて 10/11 に行われた「パターン認識と機械学習」(PRML) 愛好家の集まり、じゃあなかった、トークセッションにのこのこ行ってきた、ばかりか前でしゃべってきた。ありがとうございました&お疲れ様でした>各位 PRML同人誌 『パターン認識と機械学習の学習』(暗黒通信団) 刊行記念トークセッション 「今度こそわかる!? PRMLの学習の学習」 http://www.junkudo.co.jp/tenpo/evtalk.html#20121011_talk 参加して下さった上に感想までブログにしたためて下さった方には感謝感謝なわけだが、そういったブログの中で、@yag_ays さんがちょうど今気にしていたことを書かれていたので、ちょこっと紹介。 「今度こそわかる!? PRMLの学習の学習」に参加しました - Wolfeyes Bioinformatics beta 余談:

    「プログラマが本当に理解するには実装しないといけない」か - 木曜不足
    yuiseki
    yuiseki 2012/10/15
  • 混合ガウス分布の変分下界の計算式 - 木曜不足

    やっぱりまじめに実装して確認しないと、ということで PRML 10.2.2 の変分下界の膨大な式、つまり (10.71)+(10.72)+(10.73)+(10.74)-(10.75)-(10.76)-(10.77) を変形&整理していったら、打ち消しあって消えて消えて、残ったのはたったこれだけ。 \tilde{π} や \tilde{Λ} が消えただけでもすごいすごい、と思っていたが、二次形式を計算していったら W_k^{-1} が出てきて W_k と積を取って消えて、さらにそのトレースから出てきた D も H[Λ_k] の中の ν_k D/2 と打ち消しあって、消えた。 さすがにここまでうまくいくと(しかも式の形がやたらきれい)、何か間違っているんじゃあないかと不安になってきたので、晒してみる。 【追記】実装してみた。 http://github.com/shuyo/iir/blob/

    混合ガウス分布の変分下界の計算式 - 木曜不足
    yuiseki
    yuiseki 2012/08/21
  • 多次元混合ガウス分布での incremental EM 更新式 - 木曜不足

    計算してみた。 が、Σの式、ちょっと自信がないから実装する前に晒しとく。 [2010/03/15] Σの更新式が間違っていたので訂正(今度も絶対あってる自信はないが) x_m について更新するとき、 E step M step とおくと

    多次元混合ガウス分布での incremental EM 更新式 - 木曜不足
  • EM アルゴリズム実装(勉強用) - 木曜不足

    最近忙しくて*1、PRML の予習が滞り中。 しかし、次の PRML 読書会に徒手空拳で行ったら、気持ちよく昇天してしまいそうなので、なんとか頑張って読んでみる。 EM アルゴリズムは何となくわかるが、変分ベイズがわからん…… というわけで、Old Faithful の混合正規分布での推論を K-means と EM と変分ベイズについて、Rで実装してみる。 K-means Old Faithful + K-means については、すでに 前回の記事でお試し済み。 その記事では、イテレーションを1行で書いてネタっぽくしてしまってたので、わかりやすく整理したのが以下のコード。 距離を取るところは少し変えて短くしてある。 # Old Faithful dataset を取得して正規化 data("faithful"); xx <- scale(faithful, apply(faithful,

    EM アルゴリズム実装(勉強用) - 木曜不足
  • PRML 読書会 #12 9章 EMアルゴリズム&10章 変分ベイズ - 木曜不足

    参考:「機械学習とパターン認識」(PRML)のアンチョコ by herumi PRML 9章や10章の数式の解説ノート。10章の大変な計算も丁寧に展開してある。 3/7 の C.M.ビショップ「パターン認識と機械学習(PRML)」読書会 #12@サイボウズ・ラボ に参加しました。各位お疲れ様でした。 今回のテーマは9章の EM アルゴリズムと10章の変分推論(変分ベイズ)。 盛り上がって参りました。 これまでも圧倒的なパワーで並み居る参加者をなぎ倒してきた PRML。しかし全てはウォーミングアップに過ぎなかった。 第12話の、PRML のセリフ「わたしの戦闘力は53万です」に凍り付く参加者一同。 はたして生き残ることは出来るのか!? だいたいあってる? というわけで、PRML の一番大変な範囲に突入。 でも、9〜13章は EM, VB(変分ベイズ), MCMC, Gibbs サンプリング,

    PRML 読書会 #12 9章 EMアルゴリズム&10章 変分ベイズ - 木曜不足
  • オンラインEMアルゴリズムで混合ガウス分布推論 - 木曜不足

    ずいぶん前にできていたのだが、変分ベイズのフォローのために、ブログに書くのを後回しにしてたオンラインEMについて。 確率的勾配法など、通常はオンラインの方がバッチより収束が遅い。 が、EMアルゴリズムについては、オンラインの方が収束が速いらしい。PRML にも「この逐次型のアルゴリズムはバッチ型に比べて速く収束する」と書かれており、また論文にもそういうデータが載っている。 EM アルゴリズムを実装してみると、確かに収束が遅い。 収束し始めてから遅いのなら許せるけど、2サイクル目くらいからすでに遅い。せめて最初くらいもうちょっと速くなんないの! と文句言いたくなる。 EM アルゴリズムの1サイクルは結構重いので、さらにその気分を助長する。 というわけで、オンラインEMアルゴリズムについてとても興味が湧いたので、実装してみた。 参考にしたのは Neal and Hinton の increme

    オンラインEMアルゴリズムで混合ガウス分布推論 - 木曜不足
  • 共役勾配法をRで - 木曜不足

    たまには R のコード書いとかないと忘れる。 ただでさえ R はいろいろ特殊だってのに。 というわけで、勉強中の共役勾配法(conjugate gradient method)を R で書いてみた。といっても、pseudo code をそのまま落とし込んだだけなのだが。しかも線形。 読んでいるのはこれ。 Jonathan Richard Shewchuk, "An Introduction to the Conjugate Gradient Method Without the Agonizing Pain" 「苦痛を伴わない共役勾配法入門」、略して「サルでもわかるCG法」。 ほんとわかりやすくて、びっくり。 読者が知りたい内容にたどり着くにはこの順番で読んだらいいよ、というダイアグラムまで付いている。 例えば(線形)共役勾配法は、4. Steepest Descent(最急降下法) →

    共役勾配法をRで - 木曜不足
  • エンジニアから機械学習への要望 - 木曜不足

    Machine Learning that Matters(ICML 2012) 読んだ - 糞ネット弁慶 (Wagstaff ICML2012) Machine Learning that Matters (原論文) 機械学習のトップカンファレンス ICML にて、「機械学習はこのままでいいの?」という感じの論文が発表された。 細かい内容は上の紹介記事を読んでいただくとして*1、乱暴に一言でまとめると「実応用から離れすぎ」ということになるだろう。 あるいは、2章の章題となっている "Machine Learning for Machine Learning's Sake" がこの論文をもっとも端的に表す一言と言ってみるのもいいかも。 内容についてはいちいち同感で、素性だの正則化だの最適化だのいう用語は分野外とのコミュニケーションを拒否しているとしか思えないとか、定量的なこともまあ大事だろ

    エンジニアから機械学習への要望 - 木曜不足
  • NAIST で twitter 言語判定について発表してきました - 木曜不足

    5/14 に NAIST(奈良先端科学技術大学院大学) にて「∞-gramを使った短文言語判定」について発表してきました。素晴らしい機会をいただいてありがとうございました。 その時の資料を公開します。 内容は TokyoNLP #8 や言語処理学会2012@広島市大で発表したものをちょっと丁寧に+αした感じ。 Short Text Language Detection with Infinity-Gram View more presentations from Shuyo Nakatani NAIST 小町さんから M1 向けのセミナーで発表してみませんかとお話をいただいて、「ぜひやります」と二つ返事でお引き受けしたものの、当に中谷でいいんだろうかーとあとから心配になったのはないしょw 小町さんからは、機械学習や自然言語処理を実応用で使っているエンジニアの立場、というところを学生さんに

    NAIST で twitter 言語判定について発表してきました - 木曜不足
  • NLP2012 での発表資料「極大部分文字列を使った twitter 言語判定」 - 木曜不足

    言語処理学会の第18回年次大会(NLP2012)での発表「極大部分文字列を使った twitter 言語判定」で使用した資料を公開します。 極大部分文字列を使った twitter 言語判定 from Shuyo Nakatani www.slideshare.net 論文は下記ページにて公開済み。 極大部分文字列を使った twitter 言語判定(中谷 NLP2012) - 木曜不足 論文との変更点は、執筆時よりも対応言語がカタルーニャ語とハンガリー語の2言語増えて19言語になっており、結果も最新のものに差し変わっているところ。 なお発表資料は TokyoNLP #8 での発表「∞-gram を使った短文言語判定」がベースとなっている。 #TokyoNLP で「∞-gram を使った短文言語判定」を発表しました - 木曜不足 発表時間が15分であること*1から発表資料はコンパクトにまとめ

    NLP2012 での発表資料「極大部分文字列を使った twitter 言語判定」 - 木曜不足
  • 極大部分文字列を使った twitter 言語判定(中谷 NLP2012) - 木曜不足

    来たる 3/13〜16 に広島で行われる言語処理学会年次大会(NLP2012)にて発表する「極大部分文字列を使った twitter 言語判定」の論文を公開。 中谷 秀洋, 極大部分文字列を使った twitter 言語判定, 言語処理学会第18年次大会, 2012 http://ivoca.31tools.com/misc/nlp2012_nakatani.pdf 【注】 言語処理学会の公開規定が「大会での発表後」であったため、一旦公開を取り下げていましたが、発表終了したので再公開しました。 http://www.anlp.jp/rules/repository.html 【/注】 第8回 TokyoNLP で発表した「∞-gram を使った短文言語判定」と基線は同じ。ただしその発表の時にお約束していたとおり、17言語の判定精度で 99.1% を達成している。99% 越えは作り始める前から

    極大部分文字列を使った twitter 言語判定(中谷 NLP2012) - 木曜不足