7/10/2020 1 1©PGS TS Nguyễn Chí Ngôn, Đại học Cần Thơ PGS TS Nguyễn Chí Ngôn Khoa Công nghệ Đại học Cần Thơ ncngon@ctu edu vn ĐẠI HỌC CẦN THƠ MẠNG NƠ RON NHÂN TẠO 2©PGS TS Nguyễn Chí Ngôn, Đại học Cần[.]
7/10/2020 ĐẠI HỌC CẦN THƠ MẠNG NƠ-RON NHÂN TẠO PGS TS Nguyễn Chí Ngơn Khoa Cơng nghệ Đại học Cần Thơ ncngon@ctu.edu.vn ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ Nội Dung Chương 1: Cấu trúc ANN Chương 2: Các giải thuật huấn luyện Chương 3: Một số ứng dụng (MATLAB) Chương 4: Định hướng nghiên cứu (Case Studies) Tiểu luận môn học ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ 7/10/2020 Chương Cấu trúc ANN Giới thiệu Cấu trúc mạng lớp Cấu trúc mạng nhiều lớp Mô MATLAB Bài tập ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ Giới thiệu (1) Mạng nơ-ron nhân tạo dịch từ cụm Artificial Neural Network (ANN) Khả học, nhớ ứng dụng Được phát triển ứng dụng nhiều lĩnh vực p1 a1 p2 p3 ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ a2 7/10/2020 Giới thiệu (2) Cho vector x y Xác định y=f(x)=? x y = f(x) = 2x y 10 Cho x = y = 14 y = f(x) = ? Thay đổi liệu: x y 2.5 4.1 8.33 10.1 Cho x = y = ? khó xác định Ứng dụng ANN xác định y=f(x): Thu thập liệu vectors x y (dữ liệu nhiều, độ xác lớn) Xây dựng mạng nơ-ron huấn luyện mạng dựa liệu thu thập Khi ANN hoạt động hàm: y=fNN(x) Với giá trị xn ta có yn = fNN(xn) ~ f(xn) ANN huấn luyện để xấp xỉ quan hệ phi tuyến ©PGS.TS Nguyễn Chí Ngôn, Đại học Cần Thơ Giới thiệu (3) Du bao Covid-2019 Viet Nam 300 250 200 150 100 50 6/3 16/3 26/3 5/4 15/4 25/4 5/5 15/5 ANN dự báo diễn biến từ liệu có? ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ 7/10/2020 Giới thiệu (4) Lớp vào Dữ liệu p1-p12 làm ngõ vào w1 p1 lớp ẩn lớp ẩn lớp 1,1 w31,1 p w31,2 p12 b11 b3 b12 1 ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ a3 Dữ liệu thời tiết (0, 0.5, 1) làm ngõ Huấn luyện dự báo Giới thiệu (5) • Dự báo lỗi chạm đất đường dõy ã D bỏo ph ti âPGS.TS Nguyn Chớ Ngụn, Đại học Cần Thơ 7/10/2020 Nơ-ron sinh học Bộ não người chứa khoảng 1011 nơ-ron, với 1014 liên kết, tạo thành mạng tế bào thần kinh khổng lồ Mỗi nơ-ron: phần thân (soma), trục thần kinh (axon) hệ thống dạng chứa dây thần kinh vào (dendrite) Hoạt động: Khi điện dây thần kinh vào vượt ngưỡng đó, nơ-ron bắt đầu giật (firing), tạo nên xung điện truyền trục thần kinh giải phóng lượng cho dây thần kinh vào nơ-ron khác qua khớp nối (synapse) Có thể mơ hình hóa nơ-ron sinh học ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ Mơ hình nơ-ron ngõ vào (1) Cấu tạo nơ-ron gồm: - Ngõ vào p; Ngõ a - Trọng số kết nối w - Ngưỡng kích hoạt b; - Hàm kích hoạt f; Tính tốn nơ-ron: a f ( wp b) Hàm kích hoạt (hàm truyền): Có nhiều dạng hàm truyền: Tuyến tính phi tuyến hàm thơng dụng: Purelin, Logsig Tansig f(n) = n ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ f (n ) 1 e n f (n ) e 2 n e 2n 10 7/10/2020 Mơ hình nơ-ron ngõ vào (2) Ví dụ tính toán nơ-ron (1): Cho p=0.5, w = 0.2, b=0.9 f hàm Logsig Ta có: a = f(wp +b) = f(0.2*0.5+0.9)=f(1)= 0.7311 e 1 Ví dụ tính tốn nơ-ron (2): Cho p=0.5, w = 0.2, b=0.9 f hàm Tansig Ta có: a = f(wp +b) = f(0.2*0.5+0.9)=f(1)= e 2 0.7616 e 2 Quá trình huấn luyện nơ-ron trình điều chỉnh giá trị trọng số kết nối w giá trị ngưỡng b, cho ngõ a gần với giá trị mong muốn ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ 11 Các hàm truyền nơ-ron Học viên tự tham khảo: MATLAB - Neural network toolbox hàm thường sử dụng ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ 12 7/10/2020 Mơ hình nơ-ron nhiều ngõ vào (1) Khi ngõ vào nơ-ron vector có R phần tử: p = [p1, p2, , pR]‘ Cấu trúc: R ngõ vào R trọng số kết nối W=[w1,1, , w1,R] Ngưỡng kích hoạt b Hàm kích hoạt f Ngõ a Tính tốn nơ-ron: 13 ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ Mơ hình nơ-ron nhiều ngõ vào (2) Ví dụ tính tốn nơ-ron nhiều ngõ vào Cho mơ hình nơ-ron hình vẽ, với: p 2 , 1, , 0.5 , 10T W 0.3 , 0.5 , 0.2 , 0.1, 0.8 p 2, 1, 4, 0.5, 10 ' W 0.3, 0.5, 0.2, 0.1, 0.8 b 0.05 f : Logsig b 0.05 f : Logsig Xác định ngõ a: n Wp b 0.3, 0.5, 0.2, 0.1, 0.8* 2, 1, 4, 0.5, 10 0.05 n 0.3 * 0.5 *1 0.2 * 0.1* 0.5 0.8 *10 0.05 10 T a f (Wp b) f (n) ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ 0.9999546 e 10 14 7/10/2020 Mơ hình mạng nơ-ron Mạng nơ-ron hệ thống gồm nhiều nơ-ron đơn lẻ kết nối với nhau, để thực chức tính tốn Tính mạng phục thuộc vào: Cấu trúc, trọng số kết nối q trình tính tốn nơ-ron đơn lẻ (hàm truyền) Mạng nơ-ron học từ liệu mẫu tổng quát hóa dựa mẫu học (mạng có khả nhớ) Ví dụ cấu trúc mạng: Mạng truyền thẳng Mạng hồi qui 15 ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ Phân loại mạng nơ-ron Dựa theo kiểu kết nối nơ-ron: có loại Mạng truyền thẳng (feedforward NN): Kết nối khơng tạo thành chu trình Mạng hồi qui (recurrent NN): Kết nối tạo thành chu trình Mạng truyền thẳng Mạng hồi qui Dựa vào số lớp: có loại Mạng lớp Mạng nhiều lớp: Gồm lớp vào, lớp ẩn lớp Lớp vào khơng tính số lớp Khơng kết nối lớp; không nhảy lớp; không kết nối từ lớp lên lớp ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ 16 7/10/2020 Mạng nơ-ron lớp (1) Mơ hình mạng lớp với R nơ-ron lớp vào S nơ-ron lớp hình vẽ Lưu ý: lớp vào, dùng tiếp nhận thơng tin, khơng tham gia q trình tính tốn nên khơng kể lớp mạng Tính toán ngõ thứ i (i=1,s): R ni wi , j p j bi j 1 f ni với f hàm kích hoạt nơ-ron Thông thường, để đơn giản, nơ-ron lớp có hàm kích hoạt giống Kí hiệu wi,j trọng số kết nối từ nơ-ron thứ j đến nơ-ron thứ i Mạng nơ-ron lớp 17 ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ Mạng nơ-ron lớp (2) Biểu diễn ngõ mạng: a = f(Wp + b) p = [p1, p2, , pR]T: vectơ ngõ vào a = [a1, a2, , aS]: vectơ ngõ ra; b = [b1, b2, , bS ]T: vectơ ngưỡng kích hoạt : Ma trận trọng số kết nối Lưu ý: Kí hiệu wi,j trọng số kết nối từ nơ-ron thứ j đến nơ-ron thứ i p1 Ví dụ 1: Cho mạng lớp, có: p=[2, 1.5, nơ-ron tuyến tính; ma trận trọng số: w w12 w13 W 11 w21 w22 w23 Ta có: Wp+b = 3]T; b=[0.5, 0.6]T; w1,1 p2 p3 a1 b1 w2,3 a2 b2 2 1.9 ; f(n)=n a=f(Wp+b) = [1.9, 4.0]T 1.5 6 4.0 hay a1= 1.9 a2=4.0 ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ 18 7/10/2020 Mạng nơ-ron nhiều lớp (1) Mạng nơ-ron tổ chức thành nhiều lớp, với ngõ lớp trước ngõ vào lớp sau Q trình tính tốn mạng, thực lớp Tính tốn lớp hồn tồn giống tính tốn mạng lớp Các số 1,2,3: kí hiệu thứ tự lớp 19 ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ Mạng nơ-ron nhiều lớp (2) Ví dụ 2: Cho mạng lớp hình vẽ, tính giá trị ngõ ra, với: Lớp vào lớp ẩn lớp ẩn lớp Lớp vào: p = [2, 1.5, 3]T Lớp ẩn 1: w 1,1 w 1,1 a1 a1 p1 b1 = [0.5, 0.6]T 2 w 2,1 b w31,1 b11 W1 = [0.1, 0.2, 0.3; 0.5, 0.4, 0.6] p 1 f1: hàm purelin w31,2 w21,2 b3 a a 2 p3 Lớp ẩn 2: w 2,2 w 2,3 b2 = [0.5, 0.6]T b12 b22 W2 = [0.5, 0.2; 0.1, 0.6]; f2: hàm Logsig 1 Lớp ra: b3 = 0.2; W3 = [0.4, 0.2]; f3: hàm Tangsig a3 Giải: Ngõ lớp ẩn 1: Giống Ví dụ phần mạng nơ-ron lớp Ta có a11=1.9 a12=4 Ngõ lớp ẩn 2: ngõ vào lớp ngõ lớp W2p2 + b2 = [0.5, 0.2; 0.1, 0.6]*[1.9, 4]T + [0.5, 0.6]T=[2.25, 3.19]T a2=f2(W2p2+b2)=[f2(2.25), f2(3.19)]T= hay: a21= 0.9047 a22= 0.9605 ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ 1 e 2.25 T = [.9047, 9605]T e 3.19 20 10 7/10/2020 Mạng nơ-ron nhiều lớp (3) Ngõ lớp ẩn 3: ngõ vào lớp ngõ lớp 2, ta có: W3p3 + b3= [0.4, 0.2]*[0.9047, 0.9605]T + 0.2 = 0.7540 e 2*0.754 = 0.6375 e 2*0754 a3=f3(W3p3 + b3)=f3(0.7540)= Một dạng biểu diễn khác mạng trên: Lớp vào lớp ẩn lớp ẩn lớp w11,1 p1 w31,1 p2 w31,2 p3 b11 a3 b3 b12 1 Mạng gọi mạng truyền thẳng nhiều lớp (Multilayer feedforward neural network) - Học phần tập trung vào mạng ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ 21 Các hàm tạo ANN MATLAB ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ 22 11 7/10/2020 Covid-2019 VN (1) 300 Du lieu Covid-2019 VN 6/3-10/4/2020 250 200 150 100 50 6/3 11/3 16/3 21/3 26/3 31/3 5/4 9/4 14/4 Ngày ANN Số ca nhiễm (đã huấn luyện) Dự báo số ca nhiễm tương lai ANN (đơn giản) 23 ©PGS.TS Nguyễn Chí Ngôn, Đại học Cần Thơ Covid-2019 VN (2) % Load ANN da huan luyen load net_covid % Du bao date=65; nhiem=sim(net,date); nhiem=round(nhiem); Du bao Covid-2019 Viet Nam 300 250 estimation real data 200 150 % Hien thi ket qua disp(['ngay thu:', num2str(date),'so ca nhiem du doan la:’, num2str(nhiem)]) 100 50 6/3 >> covidVN_ANNdubao thu: 65 so ca nhiem du doan la: 283 ©PGS.TS Nguyễn Chí Ngơn, Đại học Cần Thơ 16/3 26/3 5/4 15/4 25/4 5/5 15/5 Link file MATLAB 24 12