Quá trìnhtạo ra các mô hình này từ dữ liệu được gọi là quá trình học learning hoặc quá trìnhluyện training, và quá trình này được thực hiện bởi một thuật toán học learningalgorithm.. Tro
Trang 1BÁO CÁO BÀI TẬP LỚN MÔN: HỆ HỖ TRỢ QUYẾT ĐỊNH
ĐỀ TÀI
ĐẠI CƯƠNG VỀ HỌC KẾT HỢP
Giảng viên hướng dẫn: TS LÊ CHÍ NGỌC
Nhóm sinh viên thực hiện: Nhóm 2 (K62)
Hà Nội, tháng 04 năm 2020
Trang 2Mục lục
2.1 Phép phân tích phân biệt tuyến tính (Linear Discriminant Analysis) 4
2.2 Cây quyết định 5
2.3 Mạng neural 7
2.4 Trình phân lớp Na¨ıve Bayes 10
2.5 Thuật toán k-Láng giềng Gần nhất (k-Nearest Neighbor) 11
2.6 Máy vector hỗ trợ (Support Vector Machines) và Phương pháp Hạt nhân (Kernel Methods) 11
5 Ứng dụng của các phương pháp học kết hợp (Ensemble Methods) 19
Trang 31 Các khái niệm cơ bản
Một trong các nhiệm vụ chính của máy học (machine learning), nhận diện mẫu (patternrecognition) và khai phá dữ liệu (data mining) là để xây dựng lên những mô hình tốt
từ các bộ dữ liệu (data set)
Một bộ dữ liệu bao gồm các vector đặc trưng (feature vector) và mỗi vector này
là sự thể hiện của một vật thể bằng cách sử dụng một nhóm các đặc trưng Ví dụ, nhìnvào bộ dữ liệu three-Gaussian được thể hiện ở hình 1 Trong hình này, mỗi vật thể làmột điểm dữ liệu được thể hiện bởi trục x, trục y và hình dạng, và một vector đặc trưng(ví dụ: (.5, 8, chữ thập) hoặc (.4, 5, hình tròn)) Số đặc trưng của một bộ dữ liệu đượcgọi là số chiều của bộ dữ liệu; ví dụ, số chiều của bộ dữ liệu nói trên là 3 Các đặctrưng còn có thể được gọi là các thuộc tính, một vector đặc trưng có thể được gọi làmột trường hợp (instance) và đôi khi một bộ dữ liệu có thể được gọi là một mẫu thử(sample)
Hình 1: Bộ dữ liệu tổng hợp 3-Gaussian
Một mô hình thường là một mô hình dự đoán hoặc là một mô hình cấu trúccủa dữ liệu mà ta muốn xây dựng hoặc tìm ra từ bộ dữ liệu, ví dụ như cây quyết định(decision tree), mạng neural, máy vector hỗ trợ (support vector machine), Quá trìnhtạo ra các mô hình này từ dữ liệu được gọi là quá trình học (learning) hoặc quá trìnhluyện (training), và quá trình này được thực hiện bởi một thuật toán học (learningalgorithm) Có nhiều kiểu học khác nhau nhưng trong số này, phổ biến nhất là học cógiám sát (supervised learning) và học không giám sát (unsupervised learning) Vớihọc có giám sát, mục tiêu là dự đoán được giá trị của đặc điểm mục tiêu hoặc các
dữ liệu chưa từng gặp Ví dụ, nếu ta muốn dự đoán hình dạng của điểm dữ liệu Gaussians, ta gọi “chữ thập” và “hình tròn” là các nhãn (label), và mô hình cần dự đoánđược nhãn của thực thể chưa có nhãn Nếu nhãn có thể phân loại được, ví dụ như hình
Trang 4three-khối, bài toán được gọi là bài toán phân loại; nếu nhãn là số, ví dụ như tọa độ x, bàitoán được gọi là hồi quy Trong cả hai trường hợp, quá trình luyện được thực hiện trên
bộ dữ liệu bao gồm thông tin về nhãn dán và thực thể đã biết sẵn nhãn dán làm ví dụ.Với phân loại nhị phân, thường dùng “dương tính” và “âm tính” để biểu thị hai nhãn.Học không giám sát không phụ thuộc vào thông tin nhãn của dữ liệu, mục tiêu của côngviệc này là tìm ra các thuộc tính cố hữu trong bộ dữ liệu Công việc thường gặp trongquá trình học không giám sát là phân cụm (clustering), sử dụng để tìm ra các cấu trúccụm của các điểm dữ liệu
Một mô hình có thể coi là “tốt” hoặc không phụ thuộc vào việc nó có thể đáp ứngnhững yêu cầu của người dùng hay không Những người dùng khác nhau sẽ có những kỳvọng khác vào kết quả của quá trình học và công việc xác định được đâu là mức yêu cầuđúng trước khi vấn đề được bắt đầu xử lý là một công việc khó khăn Một chiến thuậtphổ biến là đánh giá và ước lượng sự thể hiện của một mô hình, và sau đó để người dùngquyết định liệu đây có phải một mô hình chấp nhận được, hoặc có thể chọn mô hìnhtốt nhất trong một nhóm các mô hình Vì một mục tiêu thiết yếu của việc ‘học’ là tínhkhái quát, ví dụ như có thể khái quát tri thức thu được từ bộ dữ liệu luyện đến những
số liệu chưa từng gặp, và một mô hình tốt thường có khả năng khái quát tốt, ví dụ nhưsai số dự đoán nhỏ Tuy nhiên, không thể ước đoán sai số khát quát này một cáchtrực tiếp vì việc này đòi hỏi phải biết nhãn, đầu ra thực sự của thông tin, điều khôngthể thực hiện với các dữ liệu chưa từng gặp qua Quy trình phổ thông là để mô hình dựđoán đưa ra dự đoán trên tập dữ liệu kiểm tra (các nhãn đúng đã được biết), rồi lấysai số trên tập này làm ước lượng cho sai số chung (generalization error) Quá trình sửdụng một mô hình đã luyện cho bộ dữ liệu mà mô hình này chưa từng gặp qua được gọi
là quá trình kiểm tra (testing) Trước khi kiểm tra, một mô hình cần được định hình,điều chỉnh các tham số, và quá trình này liên quan đến sử dụng dữ liệu đã được biếtnhãn, đầu ra chính xác để đánh ra mức độ thể hiện tốt hay không của mô hình; đây gọi
là quá trình đánh giá (validation) và bộ dữ liệu trên được gọi là bộ dữ liệu đánhgiá Bộ dữ liệu kiểm tra không nên bị trùng lặp với bộ dữ liệu đánh giá, nếu không mức
độ thể hiện của mô hình sẽ có thể bị đánh giá cao hơn so với thực tế
Một công thức thường thấy của quá trình học như sau: Giả thiết rằng X là khônggian các thực thể, D là một phân phối trên X, và f là hàm mục tiêu đúng Cho bộ dữliệu luyện D = (x1, y1) , (x2, y2) , , (xm, ym) , trong đó các thực thể xi được lấy từ
D một cách i.i.d (independently and identically distributed - phân phối độc lập và nhưnhau) và yi = f (xi) Lấy bài toán phân lớp làm ví dụ, thì mục tiêu sẽ là xây dựng mộtchương trình máy học h sao cho sai số tổng quát là cực tiểu:
err (h) = Ex∼DhI h (x) 6= f (x) (1)
Trang 52 Một số thuật toán học phổ biến
2.1 Phép phân tích phân biệt tuyến tính (Linear Discriminant
Analysis)
Một trình phân lớp tuyến tính gồm vector trọng số w và độ lệch b Cho mộtthực thể x, nhãn của lớp được dự đoán là y được tính theo:
y = sign(w>x + b) (2)Quá trình phân loại bao gồm 2 bước Đầu tiên, không gian thực thể được minh họa bằngkhông gian 1 chiều (ví dụ: đường thẳng) qua vector trọng số w; sau đó, một điểm trênđường thẳng được xác định để phân biệt giữa các thực thể có giá trị dương và thực thể
Có một bộ dữ liệu luyện gồm 2 lớp, từ các thực thể có giá trị dương tìm được kỳvọng µ+ và ma trận hiệp phương sai Σ+ ; tương tự, ta tìm được kỳ vọng µ− và ma trậnhiệp phương sai Σ− Khoảng cách giữa trung tâm của các lớp được tính như sau:
J (w) = SB(w)/SW(w), (5)khi đó nghiệm tối ưu có dạng:
w∗ = (Σ++ Σ−)−1(µ+ + µ−) (6)Sau khi đạt được giá trị w, rất dễ để tính được độ lệch b Cách đơn giản nhất là để b trởthành điểm chính giữa của các trung tâm, ví dụ:
b∗ = w>(µ+ + µ−) /2, (7)trong đó sẽ đạt tối ưu khi hai lớp có phân phối chuẩn và có cùng phương sai
Hình 2 dưới đây minh họa ranh giới quyết định của trình phân lớp LDA
Trang 6Hình 2: Ranh giới quyết định của một LDA đối với bộ dữ liệu 3-Gaussian
có, thực thể được phân loại là “chữ thập”, nếu không sẽ tiếp tục kiểm tra giá trị hoành
độ có lớn hơn 0.64 không; nếu có, thực thể được phân loại là “chữ thập”, còn nếu khôngthì được phân loại là “hình tròn”
Thuật toán cây quyết định nhìn chung là các quá trình hồi quy Ở mỗi bước, một
bộ dữ liệu được đưa ra và một cách chia được lựa chọn, sau đó, sử dụng cách chia này
để chia bộ dữ liệu này thành các bộ nhỏ hơn, mỗi bộ nhỏ hơn được coi là bộ dữ liệu chobước tiếp theo Chìa khóa của thuật toán cây quyết định là cách để lựa chọn các cáchchia Trong thuật toán ID3 (Quinlan, 1998), lượng thông tin thu được được sử dụnglàm tiêu chuẩn để lựa chọn cách chia Cho bộ dữ liệu luyện D, entropy của D được địnhnghĩa như sau:
Ent(D) = −X
y∈Y
P (y|D) log P (y|D) (8)
Nếu bộ dữ liệu luyện D được chia thành nhiều bộ nhỏ D1, D2, , Dk, lượng entropy có
Trang 7Hình 3: Một ví dụ về cây quyết địnhthể sẽ giảm và lượng giảm này được coi là thông tin thu được, ví dụ:
Việc thiếu hiệu quả của tiêu chí thông tin thu được được đề cập đến trong C4.5(Quinlan, 1993), thuật toán về cây quyết định nổi tiếng nhất C4.5 sử dụng tỷ lệ tăngthông tin (gain ratio):
Trang 8et al., 1984) cũng là một thuật toán nổi tiếng về cây quyết định khác, sử dụng chỉ sốGini (Gini Index) để lựa chọn cách chia để tối đa hóa Gini:
và post-pruning kiểm tra lại một cây đã hoàn thành và quyết định nên bỏ cành nào.Nếu có tập dữ liệu đánh giá, cây có thể được tỉa dựa trên lỗi của tập dữ liệu đánh giá;với pre-pruning, một cành sẽ không được phát triển nếu lỗi trên tập đánh giá tăng khithêm vào cành này; với post-pruning, một cành sẽ bị loại bỏ nếu việc này giúp giảm lỗitrên tập đánh giá
Các thuật toán về cây quyết định ban đầu, như ID3, chỉ có thể xử lý với các đặctính phân loại Các thuật toán về sau, như C4.5 và CART, có thể xử lý các đặt tính số.Cách đơn giản nhất để đánh giá mọi điểm chia trong đặc tính số là chia bộ dữ liệu luyệnthành 2 phần, với một tập chứa các thực thể có đặc tính nhỏ hơn điểm chia và tập kiachứa các thực thể còn lại
Khi chiều dài của cây quyết định được hạn chế là 1, nghĩa là chỉ cần 1 lần kiểm tra
để đưa ra mọi quyết định, cây được gọi là một gốc quyết định (decision stump) Mặc
dù cây quyết định là phân loại không tuyến tính nói chung, gốc quyết định là một kiểuphân loại tuyến tính
Hình 4 minh họa cho danh giới quyết định của một cây quyết định bình thường.2.3 Mạng neural
Mạng neural, hay còn được gọi là mạng thần kinh nhân tạo (artificial neuralnetworks), có nguồn gốc từ việc mô phỏng mạng lưới thần kinh sinh học Chức năngcủa một mạng neural được xác định dựa vào mô hình nơron, cấu trúc của mạng lưới và
Trang 9Hình 4: Ranh giới quyết định của một cây quyết định điển hình đối với bộ dữ liệuthree-Gaussian
thuật toán học
Mỗi nơron còn được gọi là một đơn vị (unit), là thành phần tính toán cơ bản trongmạng nơron Mô hình nơron phổ biến nhất, ví dụ mô hình McCulloch-Pitts (mô hìnhM-P), được minh họa trong Hình 5(a) Trong mô hình này, đầu tiên, các tín hiệu đầuvào được nhân với các trọng số kết nối tương ứng, và sau đó các tín hiệu được tổnghợp lại và so sánh với một giá trị ngưỡng (threshold), còn được gọi là độ lệch (bias) củanơron Nếu tín hiệu tổng hợp được lớn hơn độ lệch, nơron sẽ được kích hoạt và tín hiệuđầu ra được tạo ra bởi một hàm kích hoạt (activation function), còn được gọi là hàmchuyển (transfer function) hay hàm nén (squashing function)
Các nơron được liên kết với nhau bằng các trọng số kết nối để cấu thành một mạnglưới Có rất nhiều các cấu trúc mạng có thể có, trong số đó cấu trúc phổ biến nhất phải
kể tới mạng chuyển tiếp đa lớp (multi-layer feed-forward network), được minh họatrong Hình 5(b) Đối với cấu trúc này, các nơron được kết nối với nhau theo từng lớp,
và không tồn tại các kết nối trong cùng một lớp cũng như các kết nối giữa các lớp vớinhau Có một lớp đầu vào (input layer) tiếp nhận các vector đặc trưng đầu vào, trong
đó mỗi nơron thường tương ứng với một phần tử của vector đặc trưng Hàm kích hoạtđối với các nơron đầu vào thường được đặt là f (x) = x Một lớp đầu ra (output layer)xuất ra các nhãn, ở đó mỗi nơron thường tương ứng với một nhãn có thể có, hoặc mộtphần tử của một vector nhãn (label vector) Các lớp nằm giữa lớp đầu vào và lớp đầu
ra được gọi là các lớp ẩn (hidden layers) Các nơron ẩn và nơron đầu ra là các đơn vịchức năng (functional units), và một hàm kích hoạt phổ biến nhất cho chúng là hàm
Trang 10sigmoid (sigmoid function):
f (x) = 1
Mặc dù người ta có thể sử dụng một mạng neural với nhiều lớp ẩn, nhưng cài đặtphổ biến nhất là sử dụng một hoặc hai lớp ẩn, bởi vì người ta biết rằng một mạng chuyểntiếp với một lớp ẩn đã có thể xấp xỉ bất kỳ hàm liên tục nào, và các thuật toán phức tạphơn là cần thiết để ngăn chặn các mạng có nhiều lớp ẩn khỏi các vấn đề như sự phân kỳ(ví dụ, các mạng không hội tụ về trạng thái ổn định)
Hình 5: Minh họa về (a) một nơron và (b) một mô hình mạng neural
Mục tiêu của việc luyện một mạng neural là xác định giá trị của các trọng số kếtnối và độ lệch của các nơron Một khi các giá trị này được quyết định, hàm được tínhtoán bởi mạng neural cũng được quyết định Có nhiều thuật toán để luyện mạng neural
Ý tưởng được áp dụng thường xuyên nhất để luyện một mạng neural chuyển tiếp đa lớp
là, nếu như hàm kích hoạt khả vi (differentiable) thì toàn bộ mạng neural có thể xemnhư một hàm khả vi có thể được tối ưu hóa bằng phương pháp gradient descent
Thuật toán thành công nhất, lan truyền ngược (Back-Propagation, BP) [Werbos,
1974, Rumelhart et al., 1986], hoạt động như sau Đầu tiên, các đầu vào được truyền dẫn
từ lớp đầu vào qua các lớp ẩn tới lớp đầu ra, tại đó sai số được tính toán bằng cách sosánh đầu ra của mạng với với bộ nhãn thực sự (ground-truth) Sau đó, sai số sẽ được lantruyền ngược trở lại các lớp ẩn và lớp đầu vào, trong khi đó mỗi trọng số kết nối và độlệch được điều chỉnh để giảm dần sai số Quá trình này được thực hiện bằng cách điều
Trang 11chỉnh theo hướng độ dốc Quá trình như vậy được lặp lại nhiều lần, cho tới khi sai sốcủa quá trình luyện là nhỏ nhất hoặc quá trình luyện bị dừng lại để tránh sự quá khớp(overfitting).
2.4 Trình phân lớp Na¨ıve Bayes
Để phân lớp một thực thể thử nghiệm x, một phương pháp tiếp cận là xây dựngmột mô hình xác suất để ước lượng xác suất hậu nghiệm P y|x của các giá trị y khácnhau, và dự đoán một mô hình có xác suất hậu nghiệm lớn nhất; phương pháp này đượcgọi là quy tắc cực đại xác suất hậu nghiệm (the maximum a posterior (MAP) rule).Theo định lý Bayes, ta có:
P y|x= P x|y
P (y)
trong đó P (y) có thể được ước lượng bằng cách đếm số lần xuất hiện của lớp y trong tập
dữ liệu đào tạo, và P (x) có thể được bỏ qua vì chúng ta đang so sánh các giá trị y khácnhau đối với cùng một x Do đó chúng ta chỉ cần xem xét P x|y Nếu chúng ta có thểước lượng chính xác P x|y, ta sẽ thu được trình phân lớp tốt nhất về mặt lý thuyết từ
bộ dữ liệu đào tạo cho trước, đó chính là trình phân lớp Bayes tối ưu (Bayes optimalclassifier) với hệ số sai sót Bayes (Bayes error rate), hệ số sai sót nhỏ nhất theo lýthuyết Tuy nhiên, việc ước lượng P x|y không hề đơn giản, vì nó liên quan đến việcước lượng các số mũ của xác suất liên hợp (joint-probabilities) của các đặc trưng Để dễkiểm soát ước lượng, chúng ta cần một số giả thiết
Trình phân lớp Na¨ıve Bayes giả thiết rằng, cho nhãn các lớp, các đặc trưng thứ n
độc lập với nhau trong mỗi lớp Như vậy, ta có:
xi từ tập huấn luyện Trong quá trình thử nghiệm, một thực thể thử nghiệm x sẽ được
dự đoán có nhãn y nếu y tiến đến giá trị lớn nhất của
Trang 122.5 Thuật toán k-Láng giềng Gần nhất (k-Nearest Neighbor)Thuật toán k-láng giềng gần nhất (k-nearest neighbor, kNN) dựa trên ý tưởngchính rằng nếu các đối tượng giống nhau ở không gian đầu vào thì cũng giống nhau ởkhông gian đầu ra Đây là một phương pháp tiếp cận theo kiểu lười học (lazy learningapproach) vì nó không có quá trình đào tạo tường minh, thay vào đó chỉ đơn giản làlưu trữ tập huấn luyện Đối với một thực thể thử nghiệm, một chương trình máy học sửdụng k -láng giềng gần nhất sẽ xác định k thực thể từ bộ dữ liệu huấn luyện gần thựcthể thử nghiệm nhất Sau đó, để phân lớp, thực thể thử nghiệm sẽ được phân vào lớpchiếm đa số trong k thực thể đó, trong khi đối với hồi quy, thực thể thử nghiệm sẽ đượcgán giá trị trung bình của k thực thể Hình 6(a) minh họa cách thức phân lớp một thựcthể bằng một trình phân lớp 3-láng giềng gần nhất Hình 6(b) cho thấy ranh giới củamột trình phân lớp 1-láng giềng gần nhất, còn được gọi là trình phân lớp láng giềng gầnnhất.
Hình 6: Minh họa về (a) cách thức một trình phân loại k-láng giềng gần nhất dự đoánnhãn của một thực thể thử nghiệm, và (b) quyết định về ranh giới của trình phân lớpláng giềng gần nhất thử nghiệm trên bộ dữ liệu three-Gaussians
2.6 Máy vector hỗ trợ (Support Vector Machines) và Phương
pháp Hạt nhân (Kernel Methods)
Máy vector hỗ trợ (Support vector machines, SVMs) [Cristianini và Shawe-Taylor,2000], vốn ban đầu được thiết kế để giải quyết bài toán phân chia hai lớp (binary clas-sification), là một trình phân lớp lề rộng (large margin classifiers) với nguyên tắc là
cố gắng phân tách các thực thể vào hai lớp khác nhau với lề (margin) tới các siêu phẳng
là lớn nhất Lề được định nghĩa là khoảng cách nhỏ nhất từ các thực thể của mỗi lớptới siêu phẳng phân lớp