LỜI CAM ĐOANTôi xin cam đoan: Luận văn thạc sỹ chuyên ngành Khoa học máy tính, tên đề tài “Nghiên cứu phương pháp Máy véc tơ hỗ trợ với lề mềm và ứng dụngphân lớp dữ liệu tuyến tính có n
Trang 1Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
SAVADY Sathaphone
Nghiên cứu phương pháp Máy véc tơ hỗ trợ với lề mềm
và ứng dụng phân lớp dữ liệu tuyến tính có nhiễu
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
THÁI NGUYÊN - 2019
Trang 2Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
SAVADY Sathaphone
Nghiên cứu phương pháp Máy véc tơ hỗ trợ với lề mềm
và ứng dụng phân lớp dữ liệu tuyến tính có nhiễu
Chuyên ngành: Khoa học máy tính
Mã số: 8480101
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS Đàm Thanh Phương
THÁI NGUYÊN - 2019
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan: Luận văn thạc sỹ chuyên ngành Khoa học máy tính, tên
đề tài “Nghiên cứu phương pháp Máy véc tơ hỗ trợ với lề mềm và ứng dụngphân lớp dữ liệu tuyến tính có nhiễu” là công trình nghiên cứu, tìm hiểu vàtrình bày do tôi thực hiện dưới sự hướng dẫn khoa học của TS Đàm ThanhPhương, Trường Đại học Công nghệ Thông tin và Truyền thông - Đại họcThái Nguyên
Kết quả tìm hiểu, nghiên cứu trong luận văn là hoàn toàn trung thực,không vi phạm bất cứ điều gì trong luật sở hữu trí tuệ và pháp luật ViệtNam Nếu sai, tôi hoàn toàn chịu trách nhiệm trước pháp luật
Tất cả các tài liệu, bài báo, khóa luận, công cụ phần mềm của các tác giảkhác được sử dụng lại trong luận văn này đều được chỉ dẫn tường minh vềtác giả và đều có trong danh mục tài liệu tham khảo
Thái Nguyên, ngày 18 tháng 7 năm 2019
Tác giả luận vănSAVADY Sathaphone
Trang 4LỜI CẢM ƠN
Tác giả xin chân thành cảm ơn TS Đàm Thanh Phương, trường Đại họcCông nghệ thông tin và truyền thông - Đại học Thái Nguyên, là giáo viênhướng dẫn khoa học đã hướng dẫn tác giả hoàn thành luận văn này, xin đượccảm ơn các thầy, cô giáo trường Đại học công nghệ thông tin và truyền thôngnơi tác giả theo học và hoàn thành chương trình cao học đã nhiệt tình giảngdạy và giúp đỡ
Xin cảm ơn nơi tác giả công tác đã tạo mọi điều kiện thuận lợi để tác giảhoàn thành chương trình học tập
Và cuối cùng xin cảm ơn gia đình, bạn bè, đồng nghiệp đã động viên, giúp
đỡ tác giả trong suốt thời gian học tập, nghiên cứu và hoàn thành luận vănnày
Xin chân thành cảm ơn
Thái Nguyên, ngày 18 tháng 7 năm 2019
Tác giả luận vănSAVADY Sathaphone
Trang 5DANH SÁCH HÌNH VẼ
2.1 Các mặt phân cách hai lớp tuyến tính 26
2.2 Lề của hai lớp không bằng nhau 26
2.3 Lề của hai lớp bằng nhau, nhưng chọn phương án có lề rộng hơn 26 2.4 Phân tích bài toán SVM 27
2.5 Các điểm gần mặt phân cách nhất của hai classes được khoanh tròn.28 2.6 Soft margin SVM khi có nhiễu, SVM sẽ không hoạt động hiệu quả.33 2.7 Soft margin SVM khi dữ liệu gần linearly separable, SVM thuần sẽ không hoạt động hiệu quả 34
2.8 Mô tả sự được và mất khi chọn lề 36
2.9 Hàm hinge loss 42
3.1 Minh họa nghiệm tìm đc bởi SVM 47
3.2 Dữ liệu tuyến tính có nhiễu 49
3.3 Đường phân chia tìm được bởi sklearn 52
3.4 Đường phân chia tìm được bởi hinge loss 52
3.5 Đường phân chia tìm được bởi đối ngẫu Các kết quả là như nhau 52 3.6 Nghiệm tìm bằng sklearn, C =0.1 53
3.7 Nghiệm tìm bằng sklearn, C=1 53
3.8 Nghiệm khi C=10 53
3.9 Ảnh hưởng của C lên nghiệm, C=100 54
Trang 6DANH MỤC KÝ HIỆU,
TỪ VIẾT TẮT
Trang 7Argmin Bài toán tối ưu tham số.
Duality Tính chất đối ngẫu, đối ngẫu
Lagrangian Đối ngẫu Lagrange
Strong duality Tính chất đối ngẫu mạnh
Weak duality Tính chất đối ngẫu yếu
KKT Karush Kuhn Tucker - Điều kiện KKT
AT Chuyển vị của ma trận A
AH Hermitian của ma trận A
kAkF Frobenius norm của ma trận A
Trang 8MỤC LỤC
Lời cam đoan i
Lời cảm ơn ii
Danh sách hình vẽ ii
Danh mục ký hiệu, từ viết tắt v
Mở đầu 1
Chương 1 MỘT SỐ KIẾN THỨC CHUẨN BỊ 4
1.1 Tổng quan về ngôn ngữ Python 4
1.2 Giới thiệu về học máy 7
1.3 Một số kiến thức toán học bổ trợ 11
Chương 2 PHƯƠNG PHÁP MÁY VÉC TƠ HỖ TRỢ SVM 25
2.1 Bài toán phân lớp SVM 25
2.2 Bài toán SVM với lề mềm 33
Chương 3 ỨNG DỤNG VÀ LẬP TRÌNH MÔ PHỎNG 46
3.1 Lập trình tìm nghiệm cho SVM 46
3.2 Lập trình tìm nghiệm cho Soft SVM 48
Kết luận chung 55
Tài liệu tham khảo 55
Trang 9MỞ ĐẦU
Những năm gần đây, AI - Artificial Intelligence (Trí Tuệ Nhân Tạo), và cụthể hơn là Machine Learning (Học Máy hoặc Máy Học) nổi lên như một bằngchứng của cuộc cách mạng công nghiệp lần thứ tư (1 - động cơ hơi nước, 2 -năng lượng điện, 3 - công nghệ thông tin) Trí Tuệ Nhân Tạo đang len lỏi vàomọi lĩnh vực trong đời sống mà có thể chúng ta không nhận ra Xe tự hànhcủa Google và Tesla, hệ thống tự tag khuôn mặt trong ảnh của Facebook,trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi
ý phim của Netflix, máy chơi cờ vây AlphaGo của Google DeepMind, ,chỉ là một vài trong vô vàn những ứng dụng của AI/Machine Learning [7]Machine Learning là một tập con của AI Theo định nghĩa của Wikipedia,Machine learning is the subfield of computer science that “gives computersthe ability to learn without being explicitly programmed” Nói đơn giản,Machine Learning là một lĩnh vực nhỏ của Khoa Học Máy Tính, nó có khảnăng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập trình
cụ thể [1]
Phân lớp và hồi quy là hai trong số các thuật toán học máy có giám sát
có nhiều ứng dụng trong thực tế Bài toán phân lớp tuyến tính cơ bản yêucầu xây dựng một classifier từ dữ liệu training để khi có điểm dữ liệu mới ta
có thể dự đoán được nhãn của nó Giả sử rằng có hai class khác nhau được
mô tả bởi các điểm trong không gian nhiều chiều, hai classes này linearlyseparable, tức tồn tại một siêu phẳng phân chia chính xác hai classes đó.Hãy tìm một siêu mặt phẳng phân chia hai classes đó, tức tất cả các điểmthuộc một class nằm về cùng một phía của siêu mặt phẳng đó và ngược phíavới toàn bộ các điểm thuộc class còn lại
Chúng ta đã biết rằng, thuật toán PLA có thể làm được việc này nhưng
nó có thể cho chúng ta vô số nghiệm Câu hỏi đặt ra là: trong vô số các mặt
Trang 10phân chia đó, đâu là mặt phân chia tốt nhất theo một tiêu chuẩn nào đó?Chúng ta cần một đường phân chia sao cho khoảng cách từ điểm gần nhấtcủa mỗi class tới đường phân chia là như nhau, như thế thì mới công bằng.Khoảng cách như nhau này được gọi là margin (lề) Ngoài ra, việc marginrộng hơn sẽ mang lại hiệu ứng phân lớp tốt hơn vì sự phân chia giữa haiclasses là rạch ròi hơn Việc này là một điểm khá quan trọng giúp SupportVector Machine mang lại kết quả phân loại tốt hơn so với Neural Networkvới 1 layer, tức Perceptron Learning Algorithm.[1], [2]
Bài toán tối ưu trong Support Vector Machine (SVM) chính là bài toán
đi tìm đường phân chia sao cho margin là lớn nhất Đây cũng là lý do vì saoSVM còn được gọi là Maximum Margin Classifier [7]
Tuy nhiên ngay cả SVM với lề cứng cũng sẽ không giải quyết được một sốbài toán phân lớp có nhiễu, việc nghiên cứu SVM với lề mềm sẽ giải quyếttốt hơn trường hợp này
Nội dung của luận văn gồm 3 chương:
Chương 1 Các kiến thức cơ sở
Chương này trình bày các kiến thức chuẩn bị cho việc nghiên cứu
1.1 Giới thiệu về học máy
1.2 Giới thiệu về ngôn ngữ lập trình Python
1.3 Các kiến thức cơ sở về Đại số tuyến tính
Chương 2 Phương pháp máy véc tơ hỗ trợ SVM
Nội dung chương 2 tập trung vào vấn đề nghiên cứu các phương pháp máyvéc tơ hỗ trợ, cụ thể như sau:
2.1 Xây dựng bài toán tối ưu cho SVM
2.2 Bài toán đối ngẫu cho SVM
2.3 Bài toán đối ngẫu Lagrange
2.4 Bài toán tối ưu không ràng buộc cho Soft SVM
Chương 3 Ứng dụng và lập trình mô phỏng
Sau khi nắm rõ các nội dung trong chương 2, chương 3 trình bày một số ví
Trang 11dụ minh họa ứng dụng và lập trình:
3.1 Lập trình tìm nghiệm cho SVM
3.2 Lập trình tìm nghiệm cho Soft SVM
Phần kết luận: Tóm tắt các kết quả đã đạt được và thảo luận hướng pháttriển tiếp theo của đề tài
Mặc dù đã cố gắng song luận văn không tránh khỏi nhiều sai sót Em xincác thầy cô và bạn bè góp ý để luận văn được hoàn thiện hơn Em xin chânthành cảm ơn
Trang 12CHƯƠNG 1MỘT SỐ KIẾN THỨC CHUẨN BỊ
Chương này trình bày các kiến thức cơ sở về Đại số tuyến tính; Giới thiệu
về học máy Đây là những kiến thức giúp cho việc hiểu và ứng dụng của cácchương sau
1.1.1 Tổng quan
Python là một ngôn ngữ lập trình hướng đối tượng rất thông dụng dùng
để viết các tiện ích hệ thống và các đoạn mã trên Internet Nó cũng được sửdụng như ngôn ngữ kết dính đóng vai trò tích hợp C và C++ Được tạo rabởi Guido van Rossum tại Amsterdam năm 1990 Python hoàn toàn tạo kiểuđộng và dùng cơ chế cấp phát bộ nhớ tự động Python được phát triển trongmột dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundationquản lý Phiên bản mới nhất của Python hiện tại (thời điểm viết bài) là bản3.4.x
Python là ngôn ngữ có hình thức khá đơn giản và rõ ràng, do đó tạo nên
sự dễ dàng tiếp cânh cho những lập trình viên mới bắt đầu
Ban đầu, Python được phát triển để chạy trên nền Unix Nhưng rồi theothời gian, nó đã "bành trướng" sang mọi hệ điều hành từ MS-DOS đến Mac
OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix Mặc
dù sự phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưngGuido van Rossum hiện nay vẫn là tác giả chủ yếu của Python Ông giữ vaitrò chủ chốt trong việc quyết định hướng phát triển của Python
Kiến thức tham khảo về Python được tham khảo từ tài liệu [8], [9]
1.1.2 Một số tính chất
• Python is Interpreted: Nhờ chức năng thông dịch mà trình thông dịch(Interpreter) của Python có thể xử lý lệnh tại thời điểm chạy chươngtrình (runtime) Nhờ đó mà ta không cần biên dịch chương trình trước
Trang 13khi thực hiện nó (tương tự như Perl và PHP).
• Python is Interactive: Tính năng tương tác của Python giúp ta có thểtương tác trực tiếp với trình thông dịch của nó ngay tại dấu nhắc lệnh
Cụ thể: Ta có thể thực hiện lệnh một cách trực tiếp tại dấu nhắc củaPython
• Python is Object-Oriented: Python hỗ trợ mạnh cho phong cách lậptrình hướng đối tương và kỹ thuật lập trình gói mã trong đối tượng
• Python is a Beginner’s Language: Mặc dầu Python được xem là ngônngữ lập trình dành cho những ai mới làm quen với việc lập trình trênmáy tính, nhưng nó hỗ trợ mạnh cho việc phát triển nhiều loại ứng dụngkhác nhau, từ các chương trình xử lý văn bản đơn giản đến các ứng dụngweb, đến các chương trình game,
1.1.3 Tính năng
Ngôn ngữ lập trình đơn giản, dễ học: Python có cú pháp rất đơn giản, rõràng Nó dễ đọc và viết hơn rất nhiều khi so sánh với những ngôn ngữ lậptrình khác như C++, Java Python làm cho việc lập trình trở nên thú vị,cho phép tập trung vào những giải pháp chứ không phải cú pháp
Miễn phí, mã nguồn mở: Ta có thể tự do sử dụng và phân phối Python,thậm chí là dùng cho mục đích thương mại Vì là mã nguồn mở, ta khôngnhững có thể sử dụng các phần mềm, chương trình được viết trong Python
mà còn có thể thay đổi mã nguồn của nó Python có một cộng đồng rộnglớn, không ngừng cải thiện nó mỗi lần cập nhật
Khả năng di chuyển: Các chương trình Python có thể di chuyển từ nềntảng này sang nền tảng khác và chạy nó mà không có bất kỳ thay đổi nào
Nó chạy liền mạch trên hầu hết tất cả các nền tảng như Windows, macOS,Linux
Khả năng mở rộng và có thể nhúng: Giả sử một ứng dụng đòi hỏi sự phứctạp rất lớn, ta có thể dễ dàng kết hợp các phần code bằng C, C++ và những
Trang 14ngôn ngữ khác (có thể gọi được từ C) vào code Python Điều này sẽ cung cấpcho ứng dụng của ta những tính năng tốt hơn cũng như khả năng scripting
mà những ngôn ngữ lập trình khác khó có thể làm được
Ngôn ngữ thông dịch cấp cao: Không giống như C/C++, với Python, takhông phải lo lắng những nhiệm vụ khó khăn như quản lý bộ nhớ, dọn dẹpnhững dữ liệu vô nghĩa, Khi chạy code Python, nó sẽ tự động chuyển đổicode sang ngôn ngữ máy tính có thể hiểu Ta không cần lo lắng về bất kỳhoạt động ở cấp thấp nào
Thư viện tiêu chuẩn lớn để giải quyết những tác vụ phổ biến: Python cómột số lượng lớn thư viện tiêu chuẩn giúp cho công việc lập trình của ta trởnên dễ thở hơn rất nhiều, đơn giản vì không phải tự viết tất cả code Ví dụ:
Ta cần kết nối cơ sở dữ liệu MySQL trên Web server? Ta có thể nhập thưviện MySQLdb và sử dụng nó Những thư viện này được kiểm tra kỹ lưỡng
và được sử dụng bởi hàng trăm người Vì vậy, ta có thể chắc chắn rằng nó
sẽ không làm hỏng code hay ứng dụng của mình
Hướng đối tượng: Mọi thứ trong Python đều là hướng đối tượng Lập trìnhhướng đối tượng (OOP) giúp giải quyết những vấn đề phức tạp một cáchtrực quan Với OOP, ta có thể phân chia những vấn đề phức tạp thành nhữngtập nhỏ hơn bằng cách tạo ra các đối tượng
1.1.4 Các lĩnh vực sử dụng lập trình python phổ biến
Lập trình ứng dụng web: ta có thể tạo web app có khả năng mở rộng(scalable) được bằng cách sử dụng framework và CMS (Hệ thống quản trịnội dung) được tích hợp trong Python Vài nền tảng phổ biến để tạo webapp là: Django, Flask, Pyramid, Plone, Django CMS Các trang như Mozilla,Reddit, Instagram và PBS đều được viết bằng Python
Khoa học và tính toán: Có nhiều thư viện trong Python cho khoa học vàtính toán số liệu, như SciPy và NumPy, được sử dụng cho những mục đíchchung chung trong tính toán Và, có những thư viện cụ thể như: EarthPy chokhoa học trái đất, AstroPy cho Thiên văn học, Ngoài ra, Python còn được
Trang 15sử dụng nhiều trong machine learning, khai thác dữ liệu và deep learning.Tạo nguyên mẫu phần mềm: Python chậm hơn khi so sánh với các ngônngữ được biên dịch như C++ và Java Nó có thể không phải là lựa chọn tốtnếu nguồn lực bị giới hạn và yêu cầu về hiệu quả là bắt buộc Tuy nhiên,Python là ngôn ngữ tuyệt vời để tạo những nguyên mẫu (bản chạy thử -prototype) Ví dụ, ta có thể sử dụng Pygame (thư viện viết game) để tạonguyên mẫu game trước Nếu thích nguyên mẫu đó có thể dùng C++ để viếtgame thực sự.
Ngôn ngữ tốt để dạy lập trình: Python được nhiều công ty, trường học sửdụng để dạy lập trình cho trẻ em và những người mới lần đầu học lập trình.Bên cạnh những tính năng và khả năng tuyệt vời thì cú pháp đơn giản và dễ
sử dụng của nó là lý do chính cho việc này
Đặc biệt trong lĩnh vực khoa học dữ liệu Python là ngôn ngữ được sử dụngphổ biến nhất vì có nhiều thư viện hỗ trợ rất tốt cho Machine Learning vàData Science:
• scipy, numpy cho tính toán khoa học với mảng nhiều chiều
• sklearn cho các thuật toán Machine Learning cơ bản
• tensorflow, pytorch, keras, theano, cho các thuật toán Deep Learning
• pandas cho xử lý dữ liệu dạng bảng
1.2.1 Khái niệm học máy
Khái niệm học có nghĩa rộng giống như sự thông minh, bao gồm cả quátrình và khó có một định nghĩa chính xác Theo nghĩa tự điển, học là quátrình thu nhận kiến thức, kỹ năng do người khác truyền lại hoặc đọc đi, đọclại, nghiềm ngẫm ghi nhớ ( học thuộc lòng) Rộng hơn, học bao gồm cả quátrình đúc rút tri thức từ các quan sát, trải nghiệm thực tiễn
Học máy ( machine learning) mang hai nghĩa thông dụng:
Trang 161 sử dụng máy tính để khám phá tri thức từ dữ liệu,
2 sự học trong máy (tác tử: agent) Về phương diện công nghệ, học máy
là một lĩnh vực của trí tuệ nhân tạo, trong đó nghiên cứu các kỹ thuậtxây dựng và phát triển các chương trình máy tính có thể thích nghi và
“học” từ các dữ liệu mẫu hoặc kinh nghiệm
Đến nay, đã có nhiều định nghĩa khái niệm này, tuy nhiên khó có một địnhnghĩa thỏa đáng được mọi người thừa nhận Định nghĩa sau phát triển từđịnh nghĩa của T Mitchell cho ta cách nhìn toán học của một chương trìnhhọc khi nghiên cứu, thiết kế
Định nghĩa 1.2.1 Một chương trình máy tính được gọi là học từ dữ liệu,kinh nghiệm E đối với lớp nhiệm vụ T và độ đo mức thực hiện P nếu việcthực hiện các nhiệm vụ T của nó khi đo bằng P được cải tiến nhờ dữ liệuhoặc kinh nghiệm E [1]
Theo định nghĩa này, người ta cần tối ưu hóa độ đo thực hiện P dựa trênphân tích dữ liệu, kinh nghiệmE để tìm cách thực hiện nhiệm vụ T tốt nhất
Ví dụ 1: Phân tích dữ liệu bán lẻ của siêu thị
Hằng ngày các siêu thị bán ra một lượng lớn những mặt hàng phong phú
và lưu lại các hóa đơn thanh toán(bản sao giỏ hàng) Từ các dữ liệu bán lẻ
có được, ta có thể phân tích các giỏ hàng để tiên đoán được một khách hàngmua mặt hàng A thì sẽ mua mặt hàng B với xác suất bao nhiêu? Nếu xácsuất này là lớn thì ta nên xếp các mặt hàng này gần nhau, như thế tiện chokhách hàng và lượng hàng bán được cũng tăng lên so với việc để khách hàngphải tìm kiếm khắp nơi Rộng hơn, nếu có mô hình phân tích tốt, ta cũng
có thể dự đoán được lượng hàng cần đáp ứng trong thời gian tới, xu thế sởthích của khách hàng, trên cơ sở đó có được quyết sách thích ứng Trong ví
dụ này T là dự báo, E là dữ liệu bán lẻ lưu trữ và P là độ chính xác của kếtquả dự báo
Ví dụ 2: Đối sánh vân tay
Trang 17Bài toán đối sánh vân tay bắt nguồn từ hai bài toán truy nguyên và xácthực vân tay Trong bài toán truy nguyên, người ta phải đối sánh một ảnhvân tay thu được khi điều tra với các ảnh vân tay trong kho lưu trữ để xácđịnh xem có vân tay nào trong kho lưu trữ là do cùng một ngón tay lăn ravới ảnh điều tra không Trong bài toán xác thực, người ta cần xác minh ảnhvân tay đăng nhập ( ta cũng sẽ gọi là điều tra) có đúng là cùng ngón sinh ravới ảnh đã đăng kí hay không? Cả hai bài toán này được đưa về bài toán đốisánh cặp ảnh vân tay điều tra với ảnh lưu trữ để trả lời xem chúng cùng haykhác ngón sinh ra Để xây dựng chương trình đối sánh vân tay, người ta cầnmột tập dữ liệu bao gồm các cặp ảnh do cùng ngón và khác ngón sinh ra.Dựa trên tập dữ liệu này, một thuật toán được áp dụng để xây dựng chươngtrình.
Ví dụ 3: Tìm đường đi ngắn nhất cho robot
Một mạng lưới gồm n trạm hoạt động tự động, khoảng cách giữa chúngkhác nhau, một robot cần đi kiểm tra các trạm này một lần Giả sử Robotghi nhớ được các trạm đã qua và độ dài đường đi giữa chúng, biết được cáctramh cần kiểm tra tiếp Khi đó qua từng trạm nó sẽ tìm đường đi tới trạmtiếp theo Nếu có chiến lược học tốt, càng ngày robot sẽ tìm được đường đingắn hơn, thậm chí là tối ưu Trong trường hợp nàyP và E tương ứng là độdài và các đường đi kiểm tra đã tìm được, T là đường đi kiểm tra
1.2.2 Tại sao cần nghiên cứu học máy?
Sự thâm nhập mạnh mẽ của công nghệ thông tin tinh tế, xã hội công nghệtri thức phát triển và tạo nên nhu cầu ứng dụng rộng rãi Sau đây là một sốphạm vi nghiên cứu, ứng dụng điển hình:
• Xây dựng các hệ nhận dạng mẫu dùng cho các thiết bị nghe nhìn chorobot và trong lĩnh vực tự động hóa, nhận dạng chữ viết tay, chuyển đổicác bài nói thành văn bản, phân tích ảnh tự động
• Tạo ra các chương trình máy tính có thể hoạt động thích nghi với môitrường thay đổi hay thực hiện các nhiệm vụ mà ban đầu chưa xác định
Trang 18rõ, chẳng hạn, hệ lái tự động ( máy bay, ô tô, tàu thủy, ) , trò chơi haycác điều khiển robot đa năng.
• Khám phá tri thức từ dữ liệu đặc biệt là các cơ sở dữ liệu lớn, để trợgiúp ra quyết định Chẳng hạn, phân tích thị trường, chẩn đoán bệnhcủa bệnh nhân và xác định phương án điều trị nhờ phân tích các bệnh
án lưu trữ
1.2.3 Một số lĩnh vực liên quan
Trong mấy chục năm qua, các nghiên cứu khoa học và ứng dụng của họcmáy phát triển nhanh, kết hợp các tiến bộ của nhiều lĩnh vực khác Sau đây
là các lĩnh vực góp phần quan trọng cho nghiên cứu học máy:
• Lý thuyết xác suất và thống kê: Là tiền thân của lĩnh vực học máy, trong
đó, cho phép suy luận (inference) từ quan sát cụ thể để có kết luận kháiquát nhờ thành tựu của giải tích ngẫu nhiên
• Mô hình thần kinh sinh học Việc nghiên cứu cơ chế hoạt động, xử lýphi tuyến và cấu tạo hệ thần kinh sinh học nói chung cho phép tạo nêncác mô hình và thuật toán phỏng sinh học, đặc biệt là các mạng nơron
• Lý thuyết độ phức tạp tính toán Cho phép ước lượng độ phức tạp củacác nhiệm vụ học đo qua các ví dụ đào tạo, só lỗi và các thủ tục tínhtoán
• Lý thuyết điều khiển thích nghi Các thủ tục học để điều khiển quá trìnhnhằm tối ưu hóa mục đích định trước hay học cách đoán các trạng tháitiếp theo của quá trìh điều khiển
• Tâm lý học: Cho phép mô phỏng các đáp ứng thực tế của con người, xâydựng các mô hình xử lý hiệu quả, chẳng hạn, học tăng cường
• Các mô hình tiến hóa Việc nghiên cứu các mô hình tiến hóa cho phépchúng ta đưa ra các thuật toán học mô phỏng tự nhiên như: Thuật toán
Trang 19di truyền (GA), tối ưu đàn kiến (ACO), tối ưu bầy đàn( PSO), hệ miễndịch nhân tạo ( AIS)
1.2.4 Các bài toán học thiết lập đúng đắn
Bài toán học được cho là thiết lập đúng khi thực sự có thể cải tiến được
P qua kinh nghiệm E Thông thường mô hình toán học để xây dựng thuậttoán cho một bài toán học đòi hỏi phải đúng đắn theo Hadamard Trong cácbài toán thực tế,Hadamard cho rằng một mô hình toán học ứng dụng đượcxem là thiết lập đúng đắn (well-posed problem) nếu nó có các tính chất:
1 Luôn tồn tại lời giải
2 Chỉ có duy nhất một lời giải
3 Khi các điều kiện ban đầu thay đổi ít thì lời giải cũng thay đổi ít
Tuy nhiên, trong nhiều bài toán, điều kiện duy nhất một lời giải nhiều khikhó đáp ứng trong trường hợp đó người ta hay dùng phương pháp chính quyhóa (hiệu chỉnh hàm mục tiêu) để bài toán trở nên thiết lập đúng đắn.Bài toán học phải được xác định đúng đắn dựa trên việc xác định rõ nhiệm
vụ cụ thể, độ đo việc thực hiện và nguồn dữ liệu, kinh nghiệm
Phương pháp thông dụng nhất để đưa ra thuật toán cho các bài toán học
là xây dựng một mô hình toán học phụ thuộc các tham số và dùng dữ liệuhoặc kinh nghiệm đã có thể xác định giá trị thích hợp cho các tham số này.[7]
Các kiến thức toán học bổ trợ được tham khảo từ [7] và [10]
1.3.1 Phép nhân hai ma trận
Cho hai ma trận A ∈ Rm×n, B ∈ Rn×p, tích của hai ma trận được ký hiệu
là C = AB ∈ Rm×p, trong đó phần tử ở hàng i cột j của ma trận C được
Trang 20tính bởi
cij =
nXk=1
Điều kiện để nhân hai ma trận là số cột của ma trận thứ nhất phải bằng sốhàng của ma trận thứ hai Trong định nghĩa trên, chúng đều bằng n
Tính chất
1 Phép nhân ma trận không có tính chất giao hoán Thông thường AB 6=
BA, thậm chí không tồn tại vì không thỏa mãn điều kiện nhân
2 Phép nhân ma trận có tính chất kết hợp ABC = (AB)C = A(BC)
3 Phép nhân ma trận có tính chất phân phối đối với phép cộng.A(B+C) =
xTy = yTx =
nXi=1
Chú ý, xHy = yHxH = yHx Chúng bằng nhau khi và chỉ khi chúng làcác số thực Nếu tích vô hướng của hai véc tơ khác không mà bằng khôngthì chúng vuông góc với nhau
xHx ≥ 0, ∀x ∈ Cn vì tích của một số phức với liên hợp của nó luôn là một
số không âm
Phép nhân của một ma trận với một véc tơ là một véc tơ với là véc tơhàng thứ của
Trang 21Ngoài ra, một phép nhân khác được gọi là Hadamard (hay element - wise)hay được sử dụng trong học máy Tích Hadamard của hai ma trận cùng kíchthước A, B ∈ Rm×n
Cho một ma trận vuông A ∈ Rn×n, nếu tồn tại ma trận vuông B ∈Rn×n
sao cho AB = In, thì ta nói A là khả nghịch (invertible, nonsingular hoặcnondegenerate) và B được gọi là ma trận nghịch đảo (inverse matrix) của
mathbf A Nếu không tồn tại ma trận B thỏa mãn điều kiện trên, ta nóirằng ma trận A không khả nghịch (singular hoặc degenerate)
Nếu A là khả nghịch, ta ký hiệu ma trận nghịch đảo của nó là A−1 Ta có
Trang 22Ma trận nghịch đảo thường được sử dụng để giải hệ phương trình tuyếntính Giả sử rằng A ∈ Rn×n là một ma trận khả nghịch và một véc tơ bất
3 Nếu A ∈Rm×n, thì rank(A) ≤ min(m, n)
5 rank(A + B) ≤ rank(A) + rank(B)
6 Bất đẳng thức Sylvester về hạng: Nếu A ∈Rm×n, B ∈ Rn×k, thì
rank(A) + rank(B) − n ≤ rank(AB)
Các điều kiện dưới đây là tương đương, với A ∈Rn×n
1 A là một ma trận khả nghịch
2 det(A) 6= 0
3 Các cột của A tạo thành một cơ sở trong không gian n chiều
4 rank(A) = n
Trang 23Nếu một ma trận vuông phức Uthỏa mãn UUH = UHU = I, ta nói rằng
3 Định thức của ma trận trực giao bằng 1 hoặc −1
4 Ma trận trực giao thể hiện cho phép xoay một véc tơ Giả sử có hai véc
tơ x, y ∈ Rm và một ma trận trực giao U ∈ Rm×m Dùng ma trận này
Trang 24để xoay hai véc tơ trên ta được Ux, Uy Tích vô hướng của hai véc tơmới này là
Như vậy, phép xoay không làm thay đổi tích vô hướng của hai véc tơ
5 Giả sử U ∈ˆ Rm×r, r < m là một ma trận con của ma trận trực giao U
được tạo bởi r cột của U, ta sẽ có UˆTU = Iˆ r
1.3.5 Trị riêng và véc tơ riêng
1.3.5.1 Định nghĩa
Cho một ma trận vuông A ∈ Rn×n, một véc tơ x ∈ Rn(x 6= 0) và một số
vô hướng (có thể thực hoặc phức)λ Nếu Ax = λx, thì ta nói λ và x là mộtcặp giá trị riêng, véc tơ riêng (eigenvalue, eigenvector) của ma trận A
Từ định nghĩa ta cũng có, (A − λI)x = 0, tức là x nằm trong không gianNull của A − λI Vì x 6= 0, nên A − λI là ma trận không khả nghịch Vậy
det(A − λI) = 0, hay λ là nghiệm của phương trình det(A − tI) = 0 Địnhthức này là một đa thức bậcn của t, gọi là đa thức đặc trưng (characteristicpolynomial) của A, ký hiệu là pA(t) Tập hợp tất cả các giá trị riêng của một
ma trận còn gọi là phổ (spectrum) của ma trận đó
1.3.5.2 Tính chất
1 Nếu x là một véc tơ riêng của A ứng với giá trị riêng λ thì với mọi
k ∈ R, k 6= 0, kx cũng là một véc tơ riêng của A ứng với giá trị riêng đó.Nếux1, x2 là hai véc tơ riêng ứng với cùng một giá trị riêngλthì tổng củachúng cũng là một véc tơ riêng ứng với giá trị riêng đó Từ đó suy ra tậpcác véc tơ riêng ứng với một giá trị riêng của ma trận vuông tạo thànhmột không gian véc tơ con, được gọi là không gian riêng (eigenspace )ứng với giá trị riêng đó
2 Mọi ma trận vuông bậc n đều có n giá trị riêng (kể cả lặp, phức)
3 Tích của tất cả các giá trị riêng của ma trận bằng định thức, tổng của
Trang 25tất cả các giá trị riêng của ma trận bằng tổng các phần tử trên đườngchéo của ma trận.
4 Phổ của ma trận bằng phổ của ma trận chuyển vị của nó
5 Nếu A, B là các ma trận vuông, cùng bậc thì pAB(t) = pBA(t) Điềunày có nghĩa là, mặc dù tích của hai ma trận không có tính chất giaohoán, đa thức đặc trưng của AB và BA là như nhau, hay phổ của haitích này là trùng nhau
6 Ma trận đối xứng (tổng quát là Hermitian), tất cả các giá trị riêng của
là một ma trận khả nghịch Khi đó ta có thể viết A dưới dạng tích của ba
ma trận
Các véc tơ riêng xi thường được chọn sao cho xTi xi = 1 Cách biểu diễn một
ma trận như (1.3.10) được gọi là eigendecomposition vì nó tách ra thành tíchcủa các ma trận đặc biệt dựa trên véc tơ riêng và trị riêng Ma trận các giátrị riêng Λ là một ma trận đường chéo Vì vậy cách khai triển này cũng cótên gọi là chéo hóa ma trận
Tính chất:
1 Khái niệm chéo hóa ma trận chỉ áp dụng với ma trận vuông Vì không
có định nghĩa giá trị riêng, véc tơ riêng cho ma trận không vuông
Trang 262 Không phải ma trận vuông nào cũng có thể chéo hóa được Ma trậnvuông bậc n chéo hóa được khi và chỉ khi nó có đủ n giá trị riêng độclập tuyến tính.
3 Nếu một ma trận là chéo hóa được, có nhiều hơn một cách chéo hóa matrận đó Đổi vị trí của λi và vị trí tương ứng các cột của X ta có mộtcách chéo hóa mới
4 Nếu A có thể viết được dưới dạng (1.3.10), khi đó các lũy thừa của nócũng chéo hóa được
Trang 27Mở rộng, một ma trận phức, Hecmitian A ∈ Cn×n được gọi là xác địnhdương nếu
= u2 + v2 − 2uv = (u − v)2 ≥ 0, ∀u, v ∈ R
(1.3.15)
1.3.7.2 Tính chất
1 Mọi trị riêng của ma trận xác định dương đều là số thực dương
2 Mọi ma trận xác định dương là khả nghịch, định thức của nó là một sốdương
1.3.8 Chuẩn của véc tơ và ma trận
Định nghĩa 1.3.1 Một hàm số f :Rn → R được gọi là một norm (chuẩn)
nếu nó thỏa mãn ba điều kiện sau đây:
1 f (x) ≥ 0 với mọi x Dấu bằng xảy ra khi x = 0
2 f (αx) = αf (x), với mọi α ∈ R
3 f (x1) + f (x2) ≥ f (x1) + f (x2) với mọi x1, x2 ∈ R
Một số chuẩn thông thường:
Chuẩn Euclide hay `2 norm:
mXi=1
nXj=1
Trang 28Vết của ma trận vuông là tổng tất cả các phần tử trên đường chéo chínhcủa nó, ký hiệu là trace(A).
1.3.9 Khoảng cách từ một điểm tới một siêu mặt phẳng
Trong không gian 2 chiều, ta biết rằng khoảng cách từ một điểm có toạ độ
(x0, y0) tới đường thẳng có phương trình w1x + w2y + b = 0 được xác địnhbởi:
|w1x0 + w2y0 + b|
p
Trong không gian ba chiều, khoảng cách từ một điểm có toạ độ (x0, y0, z0)
tới một mặt phẳng có phương trình w1x + w2y + w3z + b = 0 được xác địnhbởi:
Tổng quát lên không gian nhiều chiều: Khoảng cách từ một điểm (vector)
có toạ độ x0 tới siêu mặt phẳng (hyperplane) có phương trình wTx + b = 0
i d là số chiều của không gian
1.3.10 Tập lồi, hàm lồi
Định nghĩa 1.3.2 (Định nghĩa tập lồi.) Một tập hợp được gọi là tập lồi(convex set) nếu đoạn thẳng nối hai điểm bất kỳ trong tập đó nằm trọn vẹn
Trang 29trong tập hợp đó.
Một điểm được gọi là tổ hợp lồi của các điểm x1, x2, , xk nếu nó có thểviết được dưới dạng:
x = θ1x1 + θ2x2 + · · · + θkxk, with θ1 + θ2 + · · · + θk = 1
Định nghĩa 1.3.3 Một hàm số f: Rn → R được gọi là một hàm lồi (convex
function) nếu tập xác định của nó là một tập lồi và:
f (θx + (1 − θ)y) ≤ θf (x) + (1 − θ)f (y)
với mọi x, y thuộc tập xác định, 0 ≤ θ ≤ 1
1.3.11 Bài toán tối ưu, tối ưu lồi
Bài toán tối ưu là bài toán tìm giá trị của x để tối thiểu hàm f0(x) trong
số các giá trị của x thỏa mãn các điều kiện ràng buộc Cụ thể như sau:
x∗ = arg min
subject to: fi(x) ≤ 0, i = 1, 2, , m (1.3.22)
hj(x) = 0, j = 1, 2, , p (1.3.23)Một bài toán tối ưu lồi là một bài toán tối ưu có dạng
x∗ = arg min
subject to: fi(x) ≤ 0, i = 1, 2, , m (1.3.25)
aTj x − bj = 0, j = 1, , (1.3.26)trong đó f0, f1, , fm là các hàm lồi Vậy trong bài toán tới ưu lồi, ta tốithiểu hàm mục tiêu trên một tập lồi
1.3.12 Đối ngẫu
Phương pháp nhân tử Lagrange Xét bài toán
subject to: f1(x) = 0 (1.3.28)
Trang 30Đưa bài toán trên về bài toán tối ưu không ràng buộc để tìm nghiệm bằngcách giải hệ phương trình đạo hàm theo từng thành phần bằng 0 Hàm hỗtrợ L(x, λ) = f0(x) + λf1(x) được nhà toán học Lagrange sử dụng, gọi làhàm hỗ trợ (auxiliary function), hay the Lagrangian Điểm optimal value củabài toán thoả mãn điều kiện ∇x,λL(x, λ) = 0 Điều này tương đương với:
Việc giải hệ phương trình trên trong nhiều trường hợp đơn giản hơn việc tìmnghiệm tối ưu của bài toán ban đầu
Hàm đối ngẫu Lagrange
Lagrangian Với bài toán tối ưu tổng quát
L(x, λ, ν) = f0(x) +
mXi=1
λifi(x) +
pXj=1
νjhj(x) (1.3.34)
với λ = [λ1, λ2, , λm]; ν = [ν1, ν2, , νp] là các vectors và được gọi là dualvariables (biến đối ngẫu) hoặc Lagrange multiplier vectors (vector nhân tửLagrange) Lúc này nếu biến chính x ∈ Rn thì tổng số biến của hàm số này
sẽ là n + m + p
Hàm đối ngẫu Lagrange Hàm đối ngẫu Lagrange của bài toán tối ưu(hoặc gọn là hàm số đối ngẫu) là một hàm của các biến đối ngẫu, được định
Trang 31nghĩa là giá trị nhỏ nhất theo x của Lagrangian:
λifi(x) +
pXj=1
νjhj(x)
(1.3.36)
Nếu Lagrangian không bị chặn dưới, hàm đối ngẫu tại λ, ν sẽ lấy giá trị −∞
Chặn dưới của giá trị tối ưu Nếu p∗ là optimal value (giá trị tối ưu)của bài toán, thì với các biến đối ngẫu λi ≥ 0, ∀i và ν bất kỳ chúng ta sẽ có
νjhj(x0) ≤ 0 ⇒ L(x0, λ, ν) ≤ f0(x0) (1.3.37)
Vì điều này đúng với mọi x0, ta có tính chất quan trọng sau đây:
g(λ, ν) = inf
x∈DL(x, λ, ν) ≤ L(x0, λ, ν) ≤ f0(x0) (1.3.38)Khi x0 = x∗ ta có bất đẳng thức chặn dưới ở trên
Bài toán đối ngẫu Lagrange Với mỗi cặp (λ, ν), hàm đối ngẫu grange cho chúng ta một chặn dưới cho điểm tối ưu p∗ của bài toán gốc Tacần giải bài toán
Tính chất Đối ngẫu yếu Ký hiệu giá trị tối ưu của bài toán đối ngẫu
là d∗ Ta đã biết rằng d∗ ≤ p∗ ngay cả khi bài toán gốc không phải là lồi.Tính chất này được gọi là Đối ngẫu yếu, hay weak duality
Trang 32Tính chất đối ngẫu mạnh Nếu đẳng thức p∗ = d∗ thỏa mãn, ta nóirằng strong duality xảy ra Lúc này việc giải bài toán đối ngẫu đã giúp tatìm được chính xác giá trị tối ưu của bài toán gốc.
Điều kiện Slater
Định nghĩa 1.3.4 Một điểm chấp nhận được của bài toán được gọi là strictlyfeasible nếu:
fi(x) < 0, i = 1, 2, , m, Ax = b
Định lý 1.3.5 (Slater) Nếu tồn tại một điểm strictly feasible (và bài toángốc là lồi), thì strong duality xảy ra
1.3.13 Điều kiện tối ưu
Với một bài toán lồi và điều kiện Slater thoả mãn (suy ra strong duality)thì các điều kiện KKT là điều cần và đủ của nghiệm
Điều kiện Karush-Kuhn-Tucker (KKT)) cho bài toán không lồi: x∗, λ∗, ν∗
phải thoả mãn điều kiện:
λ∗i∇fi(x∗) +
pXj=1
KKT cho bài toán lồi: Với các bài toán lồi và strong duality xảy ra, cácđiệu kiện KKT phía trên cũng là điều kiện đủ Vậy với các bài toán lồi vớihàm mục tiêu và hàm ràng buộc là khả vi, bất kỳ điểm nào thoả mãn cácđiều kiện KKT đều là primal và dual optimal của bài toán gốc và bài toánđối ngẫu