Introducton to Machne learnng دانشگاهشهیدبهشتی پژوهشکدهیفضایمجازی بهار 1396 احمدمحمودیازناوه مقدمهایبر یادگیریماشین )13-11-805-01( بخشهشتم ماشینهایبردارپشتیبان http://facultes.sbu.ac.r/~a_mahmoud/
فهرستمطالب ماشینبردارپشتیبان) SVM ( تاریخچه معرفی دادههایجداییپذیرخطی Soft Margn مجموعههایجداییناپذیرخطی نگاشتبهفضاییباابعادباال Inner product kernel مثال XOR در Matlab SVM ماشين يادگيری 2
تاریخچه نسخهیاولیهی SVM توسطآقای Vapnk Vladmr ارائهشد. Vapnk باهمکاریخانم Cortes Cornna استاندارد کنونی SVM رادرسال 1993 پایهریزیکردهودر سال 1995 منتشرنمودند. Cortes, C. and V. Vapnk (1995). "Support-vector networks." Machne Learnng 20(3): 273-297. 3
معرفی یکجداکنندهیخطیرامیتوانهمانندشکلزیر درنظرگرفت. W X + B > 0 W X + b = 0 W X + b < 0 F(X) = SIGN(W X + b) www.cs.utexas.edu/~mooney/cs391l/sldes/svm.ppt 4
مرزبهینه سوال کدامیکازمرزها مرزیبهینهبرایجداسازیاست www.cs.utexas.edu/~mooney/cs391l/sldes/svm.ppt 5
مرزجداسازی میخواهیم به بهدست آوریم. گونهای بهترین مرز جداسازی را Margn of separaton r فرضکنیمنزدیکتریننقطهبهمرز جداسازیدرنظرگرفتهشدهوفاصلهرا r بنامیم. هدفماکزیممنمودن r است. یکحاشیهمشخصمیکنیمهر مرزیکهحاشیهیپهنتریرانتیجه دهد بهتراست. 6
حاشیهیماکزیمم ماکزیمم نمودن حاشیه )Margn( ایدهی خوبی است جهت جداسازی خطی این شیوه را LSVM یا Lnear SVM مینامند. در این حالت نمونههایی که به روی مرز حاشیه هستند از اهمیت ویژهای برخوردارند. بدینوسیله میتوان از نمونههای دیگر صرفنظر کرد و تنها به نمونههای مهم روی مرز حاشیه پرداخت. 7
بردارپشتیبان Support Vector به نمونههای میگویند.»بردار حاشیه مرز روی پشتیبان«بردارهایپشتیبان Optmal hyperplane 8
مرزجداسازی برای معادلهی مرز فرض شود. جداسازی داشتیم: ( X, d 1) W X b 0 کنیم مرز بهینه توسط مشخص b op و W op فرض: جداسازی فرض کنیم نزدیکترین نقطه به را در نظر گرفته فاصله را»r«بنامیم. مرز W X b 0 ( X, d 1) W X b 0 9
مرزجداسازی)ادامه...( هدف ماکزیمم نمودن فاصله یا همان ρ=2r است. برای نقاط روی مرز جداسازی بهینه داریم: W X b op op 0 داریم: g( X ) W X b op باشد. یا منفی op برای نقاط خارج از مرز g(x) میتواند مثبت 10
مرزجداسازی)ادامه...( درصورتیکه X بردارپشتیبان درجهتعمودبرمرزجداکننده باشد طبقشکلزیرخواهیمداشت: A X p X B X X p AB AB اگراندازهیبردار AB=r درنظرگرفتهشود خواهیمداشت: W op X X p r W op AB W r W op op 11
g( X ) W X b مرزجداسازی)ادامه...( Wop X X p r W op W op g( X ) Wop[ X p r ] bop Wop W op g( X ) W X b r W W g( X ) داشتیم: op op op p op op روی مرز پس ب راب ر با صفر op 2 Wop r g( X ) r Wop W op 12
مرزجداسازی)ادامه...( g( X ) r Wop هدفماکزیممنمودن r است. r A g( X) W x p op کمینهگردد. دراینحالتتحتشرایطیمیباید W r X=0 g( X) W op b W op op b 0 W op B X نشاندهندهیایناست مثبتیامنفیبودن bop.تسا کهمبدأدرکدامسمتخطمرزی فاصلهازمبدامختصات ماشين يادگيری 13
مرزجداسازی)ادامه...( مساله بافتن Wو op bاست op جداساز خطی را به صورت زیر در نظر میگیریم: ( X, 1) Wop X bop 1 for d 1 ( X, 1) W X b 1 for d 1 رابطهی است. در و باال نتیجه برای برای تمامی بردارهای الگوهای پشتیبان آموزشی برقرار op op d ( W X b ) 1 op op s s g( X ) W X b 1 ب ه صورت ک لی داریم: 14 op op
مرزجداسازی)ادامه...( s s g( X ) W X b 1 op op r s g( X ) W op 1 W op 1 W op :زرم درنتیجهفاصلهیدوبردارپشتیباندردوطرف ماشين يادگيری 2r 2 W op 15
جداییپذیرخطی x + ρ=margn Wdth X - W. X + + b = +1 W. X - + b = -1 W. (X + -X -) = 2 میدانیم: ( X X ) W 2 W W 16
2r جداییپذیرخطی باتوجهبهدورابطهی بهایننتیجهمیرسیمکه W op میبایدمینیمم گردد. اینمسألهمعادلمینیممکردن Φ یکتابعمحدب) Functon Convex (است. طبقرابطهیبرای N d( Wop X bop) 1 آموزشیشرطزیرمیبایدبرقرارباشد: الگوی 2 W op d ( W X b ) 1 ( W) op op 1 W W 2 N 1 [ d ( W X b ) 1] op op این میزان ب زرگ بر با مساوی صفر است 17
خالصه 2 W وزنهاوبایاسرابهگونهایبیابیدکه: s maxmzed and for all (X, d ), =1..n : d (W X + b) 1 وزنهاوبایاسرابهگونهایبیابیدکه: Φ(W) =1/2 W 2 =1/2W W s mnmzed and for all (X, d ), =1..n : d (W X + b) 1 18
یافتنرویهیبهینه رابطهی الگرانژ زیر تعریف میشود هر دو قید ذکر شده را پوشش دهد: برای بهدست آوردن مشتق میگیریم. که گونهای به Lagrange multpler(nonnegatve) W op و b op نسبت دو هر به J W N 1 J ( W, b, ) W W [ d ( W X b) 1] 2 N 0 W d X 0 1 1 W N d X op 1 N J 0 d 0 bبه op دست ن میآبد b 1 N d 0 ولی بک قید میدهد 1 19
N 1 d 0 یافتنرویهیبهینه دو شرط دیگر برای α خواهیم داشت: به ازای هر α SVها رابطهی در نتیجه خواهد بود. برای الگوهای زیر برقرار است: بردارهای با متناظر آموزشی پشتیان با متناظر غیرصفر [ d ( W X b) 1] 0 صفر غیرصفر d ( W X b ) 1 0 op op Karush Kuhn ucker(kk) condton of optmzaton theory α 20
یافتنرویهیبهینه N 1 2 J ( W, b, ) W [ d ( W X b) 1] 2 1 1 J ( W, b, ) W W d W X d b 2 W N 1 N d X op 1 d 0 N N N 1 1 1 برایمقادیربهینهداشتیم: پسخواهیمداشت: Dualty theorem 1 J ( W, b, ) W W W W 0 N op op op op op op 2 1 21
Dual Problem 1 J ( W, b, ) W W W W 0 N op op op op op op 2 1 N 1 1 W W 2 op op =Q(α) N 1 d 0 مینیمم نمودن W همانند ماکزیمم نمودن Q است زیرا در W op مقدار W کمترین میزان است و در این صورت است که کل عبارت ماکزیمم میشود. 22
Q( ) 1 یافتنرویهیبهینه N WopWop 1 2 N N N d X jd j X j 1 2 1 j1 1 [ ] [ ] N N N d jd j X X j 1 2 1 j1 1 1 N N N d jd j X X j 1 2 1 j1 N d 0 1 for 0 1 0,1,..., N ها وابسته به الگوهای, و خرویج های مرتبط است X j X α 23
یافتنرویهیبهینه گرفتن نظر در بدون α k به نسبت میتوان داد. قیود مشتق جهت گرفته αها محاسبهی قرار صفر با برابر M Q( ) 1 [ ] [ ] N N N d X jd j X j 1 2 1 j1 N 2 1ddk X X k k dk X k X k 0 k 1 k, j X X j مجهول معادلهو N N ضربداخلی ماشين يادگيری Q( ) k N 1 d d M 0 k, k 1 24
یافتنرویهیبهینه پسازبهدستآوردن α خواهیمداشت: W N d X op 1 X s X support vector W X op s b op 1 b op 1W X op s 25
یافتنرویهیبهینه W =Σα d X b= d k - W X k for any X k such that α k 0 X است این نشاندهندهی صفر مخالف α هر است. پشتیبان بردار یک متناظرش است: زیر همانند جداکننده تابع حالت این در که g(x) = Σα d X X + b توجه: ضربداخلیدوبردار محاسبه به وابسته بهینهسازی مساله حل است. آموزشی نمونههای تمامی بین داخلی بر ض ماشين يادگيری 26
Soft Margn SVM برای دادههای جداییپذیر خطی مورد بررسی قرار گرفت. حال اگر مجموعهی دادههای آموزش قابلیت جداسازی را نداشته باشند چه خواهد شد به بیان بهتر صحبت در مورد مسائل جداییپذیر است که با نویز همراه هستند. ξ ξ 27
Soft Margn مسألهی Hard Margn Soft Margn میشود. مسألهی حل به تبدیل را حاشیهی جداسازی soft گفته میشود در صورتی که برای برخی دادهها شرط زیر نقض شود: d ( W X b ) 1 e 2 op op e 1 e 7 بااضافهکردنیک Varable Slack مسألهراباردیگربررسیمیکنیم. اینمتغیرمیزانانحرافازشرط فوقرانشانمیدهد. 28
Soft Margn Classfcaton 0 1 1 دوحالتممکناسترخدهد: دادهیدرکالسدرستولیدرحاشیهقرارگیرد. دادهیآموزشیبهاشتباهدستهبندیشود. d ( W X b ) 1, 1, 2,, N op op 29
Soft Margn Classfcaton d ( W X b ) 1, 1, 2,, N op op در در با این حالت بردارهای پشتیبان آنهایی هستند که رابطهی تساوی در عبارت باال صدق میکنند حتی وجود 0<ξ در صورتی که دادههای نویزی از مجموعه خارج شود رویهی جداکننده تغییر خواهد کرد. هدف یافتن»رویهای جداکننده«است که در آن خطای طبقهبندی نادرست در آن مینیمم شود: I 1 1 N I 0 f 0 1 f 0 30
در و با توجه به این که کمینه کردن چنین تابعی یک مسألهی بهینهسازی nonconvex است و در ردهی NP-complete قرار میگیرد آن را با تابع زیر N تقریب میزنیم: کل هدف مینیمم Soft Margn Classfcaton کردن k 1 زیر عبارت 1 است: R 1 W, W W Cek 2 regularzaton parameter این بارامیرنوعی مصالحه بتن پ ی چیدگی ماشتن و خطا ب رقرار میکید هرچهCبه صفر بزدبکبر باشد به این معیاست که خطا اهم یت ک م بری دارد و در ب ت یحه حاسیه ب زرگبر میشود. و هرچه ب رزگبر باشد مساله به حالتmargn hardبزدبکبر میشود. 31
Soft Margn برای Margn Hard داشتیم: Fnd W and b such that Φ(W) =½ W W s mnmzed and for all {(X,d )} d (W X + b) 1 بااضافهکردن Varable Slack داریم: Fnd W and b such that Φ(W) =½ W W + CΣξ s mnmzed and for all {(X,d )} d (W X + b) 1- ξ and ξ 0 for all 32
یافتنرویهیبهینه رابطهی الگرانژ زیر همهی نیازمندیها تعریف میشود را پوشش دهد: که گونهای به 1 J ( W, b,,, ) W W C [ d ( W X b) 1 ] 2 N 1 بخش آخر از این رو اضافه شده بودن ξ را تضمین کند. نامنفی تا که است 33
Soft Margn Classfcaton Q N 1 1 d N N N jdd j X X j 1 2 1 j1 0 C در نهاپت ضراپب الگرابژ از عیارت زبر محاسی ه خواهی د ش د: با در نظر گرفتن ق یود زبر 0 W N s d X op 1 ن قی ه مرا ح ل ماپی د حالت قیل خواهد نود: 34
n = 20; rand('seed',2); X = 4* rand (2,n) ; bt = -6; wt = [4 ; -1]; مثال d = sgn (wt (1) * X (1,:) + wt (2) * X (2,:) + bt) ; x1mn=mn(x(1,:)); x1max=max(x(1,:)); x2mn=mn(x(2,:)); x2max=max(x(2,:)); fgure; axs([x1mn x1max x2mn x2max]); plot (X (1,fnd (d ==1)),X (2,fnd (d ==1)), ' or ') ; hold on plot (X( 1,fnd (d ==-1)),X(2, fnd (d ==-1)), ' ob ') ; Lnet=@(x1,x2) wt(1)*x1+wt(2)*x2+bt; ezplot(lnet,[x1mn x1max x2mn x2max]); 35
مثال)ادامه...( 36
مثال)ادامه...( C=10; H=zeros(n,n); for k1=1:n for k2=1:n H(k1,k2)=d(k1)*d(k2)*X(:,k1)'*X(:,k2); end end f=-ones(n,1); Aeq=d; beq=0; lb=zeros(n,1); ub=c*ones(n,1); alpha=quadprog(h,f,[],[],aeq,beq,lb,ub)'; Svs=fnd(alpha> 1e-5); w=0; for k1=svs w=w+alpha(k1)*d(k1)*x(:,k1); end b=mean(d(svs)-w'*x(:,svs)); 37
مثال)ادامه...( plot(x(1,svs),x(2,svs),'ko','markersze',12); Lne=@(x1,x2) w(1)*x1+w(2)*x2+b; LneA=@(x1,x2) w(1)*x1+w(2)*x2+b+1; LneB=@(x1,x2) w(1)*x1+w(2)*x2+b-1; handle=ezplot(lne,[x1mn x1max x2mn x2max]); set(handle,'color','k','lnewdth',2); handlea=ezplot(lnea,[x1mn x1max x2mn x2max]); set(handlea,'color','k','lnewdth',1,'lnestyle','--'); handleb=ezplot(lneb,[x1mn x1max x2mn x2max]); set(handleb,'color','k','lnewdth',1,'lnestyle','--'); 38
39
غیرخطی SVM برای دادههایی که قابلیت عملکرد سیستم بسیار خوب جداسازی است. دارند خطی 0 x اگر دادهها به حل میشود صورتهای زیر باشد مسأله چگونه 0 x x 2 نگاشتبهیکفضای Dmenson Hgh 0 x www.cs.utexas.edu/~mooney/cs391l/sldes/svm.ppt 40
نگاشتبهفضایباالتر همواره فضای ورودی میتواند به فضایی با ابعاد باالتر نگاشت گردد. این نگاشت میتواند به صورتی باشد که در این داشته جداسازی قابلیت ورودیها جدید فضای باشند. Φ: X φ(x) www.cs.utexas.edu/~mooney/cs391l/sldes/svm.ppt 41
نگاشتبهفضایباالتر X R m داشتیم W X b 0 هنگامیکه ورودیها به فضای دیگری نکاشت شوند برای نگاشت جدید خواهیم داشت: ( X ) [ ( X ), ( X ),..., ( X )] در این حالت هدف یافتن رویهی بهگونهای که: جداسازی است m1 j1 1 2 w ( X ) b 0 j ( X ) R 0 1 j m خروجی W m 1 42
m1 j1 w ( X ) b 0 j m1 j0 j w ( X) 0 j j نگاشتبهفضایباالتر ( X) 1 بافرض 0 خواهیمداشت: W ( X) [1, ( X)] ( X) 0 W [ b w, w, w,... w ] m 0 1 2 1 ماشين يادگيری 43
نگاشتبهفضایباالتر در این مرحله تمامی شروط و قیودی که برای جداسازی خطی در نظر گرفتیم وجود دارد تنها به ازای ها ) Φ(X در نظر گرفته میشود: m 1 d w ( X ) 10 j j j0 N W. d ( ( X )) opt 1 اسکالر m 1 1 X W opt ( X ) 0. d ( X ) ( X) 0 1 N 44
N 1 N 1 نگاشتبهفضایباالتر. d ( X ) ( X ) 0. d K( X, X ) 0 K(X,X j )= φ(x ) φ(x j ) N N N 1 Q d d K( X, X ) j j j 1 2 1 j1 عی است که معادل ضرب دا ح لی دو ب ردار خصی صه است. ب ا ن ع kernel ب ا ن 45
x=[x 1 x 2 ] ; K(x,x j )=(1 + x x j ) 2, K(x,x j )= φ(x ) φ(x j ): مثال K(x,x j )=(1 + x x j ) 2,= 1+ x 12 x j1 2 + 2 x 1 x j1 x 2 x j2 + x 22 x j2 2 + 2x 1 x j1 + 2x 2 x j2 = [1 x 1 2 2 x 1 x 2 x 2 2 2x 1 2x 2 ] [1 x j1 2 2 x j1 x j2 x j2 2 2x j1 2x j2 ] = φ(x ) φ(x j ), where φ(x) = [1 x 1 2 2 x 1 x 2 x 2 2 2x 1 2x 2 ] Mercer s theorem: Every sem-postve defnte symmetrc functon s a kernel K(X 1, X 1 ) K(X 1, X 2 ) K(X 1, X 3 ) K(X 1, X n ) K(X 2, X 1 ) K(X 2, X 2 ) K(X 2, X 3 ) K(X 2, X n ) K(X n, X 1 ) K(X n, X 2 ) K(X n, X 3 ) K(X n, X n ) 46
نگاشتبهفضایباالتر N N N 1 Q( ) d d ( X ) ( X ) است: زبر عیارت در بیشییه الگرابژ ضراپب بافتن هدف N N N 1 Q d d K( X, X ) N 1 j j j 1 2 1 j1 d j j j 1 2 1 j1 0, j 1 K K ( X, X ) N NN j K( X, X ) زبر یود ق گرفتن نظر در با 0 C kernel trck انعاد با فصای مشکالت درگیر که این بدون kernelمیاسب نع ا ب بافتن صورت در ریم. میب نهره نگاست این یحه ت ب از پنها شویم انعاد( یت باال)بک j ماتریسمتقارن ماشين يادگيری g(x) = Σα d K(X, X)+ b 47
توابعنگاشت ch-squared kernel 48
ساختار SVM g(x) = Σα d K(X,X)+ b K(X 1,X) K(X 2,X) K(X m1, X) 49
چندنکته SVM به گونهای طراحی شبکههای در SVM ابعاد پشتیبان مشخص است که به MLP و RBF شیوههای رایج برای نیازی ندارد. بردارهای توسط خصیصه فضای میشود. تعداد توابع شعاعی مورد استفاده و مراکز آن به صورت خودکار مشخص میگردد network(.)rbf تعداد الیههای مخفی و وزنها به صورت خودکار مشخص میشود.) perceptron )two-layer پیچیدگی مسأله به ابعاد دادهها بستگی ندارد. 50
مثال Problem XOR X 1 [ 1-1] d1 1 X 2 [ 1 1] d2 1 X 3 [1-1] d3 1 X 4 [1 1] d4 1 N 4 K( X, X ) ( X ). ( X ) نمونههایآموزشیدوبعدیهستند. K( X, X ) (1 X X ) 2 51
X X [ x x ] 1 2 [ x x ] 1 2 XOR Problem K( X, X ) (1 X X ) 2 x (1 [ x x ] ) (1 x x x x ) 1 2 2 1 2 1 1 2 2 x 2 2 2 2 2 1 1 1 2 1 2 1 1 2 2 1 x x 2x x x x x x 2x x 2x x 2 2 حالاگربخواهیمپاسخبهدستآمدهراباضرب داخلیدوبردار( φ(x و( φ(x نشاندهیمخواهیم داشت: 52
XOR Problem 1 x x 2x x x x x x 2x x 2x x 2 2 2 2 1 1 1 2 1 2 1 1 2 2 2 2 2 φ( X ) [1, x, 2 x x, x, 2 x, 2 x ] 2 2 1 1 2 1 2 φ( x ) [1 x, 2 x x, x, 2 x, 2 x ] =1,2,3,4 2 2 1 1 2 1 2 2 53
XOR Problem φx ( ) [1, x, 2 x x, x, 2 x, 2 x ] 2 2 1 1 2 1 2 2 φ( x ) [1 x, 2 x x, x, 2 x, 2 x ] =1,2,3,4 2 2 1 1 2 1 2 2 X 1 [ 1-1] X X X 2 [ 1 1] 3 [1-1] 4 [1 1] 1 1 2 1 2 2 1 1 2 1 2 2 1 1 2 1 2 2 1 1 2 1 2 2 54
XOR Problem K 4 4 1 1 1 1 1 1 2 1 2 2 1 1 1 1 1 1 2 1 2 2 2 2 2 2 1 1 2 1 2 2 1 1 1 1 1 1 2 1 2 2 2 2 2 2 2 2 2 2 K( X, X ) (1 X X ) 2 K 4 4 9 1 1 1 1 9 1 1 1 1 9 1 1 1 1 9 55
XOR Problem Q( )= N 4 4 4 4 1 Q( ) d d K( X, X ) 1 2 3 4 j j j 1 2 1 j1 1 2 2 2 2 (9 1 9 2 9 3 9 4 2 1 2 2 1 3 2 1 4 2 2 3 2 2 4 2 3 4 ) 2 دستآوردن αهابهینهمنجربهروابطزیرمیشود: 56
XOR Problem 1-9 0 1 2 3 4 1+ 9 0 1 2 3 4 1+ 9 0 1 2 3 4 1 8 Q( ) 1 4 1-9 0 1 2 3 4 بنابراینهرچهارورودی بردارپشتیبانهستند. پسازمحاسبهی α ها W opt رامحاسبهمیکنیم: 57
N XOR Problem جهتمحاسبهیاندازهیوزنبهینهداریم: 1 2 W 1 opt = 2 4 W. d ( ( X )) opt 1 W opt 1 = 2 داشتیم: 58
XOR Problem رویهی بهینه به وسیلهی میشود: محاسبه زیر رابطهی Wopt ( X) 0 xx 0 1 2 59
61
مثال clear all; close all; load fsherrs data = [meas(:,1), meas(:,2)]; groups = smember(speces,'setosa'); [tran, test] = crossvalnd('holdout',groups); cp = classperf(groups); svmstruct = svmtran(data(tran,:),groups(tran),'showplot',true,'boxconstr ant',1e6); ttle(sprntf('kernel Functon: %s',... func2str(svmstruct.kernelfuncton)),... 'nterpreter','none'); classes = svmclassfy(svmstruct,data(test,:),'showplot',true); classperf(cp,classes,test); cp.correctrate 62
63
مثال clear all; close all; load fsherrs data = [meas(:,1), meas(:,2)]; groups = smember(speces,'setosa'); [tran, test] = crossvalnd('holdout',groups); cp = classperf(groups); svmstruct = svmtran(data(tran,:),groups(tran),'showplot',true); ttle(sprntf('kernel Functon: %s',... func2str(svmstruct.kernelfuncton)),... 'nterpreter','none'); classes = svmclassfy(svmstruct,data(test,:),'showplot',true); classperf(cp,classes,test); cp.correctrate 64
65
r = sqrt(rand(100,1)); % radus t = 2*p*rand(100,1); % angle data1 = [r.*cos(t), r.*sn(t)]; % ponts r2 = sqrt(3*rand(100,1)+1); % radus t2 = 2*p*rand(100,1); % angle data2 = [r2.*cos(t2), r2.*sn(t2)]; % ponts plot(data1(:,1),data1(:,2),'r.') plot(data2(:,1),data2(:,2),'b.') axs equal data3 = [data1;data2]; theclass = ones(200,1); theclass(1:100) = -1; cl = svmtran(data3,theclass,'kernel_functon','rbf',... 'boxconstrant',inf,'showplot',true); hold on axs equal مثال 66
67
ساختکرنلهایجدید براساسکرنلهایموجودبهسادگیمیتوان کرنلهایجدیدساخت: هرتابع(.,.) K یککرنلاستچنانچهمعادلضرب داخلیبردارهایحاصلازنگاشتباشد. 68
ساختکرنلهایجدید)ادامه...( 69
ساختکرنلهایجدید)ادامه...( 70