Đề tài Thuật toán và phương pháp giải quyết vấn đề

MỤC LỤC

Lời mở đầu 2

Chương I: Tổng quan 3

 1. Thuật toá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 toán Bayes 5

 1. Mạng Bayes 5

 2. Thuật toán 8

Chương III: Ứng dụng Bayes Theorem trong phân lớp dữ liệu (Naï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

 

docx16 trang | Chia sẻ: Thành Đồng | Ngày: 11/09/2024 | Lượt xem: 41 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Đề tài Thuật toán và phương pháp giải quyết vấn đề, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC Lời mở đầu 2 Chương I: Tổng quan 3 1. Thuật toá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 toán Bayes 5 1. Mạng Bayes 5 2. Thuật toán 8 Chương III: Ứng dụng Bayes Theorem trong phân lớp dữ liệu (Naï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 LỜ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. CHƯƠNG I: TỔNG QUAN 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. Phương pháp giải quyết vấn đề Vấ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 CHƯƠNG II: GIỚI THIỆU MẠNG BAYES VÀ THUẬT TOÁN BAYES Mạng Bayes Đị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, và A được gọi là cha của B. Nếu với mỗi biến Xi, , tập hợp các biến 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. Mạng Bayes nhân quả Mạ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ả. 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. 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 mộ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. 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. Ứng dụng Mạ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) 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) Tỷ số   : Chỉ số liên quan (irrelevance index) dùng để đo lường sự liên quan giữa 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)  Trong 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): Vì   nên (CT1) có thể viết lại như sau (CT3)  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 (NAÏVE BAYES CLASSIFIER) Mục đích chương trình: Ở 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 toá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à Naïve Bayes Classifier. Tóm tắt quá trình hoạt động: Có training data về việc là tỉ phú như sau: Sử dụng Naï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ự đoán như sau: Từ Training data ta có dữ liệu như sau:  Vì 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à: Check = 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 ) KẾT LUẬN Kết quả đạt được: Đã tìm hiểu và có thể implement thuật toán Naïve Bayes. 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 toán và phương pháp giải quyết vấn đề và thuật toán Bayes. Ngoài ra do không có các mẫu huấn luyện lớn có ( lấy được từ các CSDL lớ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.

Các file đính kèm theo tài liệu này:

  • docxde_tai_thuat_toan_va_phuong_phap_giai_quyet_van_de.docx
Tài liệu liên quan