37 2.2 Ứng dụng giải thuật di truyền vào bài toán tối ưu hoá trọng số của mạng nơ-ron nhân tạo ..... Trên thế giới, việc áp dụng các phương pháp của khai phá dữ liệu đặc biệt là các phươ
Trang 2luËn v¨n th¹c sü
Ng-êi h-íng dÉn khoa häc:
Gs.TS hµ quang thôy
HÀ NỘI - 2007
Trang 3Mục ục
Lời cảm ơn 3
Mục lục 4
Danh sách hình vẽ 7
Danh sách bảng biểu 9
MỞ ĐẦU 10
CHƯƠNG 1 - MẠNG NƠ-RON NHÂN TẠO TRUYỀN THẲNG NHIỀU LỚP 13
1.1 Giới thiệu về mạng nơ-ron nhân tạo 13
1.1.1 Khái niệm cơ bản 13
1.1.2 Mô hình mạng nơ-ron nhân tạo 15
1.1.3 Khả năng ứng dụng của mạng nơ-ron nhân tạo 18
1.2 Mạng nơ-ron lan truyền thẳng nhiều lớp 19
1.2.1 Mạng perceptron một lớp 19
1.2.2 Mạng perceptron nhiều lớp 22
1.2.3 Một số vấn đề cần chú ý khi sử dụng mạng MLP 30
Kết luận chương 33
CHƯƠNG 2 - KẾT HỢP GIẢI THUẬT DI TRUYỀN VỚI GIẢI THUẬT LAN TRUYỀN NGƯỢC SAI SỐ ĐỂ TỐI ƯU HOÁ TRỌNG SỐ MẠNG NƠ-RON NHÂN TẠO 34
2.1 Giới thiệu giải thuật di truyền 34
2.1.1 Giới thiệu 34
2.1.2 Tư tưởng chính của giải thuật di truyền 35
2.1.3 Giải thuật di truyền đơn giản 37
2.2 Ứng dụng giải thuật di truyền vào bài toán tối ưu hoá trọng số của mạng nơ-ron nhân tạo 41
2.2.1 Xây dựng hàm giá 41
2.2.2 Mã hoá nhiễm sắc thể 41
2.2.3 Lai ghép 43
Trang 42.2.4 Đột biến 44
2.2.5 Thử nghiệm 44
2.2.6 Giải thuật đề xuất 49
2.3 Kết hợp giải thuật di truyền với giải thuật lan truyền ngược sai số để tối ưu hoá trọng số mạng nơ-ron nhân tạo 51
2.3.1 Đặt vấn đề 51
2.3.2 Kết hợp giải thuật di truyền và giải thuật lan truyền ngược sai số53 Kết luận chương 55
CHƯƠNG 3 - ỨNG DỤNG MẠNG NƠ RON NHÂN TẠO VÀO VIỆC DỰ BÁO LƯU LƯỢNG NƯỚC ĐẾN HỒ HOÀ BÌNH 56
3.1 Điều kiện địa lý, tự nhiên, khí tượng thuỷ văn lưu vực sông Đà 56
3.1.1 Vị trí địa lý 56
3.1.2 Địa hình 57
3.1.3 Điều kiện địa chất 57
3.1.4 Điều kiện thổ nhưỡng 57
3.1.5 Đặc điểm khí hậu 57
3.1.6 Đặc điểm chế độ thuỷ văn 58
3.1.7 Thống kê dữ liệu thu thập được 62
3.2 Các phương pháp dự báo 63
3.2.1 Dựa trên mô hình vật lý 63
3.2.2 Dựa trên mô hình toán 65
3.2.3 Hướng tiếp cận mới 66
3.3 Một số chỉ tiêu đánh giá kết quả dự báo 66
3.4 Dự báo lưu lượng đến hồ Hoà Bình trước 10 ngày 67
3.4.1 Phần mềm xây dựng 67
3.4.2 Số liệu sử dụng 68
3.4.3 Các tham số 69
3.4.4 Các phương án dự báo 69
Kết luận chương 74
KẾT LUẬN 75
Trang 5TÀI LIỆU THAM KHẢO 77 PHỤ LỤC 79
Phụ lục A - Giới thiệu về phần mềm dự báo 79Phụ lục B - Mẫu học thử nghiệm so sánh các phương pháp lai ghép và đột biến 84Phụ lục C - Số liệu học và kiểm tra trong bài toán dự báo lưu lượng nước đến hồ Hoà Bình 85
Trang 6Danh sách hình vẽ
Hình 1.1 Cấu tạo của tế bào nơ-ron sinh học 14
Hình 1.2 Mô hình nơ-ron nhân tạo 14
Hình 1.3 Mạng nơ-ron nhân tạo chỉ có một nút và có sự phản hồi 16
Hình 1.4 Mạng nơ-ron truyền thẳng một lớp 16
Hình 1.5 Mạng nơ-ron truyền thẳng nhiều lớp 17
Hình 1.6 Mạng nơ-ron hồi quy một lớp 17
Hình 1.7 Sự khác nhau giữa hồi quy tuyến tính và mạng nơ-ron 19
Hình 1.8 Mạng perceptron một lớp 20
Hình 1.9 Thực hiện hàm XOR bằng mạng MLP 22
Hình 1.10 Lan truyền tín hiệu trong quá trình học theo phương pháp lan truyền ngược sai số 23
Hình 1.11 Sai số E được xét là hàm của trọng số W 25
Hình 1.12 Minh họa về ý nghĩa của quán tính trong thực tế 30
Hình 1.13 Hàm sigmoid g(x) = 1/(1+e-x) 30
Hình 1.14 Nội suy hàm y = sin(x/3) + v, 0 x 20 sử dụng MLP 32
Hình 2.1 Sự sinh sản đơn giản phân bố các chuỗi con cháu nhờ sử dụng bánh xe roulette với các khe hở tỷ lệ với độ thích nghi 38
Hình 2.2 Lưu đồ thuật toán của giải thuật di truyền đơn giản 40
Hình 2.3 Mã hoá nhị phân trọng số theo phương pháp GENITOR 42
Hình 2.4 Ví dụ về phương pháp mã hoá trọng số bằng số thực 43
Hình 2.5 Lai ghép nút (crossover-nodes) 44
Hình 2.6 Kết hợp giải thuật di truyền và giải thuật lan truyền ngược sai số 53
Hình 3.1 Bản đồ phân bố các trạm trên sông Đà (dấu chấm đỏ) 60
Hình 3.2 Mô hình dự báo dựa trên công nghệ học máy 66
Hình 3.3 Giao diện chính của phần mềm thử nghiệm 68
Hình 3.3 Kết quả dự báo với dữ liệu kiểm tra theo phương án 1 70 Hình 3.4 Kết quả dự báo với dữ liệu kiểm tra theo phương án 1 trên đồ thị scatter 71
Trang 7Hình 3.5 Kết quả dự báo với dữ liệu kiểm tra theo phương án 2 72Hình 3.6 Kết quả dự báo với dữ liệu kiểm tra theo phương án 2 trên đồ thị scatter 72Hình 3.7 Kết quả dự báo với dữ liệu kiểm tra theo phương án 3 73Hình 3.8 Kết quả dự báo với dữ liệu kiểm tra theo phương án 3 trên đồ thị scatter 73
Trang 8Danh sách bảng biểu
Bảng 2.1 Các chuỗi của bài toán mẫu và các giá trị thích nghi 38
Bảng 2.2 So sánh các phương pháp đột biến 45
Bảng 2.3 So sánh các phương pháp lai ghép 46
Bảng 2.4 Kết quả thử nghiệm so sánh GA và BP với ngưỡng sai số 0.05 48
Bảng 2.5 Kết quả thử nghiệm với giải thuật đề xuất 50
Bảng 2.6 Kết quả thử nghiệm so sánh GA‟ và BP với ngưỡng sai số 0.0005 51
Bảng 2.7 So sánh khả năng hội tụ của mạng khi sử dụng hai phương pháp học GA‟ và BP với sai số dừng lặp khác nhau 52
Bảng 2.8 Kết quả thử nghiệm giải thuật kết hợp GA‟ và BP với ngưỡng sai sô 0.0005 54
Bảng 3.1 Thống kê số liệu mưa thu thập được 62
Bảng 3.2 Thống kê số liệu lưu lượng thu thập được 63
Trang 9MỞ ĐẦU
Dự báo thuỷ văn là công việc dự báo trước một cách có khoa học về trạng thái
biến đổi các yếu tố thuỷ văn trong tương lai Đây là một ngành khoa học có nhiệm vụ báo trước sự xuất hiện các yếu tố thủy văn trên cơ sở nghiên cứu các quy luật của chúng Hiện nay có rất nhiều bài toán dự báo thuỷ văn được đặt ra như dự báo dòng chảy, dự báo mực nước, dự báo lưu lượng nước trên sông, dự báo lũ, và dự báo các hiện tượng khác trên sông ngòi và hồ [3]
Tùy vào quan điểm phân chia mà tồn tại một số phân loại dự báo thủy văn
Chẳng hạn, theo yêu cầu phục vụ thì có các loại dự báo như dự báo cho nông nghiệp,
dự báo cho giao thông, dự báo cho chống lũ lụt; còn theo đối tượng dự báo thì có các loại dự báo mực nước, dự báo lưu lượng, dự báo bùn cát… Tuy nhiên, phân loại dự báo theo thời gian là một phân loại điển hình với các loại dự báo là ngắn hạn, trung hạn, dài hạn và siêu dài hạn Dự báo ngắn hạn với khoảng thời gian dự báo từ một đến
ba ngày Dự báo trung hạn với khoảng thời gian dự báo dài hơn dự báo ngắn hạn nhưng tối đa không quá mười ngày Dự báo dài hạn có khoảng thời gian dự báo từ hơn mười ngày đến một năm Khi thời gian dự báo lớn hơn một năm đó là dự báo siêu dài hạn
Thuỷ văn là một quá trình tự nhiên phức tạp, chịu tác động của rất nhiều yếu tố Tính biến động của các yếu tố này phụ thuộc vào cả không gian và thời gian nên gây khó khăn rất lớn cho quá trình dự báo, tìm ra được mối liên quan giữa các yếu tố Thêm vào đó, do thiếu các trạm quan trắc cần thiết và thiếu sự kết hợp giữa các ngành liên quan cho nên dữ liệu quan trắc thực tế thường là không đầy đủ, không mang tính chất đại diện
Yêu cầu chung mà tất cả các bài toán dự bảo thủy văn cần phải giải quyết là làm cách nào để có thể phân tích và sử dụng chuỗi dữ liệu có trong quá khứ để dự đoán được giá trị tương lai Hiện nay, có rất nhiều phương pháp dự báo đã được đưa ra dựa trên mô hình vật lý và mô hình toán học Trong nhiều trường hợp, kết quả nghiên cứu
dự báo thủy văn theo các mô hình nói trên đã đạt được một số thành công đáng ghi nhận [1] Tuy nhiên, vấn đề tìm kiếm phương pháp đủ tốt, đáp ứng các yêu cầu thực tế giải quyết bài toán dự báo thuỷ văn vẫn là nội dung nghiên cứu thời sự hiện nay Ở trong nước, tại Viện Khí tượng Thủy văn có hàng chục công trình nghiên cứu liên quan tới dự báo thủy văn, đặc biệt có tới bốn đề tài cấp Nhà nước [3] Trên thế giới, việc áp dụng các phương pháp của khai phá dữ liệu (đặc biệt là các phương pháp học máy sử dụng mạng nơ-ron nhân tạo và kết hợp với giải thuật di truyền) vào dự báo thủy văn đã trở thành nội dung nghiên cứu dự báo thủy văn thời sự trong thời gian gần đây [5-7,12-14, 19]
Trang 10Khai phá dữ liệu là một trong những lĩnh vực nghiên cứu của khoa học máy tính
hiện nay đang được phát triển rất mạnh mẽ Nó kết hợp giữa học máy, công nghệ cơ sở
dữ liệu và một số chuyên ngành khác để tìm ra những tri thức, bao gồm cả các thông tin dự báo, từ những cơ sở dữ liệu lớn
Luận văn này tập trung khảo sát một số phương pháp học máy tiên tiến, thực hiện
việc kết hợp giữa phương pháp học máy sử dụng mạng nơ-ron nhân tạo [5-7,9-20] với giải thuật di truyền [4,8,21] và ứng dụng vào bài toán dự báo lưu lượng nước đến hồ Hòa Bình Luận văn tập trung khảo sát một số công trình nghiên cứu liên quan trên thế giới [5-7, 12-14, 19] Demetris F Lekkas [12] cung cấp một khung nhìn phương pháp luận về các phương pháp dự báo dòng chảy Ibrahim Can cùng các đồng tác giả [5] và Cristiane Medina Finzi Quintao cùng các đồng tác giả [19] công bố một số kết quả nghiên cứu cập nhật về dự báo dòng chảy của một số dòng sông tại Thổ Nhĩ Kỳ và Brazin Đặc biệt, các công trình này đã cung cấp cách thức đánh giá kết quả thực nghiệm các phương pháp dự báo thủy văn được đề cập Các công trình nghiên cứu khác về mạng nơ-ron nhân tạo, giải thuật di truyền và kết hợp chúng được luận văn sử dụng để làm nền tảng khoa học cho các nghiên cứu phát triển Luận văn đã hoàn thành phần mềm thử nghiệm và tiến hành thực nghiệm trên bộ dữ liệu được thu thập tin cậy thông qua hệ thống đo đạc thủy văn dọc sông Đà, nguồn nước chính chảy vào hồ Hòa Bình Đóng góp khoa học của luận văn là một báo cáo khoa học đã được trình bày tại
Hội thảo khoa học quốc gia Một số vấn đề chọn lọc về Công nghệ thông tin và Truyền thông lần thứ X được tổ chức tại Đại Lải vào tháng 9/2007 với kết quả thực hiện cho
dự báo nước trước 10 ngày có chỉ số R2
khá cao, lên tới 0.8737 [2] Cải tiến do luận
văn đề xuất kết hợp đột biến BIASED với đột biến UNBIASED trong đó đột biến BIASED sẽ đóng vai trò chủ đạo nhằm vượt ra khỏi cực trị địa phương (D Montana
and L Davis [16]) là có ý nghĩa Các kết quả thực nghiệm cải tiến trên cho thấy mọi tiêu chí đánh giá đều tốt lên, chỉ số R2
nâng lên 0.8742 (so với 0.8737 [2]), sai số quân phương là 72.28 m3/s (so với 76.10 m3
/s [2])
Nội dung chính của luận văn được tổ chức thành 3 chương có nội dung được
mô tả như dưới đây
Chương I Mạng nơ-ron nhân tạo truyền thẳng nhiều lớp Chương này trình
bày những lý thuyết cơ bản về mạng nơ-ron nhân tạo, tập trung nghiên cứu mạng truyền thẳng nhiều lớp Chương này cung cấp một cách nhìn tổng quát nhất, và những vấn đề về quá trình huấn luyện mạng và thuật toán học của mạng trong đó tập trung chủ yếu vào thuật toán lan truyền ngược sai số
Chương II Kết hợp giải thuật di truyền với giải thuật lan truyền ngược sai số
để tối ưu hoá trọng số mạng nơ-ron nhân tạo Chương này trình bày về lý thuyết
của giải thuật di truyền và khả năng ứng dụng của giải thuật này kết hợp với thuật toán
Trang 11lan truyền ngược sai số nhằm đạt tới một kết quả tốt hơn đối với bài toán tối ưu trọng
số mạng nơ-ron nhân tạo
Chương III Ứng dụng mạng nơ ron nhân tạo vào việc dự báo lưu lượng nước đến hồ Hoà Bình Chương này giới thiệu sơ lược về bộ dữ liệu sử dụng, các phương
pháp đánh giá kết quả dự báo và tập trung vào thử nghiệm các phương pháp để dự báo lưu lượng nước đến hồ Hoà Bình trước mười ngày, từ đó đánh giá được khả năng ứng dụng các phương pháp học máy đã trình bày trong dự báo chuỗi thời gian, cụ thể là dự báo lưu lượng
Phần kết luận tổng kết những kết quả đã đạt được của luận văn và hướng phát
triển nghiên cứu tiếp theo Phần phụ lục giới thiệu về phần mềm dự báo và hướng dẫn
cách thức cơ bản sử dụng phần mềm
Trang 12CHƯƠNG 1 - MẠNG NƠ-RON NHÂN TẠO TRUYỀN
THẲNG NHIỀU LỚP
Mạng nơ-ron nhân tạo được coi là một công cụ mạnh để giải quyết các bài toán
có tính phi tuyến, phức tạp và đặc biệt trong các trường hợp mà mối quan hệ giữa các quá trình không dễ thiết lập một cách tường minh Có nhiều loại mạng nơ-ron khác nhau trong đó mạng nơ-ron truyền thẳng nhiều lớp là một trong những mạng nơ-ron thông dụng nhất Đã có nhiều nghiên cứu sử dụng mạng nơ-ron truyền thẳng nhiều lớp trong bài toán dự báo [5], [7], [10], [14] và đã chứng tỏ đây là hướng tiếp cận rất hiệu quả Trong chương này chúng ta sẽ tìm hiểu những kiến thức về mạng nơ-ron nhân tạo, mạng nơ-ron truyền thẳng nhiều lớp và khả năng ứng dụng của chúng trong bài toán dự báo
1.1 Giới thiệu về mạng nơ-ron nhân tạo
1.1.1 Khái niệm cơ bản
Theo các nhà nghiên cứu sinh học về bộ não, hệ thống thần kinh của con người bao gồm khoảng 100 tỷ tế bào thần kinh, thường gọi là các nơ-ron Mỗi tế bào nơ-ron gồm ba phần:
Thân nơ-ron với nhân bên trong (gọi là soma), là nơi tiếp nhận hay phát ra các xung động thần kinh
Một hệ thống dạng cây các dây thần kinh vào (gọi là dendrite) để đưa tín hiệu tới nhân nơ-ron Các dây thần kinh vào tạo thành một lưới dày đặc xung quanh thân nơ-ron, chiếm diện tích khoảng 0,25 mm2
Đầu dây thần kinh ra (gọi là sợi trục axon) phân nhánh dạng hình cây, có thể dài từ một cm đến hàng mét Chúng nối với các dây thần kinh vào hoặc trực tiếp với nhân tế bào của các nơ-ron khác thông qua các khớp nối (gọi là synapse) Thông thường mỗi nơ-ron có thể có từ vài chục cho tới hàng trăm ngàn khớp nối để nối với các nơ-ron khác Có hai loại khớp nối, khớp nối kích thích (excitatory) sẽ cho tín hiệu qua nó để tới nơ-ron còn khớp nối ức chế (inhibitory) có tác dụng làm cản tín hiệu tới nơ-ron Người ta ước tính mỗi nơ-ron trong bộ não của con người có khoảng 104
khớp nối (hình 1.1) Chức năng cơ bản của các tế bào nơ-ron là liên kết với nhau để tạo nên hệ thống thần kinh điều khiển hoạt động của cơ thể sống Các tế bào nơ-ron truyền tín hiệu cho nhau thông qua các dây thần kinh vào và ra, các tín hiệu đó có dạng xung điện
và được tạo ra từ các quá trình phản ứng hoá học phức tạp Tại nhân tế bào, khi điện
Trang 13thế của tín hiệu vào đạt tới một ngưỡng nào đó thì nó sẽ tạo ra một xung điện dẫn tới trục dây thần kinh ra Xung này truyền theo trục ra tới các nhánh rẽ và tiếp tục truyền tới các nơ-ron khác
Hình 1.1 Cấu tạo của tế bào nơ-ron sinh học
Với mục đích tạo ra một mô hình tính toán phỏng theo cách làm việc của nơ-ron trong bộ não con người, vào năm 1943, các tác giả McCulloch và Pitts [15] đã đề xuất một mô hình toán cho một nơ-ron như sau:
Hình 1.2 Mô hình nơ-ron nhân tạo
Trong mô hình này, một nơ-ron sẽ nhận các tín hiệu vào xi với các trọng số tương ứng là wi , tổng các thông tin vào có trọng số là
Trong đó g là hàm kích hoạt (còn gọi là hàm chuyển) có dạng là hàm bước nhảy,
nó đóng vai trò biến đổi từ thông tin đầu vào thành tín hiệu đầu ra
i
x 1 x 2
x m
w 1
w i2
w m
Nếu f > 0 Nếu f 0
( f
Trang 14Như vậy, out = 1 (ứng với việc nơ-ron tạo tín đầu ra) khi tổng các tín hiệu vào
lớn hơn ngưỡng i , còn out = 0 (nơ-ron không tạo tín hiệu ở đầu ra) khi tổng các tín
hiệu vào nhỏ hơn ngưỡng i
Trong mô hình nơ-ron của McCulloch và Pitts, các trọng số wij thể hiện ảnh hưởng của khớp nối trong liên kết giữa nơ-ron j (nơ-ron gửi tín hiệu) và nơ-ron i (nơ-ron nhận tín hiệu) Trọng số wij dương ứng với khớp nối kích thích, trọng số âm ứng với khớp nối ức chế còn wij bằng 0 khi không có liên kết giữa hai nơ-ron Hàm
chuyển g ngoài dạng hàm bước nhảy còn có thể chọn nhiều dạng khác nhau và sẽ
được đề cập ở các phần sau
Thông qua cách mô hình hoá đơn giản một nơ-ron sinh học như trên, McCulloch
và Pitts đã đưa ra một mô hình nơ-ron nhân tạo có tiềm năng tính toán quan trọng
Nó có thể thực hiện các phép toán lô-gíc cơ bản như AND, OR và NOT khi các trọng số và ngưỡng được chọn phù hợp Sự liên kết giữa các nơ-ron nhân tạo với các cách thức khác nhau sẽ tạo nên các loại mạng nơ-ron nhân tạo (Artificial Neural Network - ANN) với những tính chất và khả năng làm việc khác nhau
1.1.2 Mô hình mạng nơ-ron nhân tạo
Như đã được giới thiệu, mạng nơ-ron nhân tạo là một hệ thống xử lý thông tin được xây dựng trên cơ sở tổng quát hoá mô hình toán học của nơ-ron sinh học và phỏng theo cơ chế làm việc của bộ não con người Mạng nơ-ron nhân tạo được thể
hiện thông qua ba thành phần cơ bản: mô hình của nơ-ron, cấu trúc và sự liên kết giữa các nơ-ron, phương pháp học được áp dụng cho mạng nơ-ron
a Các phần tử xử lý
Việc xử lý thông tin tại mỗi nơ-ron có thể xem là gồm hai phần: xử lý tín hiệu vào (input) và đưa tín hiệu ra (output) Tương ứng với phần vào của mỗi nơ-ron là
một hàm tương tác (interaction) f, hàm này kết hợp các thông tin truyền tới nơ-ron và
tạo thành thông tin đầu vào tổng hợp (gọi là net input) của nơ-ron đó
Một nơ-ron thứ i trong mạng thường có hàm fi ở dạng tuyến tính như sau :
Thao tác thứ hai trong mỗi nơ-ron là tính giá trị đầu ra tương ứng với giá trị đầu
vào f thông qua hàm kích hoạt hay còn gọi là hàm chuyển g(f) (hàm kích hoạt) Một
số hàm chuyển thường được sử dụng:
Trang 15)
(
f khi
f khi f
01
)sgn(
)
(
f khi
f khi f
(
2 )
e f
b Liên kết trong mạng nơ-ron nhân tạo
Mạng nơ-ron nhân tạo gồm các nơ-ron và liên kết có trọng số giữa chúng ANN tạo nên một hệ thống xử lý thông tin làm việc trên cơ sở phỏng theo cách làm việc của hệ thống các nơ-ron trong bộ não con người Tuy nhiên, trong bộ não của con người, các tế bào nơ-ron liên kết với nhau chằng chịt và tạo nên một mạng lưới vô cùng phức tạp
Các loại mạng nơ-ron nhân tạo được xác định bởi cách liên kết giữa các nơ-ron, trọng số của các liên kết đó và hàm chuyển tại mỗi nơ-ron Các hình vẽ dưới đây thể hiện các cách kết nối khác nhau
Hình 1.3 Mạng nơ-ron nhân tạo chỉ có một nút và có sự phản hồi
Hình 1.4 Mạng nơ-ron truyền thẳng một lớp (Single-layer feedforward network)
x 1
x 2
x
m
y 1 y 2
y n
Trang 16Mạng nơ-ron truyền thẳng một lớp là loại mạng chỉ có lớp nơ-ron đầu vào và một lớp nơ-ron đầu ra (thực chất lớp nơ-ron đầu vào không có vai trò xử lý, do đó ta nói mạng chỉ có một lớp) Loại mạng này còn được gọi là mạng perceptron một lớp
Mỗi nơ-ron đầu ra có thể nhận tín hiệu từ các đầu vào x 1 , x 2 , …, x m để tạo ra tín hiệu đầu ra tương ứng
Hình 1.5 Mạng nơ-ron truyền thẳng nhiều lớp (Multil-layer feedforward network)
Trong mạng nơ-ron truyền thẳng nhiều lớp, lớp nhận tín hiệu vào của mạng gọi
là lớp vào (input layer), nó thường không thực hiện việc chuyển đổi thông tin mà chỉ làm chức năng nhận tín hiệu Tín hiệu ra của mạng được đưa ra từ lớp ra (output layer) Các lớp ở giữa lớp vào và lớp ra gọi là các lớp ẩn Trong mạng truyền thẳng (feedforward network) không có nút nào mà đầu ra của nó là đầu vào của một nút
khác trên cùng lớp với nó hoặc lớp trước
Mạng có phản hồi (feedback network) là mạng mà đầu ra của một nơ-ron có thể
trở thành đầu vào của nơ-ron trên cùng một lớp hoặc của lớp trước đó Mạng
feedback có chu trình khép khín gọi là mạng hồi quy (recurrent network)
Hình 1.6 Mạng nơ-ron hồi quy một lớp
x 1
x 2
x
m
y 1 y 2
y n
Trang 17
c Các luật học của mạng nơ-ron nhân tạo
Như đã được đề cập ở phần đầu luật học là một trong ba yếu tố quan trọng tạo nên một mạng nơ-ron nhân tạo Có hai vấn đề cần học đối với mỗi mạng nơ-ron nhân tạo đó là học tham số (parameter learning) và học cấu trúc (structure learning) Học tham số là việc thay đổi trọng số của các liên kết giữa các nơ-ron trong một mạng, còn học cấu trúc là việc điều chỉnh cấu trúc của mạng bao gồm thay đổi số lớp nơ-ron, số nơ-ron của mỗi lớp và cách liên kết giữa chúng Hai vấn đề này có thể được thực hiện đồng thời hoặc tách biệt
Về mặt phương pháp học, có thể chia ra làm ba loại: học có giám sát hay còn gọi
là học có thầy (supervised learning), học tăng cường (reinforcement learning) và học không có giám sát hay còn gọi là học không có thầy ( unsupperviced learning)
1.1.3 Khả năng ứng dụng của mạng nơ-ron nhân tạo
Đặc trưng của mạng nơ-ron nhân tạo là khả năng học và xử lý song song Nó có thể gần đúng mối quan hệ tương quan phức tạp giữa các yếu tố đầu vào và đầu ra của các quá trình cần nghiên cứu và khi đã học được thì việc kiểm tra độc lập thường cho kết quả tốt Sau khi đã học xong, mạng nơ-ron nhân tạo có thể tính toán kết quả đầu
ra tương ứng với bộ số liệu đầu vào mới
Về mặt cấu trúc, mạng nơ-ron nhân tạo là một hệ thống gồm nhiều phần tử xử lý đơn giản cùng hoạt động song song Tính năng này của ANN cho phép nó có thể được áp dụng để giải các bài toán lớn
Về khía cạnh toán học, theo định lý Kolmogorov, một hàm liên tục bất kỳ f(x 1 ,
x 2 , , x n ) xác định trên khoảng I n ( với I =[0,1]) có thể được biểu diễn dưới dạng:
đó, mạng nơ-ron nhân tạo có thể tính toán trên bộ số liệu đầu vào mới để đưa ra kết quả đầu ra tương ứng
Trang 18
Hồi qui tuyến tính Xấp xỉ bằng mạng nơron
Y = a1X + a2 Y=f(X, a1, … , an)
Hình 1.7 Sự khác nhau giữa hồi quy tuyến tính và mạng nơ-ron
Với những đặc điểm đó, mạng nơron nhân tạo đã được sử dụng để giải quyết nhiều bài toán thuộc nhiều lĩnh vực của các ngành khác nhau Các nhóm ứng dụng
mà mạng nơ-ron nhân tạo đã được áp dụng rất có hiệu quả là:
Bài toán phân lớp: Loại bài toán này đòi hỏi giải quyết vấn đề phân loại các
đối tượng quan sát được thành các nhóm dựa trên các đặc điểm của các nhóm đối tượng đó Đây là dạng bài toán cơ sở của rất nhiều bài toán trong thực tế: nhận dạng chữ viết, tiếng nói, phân loại gen, phân loại chất lượng sản phẩm,…
Bài toán dự báo: Mạng nơ-ron nhân tạo đã được ứng dụng thành công trong
việc xây dựng các mô hình dự báo sử dụng tập dữ liệu trong quá khứ để dự đoán số liệu trong tương lai Đây là nhóm bài toán khó và rất quan trọng trong nhiều ngành khoa học
Bài toán điều khiển và tối ưu hoá: Nhờ khả năng học và xấp xỉ hàm mà
mạng nơ-ron nhân tạo đã được sử dụng trong nhiều hệ thống điều khiển tự động cũng như góp phần giải quyết những bài toán tối ưu trong thực tế
Tóm lại, mạng nơ-ron nhân tạo được xem như là một cách tiếp cận đầy tiềm năng để giải quyết các bài toán có tính phi tuyến, phức tạp và đặc biệt là trong tình huống mối quan hệ bản chất vật lý của quá trình cần nghiên cứu không dễ thiết lập tường minh
1.2 Mạng nơ-ron lan truyền thẳng nhiều lớp
1.2.1 Mạng perceptron một lớp
Mạng perceptron một lớp do F.Rosenblatt đề xuất năm 1960 [15] là mạng truyền thẳng chỉ một lớp vào và một lớp ra không có lớp ẩn Trên mỗi lớp này có thể có
Trang 19một hoặc nhiều nơ-ron Mô hình mạng nơ-ron của Rosenblatt sử dụng hàm ngưỡng đóng vai trò là hàm chuyển Do đó, tổng của các tín hiệu vào lớn hơn giá trị ngưỡng thì giá trị đầu ra của nơ-ron sẽ là 1, còn trái lại sẽ là 0
Ngay từ khi mạng Perceptron một lớp được đề xuất nó đã được sử dụng để giải
quyết bài toán phân lớp Một đối tượng sẽ được nơ-ron i phân vào lớp A nếu
Tổng thông tin đầu vào : w x ij j i
Trong đó w ij là trọng số liên kết từ nơ-ron j tới nơ-ron i , x j là đầu vào từ nơ-ron
j, và là ngưỡng của nơ-ron i Trong trường hợp trái lại đối tượng sẽ được phân vào
= [x1(k), x2(k), …, xm
(k)
]T (với m là số đầu vào, n là
số đầu ra và p là cặp mẫu đầu vào - đầu ra dùng cho việc học) Như vậy chúng ta mong rằng sau quá trình học, đầu ra tính toán được y(k)
= [y1(k), y2(k), …, yn
(k)
]T sẽ bằng với đầu ra của mẫu học d(k)
Trang 20Để bắt đầu quá trình luyện mạng, các trọng số được gán giá trị ngẫu nhiên trong khoảng [-3, 3] Sau đó hiệu chỉnh các trọng số cho phù hợp với mẫu học để làm giảm sai số giữa y(k)
o Xác định sai số i tại nơ-ron i: i = d i – y i , trong đó d i là giá trị đầu ra
quan sát được và y i là giá trị đầu ra tính toán tại nơ-ron thứ i
o Tính wij là số gia của trọng số w ij (trọng số liên kết giữa đầu vào j tới nơ-ron i) theo công thức: wij = i x j trong đó là tốc độ học (0<<1)
Rosenblatt đã chứng minh rằng quá trình học của mạng Perceptron sẽ hội tụ tới
bộ trọng số W, biểu diễn đúng các mẫu học với điều kiện là các mẫu này biểu thị các điểm rời rạc của một hàm khả tách tuyến tính nào đó (f: Rn R được gọi là khả tách tuyến tính nếu các tập {F-1
(xk)}, với xk thuộc miền trị của f, có thể tách được với nhau bởi các siêu phẳng trong không gian Rn
)
Năm 1969, Minsky và Papert đã chứng minh một cách chặt chẽ rằng lớp hàm thể hiện sự phụ thuộc giữa đầu vào và đầu ra có thể học bởi mạng Perceptron một lớp là lớp hàm khả tách tuyến tính Khả tách tuyến tính là trường hợp tồn tại một mặt siêu phẳng để phân cách tất cả các đối tượng của một lớp này với một lớp khác, ví dụ một mặt phẳng sẽ phân chia không gian ba chiều thành hai vùng riêng biệt Mở rộng ra, nếu có n đầu vào , n>2 thì công thức
1
n
ij j i i
w x
chiều trong không gian n chiều, nó chia không gian đó thành hai nửa Trong nhiều bài toán thực tế đòi hỏi chia các vùng của các điểm trong một siêu không gian thành các lớp riêng biệt Loại bài toán này gọi là bài toán phân lớp Bài toán phân lớp có thể giải quyết bằng cách tìm các tham số thích hợp cho một siêu phẳng để nó có thể chia không gian n chiều thành các vùng riêng biệt
Với tính chất của như đã nêu trên, mạng perceptron một lớp có thể mô tả các hàm logic như AND, OR và NOT Tuy nhiên nó không thể hiện được hàm XOR Như vậy chứng tỏ mô hình perceptron một lớp không thể giải quyết bài toán này Vấn đề này sẽ được giải quyết bằng mô hình mạng nơ-ron perceptron nhiều lớp (Multilayer Perceptron - MLP)
Trang 211.2.2 Mạng perceptron nhiều lớp
Mạng perceptron nhiều lớp (Multilayer Perceptron –MLP) còn được gọi là mạng
truyền thẳng nhiều lớp là sự mở rộng của mô hình mạng perceptron với sự bổ sung
thêm những lớp ẩn và các nơ-ron trong các lớp ẩn này có hàm chuyển (hàm kích
hoạt) dạng phi tuyến Mạng MLP có một lớp ẩn là mạng nơ-ron nhân tạo được sử
dụng phổ biến nhất, nó có thể xấp xỉ các hàm liên tục được định nghĩa trên một miền
có giới hạn cũng như những hàm là tập hợp hữu hạn của các điểm rời rạc
a Giải quyết bài toán XOR với mạng MLP
Ta thấy có thể dùng hai đường thẳng để phân tách với trường hợp hàm XOR
-0,5+x1+x2=0 và -1,5+x1+x2=0
Hay ta giải hệ bất phương trình
Dễ thấy mỗi bất phương trình ở trên có thể được thực hiện bằng một nơ-ron và
đầu ra của hai nơ-ron này (2 bất phương trình) là đầu vào của một hàm AND Do
vậy có thể sử dụng mạng MLP sau để thực hiện chức năng của hàm XOR như sau:
Hình 1.9 Thực hiện hàm XOR bằng mạng MLP
b Thuật toán học theo phương pháp lan truyền ngược sai số
Thuật toán học theo phương pháp lan truyền ngược sai số do Rumelhart và các
cộng sự đề xuất [20] là một trong số những kết quả nghiên cứu quan trọng nhất đối
Trang 22với sự phát triển của mạng nơ-ron nhân tạo Thuật toán này được áp dụng cho mạng truyền thẳng nhiều lớp trong đó các nơ-ron có thể sử dụng các hàm chuyển là các hàm liên tục có các dạng khác nhau
Thuật toán sử dụng một tập các mẫu gồm các cặp đầu vào - đầu ra để luyện mạng Với mỗi cặp đầu vào - đầu ra (x(k)
,d(k)) thuật toán lan truyền ngược sai số thực hiện hai giai đoạn sau:
Giai đoạn thứ nhất, mẫu đầu vào x(k)
được truyền từ lớp vào tới lớp ra, và ta
có kết quả đầu ra tính toán được là y(k)
Giai đoạn tiếp theo, tín hiệu lỗi được tính toán từ sự khác nhau giữa đầu ra quan sát được d(k)
với đầu ra tính toán y(k) sẽ được lan truyền ngược lại từ lớp
ra đến các lớp trước để điều chỉnh các trọng số của mạng Để làm ví dụ ta xét mạng truyền thẳng có một lớp ẩn dưới đây, đối với các mạng có kích thước lớn hơn thì thao tác cũng tương tự
Mạng nơ-ron được xét có m nơ-ron ở lớp vào, l nơ-ron trong lớp ẩn và n nơ-ron
ở lớp ra Đường kẻ liền thể hiện luồng tín hiệu được truyền từ đầu vào tới đầu ra còn các đường kẻ nét đứt thể hiện luồng tín hiệu lỗi được truyền ngược trở lại từ đầu ra
Hình 1.10 Lan truyền tín hiệu trong quá trình học theo phương pháp lan truyền
ngược sai số
Chúng ta xét một cặp đầu vào - đầu ra để luyện mạng (x,d), để đơn giản chúng ta
bỏ ký hiệu mũ k thể hiện số thứ tự của cặp mẫu này trong bộ mẫu dùng để luyện mạng Khi đưa vào đầu vào x, nơ-ron thứ q trong lớp ẩn sẽ nhận tín hiệu vào của mạng là:
x 1
x j
x m
y 1
y i
y n
Lớp vào Lớp ẩn Lớp ra
v qj
w iq
z q (q=1,…, l)
z q
Trang 23
j j qj
q g net g v x z
1)(
)(
2 2
Như vậy với một tập gồm p mẫu học, chúng ta lần lượt xây dựng được p hàm
giá như vậy Việc học của mạng hay nhiệm vụ của giải thuật thực chất là tìm kiếm tập trọng số W trong không gian RM
(M là số trọng số có trong mạng) để lần lượt tối thiểu hoá các hàm giá như vậy Điều đáng chú ý là việc tối thiểu hoá được tiến hành liên tiếp nhau và theo chu kỳ đối với các hàm giá
Để tối thiểu hoá các hàm giá như vậy, giải thuật lan truyền ngược sai số sử dụng phương pháp giảm gradient để điều chỉnh các trọng số liên kết giữa các nơ-ron Bản chất của phương pháp này là khi sai số E được vẽ như hàm của tham số gây ra sai số
sẽ phải có một cực tiểu tại bộ giá trị nào đó của tham số Khi quan sát độ dốc của đường cong, chúng ta quyết định phải thay đổi tham số thế nào để có thể tiến gần đến cực tiểu cần tìm kiếm hơn Trong hình vẽ dưới đây, giá trị của trọng số phải giảm nếu đạo hàm dE/dW là dương
Trang 24Hình 1.11 Sai số E được xét là hàm của trọng số W
Bằng biểu thức, chúng ta có thể biểu diễn phương pháp giảm gradient như sau:
Trong đó oi là tín hiệu sai số và chỉ số oi có nghĩa là nút thứ i trong trên lớp ra
Tín hiệu sai số được tính như sau:
Trong đó net i là tín hiệu vào của nơ-ron thứ i trên lớp ra và g’(net i ) =
g(neti )/net Kết quả này tương tự luật học delta áp dụng cho mạng perceptron một
lớp với đầu vào bây giờ là đầu ra zq của lớp ẩn
Trang 25Để điều chỉnh trọng số của các liên kết giữa lớp vào tới lớp ẩn ta cũng sử dụng phương pháp giảm gradient và lấy đạo hàm theo các biến trung gian như đã áp ở
trên Xét liên kết giữa nơ-ron thứ j ở lớp vào và nơ-ron thứ q trên lớp ra:
Với net q là tín hiệu vào của nơ-ron thứ q, như vậy tín hiệu lỗi của nơ-ron trên lớp
ẩn khác với tín hiệu lỗi của nơ-ron trên lớp ra (xem công thức 1.17 và 1.21) Vì sự khác nhau này, thủ tục điều chỉnh trọng số được gọi là luật học delta mở rộng Nhìn lại công thức (1.21) tín hiệu lỗi hq của nơ-ron thứ q trong lớp ẩn được xác định từ
các tín hiệu lỗi oi, của các nơ-ron trên lớp ra
Tổng quát đối với lớp bất kỳ, luật lan truyền ngược có dạng:
j input i output j
i
w _ _
Trong đó “output_i ” là đầu ra của nơ-ron i và “ input_j ” là đầu vào của nơ-ron
j, i là tín hiệu học được định nghĩa trong công thức (4.10)
Từ các phân tích trên, thuật toán lan truyền ngược sai số được xây dựng như sau:
Xét một mạng nơ-ron truyền thẳng có Q lớp, q = 1, 2, …, Q, và gọi neti và yi là
tín hiệu vào và ra của nơ-ron thứ i trong lớp q Mạng này có m đầu vào và n đầu ra
Đặt q
w ij là trọng số của liên kết từ nơ-ron thứ j trong lớp q-1 tới nơ-ron thứ i trong lớp q
Trang 26Đầu vào : Một tập các cặp mẫu học {(x(k)
,d(k)) k= 1, 2, …, p } và véc tơ đầu vào được bổ sung thêm x(k)
m+1 = - 1
Bước 0 (khởi tạo)
Chọn một hằng số > 0 và Emax (dung sai cho phép) Khởi tạo ngẫu nhiên các trọng số trong khoảng giá trị nhỏ Đặt E =0 và k = 1
Bước 1 (thực hiện một quá trình lặp cho việc huấn luyện mạng)
q i q
y w g
net g
n i
i Q k i
net g y d
E y d E
'
,2
1
) (
2
1
) (
Bước 4 (Lan truyền ngược sai số)
Lan truyền ngược sai số để điều chỉnh các trọng số và tính toán tín hiệu lỗi q-1i
cho các lớp trước:
q i q ij q
y
w 1
ij q new ij q
w w
Trang 27Bước 6 (Kiểm tra lỗi tổng cộng hiện thời đã chấp nhận được chưa)
Mỗi lần toàn bộ tập mẫu học được lan truyền qua mạng được gọi là một epoch
Số epoch phụ thuộc vào từng trường hợp cụ thể và sự khởi tạo ban đầu Có trường hợp thuật toán phải sau hàng chục nghìn epoch mới hội tụ tới lời giải Nếu tham số khởi tạo không phù hợp có thể làm cho quá trình học không đạt kết quả mong muốn Đối với mỗi epoch ta tính sai số trung bình của mạng theo công thức sau:
số khởi tạo lớn thì các hàm này có thể bão hoà ngay từ đầu và dẫn tới hệ thống có thể bị tắc ngay tại một cực tiểu địa phương hoặc tại một vùng bằng phẳng nào đó gần điểm xuất phát Theo nghiên cứu của Wessels và Barnard, năm 1992 [18], thì việc
khởi tạo các trọng số liên kết w ij nên trong phạm vi 3 / , 3 /
Trang 28Hằng số học cũng là một yếu tố quan trọng ảnh hưởng đến hiệu quả và độ hội
tụ của giải thuật lan truyền ngược sai số Không có hằng số phù hợp cho tất cả các bài toán khác nhau Hằng số học này thường được chọn bằng thực nghiệm cho mỗi bài toán ứng dụng cụ thể bằng phương pháp thử sai
Trong nhiều ứng dụng thực tế cho thấy một hằng số học có thể phù hợp ở thời điểm bắt đầu của quá trình học nhưng lại không phù hợp với giai đoạn sau của quá trình học Do đó, có một phương pháp hiệu quả hơn đó là sử dụng hằng số học thích nghi Một cách xử lý đơn giản cho vấn đề này đó là kiểm tra xem các trọng số mới
có làm giảm hàm giá hay không, nếu không thì có thể các trọng số đã vượt quá xa vùng cực tiểu và như vậy hằng số cần phải giảm Trái lại, nếu sau vài vòng lặp hàm giá liên tục giảm thì ta có thể thử tăng hằng số để đẩy nhanh hơn tốc độ hội
tụ đến giá trị cực tiểu Năm 1991, trong nghiên cứu của mình Hertz và các cộng sự [9] đã đề xuất luật điều chỉnh hằng số học như sau:
trong đó E là thay đổi của hàm giá, a và b là các hằng số dương, việc E luôn nhỏ hơn 0 được đánh giá dựa trên k bước lặp liên tiếp
Hằng số quán tính
Tốc độ học của giải thuật lan truyền ngược sai số có thể rất chậm nếu hằng số học nhỏ, nhưng nếu hằng số học lớn thì nó lại có thể gây ra sự dao động lớn trong quá trình tìm giá trị cực tiểu theo phương pháp giảm gradient Để giải quyết vấn đề này người ta thường thêm thành phần quán tính vào các phương trình hiệu chỉnh trọng số như sau:
w(t) = -E(t) + w( t-1) ( là hằng số quán tính, 0, 1 )
Nhờ thành phần này, quá trình học có thể vượt qua điểm cực tiểu địa phương để tìm đến điểm cực tiểu toàn cục, đồng thời thành phần quán tính cũng ngăn cản sự thay đổi đột ngột của các trọng số theo hướng khác với hướng mà lời giải đang di chuyển đến
Trang 29bất kỳ có đạo hàm và đạt cực tiểu khi hai đối số di và yi bằng nhau Thông thường hàm giá được chọn có dạng :
nó bao gồm: vấn đề chuẩn hoá số liệu đầu vào, vấn đề học chưa đủ và học quá của mạng, vấn đề lựa chọn một cấu trúc mạng phù hợp với bài toán
a Vấn đề chuẩn hoá số liệu đầu vào
Mạng MLP thường sử dụng hàm chuyển là hàm sigmoid có dạng như sau:
1
0.5
Trang 30Với dạng hàm này, giá trị ở đầu ra của mỗi nơ-ron nằm trong phạm vi khoảng (0,1) và nó đạt các giá trị bão hoà ( xấp xỉ 0 hay 1 ) khi x lớn Do đó, khi đầu vào của mạng có giá trị tuyệt đối lớn thì ta cần chuẩn hoá nó về khoảng có giá trị nhỏ, nếu không thì các nơ-ron tại các lớp ẩn ngay ban đầu đã có thể đạt giá trị bão hoà và quá trình học của mạng không đạt kết quả mong muốn Với dạng hàm như trên thì giá trị đầu vào của mạng thường được chuẩn hoá về khoảng thuộc đoạn [-3, 3] Mặt khác, do tín hiệu đầu ra của nơ-ron nằm trong khoảng giá trị (0,1) nên các giá trị đầu
ra thực tế trong các mẫu học cũng cần chuẩn hoá về khoảng giá trị này để có thể dùng cho quá trình luyện mạng Do vậy trong quá trình tính toán, để có các giá trị thực tế ở đầu ra của mạng chúng ta cần phải chuyển các giá trị trong khoảng (0,1) về miền các giá trị thực tế
b Vấn đề học chưa đủ và học quá thuộc của mạng
Vấn đề mấu chốt khi xây dựng một mạng nơ-ron nhân tạo là làm thế nào mạng
có khả năng tổng quát hoá cao để đưa ra kết quả tốt cả với những trường hợp đầu vào của mạng không nằm trong tập mẫu đã dùng để luyện mạng Giống như các mô hình hồi quy phi tuyến khác, đối với mạng nơ-ron nhân tạo ta cũng phải giải quyết hai vấn đề là ANN học chưa đủ (underfitting) và học quá (overfitting) Khi mạng có cấu trúc (số nút ẩn và liên kết) cũng như số lần học chưa đủ so với nhu cầu của bài toán thì sẽ dẫn tới tình trạng mạng không đủ khả năng mô tả gần đúng mối quan hệ tương quan giữa đầu vào và đầu ra của quá trình cần dự báo và dẫn tới học chưa đủ Trái lại, nếu mạng quá phức tạp (quá nhiều nút ẩn và quá nhiều tham số) và được học “quá khít” đối với các mẫu dùng để luyện mạng thì có thể dẫn tới tình trạng mạng học cả thành phần nhiễu lẫn trong các mẫu đó, đây là tình trạng “học quá thuộc” của mạng Vấn đề nêu trên có thể làm cho nhiều loại mạng nơ-ron, đặc biệt là mạng MLP có thể có những trường hợp cho kết quả dự đoán rất sai lệch với thực tế
Một số giải pháp cho vấn đề học quá của mạng:
Sử dụng tập số liệu có tính đại diện tốt để luyện mạng: Đây được xem là một
cách khá tốt để tránh hiện tượng overfitting Khi tập mẫu dùng để luyện mạng thể hiện được nhiều trạng thái có thể xẩy ra của quá trình cần nghiên cứu thì sau khi học mạng sẽ có khả năng tổng quát hoá tương đối tốt từ tập dữ liệu đó và sẽ không chịu ảnh hưởng nhiều của hiện tượng overfitting Ngoài ra một số biện pháp dưới đây cũng có thể góp phần quan trọng giúp khắc phục hiện tượng overfitting của mạng
Lựa chọn cấu trúc mô hình phù hợp: Việc lựa chọn mô hình của mạng (số lớp
ẩn, số nơ-ron trên mỗi lớp ẩn) có ảnh hưởng quan trọng đến hiện tượng học chưa
đủ (underfitting) và học quá (overfitting) của mạng Nghiên cứu của Steve Lawrence và C.Lee Giles [11] về bài toán nội suy hàm y = sin(x/3) + v, 0 x 20
Trang 31với v là biến ngẫu nhiên nằm trong khoảng (- 0.25 , 0.25) cho thấy nếu mạng chỉ gồm một nút ẩn thì mạng không thể học được hàm này Mạng có hai nút ẩn có khả năng tổng quát hoá tốt nhất (tuy không chính xác hoàn toàn với các mẫu nhưng nó tạo nên giáng điệu gần với hàm cần xấp xỉ nhất và nó đã không quá khít với nhiễu của mẫu học) Các mạng có độ phức tạp hơn (10 nút ẩn, 50 nút ẩn) tuy nó có thể học khá chính xác các mẫu được sử dụng nhưng chính điều này lại làm cho nó học quá nhiều cả thành phần nhiễu nên khả năng tổng quát hoá giảm
và dẫn tới hiện tượng học quá (overfitting)
Hình 1.14 Nội suy hàm y = sin(x/3) + v, 0 x 20 sử dụng MLP
Dừng học đúng lúc: Năm 1991, trong một nghiên cứu về vấn đề học quá của
mạng, hai tác giả Nelson và Illingworth [17] đã đưa ra giải pháp dừng học đúng lúc để tránh hiện tượng học quá của mạng như sau:
còn lại để kiểm thử
o Sử dụng các giá trị khởi tạo nhỏ
o Sử dụng hằng số tốc độ học có giá trị thấp
o Tính toán sự thay đổi lỗi kiểm thử trong quá trình luyện mạng
o Dừng học khi thấy lỗi kiểm thử bắt đầu tăng
c Lựa chọn kích thước mạng
Các công trình dựa trên định lý của Kolmogorov dự kiến rằng toàn bộ các ánh xạ liên tục từ [0,1]p
đến [0,1]n đều có thể được xấp xỉ bằng một mạng perceptron ba lớp
có lớp vào gồm p nơ-ron, lớp ra gồm n nơ-ron và lớp ẩn gồm (2p+1) nơ-ron
Tuy nhiên không thể chỉ ra được chính xác số lượng nơ-ron tối ưu trong mạng, tính chất của các nơ-ron, tức là dạng phi tuyến cụ thể thực hiện phép xấp xỉ này
Trang 32Một số công trình nghiên cứu về chủ đề này cho rằng số nơ-ron tối ưu ở lớp ẩn thường nhỏ hơn (2p+1)
Ngoài ra cũng cần phải nói cơ sở dữ liệu học phải có kích thước phù hợp với kiến trúc mạng Theo Vapnik và Chervonenkis, cơ sở dữ liệu học phải có số mẫu thoả mãn:
dễ thiết lập một cách tường minh Do đó, khả năng ứng dụng của nó là rất lớn đặc biệt trong bài toán dự báo Trong chương tiếp theo, chúng ta sẽ nghiên cứu giải thuật
di truyền và ứng dụng giải thuật di truyền vào việc tối ưu hoá trọng số của mạng ron nhân tạo
Trang 33nơ-CHƯƠNG 2 - KẾT HỢP GIẢI THUẬT DI TRUYỀN VỚI
ƯU HOÁ TRỌNG SỐ MẠNG NƠ-RON NHÂN TẠO
Trong chương trước chúng ta đã nghiên cứu giải thuật “lan truyền ngược sai số”, đây là một phương pháp học của mạng nơ-ron nhân tạo, nó cho phép điều chỉnh trọng số của mạng để tối thiểu hoá hàm sai số E Giải thuật này hoạt động dựa trên
cơ chế giảm gradient, với những hàm đơn giản có một cực trị thì phương pháp giảm gradient đưa ta đến cực trị toàn cục Tuy nhiên, chúng ta biết rằng hàm sai số E trong mạng nơ-ron nhiều lớp là một hàm có bề mặt rất phức tạp với rất nhiều cực trị địa phương, do đó phương pháp này không thể đảm bảo cho ta tìm thấy được một cực trị toàn cục trên bề mặt hàm giá này Chính vì vậy, để cải thiện giải thuật, người ta thường tìm cách thay đổi hằng số học hoặc thêm vào đó thành phần quán tính để cho phép có thể vượt qua những cực trị địa phương trong quá trình tìm kiếm [8,9,10,16,18,20,21] Việc lựa chọn hằng số học và hằng số quán tính cũng là một vấn đề rất khó khăn, bởi vì nếu chúng quá lớn đôi khi dẫn đến tình trạng không ổn định của quá trình tìm kiếm, còn nếu chọn quá nhỏ thì lại dẫn đến tốc độ học chậm
và khả năng vượt qua các cực trị địa phương thấp Quá trình tìm kiếm trên những hàm giá như thế này đã được chứng minh là một bài toán NP đầy đủ nghĩa là ta không thể sử dụng được một giải pháp tổng quát có độ phức tạp đa thức để đạt đến kết quả
Giải thuật di truyền (Genetic Algorithms-GA) được biết đến như một giải thuật tìm kiếm dựa trên học thuyết về chọn lọc tự nhiên và nó cho phép ta đạt được tới cực trị toàn cục Luận văn nghiên cứu việc sử dụng giải thuật di truyền vào bài toán tối
ưu hoá trọng số của mạng nơ-ron nhân tạo giúp mạng có thể học được tốt hơn [8]
2.1 Giới thiệu giải thuật di truyền
Giải thuật di truyền đã được đề cập trong rất nhiều tài liệu, trong đó có các công trình của D.E Goldberg [8] và Thomas Back [4] Phần này chỉ trình bày các khái niệm căn bản của giải thuật di truyền cũng như khả năng ứng dụng của nó
2.1.1 Giới thiệu
Từ trước đến nay, trong các nghiên cứu và ứng dụng tin học đã xuất hiện nhiều bài toán chưa tìm ra được phương pháp giải nhanh và hợp lý Phần lớn đó là các bài toán tối ưu nảy sinh trong các ứng dụng Để giải các bài toán này người ta thường phải tìm đến một giải thuật hiệu quả mà kết quả thu được chỉ là xấp xỉ tối ưu Trong
Trang 34nhiều trường hợp chúng ta có thể sử dụng giải thuật xác suất, tuy không bảo đảm kết quả tối ưu nhưng có thể chọn các giá trị sao cho sai số đạt được sẽ nhỏ như mong muốn
Theo lời giải xác suất, việc giải bài toán quy về quá trình tìm kiếm trên không gian tập hợp các lời giải có thể Tìm được lời giải tốt nhất và quá trình được hiểu là tối ưu Với miền tìm kiếm nhỏ, một số thuật toán cổ điển được sử dụng Tuy nhiên đối với các miền lớn, phải sử dụng các kỹ thuật trí tuệ nhân tạo đặc biệt, giải thuật di truyền là một trong những công cụ đó Ý tưởng của GA là mô phỏng những gì mà tự nhiên đã thực hiện GA hình thành dựa trên quan niệm cho rằng: quá trình tiến hoá
tự nhiên là quá trình hoàn hảo nhất, hợp lý nhất và tự nó đã mang tính tối ưu
Giải thuật di truyền áp dụng quá trình tiến hóa tự nhiên để giải các bài toán tối ưu trong thực tế (từ tập các lời giải có thể ban đầu thông qua nhiều bước tiến hóa hình thành các tập hợp mới với lời giải tốt hơn và cuối cùng sẽ tìm được lời giải gần tối ưu) [4]
Những vấn đề căn bản được đặt ra là: Áp dụng di truyền tự nhiên vào giải thuật
di truyền như thế nào? Cách biểu diễn tập hợp các lời giải ra sao? Chúng ta sẽ tìm hiểu chi tiết vấn đề này trong phần tiếp theo
2.1.2 Tư tưởng chính của giải thuật di truyền
Giải thuật di truyền là một loại thuật toán mô phỏng các hiện tượng tự nhiên: kế thừa và đấu tranh sinh tồn để cải tiến lời giải và khảo sát không gian lời giải
Khái niệm kế thừa và đấu tranh sinh tồn được giải thích qua ví dụ về sự tiến hoá của một quần thể thỏ như sau:
Có một quần thể thỏ Trong số đó có một số con nhanh nhẹn và thông minh hơn những con khác Những chú thỏ nhanh nhẹn và thông minh có xác suất bị chồn, cáo
ăn thịt nhỏ hơn, do đó chúng tồn tại để làm những gì tốt nhất có thể: tạo thêm nhiều thỏ tốt Dĩ nhiên, một số thỏ chậm chạp, đần độn cũng sống chỉ vì may mắn Quần thể những chú thỏ còn sống sót sẽ bắt đầu sinh sản Việc sinh sản này sẽ tạo ra một hỗn hợp tốt về “nguyên liệu di truyền thỏ”: Một số thỏ chậm chạp có con với những con thỏ nhanh, một số thỏ nhanh với thỏ nhanh, một số thỏ thông minh với thỏ đần độn,… Và trên tất cả, thiên nhiên thỉnh thoảng lại ném vào một con thỏ “hoang dã” bằng cách làm đột biến nguyên liệu di truyền thỏ Những chú thỏ con, do kết quả này
sẽ nhanh hơn và thông minh hơn những con trong quần thể gốc vì có nhiều bố mẹ nhanh nhẹn và thông minh hơn đã thoát chết khỏi chồn, cáo (Thật hay là những con chồn cáo cũng trải qua những tiến trình tương tự, nếu không những con thỏ sẽ trở nên nhanh chóng và thông minh đến nỗi những con chồn, cáo không thể bắt chúng được)
Trang 35Khi tìm kiếm lời giải tối ưu, GA cũng thực hiện các bước tương ứng với câu chuyện đấu tranh sinh tồn của loài thỏ GA cũng sử dụng các thuật ngữ vay mượn của di truyền học Ta có thể nói về các cá thể (hay kiểu gen, cấu trúc) trong một quần thể, những cá thể này cũng còn được gọi là các nhiễm sắc thể (chromosome) Điều này có thể gây một chút nhầm lẫn: mỗi tế bào của một cơ thể của một chủng loại đã cho mang một số loại nhiễm sắc thể nào đó (ví dụ ở người có 46 nhiễm sắc thể), nhưng trong GA ta chỉ nói về những cá thể có một nhiễm sắc thể Các nhiễm sắc thể được tạo thành từ các đơn vị - các gen - biểu diễn trong một chuỗi tuyến tính Mỗi gen kiểm soát một hoặc nhiều đặc trưng Gen với những đặc trưng nhất định có vị trí nhất định trong nhiễm sắc thể Bất cứ đặc trưng nào của cá thể cũng có thể tự biểu hiện một cách phân biệt và gen có thể nhận một số giá trị khác nhau Một nhóm các gen (nhiễm sắc thể) sẽ biểu diễn một lời giải của bài toán đang giải (ý nghĩa, cấu trúc của nhiễm sắc thể được người sử dụng xác định trước) Một tiến trình tiến hoá được thực hiện trên một quần thể các nhiễm sắc thể tương ứng với một quá trình tìm kiếm lời giải trong không gian lời giải
Thực ra, GA thuộc lớp các thuật toán xác suất, nhưng lại rất khác những thuật toán ngẫu nhiên vì chúng kết hợp các phần tử tìm kiếm trực tiếp và ngẫu nhiên Khác biệt quan trọng giữa phương pháp tìm kiếm của GA và các phương pháp tìm kiếm khác là GA duy trì và xử lý một tập các lời giải (quần thể) - tất cả các phương pháp khác chỉ xử lý một điểm trong không gian tìm kiếm Chính vì thế, GA mạnh hơn các phương pháp tìm kiếm hiện có rất nhiều
Cấu trúc của giải thuật di truyền đơn giản tương tự như cấu trúc của bất kì một chương trình tiến hoá nào Ở bước lặp t, giải thuật di truyền duy trì một quần thể các lời giải (các nhiễm sắc thể), P t( )x x1t, 2t, ,x n t Mỗi lời giải t
i
x được lượng giá để
biết được độ “thích nghi” của nó Sau đó ở lần lặp thứ t+1, một quần thể mới được
hình thành bằng cách chọn giữ lại những cá thể thích nghi nhất Một số cá thể của quần thể này trải qua những biến đổi nhờ lai tạo (phép lai) và đột biến (phép đột biến), hình thành nên những lời giải mới Phép lai kết hợp các tính chất của hai nhiễm sắc thể „cha‟ và „mẹ‟ để tạo ra các nhiễm sắc thể „con‟ bằng cách hoán vị các đoạn gen tương ứng của cha và mẹ Ví dụ: nếu cha mẹ được biểu diễn bằng vectơ 5
chiều (a 1 ,b 1 ,c 1 ,d 1 ,e 1 ) và (a 2 ,b 2 ,c 2 ,d 2 ,e 2), thì lai tạo, hoán vị tại vị trí thứ 2 sẽ sinh ra
các nhiễm sắc thể con (a 1 ,b 1 ,c 2 ,d 2 ,e 2 ) và (a 2 ,b 2 ,c 1 ,d 1 ,e 1) Phép lai cho phép trao đổi thông tin giữa các lời giải
Khác với phép lai, phép đột biến thay đổi một cách ngẫu nhiên một hay nhiều gen của nhiễm sắc thể được chọn, thay đổi này được thực hiện với một xác suất thể hiện tốc độ đột biến Phép đột biến cho phép đưa thêm các thông tin mới vào quần thể làm cho chất liệu di truyền phong phú thêm
Trang 36Sau đây chúng ta sẽ tìm hiểu về một giải thuật di truyền đơn giản
2.1.3 Giải thuật di truyền đơn giản
a Cấu trúc của giải thuật di truyền đơn giản
Trong giải thuật di truyền đơn giản, hệ gen của cá thể được biểu diễn thành một chuỗi nhị phân gồm 2 giá trị 0 và 1 Mỗi thành phần trong chuỗi số gọi là allele (gen tương ứng) Giải thuật di truyền đơn giản bao gồm 3 toán tử sau:
- Tái tạo (Reproduction)
- Lai ghép (Crossover)
- Đột biến (Mutation)
Xét ví dụ bài toán hộp đen như sau: Cho một hộp đen với một dãy 5 công tắc ở đầu vào Một tổ hợp các trạng thái của 5 công tắc ứng với một tín hiệu ra (output) của hàm f, biểu diễn theo toán học là f(s), trong đó s là một tổ hợp các trạng thái cụ thể của 5 công tắc Mục tiêu của bài toán là phải đặt các công tắc như thế nào để đặt được giá trị tối đa có thể có của hàm f Với những phương pháp khác của bài toán tối
ưu, chúng ta có thể làm việc trực tiếp với bộ các thông số (việc đặt các công tắc) và bật tắt các công tắc từ một trạng thái này sang trạng thái khác bằng cách dùng những quy tắc chuyển đổi theo phương pháp chuyên biệt Với giải thuật di truyền đơn giản, đầu tiên ta mã hoá dãy các công tắc thành một chuỗi có chiều dài xác định Cách mã hoá rất tự nhiên: dùng chuỗi dài 5 kí tự gồm các giá trị 0 và 1, với quy ước „0‟ = tắt,
„1‟ = mở Ví dụ: chuỗi 11101 nghĩa là công tắc thứ 4 tắt, 4 công tắc còn lại mở Với giải thuật di truyền đơn giản, ta không cần biết nguyên tắc làm việc của hộp đen Giải thuật di truyền đơn giản bắt đầu với một quần thể các chuỗi và sau đó sẽ phát sinh thành công những quần thể chuỗi khác Với bài toán hộp đen, một sự bắt đầu ngẫu nhiên bằng cách tung đồng tiền (ngửa = „1‟, sấp= „0‟) có thể sản sinh quần thể ban đầu có kích thước n=4 như sau:
01101
11000
01000
10011
Tiếp theo, dưới sự tác động của các toán tử di truyền, quần thể trên sẽ tiến hoá
để cho ra đời quần thể mới có độ thích nghi cao hơn
Tái tạo:
Tái tạo là một quá trình trong đó các chuỗi biểu diễn cá thể được sao chép lại tuỳ theo giá trị của hàm mục tiêu f (hàm thích nghi) Toán tử này được xem là quá trình
Trang 37chọn lọc trong tự nhiên Hàm mục tiêu f(i) được gán cho mỗi cá thể trong quần thể Việc sao chép lại các chuỗi tuỳ theo giá trị thích nghi của chúng có nghĩa là: Những chuỗi có giá trị thích nghi cao hơn sẽ có nhiều cơ hội đóng góp các chuỗi con cho thế hệ tiếp theo
Thao tác sinh sản hay còn gọi là thao tác chọn cha mẹ được điều khiển bằng cách quay bánh xe roulette, trong đó mỗi chuỗi trong quần thể chiếm một khe có kích thước tỉ lệ với độ thích nghi (fitness) của nó trên bánh xe
Giả sử các chuỗi của quần thể ban đầu đã khởi tạo trong bài toán hộp đen có các giá trị hàm thích nghi như trong bảng sau Lấy tổng độ thích nghi của 4 chuỗi, chúng
ta được 1170 Ta sẽ tính tỉ lệ % độ thích nghi của từng chuỗi trong quần thể:
Bảng 2.1 Các chuỗi của bài toán mẫu và các giá trị thích nghi
Hình 2.1 Sự sinh sản đơn giản phân bố các chuỗi con cháu nhờ sử dụng bánh xe
roulette với các khe hở tỷ lệ với độ thích nghi
Với bài toán hộp đen, để sinh sản chúng ta chỉ cần quay bánh xe roulette 4 lần đối với bài toán này, chuỗi 1 có giá trị thích nghi là 169, đại diện cho 14.4% bánh xe roulette, và cứ mỗi lần quay xác suất chọn chuỗi 1 là 0.144 Tương tự với các chuỗi còn lại Mỗi khi chúng ta yêu cầu một thế hệ khác, một vòng quay đơn giản của bánh
xe đánh trọng số sẽ chọn ra được ứng cử viên để sinh sản Bằng cách này, những chuỗi thích nghi hơn sẽ có một số lượng con cháu lớn hơn trong thế hệ kế tiếp
Trang 38Lai ghép:
Mỗi khi một chuỗi được chọn để sinh sản, một bản sao chính xác của chuỗi đó
sẽ được tạo ra Các bản sao này được đưa vào bể ghép đôi (matingpool) Toán tử lai ghép đơn giản có thể được tiến hành theo hai bước:
Bước 1: Các thành viên của các chuỗi đơn giản mới ở trong bể ghép được ghép đôi với nhau một cách ngẫu nhiên
Bước 2: Mỗi cặp chuỗi sẽ trải qua việc ghép chéo như sau: Một số nguyên chỉ vị trí k dọc theo chuỗi sẽ được lựa chọn qua giá trị ngẫu nhiên nằm trong khoảng từ 1 đến chiều dài chuỗi L-1 ([1, L-1]) Hai chuỗi mới sẽ được tạo ra bằng cách hoán đổi tương ứng các chuỗi ký tự từ vị trí 1 đến k và từ k+1 đến L của hai chuỗi cha-mẹ cho nhau Ví dụ: xét 2 chuỗi A1 và A2 từ quần thể ban đầu:
A1 = 0110|1
A2 = 1100|0
Giả sử trong khi chọn một số ngẫu nhiên nằm trong khoảng từ 1 đến 4, chúng ta được k = 4 (như được chỉ ra bằng dấu ngăn cách “|”) Kết quả của việc ghép chéo làm sinh ra hai chuỗi mới A‟1 và A‟2, trong đó dấu ‟ có nghĩa là các chuỗi này là phần tử của thế hệ mới
A‟1 = 01100
A‟2 = 11001
Cơ chế sinh sản và ghép chéo đơn giản, bao gồm việc sinh số ngẫu nhiên, sao chép chuỗi và trao đổi các chuỗi thành phần Tuy nhiên, điểm cần nhấn mạnh là việc sinh sản và trao đổi thông tin có cấu trúc (dù là một cách ngẫu nhiên) của cả quá trình ghép chéo làm cho các giải thuật di truyền tăng thêm sức mạnh
Đột biến:
Nếu sự sinh sản theo độ thích nghi kết hợp với sự ghép chéo cho giải thuật di truyền có năng lực xử lý tốt hơn, thì sự đột biến đóng một vai trò quyết định thứ hai trong hoạt động của giải thuật di truyền Sự đột biến là cần thiết bởi vì: cho dù sự sinh sản và ghép chéo đã tìm kiếm hiệu quả và tái kết hợp lại các gen với nhau, nhưng thỉnh thoảng chúng có thể làm mất một vài gen hữu ích nào đó (bít 1 hay bít 0 tại những vị trí đặc biệt nào đó) Trong các hệ thống gen nhân tạo, toán tử đột biến sẽ chống lại sự mất mát không được khôi phục đó Trong giải thuật di truyền đơn giản, đột biến là sự thay đổi ngẫu nhiên và không thường xuyên (với xác xuất nhỏ) trị số
vị trí của một chuỗi Trong việc mã hóa nhị phân của bài toán hộp đen có nghĩa là chỉ cần đổi 1 thành 0 và ngược lại Sự đột biến là một hoạt động ngẫu nhiên trong
Trang 39không gian chuỗi, khi được dùng cùng với sự sinh sản và ghép chéo nó sẽ là một chính sách bảo hiểm chống lại nguy cơ mất mát những gen quan trọng
Ba toán tử tái tạo, lai ghép, đột biến được áp dụng lặp đi lặp lại để tạo ra nhiễm sắc thể mới Coi như một thế hệ mới tương ứng với một quá trình sinh sản đã được tạo xong bao gồm một quần thể các chuỗi nhiễm sắc thể, trong giải thuật di truyền có thể sinh ra nhiều thế hệ
b Sơ đồ giải thuật di truyền đơn giản
Giải thuật di truyền bao gồm các bước sau:
1 Khởi tạo quần thể ban đầu của các chuỗi nhiễm sắc thể
2 Xác định giá trị hàm mục tiêu cho mỗi một chuỗi nhiễm sắc thể
3 Tạo các chuỗi nhiễm sắc thể mới bằng sinh sản từ các chuỗi nhiễm sắc thể hiện tại, có tính đến ghép chéo và đột biến xảy ra (nếu có)
4 Xác định hàm mục tiêu cho các chuỗi nhiễm sắc thể mới và đưa nó vào trong một quần thể mới
5 Nếu điều kiện dừng đã thỏa mãn thì dừng lại và trả về chuỗi nhiễm sắc thể tốt nhất cùng với giá trị hàm mục tiêu của nó, nếu không thì quay về bước 3
Lưu đồ thuật toán:
Hình 2.2 Lưu đồ thuật toán của giải thuật di truyền đơn giản
Tạo quần thể ban đầu của các chuỗi nhiễm sắc thể
Xác định giá trị hàm mục tiêu của các chuỗi nhiễm sắc thể
Tạo các chuỗi nhiễm sắc thể bằng cách sinh sản từ các chuỗi nhiễm sắc thể hiện tại (Có
xét đến ghép chéo và đột biến xảy ra)
Tính toán các giá trị mục tiêu của các chuỗi nhiễm sắc thể mới và đưa nó vào một quần thể mới
Kiểm tra xem điều kiện dừng đã thoả mãn chưa?
Kết thúc
Y
N
Trang 402.2 Ứng dụng giải thuật di truyền vào bài toán tối ưu hoá trọng số của mạng nơ-ron nhân tạo
Như chúng ta đã biết sử dụng giải thuật lan truyền ngược sai số để tối ưu hoá trọng số của mạng nơ-ron nhân tạo đang được sử dụng rộng rãi hiện nay Tuy nhiên, giải thuật này hoạt động theo cơ chế giảm gradient nên nó khó có thể tìm ra được cực trị toàn cục Trong nghiên cứu của mình tôi sử dụng giải thuật di truyền để tối
ưu hoá trọng số của mạng giúp quá trình học của mạng được tốt hơn
Để có thể sử dụng được giải thuật di truyền vào việc học của mạng nơ-ron cần phải thực hiện một số bước như sau: