Tìm hiểu kỹ thuật mạng nơ ron nhân tạo. đi sâu mạng back propagation of error. cài đặt minh họa

45 1.3K 4
Tìm hiểu kỹ thuật mạng nơ ron nhân tạo. đi sâu mạng back propagation of error. cài đặt minh họa

Đ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

Tìm hiểu kỹ thuật mạng nơ ron nhân tạo. đi sâu mạng back propagation of error. cài đặt minh họa

LỜI MỞ ĐẦU Từ khi ra đời, máy tính đã nhanh chóng phát triển và đóng một vai trò rất quan trọng trong nghiên cứu khoa học kỹ thuật cũng như trong đời sống. Nhưng một máy tính dù có mạnh đến đâu chăng nữa, cũng chỉ có thể làm việc theo một chương trình đã được hoạch định sẵn bởi lập trình viên. Nó vẫn không có khả năng liên tưởng, kết nối sự việc này với sự việc khác, và quan trọng hơn hết là khả năng sáng tạo như con người. Mạng nơron nhân tạo (Artificial neural networks ) ra đời xuất phát từ ý tưởng mô phỏng hoạt động của bộ não con người. Mạng noron nhân tạo là sự tái tạo bằng kỹ thuật những chức năng của hệ thần kinh con người với vô số các nơron được liên kết truyền thông với nhau qua mạng. Giống như con người, ANN được học bởi kinh nghiệm, lưu những kinh nghiệm đó và sử dụng trong những tình huống phù hợp. Mạng nơron trong một vài năm trở lại đây đã được nhiều người quan tâm và đã áp dụng thành công trong nhiều lĩnh vực khác nhau, như tài chính, y tế, địa chất và vật lý, dự báo, phân loại... Kết hợp chặt chẽ với logic mờ, mạng nơron nhân tạo đã tạo nên cuộc cách mạng thực sự trong việc thông minh hóa và vạn năng hóa các bộ điều khiển kỹ thuật cao cho cả hiện nay và trong tương lai. Ví dụ như ứng dụng tự động điều khiển hệ thống lái tàu, hệ thống dự báo sự cố,… Mạng nơron dựa trên việc mô phỏng cấp thấp hệ thống nơron sinh học. Trong tương lai với sự phát triển mô phỏng nơron sinh học, chúng ta có thể có loại máy tính thông minh thật sự. Vì lý do đó nhóm 11 chúng em lựa chọn đề tài “Tìm hiểu kỹ thuật mạng nơ ron nhân tạo. Đi sâu mạng Back Propagation of Error. Cài đặt minh họa”. Đây là một đề tài khá lớn và phức tạp, song trong phạm vi một bài báo cáo ngắn, chúng em xin trình bày những kiến thức ở mức cơ bản nhất. Để hoàn thành bài báo cáo này, chúng em đã nhận được sự hướng dẫn nhiệt tình của ThS. Nguyễn Phương Nga – giảng viên bộ môn Tính toán mềm lớp KHMT2-K6 chúng em. Những bài giảng và tài liệu của cô chính là cơ sở để chúng em có thể hoàn thành tốt báo cáo của mình. Chúng em xin chân thành cảm ơn cô! Nhóm thực hiện Nhóm 11 – LTKHMT2K6 1 Giảng viên: Nguyễn Phương Nga MỤC LỤC PHẦN 1: GIỚI THIỆU CHUNG VỀ TÍNH TOÁN MỀM...................................4 Trong thực tế cuộc sống, các bài toán liên quan đến hoạt động nhận thức, trí tuệ của con người đều hàm chứa những đại lượng, thông tin mà bản chất là không chính xác, không chắc chắn, không đầy đủ. Ví dụ: sẽ chẳng bao giờ có các thông tin, dữ liệu cũng như các mô hình toán đầy đủ và chính xác cho các bài toán dự báo thời tiết. Nhìn chung con người luôn ở trong bối cảnh là không có thông tin đầy đủ và chính xác cho các hoạt động ra quyết định của bản thân mình............4 Trong lĩnh vực khoa học kĩ thuật cũng vậy, các hệ thống phức tạp trên thực tế thường không thể mô tả đầy đủ và chính xác bởi các phương trình toán học truyền thống. Kết quả là những cách tiếp cận kinh điển dựa trên kỹ thuật phân tích và các phương trình toán học nhanh chóng tỏ ra không còn phù hợp. Vì thế, công nghệ tính toán mềm chính là một giải pháp trong lĩnh vực này...................5 1. Một số đặc điểm của công nghệ tính toán mềm:...............................................5 - Tính toán mềm căn cứ trên các đặc điểm, hành vi của con người và tự nhiên để đưa ra các quyết định hợp lý trong điều kiện không chính xác và không chắc chắn để tạo ra các máy thông minh (thế hệ mới của TTNT).................................5 - Các thành phần của tính toán mềm có sự bổ sung, hỗ trợ lẫn nhau tạo hệ thống có tổ chức chặt.......................................................................................................5 - Tính toán mềm là một hướng nghiên cứu mở, bất kỳ một kỹ thuật mới nào được tạo ra từ việc bắt trước trí thông minh của con người đều có thể trở thành một thành phần mới của tính toán mềm................................................................5 - Công nghệ tính toán mềm bao gồm 4 thành phần chính: Fuzzy Computing (FC), Evolutionary Computing (EC), Neural Computing (NC) and Probabilistic Computing (PC - còn đang phát triển)..................................................................5 1981 1960 1943 1965...........................................................................................6 1960 1992 1965 1962 1970..................................................................................6 (ARTIFICIAL NEURAL NETWORK)................................................................7 I. LỊCH SỬ PHÁT TRIỂN CỦA MẠNG NƠRON..............................................7 Ngày nay, không chỉ dừng lại ở mức nghiên cứu lý thuyết, các nghiên cứu ứng dụng mạng nơron để giải quyết các bài toán thực tế được diễn ra ở khắp mọi nơi. Các ứng dụng mạng nơron ra đời ngày càng nhiều và ngày càng hoàn thiện hơn. Nhóm 11 – LTKHMT2K6 2 Giảng viên: Nguyễn Phương Nga Điển hình là các ứng dụng: xử lý ngôn ngữ (Language Processing), nhận dạng kí tự (Character Recognition), nhận dạng tiếng nói (Voice Recognition), nhận dạng mẫu (Pattern Recognition), xử lý tín hiệu (Signal Processing), Lọc dữ liệu (Data Filtering),…...........................................................................................................9 II. MẠNG NƠRON SINH HỌC...........................................................................9 3. Perceptron........................................................................................................15 4. Mạng nhiều tầng truyền thẳng (MLP).............................................................16 Để khắc phục những khó khăn đối với những bài toán có mẫu phân chia không tuyến tính, mạng nơron nhiều lớp được sử dụng. Có rất nhiều công trình nghiên cứu vềmạng MLP và đã cho thấy nhiều ưu điểm của mạng này.........................18 Mạng MLP là một giải pháp hữu hiệu cho việc mô hình hoá, đặc biệt với quá trình phức tạp hoặc cơ chế chưa rõ ràng. Nó không đòi hỏi phải biết trước dạng hoặc tham số. Mạng MLP là cơ sở cho thuật toán lan truyền ngược và khả năng xấp xỉ liên tục......................................................................................................18 6. Xây dựng mạng nơron:...................................................................................18 6.1 Chuẩn bị dữ liệu...........................................................................................18 a. Kích thước mẫu.........................................................................................................18 b. Mẫu con.....................................................................................................................20 c. Sự phân tầng mẫu......................................................................................................20 d. Chọn biến..................................................................................................................21 6.2 Xác định các tham số cho mạng:..................................................................21 a. Chọn hàm truyền............................................................................................21 b. Xác định số nơron tầng ẩn........................................................................................22 c. Khởi tạo trọng số:......................................................................................................23 6.3 Vấn đề lãng quên (catastrophic forgetting)..................................................23 6.4 Vấn đề quá khớp...........................................................................................24 a. Khái niệm quá khớp..................................................................................................24 b. Giải quyết quá khớp..................................................................................................25 7. Huấn luyện mạng nơron:.................................................................................25 Nhóm 11 – LTKHMT2K6 3 Giảng viên: Nguyễn Phương Nga * Các kỹ thuật học:..............................................................................................25 IV. ỨNG DỤNG CỦA MẠNG NORON...........................................................28 PHẦN 3: MẠNG LAN TRUYỀN NGƯỢC SAI SỐ.........................................29 4. Kỹ thuật học có giám sát:................................................................................33 PHẦN 4: BÀI TOÁN MINH HỌA.....................................................................35 Sử dụng kỹ thuật học có giám sát trong mạng nơron:.........................................35 1. Giới thiệu bài toán...........................................................................................35 2. Các bước cài đặt bài toán bằng lệnh trong Matlab:.........................................35 Bước 1: Xây dựng mô hình mạng nơron cho bài toán:.......................................35 3. Cài đặt bài toán sử dụng công cụ nntool trong Matlab:..................................38 KẾT LUẬN.........................................................................................................43 TÀI LIỆU THAM KHẢO...................................................................................44 PHẦN 1: GIỚI THIỆU CHUNG VỀ TÍNH TOÁN MỀM Trong thực tế cuộc sống, các bài toán liên quan đến hoạt động nhận thức, trí tuệ của con người đều hàm chứa những đại lượng, thông tin mà bản chất là không chính xác, không chắc chắn, không đầy đủ. Ví dụ: sẽ chẳng bao giờ có các Nhóm 11 – LTKHMT2K6 4 Giảng viên: Nguyễn Phương Nga thông tin, dữ liệu cũng như các mô hình toán đầy đủ và chính xác cho các bài toán dự báo thời tiết. Nhìn chung con người luôn ở trong bối cảnh là không có thông tin đầy đủ và chính xác cho các hoạt động ra quyết định của bản thân mình. Trong lĩnh vực khoa học kĩ thuật cũng vậy, các hệ thống phức tạp trên thực tế thường không thể mô tả đầy đủ và chính xác bởi các phương trình toán học truyền thống. Kết quả là những cách tiếp cận kinh điển dựa trên kỹ thuật phân tích và các phương trình toán học nhanh chóng tỏ ra không còn phù hợp. Vì thế, công nghệ tính toán mềm chính là một giải pháp trong lĩnh vực này. Công nghệ tính toán mềm (Soft Computing – SC) là một hệ thống có tổ chức chặt chẽ. Hệ thống này là sự hợp nhất của các phương pháp được thiết kế để mô hình hóa nhằm giải quyết các bài toán thực không thể hoặc quá khó để mô hình hóa bằng toán học. Đích của công nghệ tính toán mềm (SC) là phát hiện và tìm lời giải với bài toán khó do sự mơ hồ, không chắc chắn, xấp xỉ và chỉ đúng một phần của dữ liệu, nhằm đạt được sự tương đồng với khả năng trí tuệ của con người về lý giải và học trong môi trường mơ hồ. 1. Một số đặc điểm của công nghệ tính toán mềm: - Tính toán mềm căn cứ trên các đặc điểm, hành vi của con người và tự nhiên để đưa ra các quyết định hợp lý trong điều kiện không chính xác và không chắc chắn để tạo ra các máy thông minh (thế hệ mới của TTNT). - Các thành phần của tính toán mềm có sự bổ sung, hỗ trợ lẫn nhau tạo hệ thống có tổ chức chặt. - Tính toán mềm là một hướng nghiên cứu mở, bất kỳ một kỹ thuật mới nào được tạo ra từ việc bắt trước trí thông minh của con người đều có thể trở thành một thành phần mới của tính toán mềm. - Công nghệ tính toán mềm bao gồm 4 thành phần chính: Fuzzy Computing (FC), Evolutionary Computing (EC), Neural Computing (NC) and Probabilistic Computing (PC - còn đang phát triển). 2. Lịch sử phát triển: SC = Soft Computing EC + Evolutionary Computing Zadeh Nhóm 11 – LTKHMT2K6 Rechenberg 5 NN + FL Neural Netwwork Fuzzy Logic McCulloch Zadeh Giảng viên: Nguyễn Phương Nga 1981 EC Evolutionary Computing Rechenberg 1960 1960 = GP Genetic Programming 1943 + ES + 1965 EP + GA Evolution Strategies Evolutionary Progamming Genetic Algorithms Koza Rechenberg Fogel Holland 1992 1965 1962 1970 3. Ứng dụng của tính toán mềm: Các nghiên cứu gần đây về tính toán mềm là bước phát triển của công nghệ tính toán và mở ra nhiều ứng dụng. Các mô hình tính toán mềm thường dựa vào kinh nghiệm con người, sử dụng dung sai cho phép của sự không chính xác, tính bất định, gần đúng, xấp xỉ để tìm lời giải hiệu quả ở chỗ đơn giản, dễ hiểu, dễ thực hiện, chi phí thấp. Các ý tưởng cơ bản của tính toán mềm đầu tiên xuất hiện theo các bài báo của Zadeh về lý thuyết tập mờ vào 1965, sau đó là bài báo năm 1973 về phân tích hệ thống phức tạp và quá trình ra quyết định, tiếp theo là bài báo năm 1981 về lý thuyết khả năng và phân tích dữ kiện mềm. Về sau, mạng thần kinh và giải thuật di truyền đã góp phần nâng cao hiệu quả của tính toán mềm. Các ứng dụng thành công của tính toán mềm cho thấy tính toán mềm ngày càng phát triển mạnh và đóng vai trò đặc biệt trong các lĩnh vực khác nhau của Khoa học và Kỹ thuật. Tính toán mềm biểu thị một sự chuyển dịch, biến hóa quan trọng trong các hướng tính toán. Sự chuyển dịch này phản ảnh sự kiện trí tuệ con người, không như máy tính, có khả năng đáng kể trong việc lưu trữ và xử lý thông tin không chính xác và bất định, và đây mới là những thông tin thực tế và thường gặp. Nhóm 11 – LTKHMT2K6 6 Giảng viên: Nguyễn Phương Nga PHẦN 2: GIỚI THIỆU VỀ ANN (ARTIFICIAL NEURAL NETWORK) I. LỊCH SỬ PHÁT TRIỂN CỦA MẠNG NƠRON Các nghiên cứu về bộ não con người đã được tiến hành từ hàng nghìn năm nay. Cùng với sự phát triển của khoa học kĩ thuật đặc biệt là những tiến bộ trong ngành điện tử hiện đại, việc con người bắt đầu nghiên cứu các nơron nhân tạo là hoàn toàn tự nhiên. Sự kiện đầu tiên đánh dấu sự ra đời của mạng nơron nhân tạo diễn ra vào năm 1943 khi nhà thần kinh học Warren McCulloch và nhà toán học Walter Pitts viết bài báo mô tả cách thức các nơron hoạt động. Họ cũng đã tiến hành xây dựng một mạng nơron đơn giản bằng các mạch điện. Các nơron của họ được xem như là các thiết bị nhị phân với ngưỡng cố định. Kết quả của các mô hình này là các hàm logic đơn giản chẳng hạn như “ a OR b” hay “a AND b”. Tiếp bước các nghiên cứu này, năm 1949 Donald Hebb cho xuất bản cuốn sách Organization of Behavior. Cuốn sách đã chỉ ra rằng các nơron nhân tạo sẽ trở nên hiệu quả hơn sau mỗi lần chúng được sử dụng. Những tiến bộ của máy tính đầu những năm 1950 giúp cho việc mô hình hóa các nguyên lý của những lý thuyết liên quan tới cách thức con người suy nghĩ đã trở thành hiện thực. Nathanial Rochester sau nhiều năm làm việc tại các phòng thí nghiệm nghiên cứu của IBM đã có những nỗ lực đầu tiên để mô phỏng một mạng nơron. Trong thời kì này tính toán truyền thống đã đạt được những thành công rực rỡ trong khi đó những nghiên cứu về nơron còn ở giai đoạn sơ khai. Mặc dù vậy những người ủng hộ triết lý “thinking machines” (các máy biết suy nghĩ) vẫn tiếp tục bảo vệ cho lập trường của mình. Năm 1956 dự án Dartmouth nghiên cứu về trí tuệ nhân tạo (Artificial Intelligence) đã mở ra thời kỳ phát triển mới cả trong lĩnh vực trí tuệ nhân tạo lẫn mạng nơron. Tác động tích cực của nó là thúc đẩy hơn nữa sự quan tâm của các nhà khoa học về trí tuệ nhân tạo và quá trình xử lý ở mức đơn giản của mạng nơron trong bộ não con người. Những năm tiếp theo của dự án Dartmouth, John von Neumann đã đề xuất việc mô phỏng các nơron đơn giản bằng cách sử dụng rơle điện áp hoặc đèn chân không. Nhà sinh học chuyên nghiên cứu về nơron Frank Rosenblatt cũng bắt đầu nghiên cứu về Perceptron. Sau thời gian nghiên cứu này Perceptron đã Nhóm 11 – LTKHMT2K6 7 Giảng viên: Nguyễn Phương Nga được cài đặt trong phần cứng máy tính và được xem như là mạng nơron lâu đời nhất còn được sử dụng đến ngày nay. Perceptron một tầng rất hữu ích trong việc phân loại một tập các đầu vào có giá trị liên tục vào một trong hai lớp. Perceptron tính tổng có trọng số các đầu vào, rồi trừ tổng này cho một ngưỡng và cho ra một trong hai giá trị mong muốn có thể. Tuy nhiên Perceptron còn rất nhiều hạn chế, những hạn chế này đã được chỉ ra trong cuốn sách về Perceptron của Marvin Minsky và Seymour Papert viết năm 1969. Năm 1959, Bernard Widrow và Marcian Hoff thuộc trường đại học Stanford đã xây dựng mô hình ADALINE (ADAptive LINear Elements) và MADALINE. (Multiple ADAptive LINear Elements). Các mô hình này sử dụng quy tắc học Least-Mean-Squares (LMS: Tối thiểu bình phương trung bình). MADALINE là mạng nơron đầu tiên được áp dụng để giải quyết một bài toán thực tế. Nó là một bộ lọc thích ứng có khả năng loại bỏ tín hiệu dội lại trên đường dây điện thoại. Ngày nay mạng nơron này vẫn được sử dụng trong các ứng dụng thương mại. Năm 1974 Paul Werbos đã phát triển và ứng dụng phương pháp học lan truyền ngược (back-propagation). Tuy nhiên phải mất một vài năm thì phương pháp này mới trở nên phổ biến. Các mạng lan truyền ngược được biết đến nhiều nhất và được áp dụng rộng dãi nhất cho đến ngày nay. Thật không may, những thành công ban đầu này khiến cho con người nghĩ quá lên về khả năng của các mạng nơron. Chính sự cường điệu quá mức đã có những tác động không tốt đến sự phát triển của khoa học và kỹ thuật thời bấy giờ khi người ta lo sợ rằng đã đến lúc máy móc có thể làm mọi việc của con người. Những lo lắng này khiến người ta bắt đầu phản đối các nghiên cứu về mạng nơron. Thời kì tạm lắng này kéo dài đến năm 1981. Năm 1982 trong bài báo gửi tới viện khoa học quốc gia, John Hopfield bằng sự phân tích toán học rõ ràng, mạch lạc, ông đã chỉ ra cách thức các mạng nơron làm việc và những công việc chúng có thể thực hiện được. Cống hiến của Hopfield không chỉ ở giá trị của những nghiên cứu khoa học mà còn ở sự thúc đẩy trở lại các nghiên cứu về mạng nơron. Cũng trong thời gian này, một hội nghị với sự tham gia của Hoa Kỳ và Nhật Bản bàn về việc hợp tác/cạnh tranh trong lĩnh vực mạng nơron đã được tổ chức tại Kyoto, Nhật Bản. Sau hội nghị, Nhật Bản đã công bố những nỗ lực của họ trong Nhóm 11 – LTKHMT2K6 8 Giảng viên: Nguyễn Phương Nga việc tạo ra máy tính thế hệ thứ 5. Tiếp nhận điều đó, các tạp chí định kỳ của Hoa Kỳ bày tỏ sự lo lắng rằng nước nhà có thể bị tụt hậu trong lĩnh vực này. Vì thế, ngay sau đó, Hoa Kỳ nhanh chóng huy động quĩ tài trợ cho các nghiên cứu và ứng dụng mạng nơ ron. Năm 1985, viện vật lý Hoa Kỳ bắt đầu tổ chức các cuộc họp hàng năm về mạng nơron ứng dụng trong tin học (Neural Networks for Computing). Năm 1987, hội thảo quốc tế đầu tiên về mạng nơron của Viện các kỹ sư điện và điện tử IEEE (Institute of Electrical and Electronic Engineer) đã thu hút hơn 1800 người tham gia. Ngày nay, không chỉ dừng lại ở mức nghiên cứu lý thuyết, các nghiên cứu ứng dụng mạng nơron để giải quyết các bài toán thực tế được diễn ra ở khắp mọi nơi. Các ứng dụng mạng nơron ra đời ngày càng nhiều và ngày càng hoàn thiện hơn. Điển hình là các ứng dụng: xử lý ngôn ngữ (Language Processing), nhận dạng kí tự (Character Recognition), nhận dạng tiếng nói (Voice Recognition), nhận dạng mẫu (Pattern Recognition), xử lý tín hiệu (Signal Processing), Lọc dữ liệu (Data Filtering),….. II. MẠNG NƠRON SINH HỌC Không có một định nghĩa tổng quát về mạng nơ ron, song các chuyên gia trong lĩnh vực này đều có chung một quan điểm: “Mạng nơ ron bao gồm một tập hợp các phần tử xử lý đơn giản mà chúng ta gọi là các nơ ron, được liên kết với nhau và hoạt động song song với nhau. Tính năng của mạng phụ thuộc vào cấu trúc của mạng, trọng số liên kết giữa các nơ ron và quá trình xử lý bên trong các nơ ron. Mạng nơ ron có khả năng học số liệu và tổng quát hóa từ các số liệu đã học”. Các mạng nơ ron được xây dựng để mô phỏng chức năng của một mạng nơ ron sinh học nói chung hay mạng nơ ron sinh học của con người nói riêng. * Mô hình và quá trình xử lý trong nơ ron sinh học: Hệ thần kinh của con người có khoảng 10 10 nơ ron. Mỗi nơ ron bao gồm thân nơ ron (cell body), bên trong có nhân (soma), hệ thống dây thần kinh vào hình cây (dendrites) và một đầu dây thần kinh ra (axon). Các đầu dây thần kinh vào nhận tín hiệu từ các nơ ron khác, nhân nơ ron sẽ sinh ra tín hiệu ở đầu ra của nơ ron và truyền tới các nơ ron khác được nối với đầu ra của chúng. Nhóm 11 – LTKHMT2K6 9 Giảng viên: Nguyễn Phương Nga Điểm nối giữa các dây thần kinh vào và ra gọi là các khớp. Tín hiệu truyền trong các dây thần kinh là tín hiệu điện, dòng điện là dòng chuyển động của các ion. Tại khớp thần kinh, các tín hiệu điện ở đầu ra sẽ kích thích làm giải phóng các chất hóa học, được gọi là chất truyền nơ ron. Các chất truyền nơ ron sẽ khuếch tán qua khe hở khớp và xuyên qua màng khớp. Các chất hóa học này lại kích thích tạo ra các tín hiệu điện ở đầu vào của các nơ ron khác. Khớp thần kinh hoạt động một chiều, tức là chỉ có các tín hiệu điện ở đầu ra mới tạo thành được các tín hiệu điện ở đầu vào của các nơ ron khác mà không có chiều ngược lại. Hơn nữa tại các khớp còn có tỷ lệ biến đổi thông tin giữa đầu vào và đầu ra, gọi là độ khuếch đại lớp. Hình 1: Mô hình nơ ron sinh học Như vậy nơron sinh học hoạt động theo cách thức sau: nhận tín hiệu đầu vào, xử lý các tín hiệu này và cho ra một tín hiệu output. Tín hiệu output này sau đó được truyền đi làm tín hiệu đầu vào cho các nơron khác. Tất cả các đặc điểm trên đều được vận dụng một cách triệt để trong việc xây dựng một mạng nơ ron nhân tạo nhằm tạo ra một mạng nơ ron giống với mạng nơ ron sinh học nhất. III. MẠNG NƠRON NHÂN TẠO 1. Khái niệm: Mạng nơron nhân tạo, Artificial Neural Network (ANN) gọi tắt là mạng nơron là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của Nhóm 11 – LTKHMT2K6 10 Giảng viên: Nguyễn Phương Nga các hệ nơron sinh học. Nó được tạo lên từ một số lượng lớn các phần tử (gọi là phần tử xử lý hay nơron) kết nối với nhau thông qua các liên kết (gọi là trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó. Một mạng nơron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận dạng mẫu, phân loại dữ liệu, ...) thông qua một quá trình học từ tập các mẫu huấn luyện. Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các nơron. Một nơron là một đơn vị xử lý thông tin và là thành phần cơ bản của một mạng nơron. Cấu trúc của một nơron được mô tả trên hình dưới. Hình 1: Mô hình nơron nhân tạo Các thành phần cơ bản của một nơron nhân tạo bao gồm: - Tập các đầu vào: Là các tín hiệu vào (input signals) của nơron, các tín hiệu này thường được đưa vào dưới dạng một vector n chiều. - Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là trọng số liên kết – Synaptic weight). Trọng số liên kết giữa tín hiệu vào thứ j với nơron i thường được kí hiệu là w ij. Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng. Trọng số kết nối: W = [w1, w2, …, wn]T - Bộ tổng (Summing function) (u): Thường dùng để tính tổng của tích các đầu vào với trọng số liên kết của nó. - Ngưỡng (còn gọi là độ lệch - bias): Kí hiệu: θ Nhóm 11 – LTKHMT2K6 11 Giảng viên: Nguyễn Phương Nga Ngưỡng này thường được đưa vào như một thành phần của hàm truyền. - Hàm truyền (Transfer function) : Hàm này được dùng để giới hạn phạm vi đầu ra của mỗi nơron. Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho. Thông thường, phạm vi đầu ra của mỗi nơron được giới hạn trong đoạn [0,1] hoặc [-1, 1]. Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến. Việc lựa chọn hàm truyền nào là tuỳ thuộc vào từng bài toán và kinh nghiệm của người thiết kế mạng. - Đầu ra (Output): Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa là một đầu ra. Về bản chất một mạng nơron có chức năng như là một hàm ánh xạ F: X → Y, trong đó X là không gian trạng thái đầu vào (input state space) và Y là không gian trạng thái đầu ra (output state space) của mạng. Các mạng chỉ đơn giản là làm nhiệm vụ ánh xạ các vector đầu vào x ∈ X sang các vector đầu ra y ∈ Y thông qua “bộ lọc” (filter) các trọng số. Tức là y = F(x) = f(W, x), trong đó W là ma trận trọng số liên kết. Hoạt động của mạng thường là các tính toán số thực trên các ma trận. Đối với mỗi nơ ron chúng ta tính một giá trị Net, là hàm của các tín hiệu đầu vào xi và trọng số wi: Net = w1x1 + w2x2 + … + wnxn Tín hiệu ra tại mỗi nơ ron là một hàm số của Net: Y =f(Net) Hàm truyền f thường sử dụng trong các mô hình mạng nơron như sau: Hàm truyền Đồ thị Định nghĩa Symmetrical Hard Limit (hardlims) Nhóm 11 – LTKHMT2K6 12 Giảng viên: Nguyễn Phương Nga y = f (u) = α . u α là hệ số góc của hàm Linear (purelin) Saturating Linear (satlin) Log-Sigmoid (logsig) y=f(u) Như vậy tương tự như nơron sinh học, nơron nhân tạo cũng nhận các tín hiệu đầu vào, xử lý (nhận các tín hiệu này với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả tới hàm truyền) và cho một tín hiệu đầu ra (là kết quả của hàm truyền). 2. Các kiến trúc mạng: Mặc dù mỗi nơron đơn lẻ có thể thực hiện những chức năng xử lý thông tin nhất định, sức mạnh của tính toán nơron chủ yếu có được nhờ sự kết hợp các nơron trong một kiến trúc thống nhất. Một mạng nơron là một mô hình tính toán được xác định qua các tham số: kiểu nơron (như là các nút nếu ta coi cả mạng nơron là một đồ thị), kiến trúc kết nối (sự tổ chức kết nối giữa các nơron) và thuật toán học (thuật toán dùng để học cho mạng). Cách thức kết nối các nơron trong mạng xác định kiến trúc (topology) của mạng. Các nơron trong mạng có thể kết nối đầy đủ (fully connected) tức là mỗi nơron đều được kết nối với tất cả các nơron khác, hoặc kết nối cục bộ (partially connected) chẳng hạn chỉ kết nối giữa các nơron trong các tầng khác nhau. Người ta chia ra hai loại kiến trúc mạng chính: - Tự kết hợp (autoassociative): là mạng có các nơron đầu vào cũng là các nơron đầu ra. Mạng Hopfield là một kiểu mạng tự kết hợp. Nhóm 11 – LTKHMT2K6 13 Giảng viên: Nguyễn Phương Nga Hình 2: Mạng tự kết hợp - Kết hợp khác kiểu (heteroassociative): là mạng có tập nơron đầu vào và đầu ra riêng biệt. Perceptron, các mạng Perceptron nhiều tầng (MLP: Multi Layer Perceptron), mạng Kohonen, … thuộc loại này. Hình 3: Mạng kết hợp khác kiểu Ngoài ra tùy thuộc vào mạng có các kết nối ngược (feedback connections) từ các nơron đầu ra tới các nơron đầu vào hay không, người ta chia ra làm 2 loại kiến trúc mạng. - Kiến trúc truyền thẳng (feedforward architechture): là kiểu kiến trúc mạng không có các kết nối ngược trở lại từ các nơron đầu ra về các nơron đầu vào; mạng không lưu lại các giá trị output trước và các trạng thái kích hoạt của nơron. Các mạng nơron truyền thẳng cho phép tín hiệu di chuyển theo một đường duy nhất; từ đầu vào tới đầu ra, đầu ra của một tầng bất kì sẽ không ảnh hưởng tới tầng đó. Các mạng kiểu Perceptron là mạng truyền thẳng. Hình 4: Mạng truyền thẳng Nhóm 11 – LTKHMT2K6 14 Giảng viên: Nguyễn Phương Nga - Kiến trúc phản hồi (Feedback architecture): là kiểu kiến trúc mạng có các kết nối từ nơron đầu ra tới nơron đầu vào. Mạng lưu lại các trạng thái trước đó, và trạng thái tiếp theo không chỉ phụ thuộc vào các tín hiệu đầu vào mà còn phụ thuộc vào các trạng thái trước đó của mạng. Mạng Hopfield thuộc loại này. Hình 5: Mạng phản hồi 3. Perceptron Perceptron là mạng nơron đơn giản nhất, nó chỉ gồm một nơron, nhận đầu vào là vector có các thành phần là các số thực và đầu ra là một trong hai giá trị +1 hoặc -1. Hình 6: Perceptron Đầu ra của mạng được xác định như sau: mạng lấy tổng có trọng số các thành phần của vector đầu vào, kết quả này cùng ngưỡng b được đưa vào hàm truyền (Perceptron dùng hàm Hard-limit làm hàm truyền) và kết quả của hàm truyền sẽ là đầu ra của mạng. 3.1 Luật học Perceptron: Cho tập mẫu học với vecto vào X và 1 đầu ra lý tưởng tương ứng d(k). Đối với nhiệm vụ phân lớp thì d(k) thường là 1 hoặc -1. Luật học: - Bắt đầu với các trọng số ngẫu nhiên. Nhóm 11 – LTKHMT2K6 15 Giảng viên: Nguyễn Phương Nga - Lấy một vecto vào x từ tập huấn luyện. - Nếu đầu ra tính toán yk # d(k) (tức là perceptron đáp ứng sai) thì điều chỉnh trọng mọi trọng số Wi: wi = c(dk – yk)xi. 3.2 Giải thuật học Perceptron: - Với mỗi tập các mẫu học D={(x,d)} x là vecto đầu vào d là giá trị đầu ra mong muốn (-1 hoặc 1) - Với một ví dụ học x được perceptron phân lớp chính xác, thì vecto trọng số w không thay đổi. - Nếu d=1 nhưng perceptron lại sinh ra -1 (Out=-1) thì w cần được thay đổi sao cho giá trị New(w,x) tăng lên. - Nếu d=-1 nhưng perceptron lại sinh ra 1 (Out=1) thì w cần được thay đổi sao cho giá trị New(w,x) giảm đi. - Perceptron sẽ điều chỉnh trọng số trên thành phần thứ I của vecto đầu vào một lượng wi = c(d – f(Ʃwixi))xi. f(Ʃwixi)) chính là giá trị đầu ra của perceptron, nó có giá trị +1 hoặc -1. - Hiệu giữa d và f(Ʃw ixi)) là 0, 2 hoặc -2. Vì vậy với mỗi thành phần của vecto đầu vào: + Nếu giá trị đầu ra mong muốn và giá trị đầu ra tính toán t bằng nhau thì không làm gì cả. + Nếu giá trị đầu ra thực là -1 và 1 là giá trị mong muốn thì tăng trọng số của đường thứ i lên (2cxi). + Nếu giá trị đầu ra thực là 1 và -1 là giá trị mong muốn thì giảm trọng số của đường thứ i (-2cxi). - c được gọi là hằng số thể hiện tốc độ học vì nếu c lớn thì các giá trị điều chỉnh wi sẽ lớn, như vậy đẩy nhanh quá trình wi hội tụ về giá trị đúng của nó. Perceptron cho phép phân loại chính xác trong trường hợp dữ liệu có thể phân chia tuyến tính (các mẫu nằm trên hai mặt đối diện của một siêu phẳng). Nó cũng phân loại đúng đầu ra các hàm AND, OR và các hàm có dạng đúng khi n trong m đầu vào của nó đúng (n ≤ m). Nó không thể phân loại được đầu ra của hàm XOR. 4. Mạng nhiều tầng truyền thẳng (MLP) Nhóm 11 – LTKHMT2K6 16 Giảng viên: Nguyễn Phương Nga Mô hình mạng nơron được sử dụng rộng rãi nhất là mô hình mạng nhiều tầng truyền thẳng (MLP: Multi Layer Perceptron). Một mạng MLP tổng quát là mạng có n (n≥2) tầng (thông thường tầng đầu vào không được tính đến): trong đó gồm một tầng đầu ra (tầng thứ n) và (n-1) tầng ẩn. Hình 7: Mạng MLP tổng quát Kiến trúc của một mạng MLP tổng quát có thể mô tả như sau: - Đầu vào là các vector (x1, x2, ..., xn) trong không gian n chiều, đầu ra là các vector (y1, y2, ..., ym) trong không gian m chiều. Đối với các bài toán phân loại, n chính là kích thước của mẫu đầu vào, m chính là số lớp cần phân loại. Mỗi nơron thuộc tầng sau liên kết với tất cả các nơron thuộc tầng liền trước nó. - Đầu ra của nơron tầng trước là đầu vào của nơron thuộc tầng liền sau nó. Hoạt động của mạng MLP như sau: tại tầng đầu vào các nơron nhận tín hiệu vào xử lý (tính tổng trọng số, gửi tới hàm truyền) rồi cho ra kết quả (là kết quả của hàm truyền); kết quả này sẽ được truyền tới các nơron thuộc tầng ẩn thứ nhất; các nơron tại đây tiếp nhận như là tín hiệu đầu vào, xử lý và gửi kết quả đến tầng ẩn thứ 2…; quá trình tiếp tục cho đến khi các nơron thuộc tầng ra cho kết quả. * Một số kết quả đã được chứng minh: - Bất kì một hàm Boolean nào cũng có thể biểu diễn được bởi một mạng MLP 2 tầng trong đó các nơron sử dụng hàm truyền sigmoid. - Tất cả các hàm liên tục đều có thể xấp xỉ bởi một mạng MLP 2 tầng sử dụng hàm truyền sigmoid cho các nơron tầng ẩn và hàm truyền tuyến tính cho các nơron tầng ra với sai số nhỏ tùy ý. - Mọi hàm bất kỳ đều có thể xấp xỉ bởi một mạng MLP 3 tầng sử dụng hàm truyền sigmoid cho các nơron tầng ẩn và hàm truyền tuyến tính cho các nơron tầng ra. Nhóm 11 – LTKHMT2K6 17 Giảng viên: Nguyễn Phương Nga Để khắc phục những khó khăn đối với những bài toán có mẫu phân chia không tuyến tính, mạng nơron nhiều lớp được sử dụng. Có rất nhiều công trình nghiên cứu vềmạng MLP và đã cho thấy nhiều ưu điểm của mạng này. Mạng MLP là một giải pháp hữu hiệu cho việc mô hình hoá, đặc biệt với quá trình phức tạp hoặc cơ chế chưa rõ ràng. Nó không đòi hỏi phải biết trước dạng hoặc tham số. Mạng MLP là cơ sở cho thuật toán lan truyền ngược và khả năng xấp xỉ liên tục. 5. Mạng Hopfield: Mạng Hopfield là một dạng mạng nơron nhân tạo truyền ngược do John Hopfield đưa ra. N2>N1 N2>N3 N 1 N 2 N1>N2 N4>N1 N1>N4 N1>N3 N2>N4 N4>N2 N3>N1 N3>N2 N 3 N 4 N3>N4 N4>N3 Mạng Hopfield đóng vai trò như các hệ thống bộ nhớ có thể đánh địa chỉ nội dung với các nút ngưỡng dạng nhị phân. - Bảo đảm sẽ hội tụ về một cực tiểu cục bộ, nhưng không đảm bảo sẽ hội tụ về một trong các mẫu được lưu trữ. - Gồm 1 lớp đơn các nơron kết nối đầy đủ. - Các nơron liên kết với mỗi nơron khác nhưng không tự kết nối. 6. Xây dựng mạng nơron: 6.1 Chuẩn bị dữ liệu a. Kích thước mẫu Không có nguyên tắc nào hướng dẫn kích thước mẫu phải là bao nhiêu đối với một bài toán cho trước. Hai yếu tố quan trọng ảnh hưởng đến kích thước mẫu: - Dạng hàm đích: khi hàm đích càng phức tạp thì kích thước mẫu cần tăng. Nhóm 11 – LTKHMT2K6 18 Giảng viên: Nguyễn Phương Nga - Nhiễu: khi dữ liệu bị nhiễu (thông tin sai hoặc thiếu thông tin) kích thước mẫu cần tăng. Đối với mạng truyền thẳng (feedforward), cho hàm đích có độ phức tạp nhất định, kèm một lượng nhiễu nhất định thì độ chính xác của mô hình luôn có một giới hạn nhất định. Có thể cần tập mẫu vô hạn để đạt đến giới hạn chính xác. Nói cách khác độ chính xác của mô hình là hàm theo kích thước tập mẫu. Khi kích thước mẫu tăng, độ chính xác sẽ được cải thiện - lúc đầu nhanh, nhưng chậm dần khi tiến đến giới hạn. Dạng tổng quát của mối liên hệ giữa sai số và kích thước mẫu như sau: Hình 12: Mối liên hệ giữa sai số và kích thước mẫu Trong thực hành thường gặp phải 2 vấn đề sau : - Đối với hầu hết bài toán thực tế, mẫu bị ràng buộc chặt chẽ với dữ liệu có sẵn. Ta thường không có được số lượng mẫu mong muốn. - Kích thước mẫu cũng có thể bị giới hạn bởi bộ nhớ hoặc khả năng lưu trữ của máy tính. Nếu tất cả các dữ liệu đồng thời được giữ trong bộ nhớ suốt thời gian luyện, kích thước bộ nhớ máy tính sẽ bị chiếm dụng nghiêm trọng. Nếu lưu trữ trên đĩa sẽ cho phép dùng mẫu lớn hơn nhưng thao tác đọc đĩa từ thế hệ này sang thế hệ khác khiến cho tiến trình chậm đi rất nhiều. Chú ý: việc tăng kích thước mẫu không làm tăng thời gian luyện. Những tập mẫu lớn hơn sẽ yêu cầu ít thế hệ luyện hơn. Nếu ta tăng gấp đôi kích thước của mẫu, mỗi thế hệ luyện sẽ tốn thời gian khoảng gấp đôi, nhưng số thế hệ cần Nhóm 11 – LTKHMT2K6 19 Giảng viên: Nguyễn Phương Nga luyện sẽ giảm đi một nửa. Điều này có nghĩa là kích thước mẫu (cũng có nghĩa là độ chính xác của mô hình) không bị giới hạn bởi thời gian luyện. Luật cơ bản là: Sử dụng mẫu lớn nhất có thể sao cho đủ khả năng lưu trữ trong bộ nhớ trong (nếu lưu trữ đồng thời) hoặc trên đĩa từ (nếu đủ thời gian đọc từ đĩa). b. Mẫu con Trong xây dựng mô hình cần chia tập mẫu thành 2 tập con: một để xây dựng mô hình gọi là tập huấn luyện (training set), và một để kiểm nghiệm mô hình gọi là tập kiểm tra (test set). Thông thường dùng 2/3 mẫu cho huấn luyện và 1/3 cho kiểm tra. Điều này là để tránh tình trạng quá khớp (overfitting). c. Sự phân tầng mẫu Nếu ta tổ chức mẫu sao cho mỗi mẫu trong quần thể đều có cơ hội như nhau thì tập mẫu được gọi là tập mẫu đại diện. Tuy nhiên khi ta xây dựng một mạng để xác định xem một mẫu thuộc một lớp hay thuộc một loại nào thì điều ta mong muốn là các lớp có cùng ảnh hưởng lên mạng, để đạt được điều này ta có thể sử dụng mẫu phân tầng. Xét ví dụ sau[1]: Giả sử ta xây dựng mô hình nhận dạng chữ cái viết tay tiếng Anh, và nguồn dữ liệu của ta có 100.000 ký tự mà mỗi ký tự được kèm theo một mã cho biết nó là chữ cái nào. Chữ cái xuất hiện thường xuyên nhất là e, nó xuất hiện 11.668 lần chiếm khoảng 12%; chữ cái xuất hiện ít nhất là chữ z, chỉ có 50 lần chiếm 0,05%. Trước hết do giới hạn của bộ nhớ máy tính, giả sử bộ nhớ chỉ có thể xử lý được 1300 mẫu. Ta tạo hai dạng tập mẫu: tập mẫu đại diện và tập mẫu phân tầng. Với tập mẫu đại diện, chữ e sẽ xuất hiện 152 lần (11,67% của 1300) trong khi đó chữ z chỉ xuất hiện một lần (0,05% của 1300). Ngược lại ta có thể tạo tập mẫu phân tầng để mỗi chữ có 50 mẫu. Ta thấy rằng nếu chỉ có thể dùng 1300 mẫu thì tập mẫu phân tầng sẽ tạo ra mô hình tốt hơn. Việc tăng số mẫu của z từ 1 lên 50 sẽ cải thiện rất nhiều độ chính xác của z, trong khi nếu giảm số mẫu của e từ 152 xuống 50 sẽ chỉ giảm chút ít độ chính xác của e. Bây giờ giả sử ta dùng máy tính khác có bộ nhớ đủ để xử lý một lượng mẫu gấp 10 lần, như vậy số mẫu sẽ tăng lên 13000. Rõ ràng việc tăng kích thước mẫu sẽ giúp cho mô hình chính xác hơn. Tuy nhiên ta không thể dùng tập mẫu Nhóm 11 – LTKHMT2K6 20 Giảng viên: Nguyễn Phương Nga phân tầng như trên nữa vì lúc này ta sẽ cần tới 500 mẫu cho chữ z trong khi ta chỉ có 50 mẫu trong nguồn dữ liệu. Để giải quyết điều này ta tạo tập mẫu như sau: tập mẫu gồm tất cả các chữ hiếm với số lần xuất hiện của nó và kèm thêm thông tin về chữ có nhiều mẫu nhất. Chẳng hạn ta tạo tập mẫu có 50 mẫu của chữ z (đó là tất cả) và 700 mẫu của chữ e (chữ mà ta có nhiều mẫu nhất). Như vậy trong tập mẫu của ta, chữ e có nhiều hơn chữ z 14 lần. Nếu ta muốn các chữ z cũng có nhiều ảnh hưởng như các chữ e, khi học chữ z ta cho chúng trọng số lớn hơn 14 lần. Để làm được điều này ta có thể can thiệp chút ít vào quá trình lan truyền ngược trên mạng. Khi mẫu học là chữ z, ta thêm vào 14 lần đạo hàm, nhưng khi mẫu là chữ e ta chỉ thêm vào 1 lần đạo hàm. Ở cuối thế hệ, khi cập nhật các trọng số, mỗi chữ z sẽ có ảnh hưởng hơn mỗi chữ e là 14 lần, và tất cả các chữ z gộp lại sẽ có ảnh hưởng bằng tất cả các chữ e. d. Chọn biến Khi tạo mẫu cần chọn các biến sử dụng trong mô hình. Có 2 vấn đề cần quan tâm: - Cần tìm hiểu cách biến đổi thông tin sao cho có lợi cho mạng hơn: thông tin trước khi đưa vào mạng cần được biến đổi ở dạng thích hợp nhất, để mạng đạt được hiệu xuất cao nhất. Xét ví dụ về bài toán dự đoán một người có mắc bệnh ung thư hay không. Khi đó ta có trường thông tin về người này là “ngày tháng năm sinh”. Mạng sẽ đạt được hiệu quả cao hơn khi ta biến đổi trường thông tin này sang thành “tuổi”. Thậm chí ta có thể quy tuổi về một trong các giá trị: 1 = “trẻ em” (dưới 18), 2 = “thanh niên” (từ 18 đến dưới 30), 3 = “trung niên” (từ 30 đến dưới 60) và 4 = “già” (từ 60 trở lên). - Chọn trong số các biến đã được biến đổi, biến nào sẽ được đưa vào mô hình: không phải bất kì thông tin nào về mẫu cũng có lợi cho mạng. Trong ví dụ dự đoán người có bị ung thư hay không ở trên, những thuộc tính như “nghề nghiệp”, “nơi sinh sống”, “tiểu sử gia đình”,… là những thông tin có ích. Tuy nhiên những thông tin như “thu nhập”, “số con cái”,… là những thông tin không cần thiết. 6.2 Xác định các tham số cho mạng: a. Chọn hàm truyền Không phải bất kỳ hàm truyền nào cũng cho kết quả như mong muốn. Để trả lời cho câu hỏi «hàm truyền như thế nào được coi là tốt ? » là điều không hề đơn giản. Có một số quy tắc khi chọn hàm truyền như sau: Nhóm 11 – LTKHMT2K6 21 Giảng viên: Nguyễn Phương Nga - Không dùng hàm truyền tuyến tính ở tầng ẩn. Vì nếu dùng hàm truyền tuyến tính ở tầng ẩn thì sẽ làm mất vai trò của tầng ẩn đó: Xét tầng ẩn thứ i: Tổng trọng số ni = wiai-1 + bi ai = f(ni) = wf ni +bf (hàm truyền tuyến tính) Khi đó: tổng trọng số tại tầng thứ (i + 1) ni+1 = wi+1ai + bi+1 = wi+1[wf ni +bf] + bi+1 = wi+1 [wf(wiai-1 + bi) + bf] + bi+1 = Wai-1 + b Như vậy ni+1 = Wai-1 + b, và tầng i đã không còn giá trị nữa. - Chọn các hàm truyền sao cho kiến trúc mạng nơron là đối xứng (tức là với đầu vào ngẫu nhiên thì đầu ra có phân bố đối xứng). Nếu một mạng nơron không đối xứng thì giá trị đầu ra sẽ lệch sang một bên, không phân tán lên toàn bộ miền giá trị của output. Điều này có thể làm cho mạng rơi vào trạng thái bão hòa, không thoát ra được. Trong thực tế người ta thường sử dụng các hàm truyền dạng – S. Một hàm s(u) được gọi là hàm truyền dạng – S nếu nó thỏa mãn 3 tính chất sau: – s(u) là hàm bị chặn: tức là tồn tại các hằng số C1 ≤ C2 sao cho: C1 ≤ s(u) ≤ C2 với mọi u. – s(u) là hàm đơn điệu tăng: giá trị của s(u) luôn tăng khi u tăng. Do tính chất thứ nhất, s(u) bị chặn, nên s(u) sẽ tiệm cận tới giá trị cận trên khi u dần tới dương vô cùng, và tiệm cận giá trị cận dưới khi u dần tới âm vô cùng. – s(u) là hàm khả vi: tức là s(u) liên tục và có đạo hàm trên toàn trục số. Một hàm truyền dạng - S điển hình và được áp dụng rộng rãi là hàm Sigmoid. b. Xác định số nơron tầng ẩn Câu hỏi chọn số lượng noron trong tầng ẩn của một mạng MLP thế nào là khó, nó phụ thuộc vào bài toán cụ thể và vào kinh nghiệm của nhà thiết kế mạng. Nếu tập dữ liệu huấn luyện được chia thành các nhóm với các đặc tính tương tự nhau thì số lượng các nhóm này có thể được sử dụng để chọn số lượng nơron ẩn. Trong trường hợp dữ liệu huấn luyện nằm rải rác và không chứa các đặc tính chung, số lượng kết nối có thể gần bằng với số lượng các mẫu huấn luyện để mạng có thể hội tụ. Có nhiều đề nghị cho việc chọn số lượng nơron tầng ẩn h trong một mạng MLP. Chẳng hạn h phải thỏa mãn h>(p-1)/(n+2), Nhóm 11 – LTKHMT2K6 22 Giảng viên: Nguyễn Phương Nga trong đó p là số lượng mẫu huấn luyện và n là số lượng đầu vào của mạng. Càng nhiều nút ẩn trong mạng, thì càng nhiều đặc tính của dữ liệu huấn luyện sẽ được mạng nắm bắt, nhưng thời gian học sẽ càng tăng. Một kinh nghiệm khác cho việc chọn số lượng nút ẩn là số lượng nút ẩn bằng với số tối ưu các cụm mờ (fuzzy clusters). Phát biểu này đã được chứng minh bằng thực nghiệm. Việc chọn số tầng ẩn cũng là một nhiệm vụ khó. Rất nhiều bài toán đòi hỏi nhiều hơn một tầng ẩn để có thể giải quyết tốt. Để tìm ra mô hình mạng nơron tốt nhất, Ishikawa and Moriyama (1995) sử dụng học cấu trúc có quên (structural leanrning with forgetting), tức là trong thời gian học cắt bỏ đi các liên kết có trọng số nhỏ. Sau khi huấn luyện, chỉ các noron có đóng góp vào giải quyết bài toán mới được giữ lại, chúng sẽ tạo nên bộ xương cho mô hình mạng nơron. c. Khởi tạo trọng số: Trọng số thường được khởi tạo bằng phương pháp thử sai, nó mang tính chất kinh nghiệm và phụ thuộc vào từng bài toán. Việc định nghĩ thế nào là một bộ trọng sốtốt cũng không hề đơn giản. Một số quy tắc khi khởi tạo trọng số: - Khởi tạo trọng số sao cho mạng nơron thu được là cân bằng (với đầu vào ngẫu nhiên thì sai số lan truyền ngược cho các ma trận trọng số là xấp xỉ bằng nhau): |ΔW1/W1| = |ΔW2/W2| = |ΔW3/W3| Nếu mạng nơron không cân bằng thì quá trình thay đổi trọng số ở một số ma trận là rất nhanh trong khi ở một số ma trận khác lại rất chậm, thậm chí không đáng kể. Do đó để các ma trận này đạt tới giá trị tối ưu sẽ mất rất nhiều thời gian. - Tạo trọng số sao cho giá trị kết xuất của các nút có giá trị trung gian. (0.5 nếu hàm truyền là hàm Sigmoid). Rõ ràng nếu ta không biết gì về giá trị kết xuất thì giá trị ở giữa là hợp lý. Điều này cũng giúp ta tránh được các giá trị thái quá. Thủ tục khởi tạo trọng số thường được áp dụng: – B1: Khởi tạo các trọng số nút ẩn và các trọng số của các cung liên kết trực tiếp giữa nút nhập và nút xuất, nếu có giá trị ngẫu nhiên, nhỏ, phân bố đều quanh 0. – B2: Khởi tạo một nửa số trọng số của nút xuất giá trị 1, và nửa kia giá trị -1. 6.3 Vấn đề lãng quên (catastrophic forgetting) Nhóm 11 – LTKHMT2K6 23 Giảng viên: Nguyễn Phương Nga Catastrophic forgetting là vấn đề một mạng quên những gì nó đã học được trong các mẫu trước khi đang học các mẫu mới. Nguyên nhân là do sự thay đổi các trọng số theo các mẫu mới, nếu như các mẫu cũ trong một thời gian không được đưa vào huấn luyện. Để tránh điều này, ta thường thực hiện việc huấn luyện luân phiên giữa mẫu cũ và mẫu mới. Hình 13: Huấn luyện luân phiên trên hai tập mẫu Xét ví dụ mạng được huấn luyện luân phiên với hai tập mẫu A và B (hình 13). Tại mỗi chu kỳ mạng sẽ học tập mẫu A sau đó học tập mẫu B. Khi bước vào chu kỳ thứ hai, lỗi lúc bắt đầu học tập mẫu A cao hơn là ở chu kỳ thứ nhất khi vừa học xong tập A. Điều này là do giữa hai lần học tập mẫu A mạng đã học tập mẫu B. Tuy nhiên nếu xét trên cả chu kỳ thì lỗi huấn luyện sẽ giảm xuống. Tức là lỗi lúc bước vào chu kỳ thứ ba sẽ nhỏ hơn lúc bước vào chu kỳ thứ hai. Có nhiều phương pháp để huấn luyện dữ liệu mới. Chẳng hạn sau khi một số mẫu mới được học, một vài mẫu cũ được chọn ngẫu nhiên trong số các mẫu trước đó để đưa vào học. Vấn đề sẽ khó khăn hơn khi các mẫu cũ không còn nữa. Khi đó các mẫu giả (pseudoexamples) có thể được sử dụng để lưu giữ các trọng số càng gần các trọng số trước càng tốt. 6.4 Vấn đề quá khớp a. Khái niệm quá khớp Vấn đề quá khớp xảy ra khi mạng được luyện quá khớp (quá sát) với dữ liệu huấn luyện (kể cả nhiễu), nên nó sẽ trả lời chính xác những gì đã được học, Nhóm 11 – LTKHMT2K6 24 Giảng viên: Nguyễn Phương Nga còn những gì không được học thì nó không quan tâm. Như vậy mạng sẽ không có được khả năng tổng quát hóa. Về mặt toán học, một giả thuyết (mô hình) h được gọi là quá khớp nếu tồn tại giả thuyết h' sao cho: 1. Error train (h) < Error train (h') 2. Error test (h) > Error test (h') b. Giải quyết quá khớp Vấn đề quá khớp xảy ra vì mạng có năng lực quá lớn. Có 3 cách để hạn chế bớt năng lực của mạng: – Hạn chế số nút ẩn – Ngăn không cho mạng sử dụng các trọng số lớn – Giới hạn số bước luyện Khi mạng được luyện, nó chuyển từ các hàm ánh xạ tương đối đơn giản đến các hàm ánh xạ tương đối phức tạp. Nó sẽ đạt được một cấu hình tổng quát hóa tốt nhất tại một điểm nào đó. Sau điểm đó mạng sẽ học để mô hình hóa nhiễu, những gì mạng học được sẽ trở thành quá khớp. Nếu ta phát hiện ra thời điểm mạng đạt đến trạng thái tốt nhất này, ta có thể ngừng tiến trình luyện trước khi hiện tượng quá khớp xảy ra. Ta biết rằng, chỉ có thể để đánh giá mức độ tổng quát hóa của mạng bằng cách kiểm tra mạng trên các mẫu nó không được học. Ta thực hiện như sau: chia mẫu thành tập mẫu huấn luyện và tập mẫu kiểm tra. Luyện mạng với tập mẫu huấn luyện nhưng định kỳ dừng lại và đánh giá sai số trên tập mẫu kiểm tra. Khi sai số trên tập mẫu kiểm tra tăng lên thì quá khớp đã bắt đầu và ta dừng tiến trình luyện. Chú ý rằng, nếu sai số kiểm tra không hề tăng lên, tức là mạng không có đủ số nút ẩn để quá khớp. Khi đó mạng sẽ không có đủ số nút cần thiết để thực hiện tốt nhất. Do vậy nếu hiện tượng quá khớp không hề xảy ra thì ta cần bắt đầu lại nhưng sử dụng nhiều nút ẩn hơn. 7. Huấn luyện mạng nơron: * Các kỹ thuật học: Khái niệm: Học là quá trình thay đổi hành vi của các vật theo một cách nào đó làm cho chúng có thể thực hiện tốt hơn trong tương lai. Nhóm 11 – LTKHMT2K6 25 Giảng viên: Nguyễn Phương Nga Một mạng nơron được huyấn luyện sao cho với một tập các vector đầu vào X, mạng có khả năng tạo ra tập các vector đầu ra mong muốn Y của nó. Tập X được sử dụng cho huấn luyện mạng được gọi là tập huấn luyện (training set). Các phần tử x thuộc X được gọi là các mẫu huấn luyện (training example). Quá trình huấn luyện bản chất là sự thay đổi các trọng số liên kết của mạng. Trong quá trình này, các trọng số của mạng sẽ hội tụ dần tới các giá trị sao cho với mỗi vector đầu vào x từ tập huấn luyện, mạng sẽ cho ra vector đầu ra y như mong muốn. Có ba phương pháp học phổ biến là học có giám sát (supervised learning), học không giám sát (unsupervised learning) và học tăng cường (Reinforcement learning): 7.1 Học có giám sát: Là quá trình học có sự tham gia giám sát của một “thầy giáo”. Cũng giống như việc ta dạy một em nhỏ các chữ cái. Ta đưa ra một chữ “a” và bảo với em đó rằng đây là chữ “a”. Việc này được thực hiện trên tất cả các mẫu chữ cái. Sau đó khi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể viết hơi khác đi) và hỏi em đó đây là chữ gì? Với học có giám sát, tập mẫu huấn luyện được cho dưới dạng D = {(x,t) | (x,t) ∈ [IRn x Rm]}, trong đó: x = (x1, x2, ..., xn) là vector đặc trưng n chiều của mẫu huấn luyện và t = (t1, t2, ..., tm) là vector mục tiêu m chiều tương ứng, nhiệm vụ của thuật toán là phải thiết lập được một cách tính toán trên mạng như thế nào đó để sao cho với mỗi vector đặc trưng đầu vào thì sai số giữa giá trị đầu ra thực sự của mạng và giá trị mục tiêu tương ứng là nhỏ nhất. Chẳng hạn mạng có thể học để xấp xỉ một hàm t = f(x) biểu diễn mối quan hệ trên tập các mẫu huấn luyện (x, t). Xs Ytính Mạng nơron N Hiệu chỉnh W Sai số Ys Hình 9: Sơ đồ kỹ thuật học có giám sát Nhóm 11 – LTKHMT2K6 26 Giảng viên: Nguyễn Phương Nga Như vậy với học có giám sát, số lớp cần phân loại đã được biết trước. Nhiệm vụ của thuật toán là phải xác định được một cách thức phân lớp sao cho với mỗi vector đầu vào sẽ được phân loại chính xác vào lớp của nó. 7.2 Học không giám sát: Là việc học không cần có bất kỳ một sự giám sát nào. Xs Out Tín hiệu ra Mạng nơ ron N Hình 10: Sơ đồ kỹ thuật học không giám sát Trong bài toán học không giám sát, tập dữ liệu huấn luyện được cho dưới dạng: D = {(x1, x2, ..., xn)}, với (x1, x2, ..., xn) là vector đặc trưng của mẫu huấn luyện. Nhiệm vụ của thuật toán là phải phân chia tập dữ liệu D thành các nhóm con, mỗi nhóm chứa các vector đầu vào có đặc trưng giống nhau. Như vậy với học không giám sát, số lớp phân loại chưa được biết trước, và tùy theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các lớp phân loại khác nhau. 7.3 Học tăng cường: Đôi khi còn được gọi là học thưởng - phạt (reward-penalty learning), là sự tổ hợp của cả hai mô hình trên. Phương pháp này cụ thể như sau: với vector đầu vào, quan sát vector đầu ra do mạng tính được. Nếu kết quả được xem là “tốt” thì mạng sẽ được thưởng theo nghĩa tăng các trọng số kết nối lên; ngược lại mạng sẽ bị phạt, các trọng số kết nối không thích hợp sẽ được giảm xuống. Do đó học tăng cường là học theo nhà phê bình (critic), ngược với học có giám sát là học theo thầy giáo (teacher). Xs Mạng nơron N Ytính Hiệu chỉnh W Nhóm 11 – LTKHMT2K6 27 Tín hiệu tăng cường Giảng viên: Nguyễn Phương Nga Tín hiệu “Y/N” Hình 11: Sơ đồ kỹ thuật học tăng cường IV. ỨNG DỤNG CỦA MẠNG NORON Ngày nay, mạng nơ ron ngày càng được ứng dụng nhiều trong thực tế. Đặc biệt là các bài toán nhận dạng mẫu, xử lý, lọc dữ liệu, và điều khiển. Ứng dụng của mạng nơron được chia thành các loại sau: - Xử lý ngôn ngữ : Xử lý ngôn ngữ tự nhiên - Nhận dạng mẫu: Nhận dạng ảnh, Nhận giọng nói, Nhận dạng chữ viết - Xử lý tín hiệu: Điều khiển tự động - Lọc và phân loại dữ liệu: Chuẩn đoán bệnh, Tìm kiếm Nhóm 11 – LTKHMT2K6 28 Giảng viên: Nguyễn Phương Nga PHẦN 3: MẠNG LAN TRUYỀN NGƯỢC SAI SỐ (BACK PROPAGATION OF ERROR – BP) I. TỔNG QUAN VỀ MẠNG LAN TRUYỀN NGƯỢC LỖI: Thế giới thực xảy ra tình huống là dữ liệu bị thiếu hoặc bị nhiễu. Để đưa ra được dự đoán thích hợp dựa trên những thông tin bị thiếu này là rất khó (chưa có một lý thuyết nào có thể giúp tái tạo lại dữ liệu bị mất). Mạng BP có thể đưa ra được một số câu trả lời thích hợp. Cấu trúc BP gồm ít nhất 3 lớp: - Một lớp vào (Input Layer) - Ít nhất một lớp ẩn ở giữa (Hidden Layer) - Một lớp ra (Output Layer) Thông thường các node đầu vào được kết nối đầy đủ tới các node lớp ẩn và các node lớp ẩn được kết nối đầy đủ với các node trong lớp đầu ra. Đầu ra của mạng lan truyền ngược được xem như một bộ phận lớp quyết định. Với mạng lan truyền ngược, quá trình học xảy ra trong suốt một chu kỳ huấn luyện. Gồm các bước: - Mỗi mẫu đầu vào trong tập mẫu học được áp dụng cho các node lớp vào và sau đó được lan truyền tiến. - Mẫu sau khi được lan truyền đến lớp đầu ra được so sánh với mẫu ra (đầu ra lý tưởng) để tính toán lỗi đầu ra. - Lỗi ứng với mỗi mẫu đầu ra sau đó được lan truyền ngược từ các đầu ra tới các đầu vào nhằm điều chỉnh các trọng số một cách thích hợp trong mỗi lớp của mạng. - Sau khi mạng lan truyền ngược được huấn luyện phân loại chính xác cho các tập mẫu học, nó có thể được kiểm tra trên một tập mẫu chưa qua huấn luyện (kiểm tra năng lực dự báo của mạng). Nếu năng lực dự báo đủ tốt, mạng có thể được dừng để dự báo. Bias Nhóm 11 – LTKHMT2K6 29 Giảng viên: Nguyễn Phương Nga Input Layer Hidden Layer Output Layer Hình 12: Mô hình mạng nơron nhiều lớp lan truyền ngược II. GIẢI THUẬT HỌC BP 1. Giải thuật huấn luyện mạng: Xét mạng nơron có 3 lớp, lớp input có 1 node, lớp ẩn có m node, lớp output có n node. Xét giải thuật lan truyền ngược với mạng nơron nhân tạo này: * Kiến trúc cơ sở của giải thuật: Khởi tạo các trọng số Repeat For each mẫu học “Học với mẫu này” End Until lỗi ở mức nhỏ chấp nhận được. - Bước 1: Đưa các giá trị vào (input), ra (output) về dạng ma trận giá trị - Bước 2: Giả định số neural m của lớp hidden thỏa 1 p=[4.7 6.1 5.6 5.8 6.5; 3.2 2.8 3.0 2.7 3.2; 1.3 4.7 4.1 5.1 5.1; 0.2 1.2 1.3 1.9 2.0]; >> t=[0 1 1 0 0]; - Tạo mạng nơ-ron là net với đầu vào là p và hàm mục tiêu t. - Tạo mạng với 2 nơ ron lớp ẩn và sử dụng hàm truyền logsig cho cả 2 lớp: >> net=newff(p,t,2,{'logsig' 'logsig'}); Bước 2: Huấn luyện mạng: - Truyền mẫu A vào mạng: >> p1=[4.7;3.2;1.3;0.2]; >> t1=[0]; Đưa tập huấn luyện vào mạng bằng lệnh train(): >> net=train(net,p1,t1); Bước 3: Tính vecto đầu ra y của mạng: Sau khi huấn luyện mạng ta có thể sử dụng chúng bằng cách gọi hàm sim().Ví dụ sử dụng hàm sim() với vectơ đầu vào p ta sẽ thu được kết quả y là mô phỏng của t. >> y=sim(net,p1) y= 0.5000 Bước 4: Đánh giá lỗi: Hàm đánh giá lỗi mặc định ở đây là MSE (mean-square error). >> mse(t1-y) ans = 0.2500 Bước 5: Hiệu chỉnh trọng số: Sau khi huấn luyện, mạng nơron cho đầu ra y chưa giống với vecto mục tiêu t, mạng tiến hành cập nhật lại trọng số liên kết và ngưỡng theo công thức: wk+1 = wk – αkgk với: wk là vecto trọng số và ngưỡng hiện thời Nhóm 11 – LTKHMT2K6 36 Giảng viên: Nguyễn Phương Nga αk là hệ số học hiện thời gk là giá trị gradient hiện thời. Bước 6: Lặp đi lặp lại các bước từ bước 2 đến bước 5 cho đến khi mạng đạt trạng thái hội tụ. - Tiếp tục truyền mẫu B vào mạng: >> p2=[6.1;2.8;4.7;1.2]; >> t2=[1]; >> net=train(net,p2,t2); >> y=sim(net,p2) y= 1.0000 >> mse(t2-y) ans = 1.7515e-011 - Truyền mẫu C vào mạng: >> p3=[5.6;3.0;4.1;1.3]; >> t3=[1]; >> net=train(net,p3,t3); >> y=sim(net,p3) y= 1.0000 >> mse(t3-y) ans = 2.1198e-011 … Chúng ta có thể thay đổi các giá trị khởi tạo của mạng và huấn luyện lại mạng để được kết quả chính xác như mong đợi hơn. Có thể thực hiện đào tạo mạng hàng loạt với tập mẫu p, t đưa vào: >> net=train(net,p,t); >> y=sim(net,p) y= 0.9954 0.6744 0.9414 0.5000 0.5001 >> mse(t-y) ans = 0.3201 >> net=init(net); Nhóm 11 – LTKHMT2K6 37 Giảng viên: Nguyễn Phương Nga >> net=train(net,p,t); >> y=sim(net,p) y= 0.5000 0.5000 0.5000 0.5000 0.5000 >> mse(t-y) ans = 0.2500 ………….. 3. Cài đặt bài toán sử dụng công cụ nntool trong Matlab: - Trong cửa sổ Command Window gõ lệnh: nntool Cửa sổ Network/ Data Manager hiện ra: - Tập tập dữ liệu đầu vào và tập mục tiêu, chọn New Data: Tập dữ liệu vào đặt Name là Input, Data Type là inputs. Nhập dữ liệu dưới dạng ma trận ở khung Value -> bấm Create. Nhóm 11 – LTKHMT2K6 38 Giảng viên: Nguyễn Phương Nga Tập mục tiêu đặt Name là Target, Data Type là Targets. Nhập dữ liệu dưới dạng ma trận vào khung Value. - Tạo mạng: Trong cửa sổ Network/Data Manager chọn New Network: Nhóm 11 – LTKHMT2K6 39 Giảng viên: Nguyễn Phương Nga Đặt Network Name là CayIris, Get from input chọn Input, Number of layers là 2, number of neurons cho layer1 là 2, layer2 là 1 và Transfer Function cho cả 2 layer là logsig ->Bấm Create. - Bấm View để xem kiến trúc mạng vừa được tạo: - Đào tạo mạng: bấm vào CayIris trong khung Network của cửa sổ Network/Data Manager -> chọn Train -> Cửa sổ Network CayIris hiện ra. Nhóm 11 – LTKHMT2K6 40 Giảng viên: Nguyễn Phương Nga - Thiết lập các trọng số liên kết và ngưỡng cho mạng trong tab Weights bằng Set Weight hoặc sử dụng các trọng số do mạng tự động khởi tạo. - Trong tab Train chọn Training Data với Inputs là Input, Targets là Target -> Bấm Train Network. - Sau khi đào tạo mạng, Output và Errors sẽ được đưa ra trên cửa sổ Network/Data Manager. Để xem được, bấm chọn vào CayIris_outputs hoặc CayIris_errors -> chọn View: Nhóm 11 – LTKHMT2K6 41 Giảng viên: Nguyễn Phương Nga - Ta thấy đầu ra output của mạng rất gần với đầu ra mục tiêu mong muốn và lỗi giảm dần. Để mạng đạt trạng thái hội tụ, nghĩa là giá trị outputs giống với tập mục tiêu nhất, tiến hành đào tạo lại mạng với các ma trận trọng số và ngưỡng đã được cập nhật sau những lần đào tạo trước đó. Nhóm 11 – LTKHMT2K6 42 Giảng viên: Nguyễn Phương Nga KẾT LUẬN Đề tài này trình bày các vấn đề về công nghệ tính toán mềm và mạng nơron, gồm: tìm hiểu về tính toán mềm, khái niệm của mạng nơ ron nhân tạo, lịch sử phát triển, các mô hình mạng và phương pháp xây dựng cũng như huấn luyện mạng. Trong đó đi sâu vào việc xây dựng một mạng nơron truyền thẳng MLP, và thuật tuán huấn luyện Lan truyền ngược. Đề tài này cũng trình bày một thực nghiệm cho các lý thuyết về mạng MLP và thuật toán Lan truyền ngược đã nêu ra, cài đặt minh họa bài toán bằng ngôn ngữ Matlab. Hướng phát triển của đề tài: - Tìm hiểu về các thuật toán huấn luyện mạng nơ ron khác, để có thể đưa ra các so sánh, cũng như chọn mô hình thích hợp cho các bài toán cụ thể. - Phát triển chương trình thực nghiệm thành một chương trình có ý nghĩa thực tế hơ như phân loại mẫu, nhận dạng chữ viết tay, nhận dạng ảnh, dựa trên nền tảng mạng đã xây dựng. Chúng em rất mong nhận được sự đóng góp ý kiến của các thầy cô giáo trong khoa và các bạn sinh viên để đề tài của chúng em được hoàn thiện hơn nữa trong tương lai. Chúng em xin chân thành cảm ơn! Nhóm 11 – LTKHMT2K6 43 Giảng viên: Nguyễn Phương Nga TÀI LIỆU THAM KHẢO [1]. Genevieve Orr, Nici Schraudolph and Fred Cummins http://www.willamette.edu/~gorr/classes/cs449/intro.html [2]. Christos Stergiou and Dimitrios Siganos. Neural Networks. http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cs11/report.html [3]. Nikola K. Kasabov. Foundations of Neural Networks, Fuzzy Systems, and Knowledge Engineering. Massachusetts Institute of Technology. [4]. Hệ mờ, mạng nơron và ứng dụng - Bùi Công Cường – Nguyễn Doãn Phước. [5].http://www4.hcmut.edu.vn/~huynhqlinh/TinhocDC/WebLQNguyen/noron %20nhan%20tao/feedforward_1.html Nhóm 11 – LTKHMT2K6 44 Giảng viên: Nguyễn Phương Nga Ý KIẾN NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. Nhóm 11 – LTKHMT2K6 45 Giảng viên: Nguyễn Phương Nga [...]... kết hợp các n ron trong một kiến trúc thống nhất Một mạng n ron là một mô hình tính toán được xác định qua các tham số: kiểu n ron (như là các nút nếu ta coi cả mạng n ron là một đồ thị), kiến trúc kết nối (sự tổ chức kết nối giữa các n ron) và thuật toán học (thuật toán dùng để học cho mạng) Cách thức kết nối các n ron trong mạng xác định kiến trúc (topology) của mạng Các n ron trong mạng có thể kết... sát trong các mạng n ron thường được thực hiện theo các bước sau: Nhóm 11 – LTKHMT2K6 33 Giảng viên: Nguyễn Phương Nga - B1: Xây dựng cấu trúc thích hợp cho mạng n ron, chẳng hạn có (n + 1) n ron vào (n n ron cho biến vào và 1 n ron cho ngưỡng x 0), m n ron đầu ra, và khởi tạo các trọng số liên kết của mạng - B2: Đưa một vector x trong tập mẫu huấn luyện X vào mạng - B3: Tính vector đầu ra o của mạng. .. phản hồi (Feedback architecture): là kiểu kiến trúc mạng có các kết nối từ n ron đầu ra tới n ron đầu vào Mạng lưu lại các trạng thái trước đó, và trạng thái tiếp theo không chỉ phụ thuộc vào các tín hiệu đầu vào mà còn phụ thuộc vào các trạng thái trước đó của mạng Mạng Hopfield thuộc loại này Hình 5: Mạng phản hồi 3 Perceptron Perceptron là mạng n ron đơn giản nhất, nó chỉ gồm một n ron, nhận đầu... học chính là quá trình hiệu chỉnh trọng số liên kết giữa các n ron Một n ron là một đơn vị xử lý thông tin và là thành phần cơ bản của một mạng n ron Cấu trúc của một n ron được mô tả trên hình dưới Hình 1: Mô hình n ron nhân tạo Các thành phần cơ bản của một n ron nhân tạo bao gồm: - Tập các đầu vào: Là các tín hiệu vào (input signals) của n ron, các tín hiệu này thường được đưa vào dưới dạng một vector... là mỗi n ron đều được kết nối với tất cả các n ron khác, hoặc kết nối cục bộ (partially connected) chẳng hạn chỉ kết nối giữa các n ron trong các tầng khác nhau Người ta chia ra hai loại kiến trúc mạng chính: - Tự kết hợp (autoassociative): là mạng có các n ron đầu vào cũng là các n ron đầu ra Mạng Hopfield là một kiểu mạng tự kết hợp Nhóm 11 – LTKHMT2K6 13 Giảng viên: Nguyễn Phương Nga Hình 2: Mạng. .. kiểu (heteroassociative): là mạng có tập n ron đầu vào và đầu ra riêng biệt Perceptron, các mạng Perceptron nhiều tầng (MLP: Multi Layer Perceptron), mạng Kohonen, … thuộc loại này Hình 3: Mạng kết hợp khác kiểu Ngoài ra tùy thuộc vào mạng có các kết nối ngược (feedback connections) từ các n ron đầu ra tới các n ron đầu vào hay không, người ta chia ra làm 2 loại kiến trúc mạng - Kiến trúc truyền thẳng... Nguyễn Phương Nga Input Layer Hidden Layer Output Layer Hình 12: Mô hình mạng n ron nhiều lớp lan truyền ngược II GIẢI THUẬT HỌC BP 1 Giải thuật huấn luyện mạng: Xét mạng n ron có 3 lớp, lớp input có 1 node, lớp ẩn có m node, lớp output có n node Xét giải thuật lan truyền ngược với mạng n ron nhân tạo này: * Kiến trúc cơ sở của giải thuật: Khởi tạo các trọng số Repeat For each mẫu học “Học với mẫu này”... kiến trúc mạng không có các kết nối ngược trở lại từ các n ron đầu ra về các n ron đầu vào; mạng không lưu lại các giá trị output trước và các trạng thái kích hoạt của n ron Các mạng n ron truyền thẳng cho phép tín hiệu di chuyển theo một đường duy nhất; từ đầu vào tới đầu ra, đầu ra của một tầng bất kì sẽ không ảnh hưởng tới tầng đó Các mạng kiểu Perceptron là mạng truyền thẳng Hình 4: Mạng truyền... cho các mẫu kiểm tra Thuật toán tổng quát ở trên cho học có giám sát trong các mạng n ron có nhiều cài đặt khác nhau, sự khác nhau chủ yếu là cách các trọng số liên kết được thay đổi trong suốt thời gian học Nhóm 11 – LTKHMT2K6 34 Giảng viên: Nguyễn Phương Nga PHẦN 4: BÀI TOÁN MINH HỌA Sử dụng kỹ thuật học có giám sát trong mạng n ron: 1 Giới thiệu bài toán Độ dài đài hoa 4.7 Độ rộng đài hoa 3.2 Độ... Hình 11: Sơ đồ kỹ thuật học tăng cường IV ỨNG DỤNG CỦA MẠNG NORON Ngày nay, mạng nơ ron ngày càng được ứng dụng nhiều trong thực tế Đặc biệt là các bài toán nhận dạng mẫu, xử lý, lọc dữ liệu, và đi u khiển Ứng dụng của mạng n ron được chia thành các loại sau: - Xử lý ngôn ngữ : Xử lý ngôn ngữ tự nhiên - Nhận dạng mẫu: Nhận dạng ảnh, Nhận giọng nói, Nhận dạng chữ viết - Xử lý tín hiệu: Đi u khiển tự ... khác Tất đặc đi m vận dụng cách triệt để việc xây dựng mạng nơ ron nhân tạo nhằm tạo mạng nơ ron giống với mạng nơ ron sinh học III MẠNG N RON NHÂN TẠO Khái niệm: Mạng n ron nhân tạo, Artificial... chỉnh trọng số liên kết n ron Một n ron đơn vị xử lý thông tin thành phần mạng n ron Cấu trúc n ron mô tả hình Hình 1: Mô hình n ron nhân tạo Các thành phần n ron nhân tạo bao gồm: - Tập đầu vào:... Tính mạng phụ thuộc vào cấu trúc mạng, trọng số liên kết nơ ron trình xử lý bên nơ ron Mạng nơ ron có khả học số liệu tổng quát hóa từ số liệu học” Các mạng nơ ron xây dựng để mô chức mạng nơ ron

Ngày đăng: 06/10/2015, 00:19

Từ khóa liên quan

Mục lục

  • PHẦN 1: GIỚI THIỆU CHUNG VỀ TÍNH TOÁN MỀM

  • Trong thực tế cuộc sống, các bài toán liên quan đến hoạt động nhận thức, trí tuệ của con người đều hàm chứa những đại lượng, thông tin mà bản chất là không chính xác, không chắc chắn, không đầy đủ. Ví dụ: sẽ chẳng bao giờ có các thông tin, dữ liệu cũng như các mô hình toán đầy đủ và chính xác cho các bài toán dự báo thời tiết. Nhìn chung con người luôn ở trong bối cảnh là không có thông tin đầy đủ và chính xác cho các hoạt động ra quyết định của bản thân mình.

  • Trong lĩnh vực khoa học kĩ thuật cũng vậy, các hệ thống phức tạp trên thực tế thường không thể mô tả đầy đủ và chính xác bởi các phương trình toán học truyền thống. Kết quả là những cách tiếp cận kinh điển dựa trên kỹ thuật phân tích và các phương trình toán học nhanh chóng tỏ ra không còn phù hợp. Vì thế, công nghệ tính toán mềm chính là một giải pháp trong lĩnh vực này.

    • 1. Một số đặc điểm của công nghệ tính toán mềm:

    • - Tính toán mềm căn cứ trên các đặc điểm, hành vi của con người và tự nhiên để đưa ra các quyết định hợp lý trong điều kiện không chính xác và không chắc chắn để tạo ra các máy thông minh (thế hệ mới của TTNT).

    • - Các thành phần của tính toán mềm có sự bổ sung, hỗ trợ lẫn nhau tạo hệ thống có tổ chức chặt.

    • - Tính toán mềm là một hướng nghiên cứu mở, bất kỳ một kỹ thuật mới nào được tạo ra từ việc bắt trước trí thông minh của con người đều có thể trở thành một thành phần mới của tính toán mềm.

    • - Công nghệ tính toán mềm bao gồm 4 thành phần chính: Fuzzy Computing (FC), Evolutionary Computing (EC), Neural Computing (NC) and Probabilistic Computing (PC - còn đang phát triển).

    • 1981 1960 1943 1965

    • 1960 1992 1965 1962 1970

    • (ARTIFICIAL NEURAL NETWORK)

      • I. LỊCH SỬ PHÁT TRIỂN CỦA MẠNG NƠRON

      • Ngày nay, không chỉ dừng lại ở mức nghiên cứu lý thuyết, các nghiên cứu ứng dụng mạng nơron để giải quyết các bài toán thực tế được diễn ra ở khắp mọi nơi. Các ứng dụng mạng nơron ra đời ngày càng nhiều và ngày càng hoàn thiện hơn. Điển hình là các ứng dụng: xử lý ngôn ngữ (Language Processing), nhận dạng kí tự (Character Recognition), nhận dạng tiếng nói (Voice Recognition), nhận dạng mẫu (Pattern Recognition), xử lý tín hiệu (Signal Processing), Lọc dữ liệu (Data Filtering),…..

      • II. MẠNG NƠRON SINH HỌC

        • 3. Perceptron

        • 4. Mạng nhiều tầng truyền thẳng (MLP)

        • Để khắc phục những khó khăn đối với những bài toán có mẫu phân chia không tuyến tính, mạng nơron nhiều lớp được sử dụng. Có rất nhiều công trình nghiên cứu vềmạng MLP và đã cho thấy nhiều ưu điểm của mạng này.

        • Mạng MLP là một giải pháp hữu hiệu cho việc mô hình hoá, đặc biệt với quá trình phức tạp hoặc cơ chế chưa rõ ràng. Nó không đòi hỏi phải biết trước dạng hoặc tham số. Mạng MLP là cơ sở cho thuật toán lan truyền ngược và khả năng xấp xỉ liên tục.

          • 6. Xây dựng mạng nơron:

          • 6.1 Chuẩn bị dữ liệu

            • a. Kích thước mẫu

            • b. Mẫu con

            • c. Sự phân tầng mẫu

            • d. Chọn biến

            • 6.2 Xác định các tham số cho mạng:

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

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

Tài liệu liên quan