タグ

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

  • 「プログラマが本当に理解するには実装しないといけない」か - 木曜不足

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

    「プログラマが本当に理解するには実装しないといけない」か - 木曜不足
    seikenn
    seikenn 2012/10/17
  • PRML 読んでやってみた(上巻編) - 木曜不足

    今までに書いた「 PRML を読んで、やってみた」系の記事をまとめてみた。何か参考になれば幸い。 根的にとても疑り深い人(教科書の類に対しては特に)なので、「こんなん書いてあるけど、ほんまかいな〜?」という姿勢が目立つ。 また、よく「手触り」という言葉が出てくる。なんというか、「感触」がわからないと気持ち悪いのだ。基的な道具類は目をつむっていても使えるのが理想、と言えば、なんとなくでもわかってもらえるだろうか。 あと、言葉使いに無駄に小うるさい(苦笑)。多くの人にとってはどうでもいいところで妙にこだわっているかも。 下巻編はこちら。 PRML 読んでやってみた(下巻編) http://d.hatena.ne.jp/n_shuyo/20110519/prml 1章&2章 特に実装とかしてない。 ディリクレ分布のパラメータが0のとき http://d.hatena.ne.jp/n_shuy

    PRML 読んでやってみた(上巻編) - 木曜不足
  • LDA 追試(訓練データとテストデータを分けたら) - 木曜不足

    LDA の評価結果+Collapsed Variational Bayesian の初期化における工夫 - Mi manca qualche giovedi`? のコメント欄にて、daichi さんに「テストデータを用意して、そちらのperplexityを順次評価してみるとどうなるでしょうか。LWLM等と同様、その場合には smart init が一番高い確率を与える可能性があるかも知れません」とアドバイスをいただいた。多謝。 θ_d が大変そう、とつぶやいてたら同じくコメント欄にて yossy さんから「θ_d周りの実装が少し面倒なせいか、各文書の90%の単語で学習して残り10%で評価することがよく行われます」とさらにアドバイスをいただいた。またまた多謝。 というわけで試してみた。 https://github.com/shuyo/iir/blob/master/lda/lda_test

    LDA 追試(訓練データとテストデータを分けたら) - 木曜不足
    seikenn
    seikenn 2011/05/12
  • ディリクレ分布のパラメータが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のとき - 木曜不足
    seikenn
    seikenn 2011/03/04
  • Mahout の開発環境を Maven+Eclipse で作る (2) Hadoop セットアップ - 木曜不足

    Mahout はやっぱり Hadoop の上で使ってこそでしょ。というわけで開発用にも Hadoop をセットアップしなければならない。 基的に Hadoop は Linux で使うべき。Linux 上での疑似分散くらいまでなら結構簡単にセットアップできる。ネット上にいっぱい情報がある。Cloudera 使ってもいい(まだ使ったこと無いけど)。 スタンドアローンなら Windows でもそんなには難しくない。けど、疑似分散になると途端にやっかい。 そんなこんなで Windows 2008 x64 に Hadoop 0.21.0 を疑似分散でセットアップにチャレンジ。 最初に結論から。 Hadoop 0.21.0 は使うな。 Windows で Hadoop は使うな。 【追記】Mahout 0.4 が Hadoop 0.20.2 なので、最初からそれを使うのがベストだった。0.5-SNA

    Mahout の開発環境を Maven+Eclipse で作る (2) Hadoop セットアップ - 木曜不足
  • Mahout の開発環境を Maven+Eclipse で作る (3) Eclipse で Hadoop の開発環境を作る - 木曜不足

    Mahout の、と言いつつ今回も Hadoop の話ばかり。 Hadoop は各ノードにアプリケーションを配布する関係から、通常 jar を作らなければならない。そのため、Eclipse で書いたコードを実行するのもデバッグするのも非常にめんどくさい。 でもうまくやれば、スタンドアローンモード限定だが、Eclipse から jar も作らずそのまま Map-Reduce ジョブを起動できる。デバッグ実行もできるので、ブレイクポイント入れてステップ実行とかも可能だ。 今回はそういう環境の作り方の話。ずいぶん苦労したけど、出来るようになったら簡単。 Eclipse のセットアップなどは済んでいるものとする。Mahout の開発環境を Maven+Eclipse で作る (1) - Mi manca qualche giovedi`? 参照。 なお、Hadoop を展開すると contrib/

    Mahout の開発環境を Maven+Eclipse で作る (3) Eclipse で Hadoop の開発環境を作る - 木曜不足
  • Latent Dirichlet Allocations の Python 実装 - 木曜不足

    LDA とは "Latent Dirichlet Allocation"。文書中の単語の「トピック」を確率的に求める言語モデル。 「潜在的ディリクレ配分法」と訳されていることもあるが、その名前だと「それってなんだっけ?」という人のほうが多そうw。 各単語が「隠れトピック」(話題、カテゴリー)から生成されている、と想定して、そのトピックを文書集合から教師無しで推定することができる。特徴は、果物の apple音楽apple とコンピュータ関連の apple を区別することが出来る(ことが期待される)という点。そのために、どのトピックを生成しやすいかという分布を各文章も持つ。細かい話は略。 結果の見方としては、定量的にはパープレキシティを見るし(一般に小さいほどいい)、定性的には各トピックがどのような単語を生成するか、その確率上位のものを見てふむふむする。この「各トピックが生成する単語」

    Latent Dirichlet Allocations の Python 実装 - 木曜不足
    seikenn
    seikenn 2011/02/28
  • Latent Dirichlet Allocations(LDA) の実装について - 木曜不足

    昨日の "Latent Dirichlet Allocations in Python" の続きで実験結果を載せようかと思ったけど、先にやっぱりもうちょっと LDA を説明しておこう。 LDA の初出は [Blei+ 2003] Latent Dirichlet Allocation 。 ただし [Blei+ 2003] で "LDA" としているのはトピック-単語分布がただの多項分布(事前分布無し)のもの。"LDA" としてよく目にするトピック-単語多項分布にディリクレ事前分布が入ったものは "Smoothed LDA" として記載されている(確かにβでスムージングしているのと等価)。 今回実装した LDA も後者の "Smoothed LDA"。 その LDA はこんな感じ。αとβはハイパーパラメータだから、チビ黒丸で書いて欲しいんだけどね。 (図は Wikipedia-en の LD

    Latent Dirichlet Allocations(LDA) の実装について - 木曜不足
    seikenn
    seikenn 2011/02/28
  • 自然言語処理(機械学習) vs エンジニア - 木曜不足

    1/28 に行われた第200回 NL研(情報処理学会の自然言語処理研究会)でのパネル討論会を @mamoruk さんが twitter で中継してくださってて、これが当にとてもおもしろかった。Togetter でのまとめがこちら。 NL研 #signl200 まとめ(その2) - Togetter 単語のいくつかは残念ながらわからないが(笑)、「自然言語処理も機械学習も、どちらのアカデミックの世界にも身を置いたことのない門外漢のエンジニア」という立場で普段考えていることといろいろオーバーラップしている部分、齟齬を起こしている部分があって、思い出してはこれを読み返している。 まだあれこれ思い悩んでいる部分でもあるので、多分まとまらないし、明日にはまた違うことを考えてるかもなんだけど、ちょっと書き散らかしてみよう。 @mamoruk: 中川先生「自然言語処理分野外の人は自然言語処理のことを知

    自然言語処理(機械学習) vs エンジニア - 木曜不足
  • 有名どころな機械学習手法の年表 - 木曜不足

    ちょっと機械学習の比較的有名なモデルやアルゴリズムの初出について年表を作ってみた。 って今週末用の資料なんだけどねw 1805 Method of Least Squares 1901 PCA (Principal Component Analysis) 1905 Random Walk -1925 Logistic Regression 1936 Fisher's Linear Discriminant Analysis 1946 Monte Carlo Method 1948 n-gram model 1950 RKHS (Reproducing Kernel Hilbert Space) 1950s Markov Decision Process -1957 Perceptron 1958 Kalman Filter 1960s Hidden Markov Model -1961 N

    有名どころな機械学習手法の年表 - 木曜不足
  • Firefox 拡張機能の「開発とっかかり」のチュートリアル - Mi manca qualche giovedi`?

    id:n_shuyo:20070118:firefox にても書いたが、チュートリアルがないために Firefox 拡張開発の敷居が高くなってしまっているんじゃないかと感じている。 XUL とかは人に説明できるほど詳しくないが、「開発の始め方」のチュートリアルであれば自分にも書けそう。ということで以下にさっくりまとめてみた。 より詳しい人が突っ込んでくれてさらに親切なものになると嬉しい。 ★★2/8 一部追記:GUIDについての記述を追加した ちなみに http://firefox.geckodev.org/index.php?%E6%8B%A1%E5%BC%B5%E3%81%AE%E4%BD%9C%E6%88%90 でも同じサンプルを使ってチュートリアル的にまとめてあるが、サンプルを改変した後にわざわざ jar を作り直す手順になっているのが面倒である。ここではそれが不要(コードを書き換

    Firefox 拡張機能の「開発とっかかり」のチュートリアル - Mi manca qualche giovedi`?
  • 1