Trường Đại học Công Nghệ Thông Tin
Bài thu họach :
Máy học và ứng dụng
Máy học – mạng nơron
nhân tạo và ứng dụng auto
- routing car
[Type the document subtitle]
GVHD : PGS. TS Vũ Thanh Nguyên
Người thực hiện : Phù Khắc Anh
MSHV : CH1301079
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
LỜ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 : 6
II.Phân loại máy học 8
1)Học có giám sát (Supervised Learning) 8
2)Học không giám sát : ( Unsupervised Learning ) 10
3)Học nửa giám sát 11
4)Một số thuật toán máy học : 11
B.CHƯƠNG II : MÔ HÌNH HỆ THỐNG MẠNG NƠRON NHÂN TẠO 12
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 12
1.Cấu trúc của mạng nơron nhân tạo 12
2.Nguyên tắc họat động mạng neural nhân tạo 15
3.Huấn luyện mạng neural : 16
II.Ứng dụng demo auto – routing car 26
1.Mục đích chương trình 26
2.Mô tả chương trình và mô hình nơron nhân tạo 26
3.Kết luận: 32
Tài liệu tham khảo 33
LỜI MỞ ĐẦ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ệt
trong 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
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
độ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ứu
nhằ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 con
ngườ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 neural
nhâ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 neural
nhâ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ện
mạ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
A.CHƯƠNG I : KHÁI NIỆM VỀ MÁY HỌ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ều
hoà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 mong
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
muốn. Các từ điển thì định nghĩa như sau : “ Học giúp đạt được tri thức, hay gia tăng
hiể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ứu
tì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 kinh
nghiệ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 nhau
như 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ật
trong 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 con
ngườ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ọc
cũ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 con
ngườ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.
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
Má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 đúng
rà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 quan
trọ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ạn chế
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ày một
cách rỏ ràng trong sáng như mong muốn.
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
I. Định nghĩa máy họ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ứu
việ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ức
tạ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 được
xế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ầu
thu nhận tri thức (knowledge acquisition). Thật vậy, trong nhiều trường hợp ta
cầ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 mua
bá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 ra
ngày nay chỉ phù hợp cho máy đọc (computer readable) tiềm tàng ngưồn kiến
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
thứ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 cho
phép máy tính tự động hiểu, xử lý và học từ dữ liệu để thực thi nhiệm vụ được
giao 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 thi
củ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ường
minh, 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ác
thô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ên
những sự tổng quát hóa cho những trường hợp mới.
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
Nó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ấn
luyệ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ách
nào đó để máy có thể đọc và hiểu được. Tuy nhiên, tập huấn luyện bao giờ cũng
hữ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
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ệc
họ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án
lớ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)
Đâ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:
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
S = {(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ết
lớ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ản
hồ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ắt
gặ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ữ.
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
• Học dựa trên sự giải thích (explanation-based learning): hệ thống sẽ phân tích
tậ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 hay
không thành công. Sau khi những giải thích này được tạo ra, chúng sẽ được
dùng để giải quyết những vấn đề mới.
2) Học không giám sát : ( Unsupervised Learning )
Đâ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ình
thà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án
má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.
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
3) Học nửa giám sát
Học nửa giám sát là các thuật toán học tích hợp từ học giám sát và học không
giá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 toán máy học :
Thuật Toán Naï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 toán Support Vector machine (SVMs).
Thuật toán Fuzzy Support Vector machine (FSVMs).
Thuật toán PageRank.
Thuật toán Weighted PageRank.
Thuật toán Topic Sensitive PageRank.
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
B. CHƯƠNG II : MÔ HÌNH HỆ THỐNG MẠ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ới
nhau. 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
nơ-ron nhân tạo. Do đó thuật ngữ 'mạng nơ-ron' xác định hai khái niệm phân biệt:
• Mạng nơ-ron sinh học là một mạng lưới (plexus) các nơ-ron có kết nối hoặ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.
• Mạng nơ-ron nhân tạo được thiết kế để mô hình một số tính chất của mạng 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ụng
lạ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
thuật huấn luyện.
1. Cấu trúc của mạng nơron nhân tạo
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ới
nhau 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ín
hiệ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.
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
Trong 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ới
trọ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ào
mộ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ín
hiệ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:
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
3) Hàm sigmoid:
4) Hàm sigmoid lưỡng cực
Các perceptron liên kết với nhau qua các cạnh có trong số tạo thành mạng
neural nhân tạo. Tùy theo số lượng các perceptron và cách thức liên kết của chúng
mà tạo thành các mạng neural khác nhau có khả năng khác nhau. Có hai loại mạng
neural nhân tạo cơ bản là mạng truyền thẳng và mạng hồi quy.
1) Mạng truyền thẳng: Một perceptron ở lớp đứng trước sẽ kết nối với tất cả
các perceptron ở lớp đứng sau. Tín hiệu chỉ được truyền theo một hướng từ lớp đầu
vào qua các lớp ẩn (nếu có) và đến lớp đầu ra. Nghĩa là tín hiệu ra của một
perceptron 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.
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
2) Mạng hồi quy: Khác với mạng truyền thẳng, mạng hồi quy có chứa các
liê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
Trong mạng neural truyền thẳng nhiều lớp, các tín hiệu sẽ được truyền từ các
perceptron đầ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ột
tí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ớp
sau. 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
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
Ở đây pred(j) là các perceptron đứng trước i và kết nối với i, s
j
là đầu ra của cá
perceptron này và cũng là đầu vào của I, w
ij
trọng số của cạnh nối từ perceptron j đến
perceptron i, là độ lệch (bias) của perceptron i. Đôi khi giá trị độ lệch được biểu diễn
bằ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ì s
i
chính là tín hiệu đầu ra của mạng neural, nếu không thì s
i
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 sigmoid
thì s
i
đượ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ỗi
lớp và các tập hợp các trọng số w
ij
. Bài toán trên mạng neural là làm sao xác định được
cá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 được
thự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 :
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ạng
mạ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ác
trọ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ến
trì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à đích
mong muốn được gọi là học (learning) hay huấn luyện (training). Rất nhiều thuật toán
huấ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
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
toán. Các thuật toán đó có thể chia làm hai nhóm chính: Học có giám sát (Supervised
learning) và Học không có giám sát (Unsupervised Learning).
Học có giám sát: mạng được huấn luyện bằng cách cung cấp cho nó các cặp mẫu
đầu vào và các đầu ra mong muốn (target values). Các cặp này có sẵn trong quá trình
thu nhập dữ liệu. Sự khác biệt giữa các đầu ra theo tính toán trên mạng so với các đầu
ra mong muốn được thuật toán sử dụng để thích ứng các trọng số trong mạng. Điều
này thường được đưa ra như một bài toán xấp xỉ hàm số - cho dữ liệu huấn luyện bao
gồm các cặp mẫu đầu vào x, và một đích tương ứng t, mục đích là tìm ra hàm f(x) thoả
mãn tất cả các mẫu học đầu vào.
HÌNH 4: MÔ HÌNH HỌC CÓ GIÁM SÁT
Học không có giám sát: với cách học không có giám sát, không có phản hồi từ
môi trường để chỉ ra rằng đầu ra của mạng là đúng. Mạng sẽ phải khám phá các đặc
trưng, các điều chỉnh, các mối tương quan, hay các lớp trong dữ liệu vào một cách tự
động. Trong thực tế, đối với phần lớn các biến thể của học không có giám sát, các đích
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
trùng với đầu vào. Nói một cách khác, học không có giám sát luôn thực hiện một công
việc tương tự như một mạng tự liên hợp, cô đọng thông tin từ dữ liệu vào.
Để huấn luyện một mạng và xét xem nó thực hiện tốt đến đâu, ta cần xây dựng
một hàm mục tiêu (hay hàm đánh giá) để cung cấp cách thức đánh giá khả năng hệ
thống một cách không nhập nhằng. Việc chọn hàm mục tiêu là rất quan trọng bởi vì
hàm này thể hiện các mục tiêu thiết kế và quyết định thuật toán huấn luyện nào có thể
được áp dụng. Để phát triển một hàm mục tiêu đo được chính xác cái chúng ta muốn
không phải là việc dễ dàng.
3.1 Giải thuật lan truyền ngược :
Giải thuật lan truyền ngược tìm tập các trọng số thích hợp cho một mạng
neural truyền thẳng nhiều lớp. Nó áp dụng phương pháp giảm độ dốc (gradient
descent) để tối thiểu hóa bình phương sai số giữa kết quả xuất của mạng với kết quả
xuất mong muốn. Ý tưởng chính của giải thuật là giá trị lỗi sẽ được lan truyền
ngược từ tầng xuất về tầng nhập để tính (đạo hàm riêng phần của hàm mục tiêu E
theo từng trọng số wij).
Ta tính đạo hàm riêng phần này như sau:
Ở đây w
ij
là trọng số của cạnh nối perceptron j đến perceptron i, si là kết quả
xuất của perceptron i, f() là hàm kích hoạt của các perceptron
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
Ở đây succ(i) là các perceptron ở lớp ngay sau perceptron i. Các công thức
này cho phép ta xây dựng một thủ tục tính đạo hàm riêng của hàm mục tiêu E theo
các trọng số w
ij
như sau: Bắt đầu tính toán từ perceptron ở tầng xuất, sau đó sử dụng
kết quả vừa tính được vào việc tính toán ở các perceptron ở tầng trước. Nói các
khác thông tin về độ dốc (gradient) được lan truyền từ tầng xuất đến tầng nhập. Do
đó giả thuật này được gọi là giải thuật lan truyền ngược.
Mỗi khi thông tin về đạo hàm riêng phần đã biết, bước tiếp theo trong giải
thuật lan truyền ngược là cập nhập các trọng số w
ij
.
Mặc dù giải thuật lan truyền ngược tương đối đơn giản nhưng trong thực tế
việc lựa chọn một hệ số học phù hợp là không hề đơn giản. Hệ số học quá nhỏ sẽ
dẫn đến thời gian hội tụ của giải thuật quá lâu, ngược lại hệ số học quá lớn sẽ dẫn
đến hiện tượng giao động (oscillation), ngăn không cho giá trị hàm mục tiêu hội tụ
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
về một diểm nhất định. Hơn nữa, mặc dù điểm tối ưu cục bô có thể được chứng
minh là luôn có thể đạt được ở một vài trường hợp cụ thể nhưng không có gì đảm
bảo giải thuật sẽ tìm được tối ưu toàn cục của hàm mục tiêu E. Một vấn đề khác nữa
là kích cỡ của đạo hàm cũng ảnh hướng đến sự cập nhập các trọng số. Nếu đạo hàm
riêng phần quá nhỏ thì w nhỏ, nếu đạo hàm riêng phần lớn thì w lớn. Độ lớn
của đạo hàm riêng phần thay đổi không thể biết trước được theo hình dạng của hàm
lỗi E trong mỗi lần lặp. Do đó quá trình học không ổn định.
Để cho quá trình học ổn định người ta thêm vào một hệ số quán tính
(momentum term)
Cơ bản có hai phương pháp cập nhập các trọng số phân loại theo thời điểm
cập nhập: học theo mẫu (learning by pattern) và hoc theo epoch (learning by
epoch). Một epoch là một lần học duyệt qua tất cả các mẫu trong tập dữ liệu mẫu
dùng để học.
Trong phương pháp học theo mẫu đôi khi còn dược gọi là học trực tuyến
(online learning), cứ mỗi lần một mẫu trong tập dữ liệu được duyệt qua thì các
trọng số sẽ được cập nhập. Phương pháp này cố gắng tối thiểu hàm lỗi tổng thể
(overall error) bằng cách tối ưu hàm lỗi cho từng mẫu trong tập dữ liệu học. Phương
pháp này làm việc tốt cho các tập dữ liệu mẫu có kích cỡ lớn và chứa đựng nhiều
thông tin dư thừa.
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
Phương pháp học theo epoch (learning by epoch) thực hiện lấy tổng tất cả
thông tin về độ dốc (gradient) cho toàn bộ tập mẫu (pattern set) sau đó mới cập
nhập các trọng số, nghĩa là nó thực hiện việc cập nhập trọng số sau khi đã duyệt qua
hết các mẫu trong tập dữ liệu. Phương pháp này còn có tên gọi khác là học theo bó
(batch learning).
Giải thuật lan truyền ngược cần hai thông số nhập vào đó là hệ số học và hệ
số quán tính. Đối với mỗi bài toán khác nhau các thông số này cần có các giá trị
khác nhau để đạt được sự hiệu quả trong quá trình học. Việc xác định các thông số
này một cách đúng đắn không phải là một việc dễ dàng cần nhiều công sức và kinh
nghiệm.
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
3.2 Giải thuật RPROP
Giải thuật lan truyền ngược gặp một vấn đề ở chỗ giá trị cập nhập trọng số (
( )
ij
w t
∆
) không những phụ thuộc vào dấu của đạo hàm riêng phần mà còn bị ảnh
hưởng bởi độ lớn của nó, điều này làm cho quá trình học không được ổn định. Việc
thêm vào hệ số quán tính không giải quyết trọn vẹn vấn đề bởi vì ta không biết giá
trị tối ưu cho hệ số này là bao nhiêu. Để giải quyết vấn đề trên người ta đưa ra một
giải thuật mới gọi là RPROP.
RPROP là viết tắt của từ ‘resilient propagation’, nghĩa là lan truyền đàn hồi.
RPROP thực hiện cập nhập các trọng số w
ij
dựa vào thông tin về dấu của các đạo
hàm riêng phần điều này giúp nó tránh được sự ảnh hưởng của độ lớn của các đạo
hàm riêng phần này. Để thực hiện điều này các trọng số sẽ có một giá trị cập nhập
riêng
ij
∆
chỉ phụ thuộc vào dấu của
ij
E
w
∂
∂
. Giá trị này được cập nhập trong quá trình
học theo quy luật sau:
( 1) ( )
( 1)
( 1) ( )
( ) ( 1)
( 1)
* , * 0
* , * 0
,
t t
t
ij
ij ij
t t
t t
ij ij
ij ij
t
ij
E E
if
w w
E E
if
w w
else
η
η
−
+ −
−
− −
−
∂ ∂
∆ >
∂ ∂
∂ ∂
∆ = ∆ <
∂ ∂
∆
Ở đây
0 1
η η
− +
< < <
là các hệ số cố định của quá trình học dùng để hiệu chỉnh các
giá trị cập nhập cho từng trọng số tùy theo hình dạng của hàm lỗi.
Mỗi lần đạo hàm riêng phần theo trọng số w
ij
của hàm lỗi E đổi dấu, nghĩa là giá trị
cập nhập vừa thực hiện là quá lớn và giải thuật đã nhảy vượt qua điểm tối ưu cục bộ thì
giá trị cập nhập
ij
∆
sẽ giảm đi theo một thừa số
η
−
. Ngược lại nếu đạo hàm riêng phần vẫn
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
giữ nguyên dấu thì giá trị cập nhập
ij
∆
sẽ được tăng lên để tăng tốc độ hội tụ. Cứ mỗi lần
giá trị cập nhập được biết thì các trọng số được điều chỉnh theo luật sau: nếu đạo hàm
riêng phần dương thì trọng số được giảm đi một lượng bằng với giá trị cập nhập (
ij
∆
), nếu
đạo hàm riêng phần âm thì giá trị cập nhập được cộng thêm vào trọng số.
( )
( )
( )
( ) ( )
, 0
, 0
0 ,
t
t
ij
ij
t
t t
ij ij
ij
E
if
w
E
w if
w
else
∂
−∆ >
∂
∂
∆ = +∆ <
∂
( 1) ( ) ( )t t t
ij ij ij
w w w
+
= + ∆
Tuy nhiên có một trường hợp đặc biệt đó là khi đạo hàm riêng phần đổi dấu, nghĩa
là bước cập nhập trước quá lớn làm cho điểm tối ưu bị nhảy vượt qua. Giá trị trọng số phải
được trả về giá trị trước khi thay đổi, giá trị cập nhập
ij
∆
sẽ được giảm xuống và ở bước
kế sau ta sẽ không cập nhập giá trị này. Thực tế ta có thể làm việc này bằng cách gán
( ) ( 1)t t
ij ij
w w
−
∆ = −∆
và
( )
0
t
ij
E
w
∂
=
∂
Giải thuật RPROP thực hiện việc thích nghi các giá trị cập nhập của các trọng số
tùy theo độ dốc (gradient) của hàm lỗi E, mà thông tin về tổng độ dốc của hàm lỗi cho
toàn bộ tập dữ liệu mẫu đáng tin hơn thông tin về độ dốc chỉ cho một mẫu trong tập mẫu
nên giải thuật RPROP thực hiện theo mô hình học theo bó (học theo epoch). Các thông tin
về đạo hàm riêng phần sẽ được cộng dồn qua từng mẫu trong tập huấn luyện và các trọng
số sẽ được cập nhập sau khi đã duyệt qua hết các mẫu.
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
Giải thuật RPROP ban đầu cũng thực hiện các bước giống như giải thuật lan truyền
ngược, các thông tin về đạo hàm riêng phần của hàm lỗi theo các trọng số sẽ được lan
truyền ngược từ các lớp sau đến các lớp trước. Khi các thông tin về các đạo hàm riêng
phần này có đủ thì giải thuật sẽ thực hiện việc cập nhập các trọng số theo các quy tắc nêu
ở trên. Mã giả cho phần cập nhập trọng số của giải thuật RPROP như sau:
For all weights and biases {
if (
( 1) ( )
* 0
t t
ij ij
E E
w w
−
∂ ∂
>
∂ ∂
) then {
( )t
ij
∆
= minimum (
( 1)
max
* ,
t
ij
η
− +
∆ ∆
)
( )t
ij
w∆
= - sign (
( )t
ij
E
w
∂
∂
)*
( )t
ij
∆
( 1)t
ij
w
+
=
( )t
ij
w
+
( )t
ij
w∆
} else if (
( 1) ( )
* 0
t t
ij ij
E E
w w
−
∂ ∂
<
∂ ∂
) then {
( )t
ij
∆
= maximum (
( 1)
min
* ,
t
ij
η
− −
∆ ∆
)
( 1)t
ij
w
+
=
( )t
ij
w
-
( 1)t
ij
w
−
∆
( )
0
t
ij
E
w
∂
=
∂
}
else if (
( 1) ( )
* 0
t t
ij ij
E E
w w
−
∂ ∂
=
∂ ∂
) then {
( )t
ij
w∆
= - sign (
( )t
ij
E
w
∂
∂
)*
( )t
ij
∆
( 1)t
ij
w
+
=
( )t
ij
w
+
( )t
ij
w∆
}
HVTH : CH1301079 – Phù Khắc Anh
Máy học và ứng dụng GVHD : PGS.TS Vũ Thanh Nguyên
}
Ở đây hàm số minimum và maximum lần lược là hai hàm trả về giá trị nhỏ nhất và
lớn nhất của hai số. Hàm số sign(x) trả về 1 nếu x dương, trả về -1 nếu x âm và trả về 0
trong các trường hợp còn lại.
Ban đầu các giá trị cập nhập
ij
∆
sẽ được khởi tạo một giá trị dương ban đầu
0
∆
. Lựa
chọn tốt cho
0
∆
là 0.1 nhưng theo các nghiên cứu thì việc lựa chọn tham số này không ảnh
hưởng nhiều đến tốc độ hội tụ của giải thuật. Các thông số về
min
∆
và
max
∆
để tránh vấn đề
tràn số của các biến thực. Giá trị
min
∆
được thiết lập thường là 1.0e-6, còn giá trị
max
∆
là
50.0. Thông thường độ hội tụ của giải thuật không bị ảnh hưởng bởi các thông số này
nhưng đôi khi thông số
max
∆
được chọn là một giá trị nhỏ (ví dụ 1.0) để ngăn giải thuật
không rơi quá nhanh vào một cực tiểu cục bộ. Hai thông số
η
+
và
η
−
được cố định ở hai
giá trị lần lược là 1.2 và 0.5, để việc lựa chọn các tham số cho giải thuật được đơn giản.
Trong thực tế, hai thông số cần được lưa chọn cho giải thuật RPROP là
0
∆
và
max
∆
.
HVTH : CH1301079 – Phù Khắc Anh