カーネルSVM:高次元の特徴空間へのマッピングと、これにより線形分離がどのように可能になるかを直感的に理解したい


15

カーネルSVMの背後にある直感を理解しようとしています。今、私は線形SVMがどのように機能するかを理解します。それにより、データを可能な限り分割する決定ラインが作成されます。また、データをより高次元の空間に移植する背後にある原理と、この新しい空間で線形決定ラインを見つけやすくする方法を理解しています。私が理解していないのは、この新しいスペースにデータポイントを投影するためにカーネルがどのように使用されるかです。

カーネルについて知っていることは、2つのデータポイント間の「類似性」を効果的に表しているということです。しかし、これはどのように投影に関連していますか?


3
十分に高い次元空間に移動すると、すべてのトレーニングデータポイントを平面で完全に分離できます。だからといって、予測力があるとは限りません。非常に高い次元の空間に行くことは、過剰適合の道徳的な等価物(の一種)だと思います。
マークL.ストーン

@マークL.ストーン:それは正しい(+1)が、それでもカーネルが無限次元空間にどのようにマッピングできるかを尋ねるのは良い質問かもしれない?それはどのように機能しますか?私は私の答えを参照しようとした

機能マッピングを「プロジェクション」と呼ぶことに注意してください。特徴マッピングは一般に非線形変換です。
ポール

カーネルトリックの視覚化カーネルの内積空間上非常に有用ポストと高次元の特徴ベクトルは、これを達成するために使用されている方法について説明し、うまくいけば、これは簡潔に質問に答える:eric-kim.net/eric-kim-net/をposts / 1 / kernel_trick.html
JStrahl

回答:


6

ましょh(x) 、高次元空間への射影であるF。基本的に、カーネル関数K(x1,x2)=h(x1),h(x2)内積です。そのため、データポイントの投影には使用されず、投影の結果として使用されます。これは類似性の尺度と見なすことができますが、SVMではそれ以上のものです。

最適な分離超平面を見つけるための最適化には、内積形式のみによるh x )がF含まれます。つまり、K を知っていれば、h x )の正確な形式を知る必要はなく、最適化が容易になります。h(x)K(,)h(x)

各カーネルK(,)は、対応するh(x)もあります。そのため、そのカーネルでSVMを使用している場合、h(x)マップされる空間で線形決定線を暗黙的に見つけることになります。

統計学習要素の第12章では、SVMについて簡単に紹介しています。これにより、カーネルと機能マッピング間の接続に関する詳細が提供されます。http//statweb.stanford.edu/~tibs/ElemStatLearn/


カーネルK(x,y)には、基礎となる一意のh(x)ですか?

2
@fcoppensいいえ。ささいな例として、h考えてくださいh。ただし、そのカーネルに対応するユニークな再生カーネルヒルベルト空間が存在します。
ドゥーガル

@Dougal:それから私はあなたに同意することができます、しかし上の答えでそれは「対応するh」と言われたので、私は確信したかったです。RKHSの場合、この変換hがカーネルに対してどのように見えるかを「直感的な方法」で説明できると思いますK(x,y)か?

@fcoppens一般的に、いいえ。これらのマップの明示的な表現を見つけることは困難です。ただし、特定のカーネルでは、それほど難しくないか、以前に行われたことがあります。
ドゥーガル

1
あなたが正しい@ fcoppens、h(x)は一意ではありません。内積<h(x)、h(x ')>を同じに保ちながら、h(x)を簡単に変更できます。ただし、それらを基底関数と見なすことができ、それらがまたがる空間(つまり、RKHS)は一意です。

4

カーネルSVMの有用なプロパティは普遍的ではありません-カーネルの選択に依存します。直観を得るために、最も一般的に使用されるカーネルの1つであるガウスカーネルを見ると役立ちます。驚くべきことに、このカーネルはSVMをk最近傍分類器のようなものに変えます。

この回答は次のことを説明しています。

  1. 帯域幅が十分に小さいガウスカーネルを使用して、ポジティブトレーニングデータとネガティブトレーニングデータを完全に分離できる理由(オーバーフィッティングのコスト)
  2. この分離が機能空間で線形として解釈される方法。
  3. カーネルを使用して、データ空間から機能空間へのマッピングを構築する方法。ネタバレ:機能空間は非常に数学的に抽象的なオブジェクトであり、カーネルに基づいた異常な抽象的な内積を持っています。

1.完全な分離を達成する

ガウスカーネルでは、カーネルのローカリティプロパティにより、任意の柔軟性のある決定境界につながるため、常に完全な分離が可能です。カーネルの帯域幅が十分に小さい場合、肯定的な例と否定的な例を区別する必要があるときはいつでも、決定境界はポイントの周りに小さな円を描いたように見えます。

Something like this

(クレジット:Andrew Ngのオンライン機械学習コース)。

では、なぜこれが数学的な観点から起こるのでしょうか?

標準の設定を考えてみましょう:あなたは、ガウスカーネル持っ とトレーニングデータX 1 Y 1 X 2 y 2 x n K(x,z)=exp(||xz||2/σ2)ここで、 y i 値は ± 1です。分類関数を学びたい(x(1),y(1)),(x(2),y(2)),,(x(n),y(n))y(i)±1

y^(x)=iwiy(i)K(x(i),x)

重みをどのように割り当てるのでしょうか?無限次元空間と二次計画アルゴリズムが必要ですか?いいえ。ポイントを完全に分離できることを示したいだけです。私が作るので、σ最小分離よりも小さい億回| | x i x j | | 任意の2つのトレーニング例の間で、w i = 1に設定します。すべてのトレーニング点が離れ限りカーネルに関しては億シグマであり、各点は完全の符号制御するこの手段Yをwiσ||x(i)x(j)||wi=1y^近所で。正式には、

y^(x(k))=i=1ny(k)K(x(i),x(k))=y(k)K(x(k),x(k))+iky(i)K(x(i),x(k))=y(k)+ϵ

ここで、は任意の小さな値です。x k が他の点から10億シグマ離れているため、ϵが小さいことがわかっているため、すべてのi kについてϵϵx(k)ik

K(x(i),x(k))=exp(||x(i)x(k)||2/σ2)0.

以来、小さいのでYX kは間違いなく同じ符号有するY kは、及び分類器は、訓練データに完璧な精度を達成します。実際には、これはひどく過剰に適合しますが、ガウスカーネルSVMの非常に高い柔軟性と、最近傍分類子と非常によく似た動作ができることを示しています。ϵy^(x(k))y(k)

2.線形分離としてのカーネルSVM学習

これが「無限次元の特徴空間での完全な線形分離」として解釈できるという事実は、カーネルのトリックに由来します。これにより、カーネルを新しい特徴空間の抽象的な内積として解釈できます。

K(x(i),x(j))=Φ(x(i)),Φ(x(j))

ここで、はデータ空間から特徴空間へのマッピングです。その直後のYX特徴空間における線形関数としての機能:Φ(x)y^(x)

y^(x)=iwiy(i)Φ(x(i)),Φ(x)=L(Φ(x))

ここで、線形関数は、特徴空間ベクトルvで次のように定義されます。L(v)v

L(v)=iwiy(i)Φ(x(i)),v

この関数は、内積と固定ベクトルの線形結合にすぎないため、で線形です。特徴空間において、決定境界YX= 0はわずかであるL V= 0、線形関数のレベルセット。これは、機能空間における超平面のまさに定義です。vy^(x)=0L(v)=0

3.カーネルを使用して機能空間を構築する方法

カーネルメソッドは、実際に機能空間またはマッピング明示的に「検出」または「計算」することはありません。SVMなどのカーネル学習メソッドは、動作するためにそれらを必要としません。カーネル関数Kのみが必要です。Φの式を書き留めることは可能ですが、それがマップする機能空間は非常に抽象的であり、SVMに関する理論的な結果を証明するためにのみ実際に使用されます。まだ興味がある場合は、次のように機能します。ΦKΦ

基本的に、各ベクトルがXからRまでの関数である抽象的なベクトル空間を定義します。ベクトルFVは、カーネル・スライスの有限の線形結合から形成される機能である: F X= N Σ iが= 1 α I K X I X (ここで、X iは単に任意ですポイントのセットであり、トレーニングセットと同じである必要はありません。)fと書くのが便利です。VXRfV

f(x)=i=1nαiK(x(i),x)
x(i)fよりコンパクトとして ここで、K XY= K XYはでカーネルの"スライス"を与える関数であり、xは
f=i=1nαiKx(i)
Kx(y)=K(x,y)x

空間上の内積は通常のドット積ではなく、カーネルに基づく抽象的な内積です。

i=1nαiKx(i),j=1nβjKx(j)=i,jαiβjK(x(i),x(j))

この定義は非常に審議されています。その構成は、我々が線形分離のために必要なアイデンティティ、確実にΦ(x),Φ(y)=K(x,y)

このように定義された特徴空間では、はマッピングXVであり、各ポイントxをそのポイントの「カーネルスライス」に取ります。ΦXVx

Φ(x)=Kx,whereKx(y)=K(x,y).

Kが正定カーネルの場合、が内積空間であることを証明できます。詳細については、このペーパーを参照してください。VK


素晴らしい説明ですが、ガウスカーネルの定義のマイナスを見逃していると思います。K(x、z)= exp(-|| x−z || 2 /σ2)。それが書かれているとして、それは一部(1)で見つかったεと意味がありません
hqxortn

1

背景と表記については、サポートベクターから決定境界を計算する方法を参照してください

So the features in the 'original' space are the vectors xi, the binary outcome yi{1,+1} and the Lagrange multipliers are αi.

As said by @Lii (+1) the Kernel can be written as K(x,y)=h(x)h(y) ('' represents the inner product.

I will try to give some 'intuitive' explanation of what this h looks like, so this answer is no formal proof, it just wants to give some feeling of how I think that this works. Do not hesitate to correct me if I am wrong.

I have to 'transform' my feature space (so my xi) into some 'new' feature space in which the linear separation will be solved.

For each observation xi, I define functions ϕi(x)=K(xi,x), so I have a function ϕi for each element of my training sample. These functions ϕi span a vector space. The vector space spanned by the ϕi, note it V=span(ϕi,i=1,2,N).

I will try to argue that is the vector space in which linear separation will be possible. By definition of the span, each vector in the vector space V can be written as as a linear combination of the ϕi, i.e.: i=1Nγiϕi, where γi are real numbers.

N is the size of the training sample and therefore the dimension of the vector space V can go up to N, depending on whether the ϕi are linear independent. As ϕi(x)=K(xi,x) (see supra, we defined ϕ in this way), this means that the dimension of V depends on the kernel used and can go up to the size of the training sample.

The transformation, that maps my original feature space to V is defined as

Φ:xiϕ(x)=K(xi,x).

This map Φ maps my original feature space onto a vector space that can have a dimension that goed up to the size of my training sample.

Obviously, this transformation (a) depends on the kernel, (b) depends on the values xi in the training sample and (c) can, depending on my kernel, have a dimension that goes up to the size of my training sample and (d) the vectors of V look like i=1Nγiϕi, where γi, γi are real numbers.

Looking at the function f(x) in How to calculate decision boundary from support vectors? it can be seen that f(x)=iyiαiϕi(x)+b.

In other words, f(x) is a linear combination of the ϕi and this is a linear separator in the V-space : it is a particular choice of the γi namely γi=αiyi !

The yi are known from our observations, the αi are the Lagrange multipliers that the SVM has found. In other words SVM find, through the use of a kernel and by solving a quadratic programming problem, a linear separation in the V-spave.

This is my intuitive understanding of how the 'kernel trick' allows one to 'implicitly' transform the original feature space into a new feature space V, with a different dimension. This dimension depends on the kernel you use and for the RBF kernel this dimension can go up to the size of the training sample.

So kernels are a technique that allows SVM to transform your feature space , see also What makes the Gaussian kernel so magical for PCA, and also in general?


"for each element of my training sample" -- is element here referring to a row or column (i.e. feature )
user1761806

what is x and x_i? If my X is an input of 5 columns, and 100 rows, what would x and x_i be?
user1761806

@user1761806 an element is a row. The notation is explained in the link at the beginning of the answer

1

Transform predictors (input data) to a high-dimensional feature space. It is sufficient to just specify the kernel for this step and the data is never explicitly transformed to the feature space. This process is commonly known as the kernel trick.

Let me explain it. The kernel trick is the key here. Consider the case of a Radial Basis Function (RBF) Kernel here. It transforms the input to infinite dimensional space. The transformation of input x to ϕ(x) can be represented as shown below (taken from http://www.csie.ntu.edu.tw/~cjlin/talks/kuleuven_svm.pdf)

enter image description here

The input space is finite dimensional but the transformed space is infinite dimensional. Transforming the input to an infinite dimensional space is something that happens as a result of the kernel trick. Here x which is the input and ϕ is the transformed input. But ϕ is not computed as it is, instead the product ϕ(xi)Tϕ(x) is computed which is just the exponential of the norm between xi and x.

There is a related question Feature map for the Gaussian kernel to which there is a nice answer /stats//a/69767/86202.

The output or decision function is a function of the kernel matrix K(xi,x)=ϕ(xi)Tϕ(x) and not of the input x or transformed input ϕ directly. enter image description here


0

高次元へのマッピングは、元の次元で定義された問題を解決するための単なるトリックです。そのため、自由度が多すぎるディメンションにアクセスしてデータを過剰適合させるなどの懸念は、マッピングプロセスの副産物ではなく、問題定義に固有​​のものです。

基本的に、マッピングは元の次元の条件付き分類を高次元の平面定義に変換するだけで、高次元の平面と低次元の条件の間には1対1の関係があるため、常に2つの間を移動します。

明らかにオーバーフィットの問題に対処するには、各観測を独自のクラスに分離するのに十分な条件を定義することにより、任意の観測セットを過適合できます。これは、データを(n-1)Dにマッピングするのと同等です(nは観測の数) 。

観測が[[1、-1]、[0,0]、[1,1]] [[feature、value]]である最も単純な問題を取り、2D次元に移動してデータを線で区切る、条件付き分類を単にfeature < 1 && feature > -1 : 0通過する線の定義に変えています(-1 + epsilon, 1 - epsilon)。より多くのデータポイントがあり、より多くの条件が必要な場合は、定義する新しい条件ごとに、より高い次元にもう1つの自由度を追加する必要がありました。

より高い次元へのマッピングのプロセスを、新しい問題の条件と自由度の間の1対1の関係を提供するプロセスに置き換えることができます。カーネルトリックは単純にそれを行います。


1
As a different example, take the problem where the phenomenon results in observations of the form of [x, floor(sin(x))]. Mapping your problem into a 2D dimension is not helpful here at all; in fact, mapping to any plane will not be helpful here, which is because defining the problem as a set of x < a && x > b : z is not helpful in this case. The simplest mapping in this case is mapping into a polar coordinate, or into the imaginary plane.
Hou
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.