Đề 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 và xây dựng bộ công cụ phần mềm để luyện mạng nơron cho một số bài toán có mặt lỗi đặc biệt

133 274 0
Đề 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 và xây dựng bộ công cụ phần mềm để luyện mạng nơron cho một số bài toán có mặt lỗi đặc biệt

Đ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 CHƢƠNG MẠNG NƠRON VÀ Q TRÌNH HỌC CỦA MẠNG NƠRON Tóm tắt: Trong nhiều lĩnh vực điều khiển, tự động hóa, cơng nghệ thơng tin…, vấn đề nhận dạng đối tượng vấn đề mấu chốt định thành cơng tốn Mạng nơron có khả xấp xỉ hàm phi tuyến cách đầy đủ xác, sử dụng tốt cho mơ hình động học phi tuyến Tuy nhiên q trình học mạng nơron, số nhân tố có ảnh hưởng mạnh mẽ đến độ hội tụ tốn, đặc biệt tốn có dạng lịng khe Chương đưa mặt lỗi đặc biệt luyện mạng nơron có đánh giá ảnh hưởng nhân tố trình luyện mạng đến kết cuối toán nhận dạng thơng qua số ví dụ đặc trưng Từ làm xuất phát điểm cho hướng luận án 1.1 Giới thiệu mạng nơron trình học mạng nơron 1.1.1 Mạng nơron phƣơng pháp học Mạng nơron nhân tạo, Artificial Neural Network (ANN) gọi tắt mạng nơron, neural network, mơ hình xử lý thơng tin theo cách thức xử lý thông tin hệ nơron sinh học Nó đƣợc tạo lên từ số lƣợng lớn phần tử (gọi phần tử xử lý hay nơron) kết nối với thông qua liên kết (gọi trọng số liên kết) làm việc nhƣ thể thống để giải vấn đề cụ thể Một mạng nơron nhân tạo đƣợc cấu hình cho ứng dụng cụ thể (nhận dạng mẫu, phân loại liệu, ) thơng qua q trình học từ tập mẫu huấn luyện Về chất học trình hiệu chỉnh trọng số liên kết nơron cho giá trị hàm lỗi nhỏ Có ba phƣơng pháp học phổ biến học có giám sát (supervised learning), học không giám sát (unsupervised learning) học tăng cƣờng (Reinforcement learning) Học có giám sát phƣơng pháp học đƣợc sử dụng phổ biến tiêu biểu kỹ thuật lan truyền ngƣợc 12 Luận án Tiến sĩ Kỹ thuật 2013 Những kiến thức sở mạng nơron, trình học mạng nơron, kỹ thuật lan truyền ngƣợc đƣợc tác giả giới thiệu phụ lục Ở đây, tác giả xin đƣa số đánh giá nhân tố trình học mạng nơron 1.1.2 Đánh giá nhân tố trình học 1.1.2.1 Khởi tạo trọng số Kỹ thuật lan truyền ngƣợc hội tụ đến giải pháp mà tối thiểu hố đƣợc sai số trung bình bình phƣơng cách thức hiệu chỉnh trọng số hệ số bias thuật toán ngƣợc hƣớng với vectơ Gradient hàm sai số trung bình bình phƣơng trọng số Tuy nhiên, mạng MLP hàm sai số trung bình bình phƣơng thƣờng phức tạp có nhiều cực trị cục bộ, phép lặp huấn luyện mạng đạt đƣợc đến cực trị cục hàm sai số trung bình bình phƣơng mà khơng đạt đến đƣợc cực trị tổng thể Các giá trị khởi tạo trọng số ảnh hƣởng mạnh đến lời giải cuối Các trọng số thƣờng đƣợc khởi tạo số ngẫu nhiên nhỏ Việc khởi tạo tất trọng số làm cho mạng học không tốt Nếu trọng số đƣợc khởi tạo với giá trị lớn từ đầu tổng tín hiệu vào có giá trị tuyệt đối lớn làm cho hàm sigmoid đạt giá trị Điều làm cho hệ thống bị tắc cực tiểu cục vùng phẳng gần điểm xuất phát Giá trị khởi tạo ban đầu trọng số lớp thứ l mạng đƣợc chọn ngẫu nhiên nhỏ khoảng [-1/n, 1/n], n số trọng số nối tới lớp l Do chất giải thuật học lan truyền ngƣợc sai số phƣơng pháp giảm độ lệch gradient nên việc khởi tạo giá trị ban đầu trọng số giá trị nhỏ ngẫu nhiên làm cho mạng hội tụ giá trị cực tiểu khác Nếu gặp may mạng hội tụ đƣợc giá trị cực tiểu tổng thể 1.1.2.2 Bước học α Một nhân tố khác ảnh hƣởng đến hiệu lực độ hội tụ giải thuật lan truyền ngƣợc sai số bƣớc học α Khơng có giá trị xác định cho toán khác Với toán, bƣớc học thƣờng đƣợc lựa chọn thực nghiệm theo phƣơng pháp thử sai Giá trị α lớn làm tăng tốc trình hội tụ 13 Luận án Tiến sĩ Kỹ thuật 2013 Điều lúc có lợi từ đầu ta cho mạng nhanh hội tụ mạng hội tụ sớm cực tiểu địa phƣơng gần mà không đạt đƣợc độ sai số nhƣ mong muốn Tuy nhiên, đặt giá trị bƣớc học nhỏ mạng hội tụ chậm, chí mạng vƣợt đƣợc qua cực tiểu cục dẫn đến học mà không hội tụ Do vậy, việc chọn số học ban đầu quan trọng Với tốn ta lại có phƣơng án chọn hệ số học khác Nhƣ vậy, trình huấn luyện theo kỹ thuật lan truyền ngƣợc hội tụ, ta chƣa thể khẳng định đƣợc hội tụ đến phƣơng án tối ƣu Ta cần phải thử với số điều kiện ban đầu để đảm bảo thu đƣợc phƣơng án tối ƣu 1.1.2.3 Hằng số quán tính Tốc độ học giải thuật làm truyền ngƣợc sai số dao động số học lớn Một phƣơng pháp thƣờng dùng cho phép sử dụng số học lớn thêm thành phần quán tính vào phƣơng trình hiệu chỉnh trọng số Ngồi ra, số quán tính ngăn cản thay đổi đột ngột trọng số theo hƣớng khác với hƣớng mà lời giải di chuyển đến Mặt trái việc sử dụng thành phần quán tính phải tăng đáng kể nhớ máy tính gần nhƣ gấp đôi để lƣu trữ giá trị hiệu chỉnh chu kỳ trƣớc 1.2 Nhận dạng hệ thống sử dụng mạng nơron 1.2.1 Nhận dạng hệ thống 1.2.1.1 Tại phải nhận dạng Bài toán nhận dạng vấn đề đặt lên hàng đầu nhiều lĩnh vực khác nhƣ: điện tử y sinh, điện tử viễn thơng, hệ thống điện, tự động hóa điều khiển… Ví dụ nhƣ: nhận dạng vân tay, nhận dạng ký tự, ảnh, tiếng nói, phát chẩn đốn bệnh Xét lĩnh vực tự động hóa điều khiển, nhận dạng hệ thống cơng việc phải thực hiện, định chất lƣợng hiệu công việc điều khiển hệ thống Tuy đời muộn nhƣng nhận dạng phát triển nhanh có thành tựu vƣợt bậc Nguyên nhân phát triển vƣợt bậc phần từ yêu cầu thực tế, song có lẽ phần nhờ có 14 2013 Luận án Tiến sĩ Kỹ thuật hỗ trợ tích cực ngành khoa học có liên quan nhƣ tin học, cơng cụ tính tốn mềm nói chung mạng nơron nói riêng… Ví dụ 1: Thiết kế rơ bốt giúp ngƣời khiếm thị học tập sinh hoạt Hiện nay, robot đƣợc coi nhƣ tâm điểm cách mạng lớn sau Internet Để thiết kế chế tạo đƣợc rơ bốt, ta cần có tri thức toán học, học, vật lý, điện tử, lý thuyết điều khiển, khoa học tính tốn nhiều tri thức khác Tại Việt Nam, nghiên cứu phát triển rô bốt có bƣớc tiến đáng kể thời gian vừa qua Nhiều đơn vị toàn quốc thực nghiên cứu nghiên cứu ứng dụng rơ bốt nhƣ Trung tâm Tự động hố, Đại học Bách Khoa Hà Nội; Viện Điện tử, Tin học, Tự động hố thuộc Bộ Cơng thƣơng; Đại học Bách khoa TP.HCM; Viện Khoa học Công nghệ quân sự, Học viện Kỹ thuật Quân sự, Viện Cơ học; Viện Công nghệ thông tin thuộc Viện KHCNVN Các nghiên cứu tập trung nhiều vào vấn đề xử lý ngôn ngữ tự nhiên, nhận dạng tổng hợp tiếng nói, chữ viết tay đặc biệt tiếng Việt Ví dụ 2: Xét tốn điều khiển theo ngun tắc phản hồi nhƣ hình 1.1: w(t) e(t) Bộ điều khiển - u(t) Đối tƣợng điều khiển y(t) Hình 1.1: Điều khiển theo nguyên tắc phản hồi đầu Muốn thiết kế đƣợc điều khiển hệ kín cho đối tƣợng có đƣợc chất lƣợng nhƣ mong muốn phải hiểu biết đối tƣợng, tức cần phải có mơ hình tốn học mơ tả đối tƣợng Không thể điều khiển đối tƣợng không hiểu biết hiểu sai lệch Kết thiết kế điều khiển phụ thuộc nhiều vào mơ hình mơ tả đối tƣợng Mơ hình xác, chất lƣợng việc điều khiển cao Nhƣ vậy, nhận dạng cần thiết cho việc định tự động hỗ trợ ngƣời định Việc xây dựng mơ hình cho đối tƣợng cần nhận dạng đƣợc gọi mơ hình hóa Ngƣời ta thƣờng phân chia phƣơng pháp mơ hình hóa làm hai loại: 15 Luận án Tiến sĩ Kỹ thuật 2013 - Phƣơng pháp lý thuyết - Phƣơng pháp thực nghiệm Phƣơng pháp lý thuyết phƣơng pháp thiết lập mơ hình dựa định luật có sẵn quan hệ vật lý bên quan hệ giao tiếp với mơi trƣờng bên ngồi đối tƣợng Các quan hệ đƣợc mơ tả theo quy luật lý – hóa, quy luật cân bằng, dƣới dạng phƣơng trình toán học Trong trƣờng hợp mà hiểu biết quy luật giao tiếp bên đối tƣợng với mơi trƣờng bên ngồi khơng đƣợc đầy đủ để xây dựng đƣợc mơ hình hồn chỉnh, nhƣng từ cho biết thơng tin ban đầu dạng mơ hình ngƣời ta phải áp dụng phƣơng pháp thực nghiệm để hồn thiện nốt việc xây dựng mơ hình đối tƣợng sở quan sát tín hiệu vào u(t) y(t) đối tƣợng cho mơ hình thu đƣợc phƣơng pháp thực nghiệm thỏa mãn yêu cầu phƣơng pháp lý thuyết đề Phƣơng pháp thực nghiệm đƣợc gọi nhận dạng hệ thống 1.2.2 Nhận dạng hệ thống sử dụng mạng nơron 1.2.2.1 Khả sử dụng mạng nơron nhận dạng Xét trƣờng hợp đối tƣợng phi tuyến có độ phức tạp cao, sử dụng phƣơng pháp giải tích thơng thƣờng để nhận dạng khó khăn, chí không thực đƣợc hiểu biết nghèo nàn đối tƣợng Vì nhà khoa học đƣa ý tƣởng sử dụng cơng cụ tính toán mềm nhƣ hệ mờ, mạng nơron, đại số gia tử để xấp xỉ - nhận dạng đối tƣợng Các tài liệu [15], [23], [24] rằng, mạng nơron công cụ hữu hiệu để nhận dạng mơ hình đối tƣợng Bằng phƣơng pháp ta khơng biết đƣợc mơ hình tốn thực đối tƣợng nhƣng hồn tồn dùng kết xấp xỉ để thay đối tƣợng Vì tính phi tuyến mạng nơron (hàm kích hoạt phi tuyến), chúng đƣợc dùng để mô tả hệ thống phi tuyến phức tạp Cybenko chứng minh hàm liên tục xấp xỉ tuỳ ý mạng truyền thẳng với lớp ẩn 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ả khái quát 16 Luận án Tiến sĩ Kỹ thuật 2013 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 đốn đầu từ đầu vào trƣớ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 đƣợc sử dụng thuật 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 Nền tảng cho tính xấp xỉ hàm mạng nơron nhiều lớp định lý Kolmgorov định lý Stone – Weierstrass Các mạng nơron nhân tạo đƣa lợi qua việc học sử dụng phân loại xử lý song song, điều phù hợp với việc dùng nhận dạng 1.2.2.2 Mơ hình nhận dạng hệ thống sử dụng mạng nơron Khi xét tốn điều khiển, trƣớc tiên ta cần phải có hiểu biết đối tƣợng: số đầu vào, số đầu ra, đại lƣợng vật lý vào ra, dải giá trị chúng, quy luật thay đổi đại lƣợng hệ hay mơ hình tốn học nó,… Tuy nhiên khơng phải đối tƣợng hay hệ cung cấp đƣợc đầy đủ thông tin nhƣ nhƣ xây dựng đƣợc mơ hình thực từ thông tin Việc nhận dạng việc quan trọng để việc điều khiển đạt chất lƣợng mong muốn Khi thông số đối tƣợng cần thiết để việc điều khiển đạt chất lƣợng mong muốn Khi thông số đối tƣợng tự thay đổi trình làm việc (đối tƣợng phi tuyến) có tính động học việc nhận dạng theo chúng phức tạp nhiều so với đối tƣợng có thơng số bất biến Nhận dạng thƣờng chia làm: nhận dạng mơ hình nhận dạng tham số Nhận dạng mơ hình q trình xác định mơ hình đối tƣợng thơng số sở đầu vào đầu đối tƣợng Mô hình thu đƣợc sau nhận dạng gọi tốt thể đƣợc đối tƣợng Nhƣ sử dụng mơ hình thay cho đối tƣợng để dự báo, kiểm tra điều khiển Mạng nơron đƣợc luyện để mơ hình hóa quan hệ vào đối tƣợng Nhƣ quy trình nhận dạng mơ hình có chất thuật tốn luyện mạng 17 2013 Luận án Tiến sĩ Kỹ thuật Cấu trúc mạng nơron giải tốn nhận dạng mơ hình đa dạng, tùy thuộc vào toán cụ thể Nhận dạng tham số huấn luyện mạng Mơ hình mạng nơron đƣợc luyện để mô hành vi đối tƣợng giống nhƣ mơ hình truyền thống đƣợc biểu diễn Hình 1.2 Đối tƣợng y u e Mạng nơron yˆ Hình 1.2: Mơ hình nhận dạng Tín hiệu sai số e  y  yˆ sở cho trình luyện mạng Mạng nơron mạng nhiều lớp dạng khác sử dụng nhiều thuật luyện mạng khác 1.2.2.3 Nhận dạng hệ thống sử dụng mạng nơron Nhƣ nhận dạng hệ thống cần hai giai đoạn lựa chọn mơ hình tối ƣu tham số Đối với mạng nơron dựa vào nhận dạng lựa chọn số nút ẩn, số lớp ẩn (cấu trúc mạng) tƣơng đƣơng với mơ hình lựa chọn Mạng đƣợc huấn luyện theo kiểu giám sát với kỹ thuật lan truyền ngƣợc, dựa vào luật học sai số hiệu chỉnh Tín hiệu sai số đƣợc lan truyền ngƣợc qua mạng Kỹ thuật lan truyền ngƣợc sử dụng phƣơng pháp giảm gradient để xác định trọng mạng tƣơng đƣơng với tối ƣu tham số Mạng nơron đƣợc huấn luyện để xấp xỉ mối quan hệ biến Mạng nơron đƣợc huấn luyện để tối thiểu hàm sai số Mạng đƣợc huấn luyện để tối thiểu sai số bình phƣơng đầu mạng đầu vào hệ thống, xác định hàm truyền ngƣợc Trong kiểu nhận dạng đầu mạng hội tụ đầu vào hệ sau huấn luyện, mạng đặc trƣng cho hàm truyền ngƣợc hệ Phƣơng pháp nhận dạng khác cần phải hƣớng đầu hệ thống tới đầu mạng Trong kiểu mạng đặc trƣng cho hàm truyền thẳng hệ thống 18 Luận án Tiến sĩ Kỹ thuật 2013 Giả sử hàm phi tuyến để mô tả hệ thuộc lớp hàm biết phạm vi quan tâm cấu trúc mơ hình nhận dạng phải phù hợp với hệ thống Với giả thiết ma trận trọng mạng nơron mơ hình nhận dạng tồn tại, điều kiện ban đầu hệ thống mơ hình có lƣợng với lƣợng vào xác định Do trình nhận dạng thực chất điều chỉnh tham số mạng nơron dựa vào sai lệch giá trị đầu hệ thống mô hình 1.3 Mặt lỗi đặc biệt luyện mạng nơron 1.3.1 Mặt lỗi đặc biệt luyện mạng nơron Trong q trình nỗ lực khỏi cực tiểu yếu, cực tiểu cục mong muốn giảm chi phí thời gian thực máy tính tìm kiếm nghiệm tối ƣu vấn đề nghiên cứu đặc điểm mặt lỗi thƣờng đƣợc chọn làm xuất phát điểm cho việc cải tiến hay đề xuất thuật học Khi nói mạng nơron huấn luyện chất lƣợng mạng đƣợc nhắc đến nhiều (loại học có giám sát) Điều liên quan đến hàm chất lƣợng mạng dẫn đến khái niệm mặt chất lƣợng mạng Đơi cịn gọi mặt chất lƣợng thuật ngữ khác: mặt sai số, mặt thực thi, mặt lỗi Hình 1.3 mơ tả mặt sai số, có vài điều đặc biệt cần ý mặt sai số độ dốc biến đổi cách mạnh mẽ khơng gian tham số Vì lý đó, khó lựa chọn tốc độ học phù hợp cho thuật toán giảm dốc Trong vài vùng mặt sai số phẳng, cho phép tốc độ học lớn, vùng khác độ dốc lớn, yêu cầu tốc độ học nhỏ Có thể ghi nhận Hình 1.3: Mặt sai số dạng lịng khe khơng đáng ngạc nhiên vùng phẳng mặt sai số lý dùng hàm truyền sigmoid cho mạng Hàm sigmoid hay đƣợc sử dụng mạng nơron đặc điểm 19 2013 Luận án Tiến sĩ Kỹ thuật (bị chặn, đơn điệu tăng, khả vi) thích nghi với kỹ thuật tối ƣu kinh điển, hàm có đặc điểm phẳng đầu vào lớn 1.3.2 Ví dụ bi toỏn dn n mt li c bit Đặc điểm khe toán tối -u hoá ngành nhiệt[28] Do đặc thù đối t-ợng nhiệt, toán tối -u hoá ngành nhiệt th-ờng có hàm mục tiêu phi tuyến, không liên tục, không khả vi, có tính chất khe rõ rệt Sau ta xét cụ thể tính chất khe độ khe hàm cực tiểu hoá: Giả sử J(x) có đạo hàm bậc x ta có: J ( x)  J ( x) x1x1 x1xn   J ( x)   J ( x)      xi x j  nn (1.1)  J ( x)  J ( x) xn x1 xn xn Ma trận gọi Hessian: H(x) 2J(x) Giả sử H(x) xác định d-ơng có giá trị riêng xếp theo thứ tự giảm dần: 1(x)  2(x)  n(x) > 1(x) >> n(x) Nếu xảy ra: (1.2) J(x) thay đổi chậm theo h-ớng định thay đổi nhanh theo h-ớng vuông góc với Khi mặt mức hàm số bị kéo dài theo h-ớng thay đổi chậm vẽ mặt cắt hai chiều hình ảnh khe suối hẹp nằm dÃy núi song song Từ mà có tên hàm khe hàm có tính khe rõ rệt Mức độ kéo dài mặt mức định độ khe hàm mục tiêu Để rõ độ khe, tr-ớc hÕt ta xÐt hµm bËc 2: + b, x + c, x  En J(x) = 0,5x, A x Trong đó: ma trận xác định d-ơng, b vÐc t¬ h»ng, c – h»ng sè A Theo (1.1), Hessian (1.3) H(x) = (1.3) A Giả sử A có giá trị riêng n > Độ -ớc định hàm bậc đ-ợc xác định là: ( A ) = / n 20 2013 Luận án Tiến sĩ Kỹ thuật Trªn sở ta có định nghĩa độ khe hµm bËc lµ:  ( A)   max  ( A)      ( A)   ( A) n (1.4) Trong ( A ) giá trị riêng phụ thuộc vào ma trận A Giá trị đô khe ( A ) lớn (độ -ớc định toán xấu) mặt mức hàm mục tiêu bị kéo dài Đối với hàm J(x) phi bậc 2, độ -ớc định mang ý nghĩa cục bé, ®èi víi x*D: 2  ( x * )  lim  sup x  x * / inf x  x *    0 xD xD (1.5) Trong D miền hữu hạn Rõ ràng (x*) Theo (1.5) độ -ớc định đặc tr-ng cho kéo dài mặt mức hàm J(x) lân cận x* Nếu (x*) giảm dần tới 1, mặt mức tiến gần mặt cầu Nếu (x*) tăng, mặt mức bị kÐo dµi, hµm J(x) cµng thĨ hiƯn râ tÝnh khe, trình cực tiểu hoá J(x) gặp khó khăn, độ -ớc định toán xấu Trong thực tế tính khe hàm mục tiêu thể đa dạng Độ khe đặc tr-ng độ dốc vách khe, độ rộng độ dốc lòng khe Lòng khe tạo tập điểm miền khe, mà hàm mục tiêu giảm chậm theo mäi h-íng Nãi chung khe cđa hµm cã thĨ thẳng uốn cong kéo dài Khe dài, cong, lòng khe hàm mục tiêu không khả vi liên tục (lòng khe gẫy) toán tối -u hoá khó giải Tính chất khe toán thực tế mang ý nghĩa toàn côc Sử dụng mạng nơron để nhận dạng đối tượng Với hệ thống có độ phi tuyến cao làm để nhận dạng đối tƣợng câu hỏi đặt với Vì tính phi tuyến mạng nơron (hàm kích hoạt phi tuyến), chúng đƣợc dùng để mô tả hệ thống phi tuyến phức tạp Cybenko chứng minh hàm liên tục xấp xỉ tuỳ ý mạng truyền thẳng với lớp ẩn 21 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: 15/05/2016, 14:03

Từ khóa liên quan

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

Tài liệu liên quan