Như có thể suy ra từ Hình 1.1 [152], hàm phân biệt phi tuyến 𝑓(𝒙𝑖) có thể được viết thành:
𝑓(𝒙𝑖) = 𝒘𝑇. ∅(𝒙𝑖) + 𝑏, (1.9)
Trong đó, ∅(𝒙𝑖) là ánh xạ ℜ𝑛 ↦ ℜ𝑛′, (𝑛 ≪ 𝑛′), là hàm phi tuyến ánh xạ véc tơ 𝒙𝑖 vào khơng gian đặc trưng (feature space) có kích thước lớn hơn (có thể là vơ hạn) ở đó các lớp được giả thiết là khả tách tuyến tính. Véc tơ w biểu diễn cho siêu phẳng phân tách
trong không gian như vậy. Cần lưu ý rằng, nghĩa của không gian đặc trưng ở đây không liên quan đến khơng gian đặc trưng của tiếng nói thường được gọi là khơng gian vào.
Mặt khác, 𝑟𝑥 là khoảng cách giữa các mẫu được biến đổi ∅(𝒙𝑖) và siêu phẳng phân tách, cịn ‖𝑤‖ là chuẩn Ơ-Clít của 𝒘. Gọi véc tơ hỗ trợ là những véc tơ gần biên quyết định nhất. Các véc tơ này xác định lề và là các mẫu duy nhất cần dùng để tìm ra lời giải. Như vậy, với mỗi mẫu xi ta có 𝑟𝑥 = 𝑓(𝒙𝑖)/||𝑤||. Do đó, mục đích là tìm ra bộ phân lớp tối ưu được thực hiện bằng cách tối tiểu hóa ‖𝑤‖ cho tất cả các mẫu được phân lớp đúng, tức là:
𝑦𝑖(𝒘𝑇. ∅(𝒙𝑖) + 𝑏) ≥ 1 (1.10)
Điều này có thể được thiết lập như bài tốn tối ưu hóa bậc hai: min
𝑤,𝑏 1
2‖𝑤‖2, Yêu cầu là 𝑦𝑖(𝒘𝑇. ∅(𝒙𝑖) + 𝑏) ≥ 1
Để có được bộ phân lớp với khả năng tổng quát hóa tốt hơn và có thể xử lý được trường hợp không khả tách, nên cho phép một số lượng dữ liệu nào đó bị phân loại nhầm. Điều này được thực hiện bằng cách đưa ra điểm phạt tùy thuộc vào hàm được tối thiểu hóa:
min 𝑤,𝑏,𝜉𝑖𝐿𝑃 = 1 2‖𝑤‖2+ 𝐶 ∑ 𝜉𝑖 𝑁 𝑖=1 (1.11)
35
Yêu cầu là 𝑦𝑖(𝒘𝑇. ∅(𝒙𝑖) + 𝑏) ≥ 1 − 𝜉𝑖 , 𝜉𝑖 ≥ 0 , với i=1,…,N,
Ở đây, 𝒙𝑖 ∈ ℜ𝑛 (i=1,…,N) là các véc tơ huấn luyện tương ứng với nhãn
𝑦𝑖 ∈ {±1}, còn các biến 𝜉𝑖 được gọi là các biến nới lỏng (slack) cho phép sai số nhất định
có được lời giải trong trường hợp không khả tách. 𝜉𝑖 thỏa mãn 0 ≤ 𝜉𝑖 ≤ 1 cho các mẫu được phân lớp tốt nhưng trong lề và 𝜉𝑖 > 1 cho các mẫu bị phân lớp sai. Mặt khác, số hạng
C biểu diễn cho sự thỏa hiệp giữa số sai số huấn luyện và khả năng tổng quát hóa.
Bài tốn này thường được giải quyết bằng cách đưa ra ràng buộc cho hàm cần tối thiểu hóa với việc sử dụng nhân tử Lagrange, dẫn tới việc cực đại hóa của đối ngẫu Wolfe:
max 𝛼𝑖 𝐿𝐷 = ∑ 𝛼𝑖 −1 2∑ ∑ 𝑦𝑖𝑦𝑖𝛼𝑖𝛼𝑖∅ 𝑇(𝒙𝑖)∅(𝒙𝑗), 𝑛 𝑗=1 𝑛 𝑖=1 𝑛 𝑖=1 Yêu cầu là ∑ 𝛼𝑖𝑦𝑖 = 0 𝑣à 0 ≤ 𝛼𝑖 ≤ 𝐶 𝑛 𝑖=1 (1.12) Đây là bài tốn lồi bậc 2, vì vậy sự hội tụ tới cực tiểu toàn cục sẽ được đảm bảo bằng cách sử dụng sơ đồ quy hoạch toàn phương (Quadratic Programming - QP). Biên quyết định cuối cùng 𝒘 được cho bởi:
𝒘 = ∑ 𝛼𝑖𝑦𝑖∅(𝒙𝑖)
𝑛
𝑖=1
(1.13) Theo (1.13), chỉ các véc tơ với 𝛼𝑖 ≠ 0 liên đới sẽ góp phần định xác định véc tơ trọng số 𝒘 và do vậy xác định được biên phân tách. Đây là các véc tơ hỗ trợ đã được nói ở trên xác định biên giới phân tách và lề.
Nói chung, khơng biết hàm ∅(𝑥𝑖) một cách tường minh (thực tế, trong phần lớn các trường hợp, không thể đánh giá hàm này chừng nào mà kích thước của không gian đặc trưng cịn là vơ hạn). Tuy nhiên, thực ra khơng cần phải biết hàm này, bởi vì chỉ cần đánh giá các tích điểm ∅𝑇(𝑥𝑖). ∅(𝑥𝑗) bằng cách sử dụng thủ thuật kernel, trong đó tích này có thể được đánh giá bằng cách dùng hàm 𝐾(𝑥𝑖, 𝑥𝑗).
Có nhiều cài đặt SVM tính hàm này cho mỗi cặp của các mẫu vào bằng cách tạo ra ma trận kernel lưu trong bộ nhớ.
Bằng cách sử dụng phương pháp này và thay 𝒘 ở (1.9) bằng biểu thức (1.13), dạng cuối cùng của SVM như sau:
𝑓(𝒙) = ∑ 𝛼𝑖𝑦𝑖𝐾(𝒙𝑖, 𝒙) + 𝑏
𝑛
𝑖=1
. (1.14)
Các hàm kernel được sử dụng rộng rãi nhất là: - Hàm kernel tuyến tính đơn giản (Linear Kernel):
36
𝐾𝐿(𝒙𝑖, 𝒙𝑗) = 𝒙𝑖𝑇. 𝒙𝑗; (1.15)
- Hàm kernel cơ bản hướng Gauss RBF (Radial Basis Function Kernel):
𝐾𝑅𝐵𝐹(𝒙𝑖, 𝒙𝑗) = 𝑒𝑥𝑝 (−𝛾‖𝒙𝑖 − 𝒙𝑗‖2), (1.16)
Ở đây, 𝛾 là tỷ lệ với nghịch đảo của phương sai hàm Gauss và không gian đặc trưng liên kết với nó có kích thước vơ hạn;
- Hàm kernel đa thức (polynomial kernel):
𝐾𝑃(𝒙𝑖, 𝒙𝑗) = (1 + 𝒙𝑖𝑇. 𝒙𝑗)𝑃, (1.17)
Khơng gian đặc trưng liên kết với nó là đa thức cho tới bậc p - Hàm kernel sigmoid (sigmoid kernel):
𝐾𝑆𝐼𝐺(𝒙𝑖, 𝒙𝑗) = 𝑡𝑎𝑛ℎ(𝑎𝒙𝑖𝑇. 𝒙𝑗 + 𝑏)𝑃, (1.18)
Cần lưu ý rằng, có một số điều kiện mà một hàm cần phải thỏa mãn để được sử dụng như kernel. Các điều kiện này thường được gọi là KKT (Karush-Kuhn-Tucker) [53] và có thể được giảm xuống để chỉ kiểm tra ma trận kernel là đối xứng và bán xác định dương.
Lý do khiến SVM trở nên hiệu quả hơn trong nhiều ứng dụng so với các phương pháp khác dựa trên biệt thức tuyến tính là tiêu chí học của nó. Mục tiêu của bất cứ bộ phân lớp nào là tối thiểu hóa được số lượng các phân lớp nhầm lẫn với bất kỳ tập mẫu nào có thể có. Điều này được gọi là tối thiểu hóa rủi ro (Risk Minimization - RM). Tuy nhiên, trong các bài tốn phân lớp điển hình, ta chỉ có số lượng giới hạn các mẫu sẵn có (trong một số trường hợp có thể có một số lượng vơ hạn các mẫu mà ta cũng chỉ có thể làm với một tập con) và vì vậy, tất cả những điều có thể làm được là cố gắng cực tiểu số lượng phân lớp nhầm trong tập huấn luyện. Điều này được gọi tối thiểu hóa rủi ro theo kinh nghiệm (Empirical Risk Minimization - ERM) và phần lớn các bộ phân lớp đều dựa trên ERM cho tiến trình học.
Mặc dầu vậy, việc có bộ phân lớp với ERM tốt (hoặc thậm chí là muốn như vậy) là khơng đủ. Tính phức tạp của các bộ phân lớp thường phải được cố định từ trước và vì vậy, hoặc có thể lựa chọn một cấu trúc quá đơn giản nên không thể mơ hình hóa một cách đúng đắn biên phân lớp của bài toán, hoặc lại quá phức tạp, vượt trên mức tập huấn luyện và không thể tổng quát hóa các mẫu thiếu. Điều này được gọi là rủi ro cấu trúc và một bộ phân lớp tốt phải duy trì được sự thỏa hiệp giữa các ERM và SRM (Structural Risk Minimization - tối thiểu hóa rủi ro cấu trúc).
Với SVM, không cần phải cố định trước độ phức tạp của máy sinh ra, nhưng có một tham số (là 𝐶 trong phương trình (1.11)) sẽ thiết lập thỏa hiệp giữa ERM và SRM.
37
Tiếc là khơng có phương pháp nào để biết trước giá trị thích hợp nhất cho tham số này. Vì vậy, phải chọn ra tham số này bằng quá trình tìm kiếm.
Một số phương pháp huấn luyện SVM:
Do có kích thước rất lớn, bài tốn QP sinh ra từ SVM khơng thể dễ dàng giải được thông qua các kỹ thuật QP chuẩn. Dạng bậc hai trong (1.12) kéo theo ma trận có số phần tử bằng bình phương mẫu huấn luyện. Ma trận này không thể chứa gọn trong 128 MB bộ nhớ nếu có nhiều hơn 4000 mẫu huấn luyện (giả thiết là mỗi phần tử được lưu trữ như là một số chính xác kép 8-byte).
Vapnik [167] mơ tả một phương pháp để giải bài tốn QP SVM mà từ đó có tên gọi là phân khúc dữ liệu ("chunking"). Có một yếu tố mà thuật giải chunking sử dụng là giá trị của dạng bình phương là như nhau nếu bỏ các hàng và cột của ma trận tương ứng với các nhân tử Lagrange bằng khơng. Do vậy, bài tốn QP lớn có thể được chia thành một loạt các bài tốn QP nhỏ hơn, mà mục đích cuối cùng của các bài tốn này là tìm ra tất cả các nhân tử Lagrange khác không và loại bỏ tất cả các nhân tử Lagrange bằng không. Ở mỗi bước, việc phân khúc dữ liệu sẽ giải bài toán QP bao gồm các mẫu sau: mỗi một nhân tử Lagrange khác không từ bước trước và các mẫu xấu nhất M vi phạm các điều kiện KKT [53] với một giá trị nào đó của M (Hình 1.2). Nếu có ít hơn M mẫu vi phạm các điều kiện KKT ở một bước nào đấy, tất cả các mẫu vi phạm sẽ được thêm vào. Mỗi bài toán nhỏ QP được khởi tạo với kết quả của bài tốn nhỏ trước đó. Kích thước của bài tốn QP nhỏ tăng theo thời gian, nhưng cũng có thể giảm. Tại bước cuối cùng, tồn bộ tập các nhân tử khác khơng Lagrange đã được tìm thấy; vì vậy bước cuối cùng giải được bài toán QP lớn.
Việc phân khúc dữ liệu làm giảm rõ rệt kích thước của ma trận từ bình phương số mẫu huấn luyện xuống gần bằng bình phương số nhân tử Lagrange khác không. Tuy nhiên, ngay cả khi kích thước ma trận đã được giảm mà vẫn không chứa gọn được vào bộ nhớ nên chunking còn chưa thể giải được các bài toán huấn luyện cỡ lớn. Một cách để giải bài toán này là dùng cấu trúc dữ liệu phức tạp đối với phương pháp QP. Cấu trúc dữ liệu như thế tránh được việc cần phải lưu trữ tồn bộ Hessian. Các vịng lặp trong của các phương pháp QP như vậy thực hiện các tích điểm giữa các véc tơ và các hàng (hoặc cột) của Hessian, thay vì nhân ma trận véc tơ đầy đủ.
Osuna [127] đã gợi ý một chiến lược mới để giải bài toán QP SVM. Osuna chỉ ra rằng bài tốn QP lớn có thể được chia thành một loạt các bài toán con QP nhỏ hơn. Chỉ cần ít nhất một mẫu vi phạm các điều kiện KKT được thêm vào các mẫu đối với bài toán con trước đó thì mỗi bước sẽ giảm hàm mục tiêu tổng thể và duy trì một điểm khả thi tuân theo tất cả các ràng buộc. Do vậy, dãy các bài tốn con QP ln ln bổ sung ít nhất một phần tử vi phạm sẽ tiệm cận hội tụ.
Osuna và các cộng sự đề nghị giữ một ma trận kích thước khơng đổi cho mỗi bài tốn con QP, kéo theo việc bổ sung và loại bỏ cùng một số mẫu ở mỗi bước (Hình 1.2) [127, 131]. Bằng cách sử dụng ma trận có kích thước khơng đổi sẽ cho phép huấn luyện các tập dữ liệu có kích thước tùy ý. Thuật giải của Osuna [127] gợi ý việc thêm vào một mẫu và bớt một mẫu ở mỗi bước. Trên thực tế, việc thêm hoặc bớt các mẫu sử dụng các kỹ
38
thuật khác nhau. Trong bất cứ trường hợp nào, tất cả các phương pháp này cũng cần phải giải bài tốn QP. Việc có được lời giải đúng đối với bài tốn QP là rất khó khăn nên cần đưa ra nhiều mức độ chính xác khác nhau.