Nghiên cứu phương pháp máy véc tơ hỗ trợ với lề mềm và ứng dụng phân lớp dữ liệu tuyến tính có nhiễu

76 4 0
Nghiên cứu phương pháp máy véc tơ hỗ trợ với lề mềm và ứng dụng phân lớp dữ liệu tuyến tính có nhiễu

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG SAVADY Sathaphone Nghiên cứu phương pháp Máy véc tơ hỗ trợ với lề mềm ứng dụng phân lớp liệu tuyến tính có nhiễu LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH THÁI NGUYÊN - 2019 Số hóa Trung tâm Học liệu Cơng nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG SAVADY Sathaphone Nghiên cứu phương pháp Máy véc tơ hỗ trợ với lề mềm ứng dụng phân lớp liệu tuyến tính có nhiễu Chun ngành: Khoa học máy tính Mã số: 8480101 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: TS Đàm Thanh Phương THÁI NGUYÊN - 2019 Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn L˝I CAM OAN Tỉi xin cam oan: Lu“n v«n th⁄c s chuyản ng nh Khoa hồc mĂy tnh, tản ã t i Nghiản cứu phữỡng phĂp MĂy vc tỡ hỉ trổ vợi lã mãm v ứng dửng phƠn lợp d li»u tuy‚n t‰nh câ nhi„u l cỉng tr…nh nghi¶n cøu, t…m hi”u v tr…nh b y tæi thüc hi»n dữợi sỹ hữợng dÔn khoa hồc ca TS m Thanh Phữỡng, Trữớng i hồc Cổng nghằ Thổng tin v Truyãn thỉng - ⁄i håc Th¡i Nguy¶n K‚t qu£ t…m hi”u, nghiản cứu lun vôn l ho n to n trung thỹc, khổng vi phm bĐt iãu g lu“t sð hœu tr‰ tu» v ph¡p lu“t Vi»t Nam N‚u sai, tæi ho n to n chàu tr¡ch nhi»m trữợc phĂp lut TĐt cÊ cĂc t i liằu, b i b¡o, khâa lu“n, cỉng cư phƒn m•m cıa c¡c tĂc giÊ khĂc ữổc sò dửng li lun vôn n y ãu ữổc ch dÔn tữớng minh vã tĂc gi£ v •u câ danh mưc t i li»u tham khÊo ThĂi Nguyản, ng y 18 thĂng nôm 2019 T¡c gi£ lu“n v«n SAVADY Sathaphone i L˝IC MÌN T¡c gi£ xin ch¥n th nh c£m ìn TS m Thanh Ph÷ìng, tr÷íng ⁄i håc Cỉng ngh» thỉng tin v truyãn thổng - i hồc ThĂi Nguyản, l giĂo viản hữợng dÔn khoa hồc  hữợng dÔn tĂc giÊ ho n th nh lun vôn n y, xin ữổc cÊm ìn c¡c thƒy, cỉ gi¡o tr÷íng ⁄i håc cỉng ngh» thỉng tin v truy•n thỉng nìi t¡c gi£ theo håc v ho n th nh chữỡng trnh cao hồc  nhi»t t…nh gi£ng d⁄y v gióp ï Xin c£m ìn nỡi tĂc giÊ cổng tĂc  to mồi iãu kiằn thu“n lỉi ” t¡c gi£ ho n th nh ch÷ìng tr…nh håc t“p V cuŁi cịng xin c£m ìn gia nh, bn b, ỗng nghiằp  ng viản, giúp ù t¡c gi£ suŁt thíi gian håc t“p, nghi¶n cøu v ho n th nh lu“n v«n n y Xin chƠn th nh cÊm ỡn ThĂi Nguyản, ng y 18 th¡ng n«m 2019 T¡c gi£ lu“n v«n SAVADY Sathaphone ii DANHS CHHNHV 2.1 CĂc mt phƠn cĂch hai lợp tuy‚n t‰nh 2.2 Lã ca hai lợp khổng bng 2.3 Lã ca hai lợp bng nhau, chồn phữỡng Ăn cõ 2.4 PhƠn tch b i to¡n SVM 2.5 C¡c i”m gƒn m°t ph¥n cĂch nhĐt ca hai classes ữổc 2.6 Soft margin SVM câ nhi„u, SVM s‡ khæng ho⁄t 2.7 Soft margin SVM dœ li»u gƒn linearly separab thuƒn s‡ khæng ho⁄t ºng hi»u qu£ 2.8 Mỉ t£ sü ÷ỉc v mĐt chồn lã 2.9 H m hinge loss 3.1 Minh håa nghi»m t…m c bði SVM 3.2 Dœ li»u tuy‚n t‰nh câ nhi„u 3.3 ữớng phƠn chia tm ữổc bði sklearn 3.4 ữớng phƠn chia tm ữổc bi hinge loss 3.5 ÷íng phƠn chia tm ữổc bi i ngÔu CĂc kt quÊ 3.6 Nghi»m t…m b‹ng sklearn, C =0.1 3.7 Nghi»m t…m b‹ng sklearn, C=1 3.8 Nghi»m C=10 3.9 nh hững ca C lản nghiằm, C=100 iii DANH MƯC KÞ HI U, TØVI TT T iv R Z C n R jj:jj SVM Soft SVM Argmin Duality Lagrangian Strong duality Weak duality KKT det(A) A T A H kAkF diag(A) trace(A) sng(x) @f @x rxf v MÖC LÖC Líi cam oan i Líi c£m ìn ii Danh s¡ch h…nh v‡ ii Danh mửc kỵ hiằu, t vit tt Mð v ƒu Chữỡng MáT Să KI N THC CHU N B 1.1 TŒng quan v• ngỉn ngœ Python 1.2 Giợi thiằu vã hồc mĂy 1.3 Mºt sŁ ki‚n thøc to¡n håc bŒ træ 11 Chữỡng PHìèNG PH P M Y V C TÌ HÉ TRĐ SVM 25 2.1 B i toĂn phƠn lợp SVM 25 2.2 B i toĂn SVM vợi lã mãm 33 Ch÷ìng ÙNG DƯNG V L P TR NH M˘ PH˜NG 46 3.1 L“p tr… nh t…m nghi»m cho SVM 46 3.2 L“p tr…nh t…m nghi»m cho Soft SVM 48 K‚t lu“n chung 55 T i li»u tham kh£o 55 vi M U Nhng nôm gn Ơy, AI - Artificial Intelligence (Tr‰ Tu» Nh¥n T⁄o), v cư th” hìn l Machine Learning (Håc M¡y ho°c M¡y Håc) nŒi l¶n nh÷ mºt b‹ng chøng cıa cuºc c¡ch m⁄ng cỉng nghi»p ln thứ tữ (1 - ng cỡ nữợc, nông lữổng iằn, - cổng nghằ thổng tin) Tr Tuằ NhƠn To ang len lọi v o mồi lắnh vüc íi sŁng m câ th” chóng ta khỉng nh“n Xe tü h nh cıa Google v Tesla, h» thŁng tü tag khuæn m°t £nh cıa Facebook, trổ lỵ Êo Siri ca Apple, hằ thng gổi ỵ sÊn ph'm ca Amazon, hằ thng gổi ỵ phim ca Netflix, m¡y chìi cí v¥y AlphaGo cıa Google DeepMind, , ch¿ l mºt v i væ v n nhœng øng döng cıa AI/Machine Learning [7] Machine Learning l mºt t“p cıa AI Theo ành ngh¾a cıa Wikipedia, Machine learning is the subfield of computer science that gives computers the ability to learn without being explicitly programmed Nâi ìn gi£n, Machine Learning l mºt l¾nh vüc nhä cıa Khoa Håc M¡y T‰nh, nâ câ kh£ nông tỹ hồc họi dỹa trản d liằu ữa v o m khỉng cƒn ph£i ÷ỉc l“p tr…nh cư th” [1] PhƠn lợp v hỗi quy l hai s c¡c thu“t to¡n håc m¡y câ gi¡m s¡t câ nhi•u ứng dửng thỹc t B i toĂn phƠn lợp tuyn tnh cỡ bÊn yảu cu xƠy dỹng mt classifier tł dœ li»u training ” câ i”m dœ li»u mợi ta cõ th dỹ oĂn ữổc nhÂn ca nõ GiÊ sò rng cõ hai class khĂc ữổc mổ t£ bði c¡c i”m khỉng gian nhi•u chi•u, hai classes n y linearly separable, tức tỗn ti mt siảu phflng phƠn chia chnh xĂc hai classes õ HÂy tm mt siảu mt phflng phƠn chia hai classes õ, tức tĐt cÊ cĂc im thuc mt class nm vã mt pha ca siảu mt phflng õ v ngữổc ph a vợi to n b cĂc im thuc class cặn l⁄i Chóng ta ¢ bi‚t r‹ng, thu“t to¡n PLA câ th” l m ÷ỉc vi»c n y nh÷ng nâ câ th” cho chóng ta vỉ sŁ nghi»m C¥u häi °t l : vỉ sŁ c¡c m°t ph¥n lo⁄i sai Ta câ c¡c nh“n x†t: Vỵi h m zero-one loss, cĂc im cõ score ngữổc dĐu vợi u mong mun s gƠy mĐt mĂt nhữ (bng 1), bĐt k chúng gn hay xa ữớng ph¥n chia (trưc tung) ¥y l mºt h m ríi rc, rĐt khõ ti ữu v ta cụng khõ cõ th o m ữổc sỹ hy sinh nhữ  nh nghắa phn u Vợi h m hinge loss, nhng i”m n‹m vịng an to n, øng vỵi ys , s khổng gƠy mĐt mĂt g Nhng i”m n‹m giœa margin cıa class t÷ìng øng v ÷íng phƠn chia tữỡng ứng vợi < y < 1, nhng im n y gƠy mt mĐt mĂt nhọ Nhœng i”m bà misclassifed, tøc y < s‡ g¥y mĐt mĂt lợn hỡn, v vy, ti thiu h m mĐt mĂt, ta s trĂnh ữổc nhng im b misclassifed v lĐn sang phn class cặn li quĂ nhiãu Ơy chnh l mt ữu im ca h m hinge loss H m hinge loss l mºt h m liản tửc, v cõ o h m ti gn nhữ måi nìi (almost everywhere differentiable) trł i”m câ ho nh º b‹ng Ngo i ra, ⁄o h m cıa h m n y cơng r§t d„ x¡c ành: b‹ng -1 t⁄i c¡c i”m nhä hìn v b‹ng t⁄i c¡c i”m lỵn hìn T⁄i 1, ta câ th” coi nh÷ ⁄o h m cıa nâ b‹ng XƠy dỹng h m mĐt mĂt Ta xem xt b i toĂn Soft Margin SVM dữợi gõc nhn hinge loss Vỵi mØi c°p (w; b), °t Ln(w; b) = max(0; L§y tŒng t§t c£ c¡c loss n y theo n ta ÷ỉc: L(w; b) = Li = Chóng ta khỉng trüc ti‚p tŁi ÷u hinge loss m v bŒ sung sŁ h⁄ng R(w; b) o L(w; b) SŁ h⁄ng n y ÷ỉc gåi l th nh phƒn regularization Khi â h m m§t m¡t tŒng l : J(w; b) = L(w; b) + R(w; b) 43 vỵi l tham sŁ regularization d÷ìng, R() l h m gióp h⁄n ch‚ viằc cĂc hằ s (w; b) tr nản quĂ lợn Mºt c¡c c¡ch chån h m () l chu'n l 2, â h m m§t m¡t cıa SVM l• m•m l N X J(w; b) = T max(0; yn(w xn + b)) + n=1 N‚u mð rºng th¶m mºt th nh phƒn b‹ng v o c¡c i”m dœ li»u xn R d ” d+1 ÷ỉc xn R v s‡ vi‚t ÷ỉc gån hìn: J(w) = Ta nhn thĐy Ơy l T ynw xn l mt h m lỗi, max cuÊ hai h s l hinge loss l mºt h Chu'n l mºt h m lỗi, vy s hng regularization cụng l Tng ca hai h m lỗi l mt h m lỗi V b i toĂn ti ữu bƠy giớ l khổng r ng buc, cõ th sò dửng cĂc phữỡng ph¡p Gradient Descent ” tŁi ÷u Hìn nœa, v… t‰nh chĐt lỗi ca h m mĐt mĂt, nu chồn learning rate khổng quĂ lợn v s vặng lp nhiãu, thu“t to¡n s‡ hºi tư tỵi i”m global optimal cıa b i toĂn Ti ữu h m mĐt mĂt Ta t‰nh lƒn l÷ỉt tłng th nh phƒn 23 ⁄o h m cıa phƒn regularization ìn gi£n b‹ng ð w vỵi th nh phƒn 0 cuŁi ch‰nh l ⁄o h m theo bias cıa th nh phƒn regularization Vỵi phƒn hinge loss, x†t tłng i”m dœ li»u, ta câ hai tr÷íng hỉp: T N‚u y nw x n N‚u ynw xn > 0, ⁄o h m theo w ch‰nh l T 0, ta câ ⁄o h m theo w b‹ng ynxn 44 ” t‰nh gradient cho to n bº dœ li»u, ta °t chó þ r‹ng u l mºt v†c tì h ng Ti‚p töc, ta cƒn x¡c ành c¡c tr‰ cıa u cõ giĂ tr nhọ hỡn 1, tức ứng vợi trữớng hỉp ð tr¶n °t H = fn : un < 1g ta câ th” suy c¡ch t‰nh ⁄o h m theo w cıa h m m§t m¡t l 23 X w rJ(w) = ynxn + 45 n2H (2.2.43) V“y quy t›c c“p nh“t cıa w l : 31 w ynxn + 5A w=w vỵi l tŁc º håc 45 (2.2.44) CH×ÌNG ÙNG DƯNG V L P TR NH M˘ PH˜NG Ch÷ìng n y tr…nh b y mºt sŁ k‚t qu£ l“p tr…nh mæ phọng ứng dửng ca SVM vợi lã mãm cĂc tr÷íng hỉp dœ li»u tuy‚n t‰nh câ nhi„u 3.1 L“p tr…nh t…m nghi»m cho SVM 3.1.1 - T…m nghi»m theo cỉng thøc Gåi c¡c module cƒn dịng v t⁄o dœ li»u gi£, £m b£o ph¥n t¡ch tuy‚n t ‰nh from future import print_function import numpy as np import matplotlib.pyplot as plt from scipy.spatial.distance import cdist np.random.seed(22) means = [[2, 2], [4, 2]] cov = [[.3, 2], [.2, 3]] N=10 X0 = np.random.multivariate_normal(means[0], cov, N) # class X1 = np.random.multivariate_normal(means[1], cov, N) # class -1 X = np.concatenate((X0.T, X1.T), axis = 1) # all data y = np.concatenate((np.ones((1, N)), -1*np.ones((1, N))), axis = 1) # labels Ti‚p theo, giÊi b i toĂn i ngÔu 2.1.16 - 2.1.18 b‹ng CVXOPT: from cvxopt import matrix, solvers # build K V = np.concatenate((X0.T, -X1.T), axis = 1) K = matrix(V.T.dot(V)) # see definition of V, K near eq (8) p = matrix(-np.ones((2*N, 1))) # all-one vector # build A, b, G, h G = matrix(-np.eye(2*N)) # for all lambda_n >= h = matrix(np.zeros((2*N, 1))) A = matrix(y) # the equality constrain is actually y^T lambda = b = matrix(np.zeros((1, 1))) solvers.options[’show_progress’] = False sol = solvers.qp(K, p, G, h, A, b) l = np.array(sol[’x’]) print(’lambda = ’) print(l.T) K‚t qu£ l lambda = [[ 8.54018321e-01 2.89132533e-10 1.37095535e+00 6.36030818e-10 4.04317408e-10 8.82390106e-10 6.35001881e-10 5.49567576e-10 8.33359230e-10 1.20982928e-10 6.86678649e-10 1.25039745e-10 2.22497367e+00 4.05417905e-09 1.26763684e-10 1.99008949e-10 2.13742578e-10 1.51537487e-10 3.75329509e-10 3.56161975e-10]] 46 H…nh 3.1: Minh håa nghi»m t…m c bði SVM C¡c gi¡ trà ca lambda ãu rĐt nhọ úng phÊi bng kt quÊ õ phÊn Ănh vÔn cặn nhng sai sŁ t‰nh to¡n Ta i t…m t“p hæp c¡c v†c tỡ hỉ trổ rỗi tm nghiằm ca b i toĂn epsilon = 1e-6 # just a small number, greater than 1e-9 S = np.where(l > epsilon)[0] VS = V[:, S] XS = X[:, S] yS = y[:, S] lS = l[S] # calculate w and b w = VS.dot(lS) b = np.mean(yS.T - w.T.dot(XS)) print(’w = ’, w.T) print(’b = ’, b) w = [[-2.00984381 0.64068336]] b = 4.66856063387 C¡c kt quÊ ữổc minh hồa bng hnh Ênh 3.1 dữợi ¥y ÷íng m u en “m ð giœa ch‰nh l mt phƠn cĂch tm ữổc bng SVM 3.1.2 Tm nghiằm theo thữ viằn Nu sò dửng sklearn, ta l m nh÷ sau from sklearn.svm import SVC y1 = y.reshape((2*N,)) X1 = X.T # each sample is one row clf = SVC(kernel = ’linear’, C = 1e5) # just a big number clf.fit(X1, y1) 47 w = clf.coef_ b = clf.intercept_ print(’w = ’, w) print(’b = ’, b) K‚t qu£ l w = [[-2.00971102 0.64194082]] b = [ 4.66595309] K‚t qu£ n y v k‚t qu£ t…m nghi»m theo cæng thức khĂ tữỡng 3.2 3.2.1 ỗng Lp trnh tm nghiằm cho Soft SVM Gi£i b i to¡n l• m•m b‹ng ba c¡ch Khai b¡o v t⁄o dœ li»u gi£ # generate data # list of points import numpy as np import matplotlib.pyplot as plt from scipy.spatial.distance import cdist np.random.seed(21) from matplotlib.backends.backend_pdf import PdfPages means = [[2, 2], [4, 1]] cov = [[.3, 2], [.2, 3]] N=10 X0 = np.random.multivariate_normal(means[0], cov, N) X1 = np.random.multivariate_normal(means[1], cov, N) X1[-1, :] = [2.7, 2] X = np.concatenate((X0.T, X1.T), axis = 1) y = np.concatenate((np.ones((1, N)), -1*np.ones((1, N))), axis = 1) Hnh 3.2 dữợi ¥y mỉ t£ dœ li»u vła t⁄o Gi£i b‹ng th÷ vi»n sklearn Chån C = 100 from sklearn.svm import SVC C=100 clf = SVC(kernel = ’linear’, C = C) clf.fit(X, y) w_sklearn = clf.coef_.reshape(-1, 1) b_sklearn = clf.intercept_[0] print(w_sklearn.T, b_sklearn) Nghi»m t…mc l [[-1.87461946 -1.80697358]] 8.49691190196 T…m nghi»m b‹ng gi£i b i toĂn i ngÔu from cvxopt import matrix, solvers # build K 48 H…nh 3.2: Dœ li»u tuy‚n t‰nh câ nhi„u V = np.concatenate((X0.T, -X1.T), axis = 1) K = matrix(V.T.dot(V)) p = matrix(-np.ones((2*N, 1))) # build A, b, G, h G = matrix(np.vstack((-np.eye(2*N), np.eye(2*N)))) h = matrix(np.vstack((np.zeros((2*N, 1)), C*np.ones((2*N, 1))))) A = matrix(y.reshape((-1, 2*N))) b = matrix(np.zeros((1, 1))) solvers.options[’show_progress’] = False sol = solvers.qp(K, p, G, h, A, b) l = np.array(sol[’x’]) print(’lambda = \n’, l.T) lambda = [[ 1.11381472e-06 9.99999967e+01 1.10533112e-06 6.70163540e-06 3.40838760e+01 4.73972850e-06 9.99999978e+01 3.13320446e-06 9.99999985e+01 5.06729333e+01 9.99999929e+01 3.23564235e-06 9.99999984e+01 9.99999948e+01 1.37977626e-06 9.99997155e+01 3.45005660e-06 1.46190314e-06 5.50601997e-06 1.45062544e-06 1.85373848e-06 1.14181647e-06 8.47565685e+01 9.99999966e+01 9.99999971e+01 8.00764708e-07 2.65537193e-06 1.45230729e-06 4.15737085e-06 9.99999887e+01 9.99999761e+01 8.98414770e-07 9.99999979e+01 1.75651607e-06 8.27947897e-07 1.04289116e-06 9.99999969e+01 9.07920759e-07 8.83138295e-07 9.99999971e+01]] Trong c¡c th nh phƒn cıa lambda t…m ÷ỉc, cõ rĐt nhiãu th nh phn rĐt nhọ, tợi 10 ¥y ch‰nh l c¡c lambdai = Câ rĐt nhiãu phn tò xĐp x bng vợi C = 100, tữỡng ứng vợi cĂc vc tỡ hỉ trổ khổng nm trản lã, vợi mt sai s tnh toĂn nhọ C¡c gi¡ trà cỈn l⁄i n‹m giœa v 100 l cĂc giĂ tr tữỡng ứng vợi cĂc im nm chnh xĂc trản hai lã Tip theo ta cn tnh w v b theo cổng thức 2.2.25 v ?? Trữợc â ta cƒn 49 t…m t“p hæp c¡c i”m hØ trổ v nhng im nm trản lã S = np.where(l > 1e-5)[0] # support set S2 = np.where(l < 999*C)[0] M = [val for val in S if val in S2] # intersection of two lists XT = X.T # we need each column to be one data point in this alg VS = V[:, S] lS = l[S] yM = y[M] XM = XT[:, M] w_dual = VS.dot(lS).reshape(-1, 1) b_dual = np.mean(yM.T - w_dual.T.dot(XM)) print(w_dual.T, b_dual) K‚t qu£ l [[-1.87457279 -1.80695039]] 8.49672109815 K‚t qu£ n y gƒn giŁng vỵi kt quÊ tm ữổc bng sklearn trản Tm nghiằm b‹ng gi£i b i to¡n khæng r ng buºc Trong ph÷ìng ph¡p n y, ta cƒn t‰nh gradient cıa h m mĐt mĂt Nhữ thữớng lằ, cn kim chøng n y b‹ng c¡ch so s¡nh vỵi ⁄o h m sŁ X0_bar = np.vstack((X0.T, np.ones((1, N)))) # extended data X1_bar = np.vstack((X1.T, np.ones((1, N)))) # extended data Z = np.hstack((X0_bar, - X1_bar)) # as in (22) lam = 1./C def cost(w): u = w.T.dot(Z) # as in (23) return (np.sum(np.maximum(0, - u)) + \ 5*lam*np.sum(w*w)) - 5*lam*w[-1]*w[-1] # no bias def grad(w): u = w.T.dot(Z) # as in (23) H = np.where(u < 1)[1] ZS = Z[:, H] g = (-np.sum(ZS, axis = 1, keepdims = True) + lam*w) g[-1] -= lam*w[-1] # no weight decay on bias return g eps = 1e-6 def num_grad(w): g = np.zeros_like(w) for i in xrange(len(w)): wp = w.copy() wm = w.copy() wp[i] += eps wm[i] -= eps g[i] = (cost(wp) - cost(wm))/(2*eps) return g w0 = np.random.randn(X0_ext.shape[0], 1) g1 = grad(w0) g2 = num_grad(w0) diff = np.linalg.norm(g1 - g2) 50 print(’Gradient different: %f’ %diff) K‚t qu£ so s¡nh cho th§y b‹ng vỵi ⁄o h m sŁ Gradient difference: 0.000000 V… sü kh¡c giœa hai c¡ch t‰nh gradient l b‹ng 0, ta cõ th yản tƠm rng gradient tnh ữổc l ch‰nh x¡c Sau ch›c ch›n r‹ng gradient t…m ÷ỉc ¢ ch‰nh x¡c, ta câ th” b›t ƒu l m Gradient Descent: def grad_descent(w0, eta): w = w0 it = while it < 100000: it = it + g = grad(w) w -= eta*g if (it % 10000) == 1: print(’iter %d’ %it + ’ cost: %f’ %cost(w)) if np.linalg.norm(g) < 1e-5: break return w w0 = np.random.randn(X0_ext.shape[0], 1) w = grad_descent(w0, 0.001) w_hinge = w[:-1].reshape(-1, 1) b_hinge = w[-1] print(w_hinge.T, b_hinge) K‚t qu£ l [[-1.8623959 -1.79532187]] [ 8.4493419] Ta thĐy rng kt quÊ tm ữổc bng ba cĂch l nhữ CĂc hnh 3.3-3.5 dữợi Ơy minh ho⁄ k‚t qu£ b‹ng ba c¡ch t‰nh: Trong thüc t‚ ¡p dưng, ph÷ìng ph¡p ch›c ch›n ÷ỉc lüa chån v… gån g ng, nhanh châng nh h÷ðng cıa C lản nghiằm Ta thĐy rng C c ng lợn th biản c ng nhọ i nhữ phn phƠn tch toĂn håc ¢ ch¿ K‚t qu£ th” hi»n bi‚n i C nhữ cĂc hnh dữợi ThÊo lun SVM thun (Hard Margin SVM) ho⁄t ºng khæng hi»u qu£ câ nhi„u ð gƒn bi¶n ho°c th“m ch‰ dœ li»u giœa hai lỵp gƒn linearly separable Soft Margin SVM câ th” gióp kh›c phưc i”m n y 51 H…nh 3.3: ÷íng ph¥n chia t…m ÷ỉc bði sklearn H…nh 3.4: ÷íng phƠn chia tm ữổc bi hinge loss Hnh 3.5: ữớng phƠn chia tm ữổc bi i ngÔu CĂc kt quÊ l nh÷ 52 H…nh 3.6: Nghi»m t…m b‹ng sklearn, C =0.1 H…nh 3.7: Nghi»m t…m b‹ng sklearn, C=1 H…nh 3.8: Nghi»m C=10 53 H…nh 3.9: nh h÷ðng cıa C l¶n nghi»m, C=100 Trong Soft Margin SVM, chóng ta ch§p nh“n lØi x£y ð mºt v i i”m dœ li»u LØi n y ÷ỉc x¡c ành b‹ng kho£ng cĂch t im õ tợi ữớng biản tữỡng ứng B i to¡n tŁi ÷u s‡ tŁi thi”u lØi n y bng cĂch sò dửng thảm cĂc bin ữổc gồi l slack varaibles ” gi£i b i to¡n tŁi ÷u, câ hai c¡ch kh¡c MØi c¡ch câ nhœng ÷u, nh÷ỉc im riảng CĂch thứ nhĐt l giÊi b i toĂn i ngÔu B i toĂn i ngÔu ca Soft Margin SVM rĐt ging vợi b i toĂn i ngÔu ca Hard Margin SVM, ch¿ kh¡c ð r ng buºc ch°n trản ca cĂc nhƠn tò Laggrange R ng buc n y cặn ữổc gồi l box costraint CĂch thứ hai l ữa b i toĂn vã dng khổng r ng buc dỹa trản mt h m mợi gồi l hinge loss Vợi cĂch n y, h m mĐt mĂt thu h m lỗi v cõ th giÊi ữổc l mt ÷æc kh¡ d„ d ng v hi»u qu£ b‹ng c¡c ph÷ìng ph¡p Gradient Descent Trong Soft Margin SVM, câ mºt hng s phÊi ữổc chồn, õ l C Hữợng tip cn n y cặn ữổc gồi l C-SVM Ngo i ra, cặn cõ mt hữợng tip cn khĂc cụng hay ÷ỉc sß dưng, gåi l v-svm 54 K T LU N CHUNG Dữợi sỹ ch bÊo ca GiĂo viản hữợng dÔn, côn v o ã cữỡng lun vôn  ữổc phả duyằt, lun vôn  t ữổc mt s nhiằm vử sau: (1) Tm hiu vã phữỡng phĂp phƠn lỵp tuy‚n t‰nh m¡y v†c tì hØ trỉ SVM B i to¡n tŁi ÷u SVM l b i to¡n i tm ữớng phƠn chia cho lã Êm bÊo lợn nhĐt cõ th Nghắa l Êm bÊo khoÊng cĂch t nhng im gn nhĐt ca hai lợp tợi mt phƠn chia l bng v rng nhĐt cõ th (2) XƠy dỹng v giÊi b i toĂn ti ữu cho SVM Hi”u c¡c ki‚n thøc to¡n cì sð cıa SVM v cĂc bữợc giÊi b i toĂn ti ữu (3) Tm hiu b i toĂn SVM vợi lã mãm Trong trữớng hổp cĂc lợp l tuyn t nh cõ nhiu, cn phÊi xƠy dỹng li iãu kiằn ti ữu ” gi£i b i to¡n thüc t‚ â Vi»c gi£i trüc ti‚p cơng nh÷ gi£i thỉng qua b i to¡n i ngÔu  ữổc nghiản cứu (4) C i t mổ phọng ứng dửng ca cĂc phữỡng phĂp phƠn lợp trản cĂc iãu kiằn ỡn giÊn, cõ nhiu thĐy ữổc ỵ nghắa ca b i toĂn Trản cỡ s ca cĂc kt quÊ Â t ữổc, nu cõ th tip tửc nghiản cứu th lun vôn l nãn tÊng tt nghiản cứu thảm mt s vĐn ã sau: Mð rºng c¡c b i to¡n SVM thäa m¢n nhng yảu cu thỹc t ca d liằu Ti ữu cĂc phữỡng phĂp giÊi CĂc ứng dửng phƠn lợp tuyn t‰nh câ nhi„u thüc t‚ hìn 55 T ILI UTHAMKH O [1] Bishop, Christopher M Pattern recognition and Machine Learning , Springer (2006) [2] Duda, Richard O., Peter E Hart, and David G Stork Pattern classification John Wiley & Sons, 2012 [3] LIBSVM A Library for Support Vector Machines https://www.csie.ntu.edu.tw/ cjlin/libsvm/ [4] sklearn.svm.SVC https://scikitlearn.org/stable/modules/generated/sklearn.svm.SVC.html [5] Bennett, K P (1992) Robust linear programming discrimination of two linearly separable sets Optimization Methods and Software 1, 23 34 [6] Rosasco, L.; De Vito, E D.; Caponnetto, A.; Piana, M.; Verri, A (2004) Are Loss Functions All the Same? Neural Computation 16 (5): 1063 1076 [7] Machine learning cì b£n, Vơ Hœu Ti»p., https://machinelearningcoban.com/ [8] Eric Matthes, "Python Crash Course", 2016 [9] Vê Duy TuĐn, "Python rĐt l cỡ bÊn", 2016 [10] m Thanh Ph÷ìng, Tr÷ìng H H£i, Ngỉ M⁄nh T÷ðng, Bịi Th Thanh XuƠn, "GiĂo trnh ToĂn cao cĐp 1", NXB ⁄i håc Th¡i Nguy¶n, 2016 56 Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn ... Sathaphone Nghiên cứu phương pháp Máy véc tơ hỗ trợ với lề mềm ứng dụng phân lớp liệu tuyến tính có nhiễu Chun ngành: Khoa học máy tính Mã số: 8480101 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người... ứng vợi giĂ tr riảng th vợi måi k R; k 6= 0, kx công l mt vc tỡ riảng ca A ứng vợi giĂ tr ri¶ng â N‚u x1; x2 l hai v†c tì ri¶ng ứng vợi mt giĂ tr riảng th tng ca chúng cụng l mt vc tỡ riảng ứng. .. tnh, tản ã t i Nghiản cứu phữỡng phĂp MĂy vc tỡ hỉ trổ vợi lã mãm v ứng dửng phƠn lợp d liằu tuyn tnh cõ nhiu l cỉng tr…nh nghi¶n cøu, t…m hi”u v tr…nh b y tổi thỹc hiằn dữ? ??i sỹ hữợng dÔn khoa

Ngày đăng: 08/06/2021, 12:59

Tài liệu cùng người dùng

Tài liệu liên quan