Phân nhiều lớp

Một phần của tài liệu kỹ thuật svm trong nhận dạng phiếu điểm (Trang 38 - 64)

Hình 2.2. Phân nhiều lớp với SVM

Bây giờ xét đến trƣờng hợp phân nhiều lớp K > 2. Chúng ta có thể xây dựng việc phân K-lớp dựa trên việc kết hợp một số đƣờng phân 2 lớp. Một số chiến lƣợc thƣờng để áp dụng cho bài toán SVM đa lớp:

2.1.2.1. Chiến lược một chống một (OVO: One - versus - One) [3]

Chiến lƣợc này đƣợc đề xuất bởi Friedman, ý tƣởng của chiến lƣợc này khá đơn giản: với mỗi cặp lớp, xây dựng một máy phân lớp nhị phân, mỗi máyphân lớp đƣợc huấn luyện trên một tập con của tập huấn luyện mà tập con này

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn chỉ chứa các mẫu huấn luyện của 2 lớp. Nhƣ vậy phải xây dựng tất cả ( 1)

2

N N

máy phân lớp, chúng đƣợc kết nối lại với nhau và thông qua phƣơng pháp bỏ phiếu để đánh giá kết quả phân lớp cuối cùng, lớp nào có số phiếu nhiều nhất sẽ đƣợc chọn làm kết quả dự đoán.

Ƣu điểm của chiến lƣợc này là tồn tại nhiều mặt phân cách khác nhau cho mỗi cặp lớp. Do đó, nếu một mẫu thuộc một lớp bị phân lớp sai thì mẫu đó vẫn còn cơ hội đƣợc phân lớp đúng nhờ vào các máy phân lớp còn lại, do đó chiến lƣợc này đạt kết quả phân lớp khá chính xác. Chiến lƣợc này đƣợc sử dụng trong hầu hết các phần mềm mã nguồn mở nhƣ SVMlight, LIBSVM, SVMTorch và HeroSvm. Tuy nhiên, để sử dụng chiến lƣợc này trong bài toán phân N lớp thì cần phải có

( 1)

2

N N

máy phân lớp, nếu N tăng thì số máy phân lớp sẽ tăng lên rất nhanh, điều này sẽ làm cho tốc độ phân lớp giảm đáng kể.

2.1.2.2. Chiến lược một chống phần còn lại (OVR: One - versus - Rest) [3]

Đây là chiến lƣợc đơn giản nhất cho bài toán phân nhiều lớp. Gọi N là số lớp cần nhận dạng thì chỉ cần xây dựng đúng N máy phân lớp nhị phân, một máy cho mỗi lớp. Với chiến lƣợc này, máy phân lớp thứ i sẽ đƣợc huấn luyện trên toàn bộ tập mẫu để phân lớp các thành viên của lớp thứ i với tất cả các thành viên của các lớp còn lại. Vì vậy, khi xây dựng các máy phân lớp, các mẫu huấn luyện buộc phải đánh lại nhãn: các thành viên của lớp thứ i sẽ đƣợc gán nhãn là 1, còn các thành viên của các lớp còn lại sẽ đƣợc gán nhãn là -1.

Ƣu điểm của chiến lƣợc này là số máy phân lớp ít, do đó tốc độ phân lớp nhanh hơn. Tuy nhiên, dù số máy phân lớp ít nhƣng mỗi lần huấn luyện phân lớp thì toàn bộ tập mẫu đều tham gia huấn luyện, do đó thời gian huấn luyện tăng lên đáng kể. Nhƣợc điểm chính của chiến lƣợc này là nếu một mẫu khi bị phân lớp sai thì sẽ không có cơ hội để thực hiện lại, do đó độ chính xác phân lớp của chiến lƣợc này không cao.

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn Ý tƣởng của chiến lƣợc này dựa trên cấu trúc phân cấp, sử dụng cây nhị phân. Nút gốc của cây phân lớp là một máy phân lớp nhị phân chia toàn bộ các lớp thành hai nhóm lớp, sau đó tùy đầu ra của máy phân lớp này mà các nút con tiếp tục đƣợc phân tách cho tới khi xuống đến nút lá. Chiến lƣợc phân cấp có tốc độ phân lớp nhanh nhất so với hai chiến lƣợc đã nêu trên nhƣng nó cũng có một nhƣợc điểm lớn: nếu một mẫu X cho trƣớc bị phân lớp sai ở ngay những nút đầu tiên thì chắc chắn kết quả phân lớp sẽ bị sai cho dù có tiếp tục phân lớp xuống đến tận nút lá. Vì vậy, chiến lƣợc này thƣờng cho độ chính xác không ổn định bằng hai chiến lƣợc ở trên.

2.2. Các thuật toán huấn luyện SVM

Trong số những thuật toán thông dụng đƣợc thiết kế để huấn luyện SVM, có ba thuật toán kinh điển đã đƣợc cung cấp trong hầu hết ứng dụng SVM: thuật toán chặt khúc, thuật toán phân rã và thuật toán SMO [15]. Ý tƣởng chính của các thuật toán này có thể trình bày tóm tắt nhƣ sau:

2.2.1. Thuật toán chặt khúc

Thuật toán này bắt đầu với một tập con bất kỳ (chunk) của tập dữ liệu huấn luyện, sau đó huấn luyện SVM theo một phƣơng án tối ƣu trên chunk dữ liệu vừa chọn. Tiếp đến, thuật toán giữ lại các véc tơ tựa (các mẫu có i 0) từ chunk

sau khi đã loại bỏ các phần tử khác (tƣơng ứng với i 0) và dùng các véc tơ tựa này để kiểm tra các phần tử trong phần còn lại của tập dữ liệu. Phần tử nào vi phạm điều kiện KKT thì đƣợc bổ sung vào tập các véc tơ tựa để tạo ra chunk mới. Công việc này đƣợc lặp đi lặp lại, việc khởi tạo lại cho mỗi bài toán con mới phụ thuộc vào giá trị đầu ra của trạng thái trƣớc đó và tiếp tục tối ƣu bài toán con mới với các tham số tối ƣu đã đƣợc lựa chọn. Thuật toán sẽ dừng lại khi thỏa mãn điều kiện tối ƣu. Chunk của dữ liệu tại thời điểm đang xét thƣờng đƣợc hiểu nhƣ một tập làm

việc (working set). Kích thƣớc của tập làm việc luôn thay đổi, nhƣng cuối cùng nó bằng số lƣợng i 0 (bằng số lƣợng véc tơ tựa). Phƣơng pháp này đƣợc sử dụng với giả thiết rằng ma trận Gram dùng để lƣu tích vô hƣớng của từng cặp các véc tơ tựa phù hợp với kích thƣớc bộ nhớ (có thể tính lại ma trận Gram bất cứ lúc nào khi

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn thấy cần thiết, nhƣng điều này sẽ làm giảm tốc độ huấn luyện). Trong thực nghiệm, có thể xẩy ra trƣờng hợp số lƣợng véc tơ tựa quá lớn, làm cho ma trận Gram vƣợt quá khả năng lƣu trữ của máy tính.

2.2.2. Thuật toán phân rã

Thuật toán này khắc phục nhƣợc điểm của thuật toán chặt khúc bằng cách cố định kích thƣớc của bài toán con (kích thƣớc của ma trận Gram). Vì vậy tại mọi thời điểm, một phần tử mới đƣợc bổ sung vào tập làm việc thì một phần tử khác bị loại ra. Điều này cho phép SVM có khả năng huấn luyện với tập dữ liệu lớn. Tuy nhiên, thực nghiệm cho thấy phƣơng pháp này hội tụ rất chậm. Trong thực nghiệm, có thể chọn mỗi lần vài mẫu để bổ sung vào hoặc loại bỏ ra khỏi bài toán con để tăng tốc độ hội tụ. Thuật toán này đƣợc trình bày tóm tắt nhƣ sau:

Input:

- Tập S gồm l mẫu huấn luyện {(xi,yi)}i=1,..,l

- Kích thước của Working Set B là m. Output:

Tập {αi}i=1,...,l 1. Khởi tạo

- Đặt các αi = 0;

- Chọn Working Set B với kích thước m; 2. Tìm nghiệm tối ưu

Repeat

- Giải bài toán tối ưu cục bộ trên B;

- Cập nhật lại B;

Until <Thỏa mãn điều kiện tối ưu toàn cục>;

2.2.3. Thuật toán SMO [15]

SMO (Sequential Minimal Optimization - thuật toán tối thiểu tuần tự) là một thuật toán đơn giản để giải bài toán quy hoạch toàn phƣơng (QP - Quadratic Programing) một cách nhanh chóng mà không cần lƣu trữ ma trận Gram và cũng

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn không cần phải giải bài toán QP ở mỗi bƣớc. Thuật toán này phân rã bài toán QP tổng quát thành các bài toán con, sử dụng định lý của Osuma để đảm bảo sự hội tụ. Khác với các thuật toán trƣớc, SMO chỉ giải các bài toán tối ƣu với kích thƣớc nhỏ nhất. Tại mỗi bƣớc lặp, SMO chọn hai nhân tử Lagrange để giải, tìm các giá trị tối ƣu cho hai nhân tử này và cập nhật lại các tham số của SVM. Ƣu điểm của thuật toán này là có thể tối ƣu hai nhân tử Lagrange bằng giải pháp phân tích, vì vậy không cần phải giải bài toán QP. Hơn nữa, SMO không đòi hỏi lƣu trữ ma trận Gram, vì vậy các bài toán huấn luyện SVM với số lƣợng mẫu lớn có thể lƣu trữ ở bộ nhớ trong của một một máy tính cá nhân bình thƣờng. Thuật toán SMO thực hiện hai công việc chính: Giải bài toán tối ƣu cho hai nhân tử Lagrange bằng phƣơng pháp phân tích và chọn hai nhân tử để tối ƣu bằng phƣơng pháp lựa chọn heuristic.

2.2.3.1. Tối ưu hai nhân tử Lagrange

Không mất tính tổng quát, giả sử đang tối ƣu hai phần tử a ai, j từ một tập các phƣơng án trƣớc đó: a1old,aold2 ,a3,...,al(để khởi tạo, có thể đặt aold = 0).

Vì 1 1 0 i i i y a = = å ta có:

1 1 2 2 1 1old 2 2old ons

y a y a y a y a C t

é + = + = ù

ê ú

ë û

Cố định các ai khác, hàm mục tiên trở thành hàm hai biến và có thể đƣợc viết lại:

2 2 1 2 1 1 1 1 1 2 2 2 2 2 1 2 1 2 1 2 1 1 1 1 2 2 2 3 1 ons ( 2 2 2 ( ) ons ) T T T D T i i i i L C t y y x x y y x x y y x x y x y x y x C t a a a a a a a a a = = + + - + + æ ö÷ ç ÷ + çç ÷ + + ÷ çèå ø Đặt K11 = x x K1T 1, 22 = x x KT2 2, 12 = x xT1 2 và h = 2K12- K11- K22. Tiếp tục cố định 1

a , hàm mục tiêu sẽ trở thành hàm một biến theo a2:

2

2 2 1 2 2 2

1

( ( ) ) ons

2

old old old

D

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn Trong đó 1 1 ( , ) old old i k k k i i k E y a K x x b y =

= å + - . Vì hàm mục tiêu chứa 1old 2old

E - E nên không cần phải tính b trong mỗi bƣớc lặp.

Lấy đạo hàm cấp một và cấp hai theo a2:

2 2 1 2 2

2 2

2 2

( ( old old) old)

D D L y E E L ha ha a h a ¶ = + - - ¶ ¶ = ¶ Cho đạo hàm cấp một bằng 0, ta có: 2 2 1 2 2 ( old old) old y E E a a h - = +

a2 cũng phải thỏa mãn ràng buộc 0£ a2 £ C nên giá trị mới của a2 phải cắt xén để đảm bảo một đáp án khả thi: 2 Low £ a £ Hight Trong đó: - Nếu y1 ¹ y2 thì 2 1 1 2 ax(0, ) min( , ) old old old old Low m Hight C C a a a a = - = - + - Ngƣợc lại: 1 2 1 2 ax(0, ) min( , ) old old old old Low m C Hight C a a a a = - - = + Và giá trị a1 tính đƣợc từ a2 nhƣ sau: 1 1old y y1 2( 2old 2) a = a + a - a

2.2.3.2. Tối ưu theo phương pháp heuristic

Việc chọn hai nhân tử αi, αj cho bài toán tối ƣu trong thuật toán SMO đƣợc thực hiện nhƣ sau:

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn - Ở vòng lặp ngoài, luân phiên duyệt qua tất cả các mẫu và các véc tơ tựa (các

mẫu có 0 < αi< C) (ƣu tiên duyệt qua các véc tơ tựa, nếu không tìm thấy mới - duyệt toàn bộ mẫu) để chọn ra một mẫu vi phạm điều kiện KKT.

- Với αi đƣợc chọn, vòng lặp trong tìm kiếm một mẫu αj sao cho |Ej - Ei| cực đại. Đầu tiên nó duyệt qua các véc tơ tựa, nếu không tìm đƣợc mới duyệt qua toàn bộ mẫu.

2.2. Nhận dạng phiếu điểm với SVM

2.2.1. Đặc trưng của phiếu điểm

Trƣớc tiên, một vài điều kiện cần phải đƣợc áp đặt lên việc ghi phiếu để quá trình phân đoạn cũng nhƣ nhận dạng diễn ra thuận lợi đó là:

- Viết rõ ràng, không đứt đoạn, không chồng chéo.

- Điểm đƣợc viết đúng vị trí, đúng ô, không đè lên các đƣờng bao quanh ô, không dập xóa lên phiếu.

Đặc trƣng chung của các mẫu phiếu điểm là phần trên cùng gồm tên phiếu điểm, các thông tin mô tả của phiếu điểm (tên lớp, đợt thi, môn thi,…). Phần tiếp theo là điểm của sinh viên đƣợc ghi trong một bảng gồm nhiều hàng, mỗi hàng là thông tin điểm của một sinh viên. Các cột mô tả số báo danh, số điểm hoặc số phách, số điểm.

Mẫu phiếu điểm thi viết: Phiếu điểm thi viết gồm các cột thông tin: Số phách, điểm số, điểm chữ, ghi chú. Giáo viên sau khi chấm bài thi sẽ ghi điểm vào các phiếu này.

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Hình 2.3. Mẫu phiếu điểm thi viết

Mẫu phiếu điểm thƣờng xuyên: Phiếu điểm thƣờng xuyên gồm các cột thông tin: số thứ tự, mã sinh viên, họ tên, ngày sinh, điểm chuyên cần, điểm bài 1, điểm bài 2, điểm bài 3, điểm bài 4, điểm trung bình.

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Hình 2.4. Mẫu phiếu điểm thường xuyên

2.2.2. Nhận dạng phiếu điểm

Sau khi đã có ảnh của phiếu điểm đƣợc quét đúng cách, việc nhận dạng phiếu điểm thực hiện lần lƣợt các bƣớc nhƣ sau:

Tiền xử lý: Ảnh của phiếu điểm sau khi quét thƣờng có nhiễu, một phần nhiệm vụ của bƣớc này sẽ là lọc nhiễu. Sau đó ảnh phải đƣợc biến đổi về ảnh nhị phân để tạo điều kiện cho phân đoạn ở bƣớc tiếp theo.

Phân đoạn và trích chọn đặc trƣng: Tách ảnh đã qua tiền xử lý thành các hàng, mỗi hàng bao gồm các cột. Sau đó từ các cột sẽ tách ra kí tự cần nhận dạng, rồi trích chọn đặc trƣng của nó.

Huấn luyện và nhận dạng: Xây dựng các support vector nhận dạng từ các

phiếu điểm. Trƣớc khi nhận dạng, quá trình huấn luyện đƣợc thực hiện trƣớc dựa trên một tập mẫu có sẵn.

Hậu xử lý: Tổng hợp các kí tự đƣợc nhận dạng riêng lẻ thành dữ liệu để cập nhật vào cơ sở dữ liệu.

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

2.2.2.1. Tiền xử lý

Giai đoạn này góp phần làm tăng độ chính xác phân lớp của hệ thống nhận dạng [1], tuy nhiên nó cũng làm cho tốc độ nhận dạng của hệ thống chậm lại. Vì vậy, tùy thuộc vào chất lƣợng ảnh quét vào của từng phiếu điểm cụ thể để chọn một hoặc một vài chức năng trong khối này. Nếu cần ƣu tiên tốc độ xử lý và chất lƣợng của máy quét tốt thì có thể bỏ qua giai đoạn này. Khối tiền xử lý bao gồm một số chức năng: Nhị phân hóa ảnh, lọc nhiễu, chuẩn hóa kích thƣớc ảnh, làm trơn biên chữ, làm đầy chữ, làm mảnh chữ và xoay văn bản.

Nhị phân hóa ảnh

Nhị phân hóa ảnh là một kỹ thuật chuyển ảnh đa cấp xám sang ảnh nhị phân. Trong bất kỳ bài toán phân tích hoặc nâng cao chất lƣợng ảnh nào, nó cũng cần thiết để xác định các đối tƣợng quan trọng. Nhị phân hóa ảnh phân chia ảnh thành 2 phần: phần nền và phần chữ. Hầu hết các phƣơng pháp nhị phân hóa ảnh hiện nay đều lựa chọn một ngƣỡng thích hợp theo cƣờng độ sáng của ảnh và sau đó chuyển tất cả các giá trị độ sáng lớn hơn ngƣỡng đó thành một giá trị độ sáng (ví dụ “trắng”) và tất cả các giá trị bé hơn ngƣỡng thành một giá trị độ sáng khác (“đen”).

Hình 2.5. Nhị phân hóa ảnh

Lọc nhiễu [2]

Nhiễu là một tập các điểm sáng thừa trên ảnh. Khử nhiễu là một vấn đề thƣờng gặp trong nhận dạng, nhiễu có nhiều loại (nhiễu đốm, nhiễu vệt, nhiễu đứt nét...).

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn Để khử các nhiễu đốm (các nhiễu với kích thƣớc nhỏ), có thể sử dụng các phƣơng pháp lọc (lọc trung bình, lọc trung vị...). Tuy nhiên, với các nhiễu vệt (hoặc các nhiễu có kích thƣớc lớn) thì các phƣơng pháp lọc tỏ ra kém hiệu quả, trong trƣờng hợp này sử dụng phƣơng pháp khử các vùng liên thông nhỏ tỏ ra có hiệu quả hơn.

Chuẩn hóa kích thƣớc ảnh

Hình 2.7.Chuẩn hóa kích thước ảnh các số “4” và “6”.

Việc chuẩn hóa kích thƣớc ảnh dựa trên việc xác định trọng tâm ảnh, sau đó xác định khoảng cách lớn nhất từ tâm ảnh đến các cạnh trên, dƣới, trái, phải của hình chữ nhật bao quanh ảnh. Thông qua khoảng cách lớn nhất đó, có thể xác định đƣợc một tỷ lệ co, giãn của ảnh gốc so với kích thƣớc đã xác định, từ đó hiệu chỉnh kích thƣớc ảnh theo tỷ lệ co giãn này. Nhƣ vậy, thuật toán chuẩn hóa kích thƣớc ảnh luôn luôn đảm bảo đƣợc tính cân bằng khi co giãn ảnh, ảnh sẽ không bị biến dạng hoặc bị lệch.

Làm trơn biên chữ

Đôi khi do chất lƣợng quét ảnh quá xấu, các đƣờng biên của chữ không còn

Một phần của tài liệu kỹ thuật svm trong nhận dạng phiếu điểm (Trang 38 - 64)

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

(64 trang)