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

Mạng thần kinh nhân tạo cho phân lớp màu sắc part 4 pps

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 (280.85 KB, 11 trang )

288
L
F
F
F
F
F
F F
N
N
N
N
N
N N
2
1
1
2
1
1








hoặc L
F
F


F
F
L
N
N
N
N
2
1
1
2
1
1
1
1









L L
2 2
2
1( )





L
2
1 5
2

L
2
5 1
2
0 618

. (12.8)
Trong khoảng [0,1], điểm bắt đầu tìm kiếm là a
1
= 1 0.618 = 0.382 và
a
2
= 0.618, không phụ thuộc vào N hoặc .
Tỷ lệ
5
1
2

/
đợc biết trong toán học và kiến trúc cổ điển dới tên tỷ
lệ vàng (Golden Section). Nó chia một đoạn thành hai phần, làm cho một tỷ
lệ rất lớn của đoạn ban đầu tơng đơng tỷ lệ nhỏ hơn. Vì lý do này nên kỹ
thuật loại trừ này gọi là kỹ thuật tìm kiếm tỷ lệ vàng.

Thuật toán cho tìm kiếm tỷ lệ vàng bây giờ có thể trình bày bằng các
bớc sau:

1. Xác định hai điểm
1

2
mà chứa điểm giá trị nhỏ nhất (
1
>
2
).
2. Tính L =
2
-
1
, a
2
= 0.618L +
1
, và a
1
=
1
+
2
- a
2
(tham khảo hình
12.7).

3. Tính tol =
2
-
1
;
4. Nếu tol < thì dừng lại.
5. Tính y
1
= f(a
1
) và y
2
= f(a
2
).
6. Nếu y
1
< y
2
và a
1
> a
2
thì loại trừ miền [
1
,a
2
], cụ thể,
1
= a

2
và a
2
=
1
+
2
- a
1
.
Nếu y
1
< y
2
và a
1
< a
2
thì loại trừ miền [a
2
,
2
], cụ thể,
2
= a
1
và a
2
=


1
+
2
- a
1
.
Nếu y
1
> y
2
và a
1
> a
2
thì loại trừ miền [a
1
,
2
], cụ thể,
2
= a
1
và a
1
=

1
+
2
- a

2
.
289
Nếu y
1
> y
2
và a
1
< a
2
thì loại trừ miền [
1
,a
1
], cụ thể,
1
= a
1
và a
1
=
1
+
2
- a
1
.
7. Chuyển tới bớc ba .


Bài tập 12.1 Lập một chơng trình C cho tìm kiếm tỷ lệ vàng. Kiểm tra
chơng trình theo các hàm dới đây:
f(x) = 6.0 - 11x + 6x
2
- x
3
(Trả lời : 1.42256 cho khoảng [0,2])
f(x) = (100 - x)
2
(Trả lời : 100)
f(x) = e
x
- 3x
2
- 2e
-2x
(Trả lời : 2.8316)

Một phơng pháp đòi hỏi ít các giá trị hàm hơn phơng pháp tỷ lệ vàng
đợc phát triển bởi Powell. Cơ sở của phơng pháp này dựa trên đánh giá
bậc hai liên tiếp. Phơng pháp đánh giá bậc hai cho rằng một khoảng giới
hạn một hàm có thể xấp xỉ bởi một hàm bậc hai. Giá trị cực tiểu của hàm
bậc hai này dùng nh đánh giá đầu tiên cho giá trị nhỏ nhất của hàm. Giá trị
cực tiểu này cùng với hai điểm nữa dùng để tính ra một xấp xỉ tốt hơn, và cứ
tiếp tục nh vậy. Cuối cùng, giá trị cực tiểu của hàm bậc hai sẽ xấp xỉ giá trị
nhỏ nhất thực sự trong giới hạn sai số nào đó. Phơng pháp xấp xỉ bậc hai
có thể mô tả bằng các bớc sau:
Cho ba điểm liên tiếp nhau x
1
, x

2
, x
3
và giá trị hàm tơng ứng của nó f
1
,
f
2
, f
3
chúng ta xác định ba hằng số của hàm bậc hai
q(x) = a
0
+ a
1
(x-x
1
) + a
2
(x-x
1
)(x-x
2
) (12.9)
Vì f
1
= f(x
1
) = q(x
1

) = a
0
chúng ta có a
0
= f
1

(12.0)
Vì f
2
= f(x
2
) = q(x
2
) =f
1
+ a
1
(x
2
- x
1
)
chúng ta có
12
12
1
xx
ff
a




(12.11)
Cuối cùng tại x = x
3
))(()()()(
2313213
12
12
1333
xxxxaxx
xx
ff
fxqxff


(12.12)
290
Để rút ra giới hạn cực đại (hoặc cực tiểu) chúng ta lấy vi phân q(x) theo x
và cho biểu thức này bằng 0.
0)()(
22121
xxaxxaa
dx
dq

Giải biểu thức trên theo biến x chúng ta rút ra giá trị đánh giá

2

112
22 a
axx
x

(12.13)
Chú ý rằng giá trị nhỏ nhất rút ra nếu
02
2
2
2
a
xd
qd
(12.14)
Thuật toán Powell dùng để đánh giá bậc hai liên tiếp đợc cho bởi
Powell. Tuy nhiên, nếu nh a
2
bằng 0 thì hàm này không thể xấp xỉ bằng
hàm bậc hai.
Một phơng pháp bao gồm tìm kiếm tỷ lệ vàng và xấp xỉ bậc hai liên tiếp
đợc cho bởi Brent. Phơng pháp của Brent đợc dùng cho hàm nhiều biến
cho ở phần kế tiếp dới đây.
12.5.2 Thu hẹp giá trị nhỏ nhất
Không có phơng pháp nào dùng các phần trên là không có bớc thu hẹp
giá trị nhỏ nhất lúc ban đầu. Một lu đồ do Swann phát triển đợc tôi lựa
chọn để dùng. Phơng pháp này đợc trình bày tốt nhất qua các thuật toán
dới đây.

1. Lựa chọn giá trị ban đầu x

0
và một bớc nhỏ dx.
2. Tính
x
1
= x
0
+ dx
y
1
= f(x
0
)
y
2
= f(x
1
)
3. Nếu y
1
y
0
thì cho dx = -dx và tính
x
1
= x
0
+ dx
y
1

= f(x
1
)
4. Tính
291
dx = 2.0 * dx
x
2
= x
1
+ dx
y
2
= f(x
2
)
5. Lặp lại các bớc dới đây cho đến khi y
2
> y
1
dx = 2.0 * dx
x
0
= x
1

y
0
= y
1


x
1
= x
2
y
1
= y
2

x
2
= x
1
+ dx
y
2
= f(x
2
)
6. Miền thu gọn là (x
0
,x
1
)
12.5.3 Phơng pháp tối thiểu hoá hàm nhiều biến
Có một số kỹ thuật có hiệu quả cho tối thiểu hoá một hàm nhiều biến.
Phơng pháp mà hay đợc dùng sẽ xác định một hớng tìm kiếm trong
không gian nhiều chiều. Tiếp theo, một phép xấp xỉ một biến sẽ xác định giá
trị tối thiểu dọc theo hớng này. Mỗi lần một giá trị tối thiểu đợc tìm thấy,

một hớng mới đợc tìm tìm thấy và quá trình tìm kiếm lại bắt đầu lại từ
đầu. Điều này tiếp tục cho đến khi đạt đợc hội tụ. Quy tắc delta mô tả ở
phần trên có liên hệ với một kỹ thuật gọi là sự hạ thấp dốc nhất. Tuy nhiên,
vẫn cha có một kết quả nào đợc tạo ra để đa ra một sự tìm kiếm đơn biến
dọc theo sự hạ thấp dốc nhất. Một sự khác biệt nữa là các mẫu đợc cho lần
lợt tại từng thời điểm bằng sự sửa lại các trọng số. Trong sơ đồ hay đợc
dùng nhất thì điều này không xảy ra, tất cả các mẫu đợc cung cấp cho
chơng trình để tính một hớng tìm kiếm thuận tiện nhất.
Bởi vì đây không phải là một quyển sách tối u, nên tôi sẽ trình bày với
các bạn tất cả các phơng pháp tối u hoá cho hàm nhiều biến. Nhng tôi sẽ
chỉ trình bày với bạn hai phơng pháp mà tôi thấy có kết quả nhất. Phơng
pháp đầu tiên mà tôi trình bày đợc phát triển bởi Fletcher và Reeves gọi là
phơng pháp gradient kết hợp. Gradient kết hợp là một hớng cơ sở đợc
292
thiết kế dùng để tối thiểu hoá một hàm bậc hai đầy đủ có N biến sau đúng N
bớc. Một phơng pháp khác đợc phát triển bởi Daviđon, Fletcher, Reeves.
Phơng pháp này thờng hay đợc dùng để tối thiểu hoá các hàm có số
biến lớn. Bạn sẽ không cần phải hiểu các chứng minh của các thuật toán này
khi áp dụng. Nếu bạn muốn tìm hiểu thêm, tôi đề nghị bạn hãy tìm đọc các
cuốn sách đợc xuất bản gần đây nhất về tối u hoá. Tiếp theo tôi sẽ trình
bày hai thuật toán này.
Chúng ta sẽ giả thiết rằng hàm N biến đợc tối thiểu hoá cho dới dạng y
= f(x
0
,x
1
,x
2
, ,x
N-1

) = f(X) và
X = [ x
0
x
1
x
2
x
N-1
]








110

N
x
f
x
f
x
f
f








Phơng pháp gradient kết hợp Fletcher-Reeves.

1. Chọn các giá trị ban đầu cho X = [x
0
x
1
x
2
x
N-1
], và đặt biến đếm số
lần lặp bằng không, ví dụ, iter = 0. Chọn số lần lặp lớn nhất cho phép.
2. Tính








110

N
x

f
x
f
x
f
f







3. Đặt S =


f = [s
0
s
1
s
2
s
N-1
]
4. Tính






1
0
||
N
i
i
dftest

Nếu test < thì hội tụ đã đạt đợc, trả lại giá trị X và ra khỏi chơng
trình.
5. Đặt

f
p
=

f.
6. Tối thiểu hoá, dùng một giả thiết không biến, các hàm sau theo

111100
, ,,(


NN
sxsxsxf


7. Sửa lại X = X +


S.
8. Tính

f(X).
9. Cập nhật giá trị của S dùng:
293
s
XfXf
XfXf
XfS
T
pp
T
)()(
)()(
)(



10. Nếu
0
i
i
s
x
f



cho i bất kỳ , đặt S = -


f, ví dụ , dùng sự hạ thấp dốc nhất.

11. Tính iter = iter + 1
12. Nếu (iter < số lớn nhất của phép lặp cho phép) thì chuyển tới bớc 4,
nếu không thì trả lại giá trị X và thoát ra khỏi chơng trình.

Phơng pháp Davidon-Fletcher- Powell. Chúng ta coi rằng hàm N biến
đợc tối thiểu cho bởi y = f(x
0
, x
1
, x
2
, , x
N-1
) = f(X). Thuật toán này bao
gồm các bớc:

1. Chọn các giá trị ban đầu cho X = [x
0
x
1
x
2
x
N-1
], và đặt biến đếm số
lần lặp bằng 0, ví dụ, iter = 0. Chọn số lần lặp lớn nhất cho phép.
2. Tính









110

N
x
f
x
f
x
f
f







3. Đặt S = -

f = [s
0
s

1
s
2
s
N-1
].
4. Thiết lập ma trận H đồng nhất N

N phần tử, ví dụ H = I.
5. Tính





1
0
||
N
i
i
dftest
Nếu test < thì hội tụ đã đạt đợc, trả lại giá trị X và ra khỏi chơng trình.
6. Đặt

f
p
=

f.

7. Để tối thiểu hoá, dùng một phơng pháp một biến cho hàm dới đây
theo biến

111100
, ,,(


NN
sxsxsxf


8. Thay X = X +

S.
9. Tính

f(X).
294
10. Tính Y =

f -

f
p
.
11. Cập nhật giá trị của H dùng các biểu thức dới đây:

)(
))((
T

TT
YHY
HYHY
N


T
T
SY
SS
M



NMHH





12. Tính S = -H

f.
13. Nếu
0
i
i
s
x
f




cho i bất kỳ, đặt S = -

f, cụ thể, dùng quãng dốc nhất.
14. Tính iter = iter +1.
15. Nếu (iter < giá trị lớn nhất của số lần lặp cho trớc) thì quay về bớc
5, nếu không thì trả lại giá trị X và ra khỏi chơng trình.

Cho cả hai phơng pháp trên thì có thể rút ra bằng kỹ thuật tìm kiếm
hàng của Brent. Để dùng các lu đồ này, gradient của hàm cần tính sẽ phải
đợc tính. Các gradient này đợc cho bởi





1
0
0
0
)1()(
M
i
iiiii
xyyyd
E



(12.15)





1
0
1
1
)1()(
M
i
iiiii
xyyyd
E


(12.16)
Xấp xỉ gradient kết hợp dùng hàm sai lệch tổng chỉ đòi hỏi 36 lần lặp để
đạt đợc hội tụ. Giá trị ban đầu đợc cho ngẫu nhiên và kết quả là
0
=
0.010559,
1
= 0.021119, và đợc chọn là 0.1. Giá trị sai lệch ban đầu của
hàm là 7.3. Sau 36 lần lặp sai số giảm xuống 0.000134 và kết quả cho bởi

0
= 115.72,

1
= -104.03, và = 0,1.
295
Nhắc lại là quy tắc delta yêu cầu 15,000 phép lặp để sai số giảm xuống
nhỏ hơn một một ít. Từ đây, ta có thể lựa chọn mà không nghi ngờ gì một kỹ
thuật khi dạy một hệ thống thần kinh nhiều lớp.
12.6 Perceptron nhiều lớp
Một perceptron đơn lẻ với hai đầu vào có thể biểu diễn dới dạng sơ đồ
bằng một đờng thẳng chia hai lớp (Hình 12.5). Rõ ràng, để vây quanh một
miền trong hệ thống hai đầu vào (2-D sysem) đòi hỏi ít nhất ba đờng
thẳng (Hình 12.9). Điều này dẫn chúng ta một cách tự nhiên đến sơ đồ
perceptron hai lớp cho trong hình (12.10). Hệ thống này bao gồm một lớp
đầu vào, một lớp bị che khuất và một lớp đầu ra. Không khó khăn lắm để chỉ
ra rằng cho một hệ thống ba đầu vào (3-D system) cần ít nhất bốn mặt dùng
để bao kín miền, ví dụ, bốn perceptron hoặc nút sẽ phải cần tới trong lớp bị
che khất. Tổng quát, cho một siêu không gian N chiều, (N + 1) siêu mặt
phẳng sẽ cần để bao kín miền đợc cho, N + 1 perceptron hoặc nút đợc
cần trong lớp bị che khuất. Một miền lồi là một miền mà trong nó bất cứ
đờng nào nối các điểm trên đờng bao của miền cũng chỉ đi qua những
Hình 12.9 Miền đợc bao quanh.
296
H×nh 12.10 Perceptron ba líp.
H×nh 12.11 C¸c kiÓu kh¸c nhau cña miÒn quyÕt ®Þnh.

297
Hình 12.12 Mạng ba lớp tổng quát.

điểm trong phạm vi miền đó. Một perceptron ba lớp, nói một cách khác, có
thể chia thành các miền tuỳ ý và có thể tách thành các lớp khớp nhau nh
trong hình 12.11. Hình 12.12 miêu tả một phần tử hệ thống cảm nhận ba

lớp. Các quan hệ nối liền nhau không đợc thể hiện để làm cho sơ đồ không
bị phức tạp.
Chúng ta sẽ nhận đợc các đạo hàm theo các trọng số cho trờng hợp ba
lớp. Chúng ta sẽ tính các biểu thức trong trờng hợp tổng quát, sau đó chúng
ta cũng áp dụng các biểu thức này perceptron hai lớp. Sau đây chúng tôi sẽ
cung cấp cho các bạn file nguồn cho một chơng trình tổng quát tính có thể
dùng cho một hệ thống có kích thớc bất kỳ. Tất nhiên là một ví dụ cũng
đợc cho theo kèm.
Các trọng số đợc đánh số là
ij
l
, ở đây

i = vị trí nút trong lớp l - 1
j = vị trí nút trong lớp l

Tổng của các tín hiệu vào vào bất kỳ nút nào đợc ký hiệu là net
i
l
, ở đây i
= vị trí nút trong lớp l +1 .
Tín hiệu ra của từ bất kỳ nút nào trong mạng đợc ký hiệu là y
i
l
, ở đây i =
vị trí nút trong lớp l+1.

Từ sơ đồ hình 12.12 chúng ta có thể viết hàm sai lệch tiếp theo:


















1
0
2
)2(
1
0
3
)()(
2
1
N
i
i
i
M

k
kykdE (12.17)
Để rút ra đạo hàm của E theo các trọng số chúng ta sẽ bắt đầu với các
trọng số cung cấp cho lớp ra. Bởi thế,


















1
0
)2(
)2(
)2(
1
0
)2(

3
)(
)()(
N
i
mn
i
ii
M
k
mn
ky
kykd
E


Chúng ta có thể viết
298

































mi
mi
kyknetf
ky
knet
knetf
knet
knet
kyky
nm

N
l
lil
mni
i
mn
i
i
i
n
i
)())((
0
)(
)(
))((
)(
)(
)()(
1)2(
1
0
)1()2(
)2()2(
)2(
)2(
)2(
)2(
)2(
)2(

)2(
2




Cho nên )())(())()((
)1()2()2(
1
0
)2(
kyknetfkykd
E
nmmm
M
k
mn










Bằng định nghĩa
))(())()(()(
)2(22

knetfkykdk
mmmm




(12.18)
chúng ta có thể viết:








1
0
)1()2(
)1(
)()(
M
k
nm
mn
kyk
E


(12.19)

Đạo hàm của E theo các trọng số cung cấp cho lớp ẩn thứ hai có thể rút
ra theo:

















1
0
)1(
)2(
)2(
1
0
)1(
3
)(
))()((

N
i
mn
i
ii
M
k
mn
ky
kykd
E


Bây giờ
)1(
)2(
)2(
)2(
)1(
)2(
)(
mn
i
i
i
mn
i
net
net
yky











Công thức cuối cùng đợc đa ra nh sau:










































1
0
)1(
)1(
)1(
)1(
)2()2(
1

0
)1(
)1(
)2()2(
1
0
1)2(
)1(
)2(
)1(
)2(
2
2
2
)(
)(
)(
)(
)(
)(
N
l
mn
l
l
l
ilii
N
l
mn

l
ilii
N
l
lil
mn
ii
mn
i
net
net
netf
netf
netf
netf
ynetf
ky







Bởi vậy











1
0
1
0
)0()2()2()1(
)1(
3
)()())((
M
k
N
i
nimim
mn
kykknetf
E



×