タグ

2009年11月1日のブックマーク (3件)

  • DO++ : 線形識別器チュートリアル

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

    DO++ : 線形識別器チュートリアル
    tettsyun
    tettsyun 2009/11/01
    tutorial
  • Boostingの並列化 - 射撃しつつ前転 改

    パターン認識と学習の統計学のp.153に「バギングは並列化が可能であるので、並列計算機を用いることによって計算時間を大幅に短縮できるが、ブースティングは逐次的にしか計算できないので、計算時間は生成する弱仮説の数に比例して長くなることになる」と書いてあったので、ブースティングって並列化できないんだなぁ、と思っていたんだけれど、こないだAdaBoostをちょっと真面目に考えてみたら、弱学習器を選べば並列化が可能な場合もあるという事に気づいた。 そもそも、よく読んでみると、パターン認識と学習の統計学には「ブースティングは並列化できない」とは一言も書いていない。これは実は意図的だったりするんじゃないかと思う。「生成する弱仮説の数に比例して計算時間が長くなる」というのはまったくその通りで、データの重み付けを逐次的に変更しながら学習を繰り返すというAdaBoostの仕様上、これはどうしようもない。ただ

    Boostingの並列化 - 射撃しつつ前転 改
    tettsyun
    tettsyun 2009/11/01
    parallelize adaboost
  • しかしSVMも最近は速いらしい - 射撃しつつ前転 改

    Complement Naive BayesがSVMより速いよーと主張していたので、SVMもなんか最近は速くなってるらしいよ、という事を紹介してみたい。近年はSVMなどの学習を高速に行うという提案が行われており、実装が公開されているものもある。その中の一つにliblinearという機械学習ライブラリがある。ライブラリ名から推測できる通り、liblinearではカーネルを使うことが出来ない。しかし、その分速度が速く、大規模データに適用できるという利点がある。 liblinearを作っているのはlibsvmと同じ研究グループで、Chih-Jen Linがプロジェクトリーダーであるようだ。libsvmはかなり有名なライブラリで、liblinearにはそういった意味で安心感がある。(liblinearの方は公開されてしばらくは割とバグがあったらしいけど。) liblinearにはL1-SVM, L

    しかしSVMも最近は速いらしい - 射撃しつつ前転 改
    tettsyun
    tettsyun 2009/11/01
    svm multicore