Nhưng trong nhiều trường hợp, khi chúng ta tìm ra được một sự mô tả thỏa đáng về một bài toán, một vấn đề nào đấy, khi đó chúng ta có thể “học” chúng qua các ví dụ.2.. Chuyên gia trong l
Trang 1TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN
-* -BÀI TẬP NHÓM HỌC PHẦN TRÍ TUỆ NHÂN TẠO
Giảng viên hướng dẫn:
Bùi Đức Dương
Học viên thực hiện:
Lớp: 52CNTT ĐÀO ĐỨC LINH
HUỲNH MINH TRÍ TRẦN ĐỨC TRỌNG
Năm 2012
Trang 2MỤC LỤC (Đánh tự động)
CHƯƠNG I 5
TỔNG QUAN VỀ HỆ HỌC 5
I KHÁI NIỆM VỀ HỌC 5
1 Đặt vấn đề 5
2 Học là gì? 5
II PHÂN LOẠI CÁCH HỌC 6
1 Học có giám sát 6
2 Phân nhóm 6
3 Học trau dồi 6
III NỘI DUNG VIỆC HỌC 6
1 Quá trình học 6
2 Mô tả bài toán 8
CHƯƠNG II 12
NGHIÊN CỨU VỀ BÀI TOÁN QUAN SÁT 12
I KHÁI QUÁT VỀ BÀI TOÁN QUAN SÁT 12
1 Cấu trúc bài toán 12
2 Khái niệm về sự “tốt nhất” 13
3 Nhắc lại về các phép toán logic 14
II NGHIÊN CỨU BÀI TOÁN QUAN SÁT 14
1 Mở đầu 14
2 Ví dụ cụ thể với thuật toán thứ nhất 15
3 Ví dụ cụ thể với thuật toán thứ hai 16
CHƯƠNG III 18
ĐÁNH GIÁ HOẠT ĐỘNG CỦA CÁC THUẬT TOÁN 18
TRONG KHÔNG GIAN DỮ LIỆU THỰC TẾ 18
I ĐẶT VẤN ĐỀ 18
II ĐÁNH GIÁ HOẠT ĐỘNG CỦA CÁC THUẬT TOÁN ĐÃ NÊU TRONG KHÔNG GIAN DỮ LIỆU THỰC TẾ 18
1 Một số giải pháp cho việc đánh giá thuật toán 18
2 Cải tiến thuật toán DNF 19
3 Kết luận chung về sự đánh giá thuật toán 23
Trang 3LỜI GIỚI THIỆU
(Trong đó có nội dung giới thiệu công việc của từng thành viên)
Trang 4DANH MỤC CÁC BẢNG (Đánh tự động)
DANH MỤC CÁC HÌNH (Đánh tự động)
Trang 5Chẳng hạn bạn là những người có kiến thức về một hay một vài, thậm chí là nhiều đối tượng khác nhau (thường có mối liên hệ với nhau) về một lĩnh vực nào đó Nhưng trong nhiều trường hợp, khi chúng ta tìm ra được một sự mô tả thỏa đáng về một bài toán, một vấn đề nào đấy, khi đó chúng ta có thể “học” chúng qua các ví dụ.
2 Học là gì?
Theo nhiều chuyên gia, nhiều nhà nghiên cứu thì khái niệm “học” mang rất nhiều nghĩa khác nhau, mặc dù điều này đôi khi không tạo ra sự sai lệch đáng kể Ở đây, theo cách thông thường, ta có hiểu “học” qua các mô tả sau:
- Việc ghi nhớ một vài sự kiện, đối tượng, hay quan hệ nào đấy
- Việc học các sự thật thông qua các quan sát và khám phá
- Việc phát triển các kĩ năng nhận thức thông qua thực hành, luyện tập
- Việc tổ chức các tri thức mới thành các dạng tổng quát và hiệu quả
Chuyên gia trong lĩnh vực Trí tuệ nhân tạo và trong lĩnh vực Kinh Tế, Herb Simon,
đã đưa ra một định nghĩa như sau:
“Học có nghĩa là những thay đổi trong hệ thống một cách thích hợp sao cho hệ thống
có thể làm các thao tác như đã làm trước đó một cách ngày càng hiệu quả hơn trong những lần kế tiếp.”
Định nghĩa này thì không hoàn toàn chính xác nhưng phần nào nó cũng cho ta thấy ý tưởng chung rằng hệ học cần phải yêu cầu một số thông tin từ các ví dụ của một bài toán và rồi thực hiện chúng tốt hơn lần sau
Một trong những kiểu học thông dụng nhất là thu thập thông tin từ quá khứ và hiện tại để rồi đưa ra những phán đoán về một điều gì đấy trong tương lai Để đơn giản ta
có thể xem ví dụ sau:
- Mẩu bánh mì thứ nhất cung cấp chất dinh dưỡng khi ta ăn nó
- Mẩu bánh mì thứ hai cung cấp chất dinh dưỡng khi ta ăn nó
- Mẩu bánh mì thứ ba cung cấp chất dinh dưỡng khi ta ăn nó
- Mẩu bánh mì thứ tư cung cấp chất dinh dưỡng khi ta ăn nó
- …
- Do đó, mọi mẩu bánh mì đề cung cấp chất dinh dưỡng khi ta ăn nó.
Đây là một ví dụ khá thú vị và dễ hiểu mà David Hume đã đưa ra Cũng vậy, ta có thểhình dung điều này qua nhiều ví dụ khác, chẳng hạn như: Hôm qua, mặt trời mọc hướng Đông, hôm trước nữa cũng thế Lịch sử cũng ghi nhận rằng mặt trời luôn luôn
Trang 6mọc hướng Đông Thế thì ta có thể đưa ra phán đoán là mặt trời sẽ mọc ở hướng Đôngvào ngày mai.
II PHÂN LOẠI CÁCH HỌC
1 Học có giám sát
Học có giám sát là kiểu học và cũng là bài toán học thông dụng nhất
Ví dụ chúng ta được cung cấp dữ liệu về cân nặng và chiều dài của một số con cá hồi
và một số con cá ngừ đại dương Công việc của hệ học theo kiểu quan sát là phải tìm
ra quy luật về mối quan hệ giữa cân nặng và chiều dài của một con cá để rồi từ đó có thể phán đoán về một con cá hồi hay một con cá ngừ đại dương
2 Phân nhóm
Phân nhóm cũng là một dạng khá thông dụng Ý tưởng chung là khi ta được cung cấpmột số mô tả về một tập hợp các cá thể riêng biệt (như động vật, các vì sao, đồ vật hay các văn bản,…) bằng một tập các đặc điểm (cân nặng, chiều cao, màu sắc,…), chúng
ta sẽ phải phân chia chúng ra thành một số nhóm
Trong phần tiếp theo chúng ta sẽ tập trung nghiên cứu vào bài toán quan sát
III NỘI DUNG VIỆC HỌC
1 Quá trình học
Chúng ta có thể hiểu với nhau việc học là cố gắng tìm ra một hàm có thể nhận được
từ một tập dữ liệu đầu vào và đầu ra Định nghĩa này dường như có vẻ khá hẹp, song
nó chứa đựng hầu hết các trường hợp tương tự như ở đây
Một cách hiểu đơn giản, nó giống như ta học cách phát âm các từ ngữ từ các kí tự và các âm tiết mà con người sáng tạo ra, hay nhận ra các kí tự viết tay từ một hình có chứa các chữ viết, hay rộng ra hơn là chẩn đoán các chứng bệnh từ việc thu thập các kết quả trong các phòng thí nghiệm y học
Bài toán học cách tìm ra một hàm thì không hề đơn giản chút nào Chúng ta có thể hình dung có ít nhất ba vấn đề quan trọng: ghi nhớ, trung bình hóa, tổng quát hóa
Ví dụ mà chúng ta sẽ tìm hiểu ngay sau đây nói về việc một người hàng xóm mà bạn biết sẽ đi là vào ngày mai bằng phương tiện gì, lái xe hay đi bộ?
Đầu tiên giả sử ta có bảng số liệu sau:
Trang 7Với bảng dữ liệu trên thì câu hỏi đặt ra là người hàng xóm sẽ đi làm bằng phương tiện
gì nếu đó là một ngày thứ Hai, trời có tuyết với nhiệt độ 19 độ, cô ấy vận một bộ trang phục thông thường và sẽ không có ý định mua sắm Dễ thấy ở đây đã từng có một ngày như thế trong quá khứ và người hàng xóm đã sử dụng xe hơi để đi Rõ ràng đây chỉ là một sự ghi nhớ đơn thuần một hành động, sự kiện đã xảy ra trong quá khứ, bây giờ các điều kiện mô tả hội tụ trở lại thì chúng ta vận dụng điều đó để đưa ra phán đoán rằng cô ấy sẽ đi bằng xe hơi
Thế điều gì sẽ xảy ra nếu trường hợp mà ta xét tìm lại khá giống với khối dữ liệu mà
ta thu thập về các ngày trước, như sau đây chẳng hạn:
Trong bảng này, dữ liệu các cột nhiệt độ, thời tiết, thứ trong tuần, có đi mua sắm hay không và trang phục đều giống nhau, nhưng lại khác nhau ở việc lựa chọn phương tiện
đi Chú ý rằng có hai ngày mà cô ấy lái xe, còn lại năm trường hợp kia là đi bộ Vậy thì hẳn ta sẽ đưa ra kết luận là trong ngày ta đang xét, cô ấy sẽ đi bộ, với xác suất dựa trên quá khứ là 5/7 Hãy nhớ là việc dựa hoàn toàn trên xác suất không phải là nội dung chính mà ta nghiên cứu trong bài luận này vì tồn tại rất nhiều lý thuyết khó và phức tạp về xác suất thông kê để có thể hiểu sau về lĩnh vực toán học này Ta sẽ không
đề cập nhiều đến nó
Đôi khi chúng ta phải đối mặt với một vấn đề là một dữ kiện nào đấy mà ta xét lại gần giống với một trường hợp đã xảy ra trong quá khứ mà không phải giống hoàn toàn, lúc này có lẽ ta sẽ phải chọn trường hợp gần giống đó để làm câu trả lời Như trong bảng sau, ngày đang xét giống với dữ liệu của dòng thứ tư, chỉ khác nhiệt độ, tức
là 21 độ thay vì 20 độ như ta đang cần tìm
Trang 8Thế còn đối với bảng dữ liệu sau thì sao? Ngày mà ta đang xét là một ngày thứ Hai
có mưa, nhiệt độ 58 độ, người hàng xóm không đi mua sắm và mặc bộ trang phục như thông thường (tức là không quá trang trọng)
Không có một câu trả lời hiển nhiên nào có thể đưa ra, hay thậm chí dễ suy đoán như các trường hợp bên trên Khi đó buộc chúng ta phải lập luận, phải tổng quát hóa các trường hợp của bài toán, tương tự như:
- Những khi trời mưa thì cô ấy đi bộ, thế thì hôm nay cô ấy sẽ đi bộ
- Hôm nay cô ấy sẽ lái xe vì hôm nay là thứ Hai, và cô ấy thì luôn luôn đi xe hơi vào thứ Hai
- Cô ấy sẽ lái xe vì cô ấy luôn làm như thế khi mặc một bộ quần áo trang trọng, hoặc nếu nhiệt độ trên 90 hoặc dưới 20
Trong phần sau ta sẽ tìm hiểu các phương thức mô tả không gian dữ liệu của bài toán
2 Mô tả bài toán
Hãy tưởng tượng rằng chúng ta phải tìm một mối liên kết giữa x và y trong một không gian các điểm dữ liệu, chúng có đầu ra là các điểm màu đỏ và các điểm màu đen
Trong trường hợp này chúng ta có thể đơn giản tìm ra một đường để chia đôi miền dữliệu ra, cụ thể ở đây là một đường thằng
Trang 9Trong trường hợp các điểm dữ liệu phân bố như sau đây thì không thể dùng một đường thẳng được:
Lúc này thì ta dùng một đường cong để chia miền dữ liệu:
Còn trong trường hợp các điểm dữ liệu phân bố có sự đan xen vào nhau (nghĩa là không thể dùng một đường thằng, và cũng không thể dùng một đường cong có độ uốn thấp) thì ta làm thế nào, như trong ví dụ sau:
Trang 10Có hai câu trả lời được đặt ra, một là dùng một đường cong với độ uốn cao để không phải bỏ sót bất cứ điểm dữ liệu nào:
Câu trả lời thứ hai là dùng một đường thẳng để chia miền và bỏ qua sự quan tâm đến một số điểm dữ liệu không nằm trong đúng miền của nó:
Theo cách này thì xảy ra lỗi ở một số điểm dữ liệu, song nó đã chia không gian dữ liệu một cách tương đối chấp nhận được
Có rất nhiều cách để làm điều này, tức là có rất nhiều thuật toán cho việc mô tả và giải quyết bài toán học, song ở đây ta sẽ giới thiệu một số các thuật toán, đó là thuật toán “người láng giềng gần nhất”, cây quyết định, mạng nơ ron
Trước hết là thuật toán “người láng giềng gần nhất” Thuật toán rất đơn giản, đó là tìm một điểm mà gần nhất với điểm câu hỏi của ta
Trang 11Trong không gian điểm như trên, điểm gần nhất với điểm câu hỏi của ta là một điểm màu đỏ Vậy, điểm mà ta cần tìm sẽ có màu đỏ.
Thứ hai là cây quyết định Đây là một phương pháp rất được ưa chuộng Trong cây quyết định, mỗi nút là một câu hỏi và mỗi cung là một câu trả lời
Bằng việc sử dụng cây quyết định, ta có thể tìm ra được một đường dẫn từ nút gốc đến các nút lá, tức là lần lượt hỏi những câu hỏi rồi trả lời chúng theo như đầu vào mà bài toán cung cấp, khi đến nút lá, ta sẽ có câu trả lời muốn tìm, ở đây là tìm ra người hàng xóm sẽ đi làm bằng xe hơi hay đi bộ
Thứ ba, ta sẽ nói về mạng nơ ron Hẳn là đã nhiều người trong chúng ta đã từng nghe
ít nhất một lần về mạng nơ ron, đó là một dạng biểu diễn các giả thuyết phức tạp trong một không gian đa chiều liên tục Mạng nơ ron là một tổ hợp gồm nhiều đơn vị tính toán nhỏ kết hợp lại với nhau Nó được gọi là mạng nơ ron vì đơn giản nó cho ta một hình ảnh tương đối gần giống với hệ thống thần kinh nằm trong bộ não dù không chínhxác lắm Ta hãy xem hình ảnh chung sau đây:
Trang 12Trong một mạng nơ ron, các đơn vị tính toán thực hiện những công việc tính toán đơn giản để mà kết nối các giá trị của chúng với các trọng số của các cung Quá trình học sẽ là làm sao để điều chỉnh các trọng số của các cung, từ đó xử lí lỗi trong mạng
nơ ron
Cho đến tận ngày nay, các phương pháp máy học đã khá thành công và đang trở thành lĩnh vực được nhiều người nghiên cứu cũng như đã đạt được một số thành tựu trong nhiều ngành nghề như:
- Đánh giá mức nợ tín dụng
- Tìm ra các chi tiết gian dối trong tín dụng
- Thu thập, phân nhóm các hình ảnh phục vụ nghiên cứu thiên văn
- …
Trong phần sau, ta sẽ nghiên cứu về bài toán quan sát và các thuật toán cụ thể trong việc giải quyết bài toán này
CHƯƠNG II
NGHIÊN CỨU VỀ BÀI TOÁN QUAN SÁT
I KHÁI QUÁT VỀ BÀI TOÁN QUAN SÁT
1 Cấu trúc bài toán
Để có thể nghiên cứu và phân tích bài toán quan sát, trước hết ta hãy sơ lược về cấu trúc của bài toán này
Một bài toán quan sát được cấu thành từ một số thành phần Thành phần thứ nhất là
dữ liệu (hay còn được gọi là tập huấn luyện) Dữ liệu, tức là D, là một tập hợp bao gồm m cặp đầu vào – đầu ra Chúng ta sẽ viết thành tố thứ i của tập dữ liệu là xi, yi Trong ngữ cảnh của bài toán chạy đua, một xi sẽ là một véc-tơ của dữ liệu, mỗi một trong số chúng tương ứng với một đặc điểm của dữ liệu, và một yi là một giá trị đầu ra(đi hoặc lái xe) Ta có dữ liệu được đưa ra:
x y x y x m y m
D 1 , 1 , 2 , 2 , , ,
output
Trang 13Thông thường, chúng ta nghĩ rằng các đặc điểm này chỉ có thể mang giá trị 0 hoặc 1 Nhưng trên thực tế, nhiều khi chúng lại có thể mang giá trị từ một tập rời rạc như
“tuyết”, “mưa”, “không” chẳng hạn Thậm chí trong nhiều trường hợp chúng nhận giá trị thực, như nhiệt độ, độ ẩm, cân nặng hay chiều cao
Tương tự như thế, giá trị đầu ra, yi, có thể là kiểu đúng/sai (hay boolean như trong nhiều ngôn ngữ lập trình), phần tử của một tập rời rạc hoặc một giá trị thực
Khi yi là kiểu boolean, hoặc một phần tử của một tập rời rạc, thì ta gọi là bài toán phân lớp Khi nó nhận giá trị thực thì gọi là bài toán hồi quy
Nên chú ý rằng, mục tiêu chính của bài toán là tìm ra một giả thuyết, gọi là h, để có thể mô tả tốt được mối quan hệ giữa các giá trị đầu vào và các giá trị đầu ra Ta gọi H
là tập hợp các giả thuyết có thể có để mà ta lựa chọn từ việc sử dụng thuật toán học
Để mô tả điều này, ta có thể sử dụng một cây quyết định với các nút, hoặc một đường trong không gian hai chiều, hoặc một mạng nơ ron
Bây giờ chúng ta có thể gói gọn bài toán như sau: ta có một hợp dữ liệu và một tập hợp các giả thuyết có thể Yêu cầu bài toán của chúng ta là chọn ra được một giả thuyết “tốt nhất” Trong phần sau, chúng ta cần phải tìm hiểu nghĩa thật sự của từ “tốt nhất”
2 Khái niệm về sự “tốt nhất”
Có hai điều kiện rất quan trọng về sự tốt nhất Đó là:
- Giả thuyết phải làm tốt việc mô tả dữ liệu
- Giả thuyết không nên quá phức tạp
Nói về việc mô tả dữ liệu, ý tưởng chung là với một giả thuyết h thì tại mọi điểm i thìphải thỏa mãn h(xi) = yi Tuy nhiên trên thực tế nghiên cứu số liệu thì không phải lúc nào thực hiện được điều này mà đôi khi chỉ có thể thỏa mãn ở phần lớn dữ liệu ở một mức độ trung bình nào đấy
Rõ ràng ở đây sẽ xảy ra các trường mà đẳng thức trên không thỏa, lúc đó gọi ra lỗi
Để đo mức độ lỗi của một giả thuyết thì người ta dùng dạng E(h,D), chẳng hạn bằng sốđiểm không thỏa mãn đẳng thức trên
Nói đến yếu tố thứ hai, tức là độ phức tạp của giả thuyết, người ta có thể dùng một cây quyết định với số nút của nó, hay một đường trong mặt phẳng tọa độ với độ phức tạp được biểu thị bằng độ uốn của nó Ở đây ta kí hiệu độ phức tạp của giả thuyết h trong tập H là C(h)
Nhưng tại sao chúng ta lại quan tâm đến độ phức tạp này? Chúng ta thường có cảm giác những giả thuyết ở mức trung bình và đơn giản thì là tốt nhất
Như vậy, với một tập dữ liệu D, một lớp giả thuyết H, một hàm đo độ tốt (hay mức lỗi) của giả thuyết E và một thước đo độ phức tạp C thì công việc chính của chúng ta
sẽ là làm sao để tối thiểu được giá trị của biểu thức E(h,D) + α*C(h), trong đó α là hệ
số mà ta có thể thay đổi trong quá trình nghiên cứu các giả thuyết Dĩ nhiên là một cách tổng quát thì ta khó lòng làm điều này một cách hiệu quả, song chúng ta sẽ phải
cố gắng để đạt được mức xấp xỉ tốt
Thế thì làm thế nào để ta có thể tối thiểu hóa được giá trị của biểu thức E(h,D) + α*C(h) Một số trường hợp ta có thể tìm ra h tối ưu một cách trực tiếp hay tìm kiếm từ việc nghiên cứu một mạng nơ ron
Trang 143 Nhắc lại về các phép toán logic
Trong phần này, để làm tiền đề cho việc nghiên cứu bài toán quan sát thì chúng ta sẽ
sơ lược lại những nét chính về các phép toán logic, tức là các phép toán liên quan đến các giá trị nhị phân
Thông thường chúng ta sử dụng hai kí tự cho việc biễu diễn hai giá trị đúng và sai là
1 và 0 Khi đó:
- Phép toán “và” hay “hội” thể hiện giá trị đúng khi cả hai cùng đúng
- Phép toán “hoặc” hay “tuyển” thể hiện giá trị sai khi cả hai cùng sai
- Dấu trừ - ở phía trước kí tự thể hiện giá trị ngược lại
II NGHIÊN CỨU BÀI TOÁN QUAN SÁT
Chúng ta thử nói về giả thuyết f1^ f3, nó trả về giá trị của biểu thức này trong ví dụ 2
và 3 là 1 nhưng đối với các bộ dữ liệu còn lại là 0
Dễ thấy với biểu thức f1^ f3 thì chỉ có ba bộ dữ liệu là thỏa, còn ba bộ dữ liệu kia thì không