ماشین بردار پشتیبان Instructor : Saeed Shiry مقدمه 2 SVM دسته بندی کننده ای است که جزو شاخه Kernel Methods دریادگیری ماشین محسوب میشود . SVM در.
Download
Report
Transcript ماشین بردار پشتیبان Instructor : Saeed Shiry مقدمه 2 SVM دسته بندی کننده ای است که جزو شاخه Kernel Methods دریادگیری ماشین محسوب میشود . SVM در.
ماشین بردار پشتیبان
Instructor : Saeed Shiry
1
مقدمه
2
SVMدسته بندی کننده ای است که جزو شاخه Kernel
Methodsدریادگیری ماشین محسوب میشود.
SVMدر سال 1992توسط Vapnikمعرفی شده و بر پایه
statistical learning theoryبنا گردیده است.
شهرت SVMبخاطر موفقیت آن در تشخیص حروف دست
نویس است که با شبکه های عصبی بدقت تنظیم شده برابری
میکند %1.1 :خطا
مقدمه
هدف این دسته الگوریتم ها تشخیص و متمایز کردن الگوهای
پیچیده در داده هاست ( از طریق کالسترینگ ،دسته بندی،
رنکینگ ،پاکسازی و غیره)
مسایل مطرح:
3
الگوهای پیچیده را چگونه نمایش دهیم
چگونه از مسئله overfittingپرهیز کنیم
ایده اصلی
4
با فرض اینکه دسته ها بصورت خطی جداپذیر باشند،
ابرصفحه هائی با حداکثر حاشیه ) (maximum marginرا
بدست می آورد که دسته ها را جدا کنند.
در مسایلی که داده ها بصورت خطی جداپذیر نباشند داده ها به
فضای با ابعاد بیشتر نگاشت پیدا میکنند تا بتوان آنها را در این
فضای جدید بصورت خطی جدا نمود.
تعریف
Support Vector Machines are a system for
efficiently training linear learning machines in
kernel-induced feature spaces, while
respecting the insights of generalisation
theory and exploiting optimisation theory.
Cristianini & Shawe-Taylor (2000)
5
مسئله جداسازی خطی:
Linear Discrimination
اگر دو دسته وجود داشته باشند که بصورت خطی از هم
جداپذیر باشند ،بهترین جدا کننده این دو دسته چیست؟
الگوریتم های مختلفی از جمله پرسپترون میتوانند این
جداسازی را انجام دهند.
آیا همه این الگوریتمها بخوبی از عهده اینکار بر میآیند؟
x 0w = í + 1
A+
Aw
6
x 0w = í à 1
x 0w = í
Separating Surface:
Intuitions
X
X
X
O
X
X
X
X
O
O
X
O
O
O
O
O
7
Intuitions
X
X
X
O
X
X
X
X
O
O
X
O
O
O
O
O
8
Intuitions
X
X
X
O
X
X
X
X
O
O
X
O
O
O
O
O
9
Intuitions
X
X
X
O
X
X
X
X
O
O
X
O
O
O
O
O
10
A “Good” Separator
X
X
X
O
X
X
X
X
O
O
X
O
O
O
O
O
11
Noise in the Observations
X
X
X
O
X
X
X
X
O
O
X
O
O
O
O
O
12
Ruling Out Some Separators
X
X
X
O
X
X
X
X
O
O
X
O
O
O
O
O
13
Lots of Noise
X
X
X
O
X
X
X
X
O
O
X
O
O
O
O
O
14
Maximizing the Margin
X
X
X
O
X
X
X
X
O
O
X
O
O
O
O
O
15
ضرب داخلی
ضرب داخلی را میتوان معیاری از تشابه دانست
a
q
b
a b a b cosq
در حالت nبعدی میتوان آنرا بصورت زیر نمایش داد.
n
a b
i i
16
i 1
a, b
a, b R n
خط یا ابر صفحه جدا کننده
X2
X1
17
Class 1
Class -1
هدف :پیدا کردن بهترین خط ( ابر صفحه) که دو دسته را از
هم جدا کند .در حالت دو بعدی معادله این خط بصورت زیر
است:
w1 X1 w2 X 2 b 0
در حالت nبعدی خواهیم داشت:
T
w .x b 0
n
wi.xi b 0
i 0
ایده SVMبرای جدا سازی دسته ها
دو صفحه مرزی بسازید :
دو صفحه مرزی موازی با صفحه دسته بندی رسم کرده و آندو را
آنقدر از هم دور میکنیم که به داده ها برخورد کنند.
صفحه دسته بندی که بیشترین فاصله را از صفحات مرزی داشته باشد،
بهترین جدا کننده خواهد بود.
w.x b 0
Class -1
Class 1
18
w.x b C
w.x b C
حداکثر حاشیه
بر طبق قضیه ای در تئوری یادگیری اگر مثالهای آموزشی
بدرستی دسته بندی شده باشند ،از بین جداسازهای خطی ،آن
جداسازی که حاشیه داده های آموزشی را حداکثر میکند خطای
تعمیم را حداقل خواهد کرد.
w.x b 0
Class -1
Class 1
19
w.x b C
w.x b C
چرا حداکثر حاشیه؟
20
به نظر میرسد که مطمئن ترین راه باشد.
تئوری هائی برمبنای VC dimensionوجود دارد که مفید
بودن آنرا اثبات میکند.
بطور تجربی این روش خیلی خوب جواب داده است.
بردار پشتیبان
نزدیکترین داده های آموزشی به ابر صفحه های جدا کننده
بردار پشتیبان نامیده میشوند
X2
SV
SV
SV
X1
21
Class 1
Class -1
تعمیم و SVM
در صورت استفاده مناسب از SVMاین الگوریتم قدرت تعمیم
خوبی خواهد داشت:
علیرغم داشتن ابعاد زیاد ) (high dimensionalityاز
overfittingپرهیز میکند .این خاصیت ناشی از optimization
این الگوریتم است
فشرده سازی اطالعات:
22
بجای داده های آموزشی از بردارهای پشتیبان استفاده میکند.
حل مسئله برای حالت دو بعدی
نمونه های آموزشی
تابع تصمیم گیری
ابر صفحه
x n
}y {-1, 1
)f(x) = sign(<w,x> + b
w n
b
<w, x> + b = 0
w1x1 + w2x2 … + wnxn + b = 0
میخواهیم مقادیر W, bرابگونه ای پیدا کنیم که:
نمونه های آموزشی را بدقت دسته بندی کند
23
با این فرض که داده ها بصورت خطی جدا پذیر باشند
حاشیه را حداکثر نماید
Linear SVM Mathematically
Let training set {(xi, yi)}i=1..n, xiRd, yi {-1, 1} be
separated by a hyperplane with margin ρ. Then for each
training example (xi, yi):
wTxi + b ≤ - ρ/2 if yi = -1
wTxi + b ≥ ρ/2 if yi = 1
yi(wTxi + b) ≥ ρ/2
For every support vector xs the above inequality is an
equality. After rescaling w and b by ρ/2 in the equality,
we obtain that distance between each xs and the
hyperplane is
y s (wT x s b)
1
r
w
w
Then the margin can be expressed through (rescaled) w
and b as:
2
2r
w
24
حل مسئله برای حالت دو بعدی
f(x)>0
f(x)<0
f(x)=0
X2
بردار wبر هر دو صفحه مثبت ومنفی
عمود خواهد بود.
b
w
x
wx b
w
w
)f ( x
w
X1
25
b
w
فاصله خط جداکننده از مبدا برا براست با
فاصله نمونه ای مثل xاز خط جدا کننده برابر است با
wx b
w
)f ( x
w
تعیین حاشیه بین خطوط جدا کننده
Plus-plane = { x : w . x + b = +1 }
Minus-plane = { x : w . x + b = -1 }
Classify as..
-1 if w . x + b <= -1
+1 if w . x + b >= 1
26
محاسبه پهنای حاشیه
27
صفحه مثبت و منفی را بصورت زیر در نظر میگیریم:
Plus-plane
} = { x : w . x + b = +1
} Minus-plane = { x : w . x + b = -1
بردار wبر صفحه مثبت ومنفی عمود خواهد بود.
فرض کنید X-نقطه ای در صفحه منفی بوده و X+نزدیکترین نقطه در
صفحه مثبت به X-باشد.
محاسبه پهنای حاشیه
خطی که X-رابه X+وصل میکند بر هر دو صفحه عمود
خواهد بود .لذا فاصله بین دو صفحه مضربی از Wخواهد بود.
در اینصورت خواهیم داشت:
x+= x-+ λ w
for some value of λ.
28
محاسبه پهنای حاشیه
میدانیم که:
w . x+ + b = +1
w . x- + b = -1
X + = x- + λ w
| x+- x-| = M
لذا میتوان Mرا برحسب Wو bمحاسبه کرد.
29
محاسبه پهنای حاشیه
w . x+ + b = +1
w . x- + b = -1
X + = x- + λ w
| x+- x-| = M
w.( x-+ λ w) + b = +1
w.x-+ λ w.w + b = +1
-1+ λ w.w = +1
λ=2/ w.w
30
محاسبه پهنای حاشیه
31
محدودیت
اگر برای مثال دو بعدی فوق مقدار دسته ها را با 1و -1
مشخص کنیم داریم:
<w,xi> + b ≥ 1 for y=1
<w,xi> + b -1 for y= -1
که میتوان آنرابصورت زیر نوشت
yi (<w,xi> + b( ≥ 1 for all i
32
جمع بندی حل مسئله
در SVMبدنبال حل همزمان معادالت زیر هستیم:
با داشتن مثالهای آموزشی ) (xi, yiکه }i=1,2,…N; yi{+1,-1
Minimise ||w||2
Subject to : yi (<w,xi> + b( ≥ 1 for all i
Note that ||w||2 = wTw
33
این یک مسئله quadratic programmingبا محدودیت هائی
بصورت نامعادالت خطی است .روشهای شناخته شده ای برای چنین
مسئله هائی بوجود آمده اند.
Quadratic Programming
34
Recap of Constrained
Optimization
Suppose we want to: minimize f(x) subject to g(x) = 0
A necessary condition for x0 to be a solution:
a: the Lagrange multiplier
For multiple constraints gi(x) = 0, i=1, …, m, we need a
Lagrange multiplier ai for each of the constraints
35
Recap of Constrained
Optimization
The case for inequality constraint gi(x) 0 is similar, except that the
Lagrange multiplier ai should be positive
If x0 is a solution to the constrained optimization problem
There must exist ai ≥ 0 for i=1, …, m such that x0 satisfy
The function
we want to set its gradient to 0
is also known as the Lagrangrian;
36
راه حل معادله
Construct & minimise the Lagrangian
N
1
2
L(w, b,a ) || w || a i [ yi (wxi b) 1]
2
i 1
wrt.constrainta i 0, i 1,...N
Take derivatives wrt. w and b, equate them to 0
N
L(w, b,a )
w a i yi xi 0
w
i 1
L(w, b,a ) N
a i yi 0
b
i 1
KKT cond : a i [ yi (wxi b) 1] 0
parameters are expressed as a linear
combination of training points
only SVs will have non-zero ai
The Lagrange multipliers ai are called ‘dual variables’
Each training point has an associated dual variable.
37
راه حل معادله
Class 2
a8=0.6 a10=0
a7=0
a5=0
a4=0
a9=0
Class 1
a2=0
a1=0.8
a6=1.4
a3=0
38
The Dual Problem
If we substitute
Note that
This is a function of ai only
to Lagrangian , we have
39
The Dual Problem
The new objective function is in terms of ai only
It is known as the dual problem: if we know w, we know all ai;
if we know all ai, we know w
The original problem is known as the primal problem
The objective function of the dual problem needs to be
maximized!
The dual problem is therefore:
Properties of ai when we introduce
the Lagrange multipliers
The result when we differentiate the
original Lagrangian w.r.t. b
40
The Dual Problem
This is a quadratic programming (QP)
problem
A global maximum of ai can always be found
w can be recovered by
41
راه حل معادله
a y x iSV a i yi x i
So, w
i 1 i i i
Plug this back into the Lagrangian to obtain the dual formulation
The resulting dual that is solved for a by using a QP solver:
N
maximise: W (a )
1 N
N
a
a
y
y
x
x
i j i j i j i1a i
2 i , j 1
subject to: i 1a i yi 0, a i 0, i 1,...N
N
The b does not appear in the dual so
it is determined separately
from the initial constraints
Data enters only
in the form of
dot products!
42
دسته بندی داده های جدید
پس از آنکه مقادیر )* (a*, bبا حل معادالت quadraticبر اساس داده های
ورودی بدست آمد ،میتوان SVMرا برای دسته بندی نمونه های جدید بکار برد.
اگر xیک نمونه جدید باشد ،دسته بندی آن بصورت زیر مشخص میشود:
sign[f(x, a*, b*)], where
*f (x,a , b ) w x b i 1a i* yi xi x b* iSV a i* yi xi x b
N
Data enters only
in the form of
!dot products
43
*
*
*
*
ویژگی های راه حل
The solution of the SVM, i.e. of the quadratic
programming problem with linear inequality
constraints has the nice property that the data
enters only in the form of dot products!
Dot product (notation & memory refreshing): given
x=(x1,x2,…xn) and y=(y1,y2,…yn), then the dot
product of x and y is xy=(x1y1, x2y2,…, xnyn).
This is nice because it allows us to make SVMs nonlinear without complicating the algorithm
44
The Quadratic Programming
Problem
Many approaches have been proposed
Loqo, cplex, etc.
Most are “interior-point” methods
Start with an initial solution that can violate the constraints
Improve this solution by optimizing the objective function and/or
reducing the amount of constraint violation
For SVM, sequential minimal optimization (SMO) seems to be
the most popular
A QP with two variables is trivial to solve
Each iteration of SMO picks a pair of (ai,aj) and solve the QP
with these two variables; repeat until convergence
In practice, we can just regard the QP solver as a “black-box”
without bothering how it works
45
داده هائی که بصورت خطی جدا پذیر نیستند
یک فرض بسیار قوی در SVMاین بود که داده ها بصورت
خطی جداپذیر باشند .در حالیکه در عمل در بسیاری مواقع این
فرض صحیح نیست.
+
+
+
+ +
+
+
46
افزودن متغیر های slack
یک راه حل این است که اندکی کوتاه آمده و مقداری خطا در دسته بندی
را بپذیریم!
این کار با معرفی متغیر xiانجام میشود که نشانگر تعداد نمونه هائی
است که توسط تابع wTx+bغلط ارزیابی میشوند.
Class 2
Class 1
47
افزودن متغیر های slack
با معرفی متغیر xi, i=1, 2, …, N,محدودیت های قبلی ساده
تر شده و رابطه
yi (<w,xi> + b( ≥1
بصورت زیر تغییر میکند:
در حالت ایده آل همه این متغیر ها باید صفر باشند.
yi (<w,xi> + b( ≥1 -xi , xi ≥ 0
48
در اینصورت مسئله بهینه سازی تبدیل میشود به یافتن wبه
نحوی که معادله زیر مینیمم شود:
1 w 2 Cx 2
i
2
i
To
subject
yi (w T x i b) 1 x i , x i 0, i
49
که در آن C > 0میباشد .جمله اضافه شدن سعی دارد تا حد
امکان همه متغیرهای slackرا کوچک نماید.
رابطه دوگان در حالت جدید بصورت زیر خواهد بود.
T
yi y j x i x j
j
aa
2
i
j
1
i
a
i
find ai that maximizes
i
i 1a i yi 0,
N
0 a i C , i
50
subject to
مقدار مناسب Cبر اساس داده های مسئله انتخاب میشود.
Soft Margin Hyperplane
If we minimize wi xi, xi can be computed by
xi are “slack variables” in optimization
We want to minimize
Note that xi=0 if there is no error for xi
xi is an upper bound of the number of errors
C : tradeoff parameter between error and margin
The optimization problem becomes
51
The Optimization Problem
The dual of this new constrained optimization problem is
w is recovered as
This is very similar to the optimization problem in the linear
separable case, except that there is an upper bound C on ai now
Once again, a QP solver can be used to find ai
52
مسئله جداسازی غیر خطی :
یادگیری در فضای ویژگی
53
میتوان با نگاشت داده به یک فضای ویژگی آنها را بصورت
خطی جداپذیر نمود:
تبدل داده به فضای ویژگی
) (f
) (f
) (f( ) f( ) f
) (f
) (f
) (f
) (f( ) f
) (f( ) f
) (f
) (f( ) f
) (f
) (f
) (f
Feature space
Note: feature space is of higher dimension
than the input space in practice
54
)f(.
Input space
انجام محاسبات در فضای ویژگی میتواند پرهزینه باشد برای اینکه ابعاد بیشتری دارد.
در حالت کلی ابعاد این فضا بی نهایت است.
برای غلبه بر این مشکل از kernel trickاستفاده میشود.
مشکالت فضای ویژگی
55
کار کردن با فضای ویژگی با ابعاد باال مشکل است
عالوه بر مسئله باال رفتن هزینه محاسباتی ممکن است مشکل
تعمیم نیز بواسطه curse of dimensionalityبوجود آید.
نگاشت غیر مستقیم به فضای ویژگی
We will introduce Kernels:
Solve the computational problem of working with
many dimensions
Can make it possible to use infinite dimensions
efficiently in time / space
Other advantages, both practical and conceptual
56
کرنل
Transform x f(x)
The linear algorithm depends only on xxi,
hence transformed algorithm depends only
on f(x)f(xi)
Use kernel function K(xi,xj) such that K(xi,xj)=
f(x)f(xi)
57
An Example for f(.) and K(.,.)
Suppose f(.) is given as follows
An inner product in the feature space is
So, if we define the kernel function as follows, there is no need to
carry out f(.) explicitly
This use of kernel function to avoid carrying out f(.) explicitly is
known as the kernel trick
58
:کرنل های نمونه
m - th Degree polynomial: K ( x, x' ) (1 ( x, x' ))m
Radial basis : K ( x, x' ) exp( || x x' ||2 / c)
Neural network: K ( x, x' ) tanh(k1 x, x' k 2)
x12
f (x) 2 x1 x2
2
x2
K (x i , x j ) (x i x j ) 2
59
مثال :کرنل چند جمله ای
60
Modification Due to Kernel
Function
Change all inner products to kernel functions
For training,
Original
With kernel
function
61
Modification Due to Kernel
Function
For testing, the new data z is classified as
class 1 if f0, and as class 2 if f <0
Original
With kernel
function
62
Modularity
Any kernel-based learning algorithm composed of
two modules:
A general purpose learning machine
A problem specific kernel function
Any K-B algorithm can be fitted with any kernel
Kernels themselves can be constructed in a
modular way
Great for software engineering (and for analysis)
63
ساخت کرنل ها
مجموعه قوانین زیر در مورد کرنل ها صادق است:
If K, K’ are kernels, then:
K+K’ is a kernel
cK is a kernel, if c>0
aK+bK’ is a kernel, for a,b >0
……Etc etc etc
64
به این ترتیب میتوان کرنل های پیچیده را از روی کرنل
های ساده تر ساخت.
Example
Suppose we have 5 1D data points
x1=1, x2=2, x3=4, x4=5, x5=6, with 1, 2, 6 as class 1 and 4, 5
as class 2 y1=1, y2=1, y3=-1, y4=-1, y5=1
We use the polynomial kernel of degree 2
K(x,y) = (xy+1)2
C is set to 100
We first find ai (i=1, …, 5) by
65
Example
By using a QP solver, we get
a1=0, a2=2.5, a3=0, a4=7.333, a5=4.833
Note that the constraints are indeed satisfied
The support vectors are {x2=2, x4=5, x5=6}
The discriminant function is
b is recovered by solving f(2)=1 or by f(5)=-1 or by
f(6)=1, as x2 and x5 lie on the line
and x4 lies on the line
All three give b=9
66
Example
Value of discriminant function
class 1
class 1
class 2
1
2
4
5
6
67
مثالی از کاربرد
تشخیص حروف دست
نویس
68
در اداره پست آمریکا
با استفاده از این روش
توانسته اند به خطائی
در حدود %4برسند.
برای دسته بندیSVM مراحل استفاده از
Prepare the data matrix
Select the kernel function to use
Execute the training algorithm using a QP
solver to obtain the ai values
Unseen data can be classified using the ai
values and the support vectors
69
انتخاب تابع کرنل
. انتخاب تابع کرنل استSVM جدی ترین مسئله در روش
: روشها و اصول متعددی برای این کار معرفی شده اسـت
diffusion kernel, Fisher kernel, string kernel, …
و تحقیقاتی نیز برای بدست آوردن ماتریس کرنل از روی داده های موجود
.در حال انجام است
در عمل
In practice, a low degree polynomial kernel or RBF
kernel with a reasonable width is a good initial try
Note that SVM with RBF kernel is closely related to
RBF neural networks, with the centers of the radial
basis functions automatically chosen for SVM
70
SVM applications
SVMs were originally proposed by Boser, Guyon and Vapnik in
1992 and gained increasing popularity in late 1990s.
SVMs are currently among the best performers for a number of
classification tasks ranging from text to genomic data.
SVMs can be applied to complex data types beyond feature
vectors (e.g. graphs, sequences, relational data) by designing
kernel functions for such data.
SVM techniques have been extended to a number of tasks such
as regression [Vapnik et al. ’97], principal component analysis
[Schölkopf et al. ’99], etc.
Most popular optimization algorithms for SVMs use
decomposition to hill-climb over a subset of αi’s at a time, e.g.
SMO [Platt ’99] and [Joachims ’99]
Tuning SVMs remains a black art: selecting a specific kernel
and parameters is usually done in a try-and-see manner.
71
SVM نقاط قوت و ضعف
Strengths
Training is relatively easy
Good generalization in theory and practice
Work well with few training instances
Find globally best model, No local optimal, unlike in neural
networks
It scales relatively well to high dimensional data
Tradeoff between classifier complexity and error can be
controlled explicitly
Non-traditional data like strings and trees can be used as
input to SVM, instead of feature vectors
Weaknesses
Need to choose a “good” kernel function.
72
نتیجه گیری
SVMs find optimal linear separator
They pick the hyperplane that maximises the margin
The optimal hyperplane turns out to be a linear
combination of support vectors
The kernel trick makes SVMs non-linear learning
algorithms
Transform nonlinear problems to higher dimensional space
using kernel functions; then there is more chance that in
the transformed space the classes will be linearly
separable.
73
SVM سایر جنبه های
How to use SVM for multi-class classification?
How to interpret the SVM discriminant function value
as probability?
One can change the QP formulation to become multi-class
More often, multiple binary classifiers are combined
One can train multiple one-versus-all classifiers, or
combine multiple pairwise classifiers “intelligently”
By performing logistic regression on the SVM output of a
set of data (validation set) that is not used for training
Some SVM software (like libsvm) have these
features built-in
74
Multi-class Classification
SVM is basically a two-class classifier
One can change the QP formulation to allow multiclass classification
More commonly, the data set is divided into two
parts “intelligently” in different ways and a separate
SVM is trained for each way of division
Multi-class classification is done by combining the
output of all the SVM classifiers
Majority rule
Error correcting code
Directed acyclic graph
75
نرم افزار
لیستی از نرم افزار های مختلف را میتوانید در آدرس زیر
بیابید:
http://www.kernel-machines.org/software.html
برخی نرم افزارها نظیر LIBSVMمیتوانند بصورت چند
دسته ای کار کنند.
نرم افزار SVMLightدر مراجع مختلفی بکار رفته است.
چندین toolboxدر Matlabبرای SVMمعرفی شده اند.
76
مراجع
[1] b.E. Boser et al. A training algorithm for optimal margin classifiers.
Proceedings of the fifth annual workshop on computational learning
theory 5 144-152, Pittsburgh, 1992.
[2] l. Bottou et al. Comparison of classifier methods: a case study in
handwritten digit recognition. Proceedings of the 12th IAPR
international conference on pattern recognition, vol. 2, pp. 77-82.
[3] v. Vapnik. The nature of statistical learning theory. 2nd edition,
Springer, 1999.
77