Tải bản đầy đủ (.docx) (27 trang)

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

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 (640.37 KB, 27 trang )

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


số nội dung khái quát về mạng neural nhân tạo và thuật toán lan truyền ngược trong
mạng neural nhân tạo cùng một chương trình demo ứng dụng thuật giải lan truyền
ngược để xác định màu của một điểm có tọa độ x, y trong khoảng từ 0 đến 1 là một
điểm màu xanh hay điểm màu đỏ.
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 3
PHẦN I. MẠNG NEURAL NHÂN TẠO
I. Cấu trúc và mô hình của một neuron nhân tạo
Mô hình toán học của mạng neural sinh học được đề xuất bởi McCulloch và Pitts,
thường được gọi là neuron M-P, ngoài ra nó còn được gọi là phần tử xử lý và được ký
hiệu là PE (Processing Element).
Mô hình neuron có m đầu vào x
1
, x
2
, , x
m
, và một đầu ra y
i
như sau:
Hình 1. Mô hình một neuron nhân tạo
Giải thích các thành phần cơ bản:
- Tập các đầu vào: Là các tín hiệu vào của neuron, các tín hiệu này thường được đưa vào
dưới dạng một vector m chiều.
- Tập các liên kết (các trọng số): Mỗi liên kết được thể hiện bởi một trọng số (thường
được gọi là trọng số liên kết). Trọng số liên kết giữa tín hiệu vào thứ j cho neuron i
thường được ký hiệu là w
ij
. Thông thường các trọng số này được khởi tạo 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 học mạng.
- Bộ tổng (Hàm tổng): 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ưỡ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

, …x
m
là các tín hiệu đầu vào, còn w
i1
, w
i2
,…,w
im
là các trọng số
kết nối của neuron thứ i, net
i
là hàm tổng, f là hàm truyền,
i
θ
là một ngưỡng, y
i
là tín
hiệu đầu ra của neuron.
Hàm truyền có thể có các dạng sau:
- Hàm bước



<

=
00
01
xkhi
xkhi

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(

xkhi
xkhix
xkhi
xy
(3)
- Hàm ngưỡng đơn cực
x
λ

+
=
e
y
1
1
với λ>0 (4)
- Hàm ngưỡng hai cực
1
1
2

+
=
− x
λ
e
y
với λ>0 (5)
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 5
Đồ thị các dạng hàm truyền được biểu diễn như sau:

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

này được đưa đến 2 neuron đưa tín hiệu ra môi trường bên ngoài. Các neuron trong lớp
đầu ra này được gọi là neuron đầu ra.
Hình 3. Mạng neural ba lớp
Mạng neural được xây dựng như trên là mạng gồm 3 lớp mắc nối tiếp nhau đi từ
đầu vào đến đầu ra. Trong mạng không tồn tại bất kỳ một mạch hồi tiếp nào. Một mạng
neural có cấu trúc như vậy gọi là mạng một hướng hay mạng truyền thẳng một hướng
(Feed forward network), và có cấu trúc mạng ghép nối hoàn toàn (vì bất cứ một neuron
nào trong mạng cũng được nối với một hoặc vài neuron khác). Mạng neural bao gồm
một hay nhiều lớp trung gian được gọi là mạng Multilayer Perceptrons) (MLP-
Network).
Mạng neural khi mới được hình thành thì chưa có tri thức, tri thức của mạng sẽ
được hình thành dần dần sau một quá trình học. Mạng neural được học bằng cách đưa
vào những kích thích, và mạng hình thành những đáp ứng tương ứng, những đáp ứng
tương ứng phù hợp với từng loại kích thích sẽ được lưu trữ. Giai đoạn này được gọi là
giai đoạn học của mạng. Khi đã hình thành tri thức mạng, mạng có thể giải quyết các
vấn đề một cách đúng đắn. Đó có thể là vấn đề ứng dụng rất khác nhau, được giải
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 7
quyết chủ yếu dựa trên sự tổ chức hợp nhất giữa các thông tin đầu vào của mạng và các
đáp ứng đầu ra.
- Nếu nhiệm vụ của một mạng là hoàn chỉnh hoặc hiệu chỉnh các thông tin thu
được không đầy đủ hoặc bị tác động của nhiễu. Mạng neural kiểu này được ứng dụng
trong lĩnh vực hoàn thiện mẫu, trong đó có một ứng dụng cụ thể là nhận dạng chữ viết.
- Nhiệm vụ tổng quát của một mạng neural là lưu giữ động các thông tin. Dạng
thông tin lưu giữ này chính là quan hệ giữa các thông tin đầu vào và các đáp ứng đầu ra
tương ứng, để khi có một kích thích bất kỳ tác động vào mạng, mạng có khả năng suy
diễn và đưa ra một đáp ứng phù hợp. Đây chính là chức năng nhận dạng theo mẫu của
mạng neural. Để thực hiện chức năng này, mạng neural đóng vai trò như một bộ phận
tổ chức các nhóm thông tin đầu vào, và tương ứng với mỗi nhóm là một đáp ứng đầu ra
phù hợp. Như vậy, một nhóm bao gồm một loại thông tin đầu vào và một đáp ứng đầu
ra. Các nhóm có thể được hình thành trong quá trình học, và cũng có thể không hình

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

n
] có thể là một nguồn bên
ngoài là cảm biến hoặc thiết bị đo lường đưa tới mạng.
2. Mạng neural truyền thẳng nhiều lớp
Hình 5. Mạng truyền thẳng nhiều lớp
Mạng neural nhiều lớp có các lớp được phân chia thành 3 loại sau đây:
- Lớp vào là lớp neuron đầu tiên nhận tín hiệu vào x
i
(i = 1, 2, , n). Mỗi tín hiệu
x
i
được đưa đến tất cả các neuron của lớp đầu vào. Thông thường, các neuron đầu vào
không làm biến đổi các tín hiệu vào x
i
, tức là chúng không có các trọng số hoặc không
có các loại hàm chuyển đổi nào, chúng chỉ đóng vai trò phân phối các tín hiệu.
- Lớp ẩn là lớp neuron sau lớp vào, chúng không trực tiếp liên hệ với thế giới bên
ngoài như các lớp neuron vào/ra.
- Lớp ra là lớp neuron tạo ra các tín hiệu ra cuối cùng.
3. Mạng neural phản hồi
Mạng neural phản hồi là mạng mà đầu ra của mỗi neuron được quay trở lại nối
với đầu vào của các neuron cùng lớp được gọi là mạng Laeral như hình 6
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 9
Hình 6. Mạng hồi tiếp một lớp
4. Mạng neural hồi quy
Hình 7. Mạng neural hồi quy
Mạng neural phản hồi có thể thực hiện đóng vòng được gọi là mạng neural hồi
quy như hình 7. Mạng neural hồi quy có trọng số liên kết đối xứng như mạng Hopfield,
mạng luôn hội tụ về trạng thái ổn định (Hình 6). Mạng BAM thuộc nhóm mạng neural
hồi quy, gồm 2 lớp liên kết 2 chiều, không được gắn với tín hiệu vào/ra. Nghiên cứu

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:

,sgn
1
)()1(










−+=


=
+
n
ij
j
i
k
jij
k
i
xywy
θ

i = 1,2, ,n (6)

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) ;








=


jiji
xway
'
; với i = 1,2, ,n (7)
Ở đó a(.) là hàm truyền, vector y’ bây giờ lại nuôi trở lại lớp neuron X và tạo nên
đầu ra như sau:
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 12
x’ = a(w
T
y’);






=

=
n
i
iijj
ywax
1
; với j = 1,2, ,m (8)
Sau đó x’ nuôi trở lại đầu vào của lớp y và tạo ra hàm y’’ theo phương trình (7).
Quá trình này cứ tiếp tục, bao gồm các bước như sau:
y
(1)
= 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

(T)
y
(k-1)
) (truyền ngược lần thứ k/2)
Chú ý rằng trạng thái cập nhật trong phương trình (9) là đồng bộ theo phương
trình (7) và (8). Trạng thái cập nhật cũng có thể không đồng bộ theo phương trình (7)
và (8) với các nút i, j được chọn tự do. Người ta đã chỉ ra rằng, hệ thống ổn định cho cả
hai chế độ đồng bộ và không đồng bộ. Tuy nhiên, chế độ đồng bộ sẽ làm cho hệ thống
hội tụ nhanh hơn nhiều.
III. Các luật học
Thông thường, mạng neural được điều chỉnh hoặc được huấn luyện để hướng các
đầu vào riêng biệt đến đích ở đầu ra. Cấu trúc huấn luyện mạng được chỉ ra ở hình
dưới. Ở đây, hàm trọng số của mạng được điều chỉnh trên cơ sở so sánh đầu ra với đích
mong muốn (taget), cho tới khi đầu ra của mạng phù hợp với đích. Những cặp vào/đích
(input/taget) được dùng để giám sát cho sự huấn luyện mạng.
ANN Trọng số wi So sánh
Đích
Dữ liệu vào
Điều chỉnh
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 13
Hình 10. Cấu trúc huấn luyện mạng neural
Để có được một số cặp vào/ra, ở đó mỗi giá trị vào được gửi đến mạng và giá trị
ra tương ứng được thực hiện bằng mạng là sự xem xét và so sánh với giá trị mong
muốn. Bình thường, nó sẽ tồn tại một sai số vì giá trị mong muốn không hoàn toàn
phù hợp với giá trị thực. Sau mỗi lần chạy, ta có tổng bình phương của tất cả các sai số.
Sai số này được sử dụng để xác định các hàm trọng số mới.
Sau mỗi lần chạy, hàm trọng số của mạng được sửa đổi với đặc tính tốt hơn tương
ứng với đặc tính mong muốn. Từng cặp giá trị vào/ra phải được kiểm tra và trọng số
được điều chỉnh một vài lần. Sự thay đổi các hàm trọng số của mạng sẽ được dừng lại,
nếu tổng các bình phương sai số nhỏ hơn một giá trị đặt trước, hoặc đã chạy đủ một số

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

2. Học củng cố
Tín hiệu chủ đạo d có thể lấy từ môi trường bên ngoài, nhưng tín hiệu này
không được đầy đủ, mà chỉ có một vài bit đại diện có tính chất kiểm tra quá trình tốt
hay xấu. Học củng cố cũng là một dạng của học có giám sát, bởi vì mạng vẫn nhận một
số tín hiệu từ bên ngoài. Nhưng tín hiệu phản hồi chỉ mang tính chất đánh giá hơn là
mạng tính chất chỉ dẫn. Nó cho biết mức độ tốt hay xấu của một đầu ra đặc biệt. Tín
hiệu củng cố bên ngoài thường được xử lý bằng máy phát tín hiệu đánh giá để tạo ra
nhiều hơn nữa các thông tin tín hiệu đánh giá, sau đó dùng để điều chỉnh các trọng số
với mục đích đạt được tín hiệu đánh giá tốt hơn.
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 15
3. Học không có giám sát
Hình 12. Học không có giám sát
Trong phần học không có giám sát, sẽ không có thầy hướng dẫn, tức là không có
tín hiệu d cung cấp tới mạch phản hồi. Điều này cho thấy, ta sẽ không biết đầu ra đạt
giá trị gì. Với loại này, thì các neuron tự xoay xở với các dữ liệu mẫu mà nó có được,
chứ không có “thầy” gợi ý cần luyện theo hướng nào. Mạng phải tự khám phá mẫu,
đặc tính, sự tương quan hay loại đầu vào. Trong khi khám phá những đặc tính này,
tham số của mạng sẽ bị thay đổi. Quá trình này được gọi là tự tổ chức. Một ví dụ điển
hình là quá trình phân loại đối tượng không có thầy, những lớp thích hợp được hình
thành bằng cách khám phá sự tương tự và không tương tự trong số các đối tượng.
Hình 13 mô tả cấu trúc chung của quá trình học của ba phương pháp học đã nêu
ở trên. Trong tín hiệu vào x
j
(j = 1,2, ,m), có thể được lấy từ đầu ra của các neuron
khác hoặc có thể được lấy ra từ bên ngoài. Trọng số của neuron thứ i được thay đổi tùy
theo tín hiệu ở đầu vào mà nó thu nhận giá trị đầu ra của nó.
Dạng tổng quát của luật học trọng số của mạng neural cho biết số gia của vector
w
i


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:

w
i
(t+1) = w
i
(t) +
η
f
r
(w
i
(t),x(t),d(t)).x(t). (12)
Phương trình liên quan đến sự biến đổi trọng số trong mạng neural rời rạc, và
tương ứng với sự thay đổi trọng số trong mạng neural liên tục theo biểu thức sau:
)( txr
dt
dw
i
η
=
(13)
Vấn đề quan trọng trong việc phân biệt luật học cập nhật trọng số có giám sát
hay không có giám sát, hoặc học củng cố là tín hiệu học r. Như vậy, đối với tín hiệu
học r thì nó làm thế nào để thay đổi hoặc cập nhật trọng số trong mạng neural.
Mạng neural nhân tạo có các tính chất sau:
- Là hệ phi tuyến
- Là hệ xử lý song song
- Là hệ học và thích nghi: Mạng được luyện từ số liệu quá khứ, có khả năng tự
chỉnh đầu vào khi số liệu đầu vào bị mất.
- Là hệ nhiều biến, nhiều đầu vào, nhiều đầu ra (MISO), rất tiện dùng khi điều
khiển đối tượng có nhiều biến số.

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)

, d
(k)
), thuật toán lan truyền ngược thực hiện các bước như sau:
Đầu tiên, mẫu x
(k)
được lan truyền từ lớp đầu vào qua các lớp ẩn đi đến lớp đầu ra
có kết quả là y
(k)
. Sau đó, sai số giữa y
(k)
và d
(k)
được lan truyền ngược trở lại từ lớp đầu
ra tới lớp đầu vào để cập nhật trọng số. Hình 15 diễn giải thuật toán lan truyền ngược.
Kết quả có thể mở rộng sang mạng neural nhiều lớp.
Trên hình 14 có m phần tử neuron đầu vào, l phần tử neuron ở lớp ẩn, và n phần
tử neuron ở lớp đầu ra. Đường nét liền diễn tả lan truyền thẳng của các tín hiệu, đường
nét đứt diên tả lan truyền ngược của các sai số. Đầu tiên huấn luyện vào cặp vào/ra ký
hiệu (x,d) để cho đơn giản ta bỏ chỉ số k. Khi một mẫu đầu vào x được đưa vào thì các
phần tử trong mạng sẽ được tính như sau:
Đầu vào phần tử q của lớp ẩn sẽ được tính theo phương trình:
j
m
j
qjq
xvnet

=
=
1

(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
∑∑∑
===

==
(16)
Phương trình đầu ra của phần tử nowron thứ i sẽ là:
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 20
))(.()()(
111
j
m
j
qj
l
q
iqq
l
q
iqii
xvawazwanetay
∑∑∑
===
===
(17)
Các chỉ số trên được tính toán cho sự lan truyền tiến của các tín hiệu đầu vào
xuyên suốt qua các lớp mạng neural. Trước khi ta đề cập đến các tín hiệu sai số của sự
lan truyền ngược, ta sẽ định nghĩa một hàm mục tiêu như sau:
[ ]
2
1 1
2
11
2

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
















−=−=−=
n
i

l
q
qiqi
n
i
ii
n
i
ii
zwadnetadydwE
(18)
Sau đó, theo phương pháp độ dốc Gradient, các trọng số nối giữa lớp ẩn và lớp
đầu ra được cập nhật bởi
iq
w∆
, và nó được tính theo công thức sau:
iq
iq
w
E
w


−=∆
η
(19)
Sử dụng các công thức (1.21-1.23) và thay đổi luật với
iq
w
E



, 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
−=

















−=


−=
δ
(21)
Trong đó, net
i
là đầu vào của phần tử neuron thứ i trong lớp đầu ra và
i
i
i
net
neta
neta


=
)(
)('
.
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 21

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

ηηη
(22)
Từ công thức (18), thì mỗi sai số [d
i
-y
i
], với i=1,2, ,n là một hàm của z
q
.
Đánh giá thay đổi luật ta có:
( )
[ ]
jq
n
i
iqiiiqj
xnetawnetaydv ).('.).('.
1

=
−−=∆
η
(23)
Sử dụng công thức (21), ta có thể viết lại công thức (23) như sau:

[ ]
jhqjq
n
i
iqoiqj

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

=
=





















−=


−=∂
1
)('
δ
(25)
Trong đó, net
q

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
−−
==∆

ηδηδ
(26)
Ở đây, (output-i) và (input-j) quy vào hai đầu của sự kết nối từ phần tử thứ j tới
phần tử thứ i, x
j
là đầu vào cuối cùng kích hoạt từ một phần tử lớp ẩn, hoặc từ một đầu
vào bên ngoài. Ngoài ra,
i
δ
là tín hiệu học được định nghĩa bởi công thức (21) với đầu
ra hoặc lớp cuối cùng của các trọng số kết nối, và được định nghĩa bởi công thức (25)
cho tất cả các lớp khác. Khi hàm sigmoid lưỡng cực được sử dụng làm hàm kích hoạt,
đồng thời sử dụng (21) và (25) ta có hàm y được xác định như sau:
1
1
1
)( −
+
==
−net
e
netay
Khi đó ta có:
[ ]
)1(
2
1
)(1
2
1)(

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


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

=
−=
1
2
)1(
2
1

δδ
(28)
Thuật toán lan truyền ngược
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 23
Xem xét một mạng với Q lớp lan truyền ngược, q=1,2, ,Q; với
q
net
i

q
y
i
lần
lượt là đầu vào và đầu ra của khối trong lớp thứ q. Mạng có m neuron đầu vào, l
neuron ở lớp ẩn, và n neuron đầu ra. Với
q
w
ij
là trọng số nối từ
q-1
w
j
đến
q
y
i
.
Đầu vào: các cặp huấn luyện {x
(k)
, d

(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

y
i
= x
i
(k)
cho tất cả các i = 1,2,3,…,m. (29)
Bước 2 (Lan truyền thẳng)
Lan truyền tín hiệu thẳng xuyên suốt mạng sử dụng công thức (1.35) cho mỗi i và
q cho tới khi các đầu ra của lớp đầu ra
Q
y
i
được thực hiện.
).()(
1


==
j
j
q
ij
q
i
q
i
q
ywanetay
(30)
Bước 3 (Đo lường sai số đầu ra)

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

netayd −=
δ
(32)
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 24
Trong đó:
i
Q
δ
là tín hiệu sai lệch của neuron thứ i cho lớp ra Q; là
đạo hàm của hàm truyền a(.) theo tổng trọng số của phần tử i của lớp đầu ra là .
)(
)'(
i
Q
i
Q
netd
da
neta =

Bước 4 (lan truyền ngược sai số)
Các sai số lan truyền ngược với mục đích để cập nhật các trọng số và tính toán
các tín hiệu sai lệch
i
q
δ
1−
cho các lớp xử lý:
j
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
δδ


−−
= )(
1'1
; với q=Q,Q-1, ,2 (34)
Trong đó:
- là sai lệch tại thời điểm tính của giá trị trọng số liên kết cập nhật mới
và cũ, liên kết từ phần tử thứ j của lớp q-1 đến phần tử i của lớp q.
- là giá trị trọng số liên kết cập nhật mới từ phần tử thứ j của lớp
(q-1) đến phần tử i của lớp q.
- là giá trị trọng số liên kết cũ từ phần tử thứ j của lớp (q-1) đến phần tử i
của lớp q.
- là tín hiệu ra của phần tử j của lớp (q-1).
Bước 5 (Sau mỗi vòng lặp)
Kiểm tra xem đã lặp hết các giá trị mẫu huấn luyện chưa, nếu chưa quay vòng hết
(tức là k<p) tăng k=k+1, và nhảy tới bước 1, ngược lại (tức k=p) thì chuyển sang bước
6.
Bước 6 (Kiểm tra tổng sai số)
Tìm hiểu mạng neural nhân tạo và thuật toán lan truyền ngược 25
Kiểm tra sự khác nhau giữa tổng sai số và sai số cho phép:
- Nếu tổng sai số nhỏ hơn sai số cho phép (tức là E<E
max
) thì kết thúc quá trình
huấn luyện, và ghi lại các giá trị trọng số cuối cùng.
- Trái lại, thì lại gán E=0, k=1 và bắt đầu một quá trình huấn luyện mới bằng
cách nhảy tới bước 1.
II. Chương trình demo
1. Vấn đề giải quyết
Chương trình demo ứng dụng thuật giải lan truyền ngược để xác định màu của
một điểm có tọa độ x và y trong khoảng từ 0 đến 1 là một điểm màu xanh hay điểm

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.

×