Vous êtes sur la page 1sur 25

# BTL:Mạng Nơ-ron và ứng dụng

Contents
I. Neural Network Assignment 1: .................................................................................................................. 2
1. Part 1: MLP ............................................................................................................................................ 2
Phần i: ................................................................................................................................................... 3
Phần ii:................................................................................................................................................... 4
2. Part 2: RBF ............................................................................................................................................. 6
3. Part 3: Function Approximation by Neural Networks ........................................................................... 8
Phần i: ................................................................................................................................................... 8
Phần ii:................................................................................................................................................. 11
II. Neural Network Assignment 2: Training of Neural Networks ................................................................ 14
1. Step 1: Generate Test Data ................................................................................................................. 14
2. Step 2: Generate Training Data........................................................................................................... 15
3. Step 3: Train a neural network with 1 hidden neuron ........................................................................ 17
4. Step 4: Train a neural network with n hidden neurons and j samples ............................................... 23
5. Step 5: Test error versus different number of hidden neurons and different sizes of training data
(Table 1) .................................................................................................................................................. 23
6. Step 6: Training error versus different number of hidden neurons and different sizes of training data
(Table 2) .................................................................................................................................................. 24
7. Step 7: Nhận xét .................................................................................................................................. 24
III. Tài liệu tham khảo:................................................................................................................................. 25

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 1

BTL:Mạng Nơ-ron và ứng dụng

## I. Neural Network Assignment 1:

1. Part 1: MLP
-Mạng Perceptron 3 lớp với 1 lớp vào, 1 lớp ẩn và 1 lớp ra. Hàm activation function các nơ-ron
lớp ẩn là hàm sigmoid và hàm activation function các nơ-ron lớp ra là linear function.

## Gọi số nơ-ron lớp hidden là m

-wji và vkj là các weights của neural network. Những đầu ra của lớp hidden là:

1
zj = fj (sj) = −𝑠 𝑗
1+ 𝑒

trong đó:

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 2

BTL:Mạng Nơ-ron và ứng dụng

Phần i:
n=1, k=1, j=1,2

 Với x = 0:

## sj = wj0 + wj1. x1 = wj0

 s1 = w10 = 0
 s2 = w20 = 1

1
zj = fj (sj) = −𝑠 𝑗
1+ 𝑒
1
 z1 = f1(s1) = = 0,5
1+ 𝑒 0
1
 z2 = f2(s2) = = 0,73106
1+ 𝑒 −1

y1 = v10 + v11.z1 + v12.z2 = v0 + v1.z1 + v2.z2 = 0 + 0,1 . 0,5 + 0,5 . 0.73106 = 0,41553

 Với x = 1:

sj = wj0 + wj1. x1

##  s1 = w10 + w11.x = 0 + (-1).1 = -1

 s2 = w20 + w21.x = 1 + 0,2 . 1 = 1,2

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 3

BTL:Mạng Nơ-ron và ứng dụng

1
zj = fj (sj) = −𝑠 𝑗
1+ 𝑒
1
 z1 = f1(s1) = = 0,26894
1+ 𝑒 +1
1
 z2 = f2(s2) = = 0,768525
1+ 𝑒 −1,2

y1 = v10 + v11.z1 + v12.z2 = v0 + v1.z1 + v2.z2 = 0 + 0,1 . 0,26894 + 0,5 . 0,768525 = 0,41116

Phần ii:
y = v10 + v11.z1 + v12.z2

1
z1 = f1(s1) =
1+ 𝑒 −(𝑤 10 +𝑤 11 𝑥 )
1
z2 = f2(s2) =
1+ 𝑒 −(𝑤 20 +𝑤 21 𝑥 )

𝜕𝑦 𝜕𝑦 𝜕𝑦
=1; = z1 ; = z2
𝜕𝑣0 𝜕𝑣1 𝜕𝑣2

Tổng quát:
1
𝜕(1+𝑒 −𝑟 ) (−1) 1 𝑒 −𝑟 + 1−1 1 1
−𝑟
𝜕𝑟
=
(1+ 𝑒 −𝑟 )2
(𝑒 ) (-1) = (
1+ 𝑒 −𝑟 ) ( 1+𝑒 −𝑟
)=
1+ 𝑒 −𝑟
(1 -
1+ 𝑒 −𝑟
)

𝜕𝑦 𝜕𝑧1
 = v1 . = v1 . z1 . (1 – z1)
𝜕𝑤 10 𝜕𝑤 10
𝜕𝑦
 = v1 . z1 . (1 – z1) . x
𝜕𝑤 11
𝜕𝑦 𝜕𝑧2
 = v2 . = v2 . z2 . (1 – z2)
𝜕𝑤 20 𝜕𝑤 20
𝜕𝑦
 = v2 . z2 . (1 – z2) . x
𝜕𝑤 21

 Với x = 0:

𝜕𝑦 𝜕𝑦 𝜕𝑦
=1; = z1 = 0,5 ; = z2 = 0,73106
𝜕𝑣0 𝜕𝑣1 𝜕𝑣2

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 4

BTL:Mạng Nơ-ron và ứng dụng

𝜕𝑦 𝜕𝑧1
= v1 . = v1 . z1 . (1 – z1) = 0,1 . 0,5 . (1 – 0,5) = 0,25
𝜕𝑤 10 𝜕𝑤 10

𝜕𝑦
= v1 . z1 . (1 – z1) . x = 0,1 . 0,5 . (1 – 0,5) . 0 = 0
𝜕𝑤 11

𝜕𝑦 𝜕𝑧2
= v2 . = v2 . z2 . (1 – z2) = 0,5 . 0,73106 . (1 – 0,73106) = 0,09831
𝜕𝑤 20 𝜕𝑤 20

𝜕𝑦
= v2 . z2 . (1 – z2) . x = 0,5 . 0,73106 . (1 – 0,73106) . 0 = 0
𝜕𝑤 21

 Với x = 1:

𝜕𝑦 𝜕𝑦 𝜕𝑦
=1; = z1 = 0,26894 ; = z2 = 0,768525
𝜕𝑣0 𝜕𝑣1 𝜕𝑣2

𝜕𝑦 𝜕𝑧1
= v1 . = v1 . z1 . (1 – z1) = 0,1 . 0,26894 . (1 – 0,26894) = 0,01966
𝜕𝑤 10 𝜕𝑤 10

𝜕𝑦
= v1 . z1 . (1 – z1) . x = 0,1 . 0,26894 . (1 – 0,26894) . 1 = 0,01966
𝜕𝑤 11

𝜕𝑦 𝜕𝑧2
= v2 . = v2 . z2 . (1 – z2) = 0,5 . 0,768525 . (1 – 0,768525) = 0,088947
𝜕𝑤 20 𝜕𝑤 20

𝜕𝑦
= v2 . z2 . (1 – z2) . x = 0,5 . 0,768525 . (1 – 0,768525) . 1 = 0.088947
𝜕𝑤 21

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 5

BTL:Mạng Nơ-ron và ứng dụng

2. Part 2: RBF

## m outputs : y = [y1, y2, … ym]T

𝐻
Giả thiết: yj = 𝑖=1 𝑐𝑗𝑖 𝑅𝑖 (𝑥) , j = 1, 2, 3, … , m

(𝑥− 𝑢 𝑖 )𝑇 (𝑥− 𝑢 𝑖
𝑅𝑖 (𝑥) = exp ( - )
2𝜎𝑖2

1 𝑚
1 1
E= x 𝑗 =1(𝑦𝑗 𝑥 − 𝑦𝑗 )2 = x (𝑦1 𝑥 − 𝑦1 )2 + x (𝑦2 𝑥 − 𝑦2 )2 + …,
2 2 2

## 𝜕𝐸 𝜕𝑦1 (𝑥) 𝜕𝑦2 (𝑥)

= (𝑦1 𝑥 − 𝑦1 ) + (𝑦2 𝑥 − 𝑦2 ) + ….
𝜕𝑥 1 𝜕𝑥 1 𝜕𝑥 1

……….

## 𝜕𝐸 𝜕𝑦1 (𝑥) 𝜕𝑦2 (𝑥)

= (𝑦1 𝑥 − 𝑦1 ) + (𝑦2 𝑥 − 𝑦2 ) + ….
𝜕𝑥 𝑛 𝜕𝑥 𝑛 𝜕𝑥 𝑛

(𝑥 1 − 𝑢 𝑖1 )2 + (𝑥 2 − 𝑢 𝑖2 )2 + …
𝑅𝑖 (𝑥) = exp ( - )
2𝜎𝑖2

𝐻
y1 = 𝑖=1 𝑐1𝑖 𝑅𝑖 (𝑥)

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 6

BTL:Mạng Nơ-ron và ứng dụng

𝜕𝑥 1
= 𝑖=1 𝑐1𝑖 𝜕𝑥
1

Với :

𝜕 exp ( − )
𝐻 𝜕𝑅𝑖 (𝑥) 𝐻 2𝜎2𝑖
𝑖=1 𝜕𝑥 = 𝑖=1
1 𝜕𝑥 1

𝐻 (𝑢𝑖1 − 𝑥1 )
= 𝑖=1 𝑅𝑖 (𝑥) .
𝜎2𝑖

Nên :

## 𝜕𝑦1 (𝑥) 𝐻 (𝑢𝑖1 − 𝑥1 )

𝜕𝑥 1
= 𝑖=1 𝑐1𝑖 . 𝑅𝑖 𝑥 .
𝜎2𝑖

Tương tự :

## 𝜕𝑦2 (𝑥) 𝐻 (𝑢𝑖1 − 𝑥1 )

𝜕𝑥 1
= 𝑖=1 𝑐2𝑖 . 𝑅𝑖 𝑥 .
𝜎2𝑖

…….

## 𝜕𝑦𝑛 (𝑥) 𝐻 (𝑢𝑖1 − 𝑥1 )

𝜕𝑥 1
= 𝑖=1 𝑐𝑛𝑖 . 𝑅𝑖 𝑥 .
𝜎2𝑖

## 𝜕𝑦1 (𝑥) 𝐻 (𝑢𝑖𝑛 − 𝑥𝑛 )

𝜕𝑥 𝑛
= 𝑖=1 𝑐1𝑖 . 𝑅𝑖 𝑥 .
𝜎2𝑖

Tương tự :

## 𝜕𝑦2 (𝑥) 𝐻 (𝑢𝑖𝑛 − 𝑥𝑛 )

𝜕𝑥 𝑛
= 𝑖=1 𝑐2𝑖 . 𝑅𝑖 𝑥 .
𝜎2𝑖

…….

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 7

BTL:Mạng Nơ-ron và ứng dụng

## 𝜕𝑦𝑛 (𝑥) 𝐻 (𝑢𝑖𝑛 − 𝑥𝑛 )

𝜕𝑥 𝑛
= 𝑖=1 𝑐𝑛𝑖 . 𝑅𝑖 𝑥 .
𝜎2𝑖

## Thay vào ta thu được:

𝜕𝐸 𝐻 (𝑢𝑖1 − 𝑥1 )
𝜕𝑥 1
= (𝑦1 𝑥 − 𝑦1 ) 𝑖=1 𝑐1𝑖 . 𝑅𝑖 𝑥 .
𝜎2𝑖
+ (𝑦2 𝑥 − 𝑦2 )

𝐻 (𝑢𝑖1 − 𝑥1 )
𝑖=1 𝑐2𝑖 . 𝑅𝑖 𝑥 .
𝜎2𝑖
+ ….

𝜕𝐸 𝐻 (𝑢𝑖2 − 𝑥2 )
𝜕𝑥 2
= (𝑦1 𝑥 − 𝑦1 ) 𝑖=1 𝑐1𝑖 . 𝑅𝑖 𝑥 .
𝜎2𝑖
+ (𝑦2 𝑥 − 𝑦2 )

𝐻 (𝑢𝑖2 − 𝑥2 )
𝑖=1 𝑐2𝑖 . 𝑅𝑖 𝑥 .
𝜎2𝑖
+ ….

…….

𝜕𝐸 𝐻 (𝑢𝑖𝑛 − 𝑥𝑛 )
𝜕𝑥 𝑛
= (𝑦1 𝑥 − 𝑦1 ) 𝑖=1 𝑐1𝑖 . 𝑅𝑖 𝑥 .
𝜎2𝑖
+ (𝑦2 𝑥 − 𝑦2 )

𝐻 (𝑢𝑖𝑛 − 𝑥𝑛 )
𝑖=1 𝑐2𝑖 . 𝑅𝑖 𝑥 .
𝜎2𝑖
+ ….

Phần i:
MLP 3 lớp

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 8

BTL:Mạng Nơ-ron và ứng dụng

Đồ thị hàm số trên có thể được xấp xỉ bởi mạng nơ-ron MLP với 3 hàm sigmoid.

 sigmoid

w11
w12

b11
w21 w22
linear y
x

 sigmoid
b12
w31
w32
b21

 sigmoid
logsig

b31

Ba hàm sigmoid được sử dụng tương ứng với các nơ-ron có đặc điểm như sau:

## - nơ ron 3: tâm tại x3  15 ; span3  1

Từ đó, ta tính được các trọng số và bias tương ứng với các hàm:

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 9

BTL:Mạng Nơ-ron và ứng dụng

 sigmoid
1
-2
7

1
 linear y
x 6

1  sigmoid 0.5

-5
-1

 sigmoid
logsig

-15

x1.w11  b1  0

Chọn w11  1 , ta có b1  7

x2 .w21  b2  0

Chọn w21  1 , ta có b2  5

x3 .w31  b3  0

## Chọn w31  1 , ta có b3  15

Vì span1  2 , ta có w12  2

Vì span2  6 , ta có w22  6

## Vì span3  1, ta có w32  1

Vì đồ thị bắt đầu từ y=0.5, ta dịch chuyển đồ thị bằng trọng số của bias b12  0.5 .

Vậy mạng nơ ron có thể sử dụng matlab để vẽ lại hàm y-x như sau:

x=-10:.1:20;

b1=7;

b2=-5;

b3=-15;

w1=-2;

w2=6;

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 10

BTL:Mạng Nơ-ron và ứng dụng

w3=-1;

bias=.5;

kq1=logsig(x+b1);

kq2=logsig(x+b2);

kq3=logsig(x+b3);

y=w1*kq1+w2*kq2+w3*kq3+bias;

plot(x,y)

## Đồ thị của mạng nơ ron thu được có dạng:

Phần ii:
RBF network with Gauss activation fuction

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 11

BTL:Mạng Nơ-ron và ứng dụng

Đồ thị hàm số trên có thể được xấp xỉ bởi mạng nơ ron RFB với 2 hàm Gauss.

## Sơ đồ của mạng có thể được mô tả như sau:

Gaussian
w1

 Linear y
x w2

Gaussian b1

2 hàm Gauss tương ứng với 2 nơ ron được sử dụng có đặc điểm:

## - nơ ron 2: tâm tại x=20, hệ số trải 0.5, chiều cao = 10.

Vì đồ thị bắt đầu từ y=2, ta dịch chuyển đồ thị bằng trọng số của bias b1  2 .

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 12

BTL:Mạng Nơ-ron và ứng dụng

Gaussian
5

 Linear y
x 10

Gaussian 2

−(𝑥 −10)2
𝑦1 = 𝑒 2.1 2

−(𝑥 −20)2
𝑦2 = 𝑒 2.(0,5)2

## Có thể sử dụng matlab để vẽ lại hàm y-x như sau:

x=5:.1:25;

sigma1=1;

sigma2=.5;

w1=-5;

w2=10;

bias=2;

y1=exp(-(x-10).^2/(2*sigma1^2));

y2=exp(-(x-20).^2/(2*sigma2^2));;

y=w1*y1+w2*y2+bias;

plot(x,y)

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 13

BTL:Mạng Nơ-ron và ứng dụng

## II. Neural Network Assignment 2: Training of Neural Networks

Bài tập này sử dụng phần mềm NeuroModeler version 1.5 để thực hiện

Neural Network model: 3-Layer MLP với 1-input neuron (x), và 1-output neuron (y)

## 1. Step 1: Generate Test Data

Tạo dữ liệu test và lưu vào file có tên testDataFile.dat có 31 mẫu dữ liệu trong dải -1 ≤ x ≤ 2 theo
hàm y = x2 gồm 2 cột (x,y), 31 hàng:

-1.0 1.0

-0.9 0.81

-0.8 0.64

-0.7 0.49

-0.6 0.36

-0.5 0.25

-0.4 0.16

-0.3 0.09

-0.2 0.04

-0.1 0.01

0.0 0.0

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 14

BTL:Mạng Nơ-ron và ứng dụng

0.1 0.01

0.2 0.04

0.3 0.09

0.4 0.16

0.5 0.25

0.6 0.36

0.7 0.49

0.8 0.64

0.9 0.81

1.0 1.0

1.1 1.21

1.2 1.44

1.3 1.69

1.4 1.96

1.5 2.25

1.6 2.56

1.7 2.89

1.8 3.24

1.9 3.61

2.0 4.0

## 2. Step 2: Generate Training Data

Tạo dữ liệu training nằm trong dải -1.5 ≤ x ≤ 2.5, dải dữ liệu training hơi lớn hơn dải dữ liệu test.
Để thực hiện, sử dụng 1 số file dữ liệu huấn luyện có kích thước khác nhau:

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 15

BTL:Mạng Nơ-ron và ứng dụng

## - TrainingFile5.dat: 5 mẫu (như đề bài)

- TrainingFile9.dat: 9 mẫu

-1.5 2.25

-1.0 1.0

-0.5 0.25

0.0 0.0

0.5 0.25

1.0 1.0

1.5 2.25

2.0 4.0

2.5 6.25

- TrainingFile17.dat: 17 mẫu

-1.5 2.25

-1.25 1.5625

-1.0 1.0

-0.75 0.5625

-0.5 0.25

-0.25 0.0625

0.0 0.0

0.25 0.0625

0.5 0.25

0.75 0.5625

1.0 1.0

1.25 1.5625

1.5 2.25

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 16

BTL:Mạng Nơ-ron và ứng dụng

1.75 3.0625

2.0 4.0

2.25 5.0625

2.5 6.25

## 3. Step 3: Train a neural network with 1 hidden neuron

Huấn luyện 1 mạng nơ-ron với 1 nơ-ron lớp ẩn (Huấn luyện với file TrainingFile1.dat, ghi lại
training error khi quá trình training kết thúc). Kiểm thử với testDataFile và ghi lại test error.

training)

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 17

BTL:Mạng Nơ-ron và ứng dụng

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 18

BTL:Mạng Nơ-ron và ứng dụng

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 19

BTL:Mạng Nơ-ron và ứng dụng

## - Compare with data:

- Percentage Error:

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 20

BTL:Mạng Nơ-ron và ứng dụng

- Histogram:

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 21

BTL:Mạng Nơ-ron và ứng dụng

- Scattering:

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 22

BTL:Mạng Nơ-ron và ứng dụng

## 4. Step 4: Train a neural network with n hidden neurons and j samples

Làm tương tự với n = 1, j = 2, lặp lại step 3 với n là số nơ-ron lớp ẩn và j là số mẫu trong dữ liệu
huấn luyện (ví dụ cho j = 2 là dùng TrainingFile2 để huấn luyện)

…..

## Tiếp tục với n = 6, j = 17, lặp lại step 3.

5. Step 5: Test error versus different number of hidden neurons and different
sizes of training data (Table 1)
Giống như step 4 nhưng là với test error: (Table 1)

data

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 23

BTL:Mạng Nơ-ron và ứng dụng

## 6. Step 6: Training error versus different number of hidden neurons and

different sizes of training data (Table 2)
Training Error (Table 2)

g error

-8

-8

2 -4

2 5 9 3 -4

3 5 -4

## 7. Step 7: Nhận xét

- Khi số mẫu training tăng lên: giá trị test error giảm xuống, training error tăng lên, mặc dù điều
này có thể không phải lúc nào cũng đúng.

- Khi sô Neuro ẩn tăng lên: giá trị test error giảm, training error giảm, mặc dù điều này có thể
không phải lúc nào cũng đúng.

## Sinh viên: Nguyễn Mạnh Hùng (ĐH BKHN) Page 24

BTL:Mạng Nơ-ron và ứng dụng

## III. Tài liệu tham khảo:

[1] Slides bài giảng môn mạng nơ-ron và ứng dụng (ĐH BKHN) – TS. Hoàng Mạnh Thắng

Fausett