You are on page 1of 41

MẠNG NƠRON NHÂN

TẠO

ThS. Phạm Nguyễn Nhựt Thanh


Email: pnn.thanh@hutech.edu.com
Nội dung chính

3.1 Tổng quan về mạng nơron nhân tạo

3.2 Mạng truyền thẳng một lớp

3.3 Mạng truyền thẳng nhiều lớp (MLP)

3.4 Lan truyền ngược (Back propagation)

3.5 Các ứng dụng

GV: P. N. N. Thanh
Đặt vấn đề
 Những điều thú vị về Bộ não con người

Là hệ thống xử lý thông tin phức hợp, phi tuyến và song song


có khả năng ghi nhớ, học tập, tổng quát hóa và xử lý lỗi.

GV: P. N. N. Thanh
Đặt vấn đề
 Tế bào thần kinh:

Cấu tạo gồm: thân tế bào (soma), đầu dây thần kinh vào
(dendrite), khớp nối (synapse), sợi trục (axon) và đầu dây
thần kinh ra
GV: P. N. N. Thanh
3.1 Tổng quan về mạng nơron nhân tạo
 Để mô tả một tế bào thần kinh, người ta đã quan sát cấu
tạo và sử dụng mô hình giả lập sau:
Hàm tích hợp ngõ vào
x1
w1
x2 w2
a y

wm 
xm Hàm kích hoạt

x   x1 x2 ... xm 
T
vector tín hiệu vào tế bào thần kinh

w   w1 w2 ... wm  vector trọng số tế bào thần kinh


T

GV: P. N. N. Thanh
3.1 Tổng quan về mạng nơron nhân tạo
 Hàm tích hợp ngõ vào

 Hàm tuyến tính (linear function):


 m 
f  net    w j x j     w T x  
 j 1 
 Hàm toàn phương (quadratic function):
 m 2
f  net    w j x j   
 j 1 
 Hàm cầu (spherical function):
 2 m 2
f  net      x j  w j        x  w   x  w   
2 T

 j 1 
GV: P. N. N. Thanh
3.1 Tổng quan về mạng nơron nhân tạo
 Hàm tác động
1 if f  0
 Hàm nấc (step): a  f   
0 if f  0
1 if f  0
 Hàm dấu (sign): a  f   
1 if f  0
1 if f  1

 Hàm dốc bão hòa: a  f    f if 0  f  1
0 if f  0

1 if f  1

 Hàm tuyến tính bão hòa: a  f    f if  1  f  1
1 if f  1

GV: P. N. N. Thanh
3.1 Tổng quan về mạng nơron nhân tạo
 Hàm tác động

 Hàm tuyến tính (purelin):


a f   f

 Hàm dạng S đơn cực (logistic sigmoid function -


logsig): 1
a f  
1  e f
 Hàm dạng S đơn cực (hyperbolic tangent sigmoid
function - tansig):
1  e 2 f
a f  
1  e 2 f
GV: P. N. N. Thanh
3.1 Tổng quan về mạng nơron nhân tạo
 Đồ thị của các hàm tác động

GV: P. N. N. Thanh
3.1 Tổng quan về mạng nơron nhân tạo
 Ví dụ tính ngõ ra của tế bào thần kinh
x1 w1
w2 y

x2 a (.)
w3

x3

Tính ngõ ra 𝑦 của tế bào thần kinh trên khi hàm tích hợp ngõ vào
là hàm tuyến tính, hàm tác động là sigmoid đơn cực và

x1  0.5; x2  0.8; x3  0.4

w1  0.5; w2  0.3; w3  0.1;  0.4

GV: P. N. N. Thanh
3.1 Tổng quan về mạng nơron nhân tạo
 Các loại cấu trúc mạng nơron

GV: P. N. N. Thanh
3.1 Tổng quan về mạng nơron nhân tạo
 Các phương pháp huấn luyện mạng:

 Học có giám sát

 Học không giám sát

 Học củng cố

GV: P. N. N. Thanh
3.1 Tổng quan về mạng nơron nhân tạo
 Các phương pháp huấn luyện mạng:
 Học có giám sát

Tín hiệu vào Trọng số (W) Tín hiệu ra


x của mạng y
thần kinh

Bộ tạo tín
d
e hiệu sai lệch
Tín hiệu ra
Tín hiệu sai lệch
mong muốn

GV: P. N. N. Thanh
3.1 Tổng quan về mạng nơron nhân tạo
 Các phương pháp huấn luyện mạng:
 Học không giám sát

Tín hiệu vào Trọng số (W) Tín hiệu ra


x của mạng y
thần kinh

GV: P. N. N. Thanh
3.1 Tổng quan về mạng nơron nhân tạo
 Các phương pháp huấn luyện mạng:
 Học củng cố

Tín hiệu vào Trọng số (W) Tín hiệu ra


x của mạng y
thần kinh

Bộ tạo tín
d
hiệu đánh giá
Tín hiệu đánh giá Tín hiệu
củng cố

GV: P. N. N. Thanh
3.2 Mạng truyền thẳng một lớp
 Mạng Perceptron
x1 Perceptron
x1
y1 w1i
x2 x2 w2i
y2 a yi
x3
 
wmi
yn xm
xm

Mạng perceptron là mạng truyền thẳng 1 lớp, trong đó:


m
 Hàm tích hợp ngõ vào là hàm tuyến tính: neti  w
j 1
ji xj 

 Hàm kích hoạt ở ngõ ra là hàm nấc: yi  a  neti   step  neti 

GV: P. N. N. Thanh
3.2 Mạng truyền thẳng một lớp
 Ví dụ tính ngõ ra của Perceptron
x1 w1
w2 a y
x2
 
w3
x3

Tính ngõ ra của Perceptron trên khi:

x1  0.5; x2  1; x3  0.3

w1  0.5; w2  0.3; w3  0.1;  0.1

GV: P. N. N. Thanh
3.2 Mạng truyền thẳng một lớp
x0  1
x1 x1 w0i  
w1 w1i
x2 w2 x2 w2i
a yi a yi
  
wm wmi 0

xm xm

x   1, x1 , x2 ,..., xm 
T

w   , w1 , w2 ,..., wm 
m T
net   w j x j  
j 1
net  w T x

GV: P. N. N. Thanh
3.2 Mạng truyền thẳng một lớp
 Thuật toán huấn luyện Perceptron
Thuật toán học sửa sai (Delta learning rule)

wi  k  1  wi  k   wi  k 

wi  k    rx  k 

ri  k   di  k   yi  k    i  k 

wi  k  1  wi  k     di  k   yi  k   x  k 

GV: P. N. N. Thanh
3.2 Mạng truyền thẳng một lớp
 Thuật toán huấn luyện Perceptron
Giả sử ta cần huấn luyện một Perceptron để đạt được ngõ ra
mong muốn 𝒅
 Bước 1: Chọn 𝜂, gán 𝑘 = 1, 𝐸 = 0, khởi động ngẫu nhiên
các trong số 𝒘𝑖 (𝑘)
 Bước 2: Tính ngõ ra của mạng: yi  k   step wi  k  x  k 
T
 
 Bước 3: Cập nhật trọng số và tính sai số:
wi  k  1  wi  k     di  k   yi  k   x  k 
1
E  E  d k   y k 
2

2
 Bước 4: Nếu 𝑘 < 𝐾 thì gán 𝑘 = 𝑘 + 1 và trở lại bước 2. Nếu
𝑘 = 𝐾 thì tiếp tục bước 5.
 Bước 5: Nếu 𝐸 = 0 thì kết thúc. Nếu 𝐸 > 0 thì gán 𝐸 = 0,
𝑘 = 1 và trở lại bước 2.
GV: P. N. N. Thanh
3.2 Mạng truyền thẳng một lớp
 Ví dụ huấn luyện Perceptron
Cổng OR: x1 w1
y
w2
x1 x2 b
Quan hệ vào ra mong muốn:
x2
𝒙𝟏 𝒙𝟐 𝒚
0 0 0 1
0 1 1
1 0 1
1 1 1 0 x1
1
GV: P. N. N. Thanh
3.2 Mạng truyền thẳng một lớp
 Khái niệm khả phân tuyến tính (Linearly Separable)
Xét một tập hợp 𝑺 gồm 2 loại phần tử 𝑥1 và 𝑥2 , nếu tồn tại một
đường thẳng (trường hợp 2 chiều), một mặt phẳng (trường hợp
3 chiều) hay một siêu mặt phẳng (trường hợp lớn hơn 3 chiều)
phân chia được tập hợp trên thành 2 tập hợp con 𝑺1 và 𝑺2 sao
cho 𝑺1 chỉ chứa 𝑥1 và 𝑺2 chỉ chứa 𝑥2 thì tập hợp 𝑺 được gọi là
khả phân tuyến tính.

GV: P. N. N. Thanh
3.2 Mạng truyền thẳng một lớp
 Khái niệm khả phân tuyến tính
 Nếu tập dữ liệu huấn luyện Perceptron là khả phân tuyến tính
thì giải thuật huấn luyện Perceptron hội tụ.
 Ghi chú:
 Nếu bài toán phân nhóm
khả phân tuyến tính thì có
thể sử dụng 1 Perceptron.
 Nếu bài toán phân nhóm
không khả phân tuyến
tính, cần sử dụng mạng
Perceptron nhiều lớp.
GV: P. N. N. Thanh
3.3 Mạng truyền thẳng nhiều lớp (MLP)
 Cấu trúc của mạng MLP

Cấu trúc mạng truyền thẳng 3 lớp


GV: P. N. N. Thanh
3.3 Mạng truyền thẳng nhiều lớp (MLP)
 Mạng truyền thẳng 3 lớp
 Hàm tích hợp ngõ vào của tế bào thần kinh thứ 𝑞 ở lớp ẩn:
m
netq  vqT x   v jq x j
j 1

 Ngõ ra tế bào thần kinh thứ 𝑞 ở lớp ẩn:

zq  ah  netq   ah  vqT x  ah . : hàm kích hoạt ở lớp ẩn

 Hàm tích hợp ngõ vào của tế bào thần kinh thứ 𝑖 ở lớp ra:
l
neti  w z   wqi zq
T
i
q 1

 Ngõ ra tế bào thần kinh thứ 𝑖 ở lớp ra:


yi  ao  neti   ao  wiT z  ao . : hàm kích hoạt ở lớp ra

GV: P. N. N. Thanh
3.3 Mạng truyền thẳng nhiều lớp (MLP)
 Ví dụ tính ngõ ra của mạng MLP
v11 a z1
x1
v21
 w1
1 a
w2  y
v12 a z2 3
x2
v22 
2

Tính ngõ ra 𝑦 của mạng MLP trên khi hàm kích hoạt lớp ẩn là S
lưỡng cực (tansig), hàm kích hoạt lớp ra là tuyến tính (purelin) và
x1  1; x2  3
v11  0.6; v12  0.5; v21  0.3; v22  0.8;1  0.1; 2  0.2
w1  0.4; w2  0.3;3  0.4
GV: P. N. N. Thanh
3.4 Lan truyền ngược (Back propagation)
 Tính sai số huấn luyện (Loss function)

Có nhiều cách để định nghĩa Loss function nhưng phổ biến


nhất là:
 Euclidean Norm (Chuẩn 2): p  q 2
  p  q 
i
i i

 Cross Entropy: H  p, q     p log q


i
i i

GV: P. N. N. Thanh
3.4 Lan truyền ngược (Back propagation)
 So sánh Euclidean Norm và Cross Entropy

GV: P. N. N. Thanh
3.4 Lan truyền ngược (Back propagation)
 Thuật toán suy giảm độ dốc (Gradient descent)

f  x df
0
df dx
0 df
x x
dx dx

df
x  x 
dx
 : Learning rate
df
0
E
dx w  w 
x1 x3 x2 x w

GV: P. N. N. Thanh
3.4 Lan truyền ngược (Back propagation)
 Ảnh hưởng của Learning rate

GV: P. N. N. Thanh
3.4 Lan truyền ngược (Back propagation)
 Tính sai số:
1 1 n
E  w , v   d  y 2    di  yi 
2 2

2 2 i 1

 l 
yi  ao  neti   ao   wqi zq 
 q 1 
 l   l  m 
 ao   wqi ah  netq    ao   wqi ah   v jq x j  
 q 1 
 q 1    j 1  

2
1 n   l  m 
E  w , v     di  ao   wqi ah   v jq x j   
2 i 1   q 1 
  j 1  
GV: P. N. N. Thanh
3.4 Lan truyền ngược (Back propagation)
 Tính đạo hàm sai số và luật cập nhật trong số

E  k   E  k    yi   neti 
   
wi  y i  net i  w i 

    di  k   yi  k     ao  neti  k     z  k  
  oi  k  z  k 

Biểu thức cập nhật trọng số lớp ra:


E  k 
 wi  k  1  wi  k     wi  k    oi  k  z  k 
wi

GV: P. N. N. Thanh
3.4 Lan truyền ngược (Back propagation)
 Tính đạo hàm sai số và luật cập nhật trong số
E  k   E  k    zq   netq 
   
vq  zq   netq   vq 
 n 
    di  k   yi  k   ao  neti  k   wiq  k    ah  netq  k     x  k  
 i 1 
 n 
     oi  k  wiq  k   ah  netq  k   x  k 
 i 1 
  hq  k  x  k 
Biểu thức cập nhật trọng số lớp ẩn:
E  k 
 vq  k  1  vq  k     vq  k    hq  k  x  k 
vq
GV: P. N. N. Thanh
3.4 Lan truyền ngược (Back propagation)
 Thuật toán lan truyền ngược
 Bước 1: Chọn 𝜂, gán 𝑘 = 1, 𝐸 = 0, khởi động ngẫu nhiên các
trong số lớp ẩn và lớp ra 𝒗𝑞 (𝑘), 𝒘𝑖 (𝑘) 1 ≤ 𝑞 ≤ 𝑙, 1 ≤ 𝑖 ≤ 𝑛

 Bước 2: (Lan truyền thuận dữ liệu) Tính ngõ ra của mạng với
ngõ vào 𝒙 𝑘 1≤𝑗≤𝑚 :

Lớp ẩn: netq  k   v qT  k  x  k  1  q  l 


zq  k   ah  netq  k  

Lớp ẩn: neti  k   wiT  k  z  k  1  i  n 


yi  k   ao  neti  k  
GV: P. N. N. Thanh
3.4 Lan truyền ngược (Back propagation)
 Thuật toán lan truyền ngược
 Bước 3: (Lan truyền ngược sai số) Cập nhật trọng số:

  
Lớp ra:  oi  k   di  k   yi  k  ao neti  k   1  i  n 
wi  k  1  wi  k    oi  k  z  k 
 n 
Lớp ẩn:  hq  k      oi  k  wiq  k   ah  netq  k   1  q  l 
 i 1 
vq  k  1  vq  k    hq  k  x  k 

 Bước 4: Tính sai số tích lũy:


1 n
E  E    di  k   yi  k  
2

2 i 1
GV: P. N. N. Thanh
3.4 Lan truyền ngược (Back propagation)
 Thuật toán lan truyền ngược
 Bước 5: Nếu 𝑘 < 𝐾 thì gán 𝑘 = 𝑘 + 1 và trở lại bước 2.
Nếu 𝑘 = 𝐾 thì tiếp tục bước 6.

 Bước 6: Nếu 𝐸 ≤ 𝜖 thì kết thúc.


Nếu 𝐸 > 𝜖 thì gán 𝐸 = 0, 𝑘 = 1 và trở lại bước 2.
Trong đó 𝜖 là một hằng số dương nhỏ đại diện cho mức ngưỡng
sai số chấp nhận được.

GV: P. N. N. Thanh
3.4 Lan truyền ngược (Back propagation)
 Đạo hàm của các hàm tác động thông dụng
 Hàm sigmoid đơn cực (logsig):
e f 1  e f  1
a f  
1 a f   
1  e f 1  e  1  e 
f 2 f 2

a  f   a  f  1  a  f  

 Hàm sigmoid lưỡng cực (tansig):

1  e   1  e 
2 f 2 2 f 2
2 f 2 f
1 e 4e
a f   a f   
1  e 2 f 1  e  1  e 
2 f 2 2 f 2

a  f   1  a2  f 

GV: P. N. N. Thanh
3.4 Lan truyền ngược (Back propagation)
 Ví dụ áp dụng giải thuật lan truyền ngược
v11 a z1
x1
v21
 w1
1 a
w2  y
v12 a z2 3
x2
v22 
2
Tính trọng số của mạng MLP trên sau 1 bước huấn luyện khi
hàm kích hoạt lớp ẩn là S đơn cực (logsig), hàm kích hoạt lớp ra
là tuyến tính (purelin), các mức ngưỡng đều bằng 0 và
v11  0.6; v12  0.5; v21  0.3; v22  0.8; w1  0.4; w2  0.3
 0.5 0.2 1.4 
Tập dữ liệu: X    D   0.8 1 1.5
 0.3 0.1 0.8 
GV: P. N. N. Thanh
3.5 Các ứng dụng
 Xấp xỉ hàm
 Học đặc tính
 Phân loại
 ....

GV: P. N. N. Thanh
3.5 Các ứng dụng

GV: P. N. N. Thanh
Toolbox của Matlab
 Neural Networks Toolbox
 mynet = perceptron % Khai báo một perceptron
 mynet = newff(X,D,N,{‘tansig’ ‘purelin’})
% Khai báo một mạng neuron 3 lớp
% Số ngõ vào là số hàng của X; số ngõ ra là số hàng của D
% Số nơ-ron ở lớp ẩn là N
% Hàm tác động ở lớp ẩn là tansig, ở lớp ra là purelin
 mynet = train(mynet,X,D)
% Huấn luyện mạng mynet với dữ liệu vào là X, ra là D
% Số cột của X = số cột của D = số mẫu dự liệu huấn luyện
 Y = sim(mynet,X)
% Tính ngõ ra của mạng mynet khi ngõ vào là X
% Số cột của X là số mẫu dữ liệu cần tính
 help nnet % Xem đầy đủ các hàm của NN Toolbox
Lý thuyết điều khiển tự động nâng cao GV: P. N. N. Thanh

You might also like