เคอร์เนล SVM: ฉันต้องการความเข้าใจที่เข้าใจง่ายเกี่ยวกับการแมปไปยังพื้นที่คุณลักษณะมิติที่สูงขึ้นและวิธีนี้ทำให้การแยกเชิงเส้นเป็นไปได้


15

ฉันพยายามที่จะเข้าใจสัญชาตญาณที่อยู่เบื้องหลังเคอร์เนล SVM ตอนนี้ฉันเข้าใจวิธีการทำงานของ SVM แบบเส้นตรงโดยที่บรรทัดการตัดสินใจจะแยกข้อมูลออกมาให้ดีที่สุดเท่าที่จะทำได้ ฉันยังเข้าใจหลักการที่อยู่เบื้องหลังการย้ายข้อมูลไปยังพื้นที่มิติที่สูงขึ้นและวิธีนี้จะทำให้การค้นหาเส้นการตัดสินใจเชิงเส้นในพื้นที่ใหม่นี้ง่ายขึ้น สิ่งที่ฉันไม่เข้าใจก็คือวิธีที่เคอร์เนลใช้ในการฉายจุดข้อมูลไปยังพื้นที่ใหม่นี้

สิ่งที่ฉันรู้เกี่ยวกับเคอร์เนลคือมันแสดงถึง "ความคล้ายคลึงกัน" ได้อย่างมีประสิทธิภาพระหว่างจุดข้อมูลสองจุด แต่สิ่งนี้เกี่ยวข้องกับการฉายภาพอย่างไร


3
หากคุณไปยังพื้นที่มิติที่สูงพอจุดข้อมูลการฝึกอบรมทั้งหมดสามารถแยกออกจากกันได้อย่างสมบูรณ์แบบโดยเครื่องบิน ไม่ได้หมายความว่ามันจะมีพลังการทำนายใด ๆ ฉันคิดว่าการได้พื้นที่มิติสูงมากคือความเท่าเทียมทางศีลธรรม (รูปแบบ)
Mark L. Stone

@ Mark L. Stone: ถูกต้อง (+1) แต่มันอาจเป็นคำถามที่ดีที่จะถามว่าเคอร์เนลสามารถแมปไปยังมิติที่ไม่มีที่สิ้นสุดได้อย่างไร มันทำงานอย่างไร ฉันลองดูคำตอบของฉัน

ฉันจะระมัดระวังเกี่ยวกับการเรียกการแมปคุณสมบัติ "การฉายภาพ" การแมปคุณสมบัติโดยทั่วไปคือการแปลงแบบไม่เชิงเส้น
พอล

โพสต์ที่เป็นประโยชน์อย่างมากเกี่ยวกับเคล็ดลับเคอร์เนลแสดงพื้นที่ผลิตภัณฑ์ภายในของเคอร์เนลและอธิบายว่าเวกเตอร์คุณลักษณะมิติสูงใช้เพื่อให้บรรลุสิ่งนี้ได้อย่างไรหวังว่านี่จะตอบคำถามโดยย่อ: eric-kim.net/eric-kim-net/ posts / 1 / kernel_trick.html
JStrahl

คำตอบ:


6

ขอh(x) จะฉายไปยังมิติสูงพื้นที่FFโดยทั่วไปฟังก์ชั่นเคอร์เนลK(x1,x2)=h(x1),h(x2)ซึ่งเป็นผลิตภัณฑ์ชั้นใน ดังนั้นจึงไม่ได้ใช้ในการฉายจุดข้อมูล แต่เป็นผลลัพธ์ของการประมาณการ มันถือได้ว่าเป็นการวัดความคล้ายคลึงกัน แต่ใน SVM มันมากกว่านั้น

การปรับให้เหมาะสมสำหรับการค้นหาไฮเปอร์เพลนแบบแยกที่ดีที่สุดในFเกี่ยวข้องกับh(x)ผ่านรูปแบบผลิตภัณฑ์ภายในเท่านั้น ถ้าหากคุณรู้K(,)คุณไม่จำเป็นต้องรู้รูปแบบที่แน่นอนของh(x)ซึ่งทำให้การเพิ่มประสิทธิภาพง่ายขึ้น

เคอร์เนลแต่ละตัวมีh ( x ) ที่สอดคล้องกันเช่นกัน ดังนั้นหากคุณใช้ SVM กับเคอร์เนลคุณก็จะต้องค้นหาเส้นการตัดสินใจเชิงเส้นในพื้นที่ที่แผนที่h ( x )เข้ามาK(,)h(x)h(x)

บทที่ 12 ขององค์ประกอบของการเรียนรู้ทางสถิติให้คำแนะนำสั้น ๆ กับ SVM สิ่งนี้ให้รายละเอียดเพิ่มเติมเกี่ยวกับการเชื่อมต่อระหว่างเคอร์เนลและการแมปคุณสมบัติ: http://statweb.stanford.edu/~tibs/ElemStatLearn/


คุณหมายถึงว่าสำหรับเคอร์เนลมีที่ไม่ซ้ำกันต้นแบบเอช( x ) ? K(x,Y)ชั่วโมง(x)

2
@fcoppens ไม่; สำหรับตัวอย่างที่น่ารำคาญพิจารณาและ-ชั่วโมง อย่างไรก็ตามมีพื้นที่ทำซ้ำของเคอร์เนล Hilbert ที่สอดคล้องกับเคอร์เนลนั้นอยู่ hชั่วโมง
Dougal

@Dougal: จากนั้นฉันสามารถเห็นด้วยกับคุณ แต่ในคำตอบข้างต้นมันก็บอกว่า ' สอดคล้องกัน' ดังนั้นฉันต้องการที่จะแน่ใจ สำหรับ RKHS ที่ฉันเห็น แต่คุณคิดว่ามันเป็นไปได้ที่จะอธิบายใน 'วิธีที่ง่าย' สิ่งที่เปลี่ยนแปลงครั้งนี้เอชดูเหมือนสำหรับเคอร์เนลK ( x , Y ) ? hhK(x,y)

@fcoppens โดยทั่วไปแล้วไม่มี; การหาตัวแทนที่ชัดเจนของแผนที่เหล่านี้เป็นเรื่องยาก สำหรับเมล็ดบางอย่างมันก็ไม่ได้ยากเกินไปหรือเคยทำมาก่อน
Dougal

1
@fcoppens คุณพูดถูก h (x) นั้นไม่เหมือนใคร คุณสามารถเปลี่ยนแปลง h (x) ได้อย่างง่ายดายในขณะที่รักษาผลิตภัณฑ์ชั้นใน <h (x), h (x ')> เหมือนเดิม อย่างไรก็ตามคุณสามารถพิจารณาได้ว่าเป็นฟังก์ชั่นพื้นฐานและพื้นที่ที่มันขยาย (เช่น RKHS) นั้นไม่เหมือนใคร
Lii

4

คุณสมบัติที่มีประโยชน์ของเคอร์เนล SVM ไม่ใช่สากล - ขึ้นอยู่กับการเลือกเคอร์เนล เพื่อให้ได้สัญชาตญาณการดูเมล็ดที่ใช้กันมากที่สุดอย่างหนึ่งคือเคอร์เนลเกาส์เซียน เคอร์เนลนี้เปลี่ยน SVM ให้เป็นสิ่งที่คล้ายกับลักษณนามเพื่อนบ้าน k- ใกล้เคียงที่สุด

คำตอบนี้อธิบายต่อไปนี้:

  1. เหตุใดการแยกข้อมูลการฝึกอบรมที่เป็นบวกและลบอย่างสมบูรณ์แบบจึงเป็นไปได้เสมอด้วยเคอร์เนล Gaussian ที่มีแบนด์วิดท์ขนาดเล็กพอสมควร
  2. วิธีการแยกนี้อาจตีความได้ว่าเป็นเส้นตรงในพื้นที่ของคุณลักษณะ
  3. วิธีใช้เคอร์เนลเพื่อสร้างการแมปจากพื้นที่ข้อมูลไปยังพื้นที่คุณลักษณะ สปอยเลอร์: พื้นที่คุณลักษณะเป็นวัตถุนามธรรมเชิงคณิตศาสตร์มากโดยมีผลิตภัณฑ์ชั้นในนามธรรมที่ผิดปกติขึ้นอยู่กับเคอร์เนล

1. บรรลุการแยกที่สมบูรณ์แบบ

การแยกที่สมบูรณ์แบบเป็นไปได้เสมอกับเคอร์เนลเกาส์เซียนเนื่องจากคุณสมบัติท้องถิ่นของเคอร์เนลซึ่งนำไปสู่ขอบเขตการตัดสินใจที่ยืดหยุ่นโดยพลการ สำหรับแบนด์วิดท์เคอร์เนลขนาดเล็กเพียงพอขอบเขตการตัดสินใจจะดูเหมือนว่าคุณวาดวงกลมเล็ก ๆ รอบจุดเมื่อใดก็ตามที่พวกเขาต้องการแยกตัวอย่างบวกและลบ:

บางสิ่งเช่นนี้

(เครดิต: หลักสูตรการเรียนรู้เครื่องออนไลน์ของ Andrew Ng )

แล้วทำไมสิ่งนี้ถึงเกิดขึ้นจากมุมมองทางคณิตศาสตร์?

พิจารณาการตั้งค่ามาตรฐาน: คุณมีเคอร์เนล Gaussian และข้อมูลการฝึกอบรม(K(x,z)=exp(||xz||2/σ2)ที่ Y ( ฉัน)มีค่า ± 1 เราต้องการเรียนรู้ฟังก์ชั่นลักษณนาม(x(1),y(1)),(x(2),y(2)),,(x(n),y(n))y(i)±1

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

ตอนนี้วิธีการที่เราจะเคยกำหนดน้ำหนัก ? เราต้องการช่องว่างมิติที่ไม่มีที่สิ้นสุดและอัลกอริทึมการเขียนโปรแกรมสมการกำลังสองหรือไม่? ไม่เพราะฉันแค่ต้องการแสดงให้เห็นว่าฉันสามารถแยกประเด็นได้อย่างสมบูรณ์แบบ ดังนั้นฉันทำσwiσพันล้านครั้งมีขนาดเล็กกว่าแยกเล็กระหว่างสองตัวอย่างการฝึกอบรมและฉันเพียงแค่ตั้งW ฉัน = 1 ซึ่งหมายความว่าทุกจุดการฝึกอบรมเป็นพันล้าน sigmas นอกเหนือเท่าที่เคอร์เนลเป็นห่วงและแต่ละจุดสมบูรณ์ควบคุมสัญลักษณ์ของปี||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 )เป็นพันล้าน sigmas ห่างจากจุดอื่น ๆ เพื่อให้ทุกฉันkเรามีϵϵx(k)ik

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

ตั้งแต่มีขนาดเล็กดังนั้น Y ( x ( k ) )แน่นอนมีการเข้าสู่ระบบเดียวกับY ( k )และจําแนกประสบความสำเร็จในความถูกต้องสมบูรณ์แบบในข้อมูลการฝึกอบรม ในทางปฏิบัติสิ่งนี้จะมีค่าเกินจริงอย่างมาก แต่มันแสดงให้เห็นถึงความยืดหยุ่นอย่างมากของเคอร์เนล Gaussian SVM และวิธีที่มันสามารถทำหน้าที่คล้ายกับตัวแยกประเภทเพื่อนบ้านที่ใกล้ที่สุดϵy^(x(k))y(k)

2. การเรียนรู้ SVM เคอร์เนลเป็นการแยกเชิงเส้น

ความจริงที่ว่าสิ่งนี้สามารถตีความได้ว่าเป็น "การแยกเชิงเส้นที่สมบูรณ์แบบในพื้นที่คุณลักษณะมิติที่ไม่มีที่สิ้นสุด" มาจากเคล็ดลับเคอร์เนลซึ่งช่วยให้คุณสามารถตีความเคอร์เนลเป็นผลิตภัณฑ์ชั้นในนามธรรมบางส่วนของพื้นที่คุณลักษณะใหม่:

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

โดยที่คือการแม็พจากพื้นที่ข้อมูลไปยังพื้นที่คุณลักษณะ มันดังต่อไปทันทีว่าY ( x )ฟังก์ชั่นเป็นฟังก์ชันเชิงเส้นในพื้นที่คุณลักษณะ:Φ(x)y^(x)

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

โดยที่ฟังก์ชันเชิงเส้นถูกนิยามไว้บนเวกเตอร์พื้นที่คุณลักษณะvเป็นL(v)v

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

ฟังก์ชั่นนี้เป็นแบบเชิงเส้นในเพราะมันเป็นเพียงการผสมผสานเชิงเส้นของผลิตภัณฑ์ภายในกับเวกเตอร์คงที่ ในพื้นที่คุณลักษณะการตัดสินใจเขตแดนY ( x ) = 0เป็นเพียงL ( V ) = 0 , ชุดระดับของฟังก์ชั่นการเชิงเส้น นี่คือคำจำกัดความของไฮเปอร์เพลนในพื้นที่คุณลักษณะvy^(x)=0L(v)=0

3. วิธีใช้เคอร์เนลเพื่อสร้างพื้นที่คุณลักษณะ

Kernel methods never actually "find" or "compute" the feature space or the mapping Φ explicitly. Kernel learning methods such as SVM do not need them to work; they only need the kernel function K. It is possible to write down a formula for Φ but the feature space it maps to is quite abstract and is only really used for proving theoretical results about SVM. If you're still interested, here's how it works.

Basically we define an abstract vector space V where each vector is a function from X to R. A vector f in V is a function formed from a finite linear combination of kernel slices:

f(x)=i=1nαiK(x(i),x)
(Here the x(i) are just an arbitrary set of points and need not be the same as the training set.) It is convenient to write f more compactly as
f=i=1nαiKx(i)
where Kx(y)=K(x,y) is a function giving a "slice" of the kernel at x.

The inner product on the space is not the ordinary dot product, but an abstract inner product based on the kernel:

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

This definition is very deliberate: its construction ensures the identity we need for linear separation, Φ(x),Φ(y)=K(x,y).

With the feature space defined in this way, Φ is a mapping XV, taking each point x to the "kernel slice" at that point:

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

You can prove that V is an inner product space when K is a positive definite kernel. See this paper for details.


Great explanation, but I think you have missed a minus for the definition of the gaussian kernel. K(x,z)=exp(-||x−z||2/σ2) . As it's written, it does not make sense with the ϵ found in the part (1)
hqxortn

1

For the background and the notations I refer to How to calculate decision boundary from support vectors?.

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

Mapping to a higher dimension is merely a trick to solve a problem that is defined in the original dimension; so concerns such as overfitting your data by going into a dimension with too many degrees of freedom are not a byproduct of the mapping process, but are inherent in your problem definition.

Basically, all that mapping does is converting conditional classification in the original dimension to a plane definition in the higher dimension, and because there is a 1 to 1 relationship between the plane in the higher dimension and your conditions in the lower dimension, you can always move between the two.

Taking the problem of overfitting, clearly, you can overfit any set of observations by defining enough conditions to isolate each observation into its own class, which is equivalent of mapping your data to (n-1)D where n is the number of your observations.

Taking the simplest problem, where your observations are [[1,-1], [0,0], [1,1]] [[feature, value]], by moving into the 2D dimension and separating your data with a line, your are simply turning the conditional classification of feature < 1 && feature > -1 : 0 to defining a line that passes through (-1 + epsilon, 1 - epsilon). If you had more data points and needed more condition, you just needed to add one more degree of freedom to your higher dimension by each new condition that your define.

You can replace the process of mapping to a higher dimension with any process that provides you with a 1 to 1 relationship between the conditions and the degrees of freedom of your new problem. Kernel tricks simply do that.


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.