タグ

ブックマーク / hillbig.cocolog-nifty.com (6)

  • DO++: 機械学習による自然言語処理チュートリアル

    自然言語処理のときに使う機械学習手法のテクニックをざーっと2時間程度で紹介してほしいとのことだったので今日話してきました。基的に、そんなに頑張らなくても効果が大きいものを中心に説明(特にパーセプトロンとか)を説明してます。 紹介した手法はパーセプトロン、最大エントロピー、正則化、多クラス分類、系列分類(CRF, Structured Perceptron)などなどです。どれも一かじりする感じで網羅的に見る方を優先してます。個々の詳しい話はそれぞれの文献や実装などを当たってみてください。 スライド [ppt] [pdf] ここで話しているのは線形識別モデルの教師有り学習が中心で教師無し学習(クラスタリングなど)など他の自然言語処理を支える技術は省いてます。 こういうのを使って(使わなくてもいいけど)どんどんアプリケーション作らないといかんね。 Tarot is not used to ma

    DO++: 機械学習による自然言語処理チュートリアル
    odz
    odz 2008/11/01
  • DO++ : 線形識別器チュートリアル

    ワークショップ中の夕で話したのですが、今のところ日で(素性関数ベース&線形識別器)機械学習のいろいろな手法をまとめて体系的に教えてる資料などがあまりないなぁという話をしていました。 で、探すと、このあたりの大部分をまとめて説明しているいいチュートリアル(英語)がありました。 夏の学校資料[pdf] その他のコードやリンク ちょっとだけ解説 現在自然言語処理の多くで使われている学習器は線形識別器です。 入力x(例:単語、文、文書)から出力y(例:品詞、品詞列、文書のトピック)を予測したいという場合は、(x,y)のペアからいろいろな値を取り出し(x,yのペアから値を取り出す関数を素性関数と呼ぶ)、その値を並べたベクトルを素性ベクトルと呼び、f(x,y)とかきます。そして、その素性ベクトルf(x,y)と同じ次元数を持つ重みベクトルwとの内積を測って、その値が正か負か、または大きいか小さいかを

    DO++ : 線形識別器チュートリアル
    odz
    odz 2008/03/19
  • 疎なbit arrayに対する現実的なRank/Selectデータ構造 - DO++

    久しぶりに研究紹介。 最近書いた論文です。 "Practical Entropy-Compressed Rank/Select Dictionary.", Daisuke Okanohara and Kunihiko Sadakane. In the Proc. of ALENEX 2007, to appear[paper] この論文では、疎なbit array B[0...n-1]に対するrank/select操作を高速に実現するデータ構造を4つ提案しています。 rank(x)はB[0...x]中にある1の数を返し、select(x)はx番目の1の位置を返す関数です。 古典的な問題ですが、これを最小(entropyに近い限界)かつ高速(定数時間、もしくはそれに近い時間)で実現する現実的なデータ構造は存在しませんでした。これを4つの違ったデータ構造で実現したというものです。 このデータ構

    疎なbit arrayに対する現実的なRank/Selectデータ構造 - DO++
    odz
    odz 2007/11/17
    あとで(論文を)読む
  • 最大エントロピーモデル - DO++

    自分の復習も含め、最大エントロピーモデルについて勉強会で発表しました。発表資料 [ppt] [pdf] 今年のACLやICMLなどでの発表などを解説してます。論文中になかった式導出とかもしてみてます。 発表中では結構口頭で補足した部分があって、この資料だけでは不十分だと思います。適宜引用先などを参照してください。 最大エントロピーモデルは高次元の確率分布推定に適していて自然言語処理や、最近だと動植物がどのように分布しているかなどの推定等、広い分野で使われている確率モデルです。 #修正+質問・回答スライドを追加しました

    最大エントロピーモデル - DO++
    odz
    odz 2007/11/17
    MEについて
  • DO++: AND検索の最尤推定

    検索技術においてAND検索、つまり二つの単語を指定して、それが両方出現している文書数の推定を高速に行うのは難しい問題です。 問題を正しく書くと単語w_xが出ている文書番号(x1,x2,x3,..,xn)とw_yが出ている文書番号(y1,y2,y3,...,ym)が与えられたら | {(i,j)|x_i = y_j} | の数を求める問題です。 これは前もって全通り求めて保存しておくにも単語種類数の二乗のオーダー分必要なのでできません。 これは機械学習でも特徴関数が0/1の値しかとらないとき、二つの要素の特徴ベクトルの内積を求める問題と同じで、またデータベースでもJOINの順番を決めるときにでてくる問題です。 普通は全体の文書からサンプルをとって、その中で数えてみて、それを元のサイズにスケールさせることをします。例えば全体文書1億件の中から文書1000件だけとってきて、その中でw_xとw_y

    DO++: AND検索の最尤推定
    odz
    odz 2007/11/17
    capture-recapture でなんとかなりそうな気も
  • DO : Bep: 最小完全ハッシュ関数を用いた連想配列

    Bepという連想配列のライブラリを公開しました。BSDライセンスです. キーは文字列限定で,前もって大量のキーと値のペアが前もって分かっている場合(1千万個とか)、使ってもらえるよう最適化しています。(一応、アドホックな方法で一個ずつキーを登録する方法もサポートしています) 特徴は内部に最小完全ハッシュ関数を利用しており少ない作業領域量でありながらそこそこ高速に動くところです.今のところ1千万キーぐらいで動作するのは確認しています.1キーあたり必要な作業領域量は大体3bit + キー自体の長さになります. 最小完全ハッシュ関数の構築自体も面白い問題です.最小完全ハッシュ関数はキー同士が衝突せず、さらにキーの数がn個のときハッシュ値は[0...n-1]が返されるもので、ぎっしり詰まった連番が返されると思ってもよいです。この実現には以下の論文での手法を使いました.3-ハイパーグラフの頂点割り当

    DO : Bep: 最小完全ハッシュ関数を用いた連想配列
    odz
    odz 2007/10/29
    gperf とは違うのかな
  • 1