Tải bản đầy đủ (.pdf) (66 trang)

Tóm tắt luận văn thạc sĩ kỹ thuật ứng dụng mạng reservoir trong nhận dạng và điều khiển

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.22 MB, 66 trang )


1

 Việc ứng dụng mạng nơ-ron trong nhận dạng
và đặc biệt trong lĩnh vực điều khiển còn gặp phải nhiều khó khăn như vấn đề
tìm nghiệm tối ưu toàn cục, tốc độ học, khả năng đáp ứng tính năng thời gian
thực của hệ thống. Tuy nhiên trong những năm gần đây đã ra đời một loại mạng
nơ-ron mới với phương pháp huấn luyện đơn giản và nhanh hơn. Mạng mới này
có tên gọi khác nhau gồm: Reservoir Computing Networks (RCN), Echo State
Networks (ESN) và Liquid State Machines (LSM). Nhưng về bản chất là giống
nhau. Để đơn giản và tiện lợi trong quá trình nghiên cứu, tôi gọi tên mạng này là
mạng Reservoir.
Trong thực tế mạng reservoir đã được ứng dụng thành công trong dự đoán
chuỗi thời gian hỗn loạn không có nhiễu và bài toán thích nghi nhanh, nhưng
chưa được ứng dụng vào lĩnh vực nhận dạng hệ thống và thiết kế bộ điều khiển
dựa trên cơ sở mạng này.
Mạng reservoir là một ý tưởng nghiên cứu tương đối mới và vẫn còn
nhiều vấn đề mở và hướng nghiên cứu trong tương lai. Xuất phát từ lý do đó nên
tôi đã tự đề xuất hướng nghiên cứu và chọn đề tài: “ Ứng dụng mạng Reservoir
trong nhận dạng và điều khiển”.
      Nâng cao phương pháp huấn luyện mạng
reservoir và ứng dụng để nhận dạng hệ thống và thiết kế bộ điều khiển nơ-ron.
Đề tài " Ứng dụng mạng Reservoir trong nhận dạng và điều khiển" nhằm
phát triển một phương pháp huấn luyện mạng mới sử dụng các công cụ, thiết bị
nghiên cứu như: Máy tính, phần mềm Matlab, Neural Network Toolbox 2013.
Việc nghiên cứu ứng dụng mạng Reservoir trong nhận dạng và điều khiển
đòi hỏi phải có những hiểu biết nhất định về mạng nơ ron, sử dụng phần mềm
matlab.


2


- Khai thác công cụ Neural Networks Toolbox trong Matlab 2013, viết tài
liệu hướng dẫn sử dụng công cụ này.
- Viết chương trình huấn luyện cho mạng reservoir trong Matlab.
- So sánh kết quả huấn luyện mạng reservoir với các tham số mạng ban
đầu khác nhau cho một số đối tượng thử nghiệm.
- Đề xuất phương pháp chọn tham số ban đầu cho mạng reservoir.
- Đề xuất phương pháp huấn luyện mạng reservoir.
- Viết chương trình nhận dạng hệ thống và huấn luyện bộ điều khiển trên
cơ sở mạng reservoir trong Matlab và kiểm chứng chất lượng điều khiển trên đối
tượng thực là mô hình cánh tay máy 1 bậc tự do.
u: Nghiên cứu lý thuyết và nghiên cứu thực nghiệm:

- Nghiên cứu mạng reservoir, Viết chương trình huấn luyện cho mạng
reservoir trong Matlab.
- Mô hình hóa và huấn luyện mạng trên cơ sở phần mềm Matlab, Neural
Networks Toolbox bản 2013.
- Viết chương trình nhận dạng hệ thống và huấn luyện bộ điều khiển trên
cơ sở mạng reservoir trong Matlab.

- Chạy thử nghiệm chương trình trên Matlab.
- Thực nghiệm trên mô hình vật lý để kiểm nghiệm và hoàn thiện cấu trúc
và tham số bộ điều khiển.
- Ứng dụng nhận dạng và điều khiển các hệ thống trong phòng thí nghiệm
như cánh tay máy
Đề tài sẽ trình bày theo những nội dung sau:
Chương I: Giới thiệu về mạng Reservoir
Chương II: Tìm hiểu công cụ mạng nơ ron trong Matlab
Chương III: Ứng dụng mạng Reservoir trong nhận dạng hệ thống
Chương IV: Điều khiển cánh tay máy 1 bậc tự do trong phòng thí nghiệm
Kết quả và kiến nghị


3

IR
Mạng Reservoir là một khái niệm mới trong lĩnh vực mạng nơ-ron. Về cơ
bản cấu trúc mạng reservoir không có gì khác biệt so với các mạng nơ-ron khác,
nhưng về phương pháp huấn luyện mạng thì có sự khác biệt trong quá trình học.
Trong chương này tôi sẽ giới thiệu cấu trúc mạng nơ-ron từ cơ bản tới phức tạp,
các ký hiệu và khái niệm cơ bản. Trên cơ sở đó tôi sẽ trình bày cấu trúc và
phương pháp huấn luyện mạng reservoir.
1.1 -ron
Trong phần này tôi sẽ giới thiệu cấu trúc, khái niệm của một nơ-ron, một
lớp nơ-ron, nhiều lớp nơ-ron và mạng hồi qui. Đồng thời để đơn giản cho việc
theo dõi và mô tả về sau, tôi cũng đưa ra một số qui ước chung.
Tôi sẽ sử dụng công cụ Neural Networks trong Matlab để mô tả và huấn
luyện mạng. Do đó các ký hiệu, khái niệm và cấu trúc sẽ theo như định nghĩa
của Matlab/Neural Network Toolbox.
1.1.1  - ron 
Một nơ ron với một đầu vào có sơ đồ cấu trúc như hình 1.1.



Hình 1.1. Cấu trúc cơ bản của một nơ - ron (1 đầu vào)
Cấu trúc cơ bản của một nơ ron gồm: đầu vào p, và đầu ra a, w là trọng
số, ∑ là bộ tổng, b là ngưỡng, f là hàm truyền.
Quan hệ vào ra của 1 nơ ron là:
 
wa f p b
(1.1)
1


ƒ
b
p
w


n
a

4
1.1 





Hình 1.2. Cấu trúc cơ bản của một nơ - ron nhiều đầu vào
Hình 1.2 là sơ sồ cấu trúc của 1 nơ-ron có nhiều đầu vào. Nơ ron có R tín
hiệu đầu vào biểu diễn dưới dạng rút gọn được thể hiện như trên hình 1.3.
Trong đó: b là bias; n là tổng trọng, f là hàm truyền, a là đầu ra của nơ
ron; p = [p
1
p
2
p
R
] là véc tơ đầu vào, W = [w
1,1
w

1,2
w
1,R
] là véc tơ trọng
số đầu vào.
n = w
1,1
p
1
+ w
1,2
p
2
+ + w
1,R
p
R
+ b (1.2)
n = W*p + b
a = f (wp + b) (1.3)

Mô hình thu gọn của nơ ron:





Hình 1.3. Mô hình nơ ron thu gọn (nhiều đầu vào)



ƒ
b
1
P1
n
a
a = f (wp + b)
P2
P3
PR
w
1,1
w
1,R
W


ƒ
R
1
P
n
1x1

b

+
1x1
1x1
Rx1


5
R
W


ƒ
1
P
n
sx1


b

+
sx1
sx1
Rx1
SxR
a
1.1.-ron
Mô hình một lớp có S nơ ron với R đầu vào như hình vẽ 1.4.









Hình 1.4: Mô hình 1 lớp nơ ron
Trong đó mỗi phần tử của véc tơ đầu vào p được nối với mỗi nơ ron
tương ứng qua ma trận trọng số W; f là hàm truyền; p là véc tơ đầu vào có dạng
véc tơ cột (Rx1); a là đầu ra của lớp nơ ron có dạng véc tơ cột (Sx1) và ma trận
trọng số có dạng:





Hình 1.5: Mô hình một lớp nơ ron

ƒ
b1
1
a
1


a = f (wp +
b)
P2
P3
PR
w
S,R


ƒ

n2

a
2


B2
1

ƒ
ns

a
s


bs
1
n1
P1
w
1,1

6
1,1 1,2 1,
2,1 2,2 2,
,1 ,2 ,
w w w
w w w
W


w w w
R
R
S S S R








(1.4)
Các thành phần cơ bản của một nơron nhân tạo bao gồm:
♦ T: Là các tín hiệu vào (input signals) của nơron, các tín
hiệu này thường được đưa vào dưới dạng một vector N chiều.
♦ Tt: Mỗi liên kết được thể hiện bởi một trọng số (gọi là
trọng số liên kết – Synaptic weight). Trọng số liên kết giữa tín hiệu vào thứ j với
nơron k thường được kí hiệu là w
kj
. Thông thường, các trọng số này được khởi
tạo một cách 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 huấn luyện mạng (epoch).
♦ B tng (Summing function): 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 (còn gọi là một độ lệch - bias): Ngưỡng này thường được đưa
vào như một thành phần của hàm truyền.
♦  n (Transfer function) : Hàm này được dùng để giới hạn
phạm vi đầu ra của mỗi nơron. Nó nhận đầu vào là kết quả của hàm tổng và

ngưỡng đã cho. 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 nào là tuỳ thuộc vào từng bài toán và kinh
nghiệm của người thiết kế mạng. Một số hàm truyền thường sử dụng trong các
mô hình mạng nơron được đưa ra trong bảng 1 .
♦ u ra: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa là
một đầu ra.
Xét về mặt toán học, cấu trúc của một nơron k, được mô tả bằng cặp biểu
thức sau:

7
a = f (wp + b)
trong đó: x
1
, x
2
, , x
p
: là các tín hiệu vào; (w
k1
, w
k2, ,
w
kp
) là các trọng số
liên kết của nơron thứ k; u
k
là hàm tổng; b
k
là một ngưỡng; f là hàm truyền và y
k

là tín hiệu đầu ra của nơron.
Gọi ma trận trọng số liên kết với lớp vào là ma trận trọng số đầu vào IW.
Gọi ma trận trọng số liên kết giữa 2 lớp LW. Quy ước ký hiệu chỉ số lớp nguồn
là chỉ số thứ hai và chỉ số lớp đích thực là chỉ số thứ nhất.
Ví dụ: LW
i,j
là ma trận trọng số liên kết từ lớp nguồn j đến lớp đích i.





Hình 1.6: Mạng 1 lớp rút gọn
Đầu ra của nơ ron được tính như sau:
a
1
= f (IW
1,1
p + b
1
)

1.1
Hình 1.7 mô tả mô hình của mạng nơ ron truyền thẳng 3 lớp. Mỗi lớp có
ma trận trọng số IW, LW, véc tơ bias b và véc tơ tín hiệu đầu ra a. Tín hiệu đầu
ra mỗi lớp a
i
, p là véc tơ tín hiệu vào, f
i
là hàm truyền (i= 1,2,3). Từ đó có được

tín hiệu ra là a
3
có dạng:
a
3
= f
3
(LW
3,2
f
2
(LW
2,1
f
1
(IW
1,1
p+b
1
)+ b
2
)+ b
3
)
IW
1,1


ƒ
R

1
P
n
1
sx1

b1

+
s
1
x1
s
1
x1
Rx1
s
1
xR
a
1

8

f
1
b
1

1

1
a
1
1

P2
P3
PR
IW1,1
S,R


f
1
a
1
2

b
1

2

1

f
1
n
1
s

1


a
1
s
1


b
1
s
1
1
n
1
1
P1
IW
1,1
n
1
2
a
1
= f1 (IW
1,1
p+ b
1
)



f
2
b
2

1
1
a
2
1

LW
2,1
s
2
, s
1



f
2
a
2
2

b
2


2

1

f
2
n
2
s
1


a
2
s
2


b
2
s
2
1
n
2
1
LW
2,1


n
2
2

a
2
= f2 (LW
2,1
a
2
+ b
2
)



f
3
b
3

1
1
a
3
1

LW
3,2
s

3
, s
2



f
3
a
3
2

b
3

2

1

f
3
n
3
s
1


a
3
s

3


b
3
s
3
1
n
3
1
LW
3,2

n
3
2
a
3
= f3 (LW
3,2
a
3
+ b
3
)
Hình 1.7: Mô hình của mạng nơ ron truyền thẳng ba lớp
Mô hình rút gọn như hình 1.8.






Hình 1.8: Mô hình của mạng nơ ron truyền thẳng ba lớp thu gọn

1.1




Hình 1.9: Mô hình 1 nơ ron hồi quy

D
p(t)
IW
1,1
LW
1,1

n(t)
a(t)
a(t) = IWp(t)+LW a(t-1)
IW
1,1


f
1
R
1

P
n
1
s
1
x1
b
1


+
s
1
x1
s
1
x1

R
x1
s
1
xR
a
1
1
LW
2,1



f
2
n
2
s
2
x1

b2

+
s
2
x1
s
2
x1
s
2
xs
1
a
2
LW
3,2


f
3
n

3
s
3
x1
b3

+
s
3
x1
s
3
x1
s
3
xs
2
a
3
1
s
1

s
2

s
3

a

1
= f1 (IW
1,1
p+ b
1
)


a
2
= f2 (LW
2,1
a
2
+ b
2
)


a
3
= f3 (LW
3,2
a
3
+ b
3
)

9









Hình 1.10: Mô hình mạng hồi quy nhiều lớp
Trong đó khối TDL là khâu trễ

1.2 ir
Mạng Reservoir có quan hệ vào ra như sau:
       
 
1 W W W
in back
x k f u k u k y k   
(1.5)
   
W
f
y k x k
(1.6)
Về cơ bản mạng Reservour có cấu trúc giống như mạng nơ ron thông
thường, nhưng không có bias.






Hình 1.11: Mạng Reservoir
IW
1,1
s
1
xR
+
n
1
(t)

s
1
x1

f
1
b
1


s
1
x1

LW
1,1
T
D

L
a
1
(t)
LW
1,3
T
D
L
LW
2,1

s
1
x1
T
D
L
s
2
xs
1
LW
2,3
+
s
2
x1
n
2

(t)

f
2
s
2

s
2
x1

a
2
(t)
LW
3,1
1
b
3


+
n
3
(t)

s
3
x1
T

D
L
R
1
1
1
b
2


s
2
x1
s
3
x1
s
3
x1
s
3
xs
2
a
3
(t)
s
1

s

3

R
1
x1

f
3
Z
-1
W
back
+
Z
-1
u

W
in
f

g

W
f
Z
-1
W

y


u


10
Trong quá trình huấn luyện mạng trọng số được giữ cố định, chỉ trừ trọng
số
W
f
. Các trọng số ban đầu được chọn phải nằm trong được tròn đơn vị. Chính
vì lý do này đã làm cho quá trình huấn luyện mạng reservoir đơn giản hơn so với
các mạng thông thường.
Nhìn vào công thức (1.5) và (1.6) ta thấy mạng này chỉ có một trễ, tức là
động học của hệ là bậc 1. Như vậy trong nhận dạng khi các đối tượng có bậc lớn
hơn 1 thì mạng reservoir rất khó có thể huấn luyện được. Do đó tôi sẽ tiến hành
làm thí nghiệm và cải tiến phương pháp huấn luyện mạng cho mạng reservoir để
mạng này có thể sử dụng để nhận dạng được các đối tượng có bậc lớn hơn hoặc
bằng 2.

1.3 
1.3c
Một mạng nơron được huyấn luyện sao cho với một tập các vector đầu
vào X, mạng có khả năng tạo ra tập các vector đầu ra mong muốn Y của nó. Tập
X và Y được sử dụng cho huấn luyện mạng được gọi là tập huấn luyện (training
set). Các phần tử x thuộc X được gọi là các mẫu huấn luyện (training example).
Quá trình huấn luyện bản chất là sự thay đổi các trọng số liên kết của mạng.
Trong quá trình này, các trọng số của mạng sẽ hội tụ dần tới các giá trị tối ưu
sao cho với mỗi vector đầu vào x từ tập huấn luyện, mạng sẽ cho ra vector đầu
ra y như mong muốn.
Có ba phương pháp học phổ biến là học có giám sát (supervised

learning), học không giám sát (unsupervised learning) và học tăng cường
(Reinforcement learning):
♦ H: Là quá trình học có sự tham gia giám sát của một
“thầy giáo”. Cũng giống như việc ta dạy một em nhỏ các chữ cái. Ta đưa ra một
chữ “a” và bảo với em đó rằng đây là chữ “a”. Việc này được thực hiện trên tất

11
cả các mẫu chữ cái. Sau đó khi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể
viết hơi khác đi) và hỏi em đó đây là chữ gì?
Với học có giám sát, tập mẫu huấn luyện được cho dưới dạng:
 
 
  
, , IR *
NK
D x t x t R



trong đó x = ( x1,x2, ,xN) là véc tơ đặc trưng N
chiều của mẫu huấn luyện và
 
12
, , ,
K
t t t t
là véc tơ mục tiêu K chiều tương
ứng, nhiệm vụ của thuật toán là phải thiết lập được một cách tính toán trên mạng
như thế nào đó để sao cho với mỗi vector đặc trưng đầu vào thì sai số giữa giá
trị đầu ra thực sự của mạng và giá trị mục tiêu tương ứng là nhỏ nhất. Chẳng hạn

mạng có thể học để xấp xỉ một hàm t = f(x) biểu diễn mối quan hệ trên tập các
mẫu huấn luyện (x, t).
Như vậy với học có giám sát, số lớp cần phân loại đã được biết trước.
Nhiệm vụ của thuật toán là phải xác định được một cách thức phân lớp sao cho
với mỗi vector đầu vào sẽ được phân loại chính xác vào lớp của nó.
♦ H: Là việc học không cần có bất kỳ một sự giám sát
nào.
Trong bài toán học không giám sát, tập dữ liệu huấn luyện được cho dưới
dạng: D = {(x
1
, x
2
, , x
N
)}, với (x
1
, x
2
, , x
N
) là vector đặc trưng của mẫu huấn
luyện. Nhiệm vụ của thuật toán là phải phân chia tập dữ liệu D thành các nhóm
con, mỗi nhóm chứa các vector đầu vào có đặc trưng giống nhau.
Như vậy với học không giám sát, số lớp phân loại chưa được biết trước,
và tùy theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các
lớp phân loại khác nhau.
♦ H  ng: đôi khi còn được gọi là học thưởng-phạt (reward-
penalty learning), là sự tổ hợp của cả hai mô hình trên. Phương pháp này cụ thể
như sau: với vector đầu vào, quan sát vector đầu ra do mạng tính được. Nếu kết
quả được xem là “tốt” thì mạng sẽ được thưởng theo nghĩa tăng các trọng số kết


12
nối lên; ngược lại mạng sẽ bị phạt, các trọng số kết nối không thích hợp sẽ được
giảm xuống. Do đó học tăng cường là học theo nhà phê bình (critic), ngược với
học có giám sát là học theo thầy giáo (teacher).


1.3.2 H
Học có giám sát có thể được xem như việc xấp xỉ một ánh xạ: X→ Y,
trong đó X là tập các vấn đề và Y là tập các lời giải tương ứng cho vấn đề đó.
Các mẫu
 
,xy
với
 
12
, , ,
n
x x x x X
,
 
12
, , ,
m
y y y y Y
được cho trước. Học
có giám sát trong các mạng nơ ron thường được thực hiện theo các bước sau:
♦ B1: Xây dựng cấu trúc thích hợp cho mạng nơron, chẳng hạn có (n + 1)
nơron vào (n nơron cho biến vào và 1 nơron cho ngưỡng x
0

), m nơron đầu ra, và
khởi tạo các trọng số liên kết của mạng.
♦ B2: Đưa một vector x trong tập mẫu huấn luyện X vào mạng
♦ B3: Tính vector đầu ra o của mạng
♦ B4: So sánh vector đầu ra mong muốn y (là kết quả được cho trong tập
huấn luyện) với vector đầu ra do mạng tạo ra; nếu có thể thì đánh giá lỗi.
♦ B5: Hiệu chỉnh các trọng số liên kết theo một cách nào đó sao cho ở lần
tiếp theo khi đưa vector x vào mạng, vector đầu ra sẽ giống với y hơn.
♦ B6: Nếu cần, lặp lại các bước từ 2 đến 5 cho tới khi mạng đạt tới trạng
thái hội tụ. Việc đánh giá lỗi có thể thực hiện theo nhiều cách, cách dùng nhiều
nhất là sử dụng lỗi tức thời: Err = (o - y), hoặc Err = |o - y|; lỗi trung bình bình
phương (MSE: mean-square error): Err = (o- y)
2
/2;
Có hai loại lỗi trong đánh giá một mạng nơron. Thứ nhất, gọi là lỗi rõ
ràng (apparent error), đánh giá khả năng xấp xỉ các mẫu huấn luyện của một
mạng đã được huấn luyện. Thứ hai, gọi là lỗi kiểm tra (test error), đánh giá khả
năng tổng quá hóa của một mạng đã được huấn luyện, tức khả năng phản ứng

13
với các vector đầu vào mới. Để đánh giá lỗi kiểm tra chúng ta phải biết đầu ra
mong muốn cho các mẫu kiểm tra.
Thuật toán tổng quát ở trên cho học có giám sát trong các mạng nơron có
nhiều cài đặt khác nhau, sự khác nhau chủ yếu là cách các trọng số liên kết được
thay đổi trong suốt thời gian học. Trong đó tiêu biểu nhất là thuật toán lan truyền
ngược.

1.3.3 P
Phương pháp lan truyền ngược được sử dụng để huấn luyện các mạng
truyền thẳng nhiều lớp với các phần tử xử lý trong mạng có hàm tác động là hàm

phi tuyến. Cho tập các cặp mẫu huấn luyện vào – ra (x(k),d(k)) với k = 1,2,…p
giải thuật sẽ cung cấp một thủ tục cho việc cập nhật các trọng số trong mạng từ
lớp neuron đầu ra tới lớp neuron đầu vào. Giải thuật vận hành theo 2 luồng dữ
liệu, đầu tiên là các mẫu huấn luyện x(k) được truyền từ lớp neuron đầu vào đến
lớp neuron đầu ra và cho kết quả thực sự y(k) của lớp neuron đầu ra. Sau đó các
tín hiệu sai lệch giữa neuron đầu ra mong muốn d(k) và đầu ra thực sự y(k) của
mạng được truyền ngược từ lớp đầu ra đến các lớp đứng trước để cập nhật các
trọng số trong mạng.
Giả sử xét mạng truyền thẳng ba lớp như hình 1.8 gồm lớp neuron đầu
vào (input layer), lớp neuron ẩn (hidden layer) và lớp neuron đầu ra (output
layer)
Lớp neuron đầu vào của mạng có m đầu vào trong đó x
1
… ,x
i
,x
m
. lớp
neuron ẩn có r phần tử xử lý với các đầu ra, đó là z
1
….,z
q
… ,z
r.
và lớp neuron
đầu ra của mạng có n phần tử xử lý với n đầu ra,đó là y
1
….,y
i
….,y

n
. Trọng số
kết nối giữa đầu vào thứ j của lớp neuron đầu vào với phần tử xử lý thứ q của
lớp neuron ẩn là v
qj
và trọng số kết nối giữa phần tử xử lý thứ q của lớp neuron
ẩn với phần tử xử lý thứ i của lớp neuron đầu ra là w
iq
.

14
Dữ liệu huấn luyện : {x(k),d(k),k =1,2….p}
Lớp ẩn :

1
m
q qj j
j
net v x



(hàm tích hợp) (1.7)
 
1
m
q q qj j
j
z a net a v x







( hàm tác động) (1.8)
Lớp ra :

1 1 1
ww
r r m
i iq q iq qj j
q q j
net z a v x
  




  
(hàm tích hợp) (1.9)

 
11
1 1 1
ww
r r m
iq q iq qj j
q q j
y a net a z a a v x

  

   
  

   

   

  
(hàm tác động) (1.10)
Hàm mục tiêu :

     
2
2
2
1 1 1 1 1
1 1 1 1
1 1 1
ww
2 2 2
n n n r
iq q
i i i q
E d y d a net d a z
   




     







   
(1.11)
Luật học delta tổng quát hóa được xây dựng dùng phương pháp gradient
descent.
Xét các nhánh nối giữa nút ẩn và nút ra :

 
 
 
1
1
()
w
ww
v
ii
iq i i q oi q
iq i iq i
i
i
oi i i
qj i i i

net a net
y
EE
d y z z
y net net
a net
y
EE
dy
y net net
   




      
    



   
   
(1.12)

15
Xét các nhánh nối giữa nút vào và nút ẩn :

 
 
 

 
 
 
 
1
1
1
w
w
w
qq
qj
qj q q qj
n
q
i
i i iq j hq j
i
iq
n
q
q
i
hq i i iq
i
q q q i q
n
q
oi iq
i

q
z net
EE
v
v z net v
a net
a net
d y x x
net net
a net
z
a net
EE
dy
net z net net net
a net
net

 







   
   




  








     

    







(1.13)
 
Tập các cặp mẫu huấn luyện {x(k),d(k),k =1,2,… p},trong đó
các vector đầu vào với các phần tử cuối cùng được gán bằng -1.
 : Khởi động trị
Chọn hằng số học η >0,ngưỡng dừng E
max

Các trọng số có trị nhỏ và ngẫu nhiên
E =0 , K =1

 : Lan truyền thuận dữ liệu :
Áp dụng mẫu dữ liệu thứ k
Xác định tín hiệu tại các nút trong mạng
Xác định hàm mục tiêu (2.40)
Xác định tín hiệu học tại các nút (2.42)
 : Lan truyền ngược sai lệch :
Cập nhật các vector trọng số (2.41) và (2.43)
Xác định các tín hiệu học (2.44)
 Kiểm tra :

16
Nếu E > E
max
: k =1 ,nhảy đến bước 1
Nếu E ≤ E
max
: kết thúc
Trong mạng truyền thẳng nhiều lớp, việc huấn luyện mạng dùng giải
thuật lan truyền ngược chịu tác động bởi các yếu tố :
- trị khởi động của các trọng số : các trọng số nên khởi động với các
giá trị bé và ngẫu nhiên. Các giá trị lớn của vector trọng số có thể
làm tác động bão hòa khi bắt đầu học.
- hằng số học :η lớn sẽ hội tụ nhanh nhưng có thể gây vọt lố, do đó
có thể chọn η giảm dần
- Hàm mục tiêu
- Luật học
- Dữ liệu huấn luyện
- Số nút ẩn
Giải thuật gradient descent rất chậm bởi vì nó yêu cầu tốc độ học thấp cho
sự ổn định quá trình học.Việc lựa chọn hằng số học η cho phù hợp mạng nhiều

lớp là không đơn giản, η quá lớn dẫn đến quá trình học không ổn định và ngược
lại η quá nhỏ sẽ làm cho thời gian huấn luyện lớn.
Mạng phụ thuộc vào số neuron có trong lớp ẩn. quá ít neuron sẽ dẫn đến
tình trạng thiếu, quá nhiều neuron sẽ dẫn đến tình trạng thừa.

1.4 ir 
Mạng reservoir đã được ứng dụng thành công trong dự đoán chuỗi thời
gian hỗn loạn không có nhiễu và bài toán thích nghi nhanh. Trong quá trình
huấn luyện mạng, mạng reservoir chỉ cập nhật các trọng số ở lớp ra, do đó rút
ngắn được quá trình huấn luyện mạng.

17
Trong luận văn này tôi sẽ nghiên cứu mạng reservoir và ứng dụng vào
nhận dạng và điều khiển hệ thống. Đầu tiên tôi sẽ sử dụng mạng reservoir để
nhận dạng đối tượng trong bài báo [4]. Đối tượng này có tính phi tuyến mạnh và
động học bậc 1. Tác giả trong bài báo này đã dùng mạng thông thường để nhận
dạng đối tượng. Sau đó tôi sẽ dùng mạng reservoir để nhận dạng đối tượng phi
tuyến bậc 2 trong thực tế là cánh tay máy một bậc tự do.




















18



Trong chương này tôi sẽ trình bày một số lệnh cơ bản được sử dụng trong
Matlab [8] để huấn luyện mạng nơ ron. Những lệnh này sẽ được dùng đến để tạo
mạng reservoir và huấn luyện mạng này.
2.1 
Lệnh này có thể tạo ra một mạng nơ ron có cấu trúc bất kỳ trong Matlab.
Cấu trúc lệnh như sau:
Net=Network(numInputs,numLayers,biasConnect,inputConnect,layerCon
nect,outputConnect)
Trong đó:
- Net là tên của mạng
- numInputs là số đầu vào của mạng
- numLayers là số lớp của mạng
- biasConnect là 1 véc tơ nhị phân có kích thước bằng (số lớp x 1), mỗi
phần tử có giá trị 0 hoặc 1.
- inputConnect là 1 ma trận nhị phân có kích thước bằng (số lớp x số đầu
vào).
- layerConnect là 1 ma trận nhị phân có số hàng và số cột đều bằng số
lớp.
- outputConnect: là 1 véc tơ có số cột bằng số lớp, dùng để định nghĩa đầu

ra của mạng.

19
Ví dụ 01: Tạo 1 mạng hồi qui có 2 lớp như hình 2.1. Trong cửa sổ lệnh
của Matlab ta gõ lần lượt các lệnh sau:
numInputs = 1
numLayers = 2
biasConnect = [1 1]
inputConnect = [1 0]
layerConnect = [1 1;1 0]
outputConnect = [0 1]
net = network(1,2,[1;1],[1;0],[1 1;1 0],[0;1])
net.inputsWeights{1,1}.delays=[1]
net.layerWeights{1,2}.delays = [1 2]
net.layerWeights{1,1}.delays = [1 2]
view(net)

Hình 2.1: Cấu trúc mạng Reservoir tạo trên Matlab
Trong ví dụ này có một số lệnh khác như sau:
Lệnh net.inputsWeights{1,1}.delays=[1] sẽ tạo ra trễ 1 nhịp từ đầu vào
thứ nhất tới lớp 1.
Lệnh net.layerWeights{1,2}.delays = [1 2] sẽ tạo ra trễ 1 và 2 nhịp từ lớp
2 phản hồi về lớp 1.

20
Lệnh net.layerWeights{1,1}.delays = [1 2] sẽ tạo ra trễ 1 và 2 nhịp từ đầu
ra của lớp 1 quay trở lại đầu vào của lớp 1.
Lệnh view(net) sẽ vẽ cấu trúc mạng như hình 2.1

2.2 

Lệnh này sẽ chuẩn bị dữ liệu cho quá trìn huấn luyện mạng. Cấu trúc lệnh
như sau:
[Xs,Xi,Ai,Ts,EWs,SHIFT] = preparets(net,X,T,{},EW)
Trong đó:
- X: đầu vào mẫu;
- T: đầu ra mẫu (mục tiêu);
- Xi: các trạng thái vào ban đầu;
- Ai: các trạng thái lớp ban đầu;
- X
s
: Đầu vào được dịch chuyển đi n mẫu
- T
s
: Đầu ra được dịch chuyển đi n mẫu
n là số nhịp trễ lớn nhất trong mạng.
Ví dụ 02:
net = timedelaynet(10);
[X,T] = simpleseries_dataset; //Lấy dữ liệu từ tệp *.mat có sẵn từ trước
[Xs,Xi,Ai,Ts] = preparets(net,X,T);
net = train(net,Xs,Ts);
Y = net(Xs,Xi,Ai)
Lệnh net = train(net,Xs,Ts,Xi,Ai) được dùng để huấn luyện mạng.

21
Lệnh Y = net(Xs,Xi,Ai) tính giá trị đầu ra của mạng sau khi huấn luyện

2.3   
Trong quá trình huấn luyện mạng reservoir, có nhiều trọng số được giữ cố
định. Trong quá trình huấn luyện bộ điều khiển nơ-ron, ta cũng cần phải giữ cho
các trọng số của mạng nơ-ron của đối tượng cố định. Do đó ta phải tìm cách nào

đó để thực hiện điều này. Trong công cụ Neural Networks của Matlab, lệnh
.leanr = 0 thường được sử dụng để thực hiện điều đó.
Ví dụ 03:
- Net.inputweights{1,1}.learn=0;
- Net.inputweights{1,2}.learn=0;
- Net.biases{1}.learn=0;
IW
1,1
; IW
1,2
; b
1
sẽ được giữ nguyên giá trị trong quá trình huấn luyện mạng












22


3.1 C
Một đặc điểm cơ bản của mạng reservoir là các trọng số của lớp 1 và hồi

qui được chọn phải nằm trong đường tròn đơn vị. Điều này đảm bảo điều kiện
mạng ổn định và có thể học được.
Tham số ban đầu của mạng reservoir có thể được chọn dựa theo tiêu
chuẩn ổn định của mạng nơ ron. Có thể dùng một trong ba tiêu chuẩn như sau:
Barabanov[5], Liu[6] hoặc Nam[7]. Việc sử dụng các tiêu chuẩn này dẫn tới
phải tìm nghiệm của bất phương trình ma trận. Điều này khá là phức tạp. Do đó,
trong luận văn này, tôi sẽ chọn các trọng số ban đầu nằm trong đường tròn đơn
vị và gần với gốc không. Điều này sẽ đảm bảo mạng nơ-ron ổn định.
Đường tròn đơn vị có bán kính bằng 1 và có n chiều, chọn các trọng số
ban đầu của mạng a1, a2, , an sao cho:

2 2 2
12
1
n
r a a a    
(3.1)
Tôi sẽ sử dụng lệnh randn để tạo các giá trị ban đầu cho các trọng số một
cách ngẫu nhiên. Sau đó sẽ tính giá trị r. Nếu r > 1, tôi sẽ chọn các giá trị ban
đầu cho các trọng số bằng cách chia tất cả các trọng số ban đầu này cho r.

Để thu thập được dữ liệu từ mô hình cánh tay máy thật, tôi đã sử dụng
arduino 328 để kết nối với máy tính, điều khiển động cơ và đo vị trí góc của
cánh tay máy. Trong phần này tôi sẽ trình bày về arduino 328. Hình 3.1 là hình
ảnh bên ngoài của arduino 328.

23











Hình 3.1: KIT Ardnino 328
Các thông số kỹ thuật của arduino như sau:
Vi điều khiển
ATmega328
Điện áp làm việc
5V
Điện áp nguồn vào nên lấy
7-12V
Điện áp nguồn vào giới hạn
6-20V
Đầu vào ra số I/O
14 (of which 6 provide PWM output)
Các chân vào tương tự
6
Dòng điện vào cho 1 I/O)
40 mA
Dòng điện vào cho điện áp 3.3V
50 mA
Flash Memory
32 KB (ATmega328) of which 0.5 KB
used by bootloader
SRAM
2 KB (ATmega328)


24
EEPROM
1 KB (ATmega328)
Clock Speed
16 MHz

Ardnino 328 có 14 chân đầu vào / đầu ra (trong đó có 6 chân có thể được
sử dụng làm đầu ra PWM), 6 đầu vào tương tự, 16 MHz tinh thể dao động, kết
nối USB, một jack cắm điện, và một nút reset.
Ardnino 328 được kết nối với 1 mạch cầu vì động cơ điều khiển cánh tay
máy quay 2 chiều). Ardnino 328 được kết nối với máy tính qua cổng USB. Sử
dụng Simulink/Matlab thông qua thư viện Ardnino để thay đổi điện áp động cơ
và đọc vị trí góc quay của cánh tay máy. Ardnino có thể hoạt động trên một
nguồn cung cấp bên ngoài từ 5 đến 20V. Nếu sử dụng nguồn dưới 5V Ardnino
có thể không ổn định. Nếu sử dụng nhiều hơn 12V, các điều chỉnh điện áp có thể
bị quá nóng và làm hỏng bảng. Vì vậy điện áp nguồn vào nên sử dụng từ 5 –
12V.
* Các chân điện của Ardnino 823 như sau:
- WIN: Điện áp đầu vào cho Arduino khi nó sử dụng một nguồn điện bên
ngoài. Có thể cung cấp điện áp thông qua pin hoặc cung cấp điện áp thông qua
các jack cắm điện.
- 5V: Arduino có thể được cung cấp nguồn điện hoặc từ các jack cắm điện
DC (7 - 12V), kết nối USB (5V), hoặc pin VIN (7-12V) nhưng không nên sử
dụng.
- 3V3: nguồn cung cấp 3,3 volt, 50 mA.
- GND: Chân nối đất.
* Bộ nhớ: Các Atmega 328 có 32 KB (0,5 KB được sử dụng cho bộ nạp
khởi động). Nó cũng có 2 KB SRAM và 1 KB của EEPROM (có thể được đọc
và viết bằng thư viện EEPROM).


25
* Đầu vào và đầu ra
Arduino có 14 chân đầu vào, đầu ra hoạt động ở điện áp 5 volts. Nguồn
pin có thể cung cấp tối đa 40 mA và có một điện trở bên trong 20-50 kohms.
- Serial: 0 (RX) và 1 (TX). Chân này được kết nối với các chân tương ứng
của ATmega8U2 USB-to-TTL nối tiếp chip.
- Chân số 2 và 3 được nối với ecocdo trên động cơ
- PWM: Các chân 3, 5, 6, 9, 10, và 11 cung cấp đầu ra PWM 8-bit với
analogWrite () chức năng.
Chân 5,6 được đưa ra điều chỉnh điện áp cấp cho động cơ.
- SPI: 10 (SS), 11 (Mosi), 12 (miso), 13 (SCK): Các chân hỗ trợ SPI giao
tiếp bằng cách sử dụng thư viện SPI.
- LED: 13. Có một built-in LED kết nối với pin kỹ thuật số 13. Khi pin có
giá trị cao, đèn LED bật, khi pin là thấp đèn LED tắt
- TWI: A4 hoặc SDA pin và A5 hoặc SCL pin.
- Aref. Điện áp tham chiếu cho các đầu vào tương tự. Sử dụng với
nalogReference.

3.3  
Trong phần này tôi sẽ nhận dạng một đối tượng bậc 1 trong [4]. Các tác
giả của bài báo này đã chứng tỏ mạng nơ ron có thể nhận dạng được đối tượng
có quan hệ vào ra như sau:
 
 
 
 
3
2
1

1
p
p
p
yk
y k u k
yk
  

(3.2)
Trong đó u là tín hiệu đầu vào và
p
y
là tín hiệu đầu ra.

×