Nghiên cứu về mạng nơron và ứng dụng trong bài toán phân lớp dữ liệu

67 1K 7
Nghiên cứu về mạng nơron và ứng dụng trong bài toán phân lớp dữ liệu

Đ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

MỤC LỤC MỤC LỤC 1 MỞ ĐẦU 3 Chương 1: 5 TỔNG QUAN VỀ MẠNG NƠRON NHÂN TẠO .5 1.1 Giới thiệu mạng Nơron 5 1.1.1 Lịch sử phát triển của mạng nơron .5 1.1.2 Nơron sinh học 6 1.1.3 Nơron nhân tạo 7 1.1.4 Các thành phần của một nơron nhân tạo 8 1.2 Đơn vị xử lý .11 1.3 Hàm xử lý 12 1.3.1 Hàm kết hợp .12 1.3.2 Hàm kích hoạt (hàm chuyển) 13 1.4 Các kiến trúc mạng 15 1.4.1 Mạng một tầng 15 1.4.2 Mạng đa tầng .17 1.5 Các hình trạng của mạng 20 1.5.1 Mạng truyền thẳng 20 1.5.2 Mạng hồi quy 22 1.6 Tiếp cận Nơron cho tính toán 23 1.6.1 Luật học 23 1.6.2 Tốc độ học 26 1.6.3 Các luật học 27 1.7 Phạm vi ứng dụng của mạng nơron 29 1.7.1 Những bài toán thích hợp 29 1.7.2 Phân loại 29 1.7.3 Mô hình hoá 30 1.7.4 Liên kết .31 1.8 Các lĩnh vực ứng dụng của mạng nơron 31 1.9 Ưu nhược điểm của mạng nơron .32 1.10 Nhận xét 33 Chương 2: 33 1 MẠNG TRUYỀN THẲNG NHIỀU LỚP 33 2.1 Khái niệm 33 2.2 Khả năng thể hiện 35 2.3 Vấn đề thiết kế cấu trúc mạng 36 2.3.1 Số lớp ẩn 36 2.3.2 Số đơn vị trong lớp ẩn 37 2.4 Thuật toán lan truyền ngược (Back-Propagation) 38 2.4.1 Mô tả thuật toán 39 2.4.2 Sự hội tụ 43 2.4.3 Sự tổng quát hóa .43 Chương 3: 47 PHÂN LỚP DỮ LIỆU BẰNG MẠNG NƠRON 47 3.1 Giới Thiệu .47 3.2 Chuẩn bị dữ liệu 49 3.3 Phân lớp dữ liệu bằng Spice-MLP 52 3.4 Đào tạo mạng 55 3.4.1 Chia dữ liệu 55 3.4.2 Chọn dữ liệu học và các tham số 55 3.4.3 Đào tạo mạng (training) 56 3.4.4 Kiểm tra đồ thị lỗi .58 3.4.5 Kiểm tra đồ thị trọng số và đầu vào trung bình của một nơron 60 3.4.6 Xem đồ thị dữ liệu và đồ thị đầu ra của mạng 61 3.5 Kết luận 64 3.6 Một số nhận xét .64 KẾT LUẬN 65 TÀI LIỆU THAM KHẢO 66 2 MỞ ĐẦU Chúng ta đều biết rằng, bộ não con người là một sản phẩm hoàn hảo của tạo hóa, nó có khả năng tư duy và sáng tạo Hiện nay, con người đang nghiên cứu phương thức hoạt động của bộ não, sau đó áp dụng cho những công nghệ hiện đại Để tiếp cận khả năng học, người ta đưa ra mô hình mạng nơron gồm các nơron liên kết với nhau thành mạng phỏng theo cấu trúc mạng thần kinh của con người Mỗi nơron riêng lẻ có khả năng xử lý thông tin yếu, nhưng khi chúng được ghép với nhau thành mạng, thì khả năng xử lý thông tin sẽ mạnh hơn rất nhiều Mỗi cấu trúc mạng đều có một ưu điểm đặc thù, chúng cho ta một công cụ mạnh trong các lĩnh vực kỹ thuật điều khiển và kỹ thuật thông tin Một mạng nơron nhân tạo là tập hợp một số lớn các phần tử xử lý (các nút hay các khối), thường được tổ chức song song và được cấu hình theo kiến trúc đệ quy Cách ứng sử trên mạng nơron nhân tạo giống như bộ não con người, nó chứng tỏ khả năng học, nhớ lại, và tổng quát quát hóa từ dữ liệu huấn luyện Mạng nơron nhân tạo là công cụ tốt trong việc giải quyết các bài toán như: hợp và phân lớp đối tượng, xấp xỉ hàm, tối ưu hóa, định lượng vector, phân cụm dữ liệu, Nó thay thế hiệu quả các công cụ tính toán truyền thống để giải quyết các bài toán này Phân lớp dữ liệu là một lĩnh vực đóng vai trò quan trọng trong khoa học kỹ thuật Trong hầu hết các vấn đề kỹ thuật ngày nay, ta đều phải xác định, phân lớp được các mô hình và đối tượng liên quan, để từ đó tìm ra giải pháp Phân lớp mô hình là bài toán rất quan trong trong lý thuyết hệ thống Trong quá trình Xây dựng mô hình hệ thống trên phương diện lý thuyết, người ta thường không khảo sát được mọi ảnh hưởng của môi trường đến tính động học của hệ thống, cũng như những tác động qua lại bên trong hệ thống một cách chính xác tuyệt đối Rất nhiều yếu tố đã bị bỏ qua, hoặc chỉ được xem xét đến như là một tác động ngẫu nhiên Bởi vậy, nếu nói một cách chặt chẽ thì những hiểu biết lý thuyết ban đầu về hệ thống, mới chỉ có thể giúp ta khoanh được lớp các mô hình thích hợp Để có thể có được một mô hình 3 cụ thể có chất lượng phù hợp với bài cụ thể toán đặt ra trong lớp các mô hình thích hợp đó, thì phải sử dụng phương pháp phân lớp Để giải quyết các bài toán phân lớp, người ta đã đưa vào các cách tiếp cận khác nhau, mỗi phương pháp tiếp cận trong những bài toán cụ thể đều có những ưu, nhược điểm riêng Phương pháp ứng dụng mạng nơron trong phân lớp dữ liệu là một cách tiếp cận mới và hiện đại Nó có thể là công cụ rất mạnh để giải quyết các bài toán trong lĩnh vực này Từ việc xác định những nội dung như trên nên em chọn đồ án “Nghiên cứu về mạng nơron và ứng dụng trong bài toán phân lớp dữ liệu ” Đồ án bao gồm những nội dung chính sau:  Chương 1 : Tồng quan về mạng nơron nhân tạo  Chương 2 : Mạng truyền thẳng nhiều lớp  Chương 3 : Phân lớp dữ liệu bằng mạng nơron  Kết luận Mặc dù đã hết sức nỗ lực, song do kinh nghiệm và kh ả nă n g nghiên cứu khoa học còn hạn chế nên không thể tránh khỏi những thiếu sót Em rất mong nhận được sự góp ý của các thầy cô và bạn bè để hiểu biết của mình ngày một hoàn thiện hơn Em xin cám ơn các thầy cô trong Trường Đại Học Công Nghệ Thông Tin và Truyền Thông đã truyền đạt những kiến thức quý báu cho chúng em trong suốt quá trình học tập Đặc biệt, em xin bày tỏ lòng cảm ơn chân thành và sâu sắc đến cô giáo ThS Nguyễn Thị Tuyển, người đã tận tình hướng dẫn và giúp đỡ em trong quá trình làm đồ án tốt nghiệp Xin cảm ơn tất cả bạn bè đã và đang động viên, giúp đỡ tôi trong quá trình học tập và hoàn thành tốt đồ án này Thái Nguyên, tháng 6 năm 2011 4 Chương 1: TỔNG QUAN VỀ MẠNG NƠRON NHÂN TẠO 1.1 Giới thiệu mạng Nơron 1.1.1 Lịch sử phát triển của mạng nơron Mạng nơron nhân tạo được xây dựng từ những năm 1940 nhằm mô phỏng một số chức năng của bộ não người Dựa trên quan điểm cho rằng bộ não người là bộ điều khiển Mạng nơron nhân tạo được thiết kế tương tự như nơron sinh học sẽ có khả năng giải quyết hàng loạt các bài toán như tính toán tối ưu, điều khiển, công nghệ robot… Quá trình nghiên cứu và phát triển nơron nhân tạo có thể chia thành 4 giai đoạn như sau:  Giai đoạn 1: Có thể tính từ nghiên cứu của William (1890) về tâm lý học với sự liên kết các nơron thần kinh Năm 1940 Mc Culloch và Pitts đã cho biết nơron có thể mô hình hoá như thiết bị ngưỡng (Giới hạn) để thực hiện các phép tính logic và mô hình mạng nơron của Mc Culloch – Pitts cùng với giải thuật huấn luyện mạng của Hebb ra đời năm 1943  Giai đoạn 2: Vào khoảng gần những năm 1960, một số mô hình nơron hoàn thiện hơn đã được đưa ra như: Mô hình Perceptron của Rosenblatt (1958), Adalile của Widrow (1962) Trong đó mô hình Perceptron rất được quan tâm vì nguyên lý đơn giản, nhưng nó cũng có hạn chế vì như Marvin Minsky và Seymour papert của MIT ( Massachurehs Insritute of Technology) đã chứng minh nó không dùng được cho các hàm logic phức (1969) Còn Adaline là mô hình tuyến tính, tự chỉnh, được dùng rộng rãi trong điều khiển thích nghi, tách nhiễu và phát triển cho đến nay  Giai đoạn 3: Vào khoảng đầu thập niên 80 Những đóng góp lớn cho mạng nơron trong giai đoạn này phải kể đến Grossberg, Kohonen, Rumelhart và Hopfield Trong đó đóng góp lớn của Hopfield gồm hai mạng phản hồi: Mạng rời 5 rạc năm 1982 và mạng liên tục năm 1984 Đặc biệt, ông đã dự kiến nhiều khả năng tính toán lớn của mạng mà một nơron không có khả năng đó Cảm nhận của Hopfield đã được Rumelhart, Hinton và Williams đề xuất thuật toán sai số truyền ngược nổi tiếng để huấn luyện mạng nơron nhiều lớp nhằm giải bài toán mà mạng khác không thực hiện được Nhiều ứng dụng mạnh mẽ của mạng nơron ra đời cùng với các mạng theo kiểu máy Boltzmann và mạng Neocognition của Fukushima  Giai đoạn 4: Tính từ năm 1987 đến nay, hàng năm thế giới đều mở hội nghị toàn cầu chuyên ngành nơron IJCNN (International Joit Conference on Neural Networks) Rất nhiều công trình được nghiên cứu để ứng dụng mạng nơron vào các lĩnh vực như: Kỹ thuật tính, điều khiển, bài toán tối ưu, y học, sinh học, thống kê, giao thông, hoá học, Cho đến nay mạng nơron đã tìm và khẳng định được vị trí của mình trong rất nhiều ứng dụng khác nhau 1.1.2 Nơron sinh học Hệ thần kinh gồm hai lớp tế bào: Nơron (tế bào thần kinh) và glia (tế bào glia) Nơron là thành phần cơ bản của hệ thần kinh, chúng có chức năng xử lý thông tin Glia thực hiện chức năng hỗ trợ Vì vậy trước khi nghiên cứu về nơron nhân tạo chúng ta sẽ trình bày khái quát về cấu tạo và hoạt động của nơron sinh học Nơron sinh học có nhiều loại, chúng khác nhau về kích thước và khả năng thu phát tín hiệu Tuy nhiên chúng có cấu trúc và nguyên lý hoạt động chung như sau: Mỗi nơron sinh học gồm có 3 thành phần: Thân nơron với nhân ở bên trong (soma), một đầu dây thần kinh ra (axon) và một hệ thống phân nhánh hình cây (Dendrite) để nhận các thông tin vào Trong thực tế có rất nhiều dây thần kinh 2 vào và chúng bao phủ một diện tích rất lớn (0,25mm ) Đầu dây thần kinh ra được rẽ nhánh nhằm chuyển giao tín hiệu từ thân nơron tới nơron khác Các nhánh 6 của đầu dây thần kinh được nối với các khớp thần kinh (synapse) Các khớp thần kinh này được nối với thần kinh vào của các nơron khác Các nơron có thể sửa đổi tín hiệu tại các khớp Hình ảnh đơn giản của một nơron thể hiện trong hình 1.1 Hình 1.1 Mô hình nơron sinh học Hoạt động của nơron sinh học có thể được mô tả như sau: Mỗi nơron nhận tín hiệu vào từ các tế bào thần kinh khác Chúng tích hợp các tín hiệu vào, khi tổng tín hiệu vượt quá một ngưỡng nào đó chúng tạo tín hiệu ra và gửi tín hiệu này tới các nơron khác thông qua dây thần kinh Các nơron liên kết với nhau thành mạng Mức độ bền vững của các liên kết này xác định một hệ số gọi là trọng số liên kết 1.1.3 Nơron nhân tạo Mô phỏng nơron sinh học, ta có nơron nhân tạo Mỗi nơron có rất nhiều dây thần kinh vào, nghĩa là mỗi nơron có thể tiếp nhận đồng thời nhiều dữ liệu Mạng nơron nhân tạo (Artificial Neural Network) là một cấu trúc mạng được hình thành nên bởi một số lượng lớn các nơron nhân tạo liên kết với nhau Mỗi nơron có các đặc tính đầu vào, đầu ra và thực hiện một chức năng tính toán cục bộ 7 Với việc giả lập các hệ thống sinh học, các cấu trúc tính toán mạng nơron có thể giải quyết được lớp các bài toán nhất định như: bài toán lập lịch, bài toán tìm kiếm, bài toán nhận dạng mẫu, bài toán xếp loại, Mạng nơron còn giải quyết được lớp các bài toán sử dụng dữ liệu không đầy đủ, xung đột mờ hoặc xác suất Những bài toán này được đặc trưng bởi một số hoặc tất cả các tính chất sau: Sử dụng không gian nhiều chiều, các tương tác phức tạp, chưa biết hoặc không thể theo dõi về mặt toán học giữa các biến; không gian nghiệm có thể rỗng, có nghiệm duy nhất hoặc có một số nghiệm bình đẳng như nhau Ngoài ra, mạng nơron nhân tạo còn thích hợp để tìm nghiệm của những bài toán đòi hỏi đầu vào là những cảm nhận bởi con người như: Tiếng nói, nhìn và nhận dạng, Tuy nhiên việc ánh xạ từ một bài toán bất kỳ sang một giải pháp mạng nơron lại là một việc không đơn giản 1.1.4 Các thành phần của một nơron nhân tạo Phần này mô tả một số thành phần cơ bản của một nơron nhân tạo Những thành phần này là giống nhau cho dù nơron đó dùng trong tầng vào, tầng ra hay là ở trong tầng ẩn Thành phần 1 Các nhân tố trọng số: Một nơron thường nhận nhiều đầu vào cùng lúc Mỗi đầu vào có trọng số liên quan của riêng nó, trọng số này giúp cho đầu vào có ảnh hưởng cần thiết lên hàm tổng của đơn vị xử lý (thành phần xử lý) Những trọng số này có chức năng giống như sức mạnh của các synapes khác nhau trong nơron sinh học Trong cả hai trường hợp (nhân tạo và sinh học), một số đầu vào quan trọng hơn những đầu vào khác do vậy chúng có ảnh hưởng lớn hơn tới thành phần xử lý để rồi chúng kết hợp lại để tạo ra sự phản ứng của nơron (neural response) Các trọng số là những hệ số thích nghi bên trong một mạng, chúng xác định cường độ (sức mạnh hay là sức ảnh hưởng ) của tín hiệu vào lên nơron nhân tạo 8 Những sức mạnh này có thể được điều chỉnh theo những tập đào tạo đa dạng khác nhau và theo một kiến trúc mạng cụ thể hay là qua các luật học của nó Thành phần 2 Hàm tổng: Bước đầu tiên trong hoạt động của một thành phần xử lý là tính toán tổng có trọng số của tất cả các đầu vào Về mặt toán học, những đầu vào và các trọng số tương ứng là những véc tơ có thể được biểu diễn : I = (ii,i2, , in) và W = (w1, w2, …, wn) Tín hiệu vào tổng là tích vô hướng của mỗi thành phần trong véc tơ I với thành phần tương ứng trong véc tơ W và cộng lại tất cả các tích Input1 = i1.w1, input2 = i2.w2… Kết quả cuối cùng được cộng lại: input1 + input2 + … + inputn Kết quả là một số duy nhất, không phải là một véc tơ Hàm tổng có thể phức tạp hơn nhiều so với mô tả ở trên Đầu vào và các hệ số trọng số có thể được kết hợp theo nhiều cách khác nhau trước khi được đưa vào hàm chuyển đổi Bên cạnh việc tính tổng các tích đơn giản, hàm tổng có thể chọn max, min, tích … nhờ một số thuật toán chuẩn tắc Thuật toán cụ thể để kết hợp các đầu vào của nơron được xác định bởi vệc chọn kiến trúc mạng và mô hình mạng Thành phần 3 Hàm chuyển đổi: Kết quả của hàm tổng, hầu như luôn là tổng có trọng số, được chuyển đổi thành một đầu ra có ý nghĩa nhờ một quá trình xử lý có thuật toán gọi là hàm chuyển đổi Trong hàm chuyển đổi tổng có thể được so sánh với một ngưỡng nào đó để quyết định đầu ra của mạng Nếu như tổng lớn hơn giá trị ngưỡng thì thành phần xử lý đưa ra đầu ra một tín hiệu Nếu như tổng của đầu vào và các tích có trọng số nhỏ hơn ngưỡng thì không có tín hiệu ở đầu ra Cả hai kiểu phản ứng đều quan trọng Giá trị ngưỡng, còn gọi hàm chuyển đổi, thường là phi tuyến Các hàm tuyến tính bị giới hạn vì đầu ra chỉ đơn giản là tỷ lệ của đầu vào Hàm chuyển đổi có thể chỉ đơn giản là cho biết hàm tổng là dương hay âm Mạng có thể cho ra đầu ra 0 và 1, 1 và -1, hay con số kết hợp nào đó Thành phần 4 Hàm ra: Mỗi thành phần xử lý cho phép một tín hiệu đầu ra mà đầu ra này có thể đi tới hàng trăm nơ ron khác Điều này giống với nơron sinh học trong đó có rất nhiều đầu vào và chỉ có một hành động ra Thường thì đầu ra 9 tương đương với kết quả của hàm chuyển đổi Tuy nhiên, một số kiến trúc mạng chỉnh sửa kết quả của hàm chuyển đổi để kết hợp với những thành phần xử lý lân cận Các nơron cho phép cạnh tranh với những nơron khác, khi này chúng hạn chế các thành phần xử lý khác trừ các thành phần xử lý có sức mạnh rất lớn Sự cạnh tranh có thể xẩy ra ở một hay là cả hai mức Đầu tiên sự cạnh tranh quyết định xem nơron nhân tạo nào sẽ là tích cực, hay là cung cấp một đầu ra Tiếp theo các đầu ra cạnh tranh giúp xác định thành phần xử lý nào sẽ tham gia và quá trình học hay là quá trình thích nghi Thành phần 5 Giá trị truyền ngược và hàm lỗi: Trong hầu hết các mạng học sự khác biệt giữa đầu ra hiện tại và đầu ra mong muốn được tính toán, sự khác biệt có thể được gọi là lỗi thô Sau khi được tính toán, lỗi thô đó được chuyển đổi bởi hàm lỗi để làm cho phù hợp với một kiến trúc mạng cụ thể nào đó Các kiến trúc mạng cơ sở nhất sử dụng lỗi này một cách trực tiếp nhưng một số khác bình phương lỗi đó trong khi vẫn giữ lại dấu của nó, một số tính bậc ba của lỗi, một số khác lại hiệu chỉnh lỗi thô đó để đạt được mục đích cụ thể nào đó Lỗi của nơron nhân tạo thường được truyền vào hàm học của một thành phần xử lý khác Số hạng lỗi này đôi khi còn được gọi là lỗi hiện thời Lỗi hiện thời thường được truyền ngược về một tầng trước đó Nhưng giá trị truyền ngược này có thể là lỗi hiện thời hay là lỗi hiện thời đã được điều chỉnh theo một cách nào đó (thường sử dụng đạo hàm của hàm chuyển đổi), hay là một đầu ra mong muốn nào đó, điều này phụ thuộc vào kiểu mạng nơron được sử dụng Thường thì giá trị truyền ngược này sau khi được điều chỉnh bởi hàm học được nhân với mỗi trọng số kết nối vào để thay đổi chúng trước khi bước vào chu kỳ học mới Thành phần 6 Hàm học: Mục đích của hàm học là để thay đổi giá trị của biến trọng số kết nối ở các đầu vào của mỗi thành phần xử lý theo một thuật toán nào đó Quá trình thay đổi các trọng số của các kết nối đầu nào nhằm thu được một số kết quả mong muốn cũng có thể được gọi là hàm thích nghi, hay còn gọi là chế 10 Hình 3.6 chọn tham số để load dữ liệu 53 Trong “XEM DỮ LIỆU” bên phải có thể xem lại từng dataset của dữ liệu vừa load: Hình 3.7 xem dữ liệu 54 3.4 Đào tạo mạng 3.4.1 Chia dữ liệu Nếu muốn chia dữ liệu làm hai phần, một phần để học và một phần để kiểm tra, dùng chức năng “Chia dữ liệu” Sau đó cần chọn phần dữ liệu nào để học sau việc chia dữ liệu ngẫu nhiên thành hai phần Ví dụ : chia dữ liệu thành 70% và 30%, dùng 70% để học và 30% để kiểm tra Dữ liệu ban đầu 150 mẫu sau khi chia ta có dữ liệu học 105 như hình vẽ Hình 3.8 chia dữ liệu 3.4.2 Chọn dữ liệu học và các tham số Chọn số nơron cho lớp ẩn (hidden layer), số lần lặp, thời gian học và MSE (Mean of Square Error) yêu cầu Có thể lựa chọn học thích nghi (tỉ lệ học biến đổi dựa vào MSE học Chọn hàm biến đổi cho lớp ẩn và lớp ra 55 Hình 3.9 Chọn dữ liệu học và tham số 3.4.3 Đào tạo mạng (training) Sau khi chọn số nơron cho lớp ẩn, chọn tỷ lệ dữ liệu học và các thông số cần thiết, lúc này có thể bắt đầu đào tạo mạng.Đây là các nút lệnh chính để đào tạo • Khởi tạo trọng số ban đầu: khởi tạo (Reset) lại trọng số ban đầu cho các nút mạng • Đào tạo: đào tạo mạng • Load trọng số mạng từ File nhị phân: tải trọng số mạng từ file nhị phân có sẵn Lưu ý, nếu thông số mạng từ file nhị phân có sẵn khác với thông số mạng hiện tại, có thể chương trình sẽ báo lỗi hoặc đưa ra kết quả sai • Lưu trọng số mạng vào File nhị phân: lưu trọng số mạng hiện thời vào file nhị phân, mỗ giá trị số được ghi với độ dài 4 bytes 56 • Lưu trọng số mạng vào File text: lưu trọng số mạng hiện thời vào file text để có thể kiểm tra giá trị của từng nút mạng Trọng số của mạng với 4 inputs, 3 hiddens và 3 outputs được lưu trong file text như bảng: Hình 3.10 Nội dung file text chứa trọng số của mạng với 4 inputs, 3 hiddens và 3 outputs Sau khi đào tạo mạng xong, thông tin về lần học cuối cùng của mạng được hiển thị ở box bên phải phía dưới Hình 3.11 Thông tin lần hoc cuối cùng 57 3.4.4 Kiểm tra đồ thị lỗi Sau khi đào tạo mạng, có thể kiểm tra lỗi trong quá trình học bằng checkbox “Xem chi tiết đồ thị lỗi” Dữ liệu lỗi được lưu lại vào file text với nút lệnh “Lưu dữ liệu lỗi” hình 3.12 minh họa một tập dữ liệu lỗi được lưu trong file text Khi chọn checkbox “Xem chi tiết đồ thị lỗi” trước khi đào tạo mạng, đồ thị lỗi sẽ hiện ra online ngay khi đang tiến hành đào tạo, tuy nhiên nếu dùng chức năng này thời gian đào tạo sẽ tăng lên đáng kể do máy tính phải thêm việc vẽ đồ thị cùng với đào tạo mạng Khi xem đồ thị bằng checkbox “Xem chi tiết đồ thị lỗi”, có thể xem chi tiết cho từng lần lặp bằng cách kíck chuột vào đồ thị Hình 3.12 Đồ thị lỗi xem bằng checkbox “Xem chi tiết đồ thị lỗi” Hình 3.13 minh họa đồ thị lỗi và đồ thị tỷ lệ học (learning rate) trong khoảng lần lặp thứ 70 và 200 58 Hình 3.13 Chi tiết đồ thị lỗi Hình 3.14 Dữ liệu lỗi được lưu trong file text 59 3.4.5 Kiểm tra đồ thị trọng số và đầu vào trung bình của một nơron Kiểm tra sự biến đổi của một vài trọng số và đầu vào trung bình của một số nơron trong quá trình học Bên trái hình 3.15 minh họa sự lựa chọn xem trọng số nơron 0 của lớp vào tới nơron 2 của lớp ẩn WIJ[0][2], và trọng số từ nơron 3 của lớp ẩn tới nơ ron 1 của lớp ra WJK[3][1] Bên phải hình 3.15 minh họa sự lựa chọn xem đầu vào trung bình của nơ ron ẩn số 2 và nơ ron ra số 1 Chọn checkbox “Xem đồ thị” trước khi đào tạo mạng, đồ thị trọng số và đầu vào sẽ hiện ra online ngay khi bạn đang tiến hành đào tạo, tuy nhiên cũng như chọn checkbox “Xem chi tiết đồ thị lỗi”, nếu dùng chức năng này thời gian đào tạo sẽ tăng lên đáng kể do máy tính phải thêm việc vẽ đồ thị cùng với đào tạo mạng Hình 3.15 Chọn trọng số và giá trị trung bình của một số nơ ron trong khi học 60 Hình 3.16 Đồ thị trọng số và giá trị trung bình đầu vào của một số nơron trong khi học Hình 3.16 Minh họa đồ thị của hai trọng số và giá trị trung bình đầu vào của hai nơron (đã chọn như trên hình 15) trong khi học Dễ dàng nhận thấy khi mạng hội tụ (khi training error giảm gần tới 0) thì trọng số và đầu vào trung bình của các nơ ron đã chọn cũng hội tụ về một giá trị nhất định 3.4.6 Xem đồ thị dữ liệu và đồ thị đầu ra của mạng Trong phần “Load dữ liệu” đã trình bày ở trên, bạn có thể xem lại từng dataset của dữ liệu mà bạn vừa load cũng như giá trị ra của mạng Trong Tab “Xem dữ liệu” bạn có thể xem đồ thị của toàn bộ dữ liệu nếu số lượng đầu vào và đầu ra không lớn Bạn có thể xem toàn bộ dữ liệu, chỉ xem dữ liệu học hoặc chỉ xem dữ liệu kiểm tra Các hình sau minh họa toàn bộ dữ liệu đầu vào, đầu ra của mạng chưa được học và đầu ra của mạng đã được học Tuy nhiên sau khi học với 70% dữ liệu, đầu ra thực tế của mạng đều xấp xỉ đầu ra của dữ liệu học 61 Hình 3.17 Toàn bộ dữ liệu đầu vào, đầu ra và đầu ra của mạng ban đầu (chưa được học) Đầu ra thực tế của mạng đã học gần giống với đầu ra của dữ liệu học Hình 3.18 Toàn bộ dữ liệu đầu vào, đầu ra và đầu ra của mạng đã được học 62 Hình 3.19 Chỉ xem dữ liệu học (70%) Hình 3.20 Chỉ xem dữ liệu kiểm tra (30%) 63 3.5 Kết luận Chương trình mạng nơron Spice-MLP giúp chúng ta phân lớp được nhiều loại dữ liệu khác nhau và giúp hiểu rõ hơn về hoạt động của mạng nơron đa lớp (Multi-Layer Neural Network) Ta có thể dùng Spice-MLP để mô hình hóa nhiều loại dữ liệu khác nhau và có thể áp dụng trong các bài toán thực tế như nhận dạng, nhóm, clustering, hỗ trợ quyết định … 3.6 Một số nhận xét  Mạng bị ảnh hưởng rất nhiều từ trạng thái khởi đầu của các tham số Trong quá trình học, mạng cố gắng điều chỉnh các tham số sao cho tổng bình phương lỗi là nhỏ nhất Khả năng hội tụ của mạng phụ thuộc vào các tham số khởi đầu, còn khả năng tổng quát hóa thì lại phụ thuộc rất nhiều vào dữ liệu đầu vào Nếu dữ liệu đầu vào quá nhiều thì có thể dẫn tới tình trạng luyện mạng mất rất nhiều thời gian và khả năng tổng quát hóa kém, nếu quá ít dữ liệu thì sai số sẽ tăng  Ngoài đặc trưng về dữ liệu, một đặc trưng khác trong quá trình huấn luyện mạng cần quan tâm là nếu số lần thực hiện điều chỉnh các tham số của mạng quá ít sẽ dẫn đến tình trạng là khả năng tổng quát hóa của mạng rất kém Bởi vậy, số chu kỳ các mẫu đưa vào mạng cần được xem xét phải lớn hơn một ngưỡng nào đó (từ vài nghìn cho đến vài chục nghìn lần)  Để có thể xem xét, đánh giá được khả năng tổng quát hóa của mạng, cần thực hiện phân chia tập dữ liệu thành các tập: huấn luyện (training set) và tập kiểm tra (test set) Tập các dữ liệu thử sẽ không đưa vào để kiểm tra hoạt động của mạng để đảm bảo sự khách quan  Một vấn đề nữa đối với mạng nơron đó là khả năng rơi vào các điểm cực trị địa phương Thuật toán Lan truyền ngược lỗi không đảm bảo sẽ cho ta điểm cực trị toàn cục Nếu rơi vào điểm cực trị địa phương, ta sẽ phải bắt đầu huấn luyện lại, điều này sẽ khiến cho mạng nơron sẽ không thể áp dụng được trong thực tế đối với các bài toán yêu cầu độ chính xác cao trong thời gian tối thiểu Do đó, giải pháp sử dụng hệ số học biến đổi là một trong các hướng để có thể vượt qua được nhược 64 điểm trên Ngoài ra, nếu dữ liệu phân bố không đều trên từng mẫu thì khả năng tổng quát hóa cũng không tốt  Một điều nữa, là mạng có khả năng sẽ không thể đạt được đến trạng thái mong muốn, mà có thể nó sẽ bỏ qua điểm cực trị Để có thể tránh điều này, không nên đặt hệ số học quá lớn (cỡ 0.1 chẳng hạn), cũng như hệ số bước đà quá lớn (chẳng hạn bằng 0.5) (do đặc trưng của thuật toán lan truyền ngược sử dụng tham số bước đà)  Để đảm bảo khả năng có thể đạt đến điểm cực tiểu, số các đơn vị trong lớp ẩn cần đủ lớn Tuy nhiên, nếu số các đơn vị trong lớp ẩn vượt quá một ngưỡng nào đó thì khả năng tổng quát hóa của mạng sẽ kém, vì sau khi huấn luyện mạng có xu hướng ghi nhớ tất cả các mẫu đã được học Khi đó, nên xem xét đến khả năng sử dụng thêm một lớp ẩn nữa với số nơron nhỏ (vài nơron) và giảm bớt số nơron ở lớp ẩn thứ nhất KẾT LUẬN Trong bối cảnh hiện nay khi nay khi mà các nghiên cứu chuyển hướng xây dựng các hệ thống thông minh, Mạng nơron nổi lên như một giải pháp đầy hứa hẹn Nó thể hiện những ưu điểm nổi bật của mình so với các hệ thống khác ở khả năng mềm dẻo linh hoạt và khả năng tính toán thô Đây cũng là một trong những điểm khác biệt giữa bộ óc người với các máy tính thông minh nhân tạo, nhưng cũng chính vì thế mà đòi hỏi độ phức tạp rất cao trong thiết kế và cài đặt các hệ thống 65 ứng dụng để có thể đạt được một tính năng tốt Điểm mấu chốt của quy mô hệ thống là số lượng các nơron và số lượng các mức ẩn Khả năng này sẽ được cải thiện không ngừng trong tương lai cùng với sự phát triển của các mạch phần cứng cỡ lớn và các bộ nhớ ngày càng lớn hơn cho các máy vi tính Mạng nơron có thể được huấn luyện để xấp xỉ các hàm bất kỳ mà không cần biết trước sự liên hệ của các đầu vào đối với đầu ra Chúng có thể hoạt động như một bộ nhớ tự liên hợp bằng cách sử dụng các dữ liệu đặc thù cho các ứng dụng, bài toán trong các lĩnh vực cụ thể Đó là đặc trưng đem lại cho mạng nơron lợi thế đối với các mô hình khác, đặc trưng thứ lỗi Đồ án này được xây dựng dựa trên những bước đi chập chững đầu tiên trong quá trình nghiên cứu lý thuyết mạng nơrron Hướng phát triển là từ kết quả nghiên cứu được từ mạng nơron, từ sự mô phỏng mạng nơron bằng phần mềm Spice-MLP thì chúng ta có thể xây dựng được một ứng dụng cụ thể mang tính chất thực tiễn hơn như trong các lĩnh vực nhận dạng, phân lớp dữ liệu, dự đoán, điều khiển, xấp xỉ… Chắc chắn đồ án này vẫn còn những thiếu sót, em rất mong nhận được những ý kiến đóng góp nhằm hoàn thiện hơn nữa hiểu biết của mình TÀI LIỆU THAM KHẢO [1] Đinh Mạnh Tường, Trí tuệ nhân tạo, NXB Khoa học và Kỹ thuật, 2002 [2] Ts Nguyễn Như Hiểu và Ts Lại Khắc Lãi Hệ mờ và Nơron trong kỹ thuật điều khiển Nhà xuất bản Khoa học tự nhiên và Công nghệ [3] Nguyễn Đình Phúc, Mạng Nơron_Phướng pháp ứng dụng, Nhà xuất bản giáo dục, 2000 [4] Bùi Công Cường Nguyễn Doãn Phước Hệ Mờ Mạng Nơron Và Ứng Dụng Nhà xuất bản: Khoa học và kỹ thuật [5] Lê Minh Trung Giáo Trình Mạng Nơron Nhân Tạo, NXB: Thống kê 66 [6] Dipti Srinivasan, A C Liew, John S., P Chen, Short term forecasting using neural network approach, IEEE 91TH0374-9/91/0000-0012, pp 1216, 1991 … [7] Website: http://archive.ics.uci.edu/ml/datasets/Iris [8] Website: http://spice.ci.ritsumei.ac.jp/~thangc/programs [9] Website: http://www.ebook.edu.vn/ … 67 ... ? ?Nghiên cứu mạng nơron ứng dụng toán phân lớp liệu ” Đồ án bao gồm nội dung sau:  Chương : Tồng quan mạng nơron nhân tạo  Chương : Mạng truyền thẳng nhiều lớp  Chương : Phân lớp liệu mạng nơron. .. lĩnh vực ứng dụng mạng nơron Kể từ đời phát triển mạng nơron ứng dụng nhiều lĩnh vực Do vậy, liệt kê tất ứng dụng mạng nơron khơng thực tế Tuy nhiên, ta đưa số ứng dụng điển hình mạng nơron sau:... 2: MẠNG TRUYỀN THẲNG NHIỀU LỚP 2.1 Khái niệm Một mạng truyền thẳng nhiều lớp bao gồm lớp vào, lớp nhiều lớp ẩn Các nơron đầu vào khơng thực tính tốn 33 liệu vào, tiếp nhận liệu vào chuyển cho lớp

Ngày đăng: 30/12/2015, 15:14

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • MỞ ĐẦU

  • Chương 1:

  • TỔNG QUAN VỀ MẠNG NƠRON NHÂN TẠO

    • 1.1. Giới thiệu mạng Nơron.

      • 1.1.1. Lịch sử phát triển của mạng nơron.

      • 1.1.2. Nơron sinh học.

      • 1.1.3. Nơron nhân tạo.

      • 1.1.4. Các thành phần của một nơron nhân tạo.

      • 1.2. Đơn vị xử lý.

      • 1.3. Hàm xử lý.

        • 1.3.1. Hàm kết hợp.

        • 1.3.2. Hàm kích hoạt (hàm chuyển).

        • 1.4. Các kiến trúc mạng.

          • 1.4.1. Mạng một tầng.

          • 1.4.2. Mạng đa tầng.

          • 1.5. Các hình trạng của mạng.

            • 1.5.1. Mạng truyền thẳng.

            • 1.5.2. Mạng hồi quy.

            • 1.6. Tiếp cận Nơron cho tính toán.

              • 1.6.1. Luật học.

              • 1.6.2 Tốc độ học.

              • 1.6.3 Các luật học.

              • 1.7. Phạm vi ứng dụng của mạng nơron.

                • 1.7.1. Những bài toán thích hợp.

                • 1.7.2. Phân loại.

                • 1.7.3. Mô hình hoá.

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

Tài liệu liên quan