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

Tài liệu Luận án cao học - chương 2 " Mạng neuron nhân tạo " ppt

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 (522.06 KB, 39 trang )

Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.1
2
2


M
M
a
a
ï
ï
n
n
g
g


n
n
e
e
u
u
r
r
o
o
n
n




N
N
h
h
a
a
â
â
n
n


t
t
a
a
ï
ï
o
o
N
N
o
o
ä
ä
i
i



D
D
u
u
n
n
g
g
2.1 Lòch sử phát triển và các ứng dụng của mạng Neuron 2.2
2.2 Bộ não người và Neuron sinh học 2.5
2.3 Mô hình Neuron nhân tạo 2.8
2.3.1 Mô hình neuron 1 ngõ vào 2.8
2.3.2 Mô hình neuron nhiều ngõ vào 2.11
2.4 Mạng Neuron 2.11
2.4.1 Phân loại mạng neuron 2.11
2.4.2 Mạng neuron 1 lớp 2.12
2.4.3 Mạng neuron nhiều lớp 2.13
2.5 Huấn luyện mạng 2.15
2.5.1 Học có giám sát 2.15
2.5.2 Học không giám sát 2.15
2.5.3 Học tăng cường 2.18
2.6 Một số Giải thuật huấn luyện thông dụng 2.20
2.6.1 Giải thuật gradient descent 2.22
2.6.2 Giải thuật gradient descent with momentum 2.24
2.6.3 Giải thuật gradient descent with adaptive learning rate 2.25
2.6.4 Giải thuật gradient descent with momentum & adaptive lr 2.26
2.6.5 Giải thuật truyền ngược Resilient 2.27
2.6.6 Giải thuật BFGS Quasi-Newton 2.28

2.6.7 Giải thuật Levenberg-Marquardt 2.29
2.6.8 So sánh các giải thuật 2.30
2.7 Qui trình thiết kế mạng Neuron ứng dụng 2.32
2.8 Vài kỹ thuật phụ trợ 2.33
2.8.1 Tiền xử lý dữ liệu 2.33
2.8.2 Khả năng tổng quát hóa của mạng 2.35
2.8.3 Kích thước tối ưu của mạng 2.36
2.9 Tóm tắt 2.38
Tài liệu tham khảo chương 2 2.39
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.2
2.1 Lòch sử phát triển và Các ứng dụng của mạng Neuron
Lòch sử phát triển của mạng neuron được tóm tắt như hình 2.1, [1].
Năm 1890, nhà tâm lý học William James đã đưa ra nhận xét: Khi hai
quá trình cơ bản của bộ não tác động lẫn nhau hoặc xảy ra lần lượt thì một
trong chúng sẽ truyền kích thích đến quá trình còn lại.
Năm 1936, Alan Turing là người đầu tiên sử dụng bộ não như một mô
hình xử lý thông tin. Năm 1943, Warren McCulloch và Walter Pitts đã đề xuất
cách thức hoạt động của các neuron, họ đã tạo ra một mạng neuron đơn giản
bằng các mạch điện. Từ đó các nhà khoa học lao vào nghiên cứu chế tạo các
bộ máy thông minh.
Hình 2.1 Lòch sử phát triển của mạng neuron
Năm 1949, Donald Hebb đề xuất một giải thuật huấn luyện mạng neuron
rất nổi tiếng, mà ngày nay nó vẫn còn được sử dụng.
Thập niên 50 là thời kỳ mà mạng neuron phát triển cả phần cứng lẫn
phần mềm. Nathaniel Rochester và một số người khác từ các phòng thí nghiệm
của IBM đã xây dựng phần mềm mô phỏng mạng neuron dựa trên giải thuật
của Hebb.

Cuối 1980s -nay: Ứng dụng trong nhiều lónh vực
1982: Mạng Hopfield 1 lớp, các nghiên cứu được tiếp tục
1970s: Các nghiên cứu đột nhiên lắng dòu
1969: Các bài báo của Minsky & Papert, Perceptrons
Cuối 50s-60s: Nhiều nổ lực, AI & Neural Computing Fields được
thành lập
1956: Dartmouth Summer Research Project
1950s: Phần mềm phát triển mạnh
1949: Giải thuật huấn luyện của Donald Hebb
1943: Mcculloch & Pitts công bố về mô hình neuron đơn giản
1936: Turing dùng bộ não như mô hình xử lý thông tin
1890: Khái niệm của William James.
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.3
Năm 1957, Frank Rosenblatt bắt đầu nghiên cứu về mạng Perceptron và
đã thành công trong việc thiết kế Mark I Perceptron neurocomputer, đó là
mạng neuron cổ điển nhất vẫn còn sử dụng tới ngày nay [11].
Năm 1959, Bernard Widrow và Marcian Hoff đã xây dựng mạng
ADALINE, nó là áp dụng đầu tiên của mạng neuron vào thực tế để dập tiếng
vọng trên đường dây điện thoại. Năm 1967, Avalanche áp dụng các mạng
neuron vào việc nhận dạng giọng nói, điều khiển motor và một số ứng dụng
khác.
Từ năm 1969 đến 1981 mạng neuron rơi vào trạng thái im lặng cả về
nghiên cứu và ứng dụng. Tuy nhiên, có thể kể đến các bài báo của Marvin
Minsky và Seymour Papert bình luận về mạng Perceptron, các nghiên cứu về
quá trình học của mạng nhiều lớp, mạng tự tổ chức (Self Organization) của
Teuvo Kohonen, mạng kiểu bộ nhớ kết hợp (BAM – Bidirectional Associative
Memory) của Anderson và mạng ART (Adaptive Resonance Theory neural

networks) của Capenter [2].
Năm 1982, John Hopfield công bố một công trình về mạng neuron một
lớp trên National Academy of Sciences, nó được coi là một động cơ để lôi kéo
các nhà khoa học quay trở lại nghiên cứu về mạng neuron. Đây là thời kỳ
phục hưng của các nghiên cứu và ứng dụng mạnh mẽ của mạng neuron với các
nghiên cứu về giải thuật lan truyền ngược sai số (backpropagation of error),
mạng Boltzmann, mạng Neocognitron của Fukushima.
Từ cuối thập niên 80, đầu thập niên 90 đến ngày nay, mạng neuron đã
khẳng đònh được vò trí của mình trong nhiều ứng dụng khác nhau. Các lónh vực
ứng dụng của mạng neuron có thể tóm tắt như sau [3]:

Không gian vũ trụ:
Phi thuyền không người lái, mô phỏng đường bay, tăng cường khả
năng điều khiển, mô phỏng các chi tiết trong máy bay, phi thuyền,
dự báo hỏng hóc …

Giao thông:
Hướng dẫn lưu thông tự động, phân tích cảnh báo tình trạng giao
thông, xác đònh đường đi tối ưu.

Ngân hàng:
Kiểm soát các hóa đơn chứng từ và các tài liệu khác, dự báo chứng
khoán, kiểm tra thẻ tín dụng, …
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.4

Quân sự:
Vũ khí tự động, truy tìm mục tiêu, phân biệt đối tượng, nhận dạng

tín hiệu và hình ảnh, các ứng dụng trong tàu ngầm, xử lý tín hiệu
radar, …

Điện tử:
Giải mã, dự báo lỗi chip, tổng hợp âm thanh, mô hình hóa hệ thống.

Giải trí:
Phim hoạt hình, kỹ xảo điện ảnh.

Tài chính:
Đònh giá bất động sản, tư vấn nợ, thế chấp, phân tích khả năng tài
chính của công ty, …

Công nghiệp:
Kiểm soát các lò nung, kiểm soát các qui trình công nghiệp, phân
tích và thiết kế sản phẩm, dự báo chất lượng sản phẩm, …

Y học:
Phân tích tế bào ung thư, thiết kế các bộ phận giả cho cơ thể, …

Dầu khí:
Thăm dò quặng.

Robotics:
Điều khiển tay máy, camera robots, …

Ngôn ngữ:
Nhận dạng giọng nói, tổng hợp âm thanh và chữ viết, nén âm thanh,
phân loại nguyên âm.


Thông tin:
Nén âm thanh và hình ảnh, dòch máy, …
Tóm lại, mạng neuron đã đang và sẽ được nghiên cứu, ứng dụng mạnh
mẽ vào hầu hết các lónh vực công nghiệp và dòch vụ. Một số mạng neuron nổi
tiếng được liệt kê trong bảng 2.1, [1].
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.5
Bảng 2.1 Một số mạng neuron tiêu biểu
Mạng Tác giả Năm Ứng dụng Hạn chế Ghi chú
ART
Gail Carpenter
Stephen Grossberg
1978-86
Nhận dạng (radar, tàu ngầm, âm
thanh)
Nhạy cảm với: thang đo tín hiệu,
nhiễu, quá độ
Chưa được áp dụng nhiều
Avalanche Stephen Grossberg 1967
Nhận dạng âm thanh tương tự, tay
máy
Không nhận được tốc độ âm thanh
khác nhau
Dùng tổ hợp các mạng, không dùng
mạng đơn
Back-
propagation
Paul Werbos, David

Parker, D. Rummelhart
1974-85
Tổng hợp âm thanh từ văn bản, tay
máy, công nợ
Chỉ học có giám sát, cần rất nhiều
mẫu dữ liệu huấn luyện
Phổ biến, hoạt động tốt, dễ huấn luyện
BAM Bart Kosko 1985 Bộ nhớ kết hợp đònh đòa chỉ được
Dung lượng thấp, dữ liệu phải mã hóa
Dễ huấn luyện nhất
Boltzmann &
Cauchy
Jeffrey Hinton, Terry
Sejnowsky, Harold Szu
1985-86
Nhận dạng hình ảnh, radar, tàu
ngầm
Huấn luyện lâu, nhiễu
Đơn giản, dễ vượt qua các cực tiểu cục
bộ
Brain State in a
Box
James Anderson 1977 Trích dữ liệu từ các cơ sở dữ liệu
Quyết đònh một lần, không cho phép
lặp lại
Tương tự BAM
Cerebellatron
David Marr, James Albus,
Andres Pellionez
1969-82

Điều khiển motor của robotic ams Tín hiệu điều khiển phức tạp
Giống Avalanche, có thể kết hợp
nhiều lệnh
Counter-
propagation
Robert Hecht-Nielsen 1986 Nén ảnh, công nợ
Cần nhiều nút ẩn và kết nối mới đạt
độ chính xác cao
Tương tự Back-propagation
Hopfield John Hopfield 1982 Phục hồi dữ liệu
Không huấn luyện, các trọng số phải
được đặt trước
Hoạt động được trên một thang dữ liệu
rộng
MADALINE Bernard Widrow 1960-62
Triệt nhiễu cho radar, modems, lọc
đường dây điện thoại
Cần quan hệ vào ra tuyến tính
Thương mại trên 20 năm, luật học
mạnh
Neocognitron Kunihiko Fukushima 1978-84 Nhận dạng chữ viết tay Đòi hỏi nhiều nút ẩn và kết nối
Phức tạp, nhạy cảm với kích thước và
vò trí của các kí tự
Perceptron Frank Rosenblatt 1957 Nhận dạng chữ đánh máy
Không nhận các ký tự phức tạp, nhạy
cảm với kích thước và nhiễu
Mạng cổ điển nhất, vẫn còn được sử
dụng
SOM Teuvo Kohonen 1980 Bản đồ đòa lý, không quân Huấn luyện lâu
Hiệu quả hơn nhiều giải thuật khác

trong việc tính khí động học
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.6
2.2 Bộ não người và Neuron sinh học
Hệ thần kinh của con người gồm thần kinh trung ương (não), tủy sống và
các dây thần kinh. Thần kinh trung ương được cấu tạo từ 2 lớp tế bào, tế bào
thần kinh (gọi là neuron) và tế bào glia. Trong đó, glia chỉ thực hiện chức năng
hổ trợ, neuron mới trực tiếp tham gia vào quá trình xử lý thông tin. Bộ não
người chứa khoảng 10
11
neuron, với hơn 10
14
liên kết giữa chúng, tạo thành
một mạng tế bào thần kinh khổng lồ. Hình 2.2 cho thấy tổng thể của một bộ
não người [4].
Hình 2.2 Bộ não người
Mỗi neuron có phần thân với nhân bên trong (gọi là soma), một đầu thần
kinh ra (gọi là sợi trục axon) và một hệ thống dạng cây các dây thần kinh vào
(gọi là dendrite). Xem hình 2.3. Trục dây thần kinh ra cũng có thể phân nhánh
theo dạng cây để nối với các dây thần kinh vào hoặc trực tiếp với nhân tế bào
của các neuron khác thông qua các khớp nối (gọi là synapse). Thông thường
mỗi neuron có thể có từ vài chục đến vài trăm ngàn khớp nối.

Hình 2.3 Cấu trúc của một neuron sinh học
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.7
Các tín hiệu truyền trong các dây thần kinh vào và ra của các neuron là

tín hiệu điện, được thực hiện thông qua quá trình giải phóng các chất hữu cơ.
Các chất này được phát ra từ các khớp nối, hình 2.4, dẫn tới các dây thần kinh
vào sẽ làm tăng hay giảm điện thế của nhân tế bào. Khi điện thế đạt tới một
ngưỡng nào đó (gọi là ngưỡng kích hoạt), sẽ tạo ra một xung điện dẫn tới trục
dây thần kinh ra. Xung này được truyền theo trục tới các nhánh rẽ, khi chạm
vào các khớp nối nối với các neuron khác, sẽ giải phóng các chất truyền điện,
hình 2.5. Người ta chia thành 2 loại khớp nối, khớp kích thích (excitatory) và
khớp ức chế (inhibitory).
Hình 2.4 Khớp nối thần kinh
Hình 2.5 Xung điện trên trục thần kinh
Việc nghiên cứu neuron sinh học cho thấy hoạt động của nó khá đơn
giản, khi điện thế ở dây thần kinh vào vượt quá một ngưỡng nào đó, neuron
bắt đầu giật (firing), tạo ra một xung điện truyền trên dây thần kinh ra đến các
neuron khác, cơ chế này cho phép dễ dàng tạo ra mô hình neuron nhân tạo.
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.8
2.3 Mô hình Neuron nhân tạo
2
2
.
.
3
3
.
.
1
1



M
M
o
o
â
â


h
h
ì
ì
n
n
h
h


n
n
e
e
u
u
r
r
o
o
n

n


1
1


n
n
g
g
o
o
õ
õ


v
v
a
a
ø
ø
o
o
Hình 2.6 là mô hình 1 neuron nhân tạo
11
với một ngõ vào [3].
Hình 2.6 Mô hình neuron 1 ngõ vào
Ngõ vào p truyền qua một kết nối có độ lợi w, gọi là trọng số kết nối

(weight) tạo thành wp, sau đó wp được đưa vào hàm kích hoạt f của neuron,
gọi là hàm truyền sẽ tạo thành ngõ ra a của neuron.
a = f(wp)
Trường hợp neuron có ngưỡng kích hoạt
12
(bias), wp được cộng với b, ngõ
ra của neuron sẽ là
a = f(wp+b)
Quá trình huấn luyện sẽ thay đổi trọng số w và ngưỡng b làm cho quan
hệ vào ra p/a thay đổi theo. Thông thường có 3 hàm truyền được sử dụng nhiều
trong thực tế, đó là hàm Linear, Log sigmoid và Hyperbolic tangent sigmoid.

11
kể từ đây về sau, để đơn giản ta chỉ gọi là neuron
12
tương đương với điện thế ngưỡng của neuron sinh học
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.9
♦ Hàm
truyền
tuyến tính – ‘purelin’:
f(n) = n (2.1)
Hình 2.7 Hàm truyền tuyến tính


Hàm truyền Log Sigmoid – ‘logsig’
n
e1

1
)n(f

+
=
(2.2)
Hình 2.8 Hàm truyền Log Sigmoid

Hyperbolic tangent sigmoid – ‘tansig’
n2
n2
e1
e1
)n(f


+

=
(2.3)
Hình 2.9 Hàm truyền Hyperbolic tangent sigmoid
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.10
Bằng cách sử dụng các hàm truyền khác nhau, ta được các neuron có tính
chất khác nhau tương ứng. Neural Network ToolBox 3.0 của MATLAB 5.3
cung cấp các hàm truyền được liệt kê trong bảng 2.2.
Bảng 2.2 Các hàm truyền của neuron
TRANSFER FUNCTIONS

compet Competitive transfer function.
hardlim Hard limit transfer function.
hardlims Symmetric hard limit transfer function
logsig Log sigmoid transfer function.
poslin Positive linear transfer function
purelin Linear transfer function.
radbas Radial basis transfer function.
satlin Saturating linear transfer function.
satlins Symmetric saturating linear transfer function
softmax Soft max transfer function.
tansig Hyperbolic tangent sigmoid trans. function.
tribas Triangular basis transfer function.
Sự tương quan giữa neuron sinh học và neuron nhân tạo như bảng 2.3 [6].
Bảng 2.3 So sánh Neuron sinh học và nhân tạo
Neuron sinh học Neuron nhân tạo
Tế bào Đơn vò (hay gọi là nút trong mạng)
Khớp thần kinh Trọng số kết nối
w
Đầu vào kích thích Trọng số kết nối dương
Đầu vào ức chế Trọng số kết nối âm
Kích hoạt bằng tần số Trò ngưỡng
b
Phạm vi hoạt động giới hạn bởi
lý tính của tế bào
Phạm vi hoạt động giới hạn bởi
hàm truyền
f
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo

2.11
2
2
.
.
3
3
.
.
2
2


M
M
o
o
â
â


h
h
ì
ì
n
n
h
h



n
n
e
e
u
u
r
r
o
o
n
n


n
n
h
h
i
i
e
e
à
à
u
u


n

n
g
g
o
o
õ
õ


v
v
a
a
ø
ø
o
o
Tương tự như trên, mô hình neuron nhiều ngõ vào cho bởi hình 2.10,
nhưng ngõ vào p là một véctơ R phần tử
p
1
, p
2
, …, p
R
Các trọng số kết nối tương ứng với từng ngõ vào là
w
1,1
, w
1,2

, …, w
1,R
Với ngưỡng kích hoạt b ta có:
n = w
1,1
p
1
+ w
1,2
p
2
+ … + w
1,R
p
R
+ b
Biểu diễn dạng véctơ, n = Wp+b, khi đó ngõ ra của neuron vẫn là:
a = f(Wp+b)
Hình 2.10 Mô hình neuron nhiều ngõ vào
2.4 Mạng Neuron
Mạng neuron là một hệ thống gồm nhiều neuron kết nối với nhau và hoạt
động song song. Tính năng của mạng tùy thuộc vào cấu trúc của nó, các trọng
số kết nối và quá trình tính toán tại các neuron đơn lẻ. Mạng neuron có thể
học từ dữ liệu mẫu và tổng quát hóa dựa trên các mẫu đã học [2].
2
2
.
.
4
4

.
.
1
1


P
P
h
h
a
a
â
â
n
n


l
l
o
o
a
a
ï
ï
i
i



m
m
a
a
ï
ï
n
n
g
g


n
n
e
e
u
u
r
r
o
o
n
n
Người ta phân loại mạng neuron dựa vào kiểu kết nối của các neuron và
dựa vào số lớp neuron trong mạng.
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.12



Phân loại theo kiểu kết nối các neuron:
Dựa theo kiểu kết nối, ta có mạng neuron truyền thẳng (feedforward
Neural Network) và mạng hồi qui (recurrent NN). Trong mạng truyền thẳng,
các kết nối đi theo một hướng nhất đònh, không tạo thành chu trình. Ngược lại,
các mạng hồi qui cho phép các kết nối neuron tạo thành chu trình, với đỉnh là
các neuron và cung là các kết nối giữa chúng. Các neuron nhận tín hiệu vào
gọi là neuron vào, các neuron đưa thông tin ra gọi là neuron ra, các neuron còn
lại gọi là neuron ẩn.


Phân loại theo số lớp neuron:
Các neuron trong mạng có thể được tổ chức thành các lớp theo nguyên
tắc các neuron ở lớp này, chỉ được nối với các neuron ở lớp khác, không cho
phép kết nối giữa các neuron trên cùng lớp, hoặc từ neuron lớp dưới lên
neuron lớp trên, cũng không cho phép kết nối nhảy qua 1 lớp [2]. Lớp nhận tín
hiệu vào gọi là lớp vào, lớp đưa thông tin ra gọi là lớp ra, các lớp ở giữa gọi là
lớp ẩn. Xem hình 2.11.
Thông thường lớp vào không tham gia quá trình tính toán của mạng
neuron
13
, nên khi tính số lớp người ta không kể lớp vào. Ví dụ ở hình 2.11a, ta
có mạng 2 lớp, gồm lớp ẩn và lớp ra.
2
2
.
.
4
4

.
.
2
2


M
M
a
a
ï
ï
n
n
g
g


n
n
e
e
u
u
r
r
o
o
n
n



1
1


l
l
ơ
ơ
ù
ù
p
p
Mô hình mạng neuron 1 lớp với R neuron vào và S neuron ra
14
như hình
2.12. Mỗi phần tử trong véctơ vào p, được nối với từng nút vào tương ứng (các
neuron nằm trên lớp vào) thông qua ma trận trọng số W
R,S2,S1,S
R,22,21,2
R,12,11,1
www
www
www
W
L
L
L
=

(2.4)
Neuron thứ i (trong lớp tính toán) có:
i
R
1j
j,iii
bwpn +=

=
(2.5)
Ngõ ra tương ứng của neuron thứ i là: a
i
= f(n
i
), trong đó f là hàm truyền
của neuron. Chúng ta có thể biểu diễn ngõ ra của mạng:
a =
f(
Wp
+
b
)

13
lớp vào chỉ có nhiệm vụ nhận tín hiệu vào, đây là thành phần tuyến tính của mạng
14
neuron vào còn gọi là nút vào, neuron ra còn gọi là nút ra
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo

2.13
Hình 2.11 Phân loại mạng neuron
Hình 2.12 Mạng neuron 1 lớp
2
2
.
.
4
4
.
.
3
3


M
M
a
a
ï
ï
n
n
g
g


n
n
e

e
u
u
r
r
o
o
n
n


n
n
h
h
i
i
e
e
à
à
u
u


l
l
ơ
ơ
ù

ù
p
p
Một mạng neuron có thể có nhiều lớp, ngõ ra của lớp trước sẽ làm ngõ
vào của lớp sau. Quá trình tính toán trên mạng lần lượt tính toán trên từng lớp,
trên mỗi lớp hoàn toàn giống như tính toán đối với mạng một lớp. Trên hình
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.14
2.13, véctơ vào là p, ngõ ra là véctơ a. Tuy nhiên, ta thêm các chỉ số 1,2,3 để
dễ phân biệt các lớp của mạng.
Hình 2.13 Mạng neuron nhiều lớp
Neural Network ToolBox 3.0 của MATLAB cung cấp các hàm tạo mạng
neuron được liệt kê trong bảng 2.4 [3].
Bảng 2.4 Các hàm tạo mạng neuron của MATLAB 5.3
New Neural Networks
n
ewc
Create a competitive layer.
n
ewcf
Create a cascade-forward backpropagation network.
n
ewelm
Create an Elman backpropagation network.
n
ewff
Create a feed-forward backpropagation network.
n

ewfftd
Create a feed-forward input-delay backprop network.
n
ewgrnn
Design a generalized regression neural network.
n
ewhop
Create a Hopfield recurrent network.
n
ewlin
Create a linear layer.
n
ewlind
Design a linear layer.
n
ewlvq
Create a learning vector quantization network
n
ewp
Create a perceptron.
n
ewpnn
Design a probabilistic neural network.
n
ewrb
Design a radial basis network.
n
ewrbe
Design an exact radial basis network.
n

ewsom
Create a self-organizing map.
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.15
2.5 Huấn luyện mạng
Huấn luyện mạng là quá trình thay đổi các trọng số kết nối cũng như cấu
trúc của mạng sao cho phù hợp với các mẫu học [2]. Người ta phân biệt 3 kỹ
thuật học, đó là học có giám sát (supervised learning), học không giám sát
(unsupervised learning) và học tăng cường (reinforcement learning).
2
2
.
.
5
5
.
.
1
1


H
H
o
o
ï
ï
c

c


c
c
o
o
ù
ù


g
g
i
i
a
a
ù
ù
m
m


s
s
a
a
ù
ù
t

t
Là giải thuật điều chỉnh các trọng số kết nối dựa vào sự khác biệt giữa
ngõ ra thực tế của mạng (actual network output) và ngõ ra mong muốn (target
or desired network output)
15
, ứng với một tập tín hiệu vào. Học có giám sát đòi
hỏi phải có một teacher hay supervisor cung cấp ngõ ra mong muốn, vì thế
người ta còn gọi là học có thầy.
Giả sử ta có tập mẫu học là {(p,t)}, với p là véctơ vào, t là véctơ ra mong
muốn, tức là ứng với ngõ vào p thì ngõ ra đúng của hệ phải là t. Gọi ngõ ra
thực tế của mạng là a
,
thì giải thuật học phải điều chỉnh mạng sao cho
error=|t-a| nhỏ hơn một tiêu chuẩn nào đó. Các giải thuật học có giám sát sẽ
được đề cập chi tiết hơn ở các phần sau.
2
2
.
.
5
5
.
.
2
2


H
H
o

o
ï
ï
c
c


k
k
h
h
o
o
â
â
n
n
g
g


g
g
i
i
a
a
ù
ù
m

m


s
s
a
a
ù
ù
t
t
Trong phương pháp học không giám sát, không đòi hỏi tập ngõ ra mong
muốn, vì thế người ta gọi là học không thầy. Trong quá trình huấn luyện, chỉ có
tập dữ liệu vào được đưa vào mạng, mạng tự điều chỉnh theo nguyên tắc gộp
các mẫu dữ liệu vào có đặc điểm tương tự thành từng nhóm [7]. Phương pháp
này được dùng trong mạng Kohonen và mạng ART. Có hai giải thuật học
không giám sát là: Học cạnh tranh (Competitive Learning) và Cấu hình tự tổ
chức (Self-organizing feature maps – SOFM).
#

Giải thuật học cạnh tranh
Mạng neuron áp dụng giải thuật học này gọi là mạng cạnh tranh
(competitive neural network), hình 2.14 [3].
Trong hình 2.14, khối
|| ndist ||
nhận véctơ vào p

và ma trận trọng số
IW
1,1

,

để tạo ra một véctơ có S
1

phần tử. Các phần tử của véctơ này có giá trò

15
actual network output là ngõ ra mà mạng tính toán được khi áp dụng một ngõ vào nào đó, desired
network output là ‘đáp số’ do supervisor cung cấp
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.16
là khoảng cách Euclidean âm (Euclidean distance < 0) giữa véctơ vào p và ma
trận trọng số IW
1,1
. Sau đó véctơ này được cộng với trò ngưỡng b
1

tạo thành n
1
.
Hàm truyền cạnh tranh C (competitive transfer function), nhận n
1
và làm
cho các ngõ ra của các neuron bằng 0 ngoại trừ winning neuron sẽ có ngõ ra
bằng 1. Winning neuron là neuron mà khoảng cách Euclidean giữa véctơ trọng
số của nó và ngõ vào ít âm nhất, nghiã là véctơ trọng số của nó gần đúng với
véctơ ngõ vào nhất.

Hình 2.14 Giải thuật học cạnh tranh
Các trọng số của winning neuron sẽ được cập nhật theo luật sau: Giả sử
neuron thứ i trong mạng là winning neuron, thì các phần tử ở hàng thứ i trong
ma trận trọng số được điều chỉnh như sau:
(2.6)
Trong đó
α
là tốc độ học (learning rate),
α


[0, 1].
Luật cập nhật trọng số này gọi là luật Kohonen, nó cho phép các trọng số
của một neuron học theo véctơ vào. Các neuron có véctơ trọng số gần giống
nhất so với véctơ vào sẽ được điều chỉnh cho gần giống hơn nữa. Kết quả là,
winning neuron ở bước huấn luyện
16
thứ (i) sẽ gần giống với winning neuron ở
bước thứ (i+1), và sẽ khác xa so với winning neuron ở một bước huấn luyện
nào đó, mà ở đó véctơ ngõ vào có sự thay đổi. Khi ta đưa nhiều mẫu huấn
luyện khác nhau vào mạng, sẽ dẫn tới sự hình thành từng nhóm neuron có các
đặc điểm gần giống với các mẫu dữ liệu huấn luyện.
Sau khi huấn luyện, mạng sẽ hình thành nhiều nhóm neuron, mỗi nhóm
sẽ phản ánh một đặc điểm nào đó của các mẫu huấn luyện. Điều này cũng

16
epoch, có nhiều tác giả gọi là thời kỳ huấn luyện
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo

2.17
tương đương như việc phân chia các vùng chức năng trên bộ não người, vì lý
do này mà giải thuật học cạnh tranh tỏ ra ưu điểm trong các ứng dụng nhận
dạng, ví dụ dựa trên những đặc điểm ‘thân quen’ còn lại để nhận dạng khuôn
mặt người 10 năm sau.
# Cấu hình tự tổ chức
Mạng neuron áp dụng giải thuật này gọi là mạng tự tổ chức SOFM (Self-
organizing feature maps), hình 2.15 [3]. Mạng này cũng giống như mạng cạnh
tranh, chỉ khác ở chổ nó không dùng ngưỡng kích hoạt
b
.
Hình 2.15 Cấu hình tự tổ chức
SOFM nhận biết winning neuron i
*
cũng giống như trong giải thuật học
cạnh tranh, nhưng thay vì chỉ điều chỉnh trọng số của neuron đó, nó còn điều
chỉnh cả trọng số của tất cả các neuron trong tập neuron láng giềng N
i*
(d) của
winning neuron i
*
, bao gồm i
*
và tất cả các neuron láng giềng của nó. Các
neuron i∈ N
i*
(d) được điều chỉnh trọng số theo luật sau:
hoặc (2.7)
(2.8)
Ta ký hiệu tập neuron láng giềng N

i*
(d) với ý nghóa như sau: Chỉ số i
*
cho
biết winning neuron là neuron thứ i trong tổng số neuron của mạng, chỉ số d
cho biết số neuron láng giềng của i
*
nằm trong vòng tròn bán kính là d
neuron, tâm là winning neuron. Ví dụ N
5
(2) nghóa là tập hợp các neuron nằm
trong vòng tròn bán kính 2 neuron, tâm là neuron thứ 5 (winning neuron) trong
mạng, xem hình 2.16 [3].
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.18
N
13
(1) ={8 12 13 14 18}
N
13
(2) = {3 7 8 9 11 12 13 14 15 18 18 19 23}
Hình 2.16 Minh họa tập neuron láng giềng
Lưu ý là các neuron trong SOFM không bắt buộc lúc nào cũng phải sắp
xếp theo hai hướng. Chúng ta có thể sắp xếp theo 1 hướng hay 3 hướng. Đối
với SOFM 1 hướng, mỗi neuron chỉ có 2 láng giềng trong phạm vi bán kính là
1 (cũng có thể chỉ có 1 láng giềng nếu neuron đó nằm ở cuối hàng). Ngoài ra
người ta còn xét tập neuron láng giềng theo kiểu hình vuông, hình lục giác,
Hiệu quả của mạng không phụ thuộc vào hình dạng của tập neuron láng giềng.

Trong quá trình huấn luyện, kích thước của tập neuron láng giềng sẽ nhỏ
dần, đến khi chỉ còn 1 lớp (lớp này phản ánh đặc điểm của mẫu dữ liệu huấn
luyện). Khi ta thay đổi nhiều mẫu huấn luyện, kết quả cũng đạt được tương tự
như giải thuật học cạnh tranh.
2
2
.
.
5
5
.
.
3
3


H
H
o
o
ï
ï
c
c


t
t
a
a

ê
ê
n
n
g
g


c
c
ư
ư
ơ
ơ
ø
ø
n
n
g
g
Học tăng cường là một giải thuật đặc biệt của học có giám sát. Thay vì
phải do thầy cung cấp ngõ ra mong muốn thì giải thuật này sẽ nhờ một
‘chuyên gia’ (critic) ước lượng ngõ ra tốt nhất ứng với một ngõ vào cho trước.
Tiêu biểu cho học tăng cường là giải thuật di truyền (Genetic Algorithm - GA).
Giải thuật GA đơn giản nhất được cho bởi lưu đồ hình 2.17 [6,7].
Giải thuật này bắt đầu bằng cách khởi tạo thế hệ neuron hiện tại một
cách ngẫu nhiên, sau đó áp dụng các phép toán di truyền để tạo thế hệ mới
phù hợp hơn. Các phép toán di truyền gồm có: Chọn lọc, lai tạo và đột biến.
Có thể minh họa phép lai như hình 2.18 [7]. Giả sử có 2 chuỗi cha và mẹ, ta cắt
2

Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.19
2 chuỗi này thành những đoạn nhỏ bằng nhau có độ dài ngẫu nhiên, hoán đổi
các chuỗi nhỏ này cho nhau ta sẽ thu được 2 con. Đơn giản nhất là ta cắt chuỗi
cha và mẹ thành 2 phần.
Hình 2.17 Giải thuật GA
Hình 2.18 Phép lai của GA
Phép đột biến được thực hiện trên từng con riêng lẻ, gồm 2 bước: bước 1,
thay đổi giá trò, bước 2 cắt chuổi con thành 3 phần ngẫu nhiên rồi nghòch đảo
phần ở giữa. Cách này cho phép tạo ra con mới có tính chất hoàn toàn khác
với cha mẹ chúng, xem hình 2.19.
Bắt đầu
Khởi tạo thế hệ hiện tại
Chọn những neuron tốt
Lai tạo, đột biến
Thế hệ mới
Đánh giá
Không đạt
Đạt
Kết thúc
Cha: 1 0 0 0 1 0 0 1 1 1 1 0
Mẹ: 0 0 1 0 1 1 0 0 0 1 1 0
Con1: 1 0 0 0 1 1 0 0 0 1 1 0
Con2: 0 0 1 0 1 0 0 1 1 1 1 0
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.20
Hình 2.19 Phép đột biến của GA

Còn rất nhiều vấn đề xung quanh giải thuật di truyền, nhưng do sự hiểu
biết còn nhiều hạn chế và đề tài không dự đònh áp dụng giải thuật này, cho
nên người thực hiện chưa thể nghiên cứu sâu về nó.
2.6 Một số Giải thuật huấn luyện thông dụng
Trong phần này chúng ta sẽ khảo sát giải thuật truyền ngược
(backpropagation)
17
và các giải thuật cải tiến của nó. Truyền ngược được tạo
ra theo luật học Widrow-Hoff tổng quát áp dụng cho các mạng nhiều lớp với
các hàm truyền phi tuyến. Giải thuật truyền ngược cập nhật trọng số theo
nguyên tắc:
x
k+1
= x
k
- α
k
g
k
(2.9)
Tron đó: x
k
là véctơ trọng số và ngưỡng hiện tại
α
k
là tốc độ học
g
k
là gradient hiện tại
Có nhiều phương pháp để xác đònh gradient g

k,
dẫn tới nhiều giải thuật
truyền ngược cải tiến.
Trước khi khảo sát một số giải thuật này, ta đònh nghóa bài toán 1, dùng
cùng 1 mạng neuron truyền thẳng nhiều lớp (Multi-layer feedforward neural
network), áp dụng các giải thuật huấn luyện tương ứng để để giải bài toán, và
so sánh sự khác biệt giữa các giải thuật
18
.

17
học có giám sát
18
sự so sánh chỉ có ý nghóa tương đối trên một ứng dụng nào đó
Bước 1
Con1: 1 0 0 0 1 1 0 0 0 1 1 0
Con1’: 1 0 0 0 0 1 0 0 0 1 1 0
Bước 2
Con1’: 1 0 0 0 0 1 0 0 0 1 1 0
Con1
new
:1 0 1 0 0 0 0 0 0 1 1 0
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.21
BÀI TOÁN 1
Nhận dạng mô hình của hệ thống điều khiển chảo anten lệch một góc ø
bằng một dòng điện tác động lên DC motor, hình 2. 20 [9]. Vấn đề nhận dạng
mô hình đối tượng sẽ được trình bày ở chương sau.

Hình 2.20 Mô hình điều khiển chảo anten
Phương trình mô tả hệ phi tuyến này như (2.10)






+−
=










ux2xsin81.9
x
x
x
21
2
2
1
(2.10)
Trong đó x

1
= ø; x
2
= dø/dt; u là lực tác động của motor [9].
Ta sử dụng mạng neuron truyền thẳng 2 lớp với 3 nút vào 8 nút ẩn và 2
nút ra, hình 2.21.
Hình 2.21 Mạng neuron cho bài toán 1
1
1
2 linear output
neurons
8 tansig
neurons
3 input
neurons
hidden
biases
output
biases
angle
k
velocity
k
force
k
angle
k+1
velocity
k+1
2

Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.22
Trên hình 2.21, 3 ngõ vào của mạng, tương ứng nhận 3 tín hiệu: góc lệch,
vận tốc và lực tác động ở thời điểm (k), ngõ ra của mạng sẽ cho góc lệch và
vận tốc ở thời điểm (k+1). Dữ liệu huấn luyện mạng như hình 2.22 (chỉ trình
bày 300 mẫu, lấy mẫu ở Ts = 0.05)
19
.
200 250 300 350 400 450 500
-10
-5
0
5
10
Input data for training
200 250 300 350 400 450 500
-1
-0.5
0
0.5
1
Desired data for training
angle
force
next velocity
veloc it y
next angle
Hình 2.22 Dữ liệu huấn luyện mạng neuron cho bài toán 1 [9]
2

2
.
.
6
6
.
.
1
1


G
G
i
i
a
a
û
û
i
i


t
t
h
h
u
u
a

a
ä
ä
t
t


g
g
r
r
a
a
d
d
i
i
e
e
n
n
t
t


d
d
e
e
s

s
c
c
e
e
n
n
t
t
Đây là giải thuật đơn giản và phổ biến nhất để huấn luyện một mạng
nhiều lớp. Giải thuật này có thể tóm tắt như sau:
1. Khởi tạo tất cả các trọng số kết nối của các neuron trong mạng
(thường thì khởi tạo ngẫu nhiên, giá trò nhỏ)
2. Áp dụng véctơ dữ liệu vào cho mạng
3. Tính toán để xác đònh ngõ ra thực tế của mạng
4. So sánh với véctơ dữ liệu mong muốn (do supervisor cung cấp),
xác đònh lỗi
5. Lan truyền lỗi này từ ngõ ra ngược về ngõ vào của mạng, đây là
cơ sở để điều chỉnh trọng số
6. Điều chỉnh các trọng số của mạng.

19
Dữ liệu này được trích từ tài liệu [9] – Neural Network Toolbox 3.0 - User Guide của MatLab 5.3
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.23
Nguyên tắc điều chỉnh trọng số như (2.11)
ijiji
gww α+=

(2.11)
Với g
i
=
δ
j
p
i
được gọi là gradient.
Trong đó: w
ji
là trọng số kết nối từ neuron thứ i đến neuron thứ j
α
là tốc độ học,
α


[0,1]

δ
j
là một hệ số phụ thuộc tính chất của neuron j
p
i
là ngõ vào của neuron i
Nếu j là neuron ra (output neuron), thì
()
jj
j
j

at
net
f












(2.12)
và nếu j là neuron ẩn (hidden neuron), thì

δ












k
kkj
j
j
w
net
f
(2.13)
Với:
j
net
f



là đạo hàm của hàm kích hoạt f.
t
j
là ngõ ra mong muốn của neuron j (desired or target output)
aj là ngõ ra thực tế của neuron j
w
kj
là trọng số kết nối từ neuron k tới neuron j
k là neuron ở lớp phía trước lớp của j
δ
k
tính giống như
δ
j
, nhưng đối với lớp phía sau

20
.
#
Hàm mục tiêu - lỗi bình phương trung bình (Mean Square Error - MSE)
Giả sử ta có tập mẫu huấn luyện là
{p
1
,t
1
}, {p
2
,t
2
}, …, {p
N
,t
N
}
Trong đó p
i
là ngõ vào của mạng, t
i
là ngõ ra mong muốn tương ứng. Ta
ký hiệu tập ngõ vào là p, véctơ ngõ ra mong muốn là t. Khi mỗi mẫu dữ liệu
đưa vào mạng, véctơ ngõ ra thực tế a sẽ được so sánh với ngõ ra mong muốn t
để xác đònh lỗi:
e
i
= t
i

– a
i
(2.14)
Với N mẫu huấn luyện được đưa vào mạng, MSE được tính theo (2.15)

20
Lan truyền ngược từ network output đến input thì
δ
k
đầu tiên chính là
δ
j
của các neuron ở lớp ra
2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.24

=
=
N
1i
2
i
e
N
1
MSE
(2.15)
Người ta còn gọi (2.15) là hàm mục tiêu (performance function)

#
Áp dụng Gradient Descent cho bài toán 1
Áp dụng giải thuật này cho bài toán 1, quá trình huấn luyện được thực
hiện trên máy tính có cấu hình như sau: Mainboard ATX Pro, CPU Cyrix MII
300 MHz, 64 MB DRAM.
Sau 200 epochs, ta có MSE = 0.1065, hình 2.23.
0 50 100 150 200
10
-1
10
0
10
1
Performance is 0.106499, Goal is 0
MSE
elapsed time: 35.43 s
Hình 2.23 Lỗi của giải thuật Gradient Descent
Kết quả này sẽ được so sánh với các giải thuật khác.
2
2
.
.
6
6
.
.
2
2



G
G
i
i
a
a
û
û
i
i


t
t
h
h
u
u
a
a
ä
ä
t
t


g
g
r
r

a
a
d
d
i
i
e
e
n
n
t
t


d
d
e
e
s
s
c
c
e
e
n
n
t
t



w
w
i
i
t
t
h
h


m
m
o
o
m
m
e
e
n
n
t
t
u
u
m
m
Nhằm cải tiến tốc độ hội tụ của giải thuật Gradient Descent, người ta đưa
ra luật điều chỉnh trọng số kết nối khác như (1.16);
jijiji
www ∆+=

(2.16)
)1k(wp)k(w
jiijji
−∆µ+αδ=∆
(2.17)
Với ∆w
ji
(k-1) là thời điểm trước đó của ∆w
ji
(k), Trong (2.16),
µ
được gọi
là hệ số momentum. Theo nhiều tác giả, để đạt hiệu quả huấn luyện cao thì
tổng của momentum
µ
và tốc độ học
α
phải gần bằng 1, và thông thường thì
nên chọn
α


(0,0.2];
µ


[0.8 1).
#
Áp dụng Gradient Descent with momentum cho bài toán 1
Sau 200 epochs, ta được MSE=0.0886, hình 2.24.

2
Luận án Cao học
Chương 2 - Mạng neuron nhân tạo
2.25
0 20 40 60 80 100 120 140 160 180 200
10
-2
10
-1
10
0
10
1
Performance is 0.0885581, Goal is 0
MSE
elapsed time: 36.80 s
Hình 2. 24 Lỗi của giải thuật Gradient Descent with Momentum
Rõ ràng tốc độ hội tụ có nhanh hơn, nhưng chưa đáng kể.
2
2
.
.
6
6
.
.
3
3



G
G
i
i
a
a
û
û
i
i


t
t
h
h
u
u
a
a
ä
ä
t
t


g
g
r
r

a
a
d
d
i
i
e
e
n
n
t
t


d
d
e
e
s
s
c
c
e
e
n
n
t
t



w
w
i
i
t
t
h
h


a
a
d
d
a
a
p
p
t
t
i
i
v
v
e
e


l
l

e
e
a
a
r
r
n
n
i
i
n
n
g
g


r
r
a
a
t
t
e
e
Trong hai giải thuật trên (2.6.1 & 2.6.2), tốc độ học được giữ là một hằng
số trong suốt quá trình huấn luyện. Hiệu suất của giải thuật phụ thuộc rất
nhiều vào việc chọn hằng số tốc độ học. Nếu ta chọn quá lớn, quá trình huấn
luyện sẽ hội tụ nhanh, nhưng giải thuật có thể dao động và sẽ không ổn đònh.
Nếu ta chọn tốc độ học quá thấp, thời gian hội tụ sẽ rất lâu.
Người ta đưa ra một giải thuật khác, nhằm thay đổi (thích nghi) tốc độ

học trong quá trình huấn luyện.
Nguyên tắc thích nghi tốc độ học là, ở mỗi thời kỳ huấn luyện (epoch),
các trọng số kết nối và các ngưỡng được điều chỉnh theo tốc độ học tập mới,
sau đó các ngõ ra mới và lỗi mới được tính toán.
Tóm tắt giải thuật
if (new_error - old_error) > max_perf_inc

(thường, max_perf_inc=1.04)
Loại trọng số và ngưỡng mớiù
Tốc độ học = tốc độ học * lr_dec
(giảm lr, thường thì lr_dec=0.7)
elseif new_error < old_error
Giữ lại trọng số và ngưỡng mới
Tốc độ học = tốc độ học * lr_inc
(tăng lr, thường thì lr_inc=1.05)
end
Thủ tục này cho phép tăng tốc độ học, nhưng phải tăng trong một giới
hạn nào đó để tránh trường hợp mạng bất ổn (lỗi rất lớn). Trường hợp quá trình
học trở nên bất ổn thì phải giảm tốc độ học.
2

×