Các từ điển thì định nghĩa như sau : “ Học giúp đạt được tri thức, hay gia tănghiểu biết, hay có thêm kỹ năng trong một lãnh vực, là thực hiện công việc nghiên cứutìm hiểu, thực hiện các
Trang 1Bài thu họach :
Trang 2LỜI MỞ ĐẦU 2
A CHƯƠNG I : KHÁI NIỆM VỀ MÁY HỌC 3
I Định nghĩa máy học : 5
II Phân loại máy học 7
1) Học có giám sát (Supervised Learning) 7
2) Học không giám sát : ( Unsupervised Learning ) 9
3) Học nửa giám sát 10
4) Một số thuật toán máy học : 10
B CHƯƠNG II : MÔ HÌNH HỆ THỐNG MẠNG NƠRON NHÂN TẠO 11
I Mạng neural nhân tạo: cấu trúc, nguyên tắc hoạt động và các giải thuật huấn luyện 11
1 Cấu trúc của mạng nơron nhân tạo 11
2 Nguyên tắc họat động mạng neural nhân tạo 14
3 Huấn luyện mạng neural : 15
II Ứng dụng demo auto – routing car 25
1 Mục đích chương trình 25
2 Mô tả chương trình và mô hình nơron nhân tạo 25
3 Kết luận: 31
Tài liệu tham khảo 32
Trang 3L I M Đ U ỜI MỞ ĐẦU Ở ĐẦU ẦU
Xã hội ngày càng phát triển, nhu cầu của con người ngày càng tăng cao, đặc biệttrong công việc tiết kiệm chi phí sức lao động của con người và nâng cao năng suất laođộng, từ đó máy móc được ra đời Máy học là ngành khoa học với mục đích nghiên cứunhằm thiết kế các hệ thống có thể “ học “ từ dữ liệu và dần thay thế các công việc thay conngười, với các mô hình toán học dần ra đời nhằm phục vụ cho nhu cầu trên Mạng neuralnhân tạo là một trong những mô hình đó
Mạng neural nhân tạo là một mô hình toán học đã được nghiên cứu từ lâu và đượcứng dụng nhiều vào các bài toán mô phỏng, nhận dạng, dự đoán Gần đây mạng neuralnhân tạo được quan tâm và ứng dụng ngày càng nhiều vào các bài toán khác nhau, trong
đó có bài toán tự động tìm đường cho ô tô Mục đích của bài báo cáo này là tìm hiểu vềmáy học, mạng neural nhân tạo cùng với nguyên tắc hoạt động, hai giải thuật huấn luyệnmạng neural: lan truyền ngược (backpropagation) và RPROP, và một demo nhỏ cho phần
lý thuyết của báo cáo/
Bài báo cáo chia làm 2 chương
Chương 1: Cái khái niệm về máy học, phân loại cũng như một số thuật tóan của
máy học
Chương 2: Cấu trúc, nguyên tắc họat động và hai giải thuật huấn luyện mạng
neural nhân tạo cùng với ứng dụng demo auto-routing car
Trang 4A CH ƯƠNG I : KHÁI NIỆM VỀ MÁY HỌC NG I : KHÁI NI M V MÁY H C ỆM VỀ MÁY HỌC Ề MÁY HỌC ỌC
Học, như trí thông minh, được mọi sinh vật áp dụng mọi nơi, mọi lúc trong nhiềuhoàn cảnh khác nhau nên khó có thể định nghĩa một cách chính xác như chúng ta mongmuốn Các từ điển thì định nghĩa như sau : “ Học giúp đạt được tri thức, hay gia tănghiểu biết, hay có thêm kỹ năng trong một lãnh vực, là thực hiện công việc nghiên cứutìm hiểu, thực hiện các chỉ dẫn, hay là áp dụng các kinh nghiệm tích lũy từ quá khứvào hiện tại và tương lai ” và “ Học là điều chỉnh để cải thiện hành vi ứng xử theo kinhnghiệm đạt được “ vv………
Máy học là môn khoa học nghiên cứu kết hợp song song nhiều ngành khác nhaunhư khoa học máy tính, tâm lý học, động vật học và như vậy có nhiều vấn đề kỹ thuậttrong máy học xuất phát từ các cố gắng của các nhà tâm lý học, nhà nghiên cứu vềđộng vật để có thể mô phỏng chính xác hơn các lý thuyết về phương pháp học của conngười hay động vật ứng dụng vào các mô hình thuật toán trên máy tính
Cũng cần nói thêm rằng các khái niệm và kỹ thuật được phát triển trong máy họccũng soi sáng trở lại nhiều khía cạnh được ẩn dấu trong quá trình học của sinh vật
Từ góc nhìn của khoa học máy tính, chúng ta có thể nói máy tính luôn luôn học ởbất kỳ nơi nào khi mà có sự biến đổi về cấu trúc, có sự thay đổi trong chương trình hay
dữ liệu (các thay đổi dựa trên các dữ liệu vào hay dựa vào việc hồi đáp các thông tin từbên ngoài), máy tính học theo cách cải thiện công việc mà nó thực hiện trong tương lai
Nhưng có những thay đổi như thêm một record vào cơ sở dữ liệu hay đơn giản làxóa tập tin thì không gọi là học Và ví dụ, sau khi nghe vài mẫu giọng nói của conngười máy tính tăng khả năng nhận dạng giọng nói, thì chúng ta hoàn toàn có thể nói làmáy tính đã học
Trang 5Máy học thường dùng khi hệ thống có sự biến đổi kết hợp với việc cải tiến chức
năng nhờ vào áp dụng trí thông minh nhân tạo Sự biến đổi hệ thống có thể hiểu một
cách mở rộng như hoàn thiện hệ thống hay khởi tạo hệ thống mới
Mọi người có thể tự hỏi : “Tại sao máy tính cần phải học ? Tại sao không thiết kếmáy tính để nó thực hiện công việc mà chúng ta mong muốn ngay từ đầu ?” Có vài lý
do tại sao việc máy tính có thể học là quan trọng, nhất là về mặt kỹ thuật :
Có vài công việc chúng ta không thể xác định một cách rỏ ràng khi thiết kế,
ví dụ : chúng ta có thể chỉ ra dữ liệu nhập hay dữ liệu xuất nhưng khó nắm bắtđược mối quan hệ giữa chúng với nhau Chúng ta mong muốn máy tính có khảnăng thêm vào cấu trúc của nó chức năng điều chỉnh các dữ liệu xuất cho phùhợp cả với các dữ liệu nhập khi nó rất lớn hay thể hiện được một cách gần đúngràng buộc trong các quan hệ ẩn giấu của dữ liệu
Máy học có khả năng lấy ra và thể hiện các quan hệ hay tương quan quantrọng trong dữ liệu
Thiết kế của con người không thể tính hết các biến đổi trong môi trường làm việc của máy tính
Toàn bộ các tri thức có giá trị của con người thì quá lớn ,với năng lực hạnchế của bản thân con người khó khăn trong việc có thể thể hiện các tri thức nàymột cách rỏ ràng trong sáng như mong muốn
Trang 6I Đ nh nghĩa máy h c : ịnh nghĩa máy học : ọc –
Máy học ( Machine learning) là một lĩnh vực của trí tuệ nhân tạo liên quan
đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tựđộng từ dữ liệu để giải quyết những vấn đề cụ thể Ví dụ như các máy có thể
"học" cách phân loại thư điện tử xem có phải thư rác (spam) hay không và tựđộng xếp thư vào thư mục tuơng ứng Máy học rất gần với suy diễn thống kê(statistical inference) tuy có khác nhau về thuật ngữ
Máy học có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều nghiên cứuviệc phân tích dữ liệu, nhưng khác với thống kê, máy học tập trung vào sự phứctạp của các giải thuật trong việc thực thi tính toán Nhiều bài toán suy luận đượcxếp vào loại bài toán NP-khó, vì thế một phần của máy học là nghiên cứu sựphát triển các giải thuật suy luận xấp xỉ mà có thể xử lý được
Máy học có hiện nay được áp dụng rộng rãi bao gồm máy truy tìm dữ liệu,chẩn đoán y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khoán,phân loại các chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tự động, chơi trò
chơi và cử động rô-bốt (robot locomotion).
Dưới góc nhìn của trí tuệ nhân tạo, động lực chính học máy bởi là nhu cầuthu nhận tri thức (knowledge acquisition) Thật vậy, trong nhiều trường hợp tacần kiến thức chuyên gia là khan hiếm (không đủ chuyên gia ngồi phân loại lừađảo thẻ tín dụng của tất cả giao dịch hàng ngày) hoặc chậm vì một số nhiệm vụcần đưa ra quyết định nhanh chóng dựa trên xử lý dữ liệu khổng lồ (trong muabán chứng khoán phải quyết định trong vài khoảng khắc của giây chẳng hạn) vàthiếu ổn định thì buộc phải cần đến máy tính Ngoài ra, đại đa số dữ liệu sinh rangày nay chỉ phù hợp cho máy đọc (computer readable) tiềm tàng ngưồn kiến
Trang 7thức quan trọng Máy học nghiên cứu cách thức để mô hình hóa bài toán chophép máy tính tự động hiểu, xử lý và học từ dữ liệu để thực thi nhiệm vụ đượcgiao cũng như cách đánh giá giúp tăng tính hiệu quả.
Tom Mitchell, giáo sư nổi tiếng của Đại học Carnegie Mellon University CMU định nghĩa cụ thể và chuẩn mực hơn như sau: "Một chương trình máy tính
-CT được xem là học cách thực thi một lớp nhiệm vụ NV thông qua trải nghiệm
KN, đối với thang đo năng lực NL nếu như dùng NL ta đo thấy năng lực thực thicủa chuơng trình có tiến bộ sau khi trải qua KN" (máy đã học)
Lợi điểm của các phương pháp máy học là nó phát sinh ra các luật tườngminh, có thể được sửa đổi,hoặc được huấn luyện trong một giới hạn nhất định.Các phương pháp máy học hoạt động trên các dữ liệu có đặc tả thông tin Cácthông tin được trình bày theo một cấu trúc gồm 4 mức được gọi là tri thức kim
tự tháp (pyramid knowledge)
Máy học kiểm tra những ví dụ trước đó và kiểm tra luôn cả những kết quảcủa chúng khi xuất và học làm cách nào để tái tạo lại những kết quả này và tạo nênnhững sự tổng quát hóa cho những trường hợp mới
Trang 8Nói chung, máy học sử dụng một tập hữu hạn dữ liệu được gọi là tập huấnluyện Tập này chứa những mẫu dữ liệu mà nó được viết bằng mã theo một cáchnào đó để máy có thể đọc và hiểu được Tuy nhiên, tập huấn luyện bao giờ cũnghữu hạn do đó không phải toàn bộ dữ liệu sẽ được học một cách chính xác.
II Phân lo i máy h c ạng nơron ọc –
Một tiến trình máy học gồm 2 giai đoạn:
Giai đoạn học (learning): hệ thống phân tích dữ liệu và nhận ra mối quan hệ (cóthể là phi tuyến hoặc tuyến tính) giữa các đối tượng dữ liệu Kết quả của việchọc có thể là: nhóm các đối tượng vào trong các lớp, tạo ra các luật, tiên đoánlớp cho các đối tượng mới
Giai đoạn thử nghiệm (testing): mối quan hệ (các luật, lớp ) được tạo ra phảiđược kiểm nghiệm lại bằng một số hàm tính toán thực thi trên một phần của tập
dữ liệu huấn luyện hoặc trên một tập dữ liệu lớn
Các thuật toán máy học được chia làm 3 loại: học giám sát, học không giám sát vàhọc nửa giám sát
1) H c có giám sát (Supervised Learning) ọc –
Đây là cách học từ những mẫu dữ liệu mà ở đó các kỹ thuật máy học giúp hệthống xây dựng cách xác định những lớp dữ liệu Hệ thống phải tìm một sự mô
tả cho từng lớp (đặc tính của mẫu dữ liệu)
Người ta có thể sử dụng các luật phân loại hình thành trong quá trình học vàphân lớp để có thể sử dụng dự báo các lớp dữ liệu sau này
Thuật toán học có giám sát gồm tập dữ liệu huấn luyện M cặp:
Trang 9S = {(xi, cj), i=1,…,M; j=1,…,C}
Các cặp huấn luyện này được gọi là mẫu, với xi là vector n-chiều còn gọi là
vector đặc trưng, cj là lớp thứ j đã biết trước.
Thuật toán máy học giám sát tìm kiếm không gian của những giả thuyết có thể,
gọi là H Đối với một hay nhiều giả thuyết, mà ước lượng tốt nhất hàm không được biết chính xác f : x c.
Thuật toán máy học tìm ra những giả thuyết bằng cách khám phá ra nhữngđặc trưng chung của những ví dụ mẫu thể hiện cho mỗi lớp
Kết quả nhận được thường ở dạng luật (Nếu thì)
Khi áp dụng cho những mẫu dữ liệu mới, cần dựa trên những giả thuyết đã có
để dự báo những phân lớp tương ứng của chúng Nếu như không gian giả thuyếtlớn, thì cần một tập dữ liệu huấn luyện đủ lớn nhằm tìm kiếm một hàm xấp xỉ tốt
nhất f.
Tùy thuộc vào mức độ của thuật toán học giám sát, người ta có những môhình học giám sát như sau:
Học vẹt (rote): hệ thống luôn được “dạy” những luật đúng, rồi có học hội tụ
Học bằng phép loại suy (analogy): hệ thống được dạy phản hồi đúng cho một
công việc tương tự, nhưng không xác định Vì thế hệ thống phải hiệu chỉnh phảnhồi trước đó bằng cách tạo ra một luật mới có thể áp dụng cho trường hợp mới
Học dựa trên trường hợp (case-based learning): trong trường hợp này hệ thống
học lưu trữ tất cả các trường hợp, cùng với kết quả đầu ra của chúng Khi bắtgặp một trường hợp mới, nó sẽ cố gắng hiệu chỉnh đến trường hợp mới này cách
xử lý trước đó của nó đã được lưu trữ
Trang 10 Học dựa trên sự giải thích (explanation-based learning): hệ thống sẽ phân tíchtập hợp những giải pháp nhằm chỉ ra tại sao mỗi phương pháp là thành công haykhông thành công Sau khi những giải thích này được tạo ra, chúng sẽ đượcdùng để giải quyết những vấn đề mới.
2) H c không giám sát : ( Unsupervised Learning ) ọc –
Đây là việc học từ quan sát và khám phá Hệ thống khai thác dữ liệu đượcứng dụng với những đối tượng nhưng không có lớp được định nghĩa trước, mà
để nó phải tự hệ thống quan sát những mẫu và nhận ra mẫu Hệ thống này dẫnđến một tập lớp, mỗi lớp có một tập mẫu được khám phá trong tập dữ liệu Học không giám sát còn gọi là học từ quan sát và khám phá
Trong trường hợp chỉ có ít, hay gần như không có tri thức về dữ liệu đầu vào,khi đó một hệ thống học không giám sát sẽ khám phá ra những phân lớp của dữliệu, bằng cách tìm ra những thuộc tính, đặc trưng chung của những mẫu hìnhthành nên tập dữ liệu
Một thuật toán máy học giám sát luôn có thể biến đổi thành một thuật toánmáy học không giám sát (Langley 1996)
Đối với một bài toán mà những mẫu dữ liệu được mô tả bởi n đặc trưng, người ta có thể chạy thuật toán học giám sát n-lần, mỗi lần với một đặc trưng
khác nhau đóng vai trò thuộc tính lớp, mà chúng ta đang tiên đoán
Kết quả sẽ là n tiêu chí phân lớp (n bộ phân lớp), với hy vọng là ít nhất một trong n bộ phân lớp đó là đúng.
Trang 113) H c n a giám sát ọc – ửa giám sát
Học nửa giám sát là các thuật tốn học tích hợp từ học giám sát và học khơnggiám sát Việc học nửa giám sát tận dụng những ưu điểm của việc học giám sát vàhọc khơng giám sát và loại bỏ những khuyết điểm thường gặp trên hai kiểu học này
4) M t s thu t tốn máy h c : ột số thuật tốn máy học : ố thuật tốn máy học : ật tốn máy học : ọc –
Thuật Tốn Nạve Bayes
Mơ hình Hệ thống mạng Nơrơn Lan truyền ngược – Backpropogation Neural Network (FNN)
Mơ hình hệ thống mạng Nơrơn dạng hàm radial - RADIAL BASIS FUNCTION NEURAL NETWORKS (RBFNNs)
Mơ Hình Hệ Thống Mạng Nơrơn mờ hồi quy - RECURRENT FUZZY
NEURAL NETWORK (RFNNs)
Mơ Hình Hệ thống Fuzzy Artmap Neural Network
Mơ hình Hệ luật mờ - Standard Additive Model (SAM)
Giải Thuật Di Truyền
Thuật tốn Support Vector machine (SVMs)
Thuật tốn Fuzzy Support Vector machine (FSVMs)
Thuật tốn PageRank
Thuật tốn Weighted PageRank
Thuật tốn Topic Sensitive PageRank
Trang 12B.CH ƯƠNG I : KHÁI NIỆM VỀ MÁY HỌC NG II : MÔ HÌNH H TH NG M NG N RON NHÂN T O ỆM VỀ MÁY HỌC ỐNG MẠNG NƠRON NHÂN TẠO ẠNG NƠRON NHÂN TẠO ƠNG I : KHÁI NIỆM VỀ MÁY HỌC ẠNG NƠRON NHÂN TẠO
Theo nghĩa sinh học, mạng nơ-ron là một tập hợp các dây thần kinh kết nối vớinhau Ngày nay, thuật ngữ này còn dùng để chỉ mạng nơ-ron nhân tạo, cấu thành từ các
liên quan về mặt chức năng trực thuộc hệ thần kinh ngoại biên (peripheral
nervous system) hay hệ thần kinh trung ương (central nervous system) Trong
ngành thần kinh học (neuroscience), nó thường được dùng để chỉ một nhóm
nơ-ron thuộc hệ thần kinh là đối tượng của một nghiên cứu khoa học nhất định
nơ-ron sinh học, tuy nhiên, khác với các mô hình nhận thức, phần lớn các ứng dụnglại có bản chất kỹ thuật
I. M ng neural nhân t o: c u trúc, nguyên t c ho t đ ng và các gi i ấu trúc, nguyên tắc hoạt động và các giải ắc hoạt động và các giải ộng và các giải ải
thu t hu n luy n ật huấn luyện ấu trúc, nguyên tắc hoạt động và các giải ện.
1 C u trúc c a m ng n ron nhân t o ấu trúc của mạng nơron nhân tạo ủa mạng nơron nhân tạo ạng nơron ơron ạng nơron
Mạng neural nhân tạo là một mạng gồm một tập các node được kết nối vớinhau bằng các cạnh có trọng số, mỗi node là một đơn vị tính toán thường gọi làperceptron
Một perceptron (Hình 1) thực hiện một công việc rất đơn giản: nó nhận tínhiệu vào từ các perceptron phía trước hay một nguồn bên ngoài và sử dụng chúng
để tính tín hiệu ra Mỗi perceptron có thể có nhiều tín hiệu đầu vào nhưng chỉ cómột tín hiệu đầu ra duy nhất Đôi khi các perceptron còn có một giá trị gọi là độlệch (bias) được gộp vào các tính hiệu đầu vào để tính tín hiệu ra
Trang 13Trong một mạng nơron có ba kiểu perceptron:
1) Các perceptron đầu vào, nhận tín hiệu từ bên ngoài;
2) Các perceptron đầu ra, gửi dữ liệu ra bên ngoài;
3) Các perceptron ẩn, tín hiệu vào của nó được truyền từ các perceptron khác
và tín hiệu ra được truyền đến các perceptron khác trong mạng
Khi nhận được các tín hiệu đầu vào, một perceptron sẽ nhân mỗi tín hiệu vớitrọng số tương ứng rồi lấy tổng các giá trị vừa nhận được Kết quả sẽ được đưa vàomột hàm số gọi là hàm kích hoạt mà đôi khi còn gọi là hàm chuyển để tính ra tínhiệu đầu ra
Có 4 loại hàm kích hoạt thường dùng:
1) Hàm đồng nhất (Identity function):
2) Hàm ngưỡng:
Trang 14perceptron không được phép truyền cho các perceptron trong cùng lớp hay ở lớp trước Đây là loại mạng rất phổ biến và được dung nhiều trong việc dự báo dữ liệu chuỗi thời gian Bài báo cáo này chỉ tập trung vào mô hình mạng này
Trang 152) Mạng hồi quy: Khác với mạng truyền thẳng, mạng hồi quy có chứa cácliên kết ngược từ một perceptron đến perceptron ở lớp trước nó
2 Nguyên t c h at đ ng m ng neural nhân t o ắc họat động mạng neural nhân tạo ọc – ột số thuật toán máy học : ạng nơron ạng nơron
Trong mạng neural truyền thẳng nhiều lớp, các tín hiệu sẽ được truyền từ cácperceptron đầu vào qua các perceptron ở lớp ẩn (nếu có) và đến các perceptron ở lớpđầu ra Các perceptron đầu vào là các perceptron đặc biệt, chúng không thực hiện mộttính toán nào cả mà chỉ truyền tín hiệu từ môi trường ngoài sang các perceptron ở lớpsau Một perceptron i không phải là perceptron ở lớp đầu vào sẽ tính giá trị đầu ra của
nó như sau Đầu tiên nó sẽ tính tổ hợp tuyến tính các giá trị đầu vào của mình
Trang 16Ở đây pred(j) là các perceptron đứng trước i và kết nối với i, sj là đầu ra của cáperceptron này và cũng là đầu vào của I, wij trọng số của cạnh nối từ perceptron j đếnperceptron i, là độ lệch (bias) của perceptron i Đôi khi giá trị độ lệch được biểu diễnbằng một trọng số của một cạnh kết nối từ một perceptron giả có giá trị đầu ra luôn là 1đến perceptron i Sau đó giá trị neti sẽ được truyền vào hàm kết hợp để tính giá trị đầu
ra của si của perceptron i Nếu perceptron i là perceptron ở tầng suất của mạng thì si
chính là tín hiệu đầu ra của mạng neural, nếu không thì si sẽ được truyền đến làm giátrị đầu vào cho các perceptron ở lớp kế sau Ví dụ nếu hàm kích hoạt là hàm sigmoidthì si được tính như sau :
Mạng neural nhân tạo có thể được xem như một hàm số từ một tập các giá trịđầu vào đến một tập các giá trị đầu ra có các tham số là số lớp, số perceptron trên mỗilớp và các tập hợp các trọng số wij Bài toán trên mạng neural là làm sao xác định đượccác thông số trên để mạng neural thực hiện được yêu cầu mong muốn Điều này đượcthực hiện qua một quá trình gọi là quá trình huấn luyện mạng
3 Hu n luy n m ng neural : ấu trúc của mạng nơron nhân tạo ện mạng neural : ạng nơron
Chức năng của một mạng nơron được quyết định bởi các nhân tố như: hình dạngmạng (số lớp, số đơn vị trên mỗi lớp, cách mà các lớp được liên kết với nhau) và cáctrọng số của các liên kết bên trong mạng Hình dạng của mạng thường là cố định, vàcác trọng số được quyết định bởi một thuật toán huấn luyện (training algorithm) Tiếntrình điều chỉnh các trọng số để mạng “nhận biết” được quan hệ giữa đầu vào và đíchmong muốn được gọi là học (learning) hay huấn luyện (training) Rất nhiều thuật toánhuấn luyện đã được phát minh để tìm ra tập trọng số tối ưu làm giải pháp cho các bài