Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 144 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
144
Dung lượng
2,66 MB
Nội dung
ận án Tiến sĩ Kỹ thuật Lu 2013 MỤC LỤC LỤC MỞ ĐẦU .7 CHƢƠNG 1 : 1 : MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON 12 1.1 Giới thiệu mạng nơron và trình học mạng nơron 12 12 1.1.1. Mạng nơron phƣơng pháp học 13 13 1.1.2 Đánh giá nhân tố trình học 1.1.2.1. Khởi tạo trọng số 13 số 1.1.2.2. Bước học α 13 1.1.2.3. Hằng số quán tính 14 nơron 14 1.2 Nhận dạng hệ thống sử dụng mạng nơron 1.2 14 1.2.1. Nhận dạng hệ thống 16 16 1.2.2 Nhận dạng hệ thống sử dụng mạng nơron 19 1.3 Mặt lỗi đặc biệt luyện mạng nơron 1.3 19 1.3.1. Mặt lỗi đặc biệt luyện mạng nơron 20 20 1.3.2 Ví dụ tốn dẫn đến mặt lỗi đặc biệt 1.4 Mô trình luyện mạng nơron sử dụng Toolbox Matlab 1.4 22 22 1.4.1. Ví dụ với mạng nơron có mặt lỗi bình thƣờng 1.4.2. Ví dụ với mạng nơron có mặt lỗi đặc biệt 25 26 1.5 Tổng Tổng quan tình hình nghiên cứu nƣớc nƣớc 26 26 1.5.1 Điểm qua số cơng trình nghiên cứu mạng nơron ứng dụng 1.5.2 Các cơng trình ngồi nƣớc nghiên cứu thuật toán học mạng nơron 31 .37 37 1.5.3 1.5 Bàn luận 38 38 1.6 Kết luận chƣơng 1.6 CHƢƠNG 2: THUẬT TỐN VƢỢT KHE TRONG Q TRÌNH LUYỆN MẠNG NƠRON 40 2.1 Thuật toán vƣợt khe khe 40 2.1.1 Đặt vấn đề 40 41 41 2.1.2 Tính hội hội tụ điều kiện tối ƣu 46 46 2.1.3 Thuật toán vƣợt khe 2.1.3.1 2.1 3.1 Giới thiệu 47 48 48 2.1.3.2 2.1 3.2 Nguyên lý vượt khe khe ận án Tiến sĩ Kỹ thuật Lu 2013 2.1.3.3 2.1 3.3 Xác định bước vượt khe 51 51 2.1.3.4 2.1 3.4 Ví dụ 54 56 2.2 Ứng dụng thuật toán vƣợt khe trình luyện mạng nơron 58 58 2.3 Minh Minh họa thuật toán .58 58 2.3.1 Công tác chuẩn bị 59 2.3.1.1 Điều chỉnh trọng số 2.3.1.1 số lớp ra 2.3.1.2 2.3 1.2 Điều chỉnh trọng số số lớp ẩn 60 60 62 62 2.3.2 Cấu trúc mạng 64 64 2.3.3 Các thƣ viện hàm mạng 2.3.3.1 2.3 3.1 Thư viện 64 2.3.3.2 2.3 3.2 Hàm khởi tạo trọng số 66 66 2.3.3.3 2.3 3.3 Thủ tục tính bước học vượt khe 67 2.3.3.4 2.3 3.4 Thủ tục huấn luyện mạng, HUANLUYENVUOTKHE() 69 69 2.3.4 Kết chạy chƣơng trình so sánh 69 69 2.3.4.1 2.3 4.1 Chạy chương trình 2.3.4.2 2.3 4.2 So sánh phương 73 73 phương án 2.4 Kết luận chƣơng 76 76 CHƢƠNG 3: ĐỀ XUẤT MƠ HÌNH KẾT HỢP THUẬT DI TRUYỀN VÀ THUẬT TOÁN VƢỢT KHE KHE ĐỂ CẢI TIẾN Q TRÌNH HỌC CỦA MẠNG NƠRON MLP CĨ MẶT LỖI ĐẶC BIỆT .77 77 77 3.1. Đặt vấn đề 3.1.1. Khảo sát độ hội tụ trình luyện mạng nơron kỹ thuật lan truyền ngƣợc 77 nguyên thủy với khởi tạo trọng số ban đầu khác đầu khác nhau 3.1.2. Khảo sát độ hội tụ trình luyện mạng nơron có mặt lỗi đặc biệt kỹ thuật lan truyền ngƣợc kết hợp thuật toán vƣợt khe với khởi tạo trọng số ban đầu khác nhau 80 mơ hình kết hợp giải thuật di truyền thuật tốn vƣợt khe q 3.2. Đề xuất mơ trình luyện mạng nơron 83 83 83 3.2.1 3.2 Đặt vấn đề 87 3.2.2 3.2 Thuật toán 3.3. Áp dụng mơ hình kết hợp giải thuật di truyền thuật tốn vƣợt khe q trình luyện mạng nơron vào toán nhận dạng 91 94 3.4. Kết luận chƣơng 95 95 KẾT LUẬN CHUNG VÀ ĐỀ XUẤT HƢỚNG NGHIÊN CỨU ận án Tiến sĩ Kỹ thuật Lu 2013 CÁC CƠNG TRÌNH ĐÃ CƠNG BỐ 99 99 TÀI LIỆU THAM KHẢO .100 100 PHỤ LỤC .106 106 ận án Tiến sĩ Kỹ thuật Lu 2013 DANH MỤC BẢNG BIỂU, HÌNH VẼ VẼ Bảng 2.1 Các hàm kích hoạt (transfer function) tiêu biểu 64 64 Bảng 2.2: Tập hồ sơ mẫu đầu vào {0 9} 74 74 Bảng 2.3: Tập hồ sơ mẫu đầu vào {! @ # $ % ^ & * ( )} 75 75 79 79 Bảng 3.1 Kết nhận dạng hệ thống phi tuyến tĩnh Bảng 3.2: Kết Kết nhận dạng hệ thống động học phi tuyến .80 80 Bảng 3.3: Kết nhận dạng hệ thống có mặt lỗi dạng lịng khe 82 82 Bảng 3.4 So sánh GA BP với sai số 0.1 .85 85 Bảng 3.5: So sánh GA BP với sai số 0.001 .86 86 Bảng 3.6: So sánh GA BP với sai số khác nhau 86 86 Hình 1.1 Điều khiển theo nguyên tắc phản hồi đầu 15 15 Hình 1.2: Mơ hình nhận dạng 18 18 Hình 1.3 Mặt sai số dạng lịng khe 19 19 24 24 Hình 1.4: Kỷ ngun luyện mạng ví dụ Hình 1.5: Cấu trúc mạng nơron cho nhận dạng chữ 25 25 Hình 1.6 : Kết luyện mạng nơron với phương pháp lan truyền ngược khác (traingd, traingdm, traindx, trainda) 26 26 Hình 2.1: Quỹ đạo dao động với sai số dạng lịng khe 42 42 Hình 2.2: Hàm Hàm khe 48 48 Hình 2.3: Xác 50 50 định bước vượt khe v Lưu đồ thuật toán tính bước vượt khe .54 54 Hình 2.4: Lưu Hình 2.5: Bước Bước lặp k = 55 55 Hình 2.6:Các đường đồng mức dạng khe .57 57 :Lưu đồ thuật toán huấn luyện mạng nơron với bước học vượt khe. 58 Hình 2.7 :Lưu 58 Hình 3.1: Sơ đồ thuật toán kết hợp giải thuật vượt khe di truyền cho luyện mạng MLP 90 Hình 3.2: Hoạt động mạng MLP cải tiến 93 93 Hình a: So sánh hoạt động mạng MLP túy MLP cải tiến 97 97 2013 ận án Tiến sĩ Kỹ thuật Lu CÁC TỪ VIẾT TẮT TẮT ADLINE ADAptive Linear Neural, mạng tuyến tính thích nghi đơn lớp ANN Artificial Neural Network, mạng nơron nhân tạo BP BackPropagation, lan truyền ngƣợc BPTT BackPropagation -Through-Time, lan truyền ngƣợc xuyên tâm LDDN Layered Digital Dynamic Network, mạng nơron động LMS Least Mean Square, trung bình bình phƣơng nhỏ nhất NNs Neural NetworkS, mạng nơron RTRL Real-Time Recurrent Learning, thuật học hồi qui thời gian thực SDBP Steepest Descent BackPropagation, kỹ thuật lan truyền ngƣợc giảm dốc nhất OBP Optical BackPropagation, kỹ thuật lan truyền ngƣợc “tốc độ ánh sáng” VLBP Variable Learning rate BackPropagation algorithm, kỹ thuật lan truyền ngƣợc với tốc độ học thay đổi. MLP MultiLayer Perceptron, mạng truyền thẳng nhiều lớp GA Genetic Algorithms, giải thuật di truyền ận án Tiến sĩ Kỹ thuật Lu 2013 LỜI CAM ĐOAN Tơi xin cam đoan luận án cơng trình nghiên cứu khoa học không trùng lặp với cơng trình khoa học khác Các số liệu trình bày luận án đƣợc kiểm tra kỹ phản ánh hoàn toàn trung thực Các kết nghiên cứu tác giả đề xuất chƣa đƣợc cơng bố tạp chí đến thời điểm ngồi cơng trình tác giả Ngày 14 tháng 10 năm 2013 Tác giả luận án Nguyễn Thị Thanh Nga ận án Tiến sĩ Kỹ thuật Lu 2013 MỞ ĐẦU ĐẦU Trong nhiều lĩnh vực nhƣ điều khiển, tự động hóa, cơng nghệ thông tin… , nhận dạng đƣợc đối tƣợng vấn đề mấu chốt định thành công toán Phần lớn đối tƣợng thực tế phi tuyến với độ phi tuyến khác Mạng nơron có khả xấp xỉ hàm phi tuyến cách đầy đủ xác, đƣợc sử dụng tốt cho mơ hình động học phi tuyến Điều quan trọng thuật lan truyền ngƣợc tĩnh động mạng nơron đƣợc sử dụng để hiệu chỉnh tham số trình nhận dạng Cơ sở toán học việc khẳng định mạng nơron công cụ xấp xỉ vạn hàm số liên tục dựa định lý Stone – Weierstrass Weierstrass Kolmogorov[15] Việc sử dụng định lý Stone – Weierstrass để chứng minh khả xấp xỉ mạng noron đƣợc tác giả Hornik et al., Funahashi, Cotter, Blum đƣa từ năm 1989 Các mạng nơron thỏa mãn định lý Stone – Weierstrass Weierstrass kể đến mạng lƣợng giác, mạng hai lớp với hàm kích hoạt sigmoid, mạng hai lớp với hàm kích hoạt McCulloch – Pitts(MC Pitts(MC - P) mạng với hàm sở xuyên tâm(RBF)[16], [17], [18], [19] Việc sử dụng định lý Kolmogorov để biểu diễn xác hàm liên tục v đƣa sơ đồ mạng nơron tƣơng ứng đƣợc Hecht - Nielsen Lorentz công bố[20], [21], [22]. Mạng nơron công cụ nhận dạng tốt đặc trƣng sau: Khả học từ kinh nghiệm (khả đƣợc huấn luyện), khả xử lý song song với tốc độ xử lý nhanh, khả học thích nghi, khả khái qt hố cho đầu vào khơng đƣợc huấn luyện, l uyện, ví dụ dựa vào cách học mạng tiên đốn đầu từ đầu vào trƣớc [23], [24] Hiện nay, công cụ phần mềm đƣợc ứng dụng hiệu lĩnh vực điều khiển, tự động hóa, cơng nghệ thơng tin Matlab Khi sử dụng cơng cụ Neural Network Netw ork Toolbox, luyện mạng để nhận dạng đƣợc số đối tƣợng tuyến tính và phi tuyến Bộ cơng cụ cung cấp cho số ận án Tiến sĩ Kỹ thuật Lu 2013 phƣơng pháp luyện lu yện mạng nơron, kỹ thuật t huật lan truyền ngƣ ngƣợc ợc đƣợc ứng dụng rộng rãi Ở lựa chọn bƣớc học khác phục vụ cho trình luyện mạng nhƣ: Traingd (Basic gradient descent), Traingdm (Gradient descent with momentum), Traingdx (Adaptive learning rate), Trainbfg (BFGS quasi- Newton) Một nhƣợc điểm dùng mạng nơron là chƣa có phƣơng pháp luận chung thiết kế cấu trúc mạng cho toán nhận dạng điều khiển mà phải cần tới kiến thức chuyên gia Mặt khác xấp xỉ mạng nơron với hệ phi tuyến khó khăn luyện mạng khơng tìm đƣợc điểm tối ƣu toàn cục Vậy, tồn lớn gặp phải tìm nghiệm tối ƣu tồn cục, đặc biệt áp dụng cho toán lớn, hệ thống điều khiển trình. Giải thuật di truyền (Genetic Algorithms -GA) đƣợc biết đến nhƣ giải thuật tìm kiếm dựa học thuyết chọn lọc tự nhiên cho phép ta đạt đƣợc tới cực trị tồn cục Thực ra, GA thuộc lớp thuật toán xác suất, nhƣng lại khác thuật toán ngẫu nhiên chúng kết hợp phần tử tìm kiếm trực tiếp ngẫu nhiên Khác biệt quan trọng phƣơng pháp tìm kiếm GA phƣơng pháp tìm kiếm khác GA trì xử lý ttập ập lời giải (quần thể) tất phƣơng pháp khác xử lý điểm khơng gian tìm kiếm Chính thế, GA mạnh phƣơng pháp tìm kiếm có nhiều [25], [26] Hiện nay, việc nghiên cứu các thuật tốn tìm nghiệm tối ƣu toàn cục luyện mạng nơron đƣợc số tác giả nghiên cứu áp dụng [27], [28], [29] Tuy nhiên sử dụng mạng nơron để xấp xỉ số đối tƣợng phi tuyến mà mặt lỗi sinh có dạng lịng khe [28], việc huấn luyện mạng gặp nhiều khó khăn Nội dung đề tài nghiên cứuu thuật toán t ốn tìm điểm tối ƣu tồn ccục ục q trình luyện mạng nơron bằng bằng thuật tốn vƣợt v ƣợt khe có kết hợp với giải thuật ddii truyền Mục tiêu tiêu - Đề xuất mơ hình kết hợp thuật toán vƣợt khe và giải thuật di truyền để huấn luyện mạng nơron 2013 ận án Tiến sĩ Kỹ thuật Lu - Xây dựng công cụ phần mềm để luyện mạng nơro n cho số tốn có mặt lỗi đặc biệt, làm sở bổ sung vào Neural Toolbox Matlab Nội dung chính chính - Nghiên cứu lí thuyết mạng nơron và q trình học mạng nơron - Nghiên cứu lí thuyết thu yết thuật toán vƣợt khe xây dựng thuật toán t ốn tính bƣớc học vƣợt khe. bằng kỹ thuật lan truyền ngƣợc - Xây dựng thuật toán huấn luyện mạng nơron bằng kết hợp với thuật toán vƣợt khe. - Đề xuất thuật toán huấn luyện mạng nơron bằng bằng kỹ thuật lan truyền ngƣợc có sử dụng giải thuật di truyền kết hợp với thuật toán vƣợt khe - Viết cài đặt chƣơng trình huấn luyện mạng nơron trên C++ - Viết cài đặt chƣơng trình huấn luyện mạng nơron trên Matlab Phƣơng pháp nghiên cứu cứu Sử dụng nghiên cứu lý thuyết, th uyết, thực nghiệm mô máy tính. * Nghiên cứu lý thuyết: - Tập trung nghiên cứu vấn đề mạng nơron ứng dụng mạng nơron nhận dạng Nghiên cứu khó khăn tồn luyện mạng nơron với mặt lỗi đặc biệt có dạng lịng khe - Nghiên cứu giải toán tối ƣu tĩnh mà hàm mục tiêu có dạng đặc biệt – dạng lịng khe Với hàm mục tiêu phƣơng pháp thơng thƣờng, ví dụ nhƣ phƣơng pháp gradient khơng tìm đƣợc cực tiểu, cịn thuật tốn vƣợt khe vƣợt qua đƣợc lòng khe để đến điểm tối ƣu - Nghiên cứu ảnh hƣởng giá trị ban đầu giải toán tối ƣu tĩnh phƣơng pháp số, đặc biệt hàm mục tiêu có dạng lịng khe Giá trị ban đầu ảnh hƣởng lớn tới tính hội tụ thời gian tính nghiệm tối ƣu. - Nghiên cứu giải thuật di truyền, ứng dụng q trình tìm nghiệm tối ƣu tồn cục ận án Tiến sĩ Kỹ thuật Lu - 2013 Đề xuất mơ hình kết hợp thuật tốn vƣợt khe giải thuật di truyền để luyện mạng nơron có mặt lỗi đặc biệt Cơ sở tốn học gồm lý thuyết khả xấp xỉ vạn mạng nơron với đối tƣợng phi tuyến có hàm số liên tục dựa định l ý Stone – Weierstrass Kolmogorov; khả tìm đƣợc vùng chứa cực trị toàn cục giải thuật di truyền nhờ chế tìm kiếm trải rộng, ngẫu nghiên mang tính chọn lọc tự nhiên; khả tìm đến đƣợc cực trị tồn cục thuật tốn tối ƣu vƣợt khe k hi hi hàm phi tuyến có dạng khe kh e. * Nghiên cứu thực nghiệm: Mô máy tính cách sử dụng: - Bộ cơng cụ sẵn có Toolbox Matlab - Viết chƣơng trình C++ - Viết chƣơng trình Matlab để thực hiện quá trình luyện mạng nơron với mặt lỗi dạng đặc biệt Đánh giá hội tụ để minh chứng cho kết luận phần lý thuyết Bố cục luận án Luận án chia làm chƣơng Chƣơng trình bày tổng quan mạng nơron, trình học mạng nơron, đánh giá nhân tố trình học Giới thiệu về mặt lỗi đặc biệt trình luyện mạng nơron, mặt lỗi có dạng lịng khe, tốn dẫn đến mặt lỗi có dạng lịng khe Sử dụng công cụ Neural Network Toolbox để nhận dạng số đối tƣợng có hàm mục tiêu dạng thơng thƣờng dạng đặc biệt Tóm tắt tình hình nghiên cứu ngồi nƣớc, từ làm xuất phát điểm cho nội dung nghiên cứu chƣơng th eo. Chƣơng trình bày thuật toán tối ƣu áp dụng cho hàm mục tiêu dạng khe gọi thuật toán vƣợt khe Để giải bà i toán nhận dạng đối tƣợng phi tuyến mà sinh ra hàm mục tiêu dạng khe, tác giả đề xuất việc áp dụng thuật toán vƣợt khe tính bƣớc học vƣợt khe q trình học mạng nơron Để minh chứng cho hiệu bƣớc học vƣợt khe, tác giả lấy ví dụ nhận dạng chữ 10 129 ận án Tiến sĩ Kỹ thuật Lu 2013 PHỤ LỤC 3: MÃ NGUỒN CHƢƠNG TRÌNH LUYỆN MẠNG NƠRON VỚI BƢỚC HỌC VƢỢT KHE ĐỂ NHẬN DẠNG D ẠNG CHỮ VIẾT dinhnghia.h /* *=======================================================================* * -* * DE TAI : HUAN LUYEN MANG NO-RON VOI BUOC HOC TINH THEO NGUYEN LY VUOT KHE * * NGON NGU : C * TRINH DICH : VISUAL C++ * TEN TEP : dinhnghia.h * -* *=======================================================================* */ #define SIGMF(x) 1/(1 + exp(-(double)x))//HAM exp(-(double )x))//HAM KICH HOAT NO RON #define DSIGM(y) (float)(y)*(1.0-y))//DAO (float)(y)*(1 0-y))//DAO HAM CUA HAM KICH HOAT NO RON #define SLNRLV 35 // SO LUONG NO RON LOP VAO #define SLNRLA // SO LUONG NO RON LOP AN #define SLNRLR 10 // SO LUONG NO RON LOP RA #define EPSILON 0.06 // SAI SO TRUNG BINH BINH PHUONG DE DUNG QUA TRINH LUYEN MANG #define SLMHL #define STEPinit NHIEU TRUONG HOP #define DCBH #define MSDCBH #define TSDCBH #define BLTD #define FD 18 0.5 // SO LUONG MAU HUAN LUYEN MANG // GIA TRI KHOI TAO BUOC HOC, CO THE DUNG CHO 0.0001 5 30000 1e-1 // // // // // DIEU CHINH BUOC HOC MAU SO DIEU CHINH BUOC HOC TU SO DIEU CHINH BUOC HOC BUOC LAP TOI DA taphuanluyen.h /* *====================================================================* * -* * DE TAI : HUAN LUYEN MANG NO-RON VOI BUOC HOC TINH THEO NGUYEN LY VUOT KHE * * NGON NGU : C * TRINH DICH : VISUAL C++ * TEN TEP : taphuanluyen.h taphuanluyen h * -* *=======================================================================* */ #include "dinhnghia.h" //TAP MAU HUAN LUYEN DAU VAO int TAPHUANLUYEN[SLMHL][SLNRLV TAPHUANLUYEN[ SLMHL][SLNRLV] ] = { { 0,1,1,1,1,1,0 0,1,1,1,1,1,0, , /* */ 1,0,0,0,0,0,1, 1,0,0,0,0,0,1, 1,0,0,0,0,0,1, 0,1,1,1,1,1,0 }, { 0,0,0,0,0,0,0, 0,0,0,0,0,0,0, 0,1,0,0,0,0,1, 1,1,1,1,1,1,1, 0,0,0,0,0,0,1, /* */ 130 ận án Tiến sĩ Kỹ thuật Lu 0,0,0,0,0,0,0 }, { 0,1,0,0,0,0,1, 0,1,0,0,0,0,1, /* */ 1,0,0,0,0,1,1, 1,0,0,0,1,0,1, 1,0,0,1,0,0,1, 0,1,1,0,0,0,1 }, { 1,0,0,0,0,1,0, 1,0,0,0,0,1,0, /* */ 1,0,0,0,0,0,1, 1,0,0,1,0,0,1, 1,1,1,0,1,0,1, 1,0,0,0,1,1,0 }, { 0,0,0,1,1,0,0, 0,0,0,1,1,0,0, /* */ 0,0,1,0,1,0,0, 0,1,0,0,1,0,0, 1,1,1,1,1,1,1, 0,0,0,0,1,0,0 }, { 1,1,1,0,0,1,0, 1,1,1,0,0,1,0, /* */ 1,0,1,0,0,0,1, 1,0,1,0,0,0,1, 1,0,1,0,0,0,1, 1,0,0,1,1,1,0 }, { 0,0,1,1,1,1,0, 0,0,1,1,1,1,0, /* */ 0,1,0,1,0,0,1, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 0,0,0,0,1,1,0 }, { 1,0,0,0,0,0,0 1,0,0,0,0,0,0, , /* */ 1,0,0,0,0,0,0, 1,0,0,1,1,1,1, 1,0,1,0,0,0,0, 1,1,0,0,0,0,0 }, { 0,1,1,0,1,1,0, 0,1,1,0,1,1,0, /* */ 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 0,1,1,0,1,1,0 }, { 0,1,1,0,0,0,0, 0,1,1,0,0,0,0, /* */ 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 1,0,0,1,0,1,0, 0,1,1,1,1,0,0 }, { 1,1,1,1,0,0,0, 1,1,1,1,0,0,0, /* */ 0,0,0,1,0,0,0, 0,0,0,1,0,0,0, 0,0,0,1,0,0,0, 1,1,1,1,1,1,1 }, { 1,1,1,1,0,1,0, 1,1,1,1,0,1,0, 1,0,0,1,0,0,1, /* */ 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 1,0,0,0,1,1,0 }, 2013 131 2013 ận án Tiến sĩ Kỹ thuật Lu { 1,0,0,0,0,0,0 1,0,0,0,0,0,0, , /* */ 1,0,0,0,0,0,0, 1,0,0,1,0,0,0, 1,1,1,1,1,1,1, 0,0,0,1,0,0,0 }, { 0,1,0,0,0,1,0, 0,1,0,0,0,1,0, /* */ 1,0,0,0,0,0,1, 1,0,0,1,0,0,1, 1,0,1,0,1,0,1, 0,1,1,0,1,1,0 }, { 1,0,0,0,0,1,1, 1,0,0,0,0,1,1, /* */ 1,0,0,0,1,0,1, 1,0,0,1,0,0,1, 1,0,1,0,0,0,1, 1,1,0,0,0,0,1 }, { 1,1,1,1,0,0,0, 1,1,1,1,0,0,0, /* */ 0,0,0,1,0,0,0, 0,0,0,1,0,0,0, 1,1,1,1,1,1,1, 0,0,0,1,0,0,0 }, { 1,1,1,1,1,1,1, 1,1,1,1,1,1 ,1, /* */ 1,0,0,0,0,0,1, 1,0,0,0,0,0,1, 1,0,0,0,0,0,1, 1,1,1,1,1,1,1 }, { 0,1,1,0,0,0,1, 0,1,1,0,0,0,1, /* */ 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 0,1,1,1,1,1,1 0,1,1,1,1,1 ,1 } }; //DAU RA MONG MUON TUONG UNG int DRMM[SLMHL][SLNRLR] DRMM[SLMHL][S LNRLR] = { { 1,0,0,0,0,0,0,0,0,0 1,0,0,0,0,0,0,0,0,0 { 0,1,0,0,0,0,0,0,0,0 0,1,0,0,0,0,0,0,0,0 { 0,0,1,0,0,0,0,0,0,0 0,0,1,0,0,0,0,0,0,0 { 0,0,0,1,0,0,0,0,0,0 0,0,0,1,0,0,0,0,0,0 { 0,0,0,0,1,0,0,0,0,0 0,0,0,0,1,0,0,0,0,0 { 0,0,0,0,0,1,0,0,0,0 0,0,0,0,0,1,0,0,0,0 { 0,0,0,0,0,0,1,0,0,0 0,0,0,0,0,0,1,0,0,0 { 0,0,0,0,0,0,0,1,0,0 0,0,0,0,0,0,0,1,0,0 { 0,0,0,0,0,0,0,0,1,0 0,0,0,0,0,0,0,0,1,0 { 0,0,0,0,0,0,0,0,0,1 0,0,0,0,0,0,0,0,0,1 { 0,0,0,0,1,0,0,0,0,0 0,0,0,0,1,0,0,0,0,0 { 0,0,0,0,0,1,0,0,0,0 0,0,0,0,0,1,0,0,0,0 { 0,0,0,0,0,0,0,1,0,0 0,0,0,0,0,0,0,1,0,0 { 0,0,0,1,0,0,0,0,0,0 0,0,0,1,0,0,0,0,0,0 { 0,0,1,0,0,0,0,0,0,0 0,0,1,0,0,0,0,0,0,0 { 0,0,0,0,1,0,0,0,0,0 0,0,0,0,1,0,0,0,0,0 { 1,0,0,0,0,0,0,0,0,0 1,0,0,0,0,0,0,0,0,0 { 0,0,0,0,0,0,0,0,0,1 backprop5.c /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* } };/* 9 */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ *=======================================================================* 132 ận án Tiến sĩ Kỹ thuật Lu 2013 * -* * DE TAI : HUAN LUYEN MANG NO-RON VOI BUOC HOC TINH THEO NGUYEN LY VUOT KHE * * NGON NGU : C * TRINH DICH : VISUAL C++ * TEN TEP : backprop.c * -* *=======================================================================* */ #include #include #include #include "taphuanluyen.h" "taphuanluyen.h" #include "dinhnghia.h" /************************** DINH NGHIA CAC BIEN TOAN CUC ****************************/ float MTTSLA[SLNRLV][SLNRLA]; MTTSLA[SLNRLV ][SLNRLA]; //MA TRAN TRONG SO LOP AN float MTTSLR[SLNRLA][SLNRLR]; MTTSLR[SLNRLA ][SLNRLR]; //MA TRAN TRONG SO LOP RA float BTMTTSLA[SLNRLV][SLNRLA];//BIEN THIEN MA TRAN TRONG SO LOP AN float BTMTTSLR[SLNRLA][SLNRLR]; BTMTTSLR[SLNRLA][SLNRLR];//BIEN //BIEN THIEN MA TRAN TRONG SO LOP RA float x[SLNRLV]; //VEC-TO DAU VAO LOP VAO float y[SLNRLA]; //VEC TO DAU RA LOP AN float HW1[SLNRLV][SLNRLA]; z[SLNRLR];][SLNRLA]; //VEC TOSU DAU RA LOP RA float HW1[SLNRLV //KHONG DUNG float HW2[SLNRLV][SLNRLA]; HW2[SLNRLV][S LNRLA]; //KHONG SU DUNG float OW1[SLNRLA][SLNRLR]; OW1[SLNRLA][S LNRLR]; //KHONG SU DUNG float OW2[SLNRLA][SLNRLR]; OW2[SLNRLA][S LNRLR]; //KHONG SU DUNG float SSLA[SLNRLA]; //SAI SO LOP AN float SSLR[SLNRLR]; //SAI SO LOP RA int PATR[SLMHL]; float ECM[SLMHL]; ECM[SLMHL]; float TOCDOHOC=2; //TOC DO HOC int SOBUOCLAP=0; float BVK=0; //BUOC VUOT KHE int NBS=0; float FX[SLMHL]; float F[SLMHL]; float A,GAMA; float QUANTINH=0.1; QUANTINH=0.1; //TOAN HANG QUAN TINH int MTDVKT[35]; MTDVKT[35]; //MA TRAN DAU VAO KIEM TRA long int itr; int HTHL; //HOAN THANH HUAN LUYEN int LCBH; //LUA CHON BUOC HOC int RESET; //RESET MANG int RES=1; //RESET MANG int SDM; //SU DUNG MANG /*************** KET THUC DINH NGHIA CAC BIEN TOAN CUC ****************/ /*************************** CAC NGUYEN MAU HAM ***********************/ int void void float void KHOITAOMANG(); QUATRINHHUANLUYEN(); DAPUNGDAURA(int DAPUNGDAURA(i nt afer[]); GIATRIHAMMUCTIEU(int x[],float y[],int SIZE); DIEUCHINHTRONGSO(int DIEUCHINHTRON GSO(int k); void void HAMMUCTIEU(); BUOCLAP(); / CAC HAM VA CAC THU TUC / 133 ận án Tiến sĩ Kỹ thuật Lu 2013 /* -Ten Ham: KHOITAOMANG Mo ta: KHOI TAO MA TRAN TRONG SO LOP AN, VOI CACS GIA TRI NGAU NHIEN BI CHAN KHOI TAO MA TRAN TRONG SO LOP RA, VOI CACS GIA TRI NGAU NHIEN BI CHAN Cac dau vao: KHONG CO Gia tri tra ve: */ int KHOITAOMANG() KHOITAOMANG() { int i,j; int ch; int num; NBS=0; HTHL=2; RESET=0; RES=1; MHL=0; srand(time(0)); for(i=0;i