Với một dữ liệu ung thư nếu xác định được giai đoạn bệnh của bệnh nhân thì khả năng những giai đoạn mới đầu là có thể được chữa khỏi, vì vậy việc đa phân lớp sẽ trở thành rất quan trọng
Trang 1LỮ ĐĂNG NHẠC
NGHIÊN CỨU XÂY DỰNG MÔ HÌNH ĐA PHÂN LỚP DỰA
TRÊN GA VÀ SVM
LUẬN VĂN THẠC SĨ
Trang 2LUẬN VĂN THẠC SĨ
Người hướng dẫn khoa học:
TS NGUYỄN HÀ NAM
Trang 3BANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT 5
MỤC LỤC 6
Chương 1 - MỞ ĐẦU 8
Chương 1 - THUẬT TOÁN PHÂN LỚP VỚI SVM 10
1.Giới thiệu chung về phân lớp 10
1.1.Khái niệm cơ bản 10
1.2.Quá trình phân lớp 10
1.2.1.Xây dựng mô hình 11
1.2.2.Sử dụng mô hình 11
1.3.Các yêu cầu đối với bàn toán phân lớp 12
2.Kỹ thuật phân lớp SVM(Support vector machines) 13
2.1.SVM tuyến tính 13
2.1.1.Các bộ phận phân lớp tuyến tính 13
2.1.2.Tập huấn luyện có thể phân chia tuyến tính 14
2.1.3.SVM tuyến tính cho bộ huấn luyện có thể phân chia 15
2.1.4.Tìm siêu phẳng tối ưu 16
2.1.5.Các véc tơ hỗ trợ 17
2.1.6.SVM tuyến tính cho tập huấn luyện tổng quát 18
2.2.SVM không tuyến tính 20
2.2.1.Không gian đặc trưng 20
2.2.2.SVM tuyến tính trong không gian đặc trưng 21
2.2.3.Ngầm xạ sang không gian đặc trưng 22
2.2.4.Các hàm nhân phổ biến 22
2.3.Một số biến thể và cải tiến của SVM 23
2.3.1.Một số kỹ thuật đa phân lớp 23
2.3.2.Kỹ thuật Cross Validation 25
Kết luận chương 26
Trang 45.Hàm thích nghi và sự chọn lọc 34
Kết luận chương 35
Chương 3 - MÔ HÌNH TỐI ƯU ĐA PHÂN LỚP SVM 36
1.Mô hình đề xuất 36
2.Cấu trúc hàm Kernel 37
3.Cấu trúc của cá thể và kỹ thuật tìm tham số tối ưu dựa trên giải thuật di truyền 39
Kết luận chương 40
Chương 4 - XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG 41
1.Giao diện chương trình 41
1.1.Giới thiệu về MatLab 41
1.2.Các module trong hệ thống và giao diện của chương trình 41
1.2.1 Module Genetic Algorithm 41
1.2.2.Các hàm trong chương trình 43
2.Thực nghiệm 44
2.1.Sử dụng bộ dữ liệu Stomach cho chương trình 44
2.1.1.Kết quả thực nghiệm với hàm Gaussian 45
2.1.2 Kết quả thực nghiệm với hàm Poly 48
2.2 Thực nghiệm với bộ dữ liệu men Yeast 51
2.2.1.Kết quả thực nghiệm với hàm Gaussian 51
2.2.2.Kết quả thực hiện với hàm Poly 54
Kết luận chương 57
KẾT LUẬN 58
1.Các đóng góp khoa học của luận văn 58
2.Hướng phát triển 58
TÀI LIỆU THAM KHẢO 59
PHỤ LỤC 61
Trang 5Tôi cũng xin cảm ơn gia đình, đồng nghiệp và những người thân đã cùng chia sẻ, giúp
đỡ, động viên, tạo mọi điều kiện thuận lợi để tôi hoàn thành nhiệm vụ học tập và luận văn tốt nghiệp cuối khóa
Hà Nội, tháng 10 năm 2010
Học viên
Lữ Đăng Nhạc
Trang 6DANH MỤC HÌNH VẼ
Hình 1.1 Mô hình phân lớp 10
Hình 1.2 Quá trình phân lớp 11
Hình 1.3 Véc tơ hai chiều x [11] 14
Hình 1.4 Mặt phẳng phân chia hai lớp [11] 14
Hình 1.5 Các siêu phẳng phân chia tập dữ liệu [11] 15
Hình 1.6 Siêu phẳng tối ưu 17
Hình 1.7 Các véc tơ hỗ trợ 18
Hình 1.8 Biến nới lỏng cho lề mềm 19
Hình 1.9 Không gian đặc trưng 21
Hình 1.10 Mô tả kỹ thuật One against all (a) và one against one(b)[9] 24
Hình 1.11 Thẩm định chéo K-fold 26
Hình 1.12 Thẩm định chéo lấy mẫu ngẫu nhiên 26
Hình 2.1 Các toán tử chung cho thuật giải di truyền [15] 33
Hình 3.1.Mô hình mới dựa trên GA và SVM 36
Hình 3.2 Đưa dữ liệu về không gian mới 38
Hình 4.1 Các bước thực hiện để tìm ra chromosome tốt nhất 42
Hình 4.2 Hàm đánh giá của GA tại mỗi thế hệ 43
Hình 4.3 Giao diện chương trình 44
Hình 4.4.Kết quả thử nghiệm SVM với hàm Gaussian trên Stomach 46
Hình 4.5 Kết quả thử nghiệm của GA&SVM với hàm Gaussian trên tập Stomach 47
Hình 4.6 So sánh kết quả thực nghiệm của SVM và GA&SVM với hàm Gaussian trên tập Stomach 48
Hình 4.7 Kết quả thực nghiệm của SVM với Poly trên tập Stomach 49
Hình 4.8 Kết quả thực nghiệm của GA&SVM với Poly trên Stomach 50
Hình 4.9 So sánh kết quả thực nghiệm của SVM và GA&SVM với hàm Poly trên Stomach 51
Hình 4.10 Kết quả thử nghiệm của SVM với hàm Gaussian trên tập Yeast 52
Hình 4.11 Kết quả thử nghiệm của GA&SVM với hàm Gaussian trên tập Yeast 53
Hình 4.12 So sánh kết quả thực nghiệm của SVM và GA&SVM với hàm Gaussian trên tập Yeast 54
Trang 73 Hình 4.13 Kết quả thử nghiệm của SVM với hàm Poly trên tập Yeast 55Hình 4.14 Kết quả thử nghiệm GA&SVM với hàm Poly trên tập Yeast 56Hình 4.15 So sánh kết quả thực nghiệm của SVM và GA&SVM với hàm Gaussian trên tập Yeast 57
Trang 8DANH MỤC BẢNG BIỂU
Bảng 1.Mô tả dữ liệu Stomach 44
Bảng 2.Kết qủa lỗi thu được của SVM với hàm Gaussian trên tập stomach 45
Bảng 3.Kết quả lỗi thu được của GA&SVM với hàm Gaussian trên Stomach 46
Bảng 4.Kết quả lỗi thu được của SVM với hàm Poly trên dữ liệu Stomach 48
Bảng 5 Kết qủa lỗi thu được của GA&SVM với hàm Poly trên tập Stomach : 49
Bảng 6 Kết quả lỗi thu được của SVM với hàm Gaussian trên tập Yeast 51
Bảng 7 Kết quả lỗi thu được của GA&SVM với hàm Gaussian trên tập Yeast 52
Bảng 8 Kết quả lỗi thu được của SVM với hàm Poly trên tập Yeast 54
Bảng 9 Kết quả lỗi thu được của GA& SVM với hàm Poly trên tập Yeast 55
Trang 95
BANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT
Từ viết tắt Tiếng anh
Gas Genetic Algorithms
SVM Suporst Vector Machine MSVM Mô hình đa phân lớp xây dựng bởi OAA và SVM Matlab Matrix Laboratory
Trang 10MỞ ĐẦU
Ngày nay cùng với việc phát triển của Khoa Học Công Nghệ thì lượng dữ liệu ngày càng trở nên lớn hơn, khai thác được những thông tin có ích từ lượng dữ liê ̣u khổn g lồ
như vâ ̣y đang là vấn đề lớn đặt ra trong thực tiễn cuộc sống
Khai phá dữ liệu là một trong những lĩnh vực nghiên cứu của khoa học máy tính hiện
nay đang được phát triển rất mạnh mẽ Nó kết hợp giữa học máy, công nghệ cơ sở dữ liệu và một số chuyên ngành khác để tìm ra những tri thức, bao gồm cả các thông tin
dự báo, từ những cơ sở dữ liệu lớn
Phân lớp dữ liệu được coi là một trong những vấn đề nghiên cứu mở rộng hiện nay
trong Khai phá dữ liệu, hiện nay có rất nhiều dữ liệu thực tế lớn cần được phân lớp như: Việc khai thác thông tin về nhu cầu mua hàng dành cho những người bán hàng, hoặc các khả năng rủi ro trong việc cho vay tiền ở ngân hàng, hoặc việc cần phải phân biệt những người bị bệnh hoặc không bị bệnh trong một lớp dữ liệu của bệnh viện…
Như vậy việc phân tích được thông tin rất quan trọng, nhưng dữ liệu thực tế rất lớn và
có rất nhiều lớp khác nhau, vậy bài toán được đặt ra ở đây là làm thế nào để phân loại được những lớp dữ liệu khác nhau càng nhiều càng tốt với độ chính xác cao Như việc phân tích một bệnh ung thư, bệnh được chia làm nhiều giai đoạn, giờ đây điều quan tâm không những là việc xác định người bị bệnh và người không bị bệnh nữa mà còn
là việc quan tâm xem người bị bệnh đang ở giai đoạn nào Với một dữ liệu ung thư nếu xác định được giai đoạn bệnh của bệnh nhân thì khả năng những giai đoạn mới đầu là
có thể được chữa khỏi, vì vậy việc đa phân lớp sẽ trở thành rất quan trọng trong việc phân lớp dữ liệu
Yêu cầu của một bài toán đa phân lớp đó là làm thế nào phân lớp dữ liệu thành nhiều lớp đạt hiệu quả cao nhất ở khả năng dự đoán những dữ liệu mới vào đúng lớp dữ liệu một cách chính xác nhất Hiện nay có rất nhiều thuật toán phân lớp như thuật toán
Support vector machines (SVM) thuật toán phân lớp bằng Học cây quyết định, mô
hình Mạng lan truyền ngược (Neural Network)[8],… và có nhiều kết quả đạt được
trong việc sử dụng các mô hình phân lớp này vào việc đa phân lớp[8,11,14] Nhưng vấn đề tìm kiếm một phương pháp đủ tốt đáp ứng nhu cầu cần phải phân tích dữ liệu ra nhiều lớp khác nhau vẫn là một vấn đề hiện nay cần nghiên cứu
Trang 119 Luận văn này tập trung tìm hiểu, xây dựng mô hình đa phân lớp mới bằng việc kết hợp một thuật toán phân lớp SVM với kĩ thuật đa phân lớp One agaist all (OAA) nhằm thực hiện đa phân lớp một tập dữ liệu Luận văn cũng tập trung vào việc sử dụng giải thuật di truyền (GA) để tối ưu các tham số của hàm nhân Kernel của SVM phục vụ cho việc đa phân lớp nhằm tăng độ chính xác khi phân lớp của mô hình[10]
Nội dung chính của luận văn được tổ chức thành 4 chương có nội dung được mô tả như dưới đây
Chương 1 Thuật toán phân lớp SVM Chương này giới thiê ̣u cơ bản về vấn
đề phân lớp, các bước trong phân lớp và những yêu cầu trong vấn đề phân lớp
Chương này tập trung vào một thuật toán phân lớp SVM, nghiên cứu kỹ thuật đa phân lớp nhằm xây dựng mô hình đa phân lớp với SVM
Chương 2 Giải thuật di truyền Chương này trình bày về giải thuật di truyền, tìm hiểu và áp dụng giải thuật nhằm tối ưu các giá trị
Chương 3 Mô hình tối ưu đa phân lớp SVM Chương này trình bầy viê ̣c xây
dựng một mô hình đa phân lớp dựa vào giải thuật di truyền, kĩ thuật One against all và SVM Đề cập đến việc tìm kiếm các Kernel tốt cho mô hình bằng việc sử dụng giải thuật di truyền để tối ưu các tham số của Kernel
Chương 4 Xây dựng chương trình mô phỏng Chương này sử dụng những
lý luận ở trên kết hợp với MATLAB để xây dựng mô hình phân lớp phân tích trên một
số tập dữ liệu cụ thể nhằm thu được các kết quả để đánh giá mô hình mới xây dựng (GA&SVM) so với mô hình đa phân lớp SVM
Phần kết luận tổng kết những kết quả đạt được của luận văn và hướng phát
triển nghiên cứu tiếp theo
Trang 12Chương 1 - THUẬT TOÁN PHÂN LỚP VỚI SVM
1.Giới thiệu chung về phân lớp
1.1.Khái niệm cơ bản
Một nhà nghiên cứu về y học muốn phân tích dữ liệu về bệnh ung thư phổi để dự đóan trước một trong ba phương pháp điều trị đặc biệt dành cho bệnh nhân, nhân viên ngân hàng khi xem xét quyết định cho vay, họ cần phải phân tích xem hồ sơ vay nào là “an toàn”, cái nào là “rủi ro” Việc phân tích dữ liệu được gọi là phân lớp (Classification), trong đó một mô hình (Classifier) được xây dựng để dự đoán các nhãn như là “an tòan”, “rủi ro” của dữ liệu cho vay, “ phương pháp A”, “phương pháp B”, “phương pháp C” của dữ liệu y học.[5]
Mục đích của phân lớp là dự đoán giá trị lớp của thuộc tính đích dựa trên các giá trị thuộc tính đầu vào Ta phải dựa vào các mối quan hệ giữa các đối tượng để tìm ra sự giống nhau giữa các đối tượng theo một độ đo nào đó đặc trưng cho lớp
Hình 1.1 Mô hình phân lớp
1.2.Quá trình phân lớp
Gồm hai bước:
Trang 1311 Bước 1: Xây dựng mô hình từ tập dữ liệu huấn luyện Bước 2: Sử dụng mô hình: Kiểm tra tính đúng đắn của mô hình và dùng nó để phân lớp dữ liệu mới
Hình 1.2 Quá trình phân lớp
1.2.1.Xây dựng mô hình
- Mỗi bộ/mẫu dữ liệu được phân vào lớp đã xác định trước
- Lớp của bộ/mẫu dữ liệu được chỉ ra trong thuộc tính nhãn lớp của bộ/mẫu dữ liệu đó
- Tập dữ liệu được dùng để xây dựng mô hình gọi là tập dữ liệu huấn luyện
- Mô hình được xây dựng có thể là các luật phân lớp, cây quyết định hoặc có thể là các công thức toán học, bộ tham số …
1.2.2.Sử dụng mô hình
- Phân lớp cho các đối tượng trong tương lai hoặc các đối tượng chưa biết
- Đánh giá độ chính xác của mô hình + So sánh các nhãn lớp đã biết của các bộ trong tập dữ liệu kiểm tra với kết quả phân lớp của mô hình
+ Độ chính xác là tỉ lệ phần trăm của các bộ trong tập dữ liệu kiểm tra được phân lớp đúng mô hình
- Tập dữ liệu phải có cùng khuôn dạng và độc lập với tập dữ liệu huấn luyện
Xây dựng mô hình Sử dụng mô hình để dự báo
Dữ liệu huấn luyện
Bộ phân loại (mô hình )
Dữ liệu kiểm tra
Dữ liệu chưa biết
Trang 141.3.Các yêu cầu đối với bàn toán phân lớp
Các phương pháp phân lớp thường đòi hỏi một số yêu cầu sau:
- Tính tuyến tính: Với các tập dữ liệu nhỏ mà số lượng các đối tượng ít thì các thuật toán có thể giải quyết tốt, nhưng trên thực tế có những cơ sở dữ liệu lớn có thể có hàng ngàn, hàng triệu đối tượng Khi đó phân lớp có thể dẫn đến kết quả không như mong muốn hoặc tốn rất nhiều thời gian
- Khả năng làm việc với nhiều loại dữ liệu khác nhau: Dữ liệu không đơn thuần chỉ là các con số, mà còn có nhiều kiểu dữ liệu Vì thế, các ứng dụng có thể yêu cầu phân lớp với nhiều dạng dữ liệu như nhị phân, dữ liệu phân loại, dữ liệu hỗn hợp theo nhiều kiểu
- Tối thiểu các tham số đầu vào: các tham số thường rất khó xác định, đặc biệt với các tập dữ liệu có các đối tượng nhiều chiều Điều này gây khó khăn cho người sử dụng và ảnh hưởng tới chất lượng của các lớp
- Khả năng làm việc với các dữ liệu nhiễu Hầu hết các dữ liệu thực đều có dữ liệu không đầy đủ, không biết rõ hoặc dữ liệu lỗi Một số thuật toán rất nhạy cảm với các
dữ liệu như vậy và có thể làm giảm khả năng phân lớp của chúng
- Không phụ thuộc vào thứ tự của các bản ghi đầu vào Với cùng một tập dữ liệu, khi biểu diễn với thứ tự khác nhau, một số thuật toán có thể tạo ra những lớp khác nhau
Vì vậy yêu cầu thuật toán không phụ thuộc vào thứ tự đầu vào của dữ liệu là một yêu cầu hết sức quan trọng
- Khả năng làm việc với dữ liệu nhiều chiều: với lượng dữ liệu lớn, lượng thông tin càng ngày càng thay đổi thì một cơ sở dữ liệu có thể có nhiều chiều hoặc nhiều thuộc tính Các thuật toán có thể xử lý tốt với dữ liệu ít chiều xong lại không tỏ ra hiệu quả với dữ liệu nhiều chiều Đây cũng là một thách thực lớn trong phân lớp các đối tượng
dữ liệu trong không gian nhiều chiều
- Phân lớp các ràng buộc Các ứng dụng trong thực tế có thể phải thực hiện phân lớp với nhiều ràng buộc Nhiệm vụ của phân lớp là phải tìm một nhóm dữ liệu sao cho phân lớp tốt nhất thỏa mãn các điều kiện ràng buộc
- Tính có thể hiểu được và khả năng sử dụng được Người sử dụng mong rằng có thể hiểu được, nhận biết được và sử dụng được các lớp sau khi chia Điều đó đòi hỏi các lớp sau khi được phân lớp phải có ý nghĩa và đem lại ứng dụng
Trang 1513 Với những yêu cầu trên, thật khó để có thể tìm được một thuật toán đáp ứng được tất
cả các yêu cầu Vì vậy đây luôn là một thách thức lớn đối với lĩnh vực khai phá dữ liệu
2.Kỹ thuật phân lớp SVM(Support vector machines)
SVM là phương pháp học máy cho phép phân lớp các đối tượng ra thành hai lớp Mặc
dù các đối tượng cần phân lớp hết sức phong phú từ tranh ảnh, âm thanh, đồ thị…, nhưng ở đây tôi chỉ xem xét các đối tượng là các vector thực với số chiều hữu hạn
2.1.SVM tuyến tính 2.1.1.Các bộ phận phân lớp tuyến tính
Giả sử m=2, hay mỗi đối tượng chỉ là một vector hai chiều x
= (x1, x2) Mỗi đối tượng như vậy có thể được biểu diễn bởi một điểm trên mặt Trong không gian đó, mỗi đường thẳng được đẳng trưng bởi phương trình
x + b chia mặt phẳng thành hai nửa mặt phẳng tương ứng với các x
làm w
x
+ b nhận giá trị dương hay âm
Một đường thẳng như vậy xác định một bộ phân lớp tuyến tính Bộ phân lớp tuyến tính phân loại mỗi điểm x
R2 phụ thuộc vào vị trí của đối tượng của nó: x
được phân vào loại +1 nếu w
Theo cách thức này, ta có thể tổng quát hóa đối với số chiều lớn hơn 2 Với các véc tơ
Trang 16Hình 1.3 Véc tơ hai chiều x [11]
Được gọi là siêu phẳng (với m=2, ta được một đường thẳng trong không gian hai chiều) Siêu phẳng chia không gian ra thành hai nửa không gian Vì thế, ta có thể xác định một bộ phân lớp tuyến tính có khả năng phân x
thành 2 lớp tùy thuộc vào dấu của w
x
+ b
Hình 1.4 Mặt phẳng phân chia hai lớp [11]
2.1.2.Tập huấn luyện có thể phân chia tuyến tính
Chúng ta xem xét một tập huấn luyện S bao gồm một tập điểm x
Rm cùng với các lớp của nó yi {-1,+1} với I =1,…,N
Trang 1715
Hình 1.5 Các siêu phẳng phân chia tập dữ liệu [11]
Các kết quả trong lý thuyết học mày chứng minh trong trường hợp này, số chiều liên quan đến khoảng cách nhỏ nhất giữa một điểm trong tập huấn luyện và siêu phẳng phân chia nó Khoảng cách này được gọi là “lề” và được kí hiệu là Như vậy, số chiều của một bộ phân lớp tuyến tính (có thể phân chia một cách đúng đắn dữ liệu) với
lề lớn hơn hoặc bằng sẽ giảm theo , điều này dẫn đến việc:
+ Chọn một bộ phân lớp có thể phân chia tất cả dữ liệu huấn luyện (để thu được rủi ro thực nghiệm nhỏ nhất)
+ Trong số các bộ phân lớp, chọn bộ phân lớp với lề lớn nhất (để có số chiều
VC nhỏ nhất) Siêu phẳng với lề lớn nhất cho một tập huấn luyện được gọi là siêu phẳng tối ưu
Thuật toán chọn bộ phân lớp với lề lớn nhất được gọi là máy vector hỗ trợ tuyến tính cho bộ phân lớp có thể phân chia
2.1.3.SVM tuyến tính cho bộ huấn luyện có thể phân chia
Nếu bộ huấn luyện có thể phân chia tuyến tính thì có rất nhiều bộ phân lớp tuyến tính cho phép phân lớp đúng Một phân lớp tốt cần phải thỏa mãn hai tính chất:
+ Chọn một bộ phân lớp với độ rủi ro thực nghiệm càng nhỏ càng tốt
+ Chọn một bộ phân lớp với số chiều càng nhỏ càng tốt
Trường hợp các bộ phân lớp tuyến tính cho tập huấn luyện có thể phân chia, điều kiện thứ 1 nêu trên có thể thỏa mãn bằng cách chọn một đường thẳng có thể phân lớp đúng đối với tất cả các đối tượng trong tập huấn luyện
Trang 182.1.4.Tìm siêu phẳng tối ƣu
Trong phần này, chúng ta sẽ xem xét làm thế nào để tính toán siêu phẳng tối ưu từ một tập huấn luyện Nói cách khác, chúng ta sẽ mô tả thuật toán dùng bởi SVM tuyến tính cho một tập huấn luyện có thể phân chia
Xem xét một tập các cặp(w
,b) thỏa mãn các phương trình sau với i= 1,…N (nói
cách khác, với mọi ví dụ trong tập huấn luyện)(1.2):
Mỗi cặp,(w
, b) xác định một bộ phân lớp đúng Nói cách khác, phương trình trên đặc trưng cho một một tập các bộ phân lớp tuyến tính xác định theo cặp vector (w
, b) các bộ phân lớp này phân chia tập huấn luyện theo lề lớn hơn 0
) được chọn vuông góc với siêu phẳng, và w
cũng vuông góc với siêu phẳng này nên w
Trang 1917 Nói cách khác, khoảng cách giữa các siêu phẳng định nghĩa bởi w
||càng nhỏ thì lề càng lớn Vấn đề tìm kiếm siêu phẳng tối
ưu có thể được phát biểu lại như sau: Siêu phẳng tối ưu được xác định bởi cặp (w
sử dụng biển đổi đối ngẫu
Trong dạng biến đổi đổi ngẫu, chúng ta sử dụng vector đối ngẫu: * * *
1
( , , n)
và dùng nó cho việc khôi phục mặt phẳng tối ưu ( *
+ Các ràng buộc mà các i>0 là các ràng buộc tích cực
Trang 20+ Các ràng buộc mà i=0 là các ràng buộc không tích cực
Trong trường hợp này, ràng buộc thứ i được thể hiện dưới dạng:
Ràng buộc này thể hiện rằng những điểm x i
nằm ở phần “tốt” của siêu phẳng phân biệt, và khoảng cách của nó từ siêu phẳng lớn hơn một lề nào đó Hơn thế nữa, ràng buộc này là “tích cực” khi và chỉ khi khoảng cách này đúng bằng lề.[11]
Điều này dẫn đến một số hệ quả sau:
+ Tính chất thưa: Số lượng các vector hỗ trợ có thể rất nhỏ so với kích cỡ của tập huấn luyện
+ Siêu phẳng tối ưu không bị ảnh hưởng bởi các ví dụ học không phải là các vector hỗ trợ
2.1.6.SVM tuyến tính cho tập huấn luyện tổng quát
Những kết quả trong phần trên chỉ áp dụng cho trường hợp các tập có thể phân chia tuyến tính Với các tập không thể phân chia tuyến tính, người ta đưa ra giải pháp “Lề mềm” (soft margin) trong đó người ta thay thế các ràng buộc khi giải bài toán tối ưu với các điều kiện sau
Trang 2119
Ở đây i gọi là biến nới lỏng (slack variables), hay các biến dương thể hiện mức độ chịu lỗi của bộ phân lớp (tolerances of misclassification) Thông qua đó, các vector huấn luyện được phép rơi vào trong khoảng chịu lỗi dọc theo biên ngăn cách hai lớp như được mô tả trong Hình 1.8 Hàm tối ưu trong trường hợp này là:
Thừa số thứ hai trong công thức trên là thừa số phạt (penalty term) cho việc phân lớp sai, và hằng số C xác định mức độ đóng góp của thừa số thứ hai
Hình 1.8 Biến nới lỏng cho lề mềm
Theo cách lập luận tương tự cho dữ liệu huấn luyện có thể phân chia tuyến tính, việc tìm siêu phẳng trong trường hợp này được mô tả như trong định đề sau:
Định đề:Với một tập huấn luyện bất kì
Trang 22( *
w
, b*) được xác định như sau:
Xác định các siêu phẳng tối ưu, thỏa mãn làm cực tiểu hóa:
Định đề này trừ các ràng buộc trên là (ràng buộc dạng
“hộp” - box contraint) 0 C thay vì: 0 [11]
2.2.SVM không tuyến tính
2.2.1.Không gian đặc trƣng
Tập dữ liệu huấn luyện:S{( ,x y 1), , (xN,y N)}là một tập của các ví dụ được gán nhãn
Giả sử người ta có thể định nghĩa một tập các hàm thực 1, ,Mtrên không gian các đối tượng Các hàm này được gọi là đặc trưng Khi đó, bất kì đối tượng x
nào cũng có thể ánh xạ sang một vector thực ( )x với số chiều M như sau:
Các đặc trưngi có thể là một hàm bất kì Trong trường hợp đặc biệt, chúng không nhất thiết phải là hàm tuyến tính Hơn thế nữa, số lược các đặc trưng M có thể lớn hơn chiều m của các đối tượng x
Sau khi ánh xạ tất cả các điểm từ tập huấn luyện sang không gian đặc trưng, ta được một tập các điểm trong không gian
Trang 2321 + Xác định một ánh xạ đến một không gian đặc trưng + Xây dựng một SVM tuyến tính trong không gian đặc trưng
Hình 1.9 Không gian đặc trưng
2.2.2.SVM tuyến tính trong không gian đặc trƣng
Trong không gian đặc trưng, tập huấn luyện là:
Theo những phân tích trong phần trước, ta có một SVM tuyến tính xác định một vector đối ngẫu (1, ,N)bằng cách tính cực đại hóa hàm sau:
Theo ràng buộc:
Từ *
ta có thể tính toán b* theo phương trình:
Và kết quả phân lớp ví dụ mới x
phụ thuộc vào dấu của phương trình:
Chú ý rằng, ở đây ta không cần phải tính toán w
do ta không cần xác định bộ phân lớp tối ưu
Trang 24Từ phương trình này, ta thấy rằng tất cả những gì ta cần biết về ánh xạ là giá trị của tích vô hướng '
( ) ( )x x
Ở đây, Ở đây, là một ánh xạ sang không gian đặc trưng
Định nghĩa : Một hàm nhân K(.,.) là một hàm sao cho với mọi điểm (x,x’) trong không
gian đầu vào:
Ở đây, là một ánh xạ sang không gian đặc trưng[11]
2.2.3.Ngầm xạ sang không gian đặc trƣng
Một hàm nhân K() luôn luôn tương ứng với một tích vô hướng trong một không gian
đặc trưng xác định bởi ánh xạ (.) Vì thế, cách thức tự nhiên nhất để xây dựng một nhân là đầu tiên định nghĩa ánh xạ (.) và sau đó tính toán kernel tương ứng
Tuy nhiên, trong nhiều trường hợp việc tính toán các hàm kernel '
( )x
của chúng Tính chất này là lý
do vì sao việc sử dụng các hàm nhân là hết sức hữu ích: dễdàng cho việc tính toán, nhưng có thể tận dụng các không gian đặc trưng phức tạp Vì thế chúng ta đề cập đến ánh xạ ngầm đến không gian vector do dữ liệu được ánh xạ sang không gian vector chừng nào tích vô hướng của nó có thể tính toán được, trong khi các ảnh của chúng không được tính toán một cách rõ ràng
2.2.4.Các hàm nhân phổ biến
Một số hàm nhân phổ biến thường được dùng trong cài đặt SVM với giả thiết đầu vào
là các véc tơ
2.2.4.1.Hàm nhân đa thức
Hai hàm nhân đa thức tổng quát được xác định như sau:
Với d là bậc của đa thức và c là hằng số Các cặp véc tơ là đầu vào và kết quả đầu ra của hàm nhân
Trang 2523
2.2.4.2.Hàm nhân cơ sở
Hàm nhân cơ sở được xác định như sau:
Ở đây là tham số, điều này cho thấy việc ánh xạ trực tiếp sang không gian đặc trưng
là rất phức tạp nhưng việc tính tích vô hướng lại được tính toán một cách dễ dàng
Các hàm quyết định có dạng sau:
Đây là tổng các phân phối Gaussian có tâm là các vector hỗ trợ Hầu hết mọi hình dạng đều có thể mô phỏng với hàm nhân này.Với giá trị càng nhỏ, các phân phối Gaussian càng nhọn xung quanh các vector hỗ trợ, do đó đường bao càng phức tạp
Giá trị càng lớn, biên xác định càng trơn
2.2.4.3.Hàm nhân sigmoid
Hàm nhân sigmoid được xác định bởi:
Ở đây, k và là các tham số tương ứng với “gain” và ngưỡng Một lần nữa, ta lại
gặp trường hợp mà việc ánh xạ trực tiếp sang không gian đặc trưng không thể thực hiện được Hàm quyết định:
2.3.Một số biến thể và cải tiến của SVM
2.3.1.Một số kỹ thuật đa phân lớp
2.3.1.1.Kỹ thuật One Against all
Chiến lược “ One against all” đối với tập gồm có K lớp , chiến lược phân lớp giữa mô ̣t lớp và K -1 lớp còn la ̣i, tất cả sẽ là K lần phân lớp , mỗi mô ̣t phân lớp thứ k đầu ra là
viê ̣c cho ̣n k hay k Ta có thể thấy viê ̣c phân chia như hình vẽ (Hình (a)) để đơn
giản ta xét với 3 lớp làm ví dụ, đó là lớp A, B và C
Trang 26a) b)
Hình 1.10 Mô tả kỹ thuật One against all (a) và one against one(b)[9]
Với lớp A ta tìm được một siêu phẳng phân tách lớp A với tất cả các lớp còn lại là
Ưu điểm: Thực hiện K lần phân lớp với bộ dữ liệu có K lớp
Nhược điểm: Khả năng mà mẫu bị bỏ đi hoặc bị chỉ ngẫu nhiên vào một trong K lớp là lớn
2.3.1.2.Kỹ thuật One Against one
“Chiến lược” phân tách này khác với chiến lược One against all là phân tách theo từng cặp lớp , mỗi một cặp sẽ tìm ra một siêu phẳng tối ưu phân tách , việc này thực hiê ̣n tất cả K K( 1) / 2 lần phân lớ p, viê ̣c phân chia thế này sẽ có đầu ra là hai lựa cho ̣n
1
hoặc 2, như (Hình 2.10 (b)) ta thấy việc phân chia được thực hiện từng đôi một
các lớp, A và B ta có một siêu phẳng tối ưu, A và Ccó một siêu phẳng tối ưu, B
và C có một siêu phẳng tối ưu phân tách hai lớp
Ưu điểm: Khả năng mẫu bị bỏ là ít Nhược điểm: Số lần phân lớp lớn là K(K-1) lần đối với tập có K lớp
Trang 2725
2.3.1.3.Áp dụng kỹ thuật đa phân lớp với SVM
Giả sử dữ liệu của bài toán có N lớp, chúng ta sẽ dùng các kỹ thuật đa phân lớp kết hợp với SVM để phân lớp dữ liệu
Áp dụng kỹ thuật One against all với SVM:
Ta tiến hành N lượt phân lớp từ 1 đến N đối với tập dữ liệu Giả sử tại lần phân lớp k
ta sẽ sử dụng kỹ thuật SVM để phân lớp, dữ liệu sẽ được phân vào lớp k hay k(là một lớp bất kỳ không thuộc lớp k)
Áp dụng kỹ thuật One against one với SVM:
“Chiến lược” phân tách này khác với chiến lược One against all là phân tách theo từng cặp lớp Đối với từng cặp lớp, ta sử dụng SVM để phân lớp dữ liệu cho từng lớp
Như vậy, với N lớp, ta sẽ dùng SVM để phân các cặp lớp với số lần là N(N-1)/2
2.3.2.Kỹ thuật Cross Validation
Thẩm định chéo là một phương thức đánh giá mô hình tốt hơn phương thức đánh giá
độ dư thừa Vấn đề của việc đánh giá độ dư thừa là không đưa ra được phương thức hướng việc học sẽ làm những gì khi được yêu cầu tạo ra những dự đoán của dữ liệu không nhìn thấy được Một cách khắc phục vấn đề này là việc không sử dụng toàn bộ tập dữ liệu trong quá trình đào tạo Một số dữ liệu bị loại bỏ trước khi việc đào tạo bắt đầu Sau đó khi việc đào tạo được thực hiện, dữ liệu đã bị loại bỏ có thể được dùng để kiểm định hiệu năng của mô hình đã học trên tập dữ liệu mới Đây là ý tưởng cơ bản cho phương thức đánh giá mô hình trong toàn bộ lớp – gọi là thẩm định chéo(cross-validation CV)
Với những thiết lập đơn giản nhất, lựa chọn mô hình thường liên quan đến hai bộ dữ
liệu: bộ dữ liệu huấn luyện (training set) dùng cho ước lượng tham số và bộ dữ liệu thẩm định (validation set) dùng cho lựa chọn mô hình
Tập dữ liệu thẩm định cung cấp một phương tiện của việc so sánh khả năng tổng quát hóa của các mô hình và phát hiện overfitting: nếu hiệu năng trên tập dữ liệu thẩm định kém hơn nhiều so với hiệu năng trên tập dữ liệu huấn luyện, mô hình xuất hiện overfitting Nếu nhiều mô hình được so sánh với tập thẩm định, hiệu năng của mô hình lựa chọn tốt nhất trên tập thẩm định là ước lượng quan trọng trong hiệu quả dự đoán trên tập dữ liệu mới Một tập dữ liệu thứ ba gọi là tập kiểm định – dùng để đánh giá hiệu năng cuối cùng của mô hình
Trang 282.3.2.1.Thẩm định chéo K- fold
- Với mỗi lần thực hiện, sử dụng K-1 nhóm cho Training và một phần còn lại để là Test
Hình 1.11 Thẩm định chéo K-fold
- Kiểm tra chéo K-Fold cũng tương tự với việc lấy mẫu ngẫu nhiên
- Điều thuận tiện của việc kiểm tra chéo K-Fold là thất cả các mẫu trong tập dữ liệu đều được sử dụng cho cả hai việc là Training và Testing
2.3.2.2.Thẩm định lấy mẫu ngẫu nhiên
- Lấy mẫu ngẫu nhiên bằng cách chia ra K phần của tập dữ liệu
- Mỗi một cách chia ngẫu nhiên chọn mẫu mà không cần thay thế
- Với mỗi dữ liệu chia ra ta thực hiện việc phân lớp với tập Training ngẫu nhiên và xác định lỗi E ivới tập mẫu test
Hình 1.12 Thẩm định chéo lấy mẫu ngẫu nhiên
Kết luận chương
Trong chương này chúng tôi tìm hiểu chung về các khái niệm phân lớp, mô hình phân lớp dữ liệu; đặc biệt tìm hiểu về phân lớp dữ liệu với SVM; SVM là kỹ thuật phân lớp
Trang 2927 nhị phân, với những dữ liệu đa lớp chúng tôi áp dụng các kỹ thuật OAA, OAO với SVM để phân lớp chúng
Trang 30Chương 2 - GIẢI THUẬT DI TRUYỀN
1.Giới thiệu
Thuật toán di truyền là thuật toán tối ưu ngẫu nhiên dựa trên cơ chế chọn lọc tự nhiên
và tiến hóa di truyền [15] Thuật toán di truyền được ứng dụng đầu tiên trong hai lĩnh
vực chính: tối ưu hóa và học máy Trong lĩnh vực tối ưu hóa thuật toán di truyền được phát triển nhanh chóng và ứng dụng trong nhiều lĩnh vực khác nhau như tối ưu hàm,
xử lý ảnh, bài toán hành trình người bán hàng, nhận dạng hệ thống và điều khiển
Thuật toán di truyền cũng như các thuật toán tiến hóa nói chung, hình thành dựa trên quan niệm cho rằng, quá trình tiến hóa tự nhiên là quá trình hoàn hảo nhất, hợp lý nhất
và tự nó đã mang tính tối ưu Quan niệm này có thể xem như một tiên đề đúng, không chứng minh được, nhưng phù hợp với thực tế khách quan Quá trình tiến hóa thể hiện tính tối ưu ở chỗ, thế hệ sau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiện hơn) thế
hệ trước bởi tính kế thừa và đấu tranh sinh tồn
2.Nội dung thuật toán
Bài toán dành cho GAs là tìm kiếm trên không gian các giả thuyết ứng cử để xác định giả thuyết tốt nhất Trong GAs “giả thuyết tốt nhất” được định nghĩa như là một giả thuyết tối ưu hóa một đại lượng số được định nghĩa trước cho bài toán sắp tới, được
gọi là độ thích nghi của giả thuyết Ví dụ, nếu tác vụ học hỏi là bài toán xấp xỉ một
hàm chưa biết cho tập mẫu huấn luyện gồm dữ liệu đầu vào và dữ liệu đầu ra, thì độ thích nghi có thể được định nghĩa như là độ chính xác của giả thuyết trên dữ liệu huấn luyện này Nếu tác vụ là học chiến lược chơi cờ, độ thích nghi có thể là số ván thắng của chiến lược này khi đấu với các chiến lược khác trong quần thể hiện tại
Mặc dù các thuật giải di truyền được thực hiện thay đổi theo bài toán cụ thể, nhưng chúng chia sẻ chung cấu trúc tiêu biểu sau: Thuật giải hoạt động bằng cách cập nhật liên tục tập giả thuyết – được gọi là quần thể Ở mỗi lần lặp, tất cả các cá thể trong quần thể được ước lượng tương ứng với hàm thích nghi Rồi quần thể mới được tạo ra bằng cách lựa chọn có xác suất các cá thể thích nghi tốt nhất từ quần thể hiện tại Một
số trong những cá thể được chọn được đưa nguyên vẹn vào quần thể kế tiếp Những cá
Trang 3129 thể khác được dùng làm cơ sở để tạo ra các cá thể con bằng cách áp dụng các tác động
di truyền: lai ghép và đột biến
Thuật giải di truyền mẫu [20]
GA (Fitness, Fitness_threshold, p, r, m)
{ // Fitness: hàm gán thang điểm ước lượng cho một giả thuyết
// Fitness_threshold: Ngưỡng xác định tiêu chuẩn dừng giài thuật tìm kiếm
// p: Số cá thể trong quần thể giả thuyết
// r: Phân số cá thể trong quần thể được áp dụng toán tử lai ghép ở mỗi bước
Chọn cá thể: chọn theo xác suất (1 – r)p cá thể trong quần thể P thêm
vào P S Xác suất Pr(h i ) của giả thuyết h i thuộc P được tính bởi công thức:
Lai ghép: chọn lọc theo xác suất
2
rp
cặp giả thuyết từ quần thể P, theo
Pr(h i ) đã tính ở bước trên Ứng với mỗi cặp <h 1 , h 2 >, tạo ra hai con bằng
cách áp dụng toán tử lai ghép Thêm tất các các con vào P S
Đột biến: Chọn m% cá thể của P S với xác suất cho mỗi cá thể là như nhau Ứng với mỗi cá thể biến đổi một bit được chọn ngẫu nhiên trong cách thể hiện của nó
Cập nhật: P P S.
Ƣớc lƣợng: Ứng với mỗi h trong P, tính Fitness(h)
Trả về giả thuyết trong P có độ thích nghi cao nhất
}
Trang 32Quần thể gồm p cá thể Ở mỗi lần lặp, quần thể kế tiếp P S được hình thành từ việc lựa chọn theo xác suất các giả thuyết hiện tại theo độ thích nghi của chúng và bằng cách thêm vào các giả thuyết mới Các giả thuyết mới được tạo ra bằng cách áp dụng toán
tử lai ghép cho cặp giả thuyết thích nghi nhất và bằng cách tạo ra các đột biến điểm đơn trong thế hệ giả thuyết kết quả Quá trình này được lặp cho đến khi các giả thuyết
thích hợp được phát hiện Các toán tử lai ghép và đột biến tiêu biểu được định nghĩa
trong bảng kế tiếp
Một thuật giải di truyền mẫu được mô tả ở trên, các đầu vào cho thuật giải này bao gồm hàm tính độ thích nghi để tính hạng cho các giả thuyết ứng cử, một giá trị ngưỡng được định nghĩa cấp độ thích nghi có thể chấp nhận để kết thúc thuật giải, kích thước quần thể, và các tham số quyết định các quần thể kế tiếp được tạo ra như thế nào: phần quần thể bị thay thế ở mỗi thế hệ và tỉ lệ đột biến
Lưu ý trong thuật giải này, ở mỗi bước lặp qua vòng lặp chính tạo ra một thế hệ mới các giả thuyết dựa vào quần thế hệ hiện tại Trước tiên, một số giả thuyết được chọn từ quần thể hiện tại để đưa vào thế hệ kế tiếp Những giả thuyết này được chọn theo xác suất, ở đây xác suất của giả thuyết được tính bởi [15]:
Vì vậy, xác suất để giả thuyết được chọn tỉ lệ với độ thích nghi của nó và tỉ lệ nghịch với độ thích nghi của các giả thuyết cạnh tranh khác trong quần thể hiện tại
Một khi các cá thể này của thế hệ hiện tại đã được chọn để đưa vào quần thể thế hệ kế tiếp, các cá thể thêm vào được tạo ra dùng toán tử lai ghép Lai ghép, được định nghĩa chi tiết trong phần kế tiếp, lấy hai giả thuyết từ thế hệ hiện tại và tạo ra hai giả thuyết con bằng cách kết hợp các phần của hai giả thuyết cha Các giả thuyết cha được chọn theo xác suất từ quần thể hiện tại, sử dụng hàm xác suất được định nghĩa ở trên Sau khi các cá thể mới được tạo ra từ hoạt động lai ghép này, quần thế thế hệ mới bây giờ
có đủ số lượng thành viên mong muốn Lúc này, một phân số m nào đó các cá thể này
được chọn một cách ngẫu nhiên và tất cả các đột biến ngẫu nhiên được thực hiện để thay đổi các cá thể này