タグ

svmに関するgologo13のブックマーク (25)

  • ICML2012読み会で発表しました && SVMの性能をガタ落ちさせるためには - kisa12012の日記

    日サイボウズラボさんの会場で開催されたICML2012読み会に発表者として参加しました. 主催者のnokunoさん,会場係のshuyoさん,また参加者の皆様,ありがとうございました!非常に勉強になりました. 今回発表したのは,Poisoning Attacks against Support Vector Machines (Biggio+) です. 発表資料 PoisoningAttackSVM (ICMLreading2012) from Hidekazu Oiwa 元論文 http://icml.cc/2012/papers/880.pdf 概要 論文の名前通り,SVMの訓練データに毒を盛るためのアルゴリズムを提案 毒を盛るとは,すでに学習されたSVMのパフォーマンスを劇的に下げるためのデータを生成して,SVMの新たな教師データとして潜り込ませること 手書き文字認識での実験では,た

    ICML2012読み会で発表しました && SVMの性能をガタ落ちさせるためには - kisa12012の日記
    gologo13
    gologo13 2012/07/31
    what are interesting. Problem
  • 機械学習超入門IV 〜SVM(サポートベクターマシン)だって30分で作れちゃう☆〜 - EchizenBlog-Zwei

    ニーズがあるのかさっぱりわからない機械学習超入門だけどひっそり続けていきたい。 前回は識別関数の基礎であるパーセプトロンの簡単な説明とPerlによる実装を解説した。実はこの時点でかの有名なSVM(Support Vector Machine、サポートベクターマシン)もほぼ完成していたのだ!というわけで今回はSVMをPerlで作ってしまうお話。 参考: これからはじめる人のための機械学習の教科書まとめ - EchizenBlog-Zwei 機械学習超入門 〜そろそろナイーブベイズについてひとこと言っておくか〜 - EchizenBlog-Zwei 機械学習超入門II 〜Gmailの優先トレイでも使っているPA法を30分で習得しよう!〜 - EchizenBlog-Zwei 機械学習超入門III 〜機械学習の基礎、パーセプトロンを30分で作って学ぶ〜 - EchizenBlog-Zwei さて

    機械学習超入門IV 〜SVM(サポートベクターマシン)だって30分で作れちゃう☆〜 - EchizenBlog-Zwei
  • FOBOSを使ってL1正則化SVM + L1正則化ロジステック回帰を実装しました - yasuhisa's blog

    というか一ヶ月前くらいに実装してたんですけど、コード公開してなかったというだけです。 GitHub - syou6162/fobos news20のデータ使って遊んでみたりしていて、元々は100万次元以上あったものを正則化かけまくって次元を1000くらいに落としても精度はほとんど変わらなくてすげーというのを実感するためだけに書いたような(自己満足的な)コードでした。前にも書いたけど、何かのアプリケーションにこういう機械学習が必要なときに乗っけやすいかなと思います、たぶん。 言語処理のための機械学習入門 (自然言語処理シリーズ) 作者: 高村大也,奥村学出版社/メーカー: コロナ社発売日: 2010/07メディア: 単行購入: 13人 クリック: 235回この商品を含むブログ (42件) を見る

    FOBOSを使ってL1正則化SVM + L1正則化ロジステック回帰を実装しました - yasuhisa's blog
    gologo13
    gologo13 2011/04/01
    FOBOS
  • 劣微分を使った最適化手法を紹介しました - 射撃しつつ前転 改

    新年明けましておめでとうございます、というのもはばかられるような時期になってしまいましたが、今年もこんな感じでのんびりとやっていきたいと思います。よろしくお願いします。 会社ブログの方で、劣微分を使った最適化手法として、FOBOSを紹介しました。線形識別器とは、というところから話を始めたら、実際の論文紹介にたどり着くまでに4回もかかってしまいましたが、何も知らないところからFOBOSでSVMが書けるというところまで、早足ですが一応一通り紹介したつもりなので、FOBOSに興味があるけどまだ論文読んでない、という人はぜひチェックしてもらえればと思います。使えるカーネルは線形カーネルか多項式カーネルぐらいに制限されてしまいますが、実用的なSVMが簡単に作れるというのは結構大きいですよ。ちなみに、FOBOSのところではSVMしか説明していませんが、第2回ではロジスティック回帰をSGDで最適化、とい

    劣微分を使った最適化手法を紹介しました - 射撃しつつ前転 改
  • SVMsequel

    SVMsequel Documentation Hal Daume III () First Release 31 March 2004 Introduction SVMsequel is a complete environment for training and use support vector machines. Some familiarity with kernel methods will be helpful (see here for class notes I've used for using SVMs for natural language processing if you need a refresher. Documentation There is far too much to document here, so please see svmsequ

  • 線形SVM - 人工知能に関する断創録

    下巻に入って7章のサポートベクトルマシン(Support Vector Machine: SVM)を実装してみます。SVMに関しては、有名なSVMのライブラリ(libsvm)を使ったことがあるだけで、アルゴリズム詳細はPRMLで初めて学習しました。なので変なことを書いていたらコメント欄で指摘してもらえると助かります。 まずは、一番簡単な線形SVMを実装してみます。今までと同様に直線(超平面)でデータが完全に分離できる場合です。PRMLの7章には特に説明がありませんが、カーネル関数に下の線形カーネル(データのただの内積)を用いた場合に相当するようです。このカーネル関数を多項カーネルやガウシアンカーネルに変更すると線形分離不可能なデータも分類できるようになるとのこと。非線形SVMは次回ためしてみます。 まず、SVMの識別関数は、式(7.1)で表せます。 今までと違ってバイアスパラメータをまとめ

    線形SVM - 人工知能に関する断創録
    gologo13
    gologo13 2010/09/21
    線形svmの実装がある python
  • Zinnia: 機械学習ベースのポータブルな手書き文字認識エンジン

    Zinnia: 機械学習ベースのポータブルなオンライン手書き文字認識エンジン [日語][英語] Zinniaは機械学習アルゴリズム SVM を用いたポータブルで汎用的な オンライン手書き文字認識エンジンです。Zinniaは組み込みの容易さと汎用性を高めるために、 文字のレンダリング機能は持っていません。Zinniaは文字のストローク情報を座標の連続として受け取り、 確からしい順にスコア付きでN文字の認識結果を返すだけに機能を限定しています。 また、認識エンジンは完全に機械学習ベースであるために、文字のみならずユーザの任意のマウス・ペンストロークに対して任意の文字列をマッピングするような認識エンジンを小コスト作成することができます。 主な特徴 機械学習アルゴリズムSVMによる高い認識精度 ポータブルでコンパクトな設計 -- POSIX/Windows (C++ STLのみに依存) リエント

    gologo13
    gologo13 2010/09/02
  • Zinniaの多クラス分類法 - 射撃しつつ前転 改

    ZinniaというSVMベースの新しい手書き文字認識エンジンがリリースされたので、早速ソースコードを少し読んでみた。 文字認識というのは、機械学習では多クラス分類という問題に分類される。しかもクラス数が認識したい文字数(数千文字程度だろう)分だけ存在するという、なかなか計算量的に厳しい問題である。二値分類器を使って多値分類器を構成する方法にはone vs rest, one vs one, その他にもいろいろあるらしいが、その中のどれを使っているのかというところに興味があった。Webによると、50〜100文字/秒の認識速度と書いてあったので、コードを読む前の予測としては、one vs oneかなーと思っていた。(速度的にはone vs oneの方がone vs restより速い。) しかし、そんな予想を裏切り、recognizer.cppの148行めあたりからには以下のようなコードが書いて

    Zinniaの多クラス分類法 - 射撃しつつ前転 改
    gologo13
    gologo13 2010/09/02
    たくらす分類の実装例の1つ
  • TinySVM: Support Vector Machines

    TinySVM is an implementation of Support Vector Machines (SVMs) [Vapnik 95], [Vapnik 98] for the problem of pattern recognition. Support Vector Machines is a new generation learning algorithms based on recent advances in statistical learning theory, and applied to large number of real-world applications, such as text categorization, hand-written character recognition. List of Contents What's new Fe

  • LIBSVMの使いかたまとめ - k.kinukawaの日記

    LIBSVMとは LIBSVMはChih-Chung Chang とChih-Jen Lin によって作成された、サポートベクタマシンライブラリである。 現在はバージョン2.85がリリースされている。 LIBSVM は、サポートベクタ分類器(C-SVC、nu-SVC)、回帰分析(epsilon-SVR、nu-SVR)、分布評価(1クラスSVM)のための統合ソフトである。 マルチクラス分類もサポートしている。 様々なインターフェースが用意されているため、ライブラリとユーザープログラムを簡単に統合することが可能である。 以下のような機能、特徴を含んでいる。 異なったSVM の計算式が用意されている. 効率的なマルチクラス分類ができる. モデル選択のためのクロスバリデーション*1. 可能性予測. 偏ったデータのための、重みつきSVM. C++Java のソースコード. SVM 分類と回帰分析

  • SVMにおける損失と正則化 - 射撃しつつ前転 改

    前に書いたSVMの記事で、「L1とかL2というのは間違えたときのペナルティをどう定義するかを意味しており」と書いていたが、L1とかL2って正則化項の話なんじゃないの、と疑問に思った。1ヶ月ほど時間をおいてのセルフツッコミである。確認しようとしてカーネル多変量解析を読むと、やはり正則化項についてはL1とL2の両方の説明が書いてあるが、損失に関しては普通のHinge Loss(=L1 Loss)しか書いてない。 と言う訳で、ああ、間違えちゃったなぁ、と暗澹たる気持ちで"A dual coordinate descent method for large-scale linear SVM"を読み直してみたところ、やっぱりL1-SVMというのは損失が普通のHinge Lossで、L2-SVMというのはHinge Lossの2乗を損失とすると書いてあった。両方とも正則化項についてはL2正則化を使って

    SVMにおける損失と正則化 - 射撃しつつ前転 改
    gologo13
    gologo13 2010/08/04
  • しかしSVMも最近は速いらしい - 射撃しつつ前転 改

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

    しかしSVMも最近は速いらしい - 射撃しつつ前転 改
    gologo13
    gologo13 2010/08/04
  • 単語分割器Micterを公開しました - 射撃しつつ前転 改

    しばらく日記書いてなかったら、また文体忘れて敬体で書いちゃったよ…。でも常体に書き換えるのもめんどくさいのでこのままうpします。 単語分割器を作ったので、githubで公開しました。→http://github.com/tkng/micter 名前は単純にMIC segmenTERでmicterにしました。作ってから気づいたのですが、segmentという単語のうち、最後のtしか名前に入っていません。今更名前を変えるのも面倒なのでこのままにしておきますが、微妙に失敗した感がありますね…。 形態素解析器としては既にmecabやらchasenやらjumanやらがありますし、最近では単語分割&読み推定のkyteaもあります。そんなにいろいろある中でまた似たようなツールを書いたのは、自分のパッケージに取りこめる小さな単語分割器が欲しかったのが理由です。文章を単語に分割する機能だけあればいいんだけど、

    単語分割器Micterを公開しました - 射撃しつつ前転 改
  • ソフトマージンSVM - 人工知能に関する断創録

    前回(2010/5/2)のハードマージンSVMでは、データに重なりがある場合、下のようにちゃんと分類境界を求められませんでした。今回は、重なりのあるクラス分布に対応できるように拡張してみます。このようなSVMはハードマージンSVMに対してソフトマージンSVMと呼ばれます。別名としてC-SVMとも呼ばれるようです。 PRMLの7.1.1にあるように、データの誤分類を許すようにSVMを修正します。ハードマージンSVMでは、データ点がマージン内(-1 < y < 1)に絶対に入らないことを前提にしていましたが、ソフトマージンSVMでは「入ってしまったものは仕方ない、だがペナルティを与える!」と少し条件を緩めます。 まず、スラック変数ζ(ゼータ)をデータごとに導入します。スラック変数は、データが正しく分類されかつマージン境界上または外側にある場合は0、正しく分類されているがマージン内に侵入してしま

    ソフトマージンSVM - 人工知能に関する断創録
    gologo13
    gologo13 2010/07/13
    線形SVM.ソフトマージン含む.コードまである.
  • 橡 svm-basics

    Support Vector Machine Support Vector Machineの導出 (1) bxwxf +⋅=)(    −≤+⋅ ≥+⋅ 1 1 bxw bxw 線形識別関数: Canonical Form 1=+⋅ bxw 1−=+⋅ bxw Support Vector Machineの導出 (2) できるだけ余裕を持って識別できるものを選ぶ (マージン(Margin)に着目) データを正しく分離する 識別関数は無数に存在 どちらが良い? Support Vector Machineの導出 (3) “Optimal”Hyperplane ix jx 0=+⋅ bxw iγ w bxw i i +⋅ =γ i i γγ min= γ iγ jγ γ マージン  : ix各データ  から 識別境界までの距離 を最大にするようにパラメータ選択 Support Vect

  • SVM - 機械学習の「朱鷺の杜Wiki」

    Freeware† mloss:linear-svm, mloss:support-vector-machines, mloss:svm, mloss:support-vector-machine SVM Software @ www.svms.org LIBSVM (C) Weka LibSVM (WLSVM) LIBLINEAR:大規模計算用,L1/L2損失 (C/C++) liblinear2scipy:pythonラッパー SVM perf, SVM light (C) Tree Kernels in SVM-light SVM pythonpythonインターフェース Algorithm-SVMLight:perlインターフェース LaSVM:近似オンライン学習の利用による高速化 svmsgd @ Léon Bottou:確率的勾配降下法の利用 Pegasos AI-Categ

    gologo13
    gologo13 2010/07/13
    リンクが充実
  • Intelligence Architecture けんきうノート - ソフトマージンSVM

    ハードマージンSVMでは、データがきれいに分割されている場合しか考えていませんでしたが、実際の問題では、ノイズがあったりでデータの分布がオーバーラップしていることも往々にしてあります。 この場合、正確な分離面を構築するのが無理だったり、できたとしても無意味に複雑な分離面になってしまう可能性があります。 そこでソフトマージンSVMでは、ハードマージンの制約を緩めて、マージン(分離面に一番近いデータ点と分離面との距離)を最大にしなかったり、分離に失敗するデータ点があったりすることを許します。 個々のデータ点に対し「ハードマージン制約の緩まり具合」を表すなんらかの変数を \(\xi_i\) (スラック変数と呼ばれる)として、 \(\frac12w^2\) の最小化(マージン最大化)と一緒に最小化することを考えます。 ここで、「最小化の際に \(\xi\) をどのくらい大きいまま残していいか」

    gologo13
    gologo13 2010/07/13
  • サポートベクターマシン入門

    次へ: はじめに サポートベクターマシン入門 栗田 多喜夫 Takio Kurita 産業技術総合研究所 脳神経情報研究部門 Neurosceince Research Institute, National Institute of Advanced Indastrial Science and Technology takio-kurita@aist.go.jp visitors since Jul. 19, 2002. 概要: 最近、サポートベクターマシン(Support Vector Machine, SVM)と呼ばれるパター ン認識手法が注目されており、ちょっとしたブームになっている。カーネルトリッ クにより非線形の識別関数を構成できるように拡張したサポートベクターマシン は、現在知られている多くの手法の中でも最も認識性能の優れた学習モデルの一 つである。サポートベクターマ

    gologo13
    gologo13 2010/07/13
  • LIBSVM -- A Library for Support Vector Machines

    Chih-Chung Chang and Chih-Jen Lin Version 3.32 released on July 9, 2023. We fix some minor bugs. Version 3.31 released on February 28, 2023. Probabilistic outputs for one-class SVM are now supported. Version 3.25 released on April 14, 2021. Installing the Python interface through PyPI is supported > pip install -U libsvm-official The python directory is re-organized so >>> from libsvm.svmutil impo

  • http://www.bi.a.u-tokyo.ac.jp/~tak/index.html