1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

65 128 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 2,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

Số 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 2

Số 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 3

LỜ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 4

LỜ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 5

DANH 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 6

DANH MỤC KÝ HIỆU,

TỪ VIẾT TẮT

Trang 7

Argmin 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 8

MỤ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 9

MỞ ĐẦ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 10

phâ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 11

dụ 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 12

CHƯƠ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 13

khi 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 14

ngô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 15

sử 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 16

1 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 17

Bà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 18

rõ, 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 19

di 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 20

tí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 21

Ngoà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 22

Ma 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 23

Nế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 25

tấ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 26

2 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 27

Mở 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 28

Vế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 29

trong 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 31

nghĩ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 32

Tí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

Ngày đăng: 25/10/2019, 01:42

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Bishop, Christopher M.“Pattern recognition and Machine Learning.”, Springer (2006) Sách, tạp chí
Tiêu đề: Pattern recognition and Machine Learning
Tác giả: Christopher M. Bishop
Nhà XB: Springer
Năm: 2006
[3] LIBSVM – A Library for Support Vector Machines https://www.csie.ntu.edu.tw/ cjlin/libsvm/[4] sklearn.svm.SVC Sách, tạp chí
Tiêu đề: LIBSVM – A Library for Support Vector Machines
[7] Machine learning cơ bản, Vũ Hữu Tiệp., https://machinelearningcoban.com/ Sách, tạp chí
Tiêu đề: Machine learning cơ bản
Tác giả: Vũ Hữu Tiệp
[8] Eric Matthes, "Python Crash Course", 2016 Sách, tạp chí
Tiêu đề: Python Crash Course
[9] Võ Duy Tuấn, "Python rất là cơ bản", 2016 Sách, tạp chí
Tiêu đề: Python rất là cơ bản
[10] Đàm Thanh Phương, Trương Hà Hải, Ngô Mạnh Tưởng, Bùi Thị Thanh Xuân, "Giáo trình Toán cao cấp 1", NXB Đại học Thái Nguyên, 2016 Sách, tạp chí
Tiêu đề: Giáo trình Toán cao cấp 1
Nhà XB: NXB Đại học Thái Nguyên
[2] Duda, Richard O., Peter E. Hart, and David G. Stork. Pattern classifi- cation. John Wiley &amp; Sons, 2012 Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w