THUẬT TOÁN VƯỢT KHE TRONG QUÁ TRÌNH LUYỆN MẠNG NƠRON

144 235 0
THUẬT TOÁN VƯỢT KHE TRONG QUÁ TRÌNH LUYỆN MẠNG NƠRON

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Luận án Tiến sĩ Kỹ thuật 2013 MỤC LỤC MỞ ĐẦU CHƢƠNG : 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 trình học mạng nơron 12 1.1.1 Mạng nơron phƣơng pháp học 12 1.1.2 Đánh giá nhân tố trình học 13 1.1.2.1 Khởi tạo trọng số 13 1.1.2.2 Bước học α 13 1.1.2.3 Hằng số quán tính 14 1.2 Nhận dạng hệ thống sử dụng mạng nơron 14 1.2.1 Nhận dạng hệ thống 14 1.2.2 Nhận dạng hệ thống sử dụng mạng nơron 16 1.3 Mặt lỗi đặc biệt luyện mạng nơron 19 1.3.1 Mặt lỗi đặc biệt luyện mạng nơron 19 1.3.2 Ví dụ toán dẫn đến mặt lỗi đặc biệt 20 1.4 Mô trình luyện mạng nơron sử dụng Toolbox Matlab 22 1.4.1 Ví dụ với mạng nơron có mặt lỗi bình thƣờng 22 1.4.2 Ví dụ với mạng nơron có mặt lỗi đặc biệt 25 1.5 Tổng quan tình hình nghiên cứu nƣớc 26 1.5.1 Điểm qua số công trình nghiên cứu mạng nơron ứng dụng 26 1.5.2 Các công trình nƣớc nghiên cứu thuật toán học mạng nơron 31 1.5.3 Bàn luận 37 1.6 Kết luận chƣơng 38 CHƢƠNG 2: THUẬT TOÁN VƢỢT KHE TRONG QUÁ TRÌNH LUYỆN MẠNG NƠRON 40 2.1 Thuật toán vƣợt khe 40 2.1.1 Đặt vấn đề 40 2.1.2 Tính hội tụ điều kiện tối ƣu 41 2.1.3 Thuật toán vƣợt khe 46 2.1.3.1 Giới thiệu 47 2.1.3.2 Nguyên lý vượt khe 48 Luận án Tiến sĩ Kỹ thuật 2013 2.1.3.3 Xác định bước vượt khe 51 2.1.3.4 Ví dụ 54 2.2 Ứng dụng thuật toán vƣợt khe trình luyện mạng nơron 56 2.3 Minh họa thuật toán 58 2.3.1 Công tác chuẩn bị 58 2.3.1.1 Điều chỉnh trọng số lớp 59 2.3.1.2 Điều chỉnh trọng số lớp ẩn 60 2.3.2 Cấu trúc mạng 62 2.3.3 Các thƣ viện hàm mạng 64 2.3.3.1 Thư viện 64 2.3.3.2 Hàm khởi tạo trọng số 66 2.3.3.3 Thủ tục tính bước học vượt khe 67 2.3.3.4 Thủ tục huấn luyện mạng, HUANLUYENVUOTKHE() 69 2.3.4 Kết chạy chƣơng trình so sánh 69 2.3.4.1 Chạy chương trình 69 2.3.4.2 So sánh phương án 73 2.4 Kết luận chƣơng 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 ĐỂ CẢI TIẾN QUÁ TRÌNH HỌC CỦA MẠNG NƠRON MLP CÓ MẶT LỖI ĐẶC BIỆT 77 3.1 Đặt vấn đề 77 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 nguyên thủy với khởi tạo trọng số ban đầu khác 77 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 80 3.2 Đề xuất mô hình kết hợp giải thuật di truyền thuật toán vƣợt khe trình luyện mạng nơron 83 3.2.1 Đặt vấn đề 83 3.2.2 Thuật toán 87 3.3 Áp dụng mô hình kết hợp giải thuật di truyền thuật toán vƣợt khe trình luyện mạng nơron vào toán nhận dạng 91 3.4 Kết luận chƣơng 94 KẾT LUẬN CHUNG VÀ ĐỀ XUẤT HƢỚNG NGHIÊN CỨU 95 Luận án Tiến sĩ Kỹ thuật 2013 CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ 99 TÀI LIỆU THAM KHẢO 100 PHỤ LỤC 106 Luận án Tiến sĩ Kỹ thuật 2013 DANH MỤC BẢNG BIỂU, HÌNH VẼ Bảng 2.1 Các hàm kích hoạt (transfer function) tiêu biểu 64 Bảng 2.2: Tập hồ sơ mẫu đầu vào {0 9} 74 Bảng 2.3: Tập hồ sơ mẫu đầu vào {! @ # $ % ^ & * ( )} 75 Bảng 3.1 Kết nhận dạng hệ thống phi tuyến tĩnh 79 Bảng 3.2: Kết nhận dạng hệ thống động học phi tuyến 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 Bảng 3.4 So sánh GA BP với sai số 0.1 85 Bảng 3.5: So sánh GA BP với sai số 0.001 86 Bảng 3.6: So sánh GA BP với sai số khác 86 Hình 1.1 Điều khiển theo nguyên tắc phản hồi đầu 15 Hình 1.2: Mô hình nhận dạng 18 Hình 1.3 Mặt sai số dạng lòng khe 19 Hình 1.4: Kỷ nguyên luyện mạng ví dụ 24 Hình 1.5: Cấu trúc mạng nơron cho nhận dạng chữ 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 Hình 2.1: Quỹ đạo dao động với sai số dạng lòng khe 42 Hình 2.2: Hàm khe 48 Hình 2.3: Xác định bước vượt khe  v 50 Hình 2.4: Lưu đồ thuật toán tính bước vượt khe 54 Hình 2.5: Bước lặp k = 55 Hình 2.6:Các đường đồng mức dạng khe 57 Hình 2.7: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 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 Hình a: So sánh hoạt động mạng MLP túy MLP cải tiến 97 Luận án Tiến sĩ Kỹ thuật 2013 CÁC TỪ VIẾ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ỏ 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 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 Luận án Tiến sĩ Kỹ thuật 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 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 Luận án Tiến sĩ Kỹ thuật 2013 MỞ ĐẦ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 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 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 - 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 đƣ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 quát hoá cho đầu vào không đƣợc huấn luyện, ví dụ dựa vào cách học mạng tiên đoá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 Toolbox, luyện mạng để nhận dạng đƣợc số đối tƣợng tuyến tính phi tuyến Bộ công cụ cung cấp cho số Luận án Tiến sĩ Kỹ thuật 2013 phƣơng pháp luyện mạng nơron, kỹ thuật lan truyền ngƣợ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 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 toà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ị toà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ý tậ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 thuật toá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ứu thuật toán tìm điểm tối ƣu toàn cục trình luyện mạng nơron thuật toán vƣợt khe có kết hợp với giải thuật di truyền Mục tiêu - Đề xuất mô hình kết hợp thuật toán vƣợt khe giải thuật di truyền để huấn luyện mạng nơron Luận án Tiến sĩ Kỹ thuật 2013 - Xây dựng công cụ phần mềm để luyện mạng nơron cho số toán có mặt lỗi đặc biệt, làm sở bổ sung vào Neural Toolbox Matlab Nội dung - Nghiên cứu lí thuyết mạng nơron trình học mạng nơron - Nghiên cứu lí thuyết thuật toán vƣợt khe xây dựng thuật toán tính bƣớc học vƣợt khe - Xây dựng thuật toán huấn luyện mạng nơron kỹ thuật lan truyền ngƣợc 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 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 C++ - Viết cài đặt chƣơng trình huấn luyện mạng nơron Matlab Phƣơng pháp nghiên cứu Sử dụng nghiên cứu lý thuyế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, thuật toá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 trình tìm nghiệm tối ƣu toàn cục Luận án Tiến sĩ Kỹ thuật 2013 - Đề xuất mô hình kết hợp thuật toá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ở toá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ị toàn cục thuật toán tối ƣu vƣợt khe hàm phi tuyến có dạng khe * 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 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 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, toá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 nƣớc, từ làm xuất phát điểm cho nội dung nghiên cứu chƣơng 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 toán nhận dạng đối tƣợng phi tuyến mà sinh 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 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 Luận án Tiến sĩ Kỹ thuật 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 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 KICH HOAT NO RON #define DSIGM(y) (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 18 // SO LUONG MAU HUAN LUYEN MANG #define STEPinit 0.5 // GIA TRI KHOI TAO BUOC HOC, CO THE DUNG CHO NHIEU TRUONG HOP #define DCBH 0.0001 // DIEU CHINH BUOC HOC #define MSDCBH // MAU SO DIEU CHINH BUOC HOC #define TSDCBH // TU SO DIEU CHINH BUOC HOC #define BLTD 30000 // BUOC LAP TOI DA #define FD 1e-1 // 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 * -* *=======================================================================* */ #include "dinhnghia.h" //TAP MAU HUAN LUYEN DAU VAO int TAPHUANLUYEN[SLMHL][SLNRLV] = { { 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,1,0,0,0,0,1, 1,1,1,1,1,1,1, 0,0,0,0,0,0,1, /* */ 130 Luận án Tiến sĩ Kỹ thuật 2013 0,0,0,0,0,0,0 }, { 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,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,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,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,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,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, /* */ 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, /* */ 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, /* */ 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,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 }, 131 2013 Luận án Tiến sĩ Kỹ thuật { 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, /* */ 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,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, /* */ 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,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, /* */ 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 } }; //DAU RA MONG MUON TUONG UNG int DRMM[SLMHL][SLNRLR] = { { 1,0,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,0,1,0,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,0,1,0,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,0,1 { 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,0,0,1,0,0 { 0,0,0,1,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 { 1,0,0,0,0,0,0,0,0,0 { 0,0,0,0,0,0,0,0,0,1 }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* }, /* } };/* 9 */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ backprop5.c /* *=======================================================================* 132 Luận án Tiến sĩ Kỹ thuật 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" #include "dinhnghia.h" /************************** DINH NGHIA CAC BIEN TOAN CUC ****************************/ float MTTSLA[SLNRLV][SLNRLA]; //MA TRAN TRONG SO LOP AN float 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];//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 z[SLNRLR]; //VEC TO DAU RA LOP RA float HW1[SLNRLV][SLNRLA]; //KHONG SU DUNG float HW2[SLNRLV][SLNRLA]; //KHONG SU DUNG float OW1[SLNRLA][SLNRLR]; //KHONG SU DUNG float OW2[SLNRLA][SLNRLR]; //KHONG SU DUNG float SSLA[SLNRLA]; //SAI SO LOP AN float SSLR[SLNRLR]; //SAI SO LOP RA int PATR[SLMHL]; float 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; //TOAN HANG QUAN TINH int 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 void void KHOITAOMANG(); QUATRINHHUANLUYEN(); DAPUNGDAURA(int afer[]); GIATRIHAMMUCTIEU(int x[],float y[],int SIZE); DIEUCHINHTRONGSO(int k); HAMMUCTIEU(); BUOCLAP(); /***************************** CAC HAM VA CAC THU TUC ******************/ 133 Luận án Tiến sĩ Kỹ thuật 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() { int i,j; int ch; int num; NBS=0; HTHL=2; RESET=0; RES=1; MHL=0; srand(time(0)); for(i=0;i

Ngày đăng: 21/11/2016, 02:39

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan