Xây dựng mô hình học cho SVM

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Tìm hiểu SVM trong nhận dạng chữ viết tay (Trang 30 - 33)

Như chúng ta đã biết vấn đề giải quyết bài toán SVM dẫn tới tìm điều kiện tối ưu bậc hai với điều kiện biên và một đẳng thức tuyến tính. Mặc dù chúng ta đã hiểu về lý thuyết chung đưa bài toán đến tìm lời giải thỏa mãn điều kiện Karush-Kuhn-Tucker (KTT), nhưng trong thực tế khi áp dụng nó với một số lượng lớn các mẫu và không gian vector nhiều chiều thì chúng ta gặp phải một số vấn đề cả không gian bộ nhớ trong máy tính và thời gian cần thiết để huấn luyện chương trình. Vậy câu hỏi đặt ra ở đây là SVM thực tế được huấn luyện như thế nào ?

Nhắc lại trong các phần trên về công thức Lagrange và các điều kiện đi kèm với nó để giải bài toán là (3) (4) (5):

    n j i j i j i j i i i bb k x x 1 , ) , ( 2 1    (3) Với 0iC, i=1..n (4) 0 1    n i i i y  (5)

Gọi l là số mẫu huấn luyện,  là vector của l biến (mỗi thành phần i tương ứng với mẫu i) lời giải là vector ’ mà công thức (3) đạt giá trị cực đại và thỏa mãn hai điều kiện (4), (5). Ta gọi ma trận Q là ma trận có: (Q)ij = yi.yj.k(xi , xj), chúng ta viết lại các công thức trên như sau :

minimise W( ) = -T1 + 1/2  TQ (6) với  Ty = 0 (7) 0    C (8)

Ta thấy kích thước của ma trận Q là l2 khi số mẫu huấn luyện của ta lớn hơn 10000 thì sẽ không đủ bộ nhớ cho ma trận Q, một số phương pháp đã được đưa ra để giải quyết vấn đề này như tính lại ma trận Q mỗi khi cần đến nó, điều này làm giảm tốc độ học của máy đi rất nhiều nếu Q thường xuyên phải được tính lại.

Một hướng giải quyết có hiệu quả đó là chúng ta chia nhỏ vấn đề ra nhiều bài toán con. Điều kiện tối ưu (6) được chia ra thành các phần “active” và “inactive”, phần active được gọi là các tập con đang học. Ưu điểm của phần này là chúng ta có thể giải quyết các bài toán tuyến tính theo bộ nhớ cần thiết và số support vector. Nhược điểm của nó là thời gian huấn luyện sẽ tăng lên. Ta giải quyết vấn đề này theo các tư tưởng sau:

 Thu hẹp điều kiện tối ưu lại, điều này có nghĩa SVM tìm được có:

 Số support vector (SV) nhỏ hơn nhiều so với mẫu huấn luyện

 Nhiều SV có i nằm tại biên C

 Cải thiện công việc tính toán như caching cập nhật gradient kết hợp điều kiện dừng.

3.5.1. Nguyên lý chung để chia nhỏ bài toán.

Trong phần này em xin giới thiệu ý tưởng Osuna trong việc chia nhỏ bài toán.

Với mỗi i của điều kiện tối ưu (6) ta phân làm hai loại:

 Một bên ta tập hợp B chứa các biến tự do.

 Một bên ta tập hợp N chứa các biến cố định.

Những biến tự do là những biến có thể cập nhật lại giá trị trong lần huấn luyện hiện tại, ngược lại biến cố định thì giữ nguyên giá trị. Tập các biến tự do liên quan đến tập con đang được huấn luyện (kích thước của tập này nhỏ hơn nhiều so với l). Thuật toán này được mô tả như sau:

1. while {điều kiện tối ưu không thỏa mãn}

- Chọn q cho tập huấn luyện B.l-q biến còn lại là biến cố định - Chúng ta đi tìm lời giải cho bài toán con trên tập B

2. Kết thúc và trả lại giá trị 

3.5.2. Chọn tập con để huấn luyện.

Khi chọn tập con để tiến hành huấn luyện chúng t among muốn tìm được một tập các biến sao cho trong lần huấn luyện hiện tại thì các biến này tiến về giá trị cực tiểu của W() nhanh nhất. Chúng ta chọn theo hướng gradient nhanh nhất.

Thuật toán cho phần này:

 Chỉ kết thúc khi cực tiểu tìm thấy.

 Nếu không thì tính toán tiếp để đi tới giá trị đó.

3.5.3. Thu hẹp điều kiện tối ưu.

Trong những bài toán mà số SV nhỏ hơn nhiều so với mẫu huấn luyện nếu chúng ta biết cách tìm ra SV thì chúng ta chỉ huấn luyện trên tập mẫu này là đủ, kết quả chúng ta thu được vẫn không khác so với huấn luyện với tất cả tập mẫu học. Lúc này chúng ta tìm điều kiện cực tiểu của công thức (6) trên một tập mẫu nhỏ nên tốc độ tăng lên rất nhiều.

Tương tự như vậy đối với các không gian không phân biệt thì thường tồn tại nhiều SV có giá trị i = C, ta gọi những điểm này là BSV(Bounded Support Vector). Nếu chúng ta cũng có cách tìm được những điểm nào là BSV thì các giá trị i = C dẫn đến bài toán tối ưu ít biến hơn.

Trong quá trình huấn luyện thường có những mẫu học chúng ta biết sẽ không trở thành SV hoặc nó sẽ là BSV, loại bỏ những biến tương ứng với các mẫu này ta được bài toán tối ưu nhỏ hơn.

Chương 4 – CHƯƠNG TRÌNH THỬ NGHIỆM

Với những lý thuyết căn bản về SVM đã được giới thiệu ở trên trong chương này em sẽ nghiên cứu libsvm-3.1, sau đó sử dụng bộ dữ liệu của libsvm-3.1 để chạy thử nghiệm.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Tìm hiểu SVM trong nhận dạng chữ viết tay (Trang 30 - 33)

Tải bản đầy đủ (PDF)

(50 trang)