Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược - Pdf 26

Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 1
MỤC LỤC
LỜI MỞ ĐẦU 2
PHẦN I. MẠNG NEURAL NHÂN TẠO 3
I. Cấu trúc và mô hình của một neuron nhân tạo 3
II. Cấu tạo và phương thức làm việc của mạng neural 5
1. Mạng neural một lớp 7
2. Mạng neural truyền thẳng nhiều lớp 8
3. Mạng neural phản hồi 8
4. Mạng neural hồi quy 9
5. Mạng Hopfield 9
6. Mạng BAM 11
III. Các luật học 12
1. Học có giám sát 13
2. Học củng cố 14
3. Học không có giám sát 14
PHẦN 2. THUẬT TOÁN LAN TRUYỀN NGƯỢC 17
VÀ CHƯƠNG TRÌNH DEMO
I. Thuật toán lan truyền ngược 17
II. Chương trình demo 23
1. Vấn đề giải quyết 23
2. Cấu trúc và cách sử dụng chương trình 23
PHẦN 3. KẾT LUẬN 26
TÀI LIỆU THAM KHẢO 27
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 2
LỜI MỞ ĐẦU
Ngày nay với sự phát triển như vũ bão của khoa học kỹ thuật, đặc biệt là trong
lĩnh vực công nghệ thông tin. Nhiều chương trình thông minh có khả năng giải quyết
những vấn đề khó khăn của con người đã ra đời và đóng góp những thành tựu to lớn.
Những chương trình này được ứng dụng nhiều công nghệ tri thức tiên tiến. Một trong
những công nghệ đó là mạng neural nhân tạo. Bài tiểu luận này xin được trình bày một

kết của nó.
- Ngưỡng: Ngưỡng này thường được đưa vào như một thành phần của hàm truyền.
- Hàm truyền: Hàm này dùng để giới hạn phạm vi đầu ra của mỗi neuron. Nó nhận đầu
vào là kết quả của hàm tổng và ngưỡng đã cho. Thông thường, phạm vi đầu ra của mỗi
neuron được giới hạn trong đoạn [0,1] hoặc [-1,1]. Các hàm truyền rất đa dạng, có thể
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 4
là các hàm tuyến tính hoặc phi tuyến. Việc lựa chọn hàm truyền tùy thuộc vào từng bài
toán và kinh nghiệm của người thiết kế mạng.
- Đầu ra: Là tín hiệu đầu ra của một neuron, với mỗi neuron sẽ có tối đa một đầu ra.
Về mặt toán học, cấu trúc của một neuron i được mô tả bằng cặp biểu thức sau:

)(
iii
netfy
θ
−=

j
n
j
iji
xwnet

=
=
1
trong đó: x
1
, x
2

y
(1)
- Hàm giới hạn chặt (hay còn gọi là hàm bước)



<−

==
01
01
)sgn(
xkhi
xkhi
xy
(2)
- Hàm bậc thang





<
≤≤
>
==
00
10
11
)sgn(

Hình 2. Đồ thị các dạng hàm truyền
II. Cấu tạo và phương thức làm việc của mạng neural
Dựa trên những phương pháp xây dựng neuron đã trình bày ở mục trên, ta có thể
hình dung mạng neural như là một hệ truyền đạt và xử lý tín hiệu. Đặc tính truyền đạt
của neuron phần lớn là đặc tính truyền đạt tĩnh.
Khi liên kết các đầu vào/ra của nhiều neuron với nhau, ta thu được một mạng
neural, việc ghép nối các neuron trong mạng với nhau có thể là theo một nguyên tắc
bất kỳ. Vì mạng neural là một hệ truyền đạt và xử lý tín hiệu, nên có thể phân biệt các
loại neuron khác nhau, các neuron có đầu vào nhận thông tin từ môi trường bên ngoài
khác với các neuron có đầu vào được nối với các neuron khác trong mạng, chúng được
phân biệt với nhau qua vector hàm trọng số ở đầu vào w.
Nguyên lý cấu tạo của mạng neural bao gồm nhiều lớp, mỗi lớp bao gồm nhiều
neuron có cùng chức năng trong mạng. Hình 1.5 là mô hình hoạt động của một mạng
neural 3 lớp với 8 phần tử neuron. Mạng có ba đầu vào là x
1
, x
2
, x
3
và hai đầu ra y
1
, y
2
.
Các tín hiệu đầu vào được đưa đến 3 neuron đầu vào, 3 neuron này làm thành lớp đầu
vào của mạng. Các neuron trong lớp này được gọi là neuron đầu vào. Đầu ra của các
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 6
neuron này được đưa đến đầu vào của 3 neuron tiếp theo, 3 neuron này không trực tiếp
tiếp xúc với môi trường bên ngoài mà làm thành lớp ẩn, hay còn gọi là lớp trung gian.
Các neuron trong lớp này có tên là neuron nội hay neuron ẩn. Đầu ra của các neuron

thành trong quá trình học.
1. Mạng neural một lớp
Mỗi một neuron có thể phối hợp với các neuron khác tạo thành một lớp các
trọng số. Mạng một lớp truyền thẳng như hình 4. Một lớp neuron là một nhóm các
neuron mà chúng đều có cùng trọng số, nhận cùng một tín hiệu đầu vào đồng thời.
Hình 4. Mạng truyền thẳng một lớp
Trong ma trận trọng số, các hàng là thể hiện neuron, hàng thứ j có thể đặt nhãn
như một vector w
j
của neuron thứ j gồm m trọng số w
ji
. Các trọng số trong cùng một
cột thứ j (j=1,2, ,n) đồng thời cùng nhận một tín hiệu đầu vào x
j
.
w
j
= [w
j1
, w
j2
, , w
jm
]
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 8
Tại cùng một thời điểm, vector đầu vào x = [x
1
, x
2
, , x

mạng neural hồi quy mà có trọng số liên kết không đối xứng, thì sẽ gặp phải vấn đề
phức tạp nhiều hơn so với mạng truyền thẳng và mạng hồi quy có trọng số liên kết đối
xứng.
5. Mạng Hopfield
Mạng Hopfield là mạng phản hồi một lớp, được chỉ ra trong hình 6. Cấu trúc chi
tiết của nó được thể hiện trong hình 8. Khi hoạt động với tín hiệu rời rạc, nó được gọi
là mạng Hopfield rời rạc, và cấu trúc của nó cũng được gọi là mạng hồi quy.
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 10
Hình 8. Cấu trúc của mạng Hopfield
Như mạng Hopfield đã vẽ ở trên, ta thấy nút có một đầu vào bên ngoài x
j
và một
giá trị ngưỡng
j
θ
(j = 1,2, n). Một điều quan trọng cần nói ở đây là mỗi nút không có
đường phản hồi về chính nó. Nút đầu ra thứ j được nối tới mỗi đầu vào của nút khác
qua trọng số w
ij
, với i

j, (i = 1,2, ,n), hay nói cách khác w
ii
= 0, (với i = 1,2, ,n).
Một điều quan trọng nữa là trọng số của mạng Hopfield là đối xứng, tức là w
ij
=
w
ji
, (với i,j = 1,2, ,n). Khi đó, luật cập nhật cho mỗi nút mạng là như sau:

Luật cập nhật trên được tính toán trong cách thức không đồng bộ. Điều này có
nghĩa là, với một thời gian cho trước, chỉ có một nút mạng cập nhật được đầu ra của
nó. Sự cập nhật tiếp theo trên một nút sẽ sử dụng chính những đầu ra đã được cập nhật.
Nói cách khác, dưới hình thức hoạt động không đồng bộ của mạng, mỗi đầu ra được
cập nhật độc lập.
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 11
Có sự khác biệt giữa luật cập nhật đồng bộ và luật cập nhật không đồng bộ. Với
luật cập nhật không đồng bộ thì sẽ chỉ có một trạng thái cân bằng của hệ (với giá trị
đầu đã được xác định trước). Trong khi đó, với luật cập nhật đồng bộ thì có thể làm
mạng hội tụ ở mỗi điểm cố định hoặc một vòng giới hạn.
6. Mạng BAM
Mạng BAM bao gồm hai lớp và được xem như là trường hợp mở rộng của mạng
Hopfield. Ở đây ta chỉ xét mạng rời rạc, vì nó đơn giản và dễ hiểu.
Hình 9. Cấu trúc của BAM
Khi mạng neural được tích cực với giá trị đầu vào của vector tại đầu vào của một
lớp, mạng sẽ có hai mẫu trạng thái ổn định, với mỗi mẫu tại đầu ra của nó là một lớp.
Tính động học của mạng thể hiện dưới dạng tác động qua lại giữa hai lớp. Cụ thể hơn,
giả sử một vector đầu vào x được cung cấp cho đầu vào của lớp neuron y. Đầu vào
được xử lý và truyền tới đầu ra của lớp y như sau:
y’ = a(wx) ;








=


(0)
) (truyền thẳng lần thứ nhất)
x
(2)
= a(w
(T)
y
(1)
) (truyền ngược lần thứ nhất)
y
(3)
= a(wx
(2)
) (truyền thẳng lần thứ hai)
x
(4)
= a(w
(T)
y
(3)
) (truyền ngược lần thứ hai) (9)

y
(k-1)
= a(wx
(k-2)
) (truyền thẳng lần thứ k/2)
x
(k)
= a(w

lần chạy xác định (trong trường hợp này, mạng có thể không thoả mãn yêu cầu đặt ra
do sai lệch còn cao). Có hai kiểu học:
- Học tham số: là các tham số về trọng số cập nhật kết nối giữa các neuron.
- Học cấu trúc: trọng tâm là sự biến đổi cấu trúc của các mạng neural gồm số
lượng nút và các loại liên kết.
Giả sử ma trận trọng số bao gồm tất cả các phần tử thích ứng của mạng neural.
Nhiệm vụ của việc học tham số là tìm ra được ma trận chính xác mong muốn từ ma
trận giả thiết ban đầu (với cấu trúc của mạng neural có sẵn). Để làm được điều này thì
mạng neural phải sử dụng các trọng số điều chỉnh, với nhiều phương pháp học khác
nhau để có thể tính toán gần đúng ma trận W cần tìm đặc trưng cho mạng. Sau đây là 3
phương pháp học:
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 14
1. Học có giám sát
Học có giám sát: là quá trình học có tín hiệu chỉ đạo bên ngoài d (Hình 11).
Trong học có giám sát, thì tại mỗi thời điểm khi đầu vào được cung cấp tới mạng
neural, phản ứng đầu ra mong muốn d tương ứng của hệ thống được đưa ra. Ở hình 11,
khi mỗi đầu vào x
(k)
được đặt vào mạng, đầu ra mong muốn tương ứng d
(k)
cũng được
cung cấp tới mạng. Hiệu giữa đầu ra thực y
(k)
và đầu ra mong muốn d
(k)
được đo trong
máy phát tín hiệu lỗi. Máy này sẽ tạo ra tín hiệu lỗi cho mạng để hiệu chỉnh các trọng
số của mạng, và với các hiệu chỉnh này thì đầu ra thực sẽ tiến sát với đầu ra mong
muốn.
Hình 11. Học có giám sát

i
w∆
tỉ lệ với tín hiệu học r và tín hiệu đầu vào x(t).
i
w∆
(t) =
)( txr
η
(10)
η
là một số dương và được gọi là hằng số học dùng để xác định tốc độ học, r là tín
hiệu học và phụ thuộc:
).,,(
iir
dxwfr =
(11)
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 16
Hình 13. Sơ đồ cấu trúc chung của quá trình học
Từ hình 13 ta thấy, vector trọng số w
i
= [w
i1
, w
i2
, , w
im
]
T
có số gia tỷ lệ với tín
hiệu vào x và tín hiệu học r. Vector trọng số ở thời điểm (t+1) được tính như sau:

Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 17
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 18
PHẦN 2. THUẬT TOÁN LAN TRUYỀN NGƯỢC
VÀ CHƯƠNG TRÌNH DEMO
I. Thuật toán lan truyền ngược
Thuật toán lan truyền ngược được ứng dụng để giải các bài toán điều khiển các hệ
phi tuyến phức tạp và bất ổn định. Lan truyền ngược là một phương pháp cho phép xác
định tập trọng số tốt nhất của mạng để giải một bài toán đã cho. Việc áp dụng phương
pháp lan truyền ngược là một quá trình lặp đi lặp lại nhiều lần hai tiến trình chính: lan
truyền tiến để thực hiện ánh xạ và lan truyền ngược sai số để cập nhật các trọng số. Các
trọng số của mạng là các hệ số của mô hình. Phương pháp giảm gradient được dùng để
cập nhật những hệ số này sao cho giảm thiểu được sai số của mô hình.
Xét lớp mạng 3 lớp như hình 14
Hình 14. Mạng 3 lớp lan truyền ngược
Thuật toán: Đầu tiên ta cho lan truyền thẳng suốt trong mạng, qua các phần tử
neuron và được tiếp tục với các hàm kích hoạt của phần tử neuron. Các mạng được
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 19
nghiên cứu cùng với thuật toán học lan truyền ngược được gọi là mạng lan truyền
ngược.
Huấn luyện các cặp vào/ra.
{(x
(k)
, d
(k)
)}, k = 1,2, ,p
Thuật toán cung cấp một thủ tục cho việc thay đổi các vector trọng số trong
mạng, đầu ra của mạng được lan truyền ngược trở lại lớp đầu vào cho đúng các mẫu.
Cơ sở cho việc cập nhật các trọng số là phương pháp độ dốc Gradient.
Với cặp vào ra (x
(k)

(14)
Phương trình đầu ra của q sẽ là:
()( anetaz
qq
==

j
m
j
qj
xv

=1
) (15)
Đầu vào phần tử thứ i của lớp đầu ra sẽ là:
)(
111
j
m
j
qj
l
q
iqq
l
q
iqi
xvawzwnet
∑∑∑
===

2
1
)(
2
1
)(
2
1
)(
∑ ∑∑∑
= ===
















−=−=−=
n
i



, ta có:
[ ][ ]
[ ]
qoiqiii
iq
i
i
i
i
i
i
iq
zznetayd
w
net
net
net
net
y
y
E
w
ηδη
=−=





−=∆ )('
(20)
Trong đó,
oi
δ
là tín hiệu sai số, chỉ số dưới thứ hai là điểm thứ i trong lớp đầu ra.
Sai số tín hiệu được định nghĩa bởi:
[ ][ ]
)('
iii
i
i
ii
oi
netayd
net
y
y
E
net
E
−=









Bây giờ ta phải tính đầu ra z
q
của lớp ẩn:
Với trọng số nối giữa đầu vào và các lớp ẩn, ta sử dụng thay đổi luật cùng
phương pháp độ dốc Gradient, ta cập nhật trọng số để kết nối giữa phần tử thứ j của lớp
đầu vào với phần tử thứ q của lớp ẩn. Khi đó:

































−=∆
qj
q
q
q
qqj
q
qqj
qj
v
net
net
z
z
E
v
net
net
E
v
E
v

xxnetawv ∂=−=∆

=
ηδη
).('
1
(24)
Ở đây,
hq

là sai số tín hiệu của phần tử thứ q của lớp ẩn và được định nghĩa như
dưới đây:
iq
n
i
oiq
q
q
qq
hq
wneta
net
z
z
E
net
E

=
=

là đầu vào phần tử thứ q của lớp ẩn.
Tín hiệu sai số của một phần tử trong lớp ẩn khác so với tín hiệu sai số của một
phần tử trong lớp đầu ra, như đã được chỉ ra trong công thức (25) và (21). Do có sự
khác nhau này, nên các thủ tục cập nhật các trọng số trên được gọi là luật học delta
tổng quát. Chúng ta xem xét công thức (25), sai số tín hiệu
hq

của phần tử lớp ẩn q có
thể được xác định trong các mẫu của các tín hiệu sai số
oi
δ
của các phần tử ở lớp ra thứ
i (y
i
) cung ứng. Các hệ số là các trọng số được sử dụng cho lan truyền thẳng, nhưng ở
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 22
đây chúng truyền các tín hiệu sai số (
oi
δ
) ngược trở lại, đó chính là các đường nét đứt
trong hình 14. Điều này đã chứng tỏ được đặc điểm quan trọng của thuật toán lan
truyền ngược – luật cập nhật cục bộ, đây chính là tính toán trọng số thay đổi dựa vào
sự kết nối, và chúng ta chỉ cần giá trị ở hai đầu của kết nối này.
Sự đạo hàm ở trên có thể dễ dàng mở rộng cho mạng có nhiều hơn một lớp ẩn,
bằng cách sử dụng chuỗi luật liên tiếp. Trong trường hợp chung, với số lớp tùy ý, thì sự
lan truyền ngược được cập nhật luật ở dạng sau:
jinputioutputjiij
xxw
−−
==∆

)('
22
yneta
net
neta
neta −=−=


=
[ ]
iioi
ydy −−= )1(
2
1
2
δ
(27)
iq
n
i
oihq
wz

=
−=
1
2
)1(
2
1

(k)
| k=1,2, ,p}, ở đó giá trị đầu vào của phần
tử cuối cùng bằng -1, tức là
1
)(
1
−=
+
k
m
x
.
Bước 0 (Đặt giá trị ban đầu)
- Lựa chọn bước tính (Hằng số học) 0<η<1 và E
max
(sai số lớn nhất cho phép).
- Chọn các trọng số ban đầu nối từ phần tử thứ j của lớp (q – 1) đến phần tử
thứ i của lớp q là
q
w
ij
có giá trị nhỏ và ngẫu nhiên.
- Cho sai số E = 0 và k = 1.
Bước 1 (Vòng lặp huấn luyện)
Áp dụng mẫu vào thứ k, cho lớp đầu vào q=1. Khi đó ta có:
q
y
i
=
1

Tính toán giá trị sai lệch và tín hiệu sai lệch
i
Q
δ
cho lớp đầu ra như sau:
EydE
i
Q
n
i
k
i
+−=

=
2
1
)(
)(
2
1
; (31)
)'().(
)(
i
Q
i
Qk
ii
Q

i
q
ij
q
yw
1


=∆
δη
;
ij
qold
ij
qnew
ij
q
www ∆+=
(33)
j
j
q
ji
q
i
q
i
q
wneta
δδ

màu đỏ sau khi được huấn luyện với các mẫu.
2. Cấu trúc và cách sử dụng chương trình
Chương trình gồm các lớp cơ bản sau:
Hình 15. Các lớp cơ bản của chương trình
- Lớp Pattern: đại diện cho các mẫu huấn luyện.
- Lớp Neuron: mô phỏng một neuron.
- Lớp Layer: đại diện cho các lớp nhập, lớp ẩn.
- Lớp Weight: lưu trọng số.
- Lớp Network: mô phỏng một mạng neural.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status