(Support Vector Machine). Thuật toán này được sử dụng rất nhiều trong các bài toán xử lý và nhận dạng ảnh.
4.1. Tổng quan về nhận dạng
Nhận dạng là quá trình phân loại các đối tượng được biểu diễn theo một mô hình nào đó và gán cho chúng vào một lớp (gán cho đối tượng một tên gọi) dựa theo những quy luật và các mẫu chuẩn [5]. Quá trình nhận dạng dựa vào những mẫu học biết trước gọi là nhận dạng có thầy hay học có thầy (supervised learning); trong trường hợp ngược lại gọi là học không có thầy (non supervised learning). Chúng ta sẽ lần lượt giới thiệu các khái niệm này.
4.1.1. Không gian biểu diễn đối tượng và không gian diễn dịch
a. Không gian biểu diễn đối tượng
Các đối tượng khi quan sát hay thu thập được, thường được biểu diễn bởi tập các đặc trưng hay đặc tính. Người ta thường phân các đặc trưng theo các loại như: đặc trưng tô pô, đặc trưng hình học và đặc trưng chức năng. Việc biểu diễn ảnh theo đặc trưng nào là phụ thuộc vào ứng dụng tiếp theo.
Ở đây ta đưa ra một cách hình thức việc biểu diễn các đối tượng. Giả sử đối tượng X (ảnh, chữ viết, dấu vân tay, v...,v) được biểu diễn bởi n thành phần (n đặc trưng): X = {x1, x2,..., xn}; mỗi xi biểu diễn một đặc tính. Không gian biểu diễn đối tượng thường gọi tắt là không gian đối tượng X được định nghĩa:
X = {X1, X2,..., Xm}
trong đó mỗi Xi biểu diễn một đối tượng. Không gian này có thể là vô hạn. Để tiện xem xét chúng ta chỉ xét tập X là hữu hạn.
b. Không gian diễn dịch
Không gian diễn dịch là tập các tên gọi của đối tượng. Kết thúc quá trình nhận dạng ta xác định được tên gọi cho các đối tượng trong tập không gian đối tượng hay nói là đã nhận dạng được đối tượng. Một cách hình thức gọi Ω là tập tên đối tượng:
Ω= {w1, w2,...,wk} với wi, i = 1, 2,..., k là tên các đối tượng
Quá trình nhận dạng đối tượng f là một ánh xạ f: X ---> Ω với f là tập các quy luật để xác định một phần tử trong X ứng với một phần tử trong Ω. Nếu tập các quy luật và tập tên các đối tượng là biết trước như trong nhận dạng chữ viết (có 26 lớp từ A đến Z), người ta gọi là nhận
dạng có thầy. Trường hợp thứ hai là nhận dạng không có thầy. Đương nhiên trong trường hợp này việc nhận dạng có khó khăn hơn.
4.1.2. Mô hình và bản chất của quá trình nhận dạng
4.1.2.1. Mô hình
Việc chọn lựa một quá trình nhận dạng có liên quan mật thiết đến kiểu mô tả mà người ta sử dụng để đặc tả đối tượng. Trong nhận dạng, người ta phân chia làm 2 họ lớn:
- Họ mô tả theo tham số - Họ mô tả theo cấu trúc.
Cách mô tả được lựa chọn sẽ xác định mô hình của đối tượng. Như vậy, chúng ta sẽ có 2 loại mô hình: mô hình theo tham số và mô hình cấu trúc.
• Mô hình tham số sử dụng một véctơ để đặc tả đối tượng. Mỗi phần tử của véctơ mô tả một đặc tính của đối tượng. Thí dụ như trong các đặc trưng chức năng, người ta sử dụng các hàm cơ sở trực giao để biểu diễn. Và như vậy ảnh sẽ được biểu diễn bởi một chuỗi các hàm trực giao. Giả sử C là đường bao của ảnh và C(i, j) là điểm thứ i trên đường bao, i = 1, 2,..., N (đường bao gồm N điểm). Giả sử tiếp : x0 = 1 1 N i N = ∑ xi y0 = 1 1 N i N = ∑ yi
là toạ độ tâm điểm. Như vậy, moment trung tâm bậc p, q của đường bao là: µpq = 1 1 N i N = ∑ (xi-x0)p(yi-y0)q
Véctơ tham số trong trường hợp này chính là các moment µij với i=1, 2,...,p và j=1, 2,...,q. Còn trong số các đặc trưng hình học, người ta hay sử dụng chu tuyến , đường bao, diện tích và tỉ lệ T = 4πS/p2, với S là diện tích, p là chu tuyến.
Việc lựa chọn phương pháp biểu diễn sẽ làm đơn giản cách xây dựng. Tuy nhiên, việc lựa chọn đặc trưng nào là hoàn toàn phụ thuộc vào ứng dụng. Thí dụ , trong nhận dạng chữ (sẽ trình bày sau), các tham số là các dấu hiệu:
- số điểm chạc ba, chạc tư, - số điểm chu trình,
- số điểm kết thúc, chẳng hạn với chữ t có 4 điểm kết thúc, 1 điểm chạc tư,...
• Mô hình cấu trúc: Cách tiếp cận của mô hình này dựa vào việc mô tả đối tượng nhờ một số khái niệm biểu thị các đối tượng cơ sở trong ngôn ngữ tự nhiên. Để mô tả đối tượng, người ta dùng một số dạng nguyên thuỷ như đoạn thẳng, cung, v,...,v. Chẳng hạn một hình chữ nhật được định nghĩa gồm 4 đoạn thẳng vuông góc với nhau từng đôi một. Trong mô hình này người ta sử dụng một bộ kí hiệu kết thúc Vt, một bộ kí hiệu không kết thúc gọi là Vn. Ngoài ra có dùng một tập các luật sản xuất để mô tả cách xây dựng các đối tượng phù hợp dựa trên các đối tượng đơn giản hơn hoặc đối tượng nguyên thuỷ (tập Vt). Trong cách tiếp cận này, ta chấp nhận một khẳng đinh là: cấu trúc một dạng là kết quả của việc áp dụng luật sản xuất theo theo những nguyên tắc xác định bắt đầu từ một dạng gốc ban đầu. Một cách hình thức, ta có thể coi mô hình này tương đương một văn phạm G = (Vt, Vn, P, S) với:
- Vt là bộ ký hiệu kết thúc,
- Vn là bộ ký hiệu không kết thúc, - P là luật sản xuất,
- S là dạng (ký hiệu bắt đầu).
4.1.2.2. Bản chất của quá trình nhận dạng
Quá trình nhận dạng gồm 3 giai đoạn chính:
• Lựa chọn mô hình biểu diễn đối tượng.
• Lựa chọn luật ra quyết định (phương pháp nhận dạng) và suy diễn quá
trình học.
• Học nhận dạng.
Khi mô hình biểu diễn đối tượng đã được xác định, có thể là định lượng (mô hình tham số) hay định tính (mô hình cấu trúc), quá trình nhận dạng chuyển sang giai đoạn học. Học là giai đoạn rất quan trọng. Thao tác học nhằm cải thiện, điều chỉnh việc phân hoạch tập đối tượng thành các lớp.
Việc nhận dạng chính là tìm ra quy luật và các thuật toán để có thể gán đối tượng vào một lớp hay nói một cách khác gán cho đối tượng một tên.
Học có thầy (supervised learning)
Kỹ thuật phân loại nhờ kiến thức biết trước gọi là học có thầy. Đặc điểm cơ bản của kỹ thuật này là người ta có một thư viện các mẫu chuẩn. Mẫu cần nhận dạng sẽ được đem sánh với mẫu chuẩn để xem nó thuộc loại nào. Thí dụ như trong một ảnh viễn thám, người ta muốn phân biệt một cánh đồng lúa, một cánh rừng hay một vùng đất hoang mà
đã có các miêu tả về các đối tượng đó. Vấn đề chủ yếu là thiết kế một hệ thống để có thể đối sánh đối tượng trong ảnh với mẫu chuẩn và quyết định gán cho chúng vào một lớp. Việc đối sánh nhờ vào các thủ tục ra quyết định dựa trên một công cụ gọi là hàm phân lớp hay hàm ra quyết định. Hàm này sẽ được đề cập trong phần sau.
Học không có thầy(unsupervised learning)
Kỹ thuật học này phải tự định ra các lớp khác nhau và xác định các tham số đặc trưng cho từng lớp. Học không có thầy đương nhiên là khó khăn hơn. Một mặt, do số lớp không được biết trước, mặt khác những đặc trưng của các lớp cũng không biết trước. Kỹ thuật này nhằm tiến hành mọi cách gộp nhóm có thể và chọn lựa cách tốt nhất. Bắt đầu từ tập dữ liệu, nhiều thủ tục xử lý khác nhau nhằm phân lớp và nâng cấp dần để đạt được một phương án phân loại.
Nhìn chung, dù là mô hình nào và kỹ thuật nhận dạng ra sao, một hệ thống nhận dạng có thể tóm tắt theo sơ đồ sau:
Trích chọn đặc tính Phân lớp trả lời Đánh biểu diễn đối tượng ra quyết định giá
Quá trình tiền xử lý Khối nhận dạng
Hình 4.1: Sơ đồ tổng quát một hệ nhận dạng
4.2. Phương pháp nhận dạng Support Vector Machine (SVM)
4.2.1. SVM trong trường hợp tập mẫu phân hoạch tuyến tính được
Đây là trường hợp đơn giản nhất. Trong trường hợp này, tập mẫu là một tập có thể phân chia tuyến tính bằng một siêu phẳng. Và SVM đi tìm siêu phẳng này.
4.2.1.1. Giai đoạn huấn luyện SVM
Giả sử tập mẫu có được gồm l phần tử là:
Trong đó xi Rn còn yi { - 1, 1} là phân lớp của xi
Cần xác định được một siêu phẳng mà có thể tách biệt được hai lớp trên. Có thể có nhiều siêu phẳng như vậy và vấn đề là cần tìm ra siêu phẳng nào làm cho khoảng cách Euclid giữa hai lớp trên là lớn nhất (Hình 4.2). Lúc đó các vector có khoảng cách gần siêu phẳng nhất được gọi là support vector.[2]
Hình 4.2: Siêu phẳng phân chia hai tập mẫu
Giả sử phương trình siêu phẳng cần tìm là w.x + b = 0 trong đó w là vector pháp tuyến của siêu phẳng, w Rn. Ta có hai bất phương trình sau[2]:
w.xi + b ≤ - 1 với yi = - 1
w.xi + b ≥ +1 với yi = +1 Kết hợp hai bất phương trình trên:
yi (w.xi + b)–1 ≥ 0
Khi đó những support vector xithỏa mãn phương trình w.xi + b = - 1 nằm trên siêu phẳng H1, phương trình w.xi + b = 1 nằm trên siêu phẳng H2.
Khoảng cách có dấu d1 từ gốc tọa độ đến H1 là: d1 = (1 - b)/ ║w║ Khoảng cách có dấu d2 từ gốc tọa độ đến H2 là: d2 = ( - 1 - b)/ ║w║ Suy ra khoảng cách phân hoạch d giữa H1 và H2 là: d = | d1 – d2 | = 2/║w║
Do đó để có d lớn nhất thì ║w║ phải nhỏ nhất hay nói cách khác phải đi tìm cực tiểu của
║w║ (được biến đổi một chút để sau này dễ tìm w).
Tại sao lại phải cần tìm siêu phẳng ứng với khoảng cách phân hoạch lớn nhất. Đơn giản để khi có thêm mẫu mới thì khả năng phân tách hai lớp là lớn nhất.
Bài toán: Tìm cực tiểu của ║w║ theo w và b
Với kiều kiện yi (w.xi + b) – 1 ≥ 0 trong đó i = 1, 2, …, l
Đây là loại bài toán tối ưu có ràng buộc, trong đó hàm mục tiêu là một hàm lồi và miền ràng buộc cũng là một tập lồi.
Do có tính lồi nên để giải bài toán trên ta có thể chuyển qua giải bài toán đối ngẫu tương ứng. Bài toán đối ngẫu sẽ là:
Tìm cực đại của : θ(u) với u Є Rl, u ≥ 0 Trong đó
Để giải bài toán đối ngẫu trước tiên ta phải tìm cực tiểu của
Vì L là hàm hai biến w, b bậc hai không ràng buộc nên theo điều kiện Fermat, cực tiểu của L xảy ra tại w và b sao cho:
Lúc đó giá trị của L là:
(CT.4 - 2) (CT.4 - 3)
Như vậy bài toán đối ngẫu được viết lại thành:
Giải bài toán này ta tìm được u và từ đó tính được w theo công thức (CT.4-2).
Để tính b, vận dụng điều kiện Karush – Kuhn – Tucker (KKT) được phát biểu bởi Fletcher năm 1987:
Do đó đối vói một I thì có hai trường hợp:
• ui = 0: trong trường hợp này yi(w.xi + b) – 1 > 0 suy ra xi không nằm trên siêu phẳng H1 hay H2. Vì ui = 0 nên xi không tham gia vào việc cấu trúc w theo công thức (CT.4 - 2). Những xinày là không cần thiết và có thể được bỏ đi mà không ảnh hưởng đến w.
• ui > 0: lúc này yi(w.xi + b) – 1 = 0 suy ra xi nằm trên siêu phẳng H1 hay H2. xi
được gọi là support vector và tham gia vào việc tính w. Thường thì số lượng support vector nhỏ hơn nhiều so với số lượng mẫu.
Do đó để tính b chỉ cần chọn một i mà có ui > 0, lúc đó:
Vậy ta đã tính được w và b nên xác định được siêu phẳng phân hoạch.
4.2.1.2. Giai đoạn nhận dạng
Bây giờ giả sử có một mẫu dữ liệu cần nhận dạng x* nào đó, thì phân lớp y* của x* ( - 1 hay 1) được xác định thông qua công thức [2]:
(CT.4 - 4)
4.2.2. SVM phi tuyến
Trong trường hợp tổng quát, thực tế mặt phân hoạch có thể là một mặt phi tuyến bất kỳ (Hình 4.3). Giả sử các mẫu xi thuộc không gian Rn, không gian này được gọi là không gian giả thiết (hypothesis space). Để tìm mặt phi tuyến trong không gian này, có thể áp dụng một thủ thuật là ánh xạ các vector mẫu xi từ Rn vào một không gian Rd có số chiều lớn hơn (d > n, d có thể bằng ∞). Rd được gọi là không gian đặc trưng (feature space). Sau đó áp dụng SVM tuyến tính để tìm ra một siêu phẳng phân hoạch trong không gian đặc trưng Rd. Siêu phẳng này sẽ ứng với mặt phi tuyến trong không gian Rn.
Hình 4.3: Một mặt phân chia phi tuyến có thể trở thành một siêu phẳng trong không gian lớn hơn
Ánh xạ từ không gian Rnvào không gian Rd: Gọi ánh xạ được áp dụng là , như vậy: : Rn → Rd
x →
Ví dụ: x = (x1, x2) ∈ R2. Định nghĩa hàm ánh xạ : R2 →R3như sau:
Với ánh xạ trên thì mặt hình vuông [-1, 1] x [-1, 1] trong không gian R2 sẽ trở thành một mặt cong trong không gian R3 như trong hình 4.4. Bây giờ dùng một mặt phẳng trong không gian
R3 này thì có thể chia mặt cong trên thành hai phần (mà trong không gian R2 thì phải dùng một đường cong mới được kết quả phân chia tương ứng).
Hình 4.4: Mặt phẳng [-1, 1] x [-1, 1] trong R2 thành mặt cong trong R3
Áp dụng siêu phẳng phân hoạch mềm (soft- margin hyperplane) trong không gian Rd cho các mẫu (xi) thì siêu phẳng này sẽ là:
Từ đó cũng có hàm phân hoạch trong không gian Rn là hàm hợp fo . Đây là hàm phi tuyến.
Cách tiếp cận này gặp phải vấn đề là hàm (x) có thể có số chiều rất lớn (nếu không gian
Rd có d lớn). Và do đó tiêu tốn thời gian nhiều trong các phép tính. Tuy nhiên, có thể nhận xét rằng trong các phép tính (x) chỉ xuất hiện dưới dạng tích vô hướng tức là dạng (x) (y) mà không xuất hiện đơn lẻ. Đây là một nhận xét quan trọng trong việc tìm ra quy tắc sau[2]:
Thay vì sử dụng dạng tường minh của (x) thì chỉ cần sử dụng hàm biểu diễn giá trị vô hướng (x) (y).
Đặt K(x, y) = (x) (y), được gọi là hàm hạt nhân (kernel function).
Như vậy là chỉ cần biết dạng của hàm hạt nhân K(x, y) mà không cần biết cụ thể ánh xạ
(x). Lúc đó hàm nhận dạng trở thành:
(CT.4 - 11)
Tuy nhiên không thể chọn tùy ý hàm K(x, y) mà phải chọn K(x, y) sao cho tồn tại một hàm mà K(x, y) = (x) (y).
Tóm lại phương pháp SVM phi tuyến là tìm một hàm kernel K(x, y), sau đó giải bài toán soft-margin hyperplane với việc thay x1x2 = K(x, y) để tìm ra u và b. Cuối cùng xây dựng hàm nhận dạng đối với một mẫu thử x* nào đó:
Còn vấn đề tìm hàm kernel K(x, y) như thế nào là vấn đề phụ thuộc vào bài toán nhận dạng. Đối với bài toán nhận dạng đơn giản trong đó có sự phân bố các mẫu của hai lớp { - 1, 1} không quá phức tạp thì có thể tìm hàm K(x, y) đơn giản sao cho số chiều của là không quá lớn.
4.2.3. Một số ví dụ về hàm kernel
Tiêu chuẩn đầu tiên để chọn một hàm kernel K là phải tồn tại để K(x, y) = (x) (y). Một số đặc tính của hàm kernel như sau:
Nếu K1(x, y), K2(x, y) là các hàm kernel thì K3(x, y) cũng là hàm kernel với:
Từ các công thức trên có thể suy ra một số hàm kernel như sau: a. Hàm đa thức
Chiều của không gian đặc trưng ứng với kernel này là d =
Kernel này có thể chuyển tất cả các mặt cong bậc p trong không gian Rn thành siêu phẳng trong không gian đặc trưng.
Chiều của không gian đặc trưng ứng với kernel này là ∞. Do đó nó có thể chuyển một mặt cong bất kỳ trong không gian Rn thành siêu phẳng trong không gian đặc trưng.
Hình 4.5: RBF Gaussian Kernel có thể chuyển một mặt bất kỳ thành một siêu phẳng
Ngoài ra hàm kernel này có đặc điểm là x và y không liên hệ với nhau qua tích vô hướng mà là theo khoảng cách Euclid ║x-y║2.
4.2.4. SVM cho vấn đề nhận dạng đa lớp
Trong phần trên đã đề cập đến vấn đề sử dụng phương pháp SVM để nhận dạng hai lớp,