Thuật toán , còn gọi là giải thuật, là một tập hợp hữu hạn của các chỉ thị hay phương cách được định nghĩa rõ ràng cho việc hoàn tất một số sự việc từ một trạng thái ban đầu cho trước; k
Trang 1MỤC LỤC
Lời mở đầu 2
Chương I: Tổng quan 3
1 Thuật tốn 3
2 Phương pháp giải quyết vấn đề 4
Chương II: Giới thiệu mạng Bayes và thuật tốn Bayes 5
1 Mạng Bayes 5
2 Thuật tốn 8
Chương III: Ứng dụng Bayes Theorem trong phân lớp dữ liệu (Nạve Bayes Classifier) 14
1 Mục đích chương trình 14
2 Tĩm tắt quá trình hoạt động 14
Kết luận 15
Tài liệu tham khảo 16
Trang 2LỜI MỞ ĐẦU
Ước mơ của con người là tạo ra những máy móc có thông minh như con người, có thể xử lí những công việc của con người với tỉ lệ thành công cao nhất
Nhưng cũng có những vấn đề phức tạp với những giới hạn không vượt qua được về thời gian và
cả chi phí nên con người luôn tìm kiếm những thuật toán và phương pháp để giải những vấn đề trên với thời gian, chi phí và độ chính xác chấp nhận được
1
Trang 32 CHƯƠNG I: TỔNG QUAN
1. Thuật toán?
Thuật toán , còn gọi là giải thuật, là một tập hợp hữu hạn của các chỉ thị hay phương cách được định nghĩa rõ ràng cho việc hoàn tất một số sự việc từ một trạng thái ban đầu cho trước; khi các chỉ thị này được áp dụng triệt để thì sẽ dẫn đến kết quả sau cùng như đã dự đoán
Nói cách khác, thuật toán là một bộ các qui tắc hay qui trình cụ thể nhằm giải quyết một vấn đề trong một số bước hữu hạn, hoặc nhằm cung cấp một kết quả từ một tập hợp của các dữ kiện đưa vào
Ví dụ: thuật toán để giải phương trình bậc nhất P(x): ax + b = c, (a, b, c là các số thực), trong tập hợp các số thực có thể là một bộ các bước sau đây:
Nếu a = 0
b = c thì P(x) có nghiệm bất kì
b ≠ c thì P(c) vô nghiệm
Nếu a ≠ 0
P(x) có duy nhất một nghiệm x = (c - b)/a
Lưu ý
Khi một thuật toán đã hình thành thì ta không xét đến việc chứng minh thuật toán đó mà chỉ chú trọng đến việc áp dụng các bước theo sự hướng dẫn sẽ có kết quả đúng Việc chứng minh tính đầy đủ và tính đúng của các thuật toán phải được tiến hành xong trước khi có thuật toán Nói rõ hơn, thuật toán có thể chỉ là việc áp dụng các công thức hay qui tắc, qui trình đã được công nhận là đúng hay đã được chứng minh về mặt toán học
2. Phương pháp giải quyết vấn đề
Trang 4Vấn đề ? Một khó khăn cần được giải quyết.
Giải quyết vấn đề: là việc tìm ra một giải pháp cho câu hỏi rắc rối, phức tạp, khó hiểu Máy tính không thể dùng để giải quyết các vấn đề liên quan đến hành động vật lý hoặc biểu thị cảm xúc Máy tính chỉ làm được những gì mà nó được bảo phải làm Máy tính không thông minh, nó không thể tự phân tích vấn đề và đưa ra giải pháp
Lập trình viên là người phân tích vấn đề, tạo ra các chỉ dẫn để giải quyết vấn đề (chương trình), và máy tính sẽ thực hiện các chỉ dẫn đó
Phương pháp giải quyết vấn đề thông thường: 4 bước
– Bước 1: Hiểu vấn đề: cái gì chưa biết, cái gì là dữ liệu, cái gì là điều kiện
– Bước 2: Đưa ra một phương án: tìm mối quan hệ giữa dữ liệu và những thứ chưa biết,
có thể tham khảo từ cách giải quyết các vấn đề tương tự
– Bước 3: Thực hiện phương án
– Bước 4: Kiểm tra lại lời giải thu được
3
4
5
6
7
8
9
10
11 CHƯƠNG II: GIỚI THIỆU MẠNG BAYES VÀ THUẬT TOÁN BAYES
Trang 51 Mạng Bayes
a Định nghĩa
Một mạng Bayes là một đồ thị có hướng phi chu trình mà trong đó:
• các nút biểu diễn các biến,
• các cạnh biểu diễn các quan hệ phụ thuộc thống kê giữa các biến và phân phối xác
suất địa phương cho mỗi giá trị nếu cho trước giá trị của các cha của nó.
Nếu có một cạnh từ nút A tới nút B, thì biến B phụ thuộc trực tiếp vào biến A,
cha được ký hiệu bởi parents(Xi), thì phân phối có điều kiện phụ thuộc của các biến là tích của các phân phối địa phương
Nếu Xi không có cha, ta nói rằng phân phối xác suất địa phương của nó là không có
điều kiện, ngược lại thì gọi là có điều kiện Nếu biến được biểu diễn bởi một nút được quan sát, thì ta nói rằng nút đó là một chứng cứ (evidence node).
Các câu hỏi về sự phụ thuộc không tương đẳng giữa các biến có thể được trả lời bằng
cách nghiên cứu đồ thị Có thể chứng minh rằng trong đồ thị, tính độc lập có điều
kiện được biểu diễn bởi tính chất đồ thị d-khả ly: cho trước một số nút hiển nhiên cụ thể, các nút X và Y là d-khả ly trong đồ thị khi và chỉ khi các biến X và Y là độc lập, với giá trị đã biết các chứng cứ tương ứng Tập hợp gồm tất cả các nút khác mà X có thể phụ thuộc trực tiếp được cho bởi bao Markov của X.
Một ưu điểm của mạng Bayes là, về mặt trực quan, ta có thể hiểu các quan hệ phụ thuộc một cách trực tiếp và các phân phối địa phương dễ dàng hơn là phân phối có điều kiện phụ thuộc hoàn chỉnh
b Mạng Bayes nhân quả
Trang 6Mạng Bayes nhân quả là một mạng Bayes mà trong đó các cạnh có hướng của đồ thị được hiểu là các quan hệ nhân quả trong một miền xác định có thực nào đó Các cạnh
có hướng, một cách tổng quát, không nhất thiết phải được hiểu là các quan hệ nhân quả; tuy nhiên, trong thực tiễn, tri thức về các quan hệ nhân quả rất hay được dùng để hướng dẫn vẽ các đồ thị mạng Bayes, kết quả là có được các mạng Bayes nhân quả
c Học cấu trúc
Trong trường hợp đơn giản nhất, một mạng Bayes được xây dựng bởi một chuyên gia
và rồi được dùng để thực hiện việc suy luận Trong các ứng dụng khác, công việc xây dựng mạng quá phức tạp đối với con người Trong trường hợp này, cấu trúc và các tham số mạng của các phân bố địa phương phải được học từ dữ liệu
Học cấu trúc của một mạng Bayes (nghĩa là học đồ thị) là một phần rất quan trọng của ngành nhận thức máy Giả thiết rằng dữ liệu được sinh từ một mạng Bayes và rằng tất cả các biến là quan sát được (chứng cứ) trong mọi lần lặp, việc tối ưu hóa dựa trên phương pháp tìm kiếm có thể được dùng để tìm cấu trúc mạng Việc này đòi hỏi
một hàm tính điểm (scoring function) và một chiến lược tìm kiếm Hàm tính điểm thông dụng là xác suất hậu nghiệm (posterior probability) của cấu trúc khi cho trước
dữ liệu huấn luyện (training data) Quá trình tìm kiếm duyệt toàn cục để trả về một
cấu trúc có số điểm tối ưu đòi hỏi thời gian cấp siêu lũy thừa (superexponential) theo
số lượng biến Ngược lại, các chiến lược tìm kiếm địa phương thực hiện các thay đổi tăng dần hướng tới việc nâng cao điểm số của cấu trúc Một thuật toán tìm kiếm toàn
cục như Phương pháp xích Markov Monte Carlo (Markov chain Monte Carlo) có thể
tránh việc bị bẫy trong một cực tiểu địa phương
d Học Tham số
Để cụ thể hóa mạng Bayes và biểu diễn đầy đủ các phân bố xác suất phụ thuộc có
điều kiện, đối với mỗi biến X, cần phải chỉ ra phân bố xác suất X theo điều kiện thông tin từ các cha của X Phân bố của X theo các cha của nó có thể có hình thức bất kỳ
Người ta thường dùng các phân bố rời rạc hay phân bố Gauss, do các phân bố này làm đơn giản việc tính toán Đôi khi, khi chỉ biết được các ràng buộc của các phân bố;
ta có thể dùng nguyên lý entropy cực đại để xác định một phân bố cụ thể, phân bố với entropy cực đại thỏa mãn các ràng buộc đó (Tương tự, trong ngữ cảnh cụ thể của
Trang 7một mạng Bayes động, người ta thường lấy phân bố có điều kiện cho sự phát triển
theo thời gian của trạng thái ẩn để cực đại hóa hệ số entropy (entropy rate) của quá
trình ngẫu nhiên được nói đến.)
Thông thường, các phân bố có điều kiện này bao gồm các tham số chưa biết và phải
được ước lượng từ dữ liệu, đôi khi bằng cách tiếp cận khả năng cực đại (maximum
likelihood) Việc cực đại hóa trực tiếp khả năng (hoặc xác suất hậu nghiệm) thường
phức tạp khi có các biến không quan sát được Một cách tiếp cận truyền thống đối với
vấn đề này là thuật toán cực đại hóa k vọng (expectation-maximization algorithm),
thuật toán này luân phiên giữa việc tính toán các giá trị kỳ vọng của các biến không được quan sát theo dữ liệu quan sát được, với việc cực đại hóa khả năng (hay hậu nghiệm) hoàn chỉnh với giả thuyết rằng các giá trị mong đợi đã tính được là đúng đắn Dưới các điều kiện chính quy và vừa phải, quá trình này hội tụ về các giá trị khả năng cực đại (hay xác suất hậu nghiệm cực đại) của các tham số Một cách tiếp cận Bayes đầy đủ hơn đối với việc học tham số là coi các tham số như là các biến không quan sát được khác và tính một phân bố hậu nghiệm đầy đủ trên toàn bộ các nút theo
dữ liệu quan sát được, sau đó tách các tham số ra Cách tiếp cận này có thể có chi phí tính toán cao và dẫn đến các mô hình có số chiều lớn, do đó trong thực tế, các cách tiếp cận truyền thống thường được sử dụng hơn
e Suy luận
Do mạng Bayes là một mô hình hoàn chỉnh cho các biến và các quan hệ giữa chúng,
có thể dùng mạng Bayes để trả lời các truy vấn xác suất về các biến này Ví dụ, mạng Bayes có thể được dùng để tìm tri thức mới nhất về trạng thái của một tập con gồm
các biến khi các biến khác (các biến hiển nhiên) được quan sát Quá trình tính phân
bố hậu nghiệm này của các biến khi cho trước các biến hiển nhiên được gọi là suy luận xác suất Quá trình hậu nghiệm cho ra một thống kê đủ phổ quát (universal
sufficient statistic) cho các ứng dụng phát hiện, khi người ta muốn chọn các giá trị
cho một tập con các biến nhằm mục đích cực tiểu hóa một hàm phí tổn nào đó, chẳng hạn xác suất của lỗi quyết định Do đó, có thể coi mạng Bayes là một cơ chế cho việc xây dựng tự động các mở rộng của định lý Bayes cho các bài toán phức tạp hơn
f Ứng dụng
Trang 8Mạng Bayes được dùng cho việc mô hình hóa tri thức trong các mạng điều hòa
gene (gene regulatory network), trong các hệ thống y học, phân tích văn bản, xử lý ảnh dung hợp dữ liệu, và các hệ hỗ trợ quyết định (decision support system)
2. Thuật toán Bayes
Trong lĩnh vực Khoa học máy tính Bayes Theorem (hay Bayes’ Rule) là kỹ thuật phân lớp dựa vào việc tính xác suất có điều kiện Bayes’ Rule được ứng dụng rất rộng rãi bởi tính dễ hiểu và dễ triển khai
Bayes' Rule (CT1):
Trong đó:
D : Data
h : Hypothesis (giả thuyết)
P(h) : Xác suất giả thuyết h (tri thức có được về giả thuyết h trước khi có dữ liệu D) và
gọi là prior probability của giả thuyết h.
P(D| h): Xác suất có điều kiện D khi biết giả thuyết h (gọi là likelihood probability).
P(D): xác suất của dữ liệu quan sát D không quan tâm đến bất kỳ giả thuyết h nào.(gọi
làprior probability của dữ liệu D)
2 biến A và B Nếu irrelevance index =1, có nghĩa A và B không liên quan nhau.
P(h|D) :Xác suất có điều kiện h khi biết D (gọi là posterior probability của giả thuyết h)
Trang 9Trong rất nhiều ứng dụng, các giả thuyết hi cĩ thể loại trừ nhau và vì dữ liệu quan sát D
là tập con của tập giả thuyết cho nên chúng ta cĩ thể phân rã P(D) như sau (CT2):
Thay P(D) trong (CT2) vào (CT1) ta được (CT4)
(CT4) gọi là Bayes’s Theorem
CHƯƠNG III ỨNG DỤNG BAYES THEOREM TRONG PHÂN LỚP DỮ LIỆU (NẠVE BAYES CLASSIFIER)
1. Mục đích chương trình:
Trang 10Ở mục đích thực hiện bài tiểu lận cho mơn học nên mục đích chính của chương trình là chạy thử để kiểm tra việc thực hiện thuật tốn cĩ chính xác hay khơng, là tiền đề cho các chương trình sau này
Chương trình sau đây minh họa việc sử dụng Bayes Theorem trong việc phân lớp dữ liệu Bộ phân lớp dữ liệu dựa trên Bayes theorem cịn gọi là Nạve Bayes Classifier.
2. Tĩm tắt quá trình hoạt động:
Cĩ training data về việc là tỉ phú như sau:
Trang 11Sử dụng Nạve Bayes Classifier để xác định khả năng là tỉ phú với các yếu tố của người
được dự đốn như sau:
Từ Training data ta cĩ dữ liệu như sau:
Trang 12Vì thuộc tính phân lớp Tỉ phú chỉ có 2 giá trị là “check” (nghĩa là tỉ phú) và “uncheck” (không
là tỉ phú) nên ta phải tính Pr(check|E) và Pr(uncheck|E) như sau Trong đó E là dữ liệu cần phân lớp (dự đoán)
Tỉ lệ dự đoán là tỉ phú
Tỉ lệ dự đoán không là tỉ phú
Khả năng của 2 lớp là:
Trang 13Check = 5/15 * 6/15 * 5/15 * 9/15 = 0.0267
Uncheck = 1/15 * 1/15 * 6/15 * 6/15 = 0.0007
Chuyển đổi thành xác suất bằng cách chuẩn hóa
P(“check”) = 0.0267 / ( 0.0267 + 0.0007) = 0.974
P(“uncheck”) = 0.0007 / / ( 0.0267 + 0.0007) = 0.026
Vì P(“check”) > P(“uncheck”) nên kết quả dự đoán Tỉ phú =“check” ( TRUE )
Trang 14KẾT LUẬN
1. Kết quả đạt được:
Đã tìm hiểu và cĩ thể implement thuật tốn Nạve Bayes
2. Hạn chế
Do hạn chế về thời gian và kiến thức nên bài thu hoạch chỉ mới trình bày sơ lược về Thuật tốn và phương pháp giải quyết vấn đề và thuật tốn Bayes Ngồi ra do khơng cĩ các mẫu huấn luyện lớn cĩ ( lấy được từ các CSDL
Trang 15lớn ) nên phần mềm ứng dụng cũng chỉ có 1 vài mẫu huấn luyện nhỏ để kiểm
tra thuật toán
TÀI LIỆU THAM KHẢO
[1] PGS TS Đỗ Văn Nhơn , Bài giảng môn học “Thuật toán và phương pháp giải quyết vấn
đề”, Đại học CNTT, 2013
[2] Dino Isa, V P Kallimani , R Rajkumar , Lam Hong, Lee - Text Document Pre-Processing Using the Bayes Formula for Classification Based on the Vector Space Model 2008
[3] Tom M Mitchell Machine Learning McGraw-Hill Science/Engineering/Math 1997
[4] Georgios Paliouras; Vangelis Karkaletsis; Constantine D Spyropoulos Machine Learning and its application Advanced Lectures Springer, 2001
[5] Một số website thông tin và một số nguồn tài liệu khác trên internet