Thiện Thành
CHƯƠNG 2 :
ỨNG DỤNG MẠNG NEURON NHÂN TẠO
TRONG ROBOT
2.1 Giới thiệu :
Thế mạnh của mạng neuron nhân tạo là tạo ra những đặc tính khác biệt trong
xử lý bền vững và thích nghi trong một môi trường thay đổi và có nhiễu. Người ta
ước lượng rằng bộ não con người gồm khoảng 100 tỉ neuron, cấu trúc neuron gồm
nhiều đầu vào dendrite có chức năng nhận tín hiệu từ những neuron khác hoặc từ
môi trường bên ngoài thông qua điểm nối sysnape mỗi neuron chỉ có một đầu ra
gọi là axon, có chức năng truyền xung kích đến những neuron khác. Mặc dù thời
gian chuyển đổi trong mạng neuron chậm hơn những phần tử xử lý trong máy
tính nhưng bù lại bộ não con người có số lượng phần tử xử lý lớn hơn rất nhiều
lần so với những máy tính hiện đại ngày nay.
Mạng neuron nhân tạo là lónh vực vừa khoa học vừa kỹ thuật, trong đó khoa
học được đònh nghóa như là kiến thức có cấu trúc, và kỹ thuật chính là khoa học
ứng dụng. Vì kỹ thuat đơn lẻ không thể giải quyết tối ưu những bài toán mà bước
hiện tại luôn là kết quả của các bước trước đó. Công nghệ mạng neuron nhân tạo
hình thành, nó thay thế cho các giải pháp tính toán truyền thống và đưa ra một vài
khả năng để tiếp cận nhiều vấn đề hiện tại không giải quyết được. Mạng neuron
được ứng dụng rộng rãi trong các ngành kỹ thuật như : kỹ thuật điều khiển, điện
tử viễn thông, hệ thống điện và công nghệ thông tin. Trong kỹ thuật điều khiển,
mạng neuron nhân tạo được ứng dụng để nhận dạng, dự báo và điều khiển các hệ
thống động. Trong điện tử viễn thông, mạng neuron nhân tạo được ứng dụng để
xử lý ảnh, nhận dạng ảnh và truyền thông. Trong hệ thống điện, mạng neuron
nhân tạo được ứng dụng để nhận dạng, dự báo và điều khiển các trạm biến áp....
2.2 Giới thiệu tổng thể các mạng Neuron :
2.2.1 Mạng Perception một lớp:
Trong phần này chúng ta trình bày mạng nuôi tiến một lớp còn gọi la mạng
Perception một lớp. Mô hình của mạng Perception một lớp được trình bày như
sau:
w11
w21
x1
y1
e1
y2
x2
yn
xm =-1
wnm
[
]
1
(k)
,x2 (k ) ...xm (k)
T
d2
dn
en
trong đó d (k) = d1(k) ,d 2 (k )...dn (k )
[x
e2
d1
]
T
là đầu ra mong muốn của mạng .
là những đầu vào của mạng .
[
x (k ) =
y (k) = y1(k ) , y2 (k) ...yn (k)
]
T
là
những đầu ra thực sự của mạng tương ứng
với những đầu vào.
[
e(k ) = e1(k) ,e2
...en (k )
(k )
] là sai số giữa đầu ra mong muốn và đầu ra
T
thực sự của mạng.
với k = 1,2 . . . p là số cặp mẫu vào ra dùng để sử dụng huấn luyện mạng, w ij
là trọng số kết nối giữa phần tử xử lý thứ i và thứ j . Giá trò ngưỡng q của neuron
thứ i có thể được đưa vào trong việc học, nó được xem như là một trọng số w im
bằng cách gán một giá trò cố đònh cho đầu vào xm , giá trò đó là xm = - 1.
Giá trò đầu ra của phần tử xử lý thứ i trong mạng được xác đònh bằng công
thức sau :
(k)
n
yi (k) = a(wi T x (k) ) = a(∑wij x j )
(2.1)
j=1
trong đó a(.) là hàm tác động .
:
32
Thiện Thành
SVTH Hoàng Trung Hiếu & Nguyễn Trung Dũng
a. Luật Học Perception :
•
trang
Mô tả giải thuật :
Cho trước tập các cặp giá trò vào ra :
Đầu
2.
2
2 2
2
x =(x1 , x2 ,...,xn )
y2
xK =(x1K , x2K ,...,xnK )
yK
ra
y1
..
.
K
x1
w1
x2
w2
...
1.
Đầu
1 o 1 1
và
(x1 , x2 ,...,x1n )
x =
wn
y
i
xn
.
Trong mạng Perception một lớp với giá trò ngưỡng tuyến tính, giá trò đầu ra
mong muốn chỉ nhận giá trò +1 hoặc –1. đầu ra thực sự của mạng được xác đònh
như sau :
yi (k) = sgn( wi T x (k) )
(2.2)
với i = 1,2… m , k = 1,2 … p.
trọng số wi của phần tử xử lý thứ i phải được chọn tương ứng với đầu vào x (k)
để đầu ra thực sự của mạng yi(k) tiến đến đầu ra mong muốn di(k). Mặt phẳng phân
cách có phương trình wiTx(k) =0 chia không gian ra làm hai phần w iTx(k) > 0 và
wiTx(k) < 0. Từ phương trình 2.2 ta thấy rằng đầu ra y i(k) tiến tới giá trò âm hoặc
dương ( 1 hoặc -1).
Miền phân cách được đề cập ở trên không phải luôn luôn tồn tại, nghóa là luật
học Perception sẽ không giải quyết được một số bài toán. Một bài toán tiêu biểu
mà luật học Perception không thể giải quyết được, nghóa là chúng ta không tìm
được miền phân cách, đó là bài toán XOR : đầu ra = 1 khi có một đầu vào = 1 và
đầu ra = -1 khi tất cả các đầu vào = 1 hoặc 0.
• (0,1)
•
(0,0)
• (1,1)
•
(1,0)
Từ hình trên ta thấy rõ ràng rằng không tồn tại một đường thẳng chia mặt
phẳng đầu vào thành hai lớp.
Vì thế điều kiện để giải bài toán phân lớp đầu vào bằng luật học Perception
đơn giản phụ thuộc vào bài toán đó có phân biệt tuyến tính hay không. Một bài
toán phân biệt tuyến tính luôn giải được nghóa là ta luôn tìm được miền phân cách
:
34
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
tập đầu vào để đầu ra = + 1 hoặc = -1. để làm rõ hơn, nếu bài toán phân lớp là
phân biệt tuyến tính, chúng ta có thể tìm vectot trọng số w i để : wiTx > 0 với đầu
vào x cho đầu ra = + 1
(2.3) w iTx < 0 với đầu vào x cho đầu ra = - 1 (2.4) điều
này phải đúng với mọi phần tử đầu ra PE i, (i =1,2...n).
Sau đây chúng ta sẽ giới thiệu một luật học cho việc tìm ra trọng số hợp lý
của một mạng Perception đơn giản để có thể tìm được miền phân cách, giải thuật
này được gọi là luật học Perceptron. Với luật học Perceptron, tín hiệu học trong
luật học tổng quát là sai số mong muốn và đầu ra thực sự của mạng được biểu
diễn như sau: r = di - yi
với yi = sgn( wiTx) là đầu ra thực sự của phần tử xử lý thứ i và di là đầu ra
mong muốn của phần tử xử lý thứ i. Vì đầu ra mong muốn d i chỉ bằng +1 hoặc –1
nên trọng số cập nhật được tính như sau:
T 2hdi x j Nếu y i # d i ∆wij =h[di
−sgn( wi x)]x j = 0 Trường hợp khác
với ( j = 1,2...m )
Luật học Perceptron hiệu chỉnh trọng số theo công thức trên sẽ luôn hội tụ
đến một tập trọng số thoả mãn phương trình (2.3) và (2.4) sau một số bước hiệu
chỉnh, có nghóa là ta luôn tìm được miền phân cách.
• Tóm tắt giải thuật :
Bước 1 : chọn một giá trò η > 0 .
Bước 2 : khởi tạo trọng số w một cách ngẫu nhiên, thiết lập sai lệch E = 0,
bắt đầu với mẫu thứ nhất k = 1.
Bước 3 : bắt đầu học. Cho x = xk và đầu ra của mạng được tính như sau :
y
i
=
1
nếu wiTx
>0
-1
nếu wiTx
<0
Bước 4 : cập nhật trọng số :
wij = wij + ∆wij
với ∆wij =h[di −sgn( wiT x)]x j = i j
2hd
x Nếu yi # di
Trường hợp khác
0
Bước 5 : tính sai lệch
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 35
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
E=E+1y−d2
2
Bước 6 : nếu k < K (tức chưa hết tập dữ liệu cần học) thì tăng k lên để qua
mẫu kế tiếp rồi trở lại bước 3, nếu k = K qua bước 7.
Bước 7 : kết thúc một chu kỳ học. Nếu E = 0 thì kết thúc quá trình học. Còn
nếu E >0 thì thiết lập E = 0, k = 1 và khởi tạo chu kỳ học mới bằng cách trở lại
bước 3.
Thuyết sau đây chứng tỏ rằng nếu bài toán có nhiều lời giải thì giải thuật học
perceptron sẽ tìm ra một lời giải trong số đó.
Thuyết hội tụ : Nếu bài toán là phân biệt tuyến tính thì chương trình sẽ hội tụ
sau một số lần lặp xác đònh.
b. Luật Học LMS(Least Mean Square) Hay Còn Gọi Là Luật Học Widrow_Hoff
:
Trong phần (a) chúng ta đã trình bày mạng Perceptron đơn giản với đơn vò
ngưỡng tuyến tính . Trong phần này chúng ta sẽ xét các Neuron có hàm tác động
là tuyến tính .
Cho p tập mẫu huấn luyện như sau : { (x 1,d1); (x2,d2); ... (xp,dp)}. Bài toán đặt
ra là tìm trọng số wj sao cho :
∑
m
j=1
w jx jk= d k
(2.5) với k = 1, 2, .. p
và p <= m
phương trình trên chỉ tồn tại lời giải (nghóa là tìm được trọng số w
thoả mãn)
khi các mẫu đầu vào (x1,x2,... xp) là độc lập tuyến tính.
Để tìm trọng số từ phương trình (2.5), chúng ta đònh nghóa hàm chi phí E(w)
như sau :
E(w) = 1 ∑p (d k − y k ) 2 = 1 ∑p (d k − wT x k )2 = 1 ∑p (d k − ∑m
2 k =1
2 k =1 2 k =1 j=1
w j x j k )2
Mục đích là tìm trọng số để tối thiểu hoá hàm E(w). Thông thường phương
pháp Gradient_descent được đề nghò để cập nhật hệ số trọng lượng w j một lượng
∆w j được tính như sau :
∆w =h∇w E(w)
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 36
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
hay ∆w j =h
∂E
=h∑p (d k − wT x k )x j k
∂ wj
với j=1,2 ... m
k=1
• Tóm tắt giải thuật
Bước 1 : chọn trước giá trò η > 0 và Emax > 0.
Bước 2 : khởi tạo ngẫu nhiên w, bắt đầu với mẫu thứ nhất k = 1 và gán sai
lệch E = 0.
Bước 3 : bắt đầu quá trình học, gán x = x k, y = yk. Đầu ra của mạng neuron
tính theo :
yk = a(wTxk)
Bước 4 : cập nhật trọng số
wij = wij + ∆wij = wij +h(d k − wT x k )x j k
Bước 5 : tính sai lệch bằng cách cộng thêm sai lệch hiện tại
= E + 1 (di − yi ) 2
E
2
Bước 6 : nếu k < K thì k = k + 1 và trở lại Bước 3. Nếu không thì qua Bước 7.
Bước 7 : kết thúc chu kỳ học. Nếu E ≤ Emax thì kết thúc quá trình học. Còn
nếu E > Emax thì gán E = 0 và bắt đầu một chu kỳ học mới bằng cách trở lại Bước
3.
c. Luật Học Delta :
Trong phần này, chúng ta xét các Neuron có hàm tác động là tuyến tính
a(net)=net . Luật học Delta là luật học được tổng quát hoá từ luật học Perceptron
đơn giản .
Hàm chi phí được tính như sau :
E
(wiT x k )
wij x j )] 2
với k là tập dữ liệu huấn luyện thứ k , p là số tập dữ liệu huấn luyện và a(.)
là
hàm tác động
Áp dụng giải thuật gradient-descent ta có :
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 37
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
∂E
p
∂ wij
x kj
k =1
Trọng số sẽ được cập nhật như sau :
wij = wij + ∆wij
với
∆wij = −h
∂E
=h[d ik − a(net ik )]a, (net ik )x kj
∂wij
• Tóm tắt giải thuật
Cũng như luật học Perceptron, luật học Delta cần một tập dữ liệu mẫu cho
quá trình học.
Mẫu số Giá trò đầu vào
Đầu ra mong muốn
d1
1. x1 = (x11 , x12 ,..., x1n )
2. x 2 = (x12 , x22 ,..., x2n ) d2
K.
...
x K = (x1K , x2K ,..., xnK )
dK
Do tính chất không tuyến tính của hàm tác động mà giải thuật khó có thể
dừng đúng nghóa (giá trò tạo ra bởi mạng neuron bằng đúng giá trò mong muốn
hay sai lệch = 0). Do đó người ta thiết lập tiêu chuẩn dừng theo một giá trò sai
lệch Emax cho phép nào đó : khi sai lệch E nhỏ hơn hoặc bằng Emax thì dừng.
Trong thực tế người ta còn có một tiêu chuẩn dừng theo số lần lặp : khi đạt
đến một số lần lặp xác đònh thì dừng.
Bước 1 : chọn trước giá trò η > 0 và Emax > 0.
Bước 2 : khởi tạo ngẫu nhiên w, bắt đầu với mẫu thứ nhất k = 1 và gán sai
lệch E = 0.
Bước 3 : bắt đầu quá trình học, gán x = x k, y = yk. Đầu ra của mạng neuron
tính theo :
y = a(wTx)
Bước 4 : cập nhật trọng số
wij = wij + ∆wij = wij −hE′ (w)
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 38
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
Bước 5 : tính sai lệch bằng cách cộng thêm sai lệch hiện tại
= E + 1 (di − yi ) 2
E
2
Bước 6 : nếu k < K thì k = k + 1 và trở lại Bước 3. Nếu không thì qua Bước 7.
Bước 7 : kết thúc chu kỳ học. Nếu E ≤ Emax thì kết thúc quá trình học. Còn
nếu E > Emax thì gán E = 0 và bắt đầu một chu kỳ học mới bằng cách trở lại Bước
3.
2.2.2 Mạng Perception Nhiều Lớp (Mạng Nuôi Tiến Nhiều Lớp ):
Như đã trình bày ở phần trên, mạng Perceptron đơn gian không thể giải được
bài toán XOR vì bài toán này không phải là bài toán phân biệt tuyến tính , đây là
hạn chế của mạng Perceptron đơn giản. Trong phần này , chúng ta sẽ chứng minh
mạng Perceptron nhiều lớp có thể giải quyết được bài toán XOR nêu trên . Mô
hình của bài toán XOR được cho như sau :
x1
x2
y(x1,x2) = x1 XOR x2
1. 1
1
1
2. 1
0
-1
3. 0
1
-1
4.
0
0
1
với x1,x2 là đầu vào và y(x1,x2) là đầu ra tương ứng.
Bài toán XOR được thực hiện như sau : trước hết ta dùng 2 đường thẳng
x1x2+0.5 = 0 và x1-x2-0.5 = 0 để chia mặt phẳng ra làm 3 phần như ở hình (a). Từ
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 39
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
không gian (x1,x2) ta biến đổi thành không gian (z1,z2) như sau :
x2+0.5)
và
z1=sgn(x1-
z2=sgn( x1-x2-0.5)
Từ đó ta có được mẫu đầu vào và đầu ra tương ứng trong không gian (z 1,z2)
như sau :
1.
z1
z2
d(z1,z2)
1
-1
1
2. -1 -1
-1
3. 1
1
-1
4. 1 -1
1
với z1,z2 là đầu vào và d(z1,z2) là đầu ra tương ứng.
Trong không gian (z1,z2) các mẫu đầu vào là phân biệt tuyến tính ,vì vậy ta
luôn tìm được đường thẳng phân cách đó là đường thẳng z 1-z2-0.5 = 0 chia mặt
phẳng ra làm hai phần d(z1,z2) =1 và d(z1,z2)= -1 như được mô tả ở hình (b). Lúc
này đầu ra được tính như sau : d(z1,z2)=sgn( z1-z2-0.5)
Như vậy một mạng Perceptron 3 lớp gồm 3 phần tử ở lớp đầu vào, 2 phần tử ở
lớp ẩn và 1 phần tử ở lớp đầu ra để giải bài toán XOR được mô tả ở hình (c) .
• Giới thiệu :
Giải thuật truyền lùi (Back propagation algorithm ) hay còn gọi là giải thuật
học BP là một trong các giải thuật học quan trọng nhất trong lòch sử phát triển của
các mạng Neuron nhân tạo. Giải thuật được sử dụng để huấn luyện các mạng
nuôi tiến nhiều lớp với các phần tử xử lý trong mạng có hàm tác động là dạng phi
tuyến. Mạng nuôi tiến nhiều lớp kết hợp với giải thuật truyền lùi còn được gọi là
mạng truyền lùi (Back propagation network ). Nếu cho tập các cặp 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ố kết nối trong mạng truyền lùi từ lớp đầu ra đến lớp đầu vào.
Giải thuật vận hành theo hai luồng dữ liệu đó là đầu tiên các mẫu huấn luyện
đượ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 đầu ra mong muốn
và đầu ra thực sự của mạng được truyền lùi từ lớp đầu ra đến các lớp đứng trước
để cập nhật các trọng số kết nối mạng.
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 40
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
Để hiểu rõ nguyên lý làm việc của các mạng nuôi tiến được kết hợp với giải
thuật truyền lùi, ta xét một mạng nuôi tiến ba lớp tổng quát gồm có lớp Neuron
đầu vào, lớp Neuron ẩn và lớp Neuron đầu ra, và từ đó ta có thể mở cho các
mạng nuôi tiến nhiều lớp hơn. Giả sử lớp Neuron đầu vào của mạng có m đầu
vào là x1 ,… ,xj ,… ,xm, lớp Neuron ẩn có l phần tử xử lý với các đầu ra là z 1 ,… ,zq ,…
, zl , và lớp neuorn đầu ra có n phần tử xử lý với n đầu ra đó là y 1 ,… , yi ,… , yn. Ta
cũng giả sử rằng vqj là 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 và w iq là 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.
y1
x1
y2
x2
xm
yn
xj (j= 1,…,m),vqj
zq( q = 1,…,l ) , wiq
yi ( i = 1,…, n )
Cho cặp mẫu huấn luyện (x,d), hàm tổng hợp cho mỗi phần tử xử lý thứ q của
lớp Neuron ẩn là :
net q = ∑m vqjx j
j=1
Và đầu ra của nó là:
zq = a(netq )
Hàm tổng hợp cho mỗi phần tử xử lý thứ i của lớp Neuron đầu ra là:
net i = ∑l wiq zq
q=1
Và đầu ra của nó là :
yi = a(neti )
Nếu hàm chi phí để đo sai lệch giữa đầu ra mong muốn và đầu ra thực sự của
mạng được đònh nghóa như sau :
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 41
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
E
Vì thế các trọng số giữa lớp Neuron đầu ra và lớp Neuron ẩn có thể được cập
nhật bằng một lượng :
∆wiq = −h(∂E/∂wiq)
Sử dụng luật chain cho (∂E /∂wiq) , ta có :
∆wiq = −h(∂E /∂yi )(∂yi /∂neti )(∂neti /∂wiq ) trong đó (∂E /∂yi ) = −∑n
(di − yi ),(∂yi /∂neti ) = a' (neti ) và (∂net i /∂wiq ) = z q .
i=1
Do đó, ta có thể viết lại :
∆wiq =h(di − yi )(a' (neti )(zq ) =hdoi zq
trong đó doi là tín hiệu sai lệch của Neuron thứ i trong lớp đầu ra của mạng.
Tín hiệu sai lệch của Neuron thứ i trong lớp đầu ra của mạng được đònh nghóa
bằng :
doi = −(∂E /∂net i ) = −(∂E /∂yi )*(∂yi /∂neti ) =[di − yi ][a'(net i )]
Trong đó neti là đầu vào phần tử xử lý thứ i trong lớp đầu ra và a'(neti ) =
∂a(neti )/∂neti .
Việc cập nhật các trọng sốkết nối giữa các lớp Neuron ẩn và lớp Neuron đầu
vào sử dụng luật :
∆vqj = −h(∂E /∂vqj ) = −h(∂E /∂net q )*(∂netq /∂vqj )
Hay
∆vqj = −h(∂E /∂vqj ) = −h(∂E /∂z q )(∂z q /∂netq )*(∂net q /∂vqj )
Hay
∆vqj = −h(∂E /∂vqj ) = −h(∂E /∂yi )(∂yi /∂z q )(∂z q /∂netq )*(∂net q /∂vqj ) trong
đó
(∂E /∂yi ) = −∑n
(di − yi ),∂yi /∂zq = (∂yi /∂net i )(∂neti /∂zq ) = a'(neti )(wiq )
i=1
∂zq /∂net q = a'(netq ) và ∂netq /∂wqj = x j , cho i=1,… ,n .
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 42
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
Do đó , ta có :
∆vqj =h∑n [(di − yi )a'(neti )wiq ][a'(net q )x j ]
i=1
Hay
h
∆vqj =
∑ [d w
n
qi
iq
][a'(netq )x j ]= hdhqx j
i=1
Trong đó , dhq là tín hiệu sai lệch của phần tử xử lý thứ q trong lớp Neuron ẩn
được cho bởi :
dhq = a'(net q )∑n (dqi wiq )
i=1
• Giải Thuật Học Truyền Lùi BP :
Một cách tổng quát, cho mạng nuôi tiến q lớp , q = 1 , 2 ,… q và qneti và qyi là
đầu vào và đầu ra của phần tử xử lý thứ i của lớp thứ q. Mạng có m Neuron đầu
vào và n Neuron đầu ra. Cho qwij là trọng số kết nối giữa q-1yj và qyi . Giải thuật
truyền lùi được kết hợp với mạng nuôi tiến q lớp để tìm ra các trọng số kết nối
xấp xỉ thích nghi cho mạng được mô tả như sau :
Nhập : 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 , đó là xm+1(k) = -1.
Bước 0 : Thiết lập hằng số học h> 0 , và thiết lập sai lệch Emax cho phép giữa
đầu ra mong muốn và đầu ra thực sự của mạng. Thiết lập các trọng số ban đầu .
Thiết lập E = 0 và k = 1.
Bước 1 :(vòng lặp huấn luyện ): Gán mẫu đầu vào thứ k với lớp Neuron đầu
vào (q = 1)
q
yi = 1yi = xi(k)
cho tất cả i
Bước 2 : Truyền tín hiệu tiến thông qua mạng sử dụng công thức :
yi = a(qneti ) = a(∑ q wij q−1 y j )
q
j
Cho mỗi phần tử xử lý thứ i ở lớp thứ q và cho đến khi q đạt đến lớp Neuron
đầu ra qyi .
Bước 3 : Tính giá trò sai lệch và các tín hiệu sai lệch cho lớp Neuron đầu ra
E
E
di = (di (k)−Qyi )a'(Qneti )
Q
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 43
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
Bước 4 : Truyền các tín hiệu sai lệch lùi để cập nhật các trọng số và tính các
tín hiệu sai lệch q−1di cho các lớp đứng trước :
∆ qwijnew =hqdi q−1 y j và qwijnew =qwijold +∆ qwij
ji
q−1
di = a'(q−1neti )∑ qw
dj cho q=q, q-1 ,… ,2 .
q
j
Bước 5 : Kiểm tra xem nếu k < p , thì cho k = k + 1 và quay về bước 1. Mặt
khác đi đến bước 6.
Bước 6 : Kiểm tra xem tổng sai lệch hiện có nếu E < E max thì kết thúc quá
trình huấn luyện và xuất các trọng số cuối cùng được xem như là các trọng sốkết
nối xấp xỉ thích nghi cho mạng, mặt khác thiết lập lại E = 0 , k = 1 và thực hiện
một quá trình huấn luyện mới bằng cách quay về bước 1.
• Các Thông Số Học Của Giải Thuật Truyền Lùi Bp :
Vấn đề hội tụ của giải thuật học truyền lùi BP còn phụ thuộc vào nhiều yếu
tố khác nhau đó là việc chọn lựa để thiết lập các thông số học trong giải thuật sao
cho giải thuật có thể hội tụ hoặc hội tụ nhanh đến lời giải bài toán. Các thông số
đó là :
+ Trọng số ban đầu : thường chọn rất nhỏ. Chúng có thể được chọn ngẫu
nhiên với giá trò rất nhỏ trong phạm vi [−3/ ki ,3/ ki ], trong đó ki là số đầu vào của
phần tử xử lý thứ i.
+ Hằng số học : để giải thuật có thể hội tụ đến lời giải của bài toán, bằng
thực nghiệm, hằng số học h được chọn với một giá trò rất nhỏ có thể là trong
phạm vi từ 10-3 đến 10 .Tuy nhiên để chính xác hơn , hằng số học h nên được cập
nhật bằng qui luật.
Có 2 qui luật được sử dụng để cập nhật hằng số học đó là :
+ a nếu E < 0
∆h = − bh
0
nếu E >0
mặt khác
trong đó , E là sai số trong hàm chi phí, a và b là hai hằng số dương .
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 44
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
Một phương pháp khác được đề nghò để cập nhật hằng số học đó là luật :
−
+ a
nếu l (t −1)l (t) > 0
∆h (t +1) = −bh
(t )
nếu
l − (t −1)l (t)
<0
0 mặc khác
trong đó, l (t) = ∂E /∂wij và l − (t) = (1−c)l (t) + cl − (t −1) ,và c ∈[0,1] là một hằng
số .
+ Hàm chi phí : một yếu tố quan trọng khác cũng có tác động lớn đến việc hội
tụ của giải thuật BP đó là hàm chi phí để so sai lệch giữa đầu ra thực sự và đầu ra
mong muốn của mạng. Hàm chi phí thường được sử dụng trong giải thuật trên cơ
sở Norm Lp có dạng tổng quát :
E
E
=
trong đó, 1≤ p < ∞ .
Trong trường hợp p = 2 , ta có hàm bình phương tối thiểu tức là Norm L 2 được
sử dụng để đo sai lệch giữa đầu ra mong muốn và đầu ra thực sự của mạng như đã
được mô tả trong giải thuật truyền lùi BP đó là :
E = 2 ∑in=1 (di (k)−Qyi ) 2 + E
1
+ Momentum : tốc độ học của phương pháp gradient descent rất chậm nếu
hằng số học h nhỏ và tốc độ học của phương pháp này có thể dao động cực lớn
nếu hằng số học h quá lớn . Để khắc phục điều này , luật học bằng phương pháp
gradient descent được bổ sung thêm một lượng hệ số trọng lượng đã được sử
dụng ở bước thời gian trước đó là :
trong đó a ∈[0,1] là thông số
momentum và giá trò 0.9 thường được sử dụng cho thông số này .
∆w(t) = −h∇E(t) +a∆w(t −1)
+ Các luật cập nhật trọng số: phương pháp gradient descent là một trong các
kỹ thuật tối ưu đơn giản nhất, nó đảm bảo dẫn đến hội tụ của bài toán, tuy nhiên
tốc độ học của phương pháp này rất chậm, vì nó chỉ xem xét đến nhóm vi phân
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 45
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
bậc nhất của hàm sai lệch. Để bổ ích nhiều hơn, nên sử dụng phương pháp cập
nhật trọng sốmà được xem xét đến nhóm vi phân bậc cao hơn của hàm sai lệch .
+ Dữ liệu huấn luyện : dữ liệu huấn luyện cũng là yếu tố quan trọng có tác
động đến tốc độ hội tụ của giải thuật. Chúng ta luôn luôn muốn có tập dữ liệu
huấn luyện sao cho đủ hiệu lực và thích hợp để huấn luyện mạng . Tuy nhiên
không có một thủ thuật nào hoặc qui luật nào thích hợp cho các trường hợp để
chọn tập dữ liệu huấn luyện có hiệu lực và thích hợp.
Có một qui luật chủ chốt duy nhất đó là dữ liệu huấn luyện nên bao trùm toàn
bộ không gian đầu vào mong muốn và sau đó trong thời gian quá trình huấn luyện
chọn lọc các cặp vector huấn luyện ngẫu nhiên từ tập hợp dữ liệu huấn luyện
này.
+ Số các Neuron ẩn : kích thước của lớp Neuron ẩn là câu hỏi cơ bản thường
được đặt ra trong việc ứng dụng các mạng nuôi tiến nhiều lớp. Câu hỏi này khó
mà trả lời chính xác có bao nhiêu Neuron trong lớp Neuron ẩn . Tuy nhiên kích
thước của lớp Neuron ẩn thường được xác đònh bằng thực nghiệm cụ thể, nếu
mạng không hội tụ đến lời giải thì có thể thêm số Neuron ẩn sao cho mạng có
thể hội tụ đến lời giải.
2.2.3 Mạng Truyền Lùi Một Lớp :
Có nhiều loại mạng truyền lùi một lớp, hai mạng tiêu biểu là mạng Hopfield
và máy Boltzman sẽ được trình bày sau đây .
a. Mạng Hopfield :
Mạng Hopfield là một mạng truyền lùi một lớp. Đầu vào của mỗi Neuron bao
gồm một đầu vào từ môi trường bên ngoài x i , một giá trò ngưỡng qj và các giá trò
hồi tiếp từ đầu ra của các Neuron khác thông qua trọng số kết nối w ij ( với i, j=
1...n ;i#j ) . mạng Hopfield đầu ra của Neuron thứ i không hồi tiếp về đầu vào
của chính nó, mà chỉ hồi tiếp về đầu vào của các Neuron khác, có nghóa là w ii=
0.
Hơn nữa ma trận trọng số của mạng Hopfield là ma trận đối xứng w ij=wji với
i, j=1,...n .
Quá trình cập nhật trọng số được thực hiện như sau : đầu tiên một tập các
đầu vào từ môi trường bên ngoài được đưa vào mạng và ta có được đầu ra tương
ứng , sau đó các đầu ra này sẽ được hồi tiếp về làm đầu vào mới thông qua một
trọng số và lúc này các đầu vào từ môi trường bên ngoài không còn tác động .
Các bước tính toán tiếp theo sẽ độc lập với môi trường bên ngoài , đầu ra Neuron
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 46
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
này sẽ là đầu vào của các Neuron khác và quá trình cứ tiếp tục như vậy cho đến
khi đầu ra hội tụ .
Qui luật cập nhật tại đầu ra của mỗi neuron được xác đònh như sau :
yi (k+1) = f (∑n wij y j (k) + xi −qi )
j=1
i# j
với f(.) là hàm tác động, wij là trọng số kết nối giữa neuron thứ i và neuron thứ
j, yi(k) là đầu của neuron i tại thời điểm k, qi là giá trò ngưỡng ,xi là đầu vào từ
môi trường bên ngoài .
Nếu vector đầu vào là lưỡng cực thì trọng số kết nối được tính theo qui luật
sau:
wij = ∑p xi k x j k
i#j ; wii = 0
k=1
với wij là trọng số kết nối giữa phần tử thứ i và j, xik xjk là đầu vào của phần tử
xử lý thứ i và j tại tập huấn luyện thứ k, p là số tập huấn luyện
Mạng Hopfield ban đầu đòi hỏi mỗi neuron phải được hiệu chỉnh liên tục để
đảm bảo tính hội tụ của hệ thống động. Hệ thống động sẽ được huấn luyện để tối
thiểu hoá năng lượng cho đến khi mạng đạt được trạng thái ổn đònh (tối thiểu hoá
năng lượng cục bộ) . Để chứng minh sự hội tụ của mạng ta dùng hàm năng lượng
của Liapunov. Sau đây chúng ta sẽ trình bày sự hiệu chỉnh đồng bộ của tất cả các
neuron tại mỗi lần hồi tiếp, nó có thể biểu diễn bằng một ma trận không âm. Để
chứng minh sự hội tụ của quá trình hiệu chỉnh song song đồng bộ hàm năng lượng
Liapunov là một công cụ hữu ích :
E(k) = −
1
∑ .∑ w y (k)y
n
n
2 i=1
ij
i
j
(k) − ∑n xi yi +∑n qi yi (k)
j=1
i=
i=1
với k là lần hiệu chỉnh thứ k.
Để chứng minh là mạng ổn đònh thì hàm năng lượng phải giảm khi trạng thái
tại mỗi nút thay đổi. Chúng ta giả sử tại nút thứ i, trạng thái đầu ra thay đổi từ
yi(k) đến yi(k+1) , khi đó năng lượng thay đổi được tính như sau :
∆E = E(yi (k +1) ) − E(yi (k) )
= -(∑n wij y j (k ) + xi −qi )(yi (k +1) − yi (k) )
j=1
j #i
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 47
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
hay
∆E = −(neti )∆yi
Từ phương trình trên nếu giá trò đầu ra thay đổi từ –1 sang trạng thái kế tiếp
là +1 thì hàm tổng hợp net i sẽ dương và ∆E sẽ có giá trò âm. Tương tự như vậy
nếu giá trò đầu ra thay đổ từ +1 sang trạng thái kế tiếp là -1 thì hàm tổng hợp net i
sẽ âm và ∆E cũng có giá trò âm. Trong trường hợp không có sự thay đổi giữa hai
lần liên tiếp thì giá trò của ∆E = 0.
Vì vậy hàm năng lượng với qui luật cập nhật như trên sẽ đạt đến giá trò cực
tiểu . Do đó với trạng thái bắt đầu bất kỳ mạng Hopfield luôn hội tụ về trạng thái
ổn đònh sau một số bước lặp xác đònh. Ma trận trọng số của mạng Hopfield được
đề nghò là một ma trận xác đònh đối xứng và không âm .
Trong trường hợp với các đầu ra đơn vò {0,1} ta không xét đến giá trò ngưỡng
và độ lệch đầu vào thì trạng thái ổn đònh tương ứng với số nhỏ nhất của hàm năng
lượng sau:
E(k) = − ∑n .∑n wij yi (k)y j (k)
2 i=1
j=1
1
điều này xuất hiện qui tắc xác đònh
wij = ∑n (2yi s −1)(2y j s −1)
wij như sau:
với i#j
s=1
trong đó y s là đầu ra tại thời điểm s.
Quá trình xác đònh trọng số từ phương trình trên có thể được làm rõ hơn bằng
công thức hiệu chỉnh trọng số được cho như sau:
wij = wij +
h
yi y j
2
Đây là một hình thức đơn giản của luật học Hebbian. Thay vì hiệu chỉnh trọng
số theo luật học Hebbian , luật học Hopfield sử dụng toàn bộ trọng số { wij }trong
quá trình huấn luyện để xác đònh trọng số cố đònh với sai số đầu ra tiến đến 0,
trọng số được xác đònh theo công thức sau:
wij = ∑n (2yi s −1)(2y j s −1)
s=1
b. Máy Boltzmann:
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 48
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
Máy Boltzmann là một mạng Hoplfield đơn giản mà mỗi phần tử xử lý (mỗi
nút ) thực hiện một quá trình mô phỏng (simulated annealing process) để nó khả
năng đạt được tối thiểu năng lượng toàn cục từ việc tối thiểu cục bộ. tưởng về
quá trình huấn luyện mô phỏng được đưa ra dựa trên việc huấn luyện (tôi luyện)
kim loại và những vật liệu khác. Trong quá trình luyện kim loại chúng sẽ được
nung nóng đến gần nhiệt độ nóng chảy và sau đó kim loại được là lạnh từ từ về
nhiệt độ phòng. Quá trình này sẽ làm tối thiểu năng lượng toàn cục của kim loại.
Nếu nhiệt độ giảm xuống quá nhanh thì năng lượng của kim loại sẽ cao hơn năng
lượng tối thiểu ở trên vì sự thay đổi nhiệt độ đột ngột sẽ phá huỷ những lưới kim
loại.
Sau một thời gian huấn luyện mạng sẽ được trạng thái ổn đònh và lúc này
trạng thái của nó sẽ luôn thay đổi theo chiều hướng giảm năng lượng.
Để làm rõ quá trình huấn luyện mô phỏng, ta xét một hệ thống có trạng thái
thay đổi từ trạng thái cũ sold đến trạng thái mới snew với xác xuất p được cho bởi:
1
p =
∆E
1+ exp(− T)
với ∆E = E old − E new là sự thay đổi năng lượng
T là nhiệt độ môi trường , T > 0
Từ công thức xác xuất ở trên người ta chứng minh được rằng : xác xuất để
∆E > 0 luôn lớn hơn xác xuất để ∆E < 0 với mọi T > 0, vì vậy chúng ta tin rằng
năng lượng của hệ thống luôn giảm.
Khi quá trình huấn luyện mô phỏng được ứng dụng trong mạng Hoplfield thì
mạng sẽ được gọi là máy Boltzmann . Vì vậy máy Boltzmann cơ bản là một mạng
truyền lùi một lớp với luật cập nhật như sau :
1
1
yinew =
old
yi 0
)
Nếu z ≤ pi = 1+ exp(− ∆Ei
T
Trường hợp khác
với yi là 1 hoặc 0; i=1,2...n
T là nhiệt độ; z là số ngẫu nhiên trong khoảng (0,1)
Và
∆Ei = Ey =0 − E y = = ∑n wij y j = net i
i
i
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 49
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
j=1
i#j
Trong quá trình huấn luyện mô phỏng , nhiệt độ T sẽ giảm khi E giảm hoặc
khi đã cập nhật được một tập đủ lớn tại nhiệt độ đó.
Không như mạng Hoplfield (mạng đảm bảo hội tụ đến cực tiểu cục bộ của
hàm năng lượng sau một số bước huấn luyện ), máy Boltzmann cũng có thể hội tụ
hoặc không hội tụ đến trạng thái ổn đònh cuối cùng. Tuy nhiên nếu hội tụ trạng
thái hội tụ dùng máy Boltzmann sẽ gần với giá trò cực tiểu toàn cục của hàm năng
lượng E.
Luật học để cập nhật trọng số cho máy Boltzmann được tính như sau:
∆wij = ∆w ji =h(qij − pij )
với h là một hằng số rất nhỏ và qij, pij được tính như sau:
qij = Eq[yi y j ] = ∑q(y)yi y j
y
pij = Eq[yi y j ] = ∑ p(y)yi y j
y
với q(y) là sự phân bố xác xuất của tín hiệu y từ môi trường bên ngoài , p(y)
là sự phân bố xác xuất không đổi của máy Boltzmann trong đó E q và Ep là phép
toán liên quan đến q(y) và p(y).
2.2.5 Mạng Học Không Giám Sát:
Các luật học được trình bày trong các phần trước là luật học giám sát , nghóa
là ứng với mỗi đầu vào ta luôn biết được đầu ra mong muốn. Sai số giữa đầu ra
mong muốn và đầu ra thực sự của mạng được hồi tiếp để cập nhật trọng số cho
mạng.
Trong cách học không giám sát, ta không biết bất kì một thông tin nào,
không biết đầu ra thực sự của mạng là đúng hay sai. Trong trường hợp này, mạng
chỉ được cung cấp các mẫu đầu vào, mạng tự điều chỉnh các trọng số kết nối giữa
các Neuron trong mạng bằng cách sử dụng hồi tiếp là các mẫu đầu ra thực sự của
mạng. Mô hình của một mạng không giám sát đuọc biểu diễn như sau:
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 50
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
y(
x (input )
actu
al
Neuron
network
output)
a. Luật học Hebbian :
Trong đề xuất của Hebbian , tín hiệu học r có thể được thiết lập như sau :
r = a(wTi X ) = yi trong đó a(.) là hàm tác động của phần tử xử lý
thứ i.
Vì vậy vector hệ số trọng lượng được cải tiến như sau :
∆wi =ha(wTi X )X = hyi X
Có nghóa là các thành phần của vector hệ só trọng lượng được cập nhật một
lượng là :
∆wij =ha(wiT X)x j =hyi x j với i = 1 n ; y = 1
m.
Từ các phương trình trên ta thấy rằng luật học Hebbian là luật học không
giám sát cho một mạng nuôi tiến vì nó sử dụng các đầu vào và đầu ra thực sự của
mạng để cải tiến hệ số trọng lượng. Từ các phương trình trên ta cũng thấy rằng w ij
cũng có thể âm hoặc dương phụ thuộc vào tích yixj.
b. Luật học cạnh tranh:
Luật học cạnh tranh là luật học không giám sát, nó phân loại những tín hiệu
đầu vào thành những nhóm tách rời nhau. Do đó tín hiệu đầu vào trong mỗi nhóm
thì tương tự như những nhóm khác. Hầu hết mạng neuron học cạnh tranh là mạng
nuôi tiến một lớp sử dụng cơ cấu (winner- take-all) người chiến thắng đạt được tất
cả. Nó có thể xếp tầng một vài lớp tối ưu riêng rẽ trong mạng học cạnh tranh để
thiết lập một mạng có thứ bậc .
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 51
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
Không đánh mất tính tổng quát, hệ thống động với đầu vào { xi } và những
đầu ra { yi }trong quá trình huấn luyện theo luật học cạnh tranh, đầu ra của phần
tử xử lý thứ i được cho bởi phương trình sau:
net i = ∑N wijx j
j=1
với neti là hàm tổng hơp của phần tử xử lý thứ i
và đầu ra
yi
=
1
0 Nếu netNếu netii> ≤net netk với mọi kk
(2.6)
với 1≤ i ≤ N . Kỹ thuật cạnh tranh phi tuyến (take-all winner-) được dùng
trong lớp neuron đầu ra vì thế chỉ có neuron có hàm tổng hợp lớn nhất là tích cực.
Quá trình huấn luyện trong mạng học cạnh tranh có thể được biểu diễn
bằng công thức đệ qui cập nhật trọng số:
wij = wij +hy(x j − wij )
(2.7)
Với mỗi lần đệ qui là một chu kỳ huấn luyện. Theo công thức 2.6 và công
thức 2.7 cho thấy rằng chỉ có trọng số liên quan đến neuron chiến thắng mới được
cập nhật trọng số còn lại tất cả trọng số của các neuron khác không thay đổi. Đây
là đặc tính đặc biệt của mạng học cạnh tranh. Chú ý rằng những công thức trên
chỉ mô tả những đặc tính cơ bản thông thường của mạng học cạnh tranh, trong
thực tế đối với mỗi mô hình riêng rẽ thì không dùng một kỹ thuật chắn chắn nào
cả.
2.3. Ứng Dụng Mạng Neuron Nhân Tạo Trong Robot :
Trong phần này chúng ta đề cập đến phương pháp ứng dụng mạng neuron
nhân tạo trong robot. Có ba cấp độ xử lý trong một hệ thống robot, đó là phương
án công việc , phương án đường và điều khiển đường đi.
Ở cấp độ phương án công việc : robot sẽ nhận những hướng dẫn vềø phương án
công việc và xử lý những thông tin trong không gian làm việc ( như là đích đến,
khoảng cách, vò trí của chướng ngại vật… . ). Tại cấp độ này, một vài phép phân
tích hình ảnh cổ điển đòi hỏi phải có được thông tin 3 chiều.
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 52
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
Ở cấp độ phương án đường , robot sẽ xử lý để tạo ra q đạo đường đi mong
muốn. Có nghóa là robot sẽ chọn ra được một đường đi tối ưu trong vùng không
gian làm việc dựa trên kỹ thuật tối ưu.
Ở cấp độ điều khiển đường đi sẽ tạo ra tín hiệu điều khiển đến các motor để
lái robot theo q đạo mong muốn, những tính toán thời gian thực của một hệ
thống động được đề cập đến.
Trong phần này chúng ta đề cập đến những giải thuật học khác nhau để điều
khiển robot theo 3 cấp độ trên .
2.3.1. Phương án Công việc Sử Dụng Mạng Neuron
Trong phương án công việc chúng ta phải xác đònh được độ sâu của thông tin
xác thực. Thông thường cảm biến siêu âm (sonar sensor) được dùng trong mục
đích này. Tuy nhiên kỹ thuật dùng âm thanh cũng đáng tin cậy nhưng quá trình
tính toán, chuyển đổi tín hiệu từ cảm biến đưa về tương đối phức tạp. Ở đây ta
dùng hai camera để thu thập thông tin 3 chiều về không gian làm việc. Thông
thường vò trí của camera và đònh hướng của nó được biết trước, nhiệm vụ chính
của camera là tạo ra sự tương xứng giữa đặc tính nguyên thuỷ của hai hình ảnh
được thu về từ hai camera. Nó được gọi là bài toán tương xứng (correspondence
problem), nó phát hiện đặc tính ban đầu và xác đònh giá tri tương ứng với đặc tính
đó.
• Bài toán dừng tối ưu dùng mạng neuron : chúng ta xem xét một bài toán
dừng tối ưu nghóa là đạt được hàm năng lượng cực tiểu:
mimize E'= Φ(a) + ∑q ci Pi (a)
i=1
với ci là một hằng số dương , Φ là một hàm liên tục n chiều , Pi (a) là một hàm
liên tục không âm. Điều này dẫn đến quá trình xử lý mạng neuron tối ưu, trọng
số kết nối và đầu vào của mạng được phát sinh từ hàm năng lượng.
• Mạng neron dùng trong tương xứng hình ảnh: Như được biểu diễn ở (hình
1) là bài toán tương xứng hình ảnh của 2 camera với tiêu cự s nằm tại toạ độ
(0,+d,0) và (0,-d,0). Tầm nhìn của camera giả sử song song với trục z. Điểm có
toạ độ thực là (x,y,z) trong không gian sẽ tạo ra một điểm có toạ độ (i,j) trên màn
hình của camera bên trái và một điểm co ùtọạ độ (i’,j’) trên màn hình của camera
bên phải. Chúng ta giả sử rằng hai camera được đặt song song và bằng nhau theo
phương nằm ngang (trục j ) nghóa là ta có toạ độ hai điểm trên hai camera là bằng
nhau theo phương thẳng đứng (trục i trùng với trục của i’), lúc này vò trí của đối
tượng được xác đònh dựa vào toạ độ j và j’. Giá trò (j-j’) được gọi là giá trò chênh
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 53
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
lệch giữa hai điểm tương ứng. Thông tin về khoảng cách z của vật thể có thể được
tính từ giá trò chênh lệch theo công thức sau :
z = 2.
s.d
j − j'
Giả sử ta có màn hình của mỗi camera được chia thành ma trận MxN nghóa
là có ma trận {bij(l) } cho camera bên trái và ma trận ( ) cho camera bên phải.
Một mảng dữ liệu nhò phân tương ứng {ai, j,k } với 1≤ i ≤ M,1 ≤ j ≤ N,0 ≤ k ≤ D có
thể đặc trưng cho trạng thái của vật thể. Khi { ai, j,k }=1 thì giá trò chênh lệch là k
tại điểm (i,j) trong phần này chúng ta giả sử giá trò chênh lệch lớn nhất là D. Mục
đích của bài toán tương xứng là tối thiểu hoá hàm Φ có công thức sau:
f = f 1 +f 2
M N
D
M
N
D
=∑∑∑(bijl −bijr )2 ai, j,k + l ∑∑∑∑(ai, j,k − ai', j ',k ) 2
i=1 j=1 k =0
i=1 j=1 k =0 (i ' j '∈j )
với điểm dừng tại
M
N
D
P=∑∑(∑ai, j,k −1)2 = 0
i=1 j=1
k=0
§ Trong đó f 1 là phép đo sự tương xứng giữa 2 hình ảnh bằng phương pháp
bình phương tối thiểu :
t
ta•b = 0a+b
nếu
trong các trường
hợp 0 ≤ a +b ≤ N khác
§ f 2 là phép đo độ sâu với l là trọng số kết nối , y là những điểm lân cận của
điểm (i,j)
§ Giá trò dừng P trong biểu thức trên được xem như là đặc tính duy nhất được
duy trì đó là vì bất cứ điểm nào từ mỗi hình ảnh có thể giả sử chỉ có một và chỉ
một độ sâu theo biểu thức :
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 54
Luận Văn Tốt Nghiệp GVHD :T h a à y Nguyễn Thiện Thành
q
minimize E'= f (a) + ∑ci Pi (a)
i=1
và
MN
D
P=∑∑(∑ai, j,k −1)2 = 0
i=1 j=1
k=0
Thì bài toán điểm dừng có thể trình bày lại dưới dạng bài toán động
( unconstrained)
min ai, j,k E'= f + cP
Mạng tối ưu Hopfield hoặc máy Boltzmann có thể được dùng để giải quyết
bài toán động ở trên. Mỗi dữ liệu tương ứng ai, j,k có thể xem như một giá trò tác
động (activation value) của một neuron.
Trọng số wi, j,k,m,n và đầu vào bên ngoài qi, j ,k của mạng neuron có thể được tính
bởi hàm năng lượng cho bởi công thức sau:
E=E'=− 12∑iM=1 ∑jN=1∑kD=0∑lM=1 m∑N=1∑nD=0 wi,j,k,m,n.ai,j,k.al,m,n −∑iM=1
∑jN=1 k∑D =0 qi, j,k.ai,j,k
Trong ví dụ này chúng ta sẽ làm sáng tỏ bài toán hành trình của robot sử dụng
mạng neural đơn cực rời rạc. Bài toán tìm hành trình ngắn nhất của robot, trong
SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 55