Tiểu luận môn Máy học và ứng dụng NEURAL NETWORK VÀ THUẬT TOÁN LAN TRUYỀN NGƯỢC

33 897 6
Tiểu luận môn Máy học và ứng dụng NEURAL NETWORK VÀ THUẬT TOÁN LAN TRUYỀN NGƯỢC

Đ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

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN  CAO HỌC KHÓA 8 NEURAL NETWORK VÀ THUẬT TOÁN LAN TRUYỀN NGƯỢC Giảng viên hướng dẫn: PGS.TS Vũ Thanh Nguyên Học viên thực hiện: CH1301031 - Nguyễn Thành Phương TP. Hồ Chí Minh, tháng 3 năm 2014 MỤC LỤC GVHD: PGS.TS Vũ Thanh Nguyên HV: Nguyễn Thành Phương Trang 3 CHƯƠNG 1: TỔNG QUAN 1.1 Lý do chọn đề tài Bộ não con người là một máy tính kì diệu, từ lâu con người đã nghĩ tới viêc xây dựng các mô hình tính toán, mô phỏng quá trình hoạt động của bộ não con người. Trước đây, do công cụ tính toán chưa phát triển mạnh nên ý tưởng đó vẫn nằm trong phòng thí nghiệm và chỉ những người nghiên cứu mới biết về nó. Khi máy tính điện tử, công cụ chủ yếu của công nghệ thông tin hiện đại, phát triển tới mức độ cao thì những ý tưởng này đã được hiện thực hoá. Chất lượng và khối lượng của các hoạt động trí óc này không ngừng tăng lên theo sự tiến triển nhanh chóng về khả năng lưu trữ và xử lý thông tin của máy. Từ hàng chục năm nay, cùng với khả năng tính toán khoa học kỹ thuật không ngừng được nâng cao, các hệ thống máy tính đã được ứng dụng và thực hiện được rất nhiều mô hình tính toán thông minh để phục vụ cho các ngành kinh tế, xã hội, hình thành dần kết cấu hạ tầng thông tin quốc gia, nền móng của sự phát triển kinh tế thông tin ở nhiều nước. Sự phong phú về thông tin, dữ liệu cùng với khả năng kịp thời khai thác chúng đã mang đến những năng suất và chất lượng mới cho công tác quản lý, hoạt động kinh doanh, phát triển sản xuất và dịch vụ Một trong những mô hình tính toán thông minh đó, ta phải kể đến đó chính là mạng Neural nhân tạo. Điểm quyết định nên sự tồn tại và phát triển ở một con người đó chính là bộ não. Cùng với sự phát triển như vũ bão của công nghệ thông tin trong thời đại ngày nay, con người đã sử dụng bộ não của mình để tư duy, để tạo ra một mạng Neural nhân tạo có thể thực hiện tính toán và làm được những điều huyền bí, tưởng chừng như nan giải! Với sự kết hợp kỳ diệu của tin học và sinh học, con người đã có thể mô phỏng được hoạt động của các mạng noron trong bộ não của chúng ta thông qua các chương trình máy tính. Có lẽ mạng Neural không chỉ hấp dẫn đối với những người yêu thích công nghệ thông tin bởi khả năng do con người huấn luyện, mà còn bởi những ứng dụng thực tiễn trong cuộc sống của nó. Chúng ta hoàn toàn có thể nhận dạng dấu vết vân tay của tội phạm trong hình sự, có thể dự đoán thị trường chứng khoán, dự đoán thời tiết, dự toán chi phí cho một dự án đường cao tốc, khôi phục những tấm ảnh, hay một chiếc xe lăn dành cho người khuyết tật có thể nhận được mệnh lệnh điều khiển bằng cử chỉ, hành GVHD: PGS.TS Vũ Thanh Nguyên HV: Nguyễn Thành Phương Trang 4 động, thậm chí là suy nghĩ của người ngồi trên xe v.v… nhờ có mạng Neural nhân tạo. Trong khuôn khổ của một tiểu luận, em chọn đề tài “Neural network và thuật toán lan truyền ngược” nhằm tìm hiểu chung về mạng neural và thuật toán lan truyền ngược, bên cạnh đó hoàn thành một chương trình hiện thực thuật toán này. 1.2 Mục đích nghiên cứu - Tìm hiểu về mạng neural. - Tìm hiểu và viết chương trình minh họa thuật toán lan truyền ngược với mạng neural. 1.3 Nội dung nghiên cứu - Mạng Neural. - Một số giải thuật học của các mạng Neural với các trọng số. - Thuật toán lan truyền ngược 1.4 Bố cục báo cáo - Chương 1: Tổng quan - Chương 2: Mạng neural - Chương 3: Thuật toán lan truyền ngược. - Chương 4: Ứng dụng minh họa - Chương 5: Kết luận và hướng phát triển GVHD: PGS.TS Vũ Thanh Nguyên HV: Nguyễn Thành Phương Trang 5 CHƯƠNG 2: MẠNG NEURAL 2.1 Cấu trúc và mô hình của một neural nhân tạo Mô hình toán học của mạng neural sinh học được đề xuất bởi McCulloch và Pitts, thường được gọi là Neural M-P, ngoài ra nó còn được gọi là phần tử xử lý và được ký hiệu là PE (Processing Element). Mô hình Neural có m đầu vào x 1 , x 2 , , x m , và một đầu ra y i như sau: Hình 2.1. Mô hình một Neural nhân tạo Giải thích các thành phần cơ bản: - Tập các đầu vào: Là các tín hiệu vào của Neural, các tín hiệu này thường được đưa vào dưới dạng một vector m chiều. - Tập các liên kết (các trọng số): Mỗi liên kết được thể hiện bởi một trọng số (thường được gọi là trọng số liên kết). Trọng số liên kết giữa tín hiệu vào thứ j cho Neural 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 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. - Bộ tổng (Hàm tổng): 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: 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: Hàm này dùng để giới hạn phạm vi đầu ra của mỗi Neural. 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 Neural đượ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 tùy 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: Là tín hiệu đầu ra của một Neural, với mỗi Neural sẽ có tối đa một đầu ra. Về mặt toán học, cấu trúc của một Neural i được mô tả bằng cặp biểu thức sau: GVHD: PGS.TS Vũ Thanh Nguyên HV: Nguyễn Thành Phương Trang 6 )( iii netfy θ −= và j n j iji xwnet ∑ = = 1 trong đó: x 1 , x 2 , …x m là các tín hiệu đầu vào, còn w i1 , w i2 ,…,w im là các trọng số kết nối của Neural thứ i, net i là hàm tổng, f là hàm truyền, i θ là một ngưỡng, y i là tín hiệu đầu ra của Neural. Hàm truyền có thể có các dạng sau: - Hàm bước    < ≥ = 00 01 xkhi xkhi y (1) - Hàm giới hạn chặt (hay còn gọi là hàm bước)    <− ≥ == 01 01 )sgn( xkhi xkhi xy (2) - Hàm bậc thang      < ≤≤ > == 00 10 11 )sgn( xkhi xkhix xkhi xy (3) - Hàm ngưỡng đơn cực x λ − + = e y 1 1 với λ>0 (4) - Hàm ngưỡng hai cực 1 1 2 − + = − x λ e y với λ>0 (5) Đồ thị các dạng hàm truyền được biểu diễn như sau: GVHD: PGS.TS Vũ Thanh Nguyên HV: Nguyễn Thành Phương Trang 7 Hình 2.2 Đồ thị các dạng hàm truyền 2.2 Lớp neural Một lớp bao gồm một nhóm các noron được tổ chức theo một cách sao cho tất cả chúng đều nhận cùng một vecto đầu vào X để xử lý tại cùng thời điểm. Việc sản sinh ra Net đầu vào, biến đổi thành tín hiệu ra Out xuất hiện cùng một lúc trong tất cả các noron. Vì mỗi noron trong một lớp sản sinh ra Net đầu vào và tín hiệu ra Out riêng nên tất cả các tín hiệu này được tổ chức thành các vecto Net và Out. Các vecto Out này có thể dùng như tín hiệu vào X của các noron kế tiếp. Hình vẽ sau là một ví dụ về 1 lớp có 4 noron và vecto tín hiệu vào có 3 biến. GVHD: PGS.TS Vũ Thanh Nguyên HV: Nguyễn Thành Phương Trang 8 Hình 2.3.Lớpneural 2.3 Khái niệm và phân loại mạng neural 1.1.1 Mạng neural một lớp Mỗi một Neural có thể phối hợp với các Neural khác tạo thành một lớp các trọng số. Mạng một lớp truyền thẳng như hình 4. Một lớp Neural là một nhóm các Neural mà chúng đều có cùng trọng số, nhận cùng một tín hiệu đầu vào đồng thời. Hình 2.4. Mạng truyền thẳng một lớp Trong ma trận trọng số, các hàng là thể hiện Neural, hàng thứ j có thể đặt nhãn như một vector w j của Neural thứ j gồm m trọng số w ji . Các trọng số trong cùng một cột thứ j (j=1,2, ,n) đồng thời cùng nhận một tín hiệu đầu vào x j . w j = [w j1 , w j2 , , w jm ] Tại cùng một thời điểm, vector đầu vào x = [x 1 , x 2 , , x n ] có thể là một nguồn bên ngoài là cảm biến hoặc thiết bị đo lường đưa tới mạng. GVHD: PGS.TS Vũ Thanh Nguyên HV: Nguyễn Thành Phương Trang 9 1.1.2 Mạng neural truyền thẳng nhiều lớp Hình 2.5. Mạng truyền thẳng nhiều lớp Mạng neural nhiều lớp có các lớp được phân chia thành 3 loại sau đây: - Lớp vào là lớp Neural đầu tiên nhận tín hiệu vào x i (i = 1, 2, , n). Mỗi tín hiệu x i được đưa đến tất cả các Neural của lớp đầu vào. Thông thường, các Neural đầu vào không làm biến đổi các tín hiệu vào x i , tức là chúng không có các trọng số hoặc không có các loại hàm chuyển đổi nào, chúng chỉ đóng vai trò phân phối các tín hiệu. - Lớp ẩn là lớp Neural sau lớp vào, chúng không trực tiếp liên hệ với thế giới bên ngoài như các lớp Neural vào/ra. - Lớp ra là lớp Neural tạo ra các tín hiệu ra cuối cùng. 1.1.3 Mạng neural phản hồi Mạng neural phản hồi là mạng mà đầu ra của mỗi Neural được quay trở lại nối với đầu vào của các Neural cùng lớp được gọi là mạng Laeral như hình 6 Hình 2.6. Mạng hồi tiếp một lớp GVHD: PGS.TS Vũ Thanh Nguyên HV: Nguyễn Thành Phương Trang 10 1.1.4 Mạng neural hồi quy Hình 2.7.Mạng neural hồi quy Mạng neural phản hồi có thể thực hiện đóng vòng được gọi là mạng neural hồi quy như hình 7. Mạng neural hồi quy có trọng số liên kết đối xứng như mạng Hopfield, mạng luôn hội tụ về trạng thái ổn định (Hình 6). Mạng BAM thuộc nhóm mạng neural hồi quy, gồm 2 lớp liên kết 2 chiều, không được gắn với tín hiệu vào/ra. Nghiên cứu mạng neural hồi quy mà có trọng số liên kết không đối xứng, thì sẽ gặp phải vấn đề phức tạp nhiều hơn so với mạng truyền thẳng và mạng hồi quy có trọng số liên kết đối xứng. 1.1.5 Mạng Hopfield Mạng Hopfield là mạng phản hồi một lớp, được chỉ ra trong hình 6. Cấu trúc chi tiết của nó được thể hiện trong hình 8. Khi hoạt động với tín hiệu rời rạc, nó được gọi là mạng Hopfield rời rạc, và cấu trúc của nó cũng được gọi là mạng hồi quy. GVHD: PGS.TS Vũ Thanh Nguyên HV: Nguyễn Thành Phương [...]... hợp tổng quát ta có thuật toán lan truyền ngược đươc trình bày trong phần tiếp theo 3.2 Thuật toán lan truyền ngược Thuật toán lan truyền ngược được ứng dụng để giải các bài toán điều khiển các hệ phi tuyến phức tạp và bất ổn định Lan truyền ngược là một phương pháp cho phép xác định tập trọng số tốt nhất của mạng để giải một bài toán đã cho Việc áp dụng phương pháp lan truyền ngược là một quá trình... Trang 17 CHƯƠNG 3: THUÂT TOÁN LAN TRUYỀN NGƯỢC 3.1 Khảo sát nguyên lý mạng nơ-ron nhiều lớp lan truyền ngược Việc xử lý dạy nhiều mạng nơ-ron nhiều lớp dùng giải thuật lan truyền ngược Minh họa này sử dụng ba lớp nơ-ron hai đầu vào và một đầu ra, Hình sau đây minh họa việc sử dụng Mỗi nơron bao gồm hai đơn vị Đơn vị đầu tiên thêm các sản phẩm có trọng lượng hệ số và tín hiệu đầu vào Các đơn vị thứ hai... niên tám mươi giữa các thuật toán lan truyền ngược đã được đưa ra Ý tưởng là để tuyên truyền tín hiệu lỗi δ (tính ở bước giảng dạy duy nhất) trở lại tất cả các nơ-ron, mà tín hiệu đầu ra là đầu vào cho các nơ-ron bàn đến GVHD: PGS.TS Vũ Thanh Nguyên HV: Nguyễn Thành Phương Trang 22 Trọng lượng 'hệ số wmn được sử dụng để lan truyền lỗi trở lại bằng việc sử dụng điều này trong tính toán giá trị đầu ra Chỉ... giao diện chương trình, chương trình đã thực hiện thuật toán lan truyền ngược để đưa ra bộ trọng số tối ưu GVHD: PGS.TS Vũ Thanh Nguyên HV: Nguyễn Thành Phương Trang 31 GVHD: PGS.TS Vũ Thanh Nguyên HV: Nguyễn Thành Phương Trang 32 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 1.2 Kết quả Chương trình demo đã thành công trong việc hiện thực thuật toán lan truyền ngược 5.1 Hạn chế Giao diện còn đơn giản, chưa... vector đầu vào x được cung cấp cho đầu vào của lớp Neural y Đầu vào được xử lý và truyền tới đầu ra của lớp y như sau: y’ = a(wx) ;   y i' = a ∑ wij x j      ; với i = 1,2, ,n (7) Ở đó a(.) là hàm truyền, vector y’ bây giờ lại nuôi trở lại lớp Neural X và tạo nên đầu ra như sau: x’ = a(wTy’);  n  x j = a ∑ wij y i   i =1  ; với j = 1,2, ,m (8) Sau đó x’ nuôi trở lại đầu vào của lớp y và tạo... Nguyễn Thành Phương Trang 33 TÀI LIỆU THAM KHẢO [1] PGS.TS.Vũ Thanh Nguyên, Bài giảng Máy học và ứng dụng [2] Daniel Graupe, Principles of Artificial Neural Networks, World Scientific Publishing Company, 2 edition, 2007 [3] Jeff Heaton, “Introduction to Neural Networks for C#” [4] Agus Kurniawan,Back-Propagation Neural Networks Simulation GVHD: PGS.TS Vũ Thanh Nguyên HV: Nguyễn Thành Phương ... như sau: y(1) = a(wx(0)) (truyền thẳng lần thứ nhất) x(2) = a(w(T)y(1)) (truyền ngược lần thứ nhất) y(3) = a(wx(2)) (truyền thẳng lần thứ hai) x(4) = a(w(T)y(3)) (truyền ngược lần thứ hai) (9)  y(k-1) = a(wx(k-2)) (truyền thẳng lần thứ k/2) x(k) = a(w(T)y(k-1)) (truyền ngược lần thứ k/2) Chú ý rằng trạng thái cập nhật trong phương trình (9) là đồng bộ theo phương trình (7) và (8) Trạng thái cập nhật... trình lặp đi lặp lại nhiều lần hai tiến trình chính: lan truyền tiến để thực hiện ánh xạ và lan truyền ngược sai số để cập nhật các trọng số Các trọng số của mạng là các hệ số của mô hình Dưới đây là thuật toán: Gọi Wljk là cung đi từ đỉnh thứ k của lớp l vào đỉnh j của lớp kế tiếp 1 + 1 Tín hiệu ra tại mỗi nút trên mạng được xác định như sau: Lớp Input và Output: YO = YI = X YH = f ( X ) = Lớp ẩn: Đạo... số của noron thứ i và wij là trọng số kết nối từ noron thứ j đến noron thứ i Các thủ tục học tham số nhằm tìm kiếm ma trận trọng số W sao cho mạng có khả năng đưa ra các dự báo sát với thực tế Các thủ tục học tham số có thể chia thành 3 lớp nhỏ hơn là: học có chỉ đạo (học có thầy), học tăng cường, học không có chỉ đạo (học không có thầy) 1.1.8 Học có chỉ đạo: Mỗi lần vectơ tín hiệu vào X được cung cấp... dòng dữ liệu được thay đổi (tín hiệu được truyền từ đầu ra để đầu vào sau khi khác) Kỹ thuật này được sử dụng cho tất cả các lớp mạng Nếu lỗi lan truyền đến từ vài nơ-ron chúng được thêm vào Xem hìnhminh họa sau đây: GVHD: PGS.TS Vũ Thanh Nguyên HV: Nguyễn Thành Phương Trang 23 Khi tín hiệu lỗi mỗi nơ-ron được tính toán, các hệ số trọng lượng của mỗi nút đầu vào nơ-ron có thể được sửa đổi Trong công . có mạng Neural nhân tạo. Trong khuôn khổ của một tiểu luận, em chọn đề tài Neural network và thuật toán lan truyền ngược nhằm tìm hiểu chung về mạng neural và thuật toán lan truyền ngược, . số giải thuật học của các mạng Neural với các trọng số. - Thuật toán lan truyền ngược 1.4 Bố cục báo cáo - Chương 1: Tổng quan - Chương 2: Mạng neural - Chương 3: Thuật toán lan truyền ngược. -. ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN  CAO HỌC KHÓA 8 NEURAL NETWORK VÀ THUẬT TOÁN LAN TRUYỀN NGƯỢC Giảng viên hướng dẫn: PGS.TS Vũ Thanh Nguyên Học viên

Ngày đăng: 21/05/2015, 12:49

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1: TỔNG QUAN

    • 1.1 Lý do chọn đề tài

    • 1.2 Mục đích nghiên cứu

    • 1.3 Nội dung nghiên cứu

    • 1.4 Bố cục báo cáo

    • CHƯƠNG 2: MẠNG NEURAL

      • 2.1 Cấu trúc và mô hình của một neural nhân tạo

      • 2.2 Lớp neural

      • 2.3 Khái niệm và phân loại mạng neural

        • 1.1.1 Mạng neural một lớp

        • 1.1.2 Mạng neural truyền thẳng nhiều lớp

        • 1.1.3 Mạng neural phản hồi

        • 1.1.4 Mạng neural hồi quy

        • 1.1.5 Mạng Hopfield

          • Hình 2.8. Cấu trúc của mạng Hopfield

          • 1.1.6 Mạng BAM

            • Hình 2.9. Cấu trúc của BAM

            • 2.4 Các thủ tục học của mạng

              • 1.1.7 Học tham số

              • 1.1.8 Học có chỉ đạo:

              • 1.1.9 Học tăng cường:

              • 1.1.10 Học không chỉ đạo:

              • 1.1.11 Học cấu trúc

              • 1.1.12 Sử dụng mạng

              • CHƯƠNG 3: THUÂT TOÁN LAN TRUYỀN NGƯỢC

                • 3.1 Khảo sát nguyên lý mạng nơ-ron nhiều lớp lan truyền ngược

                • 3.2 Thuật toán lan truyền ngược

                  • 1.1.13 Phương pháp cài đặt cho thuật toán học Back-Propagation:

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

Tài liệu liên quan