Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 89 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
89
Dung lượng
26,37 MB
Nội dung
Đ Ạ I HỌC Q U Ố C G IA H À N Ộ I KHOA CÔNG NGHỆ N G U Y Ẽ N LONG G IANG T ÍC H H Ợ• P G I Ả I T H Ư Ậ• T DI T R U Y È N V Ớ I G I Ả I T H U Ậ• T H U Ấ N L U Y Ệ N M Ạ N G N O R O N T R U Y Ề N T H Ả N G N H ỈÈ U LỚ P V À Ừ NG D Ụ N G T R O N G DỤ B Á O DỮ L IỆ• U • • C H U Y Ê N N G À N H : C Ô N G N G H Ệ T H Ô N G T IN M Ả SỐ : 1.01.10 LUẬN VẢN THẠC s ĩ NGƯ Ờ I HƯỚNG D ẢN K H O A HỌC PGS.TS V Ũ Đ Ứ C THI H À N Ộ I - 2003 í ITRlifil I i I M ỤC LỤC M ục l ụ c I M ục lục từ viết t t III Mở đ ầ u I Những đóng góp luậnv ã n Câu trúc luận văn .2 C hương : C ác khái niệm CƯ bán m ạng nơ r n .4 1.1 Nơ ron sinh học mạng nơ ron sinh h ọ c 1.2 Nơ ron nhân t o 1.3 Mạng nơ ron nhân tạ o 1.4 Thủ tục học mạng nơ r o n 1.5 Phạm vi ứng dụng mạng nơ r o n 10 C hương : Giải thuật di tr u y ề n 12 2.1 Tổng quan giải thuật di truyền 12 2.2 Giải thuật di truyền đơn g iả n 14 2.3 Nền tảng toán học giải thuật di truyền 20 2.4 Những cải tiến giải thuật di truyền 21 Chưưng : Tích hựp giai thuật di truvền với giái thuật huân luyện mạng nư ron truvền thảng nhiều lứp 26 3.1 Mạng nơ ron truyền thẳng thuật toán lan truyền ngược sai số 26 3.1.1 Kiến trúc b ả n 26 3.1.2 Cơ chế học mạng nơ ron truyền thảng nhiều lớp 28 3.1.3 Giải thuật lan truyền ngược sai s ố 29 i Một số cải tiến giải thuật BP 40 II 3.2 Sử dụng giải thuật di truyền kết hợp với giải thuật lan truyền ngược sai số việc huấn luyện mạng nơ ron truyền thẳng nhiều lớp 42 3.2.1 Đặt vấn đề 42 3.2.2 Giải thuật di truyền việc huấn luyện mạng nơ ron truyền thẳng nhiều lớ p 43 3.2.3 Ghép nối với giải thuật lan truyền ngược sai s ố .45 C h n g : Cài đật ch n g t r ì n h 47 4.1 Cấu trúc liệu khai báo cần thiết 47 4.2 Thiết kế giải thuật 48 C hư n g : ứ n g d ụ n g m n g nư ron tru vền th ả n g n h iều lớp tro n g d ự báo d ữ liệ u 60 5.1 Sư lược ứng dụng mạng nơ ron dựbáo liệ u 60 5.2 Các bước việc thiết kế mơ hình mạng nơ ron dự b o 61 5.3 Úng dụng mạng I1Ơ ron truyền thẳng nhiều lớp dự báo đinh lũ sông Trà Khúc trạm Sơn G ia n g 65 5.4 Chương trình dự báo liệ u 68 Kết l u ậ n 74 Tài liệu th am k h ả o 76 Phụ l ụ c i Ill M Ụ C L Ụ C T Ừ V IẾ T T Ắ T T v iết tắt N g h ĩ a t iế n g V iệt T iế n g A n h tư n g ứ n g GA Giải thuật di truyền Genetic algorithm SG A Giải thuật di truyền đơn giản Simple genetic algorithm BP Giải thuật lan truvềnngược Back-Propagation o f Error sai sô M Ở ĐẦU Dự báo liệu toán quan trọng mang lại nhiều lợi ích thiết thực phục vụ người, giúp người nắm bắt quy luật vận động tự nhiên đời sông kinh tế xã hội Trong năm gần đây, mạng nơ ron truyền thẳng nhiều lớp thực tiễn chứns minh mạnh hiệu toán dự báo phân tích số liệu, đặc biệt toán dự báo sử dụng lượng, dự báo kinh tế dự báo tự nhiên Các mạng nơ ron truyền thằng phải huấn luyện trước sử cỉụng đê thực thi toán dự báo thực tế Với cấu trúc mạng chọn, trình huấn luyện mạng trình hiệu chinh trọng số mạng thường phát biểu dạng toán tối thiểu hoá hàm sai số huấn luyện Thú tục huấn luyện cần giải thuật tìm kiếm có khả tìm lời giải tồn cục, khơng phụ thuộc vào q trình khởi động số ban đầu Ngoài ra, giải thuật phải có khả tìm kiếm hiệu khơng gian nhiều chiều số lượng trọng sô mạng nơ ron lớn Giải thuật GA giải thuật tìm kiếm dựa trình chọn lọc tự nhiên, di truyền tiến hóa Các nguyên lý giải thuật tác giả J.H.Holland đề xuất lần đầu vào năm 1962, tảng toán học giải thuật GA tác giả công hố sách “Sự thích nghi hệ thống tự nhiên nhân tạo” xuất năm 1975 Giải thuật GA xem phương pháp tìm kiếm có bước chuyển ngẫu nhiên mang tính tổng quát để giải toán tối ưu hoá Với đặc thù riêng mình, giải thuật GA sử dụng hiệu thú tục huấn luyện mạng nơ ron Tuy nhiên, giải thuật GA gặp khó khăn hội tụ Giải thuật GA đơn giản Holland đề xuất chứng minh không bảo đảm hội tụ khơng hội tụ tới lời giải tồn cục Ngoài ra, giải pháp cải tiến chiến lược thay toán tử đột biến giúp cho giải thuật GA hội tụ, hội tụ dễ dẫn đến tượng hội tụ sớm, nghĩa giải thuật kết thúc cực trị địa phương mà khơng có khả tìm thấy cực trị tồn cục Giải thuật huấn luyện kinh điển lan truyền ngược sai số (giải thuật BP) sử dụng rộng rãi việc huân luyện mạng nơ ron truyền thảng Giải thuật đám bảo hội tụ dễ hội tụ cực trị địa phương mà khơng có khả tìm kiếm cực trị tồn cục Mặt khác, kết huấn luyện giải thuật phụ thuộc vào nhiều yếu tố, đặc biệt trình khởi động trọng số ban đầu Do nhu cầu cấp thiết phải xây dựng giải thuật vừa có tìm kiếm lời giải tồn cục, vừa phải đảm báo hội tụ để huấn luyện cho mạng nơ ron truyền thẳng thực thi toán dự báo thực tế, luận văn tập trung nghiên cứu giải pháp tích hợp giải thuật GA với giải thuật BP việc huấn luyện mạng nơ ron truyền thẳng Trên sở đó, luận văn trình bày bước để xây dụng mơ hình mạng nơ ron dự báo liệu ứng dựng mơ hình tốn dự báo đỉnh lũ sơng Trà Khúc trạm khí tượng Sơn Giang Những đóng góp cua luận văn • Luận văn trình bày vấn để lý thuyết mạng nơ ron, mạng nơ ron truyền thẳng nhiểu lớp thuật toán BP dạng tổng quát để huấn luyện mạng, số vấn đề sử dụng giải thuật BP đế huấn luyện mạng thực thi tốn thực tế • Luận văn trình bày vấn đề lý thuyết giải thuật SGA cải tiến giải thuật SGA • Luận văn xây dựng giải pháp tích hợp giải thuật GA với giải thuật BP thành giải thuật lai GA - BP dể huấn luyện mạng nơ ron truyền thẳng nhiêu lớp • Luận văn trình bày ứng dụng giải thuật lai GA - BP mơ hình mạng nơ ron dự báo Giải thuật lai GA - BP cài đặt thử nghiệm để huân luyện mạng nơ ron truyền thẳng toán dự báo khí tượng thuỷ văn Cấu trúc luận vãn Phấn mớ đầu luận văn giới thiệu nội dung nghiên cứu, tính cấp thiết đề tài đóng góp luận văn Chương giới thiệu khái niệm phạm vi ứng dụng cùa mạng nơ ron Chương giới thiệu giải thuật SGA cải tiến giải thuật SGA Chương giới thiệu mạng nơ ron truyền thẳng nhiều lớp, giải thuật BP vấn đề sử dụng giải thuật BP xây dựng giải pháp tích hợp giải thuật GA với giải thuật BP việc huấn luyện mạng nơ ron truyền thảng nhiều lớp Chương trình bày mơ hình thuật tốn cài đặt giải thuật lai GA - BP Chương trình bày bước xây dựng mơ hình mạng nơ ron dự báo thứ nghiệm giải thuật GA - BP việc huấn luyện mạng nơ ron đê thực thi tốn dự báo đinh lũ sơng Trà Khúc trạm Sơn Giang Phđn kết luận nêu kết luận từ luận văn hướng nghiên cứu Phần phụ lục đưa số chức chương trình viết Visual Basic Chương CÁC KHÁI NIỆM C BẨN VỂ M Ạ N G N RON Chương đề cập đến vân đề sau: 1.1 Nơ ron sinh học mạng nơ ron sinh học 1.2 Nơ ron nhân tạo 1.3 Mạng nơ ron nhân tạo 1.4 Thủ tục học mạng nơ ron 1.5 Phạm vi ứng dụng mạng nơ ron 1.1 Nơ ron sinh học mạng nơ ron sinh học Hệ thần kinh người có khoảng 10'° tế bào thần kinh gọi nơ ron [24] Mỗi nơ ron gồm có ba phần: thân nơ ron với nhân bên trong, đầu thần kinh hệ thống hình đầu thần kinh vào Độ lớn tín hiệu vào bị thay đổi truyền qua khớp thần kinh có nhánh thần kinh vào Tỷ lệ biến đổi tín hiệu khớp thần kinh gọi độ khuyếch đụi khớp gọi trọng s ố nơ ron nhân tạo Theo nghiên cứu sinh học, chức hệ thần kinh không phụ thuộc nhiều vào vai trò nơ ron đơn lé mà phụ thuộc vào cách mà toàn nơ ron nối với nhau, gọi mạng nơ von sinli học [24], 1.2 Nư ron nhân tạo Nơ ron nhân tạo mị hình tốn học mơ nơ ron sinh học Mỗi nơ ron nhân tạo gọi đơn vị xử lý với chức nâng: nhận tín hiệu vào từ đơn vị phía trước (hay nguồn bên ngồi), tính tín hiệu từ tín hiệu vào lan truyền tín hiệu sang đơn vị khác a Jl ^ g(at) H’ a,= Ỹ , w>‘x‘+ e' Zj = g(aj) Hình 1: Đơn vị xử lý thứ j Mồi tín hiệu đầu vào nơ ron thứ j ký hiệu Xị với trọng số tương ứng Wjị Đại lượng đo tín hiệu tổng cộng vào nơ ron thứ j, ký hiệu ơj, xác định cách đơn giản sau : • dị hàm tín hiệu X, trọng số Wjị, gọi Hàm kết hợp • Hàm kết hợp tổng tích tín hiệu Xị trọng số tương ứng Wj: n a>= ^ W jiXi 6j + Trong tham số gọi ngưỡng nơ ron Nếu Wjị>0, nơ ron coi trạng thái kích thích Nếu Wjị < 0, nơ ron trạng thái kiềm chế Quá trình biến đổi giá trị dj thành tín hiệu đầu Zj thực bới hàm kích hoạt (hàm chuyên) phi tuyến Zj= g(dj) Hàm kích hoạt phải thoả mãn điều kiện sau: • Tín hiệu đầu Zj không âm với giá trị dj • g hàm liên tục bị chặn khoảng [0,1 ] Những hàm thỏa mãn điều kiện gọi hàm nén theo nghĩa chúng nén tín hiệu đầu vào khoảns nhỏ Có nhiều hàm thoả mãn điều kiện trên, song thực tế chi có số hàm thường sử dụng mạng nơ ron sau 1) Hàm tuyến tính (Linear): g(.x) = X 2) Hàm ranh giới cứng (Hard-Limiter) : Hàm có hai giá trị 1, ngồi hàm cịn có giá trị ngưỡng Tín hiệu đầu phụ thuộc tổng tín hiệu đầu vào giá trị ngưỡng ifị x >6 ) if(jc < e ) Vi hàm thuận tiện đưa câu trả lời có hay khơng nên thường xun sử dụng cho tín hiệu cuối mạng 3) Hàm ngưỡng logic: if(.T > ) if(jt < 0) 4) Hàm sigmoid (Sigmoid function (logsig)) gW = \ + e~x Hàm đặc biệt thuận lợi sử dụng cho mạng huấn luyện giái thuật BP dễ lấy đạo hàm, giảm đáng kể tính tốn q trình huấn luyện Mặt khác, hàm ứng dụng cho toán mà đầu mong muốn rơi vào khoang [0,1] 1.3 Mạng nư ron nhân tạo Khái niệm Mạng nơ ron nhân tạo hệ thống bao gồm nhiều nơ ron nhân tạo kết hợp với Hệ thống có khả học số liệu tổng quát hóa từ số liệu Cáu trúc Mạng nơ ron nhân tạo biểu diễn bàng đồ thị gồm tập nút cung có hướng, nút tương ứng với nơ ron, cung biểu diễn liên kết nơ ron Cấu trúc mans nơ ron gồm cấu tổ chức sơ đồ kết nối Cơ cấu tổ chức thường xác định số lớp mạng số nơ ron lớp: • Lớp vào : Các nơ ron lớp vào gọi nơ ron vào, chúng khơng xử lý thơng tin mà chí mã hóa mẫu đưa vào mạng để xử lý Thông thường, số thuộc tính mẫu đưa vào mạng số nơ ron vào, số đầu vào mạng • Lớp ẩn : Các nơ ron lớp gọi nơ ron ẩn chúng khơng thể 71 Tại m ỗi hệ tiến hóa, hình thơng báo số cá thể tốt có sức khỏe lớn sức khỏe trung bình tồn quần thể số cá thê trung bình có sức khỏe nhỏ sức khỏe trung bình Nhận thấy gai đoạn cuối số hệ tiến hóa, số cá thê tốt chiếm đại đa số, giá trị sức khỏe chứng gần với giá trị sức khoẻ trung bình Sau 100 hệ tiến hóa, cá thể có sức khỏe tốt số 100 cá thể quần thê cuối lưu trữ lại làm đầu vào cho giải thuật BP Huấn luyện giải thuật BP cá thê giải thuật BP sử dụng số học biến đổi lưyện đến bão hòa với tham số ban đầu khởi tạo Các đồ thị mô tả chu kỳ luyện cá thể Trên đồ thị, đường màu xanh nhạt đầu mong muốn tập liệu, đường màu xanh đậm trả lời cùa mạng liệu đầu vào Đôi với cá thể, điểm xuất phát luyện giải thuật BP, hai đường gần nhau, giải thuật di truyền tìm kiếm cá thê gần lời giải Lỗi MSE: 0079 Hệ số xác: 0.0005- Trạng thái hàmlỗi: Down Hệ số học: 1- Tổng số chu kỳ: 250 S ố chu kỳ 275 Cá thể thứ ■ [ Thoát Ị Ngừng Tiếptục Ghitệptrọngsố I Tập liệu huấn luyện đồng thời dùng làm tập kiểm tra để kiểm tra khả tổng quát hóa mạng V iệc kiểm tra thực với việc cập nhật đồ thị đặn sau 50 chu kỳ huấn luyện Sau số lớn chu kỳ huấn luyện, khả tổng quát hóa mạng tốt so với ban đầu Trên hình vẽ, hai đường gần 72 trùng Đ ồng thời, lỗi MSE tiếp tục giảm nhỏ hệ số xác, tập trọng số ghi lại thuật toán lại tiếp tục với cá thể Lỗi MSE: 0.00112 Hệ số xấc: 0.0005- Trạng thái hàmlỗi: Down Hệ số học: 0.1 - Tổng số chu kỳ: 11200 1.0 r 0.8 - í * * 11 2 - 0.8 ' - 0.6 Cá thể thứ / 0.6 - S ố chu kỳ 0.4 - - 0.2 - \ : \ Ar 'V vV 'ư V • ■/ V nn - Thoát ■-0.4 - 0.2 - no Ị Ngừng Tiếplục Ghilệptrọngsố Kết thúc chu kỳ huấn luyện cá thể, cá thể có tập trọng số tốt (có sai số MSe nhỏ nhất) chọn làm kết giải thuật Tập trọng số ghi lại dạng tệp TXT Dự báo dừ liệu M ạns sau huấn luyện sử dụng để dự báo liệu Tệp liệu dự báo tệp TXT chứa số liệu mối quan hệ mực nước đinh lũ với mực nước chân lũ lượne mưa đo trạm Sơn Giang Tệp có cấu trúc tỷ lệ hóa giống tệp huấn luyện Màn hình dự báo sau : 73 E ĩg E S E B Tham số dự đoán File liệu: C:\GA\Data\Forcast TXT Pư đoán Xem dạng bảng C c g iá trị d ự đốtL Trên hình, đường biểu diễn đầu mong muốn trả lời mạng sát nhau, chứng tỏ khả tổng quát hóa mạng sau học tốt 74 K Ế T LUẬN Kết luận từ luận văn Luận văn trình bày giải pháp xây dựng giải thuật lai GA - BP sử dụng thủ tục huấn luyện mạng nơ ron truyền thẳng nhiều lớp ứng dụng mạng nơ ron truyền thẳng toán dự báo Đ ể xây dựne giải thuật lai, luận văn tiến hành nghiên cứu vấn đề lý thuyết mạng nơ ron truyền thẳng, giải thuật BP giải thuật GA giải pháp tích hợp giải thuật GA với giải thuật BP Trên sở đó, luận văn xây dựng mơ hình mạng nơ ron dự báo liệu thực thi m hình với tốn dự báo lĩnh vực khí tượng thuỷ văn Các kết luận rút từ luận văn bao gồm điểm sau: Giải thuật BP sử dụng rộng rãi có hiệu việc huấn luyện mạng nơ ron truyền thẳng nhiều lớp để thực thi toán thực tế với ưu điểm tiến đến điểm cực trị luyện đến bão hòa Tuy nhiên, hiệu giải thuật phụ thuộc nhiều yếu tố việc chọn số nơ ron lớp ẩn, hàm kích hoạt, giá trị trọng số khởi tạo ban đầu, giá trị số học tập huân luyện Các phương pháp tiến giải thuật BP sử dụng tham số bước đà, sử dụng sô học biến đổi, sứ dựng Gradient kết hợp phần cải tiến hiệu tìm kiếm giải thuật Tuy nhiên, nhược điểm cố hữu giải thuật ln có khả hội tụ vào điểm cực trị địa phương, không đảm bảo chắn hội tụ vào điểm cực trị toàn cục Nếu hội tự vào điểm cực trị địa phương, mạng phải bắt đầu luyện lại điều khiến mạng nơ ron không thê áp dụng tốn u cầu độ xác cao thời gian tối thiểu Mặt khác, để mạng đạt đến điểm hội tụ mong muốn cần phải nhiểu thời gian huấn luyện, số chu kỳ huấn luyện lên đến vài chục đến hàng trăm ngàn Giải thuật GA thực chất giải thuật tìm kiếm có bước chuyển ngẫu nhiên đế giải toán tối ưu thực tế cách sử dụng toán tử chọn lọc, lai ghép đột biến để tiến hóa quần thể lời giải ban đầu, sau nhiều thê' hệ tiến hóa thu quần lời giải gần với lời giải tối ưu Không giống giải thuật BP, giải thuật GA đảm bảo tìm kiếm cực trị tồn cục, khó bị tắc cực trị địa phương 75 ln có trao đổi cực trị với Tuy nhiên, giải thuật GA khơng có khả leo lên đỉnh cực trị Nói cách khác, giải thuật GA khơne đảm bảo hội tụ Dựa nghiên cứu ưu điểm, nhược điểm giải thuật GA giải thuật BP, luận văn xây dựng giải pháp tích hợp giải thuật GA vào giải thuật BP thành giải thuật lai dùng để huấn luyện mạng nơ ron truyền thảng nhiều lớp Giải thuật lai GA - BP kết hợp tính chất tìin kiếm tồn cục giải thuật GA với tính hội tụ giải thuật BP đảm báo giải thuật hội tụ cực trị toàn cục Trên sở giải thuật lai GA - BP đề xuất, luận văn đưa bước cần thực để xây dựng mỏ hình mạng nơ ron dự báo sử dụng giải thuật GA BP huấn luyện mạng nơ ron truyền thảng để thực thi tốn dự báo cụ thể lĩnh vực khí tượng thuỷ văn Các định hướng nghiên cứu Tác giả luận văn dự định số nghiên cứu thời gian tới Cải tiến toán tứ chọn lọc lai ghép giải thuật GA giải thuật GA - BP nhằm nâng cao hiệu tìm kiếm cá thể tốt giải thuật GA Tích hợp giải thuật GA vào giải thuật BP troné việc học cấu trúc mạng nơ ron nhiều lớp, nghĩa tìm số nơ ron lớp ẩn tốt toán thực tế 76 TÀI LIỆU T H A M K H ẢO Tài liệu tiếng Việt H oàng k iếm , Lê H oàng Thái (2 0 ), G iả i thuật d i tru y ề n - c c h g iả i tự nh iên c c b i to n trê n m y tín h , N hà xuất g iá o dục N g u y ễn Đ ìn h Thúc (2 0 ), L ậ p trìn h tiế n hỏa, N hà xuất giáo dục Tài liệu tiếng Anh Back T and S ch w efel H.-P (1 9 ), “an overview o f evolutionary algorithm s for param eter op tim ization ”, e v o lu tio n a r y C o m p u ta tio n , vol 1, no 1, pp 123 Baker J e., (1 9 ), a n a n a ly s is o f th e e ffe c ts o f s e le c tio n PhD a lg o r ith m s , thesis, Graduate Sch ool of Vanderbilt in g e n e tic university, N a sh v ille, T en n essee B lick le T and T h iele L., (1 9 ), A c o m p a r is o n o f s e le c tio n s c h e m a s u s e d in g e n e tic a lg o r ith m s , TIK-report, Sw iss Federal institute o f T ech n o lo g y (ETH) B ose N and L iang p (1996), N e u r a l N e tw o r k F o u n d a m e n ta ls w ith G r a p h s , a lg o r ith m s , a n d a p p lic a tio n s , M cG raw -H ill C audell T and D olan c , (1 9 ), “Parametric nectivity: training o f constrained netw orks u sing gen etic algorith m s” , in P r o c e e d in g o f the th ir d in te r n a tio n a l C o n fe r e n c e on G e n e tic a lg o r ith m s , pages -3 D e Jong a., (1 9 ), “Special issu e on gen eric algorithm s”, M achine K Learning, (4 ) D rucker H , Cun y L., im proving G eneralization Perform ance uing Bouble Backpropagation, ie e e T r a n s a c tio n s on n e u r a l n e tw o r k s , V ol 3, N o , N ovem b er 1992 10 G eorge L ee c s and C hin-T en Lin (1 9 ), Neural f u z z y s y s te m s , Prentice H all International, Inc 11 G ero J S., K azakov V a., and and d esig n p roblem s” , In Schinier T., (1 9 ), “G enetic engineering E v o lu tio n a r y A p p lic a tio n s , pages -6 Springer-V erlag A lg o r ith m s in E n g in e e rin g 77 12 Goldberg D E., (1989), G e n e tic a lg o rith m m a c h in e le a r n in g , Addison-Wesley, 13 Reading, Massachusets Hertz J., Anders K., and Palmer R (1991), N eu ral in s e a rc h , o p tim iz a tio n a n d I n tro d u c tio n to th e T h e o r y o f Adision-Wesley Publishing Company, Redwood, C o m p u ta tio n , California 14 Holland, J.H (1975), A d a p ta tio n in n a tu r a l a n d a r tif ic ia l s y ste m s The University of Michigan Press 15 Kasstra, i., &Boyd, M - Designing a neural network for forecasting financial and economic time series - N e u r o c o m p u tin g 10 (1996), pp 215 - 236 16 Koholen T (1998), S e f-o r g a n iz a tio n a n d a s s o c ia tiv e m em ory Springer- Verlag, New York 17 Lawrence S., C L Giles, a C Tsoj, What size Neural Network Gives optimal Generalization? Convergence Properties of Backpropagation, R e p o r t, T e c h n ic a l Institute for Advanced Computer Studies - University of Maryland College Park, June 1996 18 L R Medsker, H y b r id 19 Oh S H., Lee yj., a modified error function to improve the error Back- in te llig e n t S y s te m s , Kluwer academic Pub.,1995 Propagation algorithm for Multi-layer perceptrons, , april 20 1995 Ooyen a V., Nienhuis B., Improving the Convergence of the BackPropagation Algorithm, 21 eT R i J o u r n a l V o l 17, N o Patterson D (1996), N e u r a l N e tw o r k s , V ol 5, pp 465-471, 1992 A r tif ic a l N e u r a l N e tw o r k s , T h e o r y a n d A p p lic a tio n , Prentice Hall 22 Schalkoff R (1997), A r tif ic a l 23 Udoseiffert, Michaelis B., On the gradient desert in back-propagation and its n e u r a l n e tw o r k s , substitution by a genetic algorithm, McGraw-Hill P r o c e e d in g s o f th e 1A STE D in te r n a tio n a l C o n fe r e n c e A p p lie d I n fo rm a tic s - /0 /2 0 , 24 Zupan J and Gasteiger J (1992), InnsBruck, Austria N e u r a l n e tw o r k s f o r c h e m is ts , VCH Phụ lục M Ộ T SỐ CHỨC N Ă N G C Ủ A C H Ư Ơ N G T R ÌN H Thủ tục huấn luyện mạng bàng giáỉ thuật GA Public Sub GA() D i m i A s Integer, j As Integer, k As Integer, m As Integer D i m tot As Integer, xau As Integer D i m tb As Double D i m m W e i g h t s Q As Double D i m temp D i m filenum i= NumOfGens = Goods = Bads = FrmGA.Show D o While i< Nnet.Get_Gen A n d Not stopGA setStatusText 1, "§ang txm kiõm " N n e t G A T o Weights Nnet.GAObjective Nnet.GAFitness 'Tinh gici tri sue khoe trung binh toan quan the tb = For j - T o Nnet.Get PopSize - tb = tb 4- Fitness(j) Next tb = tb / Nnet.GetPopSize 'Tinh so ca the C O sue khoe toí tot = For j = T o Nnet.Get PopSize - If Fitness(j) > tb Then tot = tot + Next 'Tinh so ca the C O sue khoe Xau xau = For j = T o Nnet.Get PopSize - If Fitness(j) < = tb Then xau = xau + Next G oods = tot / Nnet.Get PopSize Bads = xau / Nnet.Get PopSize FrmGA.update DoEvents Nnet.GA_Select Nnet.GACross i= i + NumOfGens = NumOfGens + 'Thay the quan thue OldPop bang quart the moi New Pop For k = T o Nnet.Get PopSize - For m = T o Nnet.Get_Lchrom - 01dPop(k, m) = NevvPop(k, m) Next Next Loop ’Ket qua la quan the OlpPop Nnet.GA_ToWeights Nnet.GAObjective Nnet.GA_Fitness 'Lay 0.05 *N quart the khoe nhat D i m m a x As Double R e D i m Preserve mWeights(Int(0.05 * Nnet.GetPopSize) - 1, (Nnet.Get_Lchrom / 20) - 1) For i = T o Int(0.05 * Nnet.GetPopSize) - max = k=0 For j = T o Nnet.GetPopSize - If m a x < Fitness(ji Then m a x = Fitness(j) k=j End If Next Fitness(k) = For m = To (Nnet.Get_Lchrom / 20) - mWeights(i, m) = GA_Weights(k, m) Next Next R e D i m Preserve BP_Weights(Int(0.05 * Nnet.Get_PopSize) - 1, (Nnet.Get_Lchrom / 20) - 1) For i= T o Int(0.05 * Nnet.Get PopSize) - For j = T o (Nnet.Get_Lchrom / 20) - I BP_Weights(i, j) = mWeights(i, j) Next Next setStatusText 1, MK Ồ t thóc txm k i õ m b»ng G A !" Unload F r m G A FnnComplet.Show End Sub Thủ tục khỏi tạo quần thê đầu tỉên Nằm FrmGA.Show Public Sub randomize_Pop() D i m i A s Integer,j As Integer, mweight As Long D i m tarn As Double, X As Double D i m temp R e D i m Preserve 01dPop(Nnet.Get_PopSize - 1, Nnet.Get Lchrom - 1) mweight = For i = T o Nnet.Get_PopSize - temp = "" For j = T o Nnet.Get Lchrom / - tam = CDbl(Rnd) X = Log(l - tam) tarn = CDbl(Rnd) If tarn < 0.5 Then X= -1 * X X= X+ 10 'lay gia tri CO gian cua X mweight = Int(x * (Haimu(20) - 1) / 20) temp = temp & BIN(mweight) Next For j = T o Nnet.Get_Lchrom - 01dPop(i, j) = Mid(temp, j + 1,1) Next Next End Sub 1.2 Thủ tục giảỉ mã quần thể OldPop thành tập trọng sô Public Sub GA_ToWeights() D i m i A s Integer, j As Integer, k As Integer, m A s Integer D i m temp D i m stemp D i m filenum D i m mde c A s Long R e D i m Preserve GA_Weights(Nnet.Get_PopSize - 1, (Nnet.Get_Lchrom / 20) m dec = temp = "" stemp = "" For i= To Nnet.Get PopSize - temp = "" For j = T o Nnet.Get_Lchrom - temp = temp & 01dPop(i, j) Next For k = To (Nnet.GetLchrom / 20) - stemp = Mid(temp, 20 * k + 1, 20) mdec = For m = Len(sternp) - T o Step -1 mdec = mde c + CInt(Mid(stemp, 20 - m, 1)) * Haimu(m) Next GA_Weights(i, k) = (mdec * 20 / (Haimu(20) - 1)) - 10 Next Next End Sub 1.3 Thú tục tính giá trị hàm mục tỉẻu cho mỏi tập trọng sô Public Sub GA_Objective() D i m i A s Integer, j As Integer, k As Integer D i m temp As String IV D i m filenum D i m tong A s Double D i m tg A s Double R e D i m Preserve Objective(Nnet.Get_PopSize - 1) For i = T o Nnet.Get_PopSize - temp = "" For j = T o Nnet.Get_numWeights - temp = temp & GA_Weights(i, j) & Next Nnet.GA_loadWeight temp tong = tg-0 For k = T o numOfPattems - get_patterns k forwardjprop layers(numOfLayers - l).GA_error tg tong = tong + tg Next Objective(i) = tong Next End Sub 1.4 Thủ tục chuyển giá trị hàm mục tiêu thành giá trị sức khỏe Public Sub GA_Fitness() D i m i As Integer, j A s Integer, k As Integer D i m temp As String D i m filenum D i m m a x A s Double D i m tong As Double D i m a As Double, b As Double R e D i m Preserve Fitness(Nnet.Get_PopSize - 1) m a x = Objective(O) For i = T o Nnet.Get_PopSize - If m a x < Objective(i) Then m a x = Objective(i) Next For i = T o Nnet.GetJPopSize - Fitness(i) = max - Objective(i) Next tong = Fitness(O) m a x = Fitness(O) For i = T o Nnet.Get PopSize - If m a x < Fitness(i) Then m a x = Fitness(i) tong = tong + Fitness(i) Next tong = tong / Nnet.Get_PopSize If m a x > * tong Then a = tong / (max - tong) b = (max - * tong) * a Else V a= b = End If For i = To Nnet.GetPopSize - Fitness(i) = Fitness(i) * a + b Next End Sub 1.5 Toán tủ chọn lọc Public Sub GA_Select() D i m i As Integer, j As Integer, k As Integer, m As Integer 'Dim filenum 'Dim temp As String D i m tg As Double, tong A s Double, ct As Double D i m mFitnessO As Double R e D i m Preserve mFitness(Nnet.Get_PopSize - 1) R e D i m Preserve NewPop(Nnet.Get_PopSize - 1, Nnet.Get_Lchrom - 1) For i = T o Nnet.GetPopSize - tg = For j = To i tg = tg + Fitness(j) Next mFitness(i) = tg Next tong = For i = T o Nnet.Get PopSize - tong = tong + Fitness(i) Next For i = T o Nnet.Get PopSize - ct = tong * CDbl(Rnd) k = For j = T o Nnet.Get PopSize - If mFitness(j) < ct Then k = k + Next For m = T o Nnet.GetLchrom - NewPop(i, m) = 01dPop(k, m) Next Next End Sub 1.6 Toán tứ lai ghép đột biến Public Sub GA_Cross() D i m i As Integer, j As Integer, k As Integer D i m index As Integer, index2 As Integer, index3 As Integer 'Dim filenum 'Dim temp A s String D i m pk As Double, p m As Double D i m C r P o p O A s Double VI R e D i m Preserve CrPop(Nnet.Get_PopSize - 1, Nnet.GetLchrom - 1) For i = T o Nnet.GetPopSize - Step Randomize index = Int(Rnd * Nnet.Get_PopSize + 1) index2 = Int(Rnd * Nnet.Get_PopSize + 1) pk = CDbl(Rnd) If pk < Pcross Then index3 = Int(Rnd * Nnet.Get_Lchrom + 1) For k = T o index3 - CrPop(i, k) = NewPop(index - 1, k) CrPop(i + 1, k) = NewPop(index2 - 1, k) Next For k = index3 T o Nnet.Get Lchrom - CrPop(i, k) = NewPop(index2 - 1, k) CrPop(i + 1, k) = NewPop(index - 1, k) Next 'tien hanh dot bien com moi sink 'con / For j = T o Nnet.Get Lchrom - pin = CDbl(Rnd) If p m < Pmutation Then If CrPop(i, j) = "0" Then CrPop(i, j) = "I" Else CrPop(i, j) = "0" End If End If Next 'con For j = T o Nnet.Get Lchrom - p m = CDbl(Rnd) If p m < Pmutation Then If CrPop(i + l,j) = M0 M Then CrPop(i + l,j) = ” 1” Else CrPop(i + l,j) = ,,0” End If End If Next Else For j = T o Nnet.Get Lchrom - CrPop(i,j) = NewPop(indexl - l,j) CrPop(i + 1, j) = NewPop(index2 - 1, j) Next End If Next 'dua vao quan the moi R e D i m Preserve NewPop(Nnet.Get_PopSize - 1, Nnet.Get Lchrom - 1) For i = T o Nnet.Get PopSize - For j = T o Nnet.Get Lchrom - NewPop(i, j) = CrPop(i, j) Vll Next Next End Sub Thu tục luyện bàng gỉải thuật BP từ kết giải thuật GA Public Sub train() D i m tot err A s Double, n u m As Integer currentError = 0.9999 D i m MaxCycles As Integer, i As Integer, J A s Double, k A s Integer MaxCycles = 15000 i=0 tot_err = R e D i m predictValue(numOfPatterns - 1) Frm Plot S h o w D o While True A n d Not stopTraining get_patterns i setNumPattems i setSlatusText 1, "§|Ang huÊn ỉuyồn b»ng gi^Ịi thuÊt thớ " N u m O f P o p s forward_prop predictValue(i) = layers(numOfLayers - l).getoutValue backward prop currentError tot_err = tot err + currentError * currentError update_weights i= i + DoEvents If i = numOfPattems Then i= M S E = tot_err / numOfPatterns If NumOfCycles M o d 50 = Then FrmPlot update DoEvents End If If A b s ( M S E ) < errorToleranceRate Then setcurrentError currentError DoEvents setstopTraining True End If MSE = tot_err = N u m OfCycles = NumOfCycles + End If Loop setStatusText 1, "KỊt thóc hn luyồn c thó " & N u m O f P o p s FrmPlot update End Sub 2.1 Thủ tục truyền xuôi mảu huấn luyện qua mạng Public Sub forward propO VI11 D i m i As Integer, j As Integer, k As Integer D i m a T e m p O A s Double, a T m p O As Double layers(0).Set_Inputs inputs For i = T o numOfLayers - layers(i).calc_out layers(i).getOutputs a T e m p If i + < numOfLayers Then layers(i 4- 1).Set_Inputs a T e m p End If Next E nd Sub 2.2 Thủ tục lan truyền ngưực lỏi Public Sub back\vard_prop(ByRef tongLoi As Double) D i m i As Integer D i m OE() A s Double layers(numOfLayers - 1).calc_error tontiLoi For i = numOfLayers - T o Step -1 layers(i + 1).getBack_errors O E layers(i).setOutput_errors O E 1ay ers(i).m id_c a1c_e rro r Next E n d Sub 2.3 Thủ tục cập nhật trọng sô mạng Public Sub update_weights() D i m i A s Integer For i = T o numOfLayers - I layers(i).updateWeights leamingRate, alpha Next End Sub UpdateWeights hàm thành phán lớp mạng layers, cập nhật trọng số lớp mạng: Public Sub updateWeights(ByVal beta A s Double, ByVal alpha As Double) D i m i,j, k As Integer ' Learning law: weight change = beta * output errors * input For i = T o numlnputs - k = i * numOutputs For j = T o numOutputs - delta = beta * output_errors(j) * inputs(i) Weights(k + j) = Weights(k + j) + delta Next Next For j = T o numOutputs - deltaB = beta * output_errors(j) bias(j) = bias(j) + deltaB Next End Sub ... thiệu mạng nơ ron truyền thẳng nhiều lớp, giải thuật BP vấn đề sử dụng giải thuật BP xây dựng giải pháp tích hợp giải thuật GA với giải thuật BP việc huấn luyện mạng nơ ron truyền thảng nhiều lớp. .. thuyết giải thuật SGA cải tiến giải thuật SGA • Luận văn xây dựng giải pháp tích hợp giải thuật GA với giải thuật BP thành giải thuật lai GA - BP dể huấn luyện mạng nơ ron truyền thẳng nhiêu lớp. .. huấn luyện cho mạng nơ ron truyền thẳng thực thi toán dự báo thực tế, luận văn tập trung nghiên cứu giải pháp tích hợp giải thuật GA với giải thuật BP việc huấn luyện mạng nơ ron truyền thẳng