- Các hệ thống máy học thường được dùng để tích lũy các dạng tri thức không tường minh trên một lượng dữ liệu lớn và đã được áp dụng rất thành côngcho nhiều bài toán khác nhau như: phân
Trang 1Mục Lục
I Tổng quan và lý do chọn đề tài 2
1 Tổng quan 2
2 Lý do chọn đề tài và mục tiêu của đề tài 3
II Các hệ thống dùng cho phân lớp, máy học SVM và thiết kế của hệ thống 3
d) Mô hình phân lớp phi tuyến 15e) Vai trò hàm nhân (kernel function) 16f) Cách phân lớp “One vs rest” (Phân loại mỗi lớp với mọi lớp còn lại) 18
g) Cách phân lớp “One vs One” (Phân loại theo từng cặp) 18
III Chương trình minh họa 20
IV Tài liệu tham khảo 23
Trang 2I Tổng quan và lý do chọn đề tài.
1 Tổng quan.
- Máy học là một nhóm công cụ không thể thiếu trong quá trình khám phá tri
thức, đặc biệt là trong trường hợp dữ liệu cần khám phá rất lớn và mỗi mẫu dữ liệumang rất nhiều thông tin và các thông tin này lại nằm trên một miền liên tục, khi
đó việc sử dụng cây định dạnh hoặc rút trích luật là vô cùng khó khăn
- Các hệ thống máy học thường được dùng để tích lũy các dạng tri thức
không tường minh trên một lượng dữ liệu lớn và đã được áp dụng rất thành côngcho nhiều bài toán khác nhau như: phân lớp dữ liệu, detect đối tượng chuyển độngtrên ảnh hoặc video động, nhận dạng mặt người hoặc các đối tượng như biển số
xe, chướng ngại vật,
- Các hệ thống máy học ra đời dựa trên nhiều tư tưởng tiếp cận khác nhau
như:
o Mô phỏng theo một phần cấu trúc của não người: Mạng neural nhân tạo
o Dựa trên việc tổng hợp các thông tin/tri thức ít quan trọng theo một cáchhợp lý để tạo ra tri thức quan trọng hơn: Phương pháp boosting
o Dựa trên các nền tảng hình học và lý thuyết tối ưu: Các hệ thống máy họcdùng vector hỗ trợ
o Dựa trên nền tảng toán học xác suất: Các hệ thống dựa trên mô hìnhMarkov như xích Markov và trường ngẫu nhiên Markov
o Ngoài ra còn rất nhiều mô hình khác nhau được đưa ra nhằm mục tiêuchính là trích xuất các tri thức dưới dạng ánh xạ từ dữ liệu đầu vào ra thànhcác quyết định, các lớp, hay cường độ của thuộc tính ngữ nghĩa nào đó
- Dựa trên vai trò của hệ thống máy học trong các phương pháp rút trích tri
thức, tác giả chọn đề tài áp dụng máy học SVM cho bài toán phân lớp các loại hoa,
đề tài này có thể áp dụng cho các vấn đề khác trong thực tế như phân lớp các loạitrái cây hay côn trùng gây hại, Do đặc trưng của bài toán này đó là đầu vào là
Trang 3ảnh của các loại hoa, ảnh được biểu diễn theo dạng ma trận rời rạc với các pixel làcác giá trị màu trong đoạn nguyên [0:255], do đó việc áp dụng các phương phápkhác để phân lớp loại hoa là khá khó khăn, hệ thống máy học sẽ tìm ra ánh xạ giữakhông gian đặc trưng là hình ảnh của các loại hoa với không gian các giá trị củakết quả phân lớp
- Do SVM là một hệ thống máy học mạnh, đã thể hiện được hiệu quả trong
rất nhiều bài toán thực tế, dựa trên một nền tảng lý thuyết tốt và có thể tùy biếnđược nhiều dựa trên các giả thiết về phân bố dữ liệu trong tập học nên đề tài chọn
hệ thống máy học này cho bài toán phân lớp của mình
2 Lý do chọn đề tài và mục tiêu của đề tài.
- Trong khuôn khổ của môn học, đề tài mong muốn tìm hiểu chi tiết và minh
họa về một hệ thống máy học cụ thể là SVM nhằm hiểu rõ hơn về cơ chế vậnhành, các kiến thức nền tảng được áp dụng và miền ứng dụng của hệ thống máyhọc này
- Vì thời gian có hạn nên đề tài không tránh khỏi có một số thiếu sót nhất
định, tuy nhiên hy vọng sau khi tìm hiểu và xây dựng ứng dụng minh họa, tác giả
đề tài có thể hiểu sâu hơn về lý thuyết và có thêm kỹ năng áp dụng hệ thống nàyvào một vấn đề cụ thể
II Các hệ thống dùng cho phân lớp, máy học SVM và thiết kế của
hệ thống.
1 Tổng quan các hệ thống máy học.
a) Phương pháp K-Nearest-Neighbor (KNN)
- K-NN là một phương pháp để phân loại các đối tượng dựa trên tập huấn
luyện trong không gian đặc trưng K-NN là một loại instance-based learning, haylazy learning Một đối tượng được phân lớp dựa vào K láng giềng của nó, K là số
Trang 4nguyên dương được xác định trước khi thực hiện thuật toán Người ta thường dùngkhoảng cách Euclidean để tính khoảng cách giữa các đối tượng.
- Thuật toán K-NN được mô tả như sau:
o B1: Xác định giá trị tham số K (số láng giềng gần nhất)
o B2: Tính khoảng cách giữa đối tượng cần phân lớp với tất cả các đối tượngtrong dữ liệu huấn luyện (thường sử dụng khoảng cách Euclidean) Sắp xếpkhoảng cách theo thứ tự tăng dần và xác định K láng giềng gần nhất với đốitượng cần phân lớp
o B3: Lấy tất cả các lớp của K láng giềng gần nhất đã xác định
o B4: Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho cácđối tượng cần phân lớp.
a) Phương pháp K-Means
- K-Means là thuật toán rất quan trọng và được sử dụng phổ biến trong việc
giải quyết các bài toán phân lớp Tư tưởng chính của thuật toán K-Means là tìmcách phân nhóm các đối tượng đã cho vào K cụm (K là số các cụm được xác địnhtrước, K nguyên dương) sao cho tổng bình phương khoảng cách giữa các đốitượng đến tâm của nhóm là nhỏ nhất
- Thuật toán K-Means thực hiện qua các bước chính sau:
o B1: Chọn ngẫu nhiên K tâm cho K cụm Mỗi cụm được đại diện bằng cáctâm của cụm
o B2: Tính khoảng cách giữa các đối tượng đến K tâm (thường dùng khoảngcách Euclidean)
o B3: Nhóm các đối tượng vào nhóm gần nhất
o B4: Xác định lại tâm mới cho các nhóm
b) Phương pháp mạng neural nhân tạo (ANN)
- Một cách tiếp cận khá phổ biến hiện nay dùng phương pháp mạng Neural
nhân tạo cho bài toán phân lớp mẫu Với cách tiếp cận này một mạng Neural nhân
Trang 5tạo sẽ được huấn luyện với tập mẫu để tìm ra bộ trọng số phục vụ cho quá trìnhphân lớp Với bài toán phân lớp ảnh kích thước ảnh lớn (không gian biểu diễn mẫu
có nhiều chiều) các phương pháp truyền thống K-NN và K-Means sẽ không thíchhợp Quá trình phân lớp ảnh sẽ được chia ra làm 2 giai đoạn: (1) xây dựng khônggian biểu diễn ảnh; (2) áp dụng mạng Neural nhân tạo phân lớp ảnh
o Giai đoạn (1): Xây dựng không gian biểu diễn ảnh Một ảnh ban đầu sẽđược tách thành m ảnh con Mỗi ảnh con sẽ trích chọn ra một vector đặctrưng tương ứng Các vector này đại diện cho ảnh ban đầu Như vậy, ảnhban đầu sẽ được biểu diễn bởi m không gian con tương ứng với m vectorđặc trưng
o Giai đoạn (2): Áp dụng mạng neural nhân tạo vào phân lớp ảnh Trên từngkhông gian con áp dụng một mạng neural nhân tạo phân loại ảnh về mộtlớp tương ứng, sau đó hợp nhất các kết quả phân lớp của từng mạng Neuralriêng lẻ để đưa ra kết luận
c) Máy học sử dụng vector hỗ trợ (SVM)
- Phương pháp Support Vector Machines là phương pháp phân lớp dựa trên
lý thuyết học thống kê ngày càng được sử dụng phổ biến trong nhiều lĩnh vực đặcbiệt là lĩnh vực phân lớp dữ liệu và nhận dạng
- Phương thức cơ bản của SVM là nghiên cứu hàm tuyến tính Tăng cường
khả năng SVM bằng cách chọn một hàm thích hợp là những hàm có khả năng học
dữ liệu phức tạp và phân chia phi tuyến (ví dụ: hàm đa thức (Polynomial), hàm cơ
sở bán kính (RBF), để phát triển thành công cụ phân lớp
- SVM có nhiều đặc tính trong cả lý thuyết và thực thi so với các phương
pháp khác trong lĩnh vực phân lớp hình ảnh Một trong những tính năng trong thựchành là dễ thực hiện, dễ hiểu và thực thi ổn định Điều này rất quan trọng khi giảiquyết các tập dữ liệu rất lớn Ưu điểm chính của SVM so với các phương phápkhác là cách giải quyết vấn đề mang tính tổng quát trong khi các phương phápkhác có thể mang tính cục bộ Việc mở rộng nghiên cứu SVM trên các ứng dụng
Trang 6khác nhau cho thấy tính nhất quán giữa lý thuyết và thực hành tạo nên sức thuyếtphục cho phương pháp SVM.
- Ý tưởng của phương pháp này là cho trước một tập huấn luyện được biểu
diễn trong không gian vector, trong đó mỗi một hình ảnh được xem như một điểmtrong không gian này
Hình ảnh được biểu diễn trong không gian vector.
- Phương pháp này xây dựng một siêu mặt phẳng H quyết định tốt nhất có
thể phân chia các điểm trên không gian này thành hai lớp riêng biệt tương ứng.Chất lượng của siêu mặt phẳng này được quyết định bởi một khoảng cách (đượcgọi là biên) từ điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này Khoảng cáchbiên càng lớn thì càng có sự phân chia tốt các điểm ra thành hai lớp, nghĩa là sẽđạt được kết quả phân lớp tốt Mục tiêu của phương pháp SVM là tìm đượckhoảng cách biên lớn nhất để tạo kết quả phân lớp tốt nhất
Trang 7Một ví dụ về biên tối ưu.
- Với những yêu cầu như trên bài toán đặt ra tìm siêu phẳng tách:
h(x) = wTx + b
với:¿ trong đó: ¿
Trong đó:
w: vector trọng số (weight vector)
b: trọng số ngưỡng (threshold weight)
- SVM là một phương pháp phân lớp phổ biến hiện nay, với khả năng vượt
trội của SVM về tính hiệu quả, độ chính xác và khả năng xử lý các bộ dữ liệu mộtcách linh hoạt Việc sử dụng SVM đã và đang là sự lựa chọn tối ưu nhất trong việcgiải quyết các bài toán phân loại, dự báo trong một số các ngành khoa học Trongphạm vi đề tài này sẽ tìm hiểu và phát triển phương pháp phân lớp ảnh sử dụngSVM
3 Máy học sử dụng vector hỗ trợ (SVM).
- Trong phần này đề tài sẽ trình bày một cách chi tiết hơn về phương pháp
SVM phục vụ cho việc phân lớp
- SVM là phương pháp học có giám sát được sử dụng rộng rãi trong lĩnh vực
phân lớp mẫu và nhận dạng mẫu SVM là một họ các phương pháp dựa trên cơ sở
Trang 8các hàm nhân (kernel methods) để tối thiểu hoá rủi ro ước lượng Phương phápnày được Boser, Guyon, và Vapnik giới thiệu lần đầu tiên vào năm 1995 để giải
quyết vấn đề phân lớp mẫu hai lớp sử dụng nguyên tắc cực tiểu hóa rủi ro cấu
trúc (Structural Risk Minimization) Đây là phương pháp tiếp cận phân loại
hình ảnh rất hiệu quả Phương pháp tiếp cận này dựa trên lý thuyết toán học thống
kê nên có một nền tảng toán học chặt chẽ để đảm bảo rằng kết quả đạt được là tối
ưu SVM là một trong những phương pháp máy học trong đó các khái niệm dựa
trên dữ liệu đã thu thập được trước đó Phương pháp này cho phép tận dụng đượcnguồn dữ liệu rất nhiều và sẵn có
a) Bài toán tối ưu của SVM
- Dữ liệu huấn luyện của SVM là tập các điểm dữ liệu
- D = {(x1,y1), (x2,y2), …, (x1,y1)}, trong đó, xi là vector dữ liệu biểu diễn đốitượng cần phân lớp di (xiRn), yi {+1,-1}, cặp (xi, yi) được hiểu là vector xi đượcgán nhãn là yi
- Một siêu phẳng phân chia dữ liệu được gọi là “tốt nhất”, nếu khoảng cách
từ điểm dữ liệu gần nhất đến siêu phẳng là lớn nhất Phương trình tổng quát củamột siêu phẳng phân chia như vậy được biểu diễn có dạng như sau:
Với T = 2 (dữ liệu hai chiều) → siêu phẳng phân chia là đường thẳng
Với T = 3 (dữ liệu ba chiều) → siêu phẳng phân chia là mặt phẳng
- Tổng quát cho dữ liệu n chiều thì sẽ được phân cách bởi một siêu phẳng.
Trang 9- Siêu phẳng phân chia có vai trò quan trọng trong việc phân lớp, nó quyết
định xem một bộ dữ liệu sẽ thuộc về lớp nào Ta xét trên ví dụ sau:
- Với bộ dữ liệu huấn luyện hai chiều, ta có 2 thuộc tính A1 và A2: X={x1,
x2}, với x1, x2 là giá trị của thuộc tính A1, A2 và W = {w1, w2} Phương trình siêu phẳng có thể viết lại như sau:
Trong đó: w 0 tương đương với hằng số b trong PT tổng quát của siêu phẳng.
Vì vậy mỗi điểm nằm trên siêu phẳng phân cách thỏa mãn:
Trang 10Đường biểu diễn H 1 và H 2 , đường màu đỏ là khoảng cách Euclidean của hai điểm 1 và 2 Đường màu xanh là khoảng cách Euclidean nhỏ nhất.
- Điều này có nghĩa là nếu bất kì bộ nào nằm tại hoặc trên H1 đều thuộc vềlớp +1, và bất kì bộ nào nằm tại hoặc dưới H2 đều thuộc về lớp -1 Kết hợp 2 bấtđẳng thức trên ta có:
y i(w0+w1x1+w2x2)≥1, ∀ i (5)
- Mỗi bộ huấn luyện nằm tại các mặt biên H1 hay H2thỏa mãn phương trìnhtrên được gọi là support vectors Support vectors là những bộ gần với siêu phẳng
phân chia tuyến tính nhất.
- Tuy nhiên trong thực tế có thể tìm được vô số những siêu phẳng phân chia
trên cùng một tập dữ liệu Do đó mục tiêu của phương pháp phân lớp SVM là tìmmột siêu phẳng phân cách giữa hai lớp sao cho khoảng cách lề giữa hai lớp đạt cựcđại, nghĩa là có sai sót phân loại bé nhất trên bộ dữ liệu
- Siêu phẳng có biên độ lớn nhất sẽ được chọn như là siêu phẳng phân chia
tập dữ liệu một cách tốt nhất Tức là, nếu có 2 siêu phẳng có thể phân chia được tất
cả những bộ dữ liệu cho trước với biên độ của nó Siêu phẳng với biên độ lớn hơn
sẽ chính xác hơn trong việc phân loại các bộ dữ liệu trong tương lai so với siêuphẳng có biên độ nhỏ hơn Điều này là lý do tại sao (trong suốt giai đoạn học hayhuấn luyện), SVM tìm những siêu phẳng có biên độ lớn nhất, gọi là MMH(maximum marginal hyperlane).Siêu phẳng có biên độ lớn nhất là siêu phẳng cókhoảng cách từ nó tới hai mặt bên của nó thì bằng nhau (mặt bên song song vớisiêu phẳng) Khoảng cách đó là khoảng cách ngắn nhất từ MMH tới bộ dữ liệuhuấn luyện gần nhất của mỗi lớp Siêu phẳng có biên độ lớn nhất này cho chúng tamột sự phân loại tốt nhất giữa các lớp
- Việc huấn luyện SVM với mục đích trên có thể được sử dụng để phân lớp
dữ liệu mà dữ liệu đó có thể phân chia tuyến tính Chúng ta xem SVM được huấnluyện là SVM tuyến tính
Trang 11- Ngoài ra hướng tiếp cận của SVM tuyến tính có thể được mở rộng để tạo ra
SVM không tuyến tính cho việc phân lớp các dữ liệu không thể phân chia tuyếntính (hay gọi tắt là dữ liệu không tuyến tính) Những SVM như vậy có khả năngtìm những ranh giới quyết định không tuyến tính (những mặt không tuyến tính)trong không gian đầu vào Những SVM như vậy được gọi là SVM phi tuyến
- Để tìm ra các support vectors và MMH, đồng nghĩa với việc tìm được bộ
phân lớp trên bộ dữ liệu đã cho Có ba trường hợp có thể xảy ra đối với từng bộ dữliệu, mỗi trường hợp sẽ đưa ra một bài toán tối ưu Việc cần làm là giải quyết bàitoán tối ưu đó
d) Mô hình phân lớp tuyến tính
- Tập dữ liệu D có thể phân chia tuyến tính được mà không có nhiễu (tất cả
các điểm được gán nhãn +1 thuộc về phía dương của siêu phẳng, tất cả các điểm được gán nhãn –1 thuộc về phía âm của siêu phẳng)
Tập dữ liệu có thể được phân chia tuyến tính.
- SVM biên cứng được áp dụng đối với dữ liệu khả tách tuyến tính và nó cho
kết quả phân lớp một cách chính xác đối với tất cả các dữ liệu dạng này Ta sẽ tìm
Trang 12siêu phẳng tách với wRn là vector trọng số (weight vector), bR là hệ số tự do,sao cho:
f(x i)=sign{w T x +b}={+1 n ế u yi=+1
−1 n ế u yi=−1∀(x i , y i)∈ D (6)Lúc này, để có (1), ta giải bài toán tối ưu:
Vậy bài toán đối ngẫu tương đương là:
Trang 13Và hàm quyết định u=sign(w^ T x+b)
- Định nghĩa: Các vector ứng với αi> 0 là các vectơ hỗ trợ Các vectơ hỗ trợ
có khoảng cách tới siêu phẳng là bé nhất
- Từ ví dụ trên ta có nhận xét:w=∑α j y j x j
- Với xj là các support vectors
- Khi tập mẫu tăng, kích thước bài toán lớn lên theo (mỗi mẫu là một ràng
buộc) Như vậy độ phức tạp tính toán là không thể chấp nhận được Để giải quyếtvấn đề này ta sẽ xây dựng các thuật toán huấn luyện, và vai trò của các supportvector là rất quan trọng
- Điểm thú vị của SVM là mặt phẳng quyết định phụ thuộc vào các vectơ hỗ
trợ có khoảng cách đến mặt phẳng quyết định là 1
‖⃗w‖ Khi các điểm khác xoá hết đithì thuật toán vẫn có kết quả giống như ban đầu Đó là đặc điểm khác so với cácphương pháp khác vì tất cả dữ liệu trong tập huấn luyện đều được dùng để tối ưuhoá kết quả
e) Mô hình phân lớp tuyến tính có nhiễu
- Tập dữ liệu huấn luyện D có thể phân chia được tuyến tính nhưng có nhiễu.
Trong trường hợp này, hầu hết các điểm trong tập dữ liệu được phân chia bởi siêuphẳng tuyến tính Tuy nhiên có một số ít điểm bị nhiễu, nghĩa là điểm có nhãndương nhưng lại thuộc về phía âm của siêu phẳng, điểm có nhãn âm thuộc về phíadương của siêu phẳng