タグ

SVMに関するseikennのブックマーク (22)

  • 線形SVM 〜 コーディングに必要な式 〜

    線形SVM 〜 コーディングに必要な式 〜 戻る 線形SVMの識別関数は,次のように定義される. ただし. は入力ベクトル,ベクトルおよびスカラーは識別関数を決定するパラメータ. ニューラル的な表現をすると識別関数は2層パーセプトロンと見ることもできて,は結合係数,はバイアス結合あるいは出力ニューロンの閾値と考えることが出来る. さて,パラメータとを学習によって求めたいわけである. SVMの学習は,バックプロパゲーションのようにこれらのパラメータを直接,逐次学習によって求めるわけではない.ラグランジュ未定乗数ベクトルを学習により求めることで,パラメータおよびを求める,というまどろっこしい方法をとるのですよ.意味については次ページで説明するので,ここでは必要な式だけをまとめる. 学習データは個与えられているとし,と表す.これらのデータを2つのクラスおよびに分離することを考え

    seikenn
    seikenn 2012/07/23
  • 線形SVM 〜 詳細説明 〜

    線形SVM 〜 数式の説明 〜 戻る 前ページで線形SVMのコーディングに必要な式を紹介したけれど,それだけでは納得できん,中身までちゃんと教えてくれ,という向きには,このページでちゃんと説明する. 前ページの再掲になるけれど,線形識別関数を次のように定義する. ただし. (1.1) は入力ベクトル,ベクトルおよびスカラーは識別関数を決定するパラメータ. 学習データは個与えられているとし,と表す.これらのデータを2つのクラスおよびに分離することを考える.この学習データ集合に対して,が次の条件を満たすようにパラメータを調節することを考える. (1.2) (OpenOfficeの数式ツールで左括弧ってどうやって出すの?) ところで,点から分離境界との距離はとなる(どうしてそうなるかって?それは自分で考えてみてね). ということは,(1.2)式を満たす識別関数において,学

    seikenn
    seikenn 2012/07/23
  • 分類における最小二乗 - 人工知能に関する断創録

    4.1節は、データから識別関数を直接的に構成するアプローチとして、 最小二乗法 フィッシャーの線形判別 パーセプトロン が紹介されています。すべて線形識別モデルなので二次元なら直線、三次元なら平面、それ以上なら超平面で分離できる、つまり、線形分離可能なデータしか分類できない方法です。私が昔、機械学習を勉強していたときはこれがメインだったのでこっちのアプローチが一番自然な感じがして、ベイズ的なアプローチの方が新鮮に感じていました。 ここで出てくるパーセプトロンは、Rosenblattが提案したやつでMinskyとPapertに「線形分離しかできないじゃないか!」と批判されたアルゴリズムですね。線形分離不可能なデータにも対応できるRumelhartの多層パーセプトロンは5章のニューラルネットワークに、サポートベクトルマシン(SVM)は下巻の7章に出てくるようです 今回は、4.1.3の分類におけ

    分類における最小二乗 - 人工知能に関する断創録
    seikenn
    seikenn 2012/07/23
  • サポートベクターマシン入門 産業技術総合研究所 脳神経情報研究部門

    次へ: はじめに サポートベクターマシン入門 栗田 多喜夫 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)と呼ばれるパター ン認識手法が注目されており、ちょっとしたブームになっている。カーネルトリッ クにより非線形の識別関数を構成できるように拡張したサポートベクターマシン は、現在知られている多くの手法の中でも最も認識性能の優れた学習モデルの一 つである。サポートベクターマシンが

    seikenn
    seikenn 2012/07/23
  • データ分類とか学習器について、ぬるプログラマーによるぬるプログラマ向けまとめ - ものづくり検定32級人

    SVMという、使い方によってはすごいモノがあります(唐突) 誤解を恐れず、パッと簡単に説明すると ラベル付けをしたデータを教師データとして、学習器に与えると、学習モデルを吐いてくれて、評価器にデータを与えると、学習モデルを使って inputはaなのかbなのか?(二値分類) という回答を返してくれる便利ツールです(SVM自体はアルゴリズムですが、その実装は一杯あるのでそれに頼れば、ということ) ベイズ分類器とか使ったスパムフィルタとかを想像してもらえると、動作結果のイメージは間違ってないと思います。 で、SVMの仕組みを細かく説明するとそれだけで結構ボリューミーで、 マク○ナルドのクダブル○ーズクォーター▼ウンダー並に胃がもたれてしまうので、がっつり割愛させていただくとして… とにかく、SVMの仕組みが仕組みなだけに、2次元上では分類が非常に難しいようなデータの分類にとても向いているモノです

    データ分類とか学習器について、ぬるプログラマーによるぬるプログラマ向けまとめ - ものづくり検定32級人
    seikenn
    seikenn 2012/01/29
  • SVM-Multiclass: Multi-Class Support Vector Machine

    SVMmulticlass Multi-Class Support Vector Machine Author: Thorsten Joachims <thorsten@joachims.org> Cornell University Department of Computer Science Version: 2.20 Date: 14.08.2008 Overview SVMmulticlass uses the multi-class formulation described in [1], but optimizes it with an algorithm that is very fast in the linear case. For a training set (x1,y1) ... (xn,yn) with labels yi in [1..k], it finds

    seikenn
    seikenn 2011/12/25
    多クラス分類に対応したSVM
  • SVMツールと関連する論文まとめ - EchizenBlog-Zwei

    最近SVM(Support Vector Machine)周りの復習をしているので有名どころのツールと、それに関連する論文をまとめた。完全に個人用メモなので抜けがあるかも。あくまで参考程度に。 ツールは色々あるけれど使うのが目的なら定番のsvmlightやlibsvmがいい気がする。最近だとliblinearが流行っている。SVMといえばカーネル関数とマージン最大化だけれど、最近ではカーネルは線形でいいやという流れになってきている?個人的にはpegasosがわかり易い線形カーネル+オンライン学習になっていて自分で作って遊ぶには良いと思っている。またsvmsgdは"straightforward stochastic gradient descent"と言っているものの非常に高性能で、それを実現するための様々な工夫が施されていて実装を学ぶ上で大変参考になる。ここには挙げていないけれど、線形カ

    SVMツールと関連する論文まとめ - EchizenBlog-Zwei
    seikenn
    seikenn 2011/12/04
    SVMのツール、ライブラリ、論文一覧
  • 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

    seikenn
    seikenn 2011/07/19
  • 機械学習超入門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
  • SVMソフトウェアの比較 - tsubosakaの日記

    オープンソースのSVMソフトウェアの基デフォルトの設定で比較などをしてみた。 利用データはLIBSVM Data: Classification, Regression, and Multi-labelのa9aとnews20.binaryを利用した。 データセットの詳細は以下のようになっている データセット名 訓練データ数 テストデータ数 データの次元 a9a 32561 16281 123 news20.binary 15000 4996 1355199 なお、news20.binaryでの訓練データとテストデータの作成については id:n_shuyoさんの記事を参考にした。 比較に用いたソフトウェアは以下の5つ LIBSVM リンク SVM-Light リンク TinySVM リンク SVM-perf リンク LIBLINEAR リンク 測定結果は以下のようになった。パラメータの設定

    SVMソフトウェアの比較 - tsubosakaの日記
    seikenn
    seikenn 2011/07/19
  • Comparison of software for SVMs

    See also kernel-machines.org. List originally created by Vlad Magdin (UBC), 25 April 2005. Updated by Kevin Murphy, 15 December 2005.

    seikenn
    seikenn 2011/07/19
  • SVMの定番入門書「サポートベクターマシン入門(赤本)」の読み方 - EchizenBlog-Zwei

    SVMを学びたい人にとっては「サポートベクターマシン入門」通称「赤」は最適な入門書であるといえる。理論から実践までバランスよく解説されており、書を読むだけでSVMの実装が可能になる。 しかし書はSF小説を彷彿とさせる独特な翻訳の文体のため機械学習に不慣れな読者にとっては読みこなすのは苦しい戦いとなる。来なら原書をオススメしたいところだが、そうはいっても英語はちょっとという人も多いはず。 そこで記事では赤のオススメな読み方を紹介してみる。 1.「わかパタ」で準備運動をしよう 泳ぎのうまい人でもいきなり水に飛び込むのは危険。まずは準備運動をして体を温める。これには「わかりやすいパターン認識」がオススメ。とりあえず2章まで、余裕があれば3章まで読んでおけば充分。 2.赤を枕元において一晩寝よう さて準備運動が済んだら早速赤にトライ!したいところだが赤の放つ瘴気で心を蝕まれないよ

    SVMの定番入門書「サポートベクターマシン入門(赤本)」の読み方 - EchizenBlog-Zwei
    seikenn
    seikenn 2011/07/06
  • SVMのマージン最大化についてしつこく考えてみる - 射撃しつつ前転 改

    SVMの説明というと、よく出てくるのはマージンの最大化である。しかし、実装を行う場合には、どちらかというと目的関数をどうやって最小化しようかな、というところの方が重要(注:主形式を勾配法で最適化する場合の話です)で、この間にある微妙なギャップを超えるのは微妙ながらも大変なような気がしている。このギャップをどうやったら埋められるのかというところを考えてみたい。考えながら書いてきちんと推敲しておりませんのでご注意ください。 SVMってなに、という説明でよくあるパターンは、線形識別器(というか、SVM)の学習というのはパラメーターをいじって分離(超)平面をいい感じに引くことですよ、というところから始まり、いい感じってなんだろうか、マージンが最大化されるように引くといいっぽいよね、けど分離不可能な場合はマージンの値が負になることがあるよね、そこでソフトマージンというものを定義して、マージンが負にな

    SVMのマージン最大化についてしつこく考えてみる - 射撃しつつ前転 改
    seikenn
    seikenn 2011/05/01
  • [メモ] サポートベクターマシン(SVM) - 机上の空論

    サポートベクターマシン(以下 SVM) とは ・ニューラルネットワークの一種 ・教師ありクラスタリング SVM の基的な考え方 ・元々2クラスの線形分離手法として提案される ・単層パーセプトロンに似ているが、SVM はマージン最大化という手法をとっているのがポイント。 ・マージン最大化とは、超平面と学習データの隙間となるマージンをなるべく大きく取ろうというもの。 (ここでいう超平面とは、2つのクラスにぶった切る平面のこと) ・ちなみに超平面と、ちょうどマージンの分だけ離れている学習データをサポートベクトルという。 ・このマージン最大化という考えを取り入れることによって、テストデータの識別精度を高めている。 SVM の発展 ・線形分離不可能な問題への対応 - ソフトマージン(学習データが多少マージンにくい込んだり、反するクラスの空間にくい込んだりしても許す)で対応

    seikenn
    seikenn 2011/01/28
  • 機械学習/MacでSVM-Lightを使う - とうごろうぃき

    インストール † 展開するときにディレクトリーを作ってくれないので注意しましょう. mkdir svm_light mv svm_light.tar.gz gunzip -c svm_light.tar.gz | tar xvf - make all gunzipの-cオプションは圧縮ファイルをそのままにして伸張した結果を標準出力に書き出すもので,tarの引数-は標準入力から入力されたファイルを展開するものです. これだとコンパイルだけで,パスを通さないと使えません. パスが通っているところにコンパイルされたファイルを移動させると,いつでもターミナルから実行できるようになります. sudo mv svm_learn svm_classify /usr/local/bin make clean 最後のmake cleanは不要になったファイルを消すためのオマケです. コンパイルでできたファイ

  • マージン最大化と SVM

    seikenn
    seikenn 2010/11/22
  • しかしSVMも最近は速いらしい - 射撃しつつ前転 改

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

    しかしSVMも最近は速いらしい - 射撃しつつ前転 改
    seikenn
    seikenn 2010/11/17
  • ソフトマージンSVM - 人工知能に関する断創録

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

    ソフトマージンSVM - 人工知能に関する断創録
    seikenn
    seikenn 2010/11/17
  • Support Vector Machine

    最近よく巷で耳にするモノ. SVM, Support Vector Machine, さぽーとべくたーましん. これっていったい,どんなもんなんでしょう. なにやら便利そうなモノらしいので,ちょいと調べて要点をまとめてみようかな,なんて. でも,ただまとめただけだとそのへんの記事を読むのとなんにも変わらないので, コーディングするために必要な知識を中心にまとめてみることにします.

    seikenn
    seikenn 2010/11/17
  • サポートベクターマシン入門

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

    seikenn
    seikenn 2010/11/17