Khóa luận Thuật toán Bayes và ứng dụng

ĐẠI HỌC QUỐC GIA HÀ NỘI  
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ  
---------<>---------  
Nguyễn Văn Huy  
THUẬT TOÁN BAYES VÀ ỨNG DỤNG  
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY  
Ngành : Công NghThông Tin  
NỘI – 2009  
ĐẠI HỌC QUỐC GIA HÀ NỘI  
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ  
---------<>---------  
Nguyễn Văn Huy  
THUẬT TOÁN BAYES VÀ ỨNG DỤNG  
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY  
Ngành : Công NghThông Tin  
Cán bộ hướng dẫn: ThS. Nguyễn Nam Hải  
Cán bộ đồng hướng dẫn: ThS. Đỗ Hoàng Kiên  
NỘI – 2009  
Thuật toán Bayes và ứng dụng  
Lời cảm ơn  
Viết khóa luận khoa học là một trong những việc khó khăn nhất mà em phải  
hoàn thành từ trước đến nay. Trong quá trình thực hiện đề tài em đã gặp rất nhiều khó  
khăn và bỡ ngỡ. Nếu không có những sự giúp đỡ và lời động viên chân thành của  
nhiều thầy cô bạn bè và gia gia đình có lẽ em khó có thể hoàn thành luận văn này.  
Đầu tiên em xin gửi lời cảm ơn chân thành đến thày Nguyễn Nam Hải và thày  
Đỗ Hoàng Kiên đã trực tiếp hướng dẫn em hoàn thành luận văn này. Nhờ có thày mà  
em được tiếp cận với nguồn tài liệu giá trị cũng như những góp ý quý giá sau này. Bên  
cạnh sự giúp đỡ đó, em còn được các thày bên Trung tâm máy tính tạo mọi điều kiện  
tốt nhất về cơ sở vật chất cũng như hướng dẫn chỉ bảo ân cần để em được tiếp cận với  
hệ thng. Em biết ơn những ngày tháng được làm việc bên các thày, em không thể nào  
quên những ngày tháng tuyệt vời đó.  
Trong quá trình góp nhặt những kiến thức quý báu, các thày, cô, bạn bè là  
những người đã cùng em sát cánh trong suốt thời gian em học tập và nghiên cứu dưới  
mái trường Đại học Công nghệ.  
Trong những nỗ lực đó, không thể không kể đến công lao to lớn không gì có thể  
đền đáp của cha mẹ những người đã sinh thành, dưỡng dục con nên người, luôn nhắc  
nh, động viên con hoàn thành tốt nhiệm vụ.  
Nội  
Tháng 5, 2009  
Nguyn Văn Huy  
ii  
Thuật toán Bayes và ứng dụng  
Tóm tt nội dung  
Thống kê (toán học) là bộ môn toán học rất quan trọng và có nhiều ứng dụng to  
lớn trong thực tế, giúp con người rút ra thông tin từ dữ liệu quan sát, nhằm giải quyết  
các bài toán thực tế trong cuộc sống.  
Trong khóa luận này trình bày về một tiếp cận thống kê trong việc dự đoán sự  
kiện dựa vào lý thuyết Bayes. Lý thuyết này nói về việc tính xác suất của sự kiện dựa  
vào các kết quả thống kê các sự kiện trong quá khứ. Sau việc tính toán mỗi sự kiện  
được gán xác xuất hay điểm (tùy vào mỗi phương pháp đánh giá) ứng với khả năng có  
thể xảy ra với sự kiện đó. Và cuối cùng dựa vào ngưỡng để phân loại cho các sự kiện.  
Sau phần lý thuyết chúng ta sẽ tìm hiểu về bài toán thực tế trong ngành công  
nghệ thông tin. Bài toán về việc lọc thư rác tự động. Giải quyết bài này là sự kết hợp  
từ rất nhiều phương án như DNS Blacklist, kiểm tra người nhận, người gửi, dùng bộ  
lọc Bayes, chặn địa chỉ IP, Blacklist/Whitelist,.... Dùng bộ lọc Bayes là phương án  
thông minh nó gn gũi với người dùng bởi chính người dùng đã huấn luyện nó nhận  
biết thư rác. Khóa luận này tập chung vào việc tìm hiểu bộ lọc thư rác Bayesspam –  
mã nguồn mở, cài đặt cho hệ thống email có tên là SquirrelMail – mã nguồn mở đang  
được dùng cho hệ thống email của trường đại học Công nghệ - Coltech Mail. Kết quả  
cho thấy bộ lọc có mức độ hoạt động hiệu quả là khác nhau tùy thuộc việc người dùng  
huấn luyện cho bộ lọc thông qua các thư điện tử mà họ cho là thư rác nhưng nói chung  
bộ lọc đã đem lại hiệu quả khá tốt.  
iii  
Thuật toán Bayes và ứng dụng  
Mục lục  
Chương 1  
Giới thiệu.................................................................................. 1  
1.1 Tổng quan.......................................................................................................1  
1.2 Cấu trúc..........................................................................................................3  
Chương 2  
Cơ sở lý thuyết.......................................................................... 4  
2.1 Phát biểu định lý Bayes ..................................................................................4  
2.2 Cực tiểu hóa rủi ro trong bài toán phân lớp Bayes...........................................5  
2.3 Phân lớp Bayes chuẩn tắc .............................................................................13  
2.4 Miền quyết định............................................................................................20  
Chương 3  
Phân lớp Naive Bayes............................................................. 22  
3.1 Định nghĩa....................................................................................................22  
3.2 Các mô hình xác suất Naive Bayes ...............................................................23  
3.3 Ước lượng tham số .......................................................................................24  
3.4 Xây dựng một classifier từ mô hình xác suất.................................................25  
3.5 Thuật toán phân loại văn bản Naive Bayes....................................................25  
dụ: Phân loại thư điện tử bằng Naive Bayes classifier...................................27  
Chương 4  
Giải quyết bài toán lọc thư rác .............................................. 30  
4.1 Đặt vấn đề ....................................................................................................30  
4.2 Bài toán ........................................................................................................31  
4.3 Tiền xử lý mỗi lá thư điện tử.........................................................................31  
4.4 Dùng luật Bayes tính xác suất.......................................................................32  
4.5 Huấn luyện cho bộ lọc Bayes........................................................................33  
4.6 Lọc thư đến, có là thư rác không? .................................................................34  
4.7 Bộ lọc BayesSpam........................................................................................35  
4.8 Một số cải tiến cho bộ lọc BayesSpam..........................................................38  
Chương 5  
Kết luận .................................................................................. 40  
iv  
Thuật toán Bayes và ứng dụng  
Phụ lục A  
Cơ sở dữ liệu của bộ lọc .......................................................... 43  
Tài liệu tham khảo 44  
v
Thuật toán Bayes và ứng dụng  
Chương 1  
Giới thiệu  
1.1  
Tổng quan  
Khoa học thống kê đóng một vai trò cực kỳ quan trọng, một vai trò không thể  
thiếu được trong bất cứ công trình nghiên cứu khoa học, nhất là khoa học thực nghiệm  
như y khoa, sinh học, nông nghiệp, hóa học, và ngay cả xã hội học. Thí nghiệm dựa  
vào các phương pháp thống kê học có thể cung cấp cho khoa học những câu trả lời  
khách quan nhất cho những vấn đề khó khăn nhất.  
Khoa học thống kê là khoa học về thu thập, phân tích, diễn giải và trình bày  
các dữ liệu để từ đó tìm ra bản chất và tính quy luật của các hiện tượng kinh tế, xã hội  
- tự nhiên. Khoa học thống kê dựa vào lý thuyết thống kê, một loại toán học ứng dụng.  
Trong lý thuyết thống kê, tính chất ngẫu nhiên và sự không chắc chắn có thể làm mô  
hình dựa vào lý thuyết xác suất. Vì mục đích của khoa học thống kê là để tạo ra thông  
tin "đúng nhất" theo dữ liệu có sẵn, có nhiều học giả nhìn khoa thống kê như một loại  
lý thuyết quyết định.  
Thống kê là một trong những công cụ quản lý vĩ mô quan trọng, cung cấp các  
thông tin thống kê trung thực, khách quan, chính xác, đầy đủ, kịp thời trong việc đánh  
giá, dự báo tình hình, hoạch định chiến lược, chính sách, xây dựng kế hoạch phát triển  
kinh tế - xã hội và đáp ứng nhu cầu thông tin thống kê của các tổ chức, cá nhân. Trong  
số những vai trò quan trọng thì dự báo tình hình là một trong những vai trò mang  
nhiều ý nghĩa, nó có cả một quá trình huấn luyện bên trong và có tính xử lý tự động  
khi đã được huấn luyện. Hay nói khác hơn là khi đã có tri thức lấy từ các dữ liệu thống  
kê hay kinh nghiệm của người dùng kết hợp với một phương pháp học (huấn luyện)  
dựa trên lý thuyết thống kê ta sẽ có được một cỗ máy có tri thức để tự nó có thể đưa ra  
được những quyết định với độ chính xác khá cao.  
Phân tích thống kê là một khâu quan trọng không thể thiếu được trong các  
công trình nghiên cứu khoa học, nhất là khoa học thực nghiệm. Một công trình nghiên  
cứu khoa học, cho dù có tốn kém và quan trọng cỡ nào, nếu không được phân tích  
đúng phương pháp sẽ không bao giờ có cơ hội được xuất hiện trong các tập san khoa  
học. Ngày nay, chỉ cần nhìn qua tất cả các tập san nghiên cứu khoa học trên thế giới,  
hầu như bất cứ bài báo y học nào cũng có phần “Statistical Analysis” (Phân tích thống  
kê), nơi mà tác giả phải mô tả cẩn thận phương pháp phân tích, tính toán như thế nào,  
và giải thích ngắn gọn tại sao sử dụng những phương pháp đó để hàm ý “bảo kê” hay  
1
Thuật toán Bayes và ứng dụng  
tăng trọng lượng khoa học cho những phát biểu trong bài báo. Các tập san y học có uy  
tín càng cao yêu cầu về phân tích thống kê càng nặng. Không có phần phân tích thống  
kê, bài báo không thể xem là một “bài báo khoa học”. Không có phân tích thống kê,  
công trình nghiên cứu chưa được xem là hoàn tất.  
Trong khoa học thống kê, có hai trường phái “cạnh tranh” song song với nhau,  
đó là trường phái tần số (frequentist school) và trường phái Bayes (Bayesian school).  
Phần lớn các phương pháp thống kê đang sử dụng ngày nay được phát triển từ trường  
phái tần số, nhưng hiện nay, trường phái Bayes đang trên đà “chinh phục” khoa học  
bằng một suy nghĩ “mới” về khoa học và suy luận khoa học. Phương pháp thống kê  
thuộc trường phái tần số thường đơn giản hơn các phương pháp thuộc trường phái  
Bayes. Có người từng ví von rằng những ai làm thống kê theo trường phái Bayes là  
những thiên tài!  
Để hiểu sự khác biệt cơ bản giữa hai trường phái này, có lẽ cần phải nói đôi  
qua vài dòng về triết lý khoa học thống kê bằng một ví dụ về nghiên cứu y khoa. Để  
biết hai thuật điều trị có hiệu quả giống nhau hay không, nhà nghiên cứu phải thu thập  
dữ liệu trong hai nhóm bệnh nhân (một nhóm được điều trị bằng phương pháp A, và  
một nhóm được điều trị bằng phương pháp B). Trường phái tần số đặt câu hỏi rằng  
“nếu hai thuật điều trị có hiệu quả như nhau, xác suất mà dữ liệu quan sát là bao  
nhiêu”, nhưng trường phái Bayes hỏi khác: “Với dữ liệu quan sát được, xác suất mà  
thuật điều trị A có hiệu quả cao hơn thuật điều trị B là bao nhiêu”. Tuy hai cách hỏi  
thoạt đầu mới đọc qua thì chẳng có gì khác nhau, nhưng suy nghĩ kỹ chúng ta sẽ thấy  
đó là sự khác biệt mang tính triết lý khoa học và ý nghĩa của nó rất quan trọng. Đối với  
người bác sĩ (hay nhà khoa học nói chung), suy luận theo trường phái Bayes là rất tự  
nhiên, rất hợp với thực tế. Trong y khoa lâm sàng, người bác sĩ phải sử dụng kết quả  
xét nghiệm để phán đoán bệnh nhân mắc hay không mắc ung thư (cũng giống như  
trong nghiên cứu khoa học, chúng ta phải sử dụng số liệu để suy luận về khả năng của  
một giả thiết).  
2
Thuật toán Bayes và ứng dụng  
1.2  
Cấu trúc  
Các phần còn lại của khóa luận có cấu trúc như sau:  
Chương 2 trình bày cơ sở lý thuyết Bayes các khái niệm, phương pháp được  
sử dụng trong khoá luận.  
Chương 3 trình bày lý thuyết Bayes nâng cao - Naive Bayes. Chương này sẽ  
đề cập đến khái niệm, ưu điểm ứng dng phân loại của nó từ đó căn cnghiên cứu  
xây dựng hệ thống phân loại văn bản.  
Chương 4 trình bày chi tiết về bộ lọc bao gồm các vấn đề vcơ stri thức,  
việc huấn luyện cho bộ lọc, cách thức làm việc và hướng cải tiến trong việc lọc thư  
rác.  
Chương 5 trình bày kết luận về chương trình ứng dụng bộ lọc BayesSpam cài  
đặt trên hệ thống thư điện tử Squirrelmail.  
3
Thuật toán Bayes và ứng dụng  
Chương 2  
Cơ sở lý thuyết  
2.1 Phát biểu định lý Bayes  
Định lý Bayes cho phép tính xác suất xảy ra của một sự kiện ngẫu nhiên A khi  
biết sự kiện liên quan B đã xảy ra. Xác suất này được ký hiệu là P(A|B), và đọc là  
"xác suất của A nếu có B". Đại lượng này được gọi xác suất có điều kiện hay xác suất  
hậu nghiệm vì nó được rút ra từ giá trị được cho của B hoặc phụ thuộc vào giá trị đó.  
Theo định lí Bayes, xác suất xảy ra A khi biết B sẽ phụ thuộc vào 3 yếu tố:  
Xác suất xảy ra A của riêng nó, không quan tâm đến B. Kí hiệu là  
P(A) và đọc là xác suất của A. Đây được gọi là xác suất biên duyên  
hay xác suất tiên nghiệm, nó là "tiên nghiệm" theo nghĩa rằng nó không  
quan tâm đến bất kỳ thông tin nào vB.  
Xác suất xảy ra B của riêng nó, không quan tâm đến A. Kí hiệu là  
P(B) và đọc là "xác suất của B". Đại lượng này còn gọi là hằng số  
chuẩn hóa (normalising constant), vì nó luôn giống nhau, không phụ  
thuộc vào sự kiện A đang muốn biết.  
Xác suất xảy ra B khi biết A xảy ra. Kí hiệu là P(B|A) và đọc là "xác  
suất của B nếu có A". Đại lượng này gọi là khả năng (likelihood) xảy  
ra B khi biết A đã xảy ra. Chú ý không nhầm lẫn giữa khả năng xảy ra  
A khi biết B và xác sut xảy ra A khi biết B.  
Khi biết ba đại lượng này, xác suất của A khi biết B cho bởi công thức:  
4
Thuật toán Bayes và ứng dụng  
.
2.2 Cực tiểu hóa rủi ro trong bài toán phân lớp  
Bayes  
Bây gixem xét bài toán nút chai, hãy hình dung rằng nhà máy sản xuất được 2  
loại là: w1 = Super w2 = Average  
Giả sử thêm rằng nhà máy có một hồ sơ của các kho chứa sản phẩm để lưu giữ,  
tóm lược lại như sau:  
Số nút chai của lớp w1: n1 = 901 420  
Số nút chai của lớp w2: n2 = 1 352 130  
Tổng số nút chai: n = 2 253 550  
Theo đó ta dễ dàng tính được xác suất để một nút chai thuộc lớp nào trong 2  
lớp, đây gọi là xác suất tiên nghiệm hay là prevalences:  
P(w1) = n1/n = 0.4  
P(w2) = n2/n = 0.6  
(1-1)  
Để ý rằng xác suất tiên nghiệm trên không phải hoàn toàn phụ thuộc vào nhà  
máy sản xuất mà nó chủ yếu vào chất lượng của nguyên liệu. Tương tự một bác sĩ  
chuyên khoa tim không thể nào kiểm soát xác suất bệnh nhồi máu cơ tim của một  
nhóm dân cư. Prevalences có thể làm điều đó bởi vì nó liên quan đến trạng thái tự  
nhiên.  
Giả sử bài toán yêu cầu thực hiện một quyết định không rõ ràng, chẳng hạn  
chọn lớp cho cái nút chai bất kỳ mà không biết gì về nút chai đó. Nếu chỉ có thông tin  
là xác suất tiên nghiệm thì ta sẽ chọn lớp w2. Với cách này chúng ta mong rằng nó chỉ  
sai 40% số lần.  
Giả sử rằng chúng ta có thể đo được vecto đặc trưng của nút chai, p(wi|x) là  
xác suất có điều kiện mô tả xác suất để đối tượng x thuộc lớp wi. Nếu chúng ta có thể  
xác định xác suất p(w1|x) và p(w2|x) dễ thấy rằng:  
Nếu P(w1| x) > P(w2|x) ta phân x vào w1;  
Nếu P(w1| x) < P(w2|x) ta phân x vào w2;  
Nếu P(w1| x) = P(w2| x) chọn tùy ý  
Tóm lại:  
if P(w1|x) > P(w2|x) then x w1 else x w2.  
(1-2a)  
5
Thuật toán Bayes và ứng dụng  
Xác suất hậu nghiệm P(wi|x) có thể tính được nếu chúng ta biết pdfs (các hàm  
mật độ xác suất) của các phân phối vec tơ đặc trưng của 2 lớp. Sau đó ta tính các xác  
suất p(x|wi) , là xác suất để đối tượng thuộc lớp wi có đặc trưng là x gọi là  
likelihood of x tạm dịch là khả năng xảy ra x hay là hợp lý của x. Thực tế ta dùng  
công thức Bayes:  
p(x | wi )P(wi )  
p(wi | x)  
(1-3)  
p(x)  
c
Với:  
p(x) p(x | w )P(w )  
i
i
i1  
Lưu ý rằng P(wi) P(wi|x) là các xác suất rời rạc, trái lại p(x|wi) p(x) là  
các giá trị của hàm mật độ xác suất. Để ý rằng khi so sánh (1-2a) ta có giá trị chung là  
p(x) do đó ta viết lại:  
if p(x|w1) P(w1) > p(x|w2)P(w2) then x w1 else x w2. (1-4)  
Hay là:  
p(x | w1) p(w2 )  
v(x)   
then x w1 else x w2. (1-4a)  
p(x | w2 ) p(w1)  
Trong công thức (1-4a) thì v(x) gọi là tỷ số hợp lý (likelihood ratio)  
6
Thuật toán Bayes và ứng dụng  
Hình 1: Biểu đồ của đặc trưng N cho hai lớp học của các nút chai. Giá trị  
ngưỡng N = 65 được đánh dấu bằng một đường thẳng đứng  
Giả sử rằng mỗi nút chai chỉ có một đặc trưng là N, tức là vec tơ đặc trưng là x = [N],  
giả sử có một nút chai có x = [65].  
Từ đồ thị ta tính được các xác suất likelihood:  
p(x|w1) = 20/24 = 0.833 → P(w1) p(x|w1) = 0.333 (1-5a)  
p(x|w2) = 16/23 = 0.696 → P(w2) p(x|w1) = 0.418 (1-5b)  
Ta sẽ phân x = [65] vào lớp w2 mặc dù hợp lý(likelihood) của w1 lớn hơn  
của w2  
Hình 2 minh họa ảnh hưởng của việc điều chỉnh ngưỡng xác suất tiên nghiệm  
đến các hàm mật độ xác suất.  
Xác suất tiên nghiệm đồng nhất (equal prevalences). Với các hàm mật độ  
xác suất đồng nhất, ngưỡng quy định là một nửa khoảng cách đến phần tử  
trung bình. Số lượng các trường hợp phân lớp sai tương ứng với vùng được  
tô đậm. Đây là vùng mà khoảng cách phân lớp là nhỏ nhất.  
Xác suất tiên nghiệm của w1 lớn hơn của w2. Ngưỡng quyết định thay thế  
các lớp có xác suất tiên nghiệm nhỏ hơn. Vì vậy giảm số trường hợp của lớp  
có xác suất tiên nghiệm cao dường như có vẻ thuận tiện.  
7
Thuật toán Bayes và ứng dụng  
Hình 2: Xác suất tiên nghiệm đồng nhất (a), không đồng nhất (b).  
Chúng ta thấy rằng thật sự độ lệch ngưỡng quyết định đã dẫn đến lớp w2 tốt  
hơn lớp w1. Điều này nghe có vẻ hợp lý kể từ khi mà bây giờ lớp w2 xuất hiện thường  
xuyên hơn. Khi độ sai toàn phần tăng lên điều kỳ lạ là sự ảnh hưởng của xác suất tiên  
nghiệm là có lợi. Câu trả lời cho câu hỏi này là liên quan đến chủ đề phân lớp mạo  
hiểm, mà sẽ được trình bày ngay bây giờ.  
Chúng ta giả định rằng giá của một nút chai (cork stopper) thuộc lớp w1 là  
0.025£, lớp w2 0.015£. Giả sử là các nút chai lớp w1 được dùng cho các chai đặc  
biệt, còn các nút chai lớp w2 thì dùng cho các chai bình thường.  
Nếu ta phân lớp sai một nút chai lớp w1 thì sẽ bị mất 0.025-0.015=0.01£.  
Nếu phân lớp sai một nút chai lớp w2 thì dẫn đến nó sẽ bị loại bỏ và sẽ bị mất 0.015£.  
Ta ký hiệu:  
SB - Hành động của việc sử dụng một nút chai(cork stopper) để phân  
cho loại chai đặc biệt.  
NB - Hành động của việc sử dụng một nút chai(cork stopper) để phân  
cho loại chai bình thường.  
w1 = S (siêu lớp); w2 = A (lớp trung bình)  
8
Thuật toán Bayes và ứng dụng  
Hình 3: Kết quả phân lớp của cork stoppers với xác suất tiên nghiệm không đồng  
nhất: 0.4 cho lớp w1 0.6 cho lớp w2  
Định nghĩa:  
λij = λ(αi | wj ) là độ mất mát với hành động αi khi mà lớp đúng là wj, với  
αi{SB, NB}.  
λ11 = λ(α1 | w1 ) = λ(SB | S) = 0,  
λ12 = λ(α1 | w2 ) = λ(SB | A) = 0.015,  
λ21 = λ(α2 | w1 ) = λ(NB | S) = 0.01,  
λ22 = λ(α2 | w2 ) = λ(NB | A) = 0.  
9
Thuật toán Bayes và ứng dụng  
Chúng ta có thể sắp xếp λij thành ma trận hao pΛ.  
0 0.015  
Λ =  
(1-6)  
0.01  
0
Vì thế độ mất mát với hành động sử dụng một nút chai (mô tả bởi vectơ đặc  
trưng x) và phân vào cho những chai đặc biệt có thể được biểu thị như sau:  
R(α1 | x) = R(SB | x) = λ(SB | S)P(S | x) + λ(SB | A)P(A | x) (1-6a)  
R(α1 | x) = 0.015 P(A | x)  
Tương tự cho trường hợp nếu phân cho những chai thông thường:  
R(α2 | x) = R(NB | x) = λ(NB | S)P(S | x) + λ(NB | A)P(A | x) (1-6b)  
R(α2 | x) = 0.01P(S | x)  
Chúng ta giả định rằng đánh giá rủi ro chỉ chịu ảnh hưởng từ quyết định sai.  
Do vậy một quyết định chính xác sẽ không gây ra thiệt hại λii=0, như trong (1-6).  
Nếu thay vì 2 lớp chúng ta có c lớp thì sự mất mát ứng với một hành động αi sẽ là:  
c
(1-6c)  
R(| x) (|)P(| x)  
i
i
j
j
j1  
Chúng ta quan tâm đến việc giảm thiểu mức rủi ro trung bình tính cho một  
lượng lớn nút chai bất kỳ. Công thức Bayes cho rủi ro nhỏ nhất làm được điều này  
bằng cách cực tiểu hóa các rủi ro có điều kiện R(αi | x).  
Giả sử ban đầu rằng các quyết định sai lầm có cùng một mất mát, chúng có tỉ lệ  
với một đơn vị mất mát:  
0 if i j  
(|)   
ij  
i
j
(1-7a)  
1 if j j  
Trong trường hợp này từ tất cả các xác suất hậu nghiệm đều tăng lên một,  
chúng ta cần phải cực tiểu hóa:  
R(| x) P(| x) 1P(| x)  
(1-7b)  
i
j
j
ij  
10  
Thuật toán Bayes và ứng dụng  
Điều này tương đương với việc chúng ta cực đại P(wi | x), luật quyết định  
Bayes cho rủi ro cực tiểu tương ứng với việc tổng quát hóa vấn đề:  
Phân lớp wi nếu P(wi | x) > P(wj | x), j i  
(1-7c)  
Tóm lại: luật quyết định Bayes cho rủi ro cực tiểu, khi sự phân lớp đúng thì không bị  
mất mát và nếu như phân lớp sai thì có mất mát, ta cần phải chọn được lớp có xác  
suất hậu nghiệm là cức đại.  
Hàm quyết định cho lớp wi là:  
gi(x) = P(wi | x)  
(4-18d)  
Bây giờ hãy xem xét các tình huống khác nhau của các thiệt hại xảy ra cho  
những quyết định sai lầm, để cho đơn giản giả sử c = 2. Dựa vào các biểu thức (1-6a)  
và (1-6b) thật dễ nhận thấy rằng một nút chai sẽ thuộc lớp w1 nếu:  
12 P(2 | x)  
<
21P(1 | x)  
12P(w2 ) P(x | w )  
1
Hay là  
(1-8)  
21P(w ) P(x | w2 )  
1
Vì thế ngưỡng quyết định so với tỷ số hợp lý(likelihood) thì nó nghiêng về sự  
mất mát. Ta có thể cài đặt luật quyết định Bayes như hình 5.  
Tương tự chúng ta có thể điều chỉnh xác suất tiên nghiệm như sau:  
12 P(w2 )  
21P(w )  
P* (w2 )   
P* (w )   
1
;
(1-8a)  
1
21P(w )12P(w2 )  
21P(w )12P(w2 )  
1
1
11  
Thuật toán Bayes và ứng dụng  
Với sự mất mát λ12 = 0.015 λ21 = 0.01, sử dụng xác suất tiên nghiệm ở  
trên ta được P*(w1) = 0.308 P*(w2) = 0.692. Sự thiệt hại sẽ là lớn hơn nếu như  
phân lớp sai lớp w2 do đó cần tăng P*(w2) lên so với P*(w1). Kết quả của việc điều  
chỉnh là giảm số lượng các phần tử thuộc lớp w2 bị phân lớp sai thành w1. Xem kết  
quả phân lớp ở hình ở hình 6.  
Ta có thể tính giá trị rủi ro trung bình trường hợp có 2 lớp:  
R P(w | x) p(x)dx P(w | x) p(x)dx Pe Pe  
(1-9)  
12  
2
21  
1
12  
12  
21  
21  
R1  
R2  
12  
Thuật toán Bayes và ứng dụng  
và lớp 2  
R2 R2 là miền quyết định của lớp  
, còn Peij là xác suất sai  
1
khi mà lớp đúng là j  
số của sự quyết định lớp là  
i
Chúng ta hãy sử dụng tập dữ liệu huấn luyện để đánh giá những sai số này,  
Pe12=0.1 Pe21=0.46 (xem hình 6). Rủi ro trung bình đối với mỗi nút chai bây giờ  
là:  
R = 0.015Pe12 + 0.01Pe21 = 0.0061Є.  
Với là tập các lớp ta có công thức (1-9) tổng quát:  
R   
((x) |)P(, x)dx   
((x) |i )P(i , x) p(x)dx  
(1-9a)  
i
i
  
  
X
X
i
i
Luật quyết định Bayes không phải là lựa chọn duy nhất trong thống kê phân  
lớp. Cũng lưu ý rằng, trong thực tế một trong những cố gắng để giảm thiểu rủi ro trung  
bình là sử dụng ước lượng của hàm mật độ xác suất tính được từ một tập dữ liệu huấn  
luyện, như chúng ta đã làm ở trên cho cork Stoppers. Nếu chúng ta có những căn cứ để  
tin rằng các hàm phân phối xác suất thỏa mãn tham số mẫu, thì ta thay thế việc tính  
các tham biến thích hợp từ tập huấn luyện. Hoặc là chúng ta cũng có thể sử dụng  
phương pháp cực tiểu hóa rủi ro theo kinh nghiệm (empirical risk minimization  
(ERM)), nguyên tắc là cực tiểu hóa rủi ro theo kinh nghiệm thay vì rủi ro thực tế.  
2.3 Phân lớp Bayes chuẩn tắc  
Cho đến giờ chúng ta vẫn chưa giả định đặc trưng của phân phối mẫu cho  
likelihoods. Tuy nhiên, mô hình chuẩn tắc là một giả định hợp lý. Mô hình chuẩn tắc  
có liên quan đến định lý giới hạn trung tâm nổi tiếng, theo định lý này thì tổng của một  
lượng lớn các biến ngẫu nhiên độc lập và phân phối đồng nhất sẽ có phân phối hội tụ  
về luật chuẩn. Thực tế ta có được một xấp xỉ đến luật chuẩn tắc, thậm chí với cả một  
số lượng tương đối nhỏ được thêm vào các biến ngẫu nhiên. Đối với các đặc trưng có  
thể được coi là kết quả của việc bổ sung các biến độc lập, thường thì giả định là có thể  
chấp nhận.  
Likelihood chun tắc của lớp ωi được biểu diễn bởi hàm mật độ xác suất:  
13  
Thuật toán Bayes và ứng dụng  
µi i là các tham số phân phối, đến giờ thì ta đã sử dụng các ước lượng  
mẫu mi Ci.  
Hình 7 minh họa phân phối chuẩn trong trường hợp có hai chiều.  
Cho một tập huấn luyện có n mẫu T={x1, x2, … xn} được mô tả bởi một phân  
phối với hàm mật độ xác suất là p(T | θ), θ là một vec tơ tham số của phân phối  
(chẳng hạn như vec tơ trung bình của phân phối chuẩn). Một cách đáng chú ý tính  
được ước lượng mẫu của vectơ tham biến là cực đại hóa hàm mật độ xác suất p(T | θ),  
có thể coi dây là một hàm của θ gọi là likelihood of θ cho tập huấn luyện. Giả sử rằng  
mỗi mẫu là đưa vào độc lập từ một tập vô hạn, chúng ta có thể biểu thị likelihood như  
sau:  
n
p(T |)   
p(x |)  
i
i1  
Khi sử dụng ước lượng hợp lý cực đại (maximum likelihood estimation) của  
các biến phân phối thì nó thường dễ dàng hơn là tính cưc đại của ln[p(T|θ)], điều này  
là tương đương nhau. Với phân phối Gauss ước lượng mẫu được cho bởi các công  
thức (1-10a) và (1-10b) chính là ước lượng hợp lý cực đại và nó sẽ hội tụ về một giá trị  
thực.  
14  
Thuật toán Bayes và ứng dụng  
Như có thể nhìn thấy từ (1-10), các bề mặt của mật độ xác suất đồng nhất với  
hợp lý chuẩn (normal likelihood) thỏa mãn Mahalanobis metric:  
Bây giờ chúng ta tiếp tục tính hàm quyết định cho các đặc trưng của phân phối  
chun:  
gi(x) = P(ωi | x) = Pi) p(x | ωi) (1-11)  
biến đổi logarit ta được:  
Bằng cách sử dụng những hàm quyết định, rõ ràng phụ thuộc Mahalanobis  
metric, ta có thể xây dựng phân lớp Bayes với rủi ro nhỏ nhất, đây là phân lớp tối ưu.  
Chú ý rằng công thức (1-11b) sử dụng giá trị thật của khoảng cách Mahalanobis, trong  
khi mà trước đó chúng ta sử dụng ước lượng của khoảng cách này.  
Với trường hợp covariance đồng nhất cho tất cả các lớp (i=) và bỏ qua các  
hằng số ta được:  
(1-11c)  
1
1(x i ) ln P(i )  
h (x)   (x )  
i
i
2
15  
Thuật toán Bayes và ứng dụng  
Với bài toán 2 lớp, biệt số d(x) =h1(x)-h2(x) là dễ đàng tính toán:  
Qua đó ta có được hàm quyết định tuyến tính  
Hai lớp phân biệt với phân phối chuẩn, xác suất tiên nghiệm đồng nhất và  
covariance và vẫn còn có một công thức rất đơn giản cho xác suất của lỗi của phân  
lớp:  
16  
Thuật toán Bayes và ứng dụng  
bình phương của khoảng cách Bhattacharyya, một khoảng cách Mahalanobis  
của sai phân trung bình, thể hiện tính dễ tách lớp.  
Hình 8 thể hiện dáng điệu của Pe với sự tăng dần của bình phương khảng cách  
Bhattacharyya. Hàm này giảm dần theo cấp số mũ và nó hội tụ tiệm cận tới 0. Vì vậy  
thật khó để giảm sai số phân lớp khi giá trị này là nhỏ.  
Lưu ý rằng ngay cả khi các phân phối mẫu không phải là phân phối chuẩn, miễn  
là chúng đối xứng và phải tuân theo Mahalanobis metric, thì chúng ta sẽ thu được mặt  
phân lớp quyết định tương tự như phân lớp chuẩn, cho dù có sự khác biệt về đánh giá  
sai số và xác suất hậu nghiệm. Để minh họa ta hãy xét hai lớp có xác suất tiên nghiệm  
đồng nhất và có ba loại phân phối đối xứng, với cùng độ lệch tiêu chuẩn và trung bình  
0 và 2.3 như hình 9.  
17  
Thuật toán Bayes và ứng dụng  
Phân lớp tối ưu cho 3 trường hợp sử dụng cùng một ngưỡng quyết định có giá  
trị 1.15, tuy nhiên các sai số phân lớp là khác nhau:  
Nomal:  
Cauchy:  
Pe = 1 – erf(2.3/2) = 12.5%  
Pe = 22.7%  
Logistic: Pe = 24.0%  
Kết quả thực nghiệm cho thấy, khi ma trận covariance đưa ra độ lệch giới hạn,  
thì sự phân lớp có thể thực hiện một cách tương tự với phương pháp tối ưu với điều  
kiện các covariance là đồng nhất. điều này là hợp lý vì khi các covariance không khác  
biệt nhau nhiều thì sự khác biệt giữa các giải pháp bậc hai và tuyến tính chỉ đáng kể  
khi các mẫu cách xa nguyên mẫu như ở hình 10.  
Chúng ta sẽ minh họa bằng cách sử dụng bộ dữ liệu Norm2c2d. Sai số lý  
thuyết đối với trường hợp hai lớp, hai chiều và bộ dữ liệu trên là:  
0.8 0.8 2  
    
δ2 =  
2 3  
8 Pe 1erf ( 2) 7.9%  
    
0.8 1.6 3  
    
Ước lượng sai số của bộ dữ liệu huấn luyện cho tập dữ liệu này là 5%. Bằng  
cách đưa vào sai số ±0.1 vào các giá trị của ma trận ánh xạ A cho bộ dữ liệu, với độ  
lệch nằm giữa 15% 42% giá rị của covariance, ta được sai số tập huấn luyện là  
6%.  
18  
Thuật toán Bayes và ứng dụng  
Trở lại với dữ liệu các nút chai, ta có bài toán phân lớp sử dụng 2 đặc trưng N  
PRT với xác suất tiên nghiệm đồng nhất. Lưu ý phân lớp thống kê ngoài tính toán  
số nó không làm thay đổi các phép toán, vì thế mà các kết quả đạt được là giống nhau  
nếu như sử dụng PRT hay PRT10.  
Một danh sách riêng các xác suất hậu nghiệm hữu ích trong tính toán các sai số  
phân lớp, xem hình 11.  
Cho các ma trận covariances ở trong bảng 1. Độ lệch của các phần tử trong ma  
trận covariance so với giá trị trung tâm nằm trong khoảng từ 5% đến 30%. Hình dáng  
của các cụm là tương tự nhau, đây là bằng chứng để tin rằng việc phân lớp là gần với  
tối ưu.  
Bằng cách sử dụng hàm quyết định dựa trên các ma trận covariance riêng lẻ,  
thay vì chỉ một ma trận tổng covariance, ta sẽ xây dựng được đường biên quyết định  
bâc hai. Tuy nhiên phân lớp bằng đường bậc hai khó tính độ lệch hơn so với phân lớp  
tuyến tính, đặc biệt là trong không gian nhiều chiều, và ta cần phải có một lượng lớn  
tập dữ liệu huấn luyện (xem ví dụ của Fukunaga and Hayes, 1989).  
19  
Thuật toán Bayes và ứng dụng  
2.4 Miền quyết định  
Trong thực tế của các ứng dụng nhân dạng mẫu, đơn giản ta chỉ cần sử dụng  
một luật quyết định như các công thức (1-2a) và (1-7c) khi đó sẽ tạo ra nhiều biên  
quyết định, và rất dễ xuất hiện nhiễu ở trong dữ liệu, ảnh hưởng đến độ chính xác của  
các tính toán phân lớp. Nhiễu mẫu nằm gần biên quyết định có thể thay đổi lớp được  
gán chỉ với một điều chỉnh nhỏ. Nghĩa là thực tế, phần lớn các mẫu mang đặc điểm  
của cả 2 lớp. Đối với các mẫu như vậy, thích hợp cho vệc đặt chúng trong một lớp đặc  
biệt để có thể xem xét kỹ hơn. Điều này chắc chắn phải trong một số ứng dụng, ví dụ  
như, trong lĩnh vực y tế, nơi ranh giới giữa bình thường và khác thường là cần phải  
phân tích thêm. Một cách giải quyết là gắn một sự định tính(qualifications) trong việc  
tính toán xác suất hậu nghiệm P(ωi|x) cho lớp ωi. Chẳng hạn chúng ta gắn định tính  
"definite" nếu xác suất lớn hơn 0.9, "probable" nếu xác suất giữa 0.9 0.8, và  
"possible" nếu xác suất bé hơn 0.8. Theo cách này thì với nút chai có case 55 (xem  
hình 11) sẽ được phân lớp là một "possible" cork của lớp "super", và case 54 một  
"probable" cork của lớp "average".  
Thay vì gắn mô tả định tính vào lớp nhận được, một phương pháp khác được sử  
dụng trong một số trường hợp nhất định đó là quy định cho sự tồn tại của một lớp đặc  
biệt gọi là lớp từ chối hay là miền quyết định (reject region).  
Ký hiêu:  
ω*: lớp được phân;  
ωi: lớp với xác suất hậu nghiệm cực đại, chẳng hạn P(ωi|x) = max P(wj|x)  
với mọi lớp ωij # ωi.  
Luật Bayes có thể viết như sau ω*= ωi  
Bây giờ ta quy định xác suất hậu nghiệm của một nút chai phải cao hơn nhiều  
so với một ngưỡng từ chối (reject threshold) nhất định λr, nếu không nó sẽ được phân  
vào reject class wr. Công thức Bayes được viết lại như sau:  
if  
if  
P(i | x) r  
P(i | x) r  
i
*   
(1-14)  
r  
Khi tính toán tỉ số hợp lý (likelihood ratio) với tỷ số xác suất tiên nghiệm  
(prevalence ratio), thì ta phải nhân tỉ số này với (1-λr)/λr. Một lớp c không bao giờ có  
một rejection nếu λr < (c-1)/c, do đó λr Є [(c-1)/c, 1].  
20  
Thuật toán Bayes và ứng dụng  
Chúng ta sẽ minh họa khái niệm reject class sử dụng dữ liệu cork stoppers. Giả  
sử rằng một reject threshold λr = 0.7 là ngưỡng được quy định. Tính biên quyết định  
cho reject class là đủ để xác định hàm phân lớp với các xác suất tiên nghiệm P(ω1) =  
1-λr = 0.3, P(ω2) = 1-λr = 0.7. Các đường thẳng quyết định là các đường nghiêng  
và giao với trục tung tại PRT10=15.5 PRT10=20.1. Chú ý rằng hai đường này  
có xu hướng đối xứng nhau qua đường thẳng quyết định đã được xác định. Hình 12 là  
biểu đồ phân tán với các đường quyết định mới. vùng ở giữa hai đường thẳng là reject  
region.  
Chúng ta hãy xem các ma trn phân lớp hiển thị trong Hình 13. Nhớ lại một  
chút ta sẽ thấy rằng có 4 mẫu của lớp 1 và 5 mẫu của lớp 2 bị phân lớp sai, là nằm  
trong reject region chiếm 9% số mẫu. Số lượng phân lớp sai bây giờ cho lớp 1 là 1mẫu  
và cho lớp 2 là 5 mẫu, tổng số lỗi là 6%.  
21  
Thuật toán Bayes và ứng dụng  
Chương 3  
Phân lớp Naive Bayes  
3.1 Định nghĩa  
Naive Bayes classifier là một thuật ngữ trong xử lý số liệu thống kê Bayesian  
với một phân lớp xác suất dựa trên các ứng dụng định lý Bayes với giả định độc lập  
bền vững. Một thuật ngữ mô tả chi tiết cho những mô hình xác suất sẽ là “mô hình đặc  
trưng không phụ thuộc”.  
Trong thuật ngữ đơn giản, một naive Bayes classifier giả định rằng sự có mặt  
(hay không có mặt) của một đặc trưng của một lớp học là không liên quan đến sự hiện  
diện (hay thiếu vắng) của bất kỳ các đặc trưng. Ví dụ, một trái cây có thể được coi là  
một quả táo nếu nó có màu đỏ chung quanh, và đường kính khoảng 4 inch. Mặc dù các  
đặc trưng này phụ thuộc vào sự tồn tại của các đặc trưng khác, naive Bayes classifier  
xem xét tất cả các đặc tính độc lập góp phần vào khả năng trái cây này là quả táo.  
Tùy thuộc vào tính chính xác bản chất của mô hình xác suất, naive Bayes  
classifiers có thể được đào tạo rất hiệu quả trong một thiết lập học có giám sát. Trong  
nhiều ứng dụng thực tế, tham số ước lượng cho các mô hình naive Bayes sử dụng các  
phương pháp maximum likehood; nói cách khác, có thể làm việc với các mô hình  
naive Bayes mà không tin ở xác suất Bayesian hoặc bằng cách sử dụng bất cứ phương  
pháp Bayesian.  
Mặc dù thiết kế ngây thơ và hình như giả định đơn giản hơn, naive Bayes  
classifiers thường làm việc trong nhiều tình huống thế giới thực phức tạp tốt hơn có  
thể mong đợi. Mới đây, xem xét vấn đề phân lớp Bayesian đã có thể thấy có một số lý  
thuyết giải thích cho tính hiệu quả của naive Bayes classifiers. Một lợi thế của naive  
Bayes classifier là nó đòi hỏi một số lượng nhỏ dữ liệu đào tạo để ước lượng các tham  
số (các nghĩa và sự khác nhau của các biến) cần thiết cho việc phân loại. Bởi vì các  
biến được giả định độc lập, chỉ những khác biệt của các biến cho mỗi lớp học cần phải  
được xác định và không phải toàn bộ ma trận thống kê.  
22  
Thuật toán Bayes và ứng dụng  
3.2 Các mô hình xác suất Naive Bayes  
Tóm lại, các mô hình xác suất cho một classifier là một mô hình có điều kiện  
đối với một biến lớp phụ thuộc C với một số lượng nhỏ của các kết quả hay các lớp  
học, phụ thuộc vài biến đặc trưng F 1 cho tới F n.  
Vấn đề là nếu số các đặc trưng n là lớn hay khi một đặc trưng có thể chiếm một  
số lượng lớn các giá trị, sau đó dựa vào một mô hình trên các bảng xác suất là không  
thể làm được. Do vậy, chúng ta công thức hóa lại các mô hình để dễ xử lý.  
Bằng cách sử dụng định lý Bayes, có được:  
Trong thực hành, chỉ cần quan tâm tới tử số của phân số, khi mà mẫu số không  
phụ thuộc vào C các giá trị của các đặc trưng của F i đã cho, nên mẫu số là hằng  
thực sự.  
Tử số tương đương với mô hình xác suất có thể được viết lại như sau, sử dụng  
định nghĩa của xác suất có điều kiện:  
23  
Thuật toán Bayes và ứng dụng  
Bây giờ giả định "naive" giả định có điều kiện độc lập đưa vào: giả định rằng  
mỗi đặc trưng Fi có điều kiện độc lập với tất cả các đặc trưng Fj cho j # i. Điều này  
có nghĩa là  
do  
đó có thể được thể hiện như:  
Điều này có nghĩa là dưới sự độc lập giả định ở trên, các điều kiện phân phối  
trên các lớp học biến C có thể được thể hiện:  
ở đây Z là một nhân tố xác định tỷ xích phụ thuộc vào F1, F2, .., Fn, chẳng hạn một  
hằng số nếu các giá trị của các biến đặc trưng đều được biết.  
Nếu có k lớp học và nếu một mô hình cho p(Fi) có thể được thể hiện trong  
các thuật ngữ của r tham số, sau đó các mô hình naive Bayes tương ứng có (k - 1) +  
nrk tham số. Trong thực tế, thường k = 2 (phân loại nhị phân) và r = 1 (các biến  
Bernoulli như là các đặc trưng) được phổ biến, và như vậy tổng số lượng các tham số  
của mô hình naive Bayes là 2n + 1, ở đây n là số các đặc trưng nhị phân sử dụng cho  
các dự đoán.  
3.3 Ước lượng tham số  
Tất cả các tham số mô hình (tức là, lớp học ưu tiên và các đặc trưng phân phối  
xác suất) có thể được gần đúng với các tần số liên quan từ việc thiết lập đào tạo. Đây  
là các đánh giá maximum likehood khả năng có thể xảy ra. Các đặc trưng không riêng  
biệt cần phải được rời rạc đầu tiên. Sự rời rạc có thể không giám sát (các ràng buộc lựa  
chọn đặc biệt) hoặc giám sát (ràng buộc hướng dẫn bởi thông tin trong dữ liệu đào  
tạo).  
24  

Tải về để xem bản đầy đủ

pdf 50 trang yennguyen 22/06/2025 320
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Thuật toán Bayes và ứng dụng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_thuat_toan_bayes_va_ung_dung.pdf