+10

Support Vector Machine

Tổng quan

Support Vector Machine (SVM) là một trong những thuật toán mạnh mẽ cũng như được sử dụng phổ biến nhất trong Machine Learning. Ý tưởng chủ đạo của SVM là xây dựng một bộ phân lớp nhằm tối đa khoảng cách tối thiểu từ mỗi lớp tới siêu phằng phân chia. Để hiểu được cách xây dựng bài toán tối ưu cho SVM, chúng ta sẽ cần tới một chút kiến thức về hình học mà ở đây là khoảng cách từ một điểm tới một siêu phẳng, một chút kiến thức về tối ưu lồi, hàm đối ngẫu Lagrange và cách giải bài toán tối ưu có điều kiện ràng buộc tuyến tính. Trong bài viết này, tôi sẽ giới thiệu về thuật toán SVM để phân lớp một bộ dữ liệu là linearly separable ( có thể phân định tuyến tính được ) và để cho đơn giản chúng ta sẽ xem xét nó là một bài toán phân loại nhị phân.

I. Nhắc lại về Logistic Regression:

Có thể nhiều bạn sẽ đạt câu hỏi là: Tại sao lại là Logistic Regression mà không phải một thuật toán phân lớp nào khác ? Thì tôi xin được trả lời là vì ý tưởng của thuật toán này có nhiều điểm chung với SVM. Nhắc lại cho các bạn nào đã quên thì Logistic Regression xây dựng một phân bố xác suất cho mỗi lớp. Giả sử có một tập dữ liệu S={x(i),y(i)},i=1...mS=\{x^{(i)}, y^{(i)}\}, i=1...m trong đó x(i)n+1,x0(i)=1x^{(i)} \in \real^{n+1}, x^{(i)}_0 =1y(i){0,1}y^{(i)} \in \{0,1\} ta sẽ có:

p(y(i)=1x(i),θ)=σ(θTx(i))p(y^{(i)}=1|x^{(i)},\theta) = \sigma(\theta^Tx^{(i)})

σ(z)=11+ez(0,1)\sigma(z) = \frac{1}{1 + e^{-z}} \in (0,1)

là xác suất để điểm dũ liệu thứ ii rơi vào class 11 , θn+1\theta \in \real^{n+1} được gọi là tham số của mô hình còn σ\sigma biểu thi cho hàm sigmoid. Từ đây ta có thể dễ dàng suy ra được ngay.

p(y(i)=0x(i),θ)=1p(y(i)=1x(i),θ)p(y^{(i)}=0|x^{(i)},\theta) = 1 - p(y^{(i)}=1|x^{(i)},\theta)

Để quyết định điểm dữ liệu này rơi vào class nào ta chỉ cần đơn giản chọn ra class mà nó thuộc vào có xác suất lớn hơn. Nói đơn giản hơn, nếu ta chọn threshold = 0.5 thì một điểm dữ liệu sẽ rơi vào class 11 khi:

p(y(i)=1x(i),θ)0.5p(y^{(i)}=1|x^{(i)},\theta) \ge 0.5

Ngược lại nó sẽ rơi vào class 00. Ở đây nếu các bạn để ý một chút, thì sẽ thấy ngay biểu thức xác suất trên xảy ra khi và chỉ khi điều kiện dưới đây được thỏa mãn.

θTx(i)0\theta^Tx^{(i)} \ge 0

θ0×x0(i)+θ1×x1(i)+...+θn×xn(i)0\Leftrightarrow \theta_{0} \times x_{0}^{(i)} + \theta_{1} \times x_{1}^{(i)} + ... + \theta_{n} \times x_{n}^{(i)} \ge 0

Biểu thức trên nói cho ta biết rằng, nếu một điểm dữ liệu nằm về phía dương của siêu phẳng ( Hyper plane ) được định nghĩa bởi bộ tham số θ\theta sẽ được nhận class 11 và ngược lại sẽ nhận class 00. Nói cách khác, Logistic Regression tìm kiếm một siêu phẳng phân cách sao cho, các điểm thuộc class 11 sẽ nằm về phía dương của nó, còn các điểm thuộc class 00 sẽ nằm về phía âm.

Figure 1: Decision Boundary được sinh ra từ Logistic Regression.

Một quan sát quan trọng nữa là nếu định lượng θTx(i)\theta^Tx^{(i)} càng lớn ( một cách hình học mà nói tức là điểm dữ liệu x(i)x^{(i)} nằm càng xa về phía dương của hyper plane ) thì xác suất để điểm dữ liệu đó rới vào class 11 sẽ càng lớn và ngược lại. Điều này dẫn đến một kết luận rằng, nếu một điểm thuộc class 11 thì ta sẽ muốn chúng cách siêu phẳng về phía dương càng xa càng tốt, tương tự một điểm thuộc class 00 sẽ cần cách về phía âm càng xa càng tốt.

Tương đương với việc chúng ta đang cần tìm một đường phân tách sao cho các điểm thuộc cùng một lớp sẽ nằm về cùng một phía tương ứng và khoảng cách từ điểm gần nhất của mỗi lớp tới đường phân tách đó là lớn nhất có thể. Đó chính là tư tưởng của Support Vector Machine.

II. Khoảng cách từ một điểm tới một siêu phẳng:

Nhắc lại một chút về kiến thức hình học, nếu các bạn đã quên thì khoảng cách từ một điểm đến một mặt phẳng được định nghĩa như sau. Giả sử mặt phẳng (P) có phương trình: ax+by+cz+d=0ax + by + cz + d = 0 và một điểm A(x0,y0,z0)A(x_0,y_0,z_0) thì khoảng cách từ điểm A tới mặt phẳng (P) sẽ là:

d(A,(P))=a×x0+b×y0+c×z0+da2+b2+c2d(A,(P)) = \frac{|a \times x_0 + b \times y_0 + c \times z_0 + d|}{\sqrt{a^2 + b^2 + c^2}}

Tổng quát công thức trên lên không gian có số chiều lớn, ta suy được một công thức tương tự:

d(x,P)=θ0×x0+θ1×x1+...+θn×xnθ12+...+θn2=θTxθ12+...+θn2d(\bold{x},P) = \frac{|\theta_0 \times x_0 + \theta_1 \times x_1 + ... + \theta_n \times x_n|}{\sqrt{ \theta_1^2 + ... + \theta_n^2} } = \frac{|\theta^T\bold{x}|}{\sqrt{ \theta_1^2 + ... + \theta_n^2}}

trong đó x,θn+1,x0=1\bold{x},\theta \in \real^{n+1}, x_0 =1d(x,P)d(\bold{x},P) được gọi là khoảng cách từ điểm x\bold{x} tới siêu phẳng (hyper plane) PP. Ở đây, nếu ta bỏ dấu trị tuyệt đối của tử số đi, ta sẽ xác định được điểm x\bold{x} nằm về phía nào của siêu phẳng, nếu tử số là dương, tức là điểm x\bold{x} nằm về phía dương của siêu phẳng, ngược lại thì nó sẽ nằm về phía âm.

Để thuận tiện khi thực hiện các phép toán trong SVM, tôi xin được phép sửa lại một chút về ký hiệu, việc sửa đổi này không gây ảnh hưỡng tới kết quả của các biểu thực đã nêu ở trên. Tiếp theo, thay vì dùng ký hiệu θ\theta để biểu thị cho tham số của siêu phẳng, tôi sẽ đổi nó thành 2 vector khác là w\bold{w}bb với w=[θ1,....,θn]n\bold{w} = [\theta_1, ....,\theta_n] \in \real^nb=θ0b = \theta_0 \in \real và loại bỏ thành phần x0=1x_0 =1 ra khỏi vector x\bold{x}. Biểu thức ở trên có thể viết lại dưới dạng sau đây.

d(x,P)=b+w1×x1+...+wn×xnw12+w12+...+wn2=wTx+bw2d(\bold{x},P) = \frac{|b +w_1 \times x_1 + ... + w_n \times x_n |}{\sqrt{w_1^2 + w_1^2 + ... + w_n^2} } = \frac{|\bold{w}^T\bold{x} + b|}{\Vert\bold{w}\Vert_2}

III. Margin:

Xem xét một tập dữ liệu S={x(i),y(i)},i=1...mS =\{ x^{(i)}, y^{(i)} \},i=1...m với x(i)nx^{(i)} \in \real^ny(i){1,1}y^{(i)} \in \{-1,1\} ( ở đây để thuận tiện cho các phép tính sau này, tôi xin phép đổi domain của yy từ {0,1}\{0,1\} về {1,1}\{-1, 1\} ) và một linear classifier được tham số hóa bởi 2 vector w\bold{w}bb có dạng sau:

y^=hw,b(x)=g(wTx+b)\hat{y} = h_{\bold{w},b}(x) = g(\bold{w}^Tx + b)

trong đó g(wTx+b)=1g(\bold{w}^Tx + b) =1 nếu wTx+b0\bold{w}^Tx + b \ge 01-1 nếu wTx+b<0\bold{w}^Tx + b < 0. Ta xét khoảng cách từ một điểm trong tập dữ liệu tới siêu phẳng được định nghĩa bởi w\bold{w}bb.

γ(i)=wTx(i)+bw2\gamma^{(i)} = \frac{|\bold{w}^T\bold{x}^{(i)} + b|}{\Vert\bold{w}\Vert_2}

Từ các giả thiết trên, ta thấy có một quan sát quan trọng: một điểm sẽ được phân lớp đúng nếu.

γ(i)=y(i)(wTx(i)+b)w2>0\gamma^{(i)} = \frac{ y^{(i)} (\bold{w}^T\bold{x}^{(i)} + b)}{\Vert\bold{w}\Vert_2} > 0

Như đã thảo luận ở phần trên, ta muốn các điểm dữ liệu cách đường phân cách xa càng tốt, cụ thể hơn, nếu một điểm thuộc lớp 11 ta sẽ muốn wTx(i)+b\bold{w}^T\bold{x}^{(i)} + b là một số dương càng lớn càng tốt, còn nếu thuộc lớp 1-1 ta sẽ cần wTx(i)+b\bold{w}^T\bold{x}^{(i)} + b là một số âm càng nhỏ càng tốt. Điều này có thể được đảm bảo nếu điểm gần nhất của mỗi lớp, cách xa đường phân cách nhất có thể.

Margin của tập dữ liệu được định nghĩa là khoảng cách từ điểm gần nhất ( bất kỳ lớp nào ) trong tập dữ liệu đó tới siêu phẳng phân cách.

γ=mini=1...mγ(i)\gamma^* = \min_{i=1...m}{\gamma^{(i)}}

IV. Bài toán tối ưu Margin:

Figure 2: Biễu diên hình học của SVM. (Nguồn: Wikipedia)

Ta cần cực đại hóa margin của bộ dữ liệu, thỏa mãn điều kiện khoảng cách từ mọi điểm trong bộ dữ liệu tới siêu phẳng phân cách tối thiểu phải bằng margin này. Nói cách khác, bài toán tối ưu của chúng ta có dạng sau đây.

maxw,bγ\max_{w,b} \gamma^*

s.t:γ(i)γ,i=1...ms.t: \gamma^{(i)} \ge \gamma^{*}, i=1...m

Tuy nhiên, chúng ta sẽ không giải trực tiếp bài toán này vì nó rất phức tạp, thay vào đó chúng ta sẽ biến nó về dạng đơn giản hơn để có thể giải được. Trước hết, có một điều quan trọng nữa tôi muốn các bạn hiểu. Cùng xem xét lại công thức khoảng cách từ một điểm dữ liệu tới đường phân cách.

γ(i)=y(i)(wTx(i)+b)w2\gamma^{(i)} = \frac{ y^{(i)} (\bold{w}^T\bold{x}^{(i)} + b)}{\Vert\bold{w}\Vert_2}

Nếu tôi thay w=kw\bold{w} = k\bold{w}b=kbb = kb ( với kk là một số thực dương bất kỳ ) thì γ(i)\gamma^{(i)} không thay đổi. Ngoải ra việc nhân w\bold{w}bb với một số nguyên dương kk bất kỳ không làm ảnh hưởng tới dự đoán của linear classifier ta xem xét ở trên i.e g(wTx+b)=g(kwTx+kb)g(\bold{w}^Tx + b) = g(k\bold{w}^Tx + kb). Sử dụng tính chất bất biến trên ta có thể giả sử các điểm gần nhất với siêu phẳng phân cách thỏa mãn.

y(wTx+b)=1 y^{*} (\bold{w}^T\bold{x}^{*} + b) = 1

Như vậy, với mọi điểm trong bộ dữ liệu, ta sẽ cần điều kiện sau được đảm bảo:

y(i)(wTx(i)+b)1,i=1....m y^{(i)} (\bold{w}^T\bold{x}^{(i)} + b) \ge 1, i=1....m

Bài toán tối ưu của chúng ta có thể được viết lại dưới dạng sau:

maxw,b1w2\max_{w,b}{\frac{1}{\Vert\bold{w}\Vert_2}}

s.t:y(i)(wTx(i)+b)1,i=1....ms.t: y^{(i)} (\bold{w}^T\bold{x}^{(i)} + b) \ge 1, i=1....m

Hàm norm ở mẫu trông không hề đẹp tí nào phải không, vì vậy thay vì tối đa biểu thức kia ta sẽ chuyển về tối thiểu bình phương biểu thức nghịch đảo của nó, ngoài ra ta sẽ nhân thêm hệ số để nó đẹp hơn khi đạo hàm.

minw,b12w22\min_{w,b}{\frac{1}{2} } {\Vert\bold{w}\Vert_2^2}

s.t:y(i)(wTx(i)+b)1,i=1....ms.t: y^{(i)} (\bold{w}^T\bold{x}^{(i)} + b) \ge 1, i=1....m

Bài toán tối ưu trên có hàm mục tiêu là một hàm convex ( tôi sẽ không giải thích ở đây, bạn nào muốn tìm hiểu thêm hãy vào phần trích dẫn bên dưới ) với điều kiện ràng buộc là tuyến tính. Ta có thể giải nó bằng quy hoạch toàn phương ( Quadratic Programming), tuy nhiên trong bài viết này, thay vì giải trực tiếp bài toán tối ưu trên, chúng ta sẽ đi giải bài toán đối ngẫu của nó, cũng vì bài toán đối ngẫu có những tính chất đẹp, mà trong đó có thể giúp chúng ta áp dụng được SVM hiệu quả với những bộ dữ liệu là non-linearly separable (không thể phân định tuyến tính).

Xem thêm:

V. Lagrange duality:

Tạm thời bỏ qua SVM, tôi sẽ nói một chút về bài toán tối ưu có ràng buộc tổng quát và cách giải các bài toán dạng này sử dụng phương pháp nhân tử Lagrange. Phần này sẽ không đi sâu vào lý thuyết mà chúng ta sẽ chỉ cố gắng hiểu các concept quan trọng và các kết quả đã được chứng minh trước đó. Xem xét một bài toán tối ưu có dạng sau đây.

minwf(w)\min_{w} f(w)

s.t:gi(w)0,i=1..ks.t: g_i(w) \le 0, i=1..k

hi(w)=0,i=1,..lh_i(w) = 0, i=1,..l

Trong đó ww được gọi là biến tối ưu ( điều cực kỳ quan trọng khi làm việc với các bài toán tối ưu là bạn biết chúng ta cần tối ưu hàm mục tiêu theo biến nào), f(w)f(w) được gọi là hàm mục tiêu, gi(w),i=1...kg_i(w),i=1...k được gọi là tập các ràng buộc bất phương trình và hi(w),i=1...lh_i(w),i=1...l là các ràng buộc phương trình. Ta định nghĩa Lagrangian của bài toán trên có dạng như sau.

L(w,α,β)=f(w)+i=1kαigi(w)+i=1lβihi(w)\mathcal{L} (w,\alpha,\beta) = f(w) + \sum_{i=1}^{k}{\alpha_ig_i(w)} + \sum_{i=1}^{l}{\beta_ih_i(w)}

αi0,i=1...k\alpha_i \ge 0, i=1...k

Trong đó αi\alpha_iβi\beta_i được gọi là các nhân tử Lagrange. Ta xem xét định lượng sau:

θp(w)=supα,β:α0L(w,α,β)\theta_p{(w)} = \sup_{\alpha,\beta: \alpha \ge 0} \mathcal{L} (w,\alpha,\beta)

=supα,β:α0f(w)+i=1kαigi(w)+i=1lβihi(w) = \sup_{\alpha,\beta: \alpha \ge 0}{ f(w) + \sum_{i=1}^{k}{\alpha_ig_i(w)} + \sum_{i=1}^{l}{\beta_ih_i(w)} }

Với sup\sup tương ứng với hàm Supremum. Ta thấy một quan sát quan trọng sau, nếu ww có giá trị vi phạm các ràng buộc của bài toán ( gi(w)>0g_i(w) > 0 hoặc hi(w)0h_i(w) \ne 0 ) thì giá trị supα,β:α0L(w,α,β)=\sup_{\alpha,\beta: \alpha \ge 0} \mathcal{L} (w,\alpha,\beta) = \infty, ngược lại nếu giá trị ww thỏa mãn các ràng buộc của bài toán thì supα,β:α0L(w,α,β)=f(w)\sup_{\alpha,\beta: \alpha \ge 0} \mathcal{L} (w,\alpha,\beta) = f(w).

Có hơi khó hiểu phải không, để tôi giải thích thêm một chút nhé, giả sử w=w0w =w_0 là giá trị thỏa mãn càng ràng buộc ( gi(w0)0,i=1...kg_i(w_0) \le 0, i=1...khi(w0)=0,i=1..l)h_i(w_0) = 0,i=1..l), thì với mọi giá trị αi0,βi\alpha_i \ge 0, \beta_i bất kỳ ta luôn có:

f(w0)+i=1kαigi(w0)+i=1lβihi(w0)f(w0)f(w_0) + \sum_{i=1}^{k}{\alpha_ig_i(w_0)} + \sum_{i=1}^{l}{\beta_ih_i(w_0)} \le f{(w_0)}

Lấy sup\sup của biểu thức trên ta sẽ thu được giá trị f(w0)f(w_0). Ngược lại nếu giá trị w=w0w = w_0 vi phạm các ràng buộc, thì tồn tại giá trị αi0,βi\alpha_i \ge 0, \beta_i sao cho.

f(w0)+i=1kαigi(w0)+i=1lβihi(w0)>f(w0)f(w_0) + \sum_{i=1}^{k}{\alpha_ig_i(w_0)} + \sum_{i=1}^{l}{\beta_ih_i(w_0)} > f(w_0)

Lấy sup\sup của biểu thức trên ta sẽ thu được giá trị \infty. Tiếp theo ta xem xét định lượng sau đây.

infwθp(w)=infwsupα,β:α0L(w,α,β)\inf_{w} \theta_p{(w)} = \inf_{w} \sup_{\alpha,\beta: \alpha \ge 0} \mathcal{L} (w,\alpha,\beta)

Với inf\inf tương ứng với hàm Infimum. Biểu thức trên nói cho ta biết rằng, ta cần tìm giá trị cận dưới của hàm supα,β:α0L(w,α,β)\sup_{\alpha,\beta: \alpha \ge 0} \mathcal{L} (w,\alpha,\beta), tức là tại đó giá trị w mà thỏa mãn các ràng buộc của bài toán ban đầu và giá trị của L(w,α,β)\mathcal{L} (w,\alpha,\beta) là nhỏ nhất tương ứng với giá trị của f(w)f(w) là nhỏ nhất. Thêm nữa nếu lầy argument của hàm này sẽ cho ta nghiệm ww của bài toán ban đầu.

Ta định nghĩa bài toán đối ngẫu của bài toán trên như sau. Giả sử:

θD(α,β)=infwL(w,α,β)\theta_{D}(\alpha,\beta) = \inf_{w} \mathcal{L} {(w,\alpha,\beta)}

Khác với ở trên thay vì lấy sup\sup theo 2 biến α,β\alpha,\beta thì ta lấy inf\inf theo biến ww. Biểu thúc này nói cho ta biêt rằng, ta cần chọn giá trị w sao cho tại đó giá trị của L(w,α,β)\mathcal{L} {(w,\alpha,\beta)} là nhỏ nhất. Sau đó ta tiếp tục lấy sup\sup theo 2 biến α,β\alpha,\beta của hàm trên.

supα,β:α0θD=supα,β:α0infwL(w,α,β)\sup_{\alpha,\beta: \alpha \ge 0} {\theta_{D} = \sup_{\alpha,\beta:\alpha \ge 0} \inf_{w} \mathcal{L} {(w,\alpha,\beta)}}

Từ đây ta suy ra được rằng, ta cần chọn giá trị α,β:α0\alpha, \beta: \alpha \ge 0 sao cho infwL(w,α,β)\inf_{w} \mathcal{L} {(w,\alpha,\beta)} là lớn nhất, nói cách khác chính là giá trị α,β\alpha, \beta sao cho L(w,α,β)=f(w)\mathcal{L} {(w,\alpha,\beta)} = f(w) ( giá trị tối đa cùa L(w,α,β)\mathcal{L} {(w,\alpha,\beta)} mà tại đó w thỏa mãn các ràng buộc của đề bài ) hay chính là giá trị tối ưu của bài toán đầu tiên. Nếu lấy argument hàm trên, ta cũng thu được nghiệm α,β\alpha, \beta của bài toán đối ngẫu.

Theo bất đẳng thức Max-Min ta có:

supα,β:α0infwL(w,α,β)infwsupα,β:α0L(w,α,β)\sup_{\alpha,\beta:\alpha \ge 0} \inf _{w} \mathcal{L}(w,\alpha,\beta) \le \inf_{w} \sup_{\alpha,\beta:\alpha \ge 0} \mathcal{L}(w, \alpha,\beta)

Giấu "=""=" xảy ra khi và chỉ khi đối ngẫu mạnh xảy ra ( Strong Duality).

Tiêu chuẩn Slater (Slater conditions): Nếu tồn tại một điểm strictly feasible (và bài toán gốc là lồi), thì strong duality xảy ra.

Nói cách khác, nếu hàm mục tiêu ff và ràng buộc gg là hàm lồi (convex), hh là tuyến tính và tồn tại một tập hợp các giá trị ww nào đó làm cho gg là strictly feasible ( thõa mãn chặt hay gi(w)<0,i=1..mg_i(w) <0,i=1..m) thì đối ngẫu mạnh xảy ra. Khi đói ngẫu mạnh xảy ra, việc giải bài toán đối ngẫu sẽ cho chúng ta kết quả của bài toán ban đầu.

Tiêu chuẩn KKT (Karush-Kuhn-Tucker conditions) : Nếu đối ngẫu mạnh xảy ra, thì nghiệm của hệ bài toán ban dầu và đối ngẫu sẽ thỏa mãn tiêu chuẩn KKT

Với ww^{*} là nghiệm của bài toán tối ưu ban đầu và α,β\alpha^{*}, \beta^{*} là nghiệm của bài toán đối ngẫu thỏa mãn hệ điều kiện sau:

L(w,α,β)wi=0,i=1...n\frac{\partial{ \mathcal{L} {(w^*,\alpha^*,\beta^*)} }}{ \partial{w_i} } = 0, i=1...n

L(w,α,β)βi=0,i=1...l\frac{\partial{ \mathcal{L} {(w^*,\alpha^*,\beta^*)} }}{ \partial{\beta_i} } = 0, i=1...l

αigi(w)=0,i=1..k\alpha_i^*g_i(w^*) = 0, i=1..k

gi(w)0,i=1..kg_i(w^*) \le 0, i=1..k

αi0,i=1..k\alpha_i^* \ge 0, i=1..k

Nếu tồn tại các giá trị w,α,βw^*,\alpha^*,\beta^* thỏa mãn hệ điều kiện KKT, thì đó cũng là nghiệm của bài toán ban đầu và bài toán đối ngẫu. Ngoài ra các bạn hãy chú ý tới điều kiện thứ 3 trong hệ điều kiện KKT, điều kiện này có tên là: KKT dual complementarity condition. Chúng ta sẽ thấy điều kiện này có tác dụng ra sao ở mục dưới.

VI. Giải bài toán tối ưu cho SVM:

Xem xét bài toán tối ưu Margin:

minw,b12w22\min_{w,b}{\frac{1}{2} } {\Vert\bold{w}\Vert_2^2}

s.t:y(i)(wTx(i)+b)1,i=1....ms.t: y^{(i)} (\bold{w}^T\bold{x}^{(i)} + b) \ge 1, i=1....m

Dạng bài toán này chưa đúng với dạng mà chúng ta đã xem xét ở mục V ( phần ràng buộc ). Cho nên Chúng ta sẽ biến đổi nó lại một chút để trông nó quen thuộc hơn.

minw,b12w22\min_{w,b}{\frac{1}{2} } {\Vert\bold{w}\Vert_2^2}

s.t:1y(i)(wTx(i)+b)0,i=1....ms.t: 1 - y^{(i)} (\bold{w}^T\bold{x}^{(i)} + b) \le 0, i=1....m

Chúng ta có thể nhận thấy rằng 1y(i)(wTx(i)+b)01 - y^{(i)} (\bold{w}^T\bold{x}^{(i)} + b) \le 0 chính là ràng buộc gi(w)0g_i(w) \le 0 của bài toán chúng ta đã làm. Một quan sát quan trọng ở đây là với các điểm gần nhất với mặt phân cách ( thỏa mãn y(i)(wTx(i)+b)=1y^{(i)} (\bold{w}^T\bold{x}^{(i)} + b) = 1) thì αi>0\alpha_i > 0 (xem lại điều kiện 3 KKT). Mô ta bẳng hình học, các điểm nằm trên đường nét đứt dưới đây chính là các điểm tại đó αi>0\alpha_i > 0, người ta còn gọi chúng là các support vectors. Các bạn sẽ thấy ngay sau đây các support vector này đóng vai trò quan trọng trong việc tính w\bold{w} của siêu phẳng phân cách.

Figure 2: Các suport vectors của SVM. (Nguồn: Wikipedia)

Xét Largarian của bài toán tối ưu trên:

L(w,b,α)=12w22i=1mαi[1y(i)(wTx(i)+b)]\mathcal{L} (\bold{w}, b, \alpha) = \frac{1}{2} {\Vert\bold{w}\Vert_2^2} - \sum_{i=1}^{m} \alpha_i [1 - y^{(i)} (\bold{w}^T\bold{x}^{(i)} + b) ]

Ở đây chúng ta chỉ có các αi,i=1..m\alpha_i ,i=1..m vì chúng ta chỉ có ràng buộc bất phương trình mà không có ràng buộc phương trình. Chúng ta sẽ tối ưu w,b\bold{w}, b trong khi giữ cố định α\alpha, để tạo ra θD\theta_D. Đạo hàm L(w,α,β)\mathcal{L} (w,\alpha,\beta) theo biến w\bold{w} ta thu được.

wL(w,b,α)=wi=1mαiy(i)x(i)\nabla_{\bold{w}} \mathcal{L} (\bold{w},b,\alpha) = \bold{w} - \sum_{i=1}^{m} \alpha_i y^{(i)} x^{(i)}

Giải phương trình đạo hàm bằng 0, ta thu được.

w=i=1mαiy(i)x(i)\bold{w} = \sum_{i=1}^{m} \alpha_i y^{(i)} x^{(i)}

Như đã thấy ở phần trên, hệ số αi\alpha_i chỉ khác 0 đối với những điểm là support vectors, đối với những điểm không phải support vector, hệ số này sẽ bằng 00 theo điều kiện 3 của tiêu chuẩn KKT. Nói cách khác, vector w\bold{w} của siêu phẳng phân cách chỉ phụ thuộc vào các support vectors có trong tập dữ liệu, và số lượng support vector này thường rất nhỏ so với kích thước của tập dữ liệu.

Xét đạo hàm L(w,α,β)\mathcal{L} (w,\alpha,\beta) theo biến bb ta thu được.

L(w,b,α)b=i=1mαiy(i)=0\frac{\partial {\mathcal{L} (\bold{w},b,\alpha)} }{\partial b} = \sum_{i=1}^{m} \alpha_i y^{(i)} = 0

Thé ngược vào Largarian ban đầu ta thu được:

L(w,b,α)=i=1mαi12i,j=1my(i)y(i)αiαj(x(i))Tx(j)\mathcal{L} (\bold{w}, b, \alpha) = \sum_{i=1}^{m} \alpha_i - \frac{1}{2} \sum_{i,j=1}^{m} y^{(i)} y^{(i)} \alpha_i \alpha_j (x^{(i)})^T x^{(j)}

Cuối cùng bài toán đối ngẫu với bài toán ban đầu sẽ có dạng sau đây:

maxαW(α)=i=1mαi12i,j=1my(i)y(i)αiαj(x(i))Tx(j)\max_{\alpha} W(\alpha) = \sum_{i=1}^{m} \alpha_i - \frac{1}{2} \sum_{i,j=1}^{m} y^{(i)} y^{(i)} \alpha_i \alpha_j (x^{(i)})^T x^{(j)}

s.t:αi0,1=1...ms.t: \alpha_i \ge 0,1=1...m

i=1mαiy(i)=0\sum_{i=1}^{m} \alpha_i y^{(i)} = 0

Ở đây tôi sẽ không tiếp tục giải tiếp nữa, thay vào đó nếu bạn muốn đưa ra dự đoán cho một điểm dữ liệu mới, chúng ta chỉ cần xét dấu biểu thức wTx+b\bold{w}^Tx + b, nếu wTx+b0\bold{w}^Tx + b \ge 0 thì y=1y=1, ngược lại y=1y=-1. Sử dụng các kết quả đã thu được ở trên, ta có:

wTx+b=(i=1mαiy(i)x(i))Tx+b\bold{w}^Tx + b = \bigg ( \sum_{i=1}^{m} \alpha_i y^{(i)} x^{(i)} \bigg) ^T x+ b

=i=1mαiy(i)(x(i))Tx+b= \sum_{i=1}^{m} \alpha_i y^{(i)} (x^{(i)})^Tx + b

Trong đó hãy chú ý inner product của điểm dữ liệu mới với các điểm dữ liệu trong tập dữ liệu, đây là một phần quan trọng nếu sau này bạn muốn hiểu cách áp dụng Kernel Method với SVM, giúp chúng ta làm việc với các dữ liệu không thể phân định tuyến tính được. Ngoải ra nếu bộ dữ liệu là gần phân định tuyến tính, chúng ta sẽ phải thay đổi hàm mục tiêu một chút, các kỹ thuật này tôi sẽ giới thiệu trong các bài sau, cảm ơn các bạn đã theo dõi.

VII. Tham khảo:


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí