BÁO CÁO ARTIFICAL NEURAL NETWORKS ỨNG DỤNG THUẬT GIẢI LAN TRUYỀN NGƢỢC VÀO MỘT SỐ CỔNG LOGIC

15 372 1
BÁO CÁO ARTIFICAL NEURAL NETWORKS ỨNG DỤNG THUẬT GIẢI LAN TRUYỀN NGƢỢC VÀO MỘT SỐ CỔNG LOGIC

Đ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

BÁO CÁO ARTIFICAL NEURAL NETWORKS ỨNG DỤNG THUẬT GIẢI LAN TRUYỀN NGƢỢC VÀO MỘT SỐ CỔNG LOGIC Hồ Chí Minh, ngày , tháng , năm Giáo viên hƣớng dẫn Phạm Thi Vƣơng Họ tên Sinh Viên MSSV Phạm Trung Kiên 11520187 Hoàng Xuân Lâm 11520198 ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CHƢƠNG I: TỔNG QUAN VỀ ĐỀ TÀI I.1. Mục tiêu của đề tài. Mục tiêu của đề tài là xây dựng một ứng dụng nhỏ nhằm mô phỏng cách hoạt động của thuật giải lan truyền ngƣợc (back propogation). Ứng dụng mà nhóm xây dựng là ứng dụng áp dụng lan truyền ngƣợc để tính cá gí trị đầu ra của các công logic nhƣ: AND, OR, NOT, XOR, NAND. I.2. Phạm vi của đề tài Đề tài mới chỉ biểu diễn đơn(ngoài NAND và XOR) cổng tức là chƣa có sự kết hợp của nhiều cổng logic khác nhau. Số lƣợng ngõ nhập của mỗi cổng còn ít. I.3 Phƣơng pháp tìm hiểu. Để tìm hiểu thuật giải và cài đặt ứng dụng nhóm đã làm các bƣớc sau: Bƣớc 1: Tìm hiểu lý thuyết mạng nơron nhân tạo(ANN) và các thuật giải. Bƣớc 2: Chọn lọc đề tài tìm hiểu và đó là thuật giả lan truyền ngƣợc Bƣớc 3: Tìm hiểu các vấn đề liên quan và chọn ra các bài toán về cổng logic. CHƢƠNG II: CƠ SỞ LÝ THUYẾT II.1. Giới thiệu nơron sinh học  Não bộ con ngƣời gồm: - 1010 tế bào thần kinh – neuron, 6x1014 khớp thần kinh synapse - Mỗi tế bào có cấu trúc đơn giản. - Một neuron bao gồm: thân – soma, nhiều sợi thần kinh – dendrite và một sợi trục chính – axon. Hình 1: Mạng nơron thần kinh  Cơ chế học của neuron thần kinh - Tín hiệu đƣợc lan truyền giữa các neuron. - Một neuron nhận tín hiệu kích thích từ các khớp nối và phát tín hiệu qua soma đến các neuron khác. - Mối liên hệ giữa các neuron (bộ nhớ dài hạn) quy định chức năng của mạng nơron và đƣợc hình thành từ từ qua quá trình học. II.2 Mạng nơron nhân tạo II.2.1. Khái niệm Mạng nơron nhân tạo (Artificial Neural Netwok – ANN): là một tập hợp các bộ xử lý rất đơn giản – nơron– và nối với nhau. Hình 2: Mạng nơron nhân tạo Cấu trúc và phƣơng thức hoạt động của ANN mô phỏng tƣơng tự mạng neuron sinh học. Dƣới đây là sƣ tƣơng quan các yếu tố cảu mạng nơron sinh học và mạng nơron nhân tạo. Mạng neuron sinh học Mạng neuron nhân tạo Hình 3: Sơ đồ Soma Neuron Denrite Input Axon Output Synapse Weight (trọng số) Các nơron đƣợc bởi các liên kết với các trọng số tƣơng ứng. Các trọng số ứng với bộ nhớ dài hạn của ANN. ANN “học” bằng cách điều chỉnh từ từ các trọng số này qua quá trình tƣơng tác với môi trƣờng (huấn luyện). Một số mạng nơron tiêu biểu: - Mạng nơron nhiều lớp (Multilayer Perceptron): đƣợc ứng dụng rộng rãi trong các bài toán phân lớp (nhận dạng), hồi quy (dự đoán)… - Mạng Hopfield: một loại bộ nhớ nội dung có thể đánh địa chỉ (content-addressable memory), dùng để lƣu trữ dữ liệu. - Ánh xạ tự tổ chức (Self Organising Maps) – Mạng Kohonen: dùng trong học bán giám sát, dùng để gom nhóm dữ liệu. II.2.2. Thành phần tính toán Dƣới đây là hình minh họa sơ đồ tính toán. t: Ngƣỡng hoạt hóa Y đƣợc gọi là hàm kích hoạt hay hàm truyền          tXif tXif Y wxX n i ii 1 1 1 Một số hàm truyền trong thực tế: Hàm sign và step đƣợc gọi là hàm giới hạn cứng. II.3 Mạng nơron nhiều lớp Một mạng nơron lan truyền tiến gồm một lớp nhập, ít nhất một lớp ẩn, và một lớp xuất.          n i ii twxsignY 1 Hình 4: Mạng nơron nhiều lớp  Lớp nhập: nhận các input và phân phối chúng cho tất cả neuron trong lớp ẩn  Lớp xuất: biểu diễn kết quả của toàn mạng  Lớp ẩn: - Dò tìm các đặc trƣng. - Các neuron trong lớp này “ẩn” các kết xuất mong muốn của chúng. - Mạng một lớp ẩn có thể biểu diễn bất kỳ hàm liên tục nào. - Mạng hai lớp ẩn có thể biểu diễn các hàm không liên tục. Quá trình học gồm hai pha: - Lan truyền các mẫu input từ lớp nhập đến lớp xuất, tại mỗi neuron tính - Lan truyền ngƣợc sai số từ lớp xuất và cập nhật các trọng số II.4. Luật học MLP - Tại nút xuất, tính sai số với là kết xuất mong muốn ở nút k tại vòng lặp thứ p. - Cập nhật sai số tƣơng tự luật học perceptron . với: Trong đó: gradient sai số tại nơron p của lớp xuất. - Gradient sai số = đạo hàm hàm kích hoạt nhân với sai số tại neuron xuất. - tính đạo hàm ta đƣợc: trong đó: - - Tại nút ẩn, ta có thể áp dụng cùng công thức với lớp xuất: trong đó: là gradient sai số tại neuron j trong lớp ẩn. với l là số neuron của nút xuất và với n là số neuron của lớp nhập II.5. Thuật toán lan truyền ngƣợc Bƣớc 1: Khởi tạo Đặt giá trị ngẫu nhiên các trọng số và ngƣỡng của mạng Bƣớc 2: Kích hoạt - Tính kết xuất thực sự của các nơron trong lớp ẩn: - Tính kết xuất thực sự của các neuron trong lớp xuất Bƣớc 3: Huấn luyện trọng số - Tính gradient sai số cho các neuron lớp xuất: - Cập nhật các trọng số của neuron lớp xuất: - Tính gradien sai số và cập nhật trọng số lớp ẩn Bƣớc 4: Lặp CHƢƠNG III: CÀI ĐẶT ỨNG DỤNG III.1. Công cụ cài đặt Ứng dụng đƣợc cài đặt bằng ngôn ngữ Java trên NetBeans IDE 8.0 và Netbean Platform. III.2. Chức năng của ứng dụng Ứng dụng gồm ba chức năng chính là setting, trainer và tester. - Chức năng setting là chức năng cài đặt các dữ kiện cho bài toán. - Chức năng trainer là chức năng huấn luyện các bài toán trong ứng dụng. - Chức năng tester là chức năng kiểm tra sau khi trải qua quá trình huấn luyện. Hình 5: Giao diện các chức năng chính [...]...III.3 Một số phần xử lý chính của ứng dụng - Hàm truyền: public double trigger( double value ) { return 1.0 / (1.0 + Math.pow(Math.E, -value)); } - Lấy sai số ứng với lớp xuất: //lay gia tri sai so cho output layer for (int i = 0; i < numberOfOutputs; i++) { delta_outputs[i] = outputs[i] * (1.0 - outputs[i]) * (target[i] - outputs[i]); } - Lấy sai số ứng với lớp ẩn: // lay gia... 0; j < numberOfInputs+1; j++) { inputToHiddenWeights[j][i] += learningRate * delta_hidden[i] * inputs[j]; } } III.4 Một số hình ảnh demo của ứng dụng Hình 6: Khởi tạo mạng Hình 7: Input với hai cổng AND Hình 8: Kết quả với hai cổng AND Hình 9: Input với 4 cổng NAND Hình 10: Kết quả với 4 cổng NAND ... hiddens[i] * (1.0 - hiddens[i]) * error; } - Cập nhập trong số giữa lớp ẩn và lớp xuất: // cap nhap trogn so nam giua hidden & output layer for (int i = 0; i < numberOfOutputs; i++) { for (int j = 0; j < numberOfHiddens + 1; j++) { hiddenToOutputWeights[j][i] += learningRate * delta_outputs[i] * hiddens[j]; } } Cập nhập trọng số giữa lớp vào và lớp ẩn: - // cap nhap trogn so giua input & hidden layer . BÁO CÁO ARTIFICAL NEURAL NETWORKS ỨNG DỤNG THUẬT GIẢI LAN TRUYỀN NGƢỢC VÀO MỘT SỐ CỔNG LOGIC Hồ Chí Minh, ngày , tháng , năm. đề tài là xây dựng một ứng dụng nhỏ nhằm mô phỏng cách hoạt động của thuật giải lan truyền ngƣợc (back propogation). Ứng dụng mà nhóm xây dựng là ứng dụng áp dụng lan truyền ngƣợc để tính cá. CHƢƠNG III: CÀI ĐẶT ỨNG DỤNG III.1. Công cụ cài đặt Ứng dụng đƣợc cài đặt bằng ngôn ngữ Java trên NetBeans IDE 8.0 và Netbean Platform. III.2. Chức năng của ứng dụng Ứng dụng gồm ba chức

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

Từ khóa liên quan

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

Tài liệu liên quan