カーネル法の概要とサポートベクトルマシンについて

機械学習技術 人工知能技術 デジタルトランスフォーメーション技術 自然言語処理 異常・変化検知 オンライン学習 オントロジー技術 画像情報処理 本ブログのナビ

カーネル法の概要とその応用(SVM、KPCS、GP)

カーネル法とは、機械学習において非線形な関係性を扱うために用いられる手法となる。通常、線形回帰やロジスティック回帰などの線形モデルでは、データの複雑な関係性を捉えることができないが、カーネル法を用いることで、非線形な関係性を表現することが可能となる。

それらの実現方法としてカーネル法では、カーネル関数と呼ばれる関数を用いて、データ間の類似性を測定し、入力データの特徴量同士の内積を計算することで、2つのデータ間の類似性を評価する。このようにカーネル法では、入力データの内積を計算することで、特徴量間の関係性を捉えることができるようになる。

カーネル法の利点は、非線形なデータを扱うことができること、高次元空間での計算が可能であること、カーネル関数を選択することでモデルの精度を向上させることができることなどがある。一方、カーネル関数の選択によっては過学習の問題が生じることがあり、さらに計算量が多くなるため、大規模なデータセットに対しては計算時間がかかることがあるという課題も持つ。

カーネル法は、主にサポートベクトルマシン(SVM)やカーネル主成分分析(KPCA)、あるいはガウス過程(GP)などのアルゴリズムで利用されている。SVMでは、カーネル関数を使用して入力データを高次元空間に写像し、超平面でデータを分割することができ、KPCAでは、カーネル関数を使用して入力データの主成分を計算することができる。GPでは、カーネル関数を用いて観測されたデータと未知のデータとの関係を確率的にモデル化することで、ある入力値に対して出力値がどのように分布するかを表現する。

サポートベクトルマシン(Support Vector Machine、SVM)は、機械学習の一種であり、教師あり学習の分類や回帰に利用されるものとなる。SVMは、線形分離不可能なデータを分類することが可能であり、非線形分類にも適用される。

SVMは原理的に、2つのクラスを分離する超平面を探索することで分類を行う。例えば線形分類器の場合、データ点を分類する境界線として最も適切な超平面を探索することになり、境界線を定める際には、距離が最も近いデータ点(サポートベクトル)を基準に定める。

非線形分類器の場合は、カーネル法を用いて、非線形な境界線を探索する。これはカーネル法により、元の特徴空間を高次元空間に写像し、より高次元の線形超平面を使用することで、線形分離不可能なデータを分類する形となる。

SVMの利点として、線形分類器だけでなく非線形分類器にも適用可能であること、汎化性能が高いこと、過学習が起こりにくいことなどが挙げられる。一方、データ数が非常に多い場合や、カーネル関数の選択によっては過学習の問題が生じる、カーネル関数の設定によっては計算コストが高くなり、処理時間が長くなるなどの課題もある。

カーネル主成分分析(Kernel Principal Component Analysis、Kernel PCA)は、主成分分析(PCA)を非線形データに対して適用するための手法となる。PCAは、多次元データを低次元のデータに変換する手法であり、データの持つ情報をできるだけ失わずに圧縮することができるが、線形データにしか適用できないのに対して、カーネルPCAは、非線形データを扱うことができ、非線形な関数空間に写像することで、データをより高次元の特徴空間に移し、その空間でPCAを行うことで非線形な構造を抽出することができるものとなる。

KPCAでは具体的に、カーネル関数を用いて元のデータを高次元空間に写像し、その空間で主成分分析を行うことで、非線形な特徴を持つデータの構造を抽出している。カーネル関数は、基本的には元のデータの内積を計算する関数であり、多項式カーネル、ガウスカーネル、シグモイドカーネルなどが用いられる。

カーネルPCAの利点として、非線形なデータの構造を抽出することができること、線形PCAよりも高い次元の特徴空間に移し、より複雑なデータ構造を扱うことができることが挙げられる。課題としては、カーネル関数の選択によっては、過学習が起こることがあり、計算量が多く、処理時間がかかることなどがある。

ガウス過程(Gaussian Process、GP)は、確率分布を用いた回帰や分類の手法であり、カーネル法を用いて実現されるものとなる。ガウス過程では、連続的な関数を表現する際に利用され、事前に設定したカーネル関数に基づいて、観測されたデータと未知のデータとの関係を確率的にモデル化し、ある入力値に対して出力値がどのように分布するかを表現する。

カーネル法においては、ある入力値の特徴を表すベクトル同士の内積を計算することで、入力値の類似度を測定するが、ガウス過程ではこの類似度を用いて、カーネル関数を定義し、入力値と出力値の関係を表現し、観測データを用いてモデルを学習して、未知の入力値に対する予測を行う。

ガウス過程の利点としては、複雑なモデルを用いずに、入力値と出力値の関係を表現することができること、予測の際に確率分布を用いることができ、予測値に対する不確実性を表現することができること、過学習の問題が起こりにくく、小規模なデータセットでも高い予測性能を発揮することなどがある。

一方、ガウス過程の欠点としては、計算量が大きく、大規模なデータセットに対しては適用が難しいこと、カーネル関数の選択によっては予測性能が低下すること、高次元のデータに対しては、カーネル関数の設計が困難になることなどがある。

ガウス過程の詳細に関しては”ノンパラメトリックベイズとガウス過程について“を参照のこと。

サポートベクトルマシンについて

機械学習プロフェッショナルシリーズ「サポートベクトルマシン」より。

カーネル法はサポートベクトルマシンの発明によって一躍注目されるようになった.しかしながら,その本質はもともと古くからあった手法の延長線上に位置づけられるので,カーネル法を形容するのにはむしろ温故知新という言葉がぴったりとくる.すなわち,カーネル法は基本的には伝統的な線形多変量解析と同じ土俵の上にあると考えることができる一方,従来できなかったような問題にも適用できる柔軟性を持ち合わせている.

 複雑な非線形データが与えられたとき,非線形のモデルを作ってそれにデータをあてはめる手法を開発するというのが素朴な考え方だが,大抵の場合,複雑な最適化問題に直面し,大規模なデータ解析をすることが困難になる.

 そこでカーネル法では,線形のモデルで非線形の問題を解くという逆転の発想をする.データを一旦高い次元の空間に移してから処理を行なうのだが,高次元の空間にはいわゆる次元の呪いという問題があり,従来の常識からすると,これは一見禁じ手のように見える操作である.カーネル法は,次元の呪いを受けないために,正則化と呼ばれる枠組を持ち出し,高次元の中で複雑になりすぎたモデルをなましてやる.

 正則化の導入は一方で計算を複雑にするという副作用を産んでしまうのだが,ここでまた逆転の発想が働く.カーネル法では与えられた問題の構造を精緻にモデル化した上でデータ解析手法を導くというのではなく,計算がやりやすいように,逆に手法に問題の方を合わせるのである.

本ブログでは主にサポートベクトルマシンの理論と応用に関していかに述べる。

実装

サポートベクトルマシン(Support Vector Machine, SVM)は、パターン認識や機械学習の分野で広く使用される教師あり学習アルゴリズムであり、基本的にはデータを2つのクラスに分類するための境界面(識別面)を見つけることを目的としている。SVMの目的は、特徴ベクトル空間上でクラス間の最適な分離超平面を見つけることであり、この分離超平面は、特徴空間上のデータ点との最大マージンを持つように決定されるものとなる。マージンは、分離超平面と最も近いデータ点(サポートベクトル)との距離として定義され、SVMでは、マージン最大化の問題を解くことで最適な分離超平面を見つけることができる。

ここではこのサポートベクトルマシンの様々な実用例とそれらのpythonによる実装について述べる。

  • ランクSVMの概要とアルゴリズム及び実装例

ランクSVM(Ranking Support Vector Machine)は、順位付けタスクに適用される機械学習アルゴリズムの一種であり、特に情報検索や推薦システムなどの順位付け問題に使用されるものとなる。関連する論文としては”Optimizing Search Engines using Clickthrough Data“、”Ranking Support Vector Machine with Kernel Approximation“等がある。

サポートベクトルマシンの理論と応用

機械学習の歴史の中でメジャーなツールとしてサポートベクトルマシン(Sapport vector machine:SVM)がある。SVMは元々、2クラス分類問題に対応するために開発されたものであるが、多クラス分類、回帰問題、教師なし学習問題等に拡張されるだけでなく、アルゴリズムの根本にある「マージン最大化」のコンセプトは様々な機械学習の領域で応用されている。またもう一つの特徴である「カーネル関数」のアプローチは非線形モデリングや構造型データが現れる領域で応用され活用されている。

あらゆる情報は「特徴ベクトル」と呼ばれるその情報を表すベクトル情報に変換され分類される。よって分類するための精度はその情報からの「特徴抽出(feature extraction)」に大きく依存する。このベクトル化されたデータを分類する手法の一つが「サポートベクトルマシン(support vector machine:SVM)」となる。

今回はSVMを用いてクラス数が3つ以上ある分類問題について述べる。2クラスの分類問題では、事例は正のクラスか負のクラスのどちらかに属していた。ここでは、事例が1からcまでのc種類のクラスのいずれかに属する多クラス分類問題(multi-class classification problem)について述べる。

SVMで多クラス分類を実現する方法は大きく分けて2通りある。一つ目の方法は複数の2クラス分類器を組み合わせる方法で、二つ目の方法はSVMの定式化を拡張する方法となる。複数の2クラス分類器を組み合わせる場合、SVM自体を変更することなく多クラス問題を取り扱うことができる。この種類の方法として、以下の3つについて述べる。(1)1対他方式、(2)1対1方式、(3)誤り訂正出力符号。これらはSVM以外の分類手法でも利用可能な汎用的な方法となる。

今回はサポートベクトルマシンを用いた回帰分析について述べる。ここでは特に、最小二乗法などの伝統的な回帰分析とサポートベクトル回帰がどの様に異なっているかを中心に述べ、さらにサポートベクトル回帰と同様な考え方で理解できる分位点回帰分析について述べる。

回帰分析とは出力が実数値となっている問題となる。たとえば金融商品の価値を予測する、新薬を服用した人の血圧を予測するといった問題は、価格や血圧が実数で表されるため、回帰問題として定式化される。

SV回帰を用いると非線形なモデルに基づく予測ができるが、まずは以下の様な線形な回帰関数に基づいてSV回帰を説明する。最適化のためにラグランジュ関数を用いた双対問題のアプローチを行う。

前回は線形回帰モデルf(x)=ωTx+bに基づいたモデルについて述べた。今回は分類問題と同様にカーネル関数(kernel function)を利用することで、非線形モデルに基づく回帰について述べる。

カーネル関数が利用できるのは、前述の双対問題と双対表現の性質によるものとなる。双対問題と双対表現のどちらにおいても入力xが単独で現れず、すべて内積の形で現れている。SV回帰を非線形化するため、SV分類と同様に、カーネル関数K:ℝdxℝd→ℝを用いて内積を一般化する。内積をカーネル関数に置き換えると、双対問題は以下の様になる。

分類問題と回帰問題は入力と出力のペアが訓練データとして与えられる教師あり学習の問題であったが、今回は入力のみが訓練事例として与えられる教師なし学習の問題について述べる。

教師なし学習(unsupervised learning)では、入力{xi}i∈[n]のみが学習データとして与えられる。入力のみが与えられた状況でどのようなことを学習し、それによってどのようなことが可能となるのか?ここではまず、代表的な三つの教師なし学習のタスクについて述べ、教師なし学習の目的を明確にする。続いて、1クラスSVM(one-class SVM, single class SVM)について述べる。教師なし学習の代表的なタスクとしては、クラスタリング、次元削減、異常検知と呼ばれるものがある。

SVMと関連する派生手法は、入力である特徴ベクトルに対してその内積にのみ依存していた。この性質により、特徴空間Fに写像された特徴ベクトルΦ(x)の内積をカーネル関数(kernel function)K(xi,xj)=Φ(xi)TΦ(xj)に置き換えることで、明示的にΦ(x)を計算することなく複雑なモデルが実現できる。ただし、どんな関数でもカーネル関数として用いることができるわけではない。

今回は、どのような関数であれば、カーネル関数として用いることができるのか、またカーネル関数に対してどのような操作をすることができるのかについて述べる。またカーネル関数は学習における正則化とも深いかかわりがある。

今回述べるカーネル関数としては、一般的なカーネル関数(線形カーネル,多項式カーネル,RBFカーネル)と確率的データ、文字列データ、グラフ型データでのカーネル関数(p-スペクトラムカーネル,全部分列カーネル,ギャップ重み付きカーネル,フィッシャーカーネル,グラフラプラシアン,通勤時間カーネル,拡散カーネル,正則化ラプラシアン,ランダムウォーク)となる。

今回はSVMにおいて解の最適性を特徴づける条件について述べる。このような条件は最適解を特にあたり、計算された解が最適化どうかを確かめることに利用できる。また、数値最適化分野の汎用的なアクティブセット法と内点法によってSV分類の最適化問題を解く方法についても述べる。

ここまで述べたSV分類やSV回帰などの手法はすべて数値最適化問題(numericla optimization)として定式化されていた。SVMの場合、通常は解析的に解を得ることは出来ず、適当な初期値から開始して解を探索する反復計算を行う必要がある。

ここでは、SVMの最適化問題において解の最適性がどのように定められるのか、また標準的な最適法によって解を得るにはどのようにすれば良いかについて述べる。ここではまず最も基本的な形となる2クラスSV分類の場合から述べるが、回帰などについてもほとんど同様の取り扱いができる。

大規模データに対してSVMを学習するには、大規模な最適化問題を解かなくてはならない。このような場合、汎用的な最適化手法ではなくSVMに特化したものを使う方が良い場合がある。ここでは、SVMのための最適化手法のうち分割法と呼ばれるアプローチについて述べる。このアプローチでは訓練集合全体に対して最適化を行うのではなく、訓練集合の一部を選択して小規模な最適化問題を繰り返して解く。分割法において部分訓練集合のサイズを最小の2とした方法をSMOアルゴリズムと呼ぶ。SMOアルゴリズムはカーネル関数を利用したSVM(カーネルSVM)の学習アルゴリズムとして、最もよく知られたものとなる。

線形SVMに特化した分割法のアルゴリズムについて述べる。このアルゴリズムはDCDMアルゴリズム(dual coordinate descent method algorithm)と呼ばれている。DCDMアルゴリズムはLIBSVMを開発した研究グループが線形SVMように作成したLIBLINEARでも使われている。

SVMの利点の一つはカーネル関数を用いて複雑な特徴を捉えることであった。一方、有益な特徴量が既にわかっている状況では、線形SVMを用いてもカーネルSVMと同程度の性能を得られる可能性がある場合が多くある。また、最近の大規模データ解析では、高次元でスパースな特徴を持ったデータを扱う場合が多くある。

たとえば自然言語処理の問題では、ある単語が文書に現れるか否かを特徴量都する場合がある。この場合、特徴の次元数は単語の種類の数になるので非常に高次元なデータとなる。一方、一つの文書に含まれる単語の種類は限られているので、多くの特徴が0になるスパース性をもつこととなる。

線形SVMのアルゴリズムでは、特徴のスパース性をうまく利用することができる。このため、大規模な高次元スパースデータを扱う場合には、線形SVMを用いることが有効となる。

SVMの実応用では、正則化パラメータなどのハイパーパラメータを適切に決める必要がある。この問題はモデル選択と呼ばれ、機械学習における重要なトピックの一つとなる。これに対して、まずモデル選択法の一つである交差検証法について述べる。

k分割交差検証法ではk個の学習と評価を行う。上手に沿って説明すると、1回目はD2〜Dkを集めた\(\frac{k-1}{k}n_{all}\)個の事例の訓練データとし、D1に含まれる\(\frac{1}{k}n_{all}\)個の事例の集合を評価データとする。訓練データを用いて分類器を学習し、得られた分類器を評価データで評価する。同様に、2回目はD1,D3〜Dkの同じく\(\frac{k-1}{k}n_{all}\)個の事例の訓練データとし、D2に含まれる\(\frac{1}{k}n_{all}\)個の事例の集合を評価データとして、学習と評価を行う。同様のステップをk回目まで繰り返す。

ここでは、SV分類のための正則化パス追跡アルゴリズムについて述べる。このアルゴリズムはSV分類の双対問題を解く際に利用されることが多い。まず決定関数の双対表現と双対問題について復習し、次に双対変数の最適解が正則化パラメータCにおけるものであることを導出する。そしてそれらを用いてSV分類器での正則化パス追跡アルゴリズムについて述べる。

訓練に用いるデータ集合に変化があった場合、それに伴って最適解を計算し直すことがある。逐次学習と呼ばれる手法はこのような状況において、それまでに得られている解を利用することで新たな解を効率よく計算する。

与えられた訓練データに対して分類器などの学習をいったん行った後に、訓練事例を追加したり、削除したい場合がある。このとき、変化した訓練データに対して最適化問題をもう一度最初から解くこともできるが、すでに得られている解を利用することでより効率的に新しい最適解を計算することを考えるのが逐次学習(incremental decremental learning)となる。例えば、新しい計測情報などが得られるたびに適時データを追加してモデルを更新したいときや、時系列のデータについて新しいものが入ると同時に古いものは削除してしまいたいという状況が考えられる。

今回述べる逐次学習は、オンライン機械学習とは異なる概念であることについて述べる。オンライン学習では、データが逐次的に与えられる状況を考え、削除については基本的に考えない。また、多くのオンライン学習法では新しい事例が与えられて分類器を更新するにあたって、それまでのデータを保持せずに現時点での分類器と新しい事例のみを使って、なるべく精度の高い分類器が得られるような更新法を考える。この方法は計算コスト、メモリともに非常に少ない量で済むが、データ全体に対する最適性を保証することが難しくなる。

SVMはデータ解析の標準的なツールとなり、様々な分野で応用されている。多くの統計解析ソフトウェアにおいてSVMが実装され、小・中規模のデータに対して、簡単に利用できるようになっている。ここでは統計解析環境Rのkernlabパッケージについて述べる。

一方、大規模なデータに対してSVMを利用したり、目的に応じて一部を変更したりする場合には学習アルゴリズムの実装に関する知識を持っておくことが必要となる。ここでは、この目標を踏まえ、LIBSVMと呼ばれるSVMソフトウェアの実装について詳しく述べる。LIBSVMは国立台湾大学のC.J.Lin教授のグループが作成・管理しているもので、このソフトウェアはC++で実装され、コードが公開されているため、目的に応じた修正や他のシステムとの統合なども比較的容易に行える。

SVMによって構造を持つデータを予測することは、構造サポートベクトルマシンという拡張を利用することでできる。この手法では、複雑な構造を導入することで増加する制約条件を切除平面ほうと呼ばれる最適化手法で効率的に扱うことができる。構造型データは例えば木構造や配列として表現されたデータがある。自然言語処理における構造木予測では各単語間の文法上の関係が木構造として表現される。あるいは、タンパク質の類似配列検索の問題ではタンパク質をアミノ酸の配列として表現することがある。

今回は教師あり学習と教師なし学習の中間に位置付けられる弱ラベル学習と呼ばれる問題設定について述べる。弱ラベル学習では、ラベルの情報が部分的にしか得られない状況で分類や回帰などの問題を考える。まず訓練事例のうち一部だけにラベル情報が与えられている半教師あり学習と呼ばれる問題について述べる。

ここでは、半教師あり学習のためのSVMについて述べる。半教師あり分類問題ではラベルのある訓練事例とラベルのない訓練事例が与えられる。最後に半教師ありSVMを2次元の人工データに適用した例について述べる。ラベルあり事例として正負ラベルの事例がそれぞれ2例ずつ、ラベルなし事例として、100事例が与えられている。

ここではマルチインスタンス学習(multi-instance learning)と呼ばれる弱ラベル学習問題へのSVMによるアプローチについて述べる。

マルチインスタンス学習は2クラス分類問題の一種となる。通常の2クラス分類問題との違いは、個々の訓練事例それぞれにラベルが与えられているのではなく、バッグ(bag)と呼ばれる訓練事例の集合にラベルが与えられることとなる。各バッグは複数の事例(インスタンス)から構成され、各事例は正クラスか負クラスのどちらかに属しており、それぞれ正事例、負事例と呼ぶ。あるバッグに正事例が一つでも含まれている場合、そのバッグを正バッグと呼ぶ。逆に、あるバッグに含まれる事例がすべて負事例の場合、そのバッグを負バッグと呼ぶ。マルチインスタンス学習では、バッグに対するラベルのみが与えられる。負バッグにおいては含まれるすべての事例が負事例であることがわかるが、正バッグにおいてはどれが正事例でどれが負事例であるのかわからない。このため、正バッグに含まれる事例のラベルを推定しつつ、分類境界を求めなければいけない。

カーネル法で用いられるカーネル関数や再生核ヒルベルト空間について述べる。また応用上重要な表現定理についても述べる。さらに加えて、高い表現力をもつ普遍カーネルの基本的な性質についても述べる。

カーネル関数からの推定量\(\hat{f}(x)\)は線形モデルMに含まれ、関数Φ(x)TΦ(x’)の線形和で与えられる。関数Φ(x)TΦ(x’)の代わりに一般のカーネル関数を用いる時、推定量はカーネル関数の線形和で与えられる。そこでカーネル関数の線形和で生成される線型空間H0を以下のように定義する。

線形モデルMを用いて推定量を構成する場合、学習された関数\(\hat{f}(x)\)は、データ点x1,…,xnに対応する関数k(xi,・),i=1,…,nの線形和として表される。この性質は、一般の再生核ヒルベルト空間において表現定理としてまとめられる。

次に、再生核ヒルベルト空間Hを統計モデルとする学習アルゴリズムについて述べる。予測精度の評価などで一様大数の法則を用いるが、その際、ラデマッハ複雑度を求める必要鵜がある。ここでは、再生核ヒルベルト空間Hの有界集合に対するラデマッハ複雑度を評価する。

再生核ヒルベルト空間が無限次元のとき、広いクラスの関数を近似できると期待される。本節では、連続関数に対する近似誤差が十分小さくなる統計モデルとして、普遍カーネルとよばれるカーネル関数に対応する再生核ヒルベルト空間について述べる。

    カーネル法の代表例として、C-サポートベクトルマシンについて述べる。C-サポートベクトルマシンでは、統計的一致性の証明を与える。サポートベクトルマシン(support vector machine SVM)は機械学習における代表的な学習アルゴリズムの総称となる。ここでは、2値判別のための学習アルゴリズムであるC-サポートベクトルマシン(C-support vector machine)とν-サポートベクトルマシン(ν-support vector machine)について述べる。ここでCとνは正則化パラメータを意味する。

    ν-サポートベクトルマシンは、C-サポートベクトルマシンの正則化パラメータCを、より明確な意味を持つパラメータνに置き換えたアルゴリズムとなる。

    データ(x,y)に対する判別関数f(x)+bの損失をヒンジ損失Φhingeで測るとする。このときsign(f(xi)+b)=yiであっても、マージンmi=yi(f(xi)+b)の値が1未満のときには非零の損失を被る。閾値である1は、定数としてあらかじめ決められている。一方、閾値をデータに合わせて可変にし、マージンがある正数ρ未満のとき損失を被るような損失関数を用いることもできる。これは、損失関数をmax{ρ-mi,0}とすることで実現できる。ここで、ρを可変にすると、どのようなデータに対しても小さなρを選べば良いことになり、このままでは適切に損失を測ることができない。そこで、閾値ρを小さくすることに対するペナルティ項-νρを加え、以下のようにして、特別関数に対する損失を定義する。

    今回はあらかじめ定義したグループ構造を時間遷移として利用し、グループ単位でゼロ/非ゼロを選択するためのノルムについて述べ、マルチタスク学習、マルチカーネル学習や、ベクトル場の推定に有効であることをみる。

    機械学習技術(SVM)を用いたクラスタリングによるオントロジーマッチング

    画像情報の分類のための、ロジスティック回帰、ソフトマックス回帰とカーネル法を使った局所学習について

    画像情報の局所特徴を認織に有効な次元数のベクトルに変換する操作をコーディングと呼び、画像領域から得た複数のコーディング後のベクトルを、その領域を代表する1本のベクトルにまとめる操作をプーリング(pooling)と呼ぶ。コーディングをするために、ヒストグラム密度推定やカーネル密度推定といったノンパラメトリックなアプローチを利用した手法と、パラメトリックなアプローチによる混合ガウス分布のパラメータ推定を利用した手法について述べる。

    liblinearは国立台湾大学で開発されたオープンソースのSVM(support vector machine)である。SVMは値教師あり学習を用いるパターン認識モデルの一つで、分類や回帰への適用が可能なアルゴリズムとなる。liblinearはそのSVMを用いてinstanceや特徴が100万桁のデータを高速に線形分離可能である特徴を持ち、様々なタスクに活用される。

    今回はそのClojureのラッパーであるclj-liblinearを用いて、自然言語処理ツールであるkuromojiと組み合わせて、文の分類を行うタスクを行ってみた。

    古典的手法であるホテリングのT2法では、全データが単一の正規分布に従うと仮定して異常検知モデルを作っていた。一方混合分布モデルやベイズ推定を用いたアプローチでは、単一の分布を使うのを諦め、着目点の周りの局所的なデータの散らばりに着目して異常検知モデルを作っていた。ここでは、発想をホテリングのT2法の世界に引き戻し、しかしその代わりに「カーネルトリック」という技術を使って、分布の濃淡を間接的に表現するというアプローチについて述べる。

    オンライン学習のための確率的勾配降下法をパーセプトロン、SVM、ロジスティック回帰へ適用した理論とアルゴリズムについて述べる。

    普通の主成分分析だと,線形の相関のあるデータ(相関がなくても出来ますが相関があればなおいいぐらいの意味)の次元圧縮しかできません.
    データを高次元に射影して,通常の主成分分析を行う,カーネル主成分分析では非線形の相関データを扱うことが可能になるという訳です.

    コメント

    1. […] 特徴空間においてデータが複雑に分布している場合、非線形な分類器が有効となる。非線形な分類器を構成するには、カーネル法やニューラルネットワークなどを利用した手法が挙げられる。ここでは単純な分類器を複数組み合わせることで、非線形な分類器を構成する集団学習(ensemble learning)について述べる。なおね集団学習はアンサンブル学習とも呼ばれている。 […]

    2. […] PCAの発展系としては、対応分析(カテゴリデータなどにも適用可能)、カーネル主成分分析(非線形なデータにも適用可能)、主成分回帰(主成分分析をした結果を使って、回帰分析を行い、予測を行う)等がある。 […]

    3. […] 今回は線形のSV分類を中心に述べた。次回は双極問題とカーネル法について述べたいと思う。 […]

    4. […] このスパースモデリングは、現代の機械学習のブレークスルーとして、深層学習、カーネル法に並ぶものとして挙げられている。 […]

    5. […] サポートベクターマシン サポートベクターマシン(SVM)は、分類や回帰などのタスクに使用される教師付き学習法となる(Cristianini and Shawe-Taylor 2000)。基本的なSVMは、非確率的な二値線形分類器になる。しかし,カーネル関数を利用することで,非線形分類も効率的に行うことができる。これにより、SVMの入力を高次元特徴空間に暗黙のうちに変換またはマッピングし、元々線形非分離であったデータを特徴空間で(おそらく)分離しやすくすることができる(Boser et al. 1992; Vapnik 2000)。SVMはいくつかのマッチングアプローチで分類器として用いられている(Ehrig et al. 2005; Spiliopoulos et al. 2010; Tournaire et al. 2011)。 トレーニングインスタンスは、一致するものと一致しないものの2つのカテゴリに分かれている。SVMはこれらに基づいて,高次元空間,すなわち(w,b)に最大分離超平面を構築する。ここで,wは重みベクトル,bはバイアスを表す。決定関数は f (x) = w × x + b であり、マージンまたは最も近いデータポイント間の距離が最大となる(これはソフト的にも可能であり、すなわちノイズや誤った例を考慮することで可能となる(Cortes and Vapnik 1995))。カーネルを用いた超平面決定関数は以下のように表される。 […]

    6. […] 図中のFは、画素に対する重みを表現する(2N+1)x(2N+1)の行列で、カーネルもしくはマスクと呼ばれる。またF(i,j)はフィルタ係数と呼ばれる。式(1)の計算は相関(correlation)と呼ばれる。F(i,j)を変化させることで、同じ入力画像から様々な出力が得られる。 […]

    7. […] ここでk(xn–x0,b)は、x0を中心とし幅bを持つカーネルとなる。このカーネルや写像関数f(xn;ω)を設定する事で、様々な手法を導く事ができる。 […]

    8. […] BoVWはカーネル法と組み合わせることで、高い画像分類性能が得られる。カーネル法とは2つのデータx,y間の類似度を表すカーネル関数k(x,y)を利用することで、類似度を適切に考慮したデータの予測などの解析を行う手法となる。 […]

    9. […] この2つの計算はそれぞれI(x,y)に以下のカーネルを適用することと同じとなる。 […]

    10. […] 2000年代後半には、画像認識アルゴリズムの発展に合わせて、画像認識用のデータ集合にも大規模かつ低バイアスなものに進化していく。大規模データにも対応可能なように、線形分類器との相性の良いスパースコーディングやカーネル法を利用した画像特徴の開発が盛んに行われている。 […]

    11. […] まずHOG特徴と線形SVMを用いた物体検出について述べる。この手法では、はじめにスライディングウィンドウ法などを用いて、複数の領域を提案し、提案された領域内のHOG特徴を線形SVMに入力することで、認識対象物の存在を判断するものとなる。(下図) […]

    12. […] カーネル法を用いたパターン認織機械学習モデルである「機械学習プロフェッショナルシリーズ サポートベクトルマシン」より。読後メモを記述する。 […]

    13. […] 機械学習技術サマリー  オンライン学習技術サマリー サポートベクトルマシンサマリー […]

    14. […] 人工知能技術サマリー デジタルトランスフォーメーションサマリー 人工知能技術サマリー 異常検知・変化検知技術サマリー 機械学習サマリー サポートベクトルマシンサマリー […]

    15. […] 機械学習技術サマリー 人工知能技術サマリー デジタルトランスフォーメーション技術サマリー  サポートベクトルマシンサマリー 自然言語処理技術サマリー Clojureサマリー […]

    16. […] 人工知能技術サマリー  デジダルトランスフォーメーションサマリー  画像情報処理技術サマリー  深層学習技術サマリー サポートベクトルマシン技術サマリー 機械学習技術サマリー […]

    17. […] 機械学習技術サマリー 確率的生成モデルサマリー サポートベクトルマシンサマリー スパースモデリングサマリー 人工知能技術サマリー デジタルトランスフォーメーション技術サマリー […]

    18. […] 機械学習技術サマリー 確率的生成モデルサマリー サポートベクトルマシンサマリー スパースモデリングサマリー 人工知能技術サマリー 異常検知・変化検知技術サマリー   デジタルトランスフォーメーション技術サマリー […]

    19. […] 機械学習技術サマリー 確率的生成モデルサマリー サポートベクトルマシンサマリー スパースモデリングサマリー 人工知能技術サマリー 異常検知・変化検知技術サマリー   デジタルトランスフォーメーション技術サマリー […]

    20. […] 機械学習技術サマリー 確率的生成モデルサマリー サポートベクトルマシンサマリー スパースモデリングサマリー 人工知能技術サマリー 異常検知・変化検知技術サマリー   デジタルトランスフォーメーション技術サマリー […]

    21. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション技術  サポートベクトルマシン 自然言語処理技術 Clojure […]

    22. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション技術  サポートベクトルマシン 自然言語処理技術 Clojure […]

    23. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション技術  サポートベクトルマシン 自然言語処理技術 Clojure […]

    24. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  デジタルトランスフォーメーション技術 […]

    25. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術   デジタルトランスフォーメーション技術 […]

    26. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術   数学  デジタルトランスフォーメーション技術 […]

    27. […] 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  […]

    28. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術   デジタルトランスフォーメーション技術 […]

    29. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析   デジタルトランスフォーメーション技術 […]

    30. […] またカーネル法やガウス過程など、関数空間を直接取り扱って回帰を行う手法も成功を収めている。これらの発展を踏まえてベイズ推論ではよりスケールする方向に関心が移り、ノンパ […]

    31. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析  デジタルトランスフォーメーション技術 […]

    32. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析  デジタルトランスフォーメーション技術 […]

    33. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション サポートベクトルマシン  […]

    34. […] 機械学習技術サマリー 人工知能技術サマリー デジタルトランスフォーメーションサマリー サポートベクトルマシンサマリー  […]

    35. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析  デジタルトランスフォーメーション技術 […]

    36. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析  デジタルトランスフォーメーション技術 […]

    37. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション サポートベクトルマシン  […]

    38. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析 シミュレーションと機械学習 デジタルトランスフォーメーション技術 […]

    39. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析 シミュレーションと機械学習 デジタルトランスフォーメーション技術 […]

    40. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析 Rと機械学習  デジタルトランスフォーメーション技術 […]

    41. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション サポートベクトルマシン  […]

    42. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析  デジタルトランスフォーメーション技術 […]

    43. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析 シミュレーションと機械学習 デジタルトランスフォーメーション技術 […]

    44. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析 Rと機械学習  デジタルトランスフォーメーション技術 […]

    45. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション サポートベクトルマシン  […]

    46. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析 シミュレーションと機械学習 デジタルトランスフォーメーション技術 […]

    47. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析 Rと機械学習  デジタルトランスフォーメーション技術 […]

    48. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション サポートベクトルマシン  […]

    49. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析 Rと機械学習  デジタルトランスフォーメーション技術 […]

    50. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析 シミュレーションと機械学習 デジタルトランスフォーメーション技術 […]

    51. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション サポートベクトルマシン  […]

    52. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析  デジタルトランスフォーメーション技術 […]

    53. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション サポートベクトルマシン  […]

    54. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション技術 確率的生成モデル  サポートベクトルマシン   ノンパラメトリックベイズとガウス過程 […]

    55. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション技術 確率的生成モデル  サポートベクトルマシン   ノンパラメトリックベイズとガウス過程 […]

    56. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析  デジタルトランスフォーメーション技術 […]

    57. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション サポートベクトルマシン  […]

    58. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション技術 確率的生成モデル  サポートベクトルマシン   ノンパラメトリックベイズとガウス過程 […]

    59. […] プログラミング スパースモデリング 確率的生成モデル サポートベクトルマシン […]

    60. […] セマンティックウェブ技術 オントロジー技術 確率的生成モデル サポートベクトルマシン スパースモデリング トピックモデル Python […]

    61. […] (SVMの詳細は”カーネル法の概要とサポートベクトルマシンについて“を参照のこと) […]

    62. […] ストリームデータの処理 確率的生成モデル 深層学習 関係データ学習 サポートベクトルマシン スパースモデリング 異常検知・変化検知技術 python […]

    63. […] プログラミング スパースモデリング 確率的生成モデル サポートベクトルマシン […]

    64. […] Pocket LINE コピー 2023.06.01 2023.03.19 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 Clojure […]

    65. […] 異常・変化検知 オンライン学習 オントロジー技術 画像情報処理 サポートベクトルマシン Python […]

    66. […] ストリームデータの処理と機械学習  確率的生成モデル 関係データ学習 サポートベクトルマシン スパースモデリング 時系列データ解析技術 […]

    67. […] オントロジー技術 検索技術 アルゴリズム 確率的生成モデル サポートベクトルマシン スパースモデリング C/C++言語と各種機械学習アルゴリズム […]

    68. […] 推論技術 プログラミング スパースモデリング 確率的生成モデル サポートベクトルマシン […]

    69. […] プログラミング スパースモデリング 確率的生成モデル サポートベクトルマシン […]

    70. […] ICTインフラ技術 確率的生成モデル 関係データ学習 サポートベクトルマシン スパースモデリング 異常検知・変化検知技術 時系列データ解析 […]

    71. […] ICTインフラ技術 確率的生成モデル 関係データ学習 サポートベクトルマシン スパースモデリング 異常検知・変化検知技術 時系列データ解析 […]

    72. […] ICTインフラ技術 確率的生成モデル 関係データ学習 サポートベクトルマシン スパースモデリング 異常検知・変化検知技術 時系列データ解析 […]

    73. […] ICTインフラ技術 確率的生成モデル 関係データ学習 サポートベクトルマシン スパースモデリング 異常検知・変化検知技術 時系列データ解析 […]

    タイトルとURLをコピーしました