Chương 1: Tổng quan về mạng Neural
- 1 -
Chương I
TỔNG QUAN VỀ MẠNG NEURAL
I. LỊCH SỬ PHÁT TRIỂN CỦA MẠNG NEURAL
Năm 1936, Alan Turing là người đầu tiên xem 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 hoạt động
của các Neural, họ đã tạo ra một mạng Neural đơ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 các bộ máy thông minh.
Năm 1949, Donall Hebb đề xuất một giải thuật huấn luyện mạng Neural 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 Neural 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 Neural dựa trên giải thuật của Hebb.
Năm 1957, Frank Roseblantt bắt đầu nghiên cứu về mạng Perceptron và đã
thành công trong việc thiết kế Mack I Perceptron nuerocomputer, đó là mạng
Neural cổ điển nhất vẫn còn sử dụng đến ngày nay .
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 Neural vào thực tế để dập tiếng vọng trên đường dây
điện thoại.
Năm 1967, Avanlanche áp dụng các mạng Neural 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 năm 1981 mạng Neural 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 bài báo cá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.
Năm 1982, John Hopfield công bố một công trình về mạng Neural một lớp trên
National Academy of Sciences, nó được coi là một động lực lôi kéo các nhà khoa
học quay trở lại nghiên cứu về mạng Neural. Đâ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 Neural 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 nay, mạng Neural đã khẳng đònh
được vò trí của mình trong nhiều ứng dụng khác nhau .
Chương 1: Tổng quan về mạng Neural
- 2 -
II. MẠNG NEURAL VÀ CÁC KHÁI NIỆM CƠ BẢN
II.1. Giới thiệu về mạng Neural
Mạng Neural là mạng mà được xây dựng bằng cách sao chép lại các nguyên lý
tổ chức của hệ Neural con người. Bộ óc con người là một hệ Neural gồm có 10
10
đến 10
12
Neural được tổ chức có cấu trúc vào khoảng 200 mô hình khác nhau dưới
dạng nhiều lớp. Cấu trúc cơ bản của một Neural trong hệ Neural con người gồm có
đó là các đầu vào (input) thân Neural và đầu ra (output). Thân Neural là phần tử xử
lý có chức năng thu thập tất cả các thông tin từ các đầu vào tính toán và đưa ra các
quyết đònh ở ngõ ra để gửi tín hiệu đến các Neural khác như mô tả ở hình 1.1.
Input Thân Neural
Output
Mỗi Neural có nhiều input nhưng chỉ có một output, từ output này mới rẽ nhánh
đưa thông tin đến các Neural khác. Trong mạng Neural nhân tạo, tín hiệu truyền từ
Neural này đến Neural khác là tín hiệu điện áp. Có hai loại tín hiệu điện áp đó là
điện áp dương và điện áp âm. Điện áp dương được xem như là tín hiệu kích động
(excitory) để kích động Neural gửi tín hiệu đến các Neural khác và điện áp âm
được xem như là tín hiệu ức chế (inhibitory) để ức chế Neural gửi tín hiệu đến các
Neural khác. Khi điện áp là zero thì không có sự liên lạc giữa hai Neural.
Cũng giống như hệ Neural con người, mạng Neural nhân tạo bao gồm lớp đầu
vào, các lớp ẩn và lớp Neural đầu ra. Trong mạng, đầu ra của Neural này kết nối
với đầu vào của nhiều Neural khác hoặc kết nối với đầu vào của Neural chính nó.
Cường độ các kết nối xác đònh lượng tín hiệu truyền đến đầu vào. Giá trò của cường
độ kết nối được gọi là trọng số. Trong thời gian hệ tiếp xúc với một vài đối tượng,
một số phần tử cảm biến bò tác động, cường độ kết nối của một số Neural thích hợp
trong hệ sẽ được gia tăng nhằm cung cấp thông tin về đối tượng mà hệ tiếp xúc và
đưa ra các quyết đònh ở lớp đầu ra. Quá trình này được gọi là quá trình học, sự thay
đổi của các trọng số trong quá trình này gọi là luật học.
Để xây dựng một mạng Neural giống như hệ Neural con người, ý tưởng đầu
tiên của Mc.culloch và Pitts vào năm 1943 đề ra cấu trúc cơ bản của một Neural thứ
i trong mô hình của mạng Neural nhân tạo như hình 1.2.
Hình 1.1
Chương 1: Tổng quan về mạng Neural
- 3 -
Trong đó:
- xj là đầu ra của Neural thứ j hoặc đầu vào tứ môi trường bên ngoài.
- wi,j là trọng số kết nối giữa Neural thứ i và Neural thứ j.
- b là một hằng số (Bias).
- ai là đầu ra của Neural thứ i.
- f là hàm truyền.
- net là đối số của hàm f.
net=wi,1.x1+wi,2.x2+…+wi,r.xr+b (1.1)
ai=f(n) (1.2)
Các thông số:
+Đầu vào (input): Thông số hay dữ liệu đầu vào
+Đầu ra (output) : Thông số hay dữ liệu đầu ra
+ Trọng số(Weight) : Kết nối giữa hai Neural trong mạng Neural gọi là trọng
số, chúng có thể điều chỉnh được. Khi các tín hiệu được đưa vào Neural để xử lý thì
nó được nhân với hệ số ảnh hưởng của mạng giữa hai lớp, gọi là hệ số trọng số w
và sau đó được biến đổi bởi hàm phi tuyến (hàm truyền).
+ Bias: Là hằng số được đưa trực tiếp vào mạng Neural thông qua bộ tổng,
cũng có thể đưa vào mạng thông qua input với trọng số nhân với nó là w=1. Bias
cho phép thay đổi đường phân chia về phía dưới, hoặc trên gốc toạ độ.
+Tốc độ dạy: Đây là thông số rất quan trọng, nó quyết đònh đến kết quả của
quá trình huấn luyện. Nếu n quá lớn thì quá trình tính toán nhanh nhưng kết quả
toàn cục sẽ không tìm được, ngược lại, nếu n quá nhỏ thì kết quả toàn cục tìm được
nhưng số bước tính toán lại rất nhiều. Để quá trình tính toán đạt hiệu quả người ta
thường chọn 0.1 < n < 1.
+ Hàm truyền (hàm kích hoạt, hàm hoạt động): Hàm truyền của Neural được
biểu diễn bởi hàm f(x). Nó đònh nghóa tín hiệu output của Neural nếu tín hiệu input
đã được biết trước. Tác dụng của hàm truyền là làm cho các tín hiệu nhập gần với
tính hiệu xuất chuẩn.
Có các loại hàm hoạt động sau:
b
a
i
Wi,1
Wi,2
Wi,r
Σ
f
x1
x2
x3
x4
xr
Hình 1.2
net
Chöông 1: Toång quan veà maïng Neural
- 4 -
Hình 1.3 Hình 1.4
Hình 1.5 Hình 1.6
Hình 1.7 Hình 1.8
Hình 1.9 Hình 1.10
Chương 1: Tổng quan về mạng Neural
- 5 -
Hình 1.11
Trong nội dung luận văn này chỉ đề cập đến 4 hàm thường được sử dụng sau:
Bảng 1.1
Loại hàm Phương trình Hình vẽ
Hàm tuyến tính F(x)=x Hình 1.5
Hàm ngưỡng
F(x)=
<
>
0x nếu 1-
0x nếu 1
Hình 1.3
Hàm Logsig
x
e
)x(F
+
=
1
1
Hình 1.4
Hàm tansig
1
1
2
−
+
=
−ax
e
)x(F
Hình 1.6
Việc lựa chọn hàm truyền ảnh hưởng đến thời gian dạy mạng và được xác
đònh bởi:
- Đặc tính của bài toán (tuyến tính, phi tuyến, liên tục, gián đoạn..)
- Thuận lợi cho việc ứng dụng máy tính.
- Thuật toán dạy mạng.
+ Lớp (layer): Mạng Neural có thể có một hay nhiều lớp. Lớp đầu vào gọi là
input layer, lớp cuối cùng có giá trò đầu ra là output thì gọi là output layer (lớp
output). Các lớp còn lại gọi là hidden layer (lớp ẩn).
+Khái niệm dạy mạng: là quá trình làm thay đổi các thông số trong mạng
(trọng số, Bias) cho phù hợp với kích thích bên ngoài, sau đó chúng lưu giữ các giá
trò này. Cách dạy được xác đònh thông qua cách thức thay đổi thông số.
Chương 1: Tổng quan về mạng Neural
- 6 -
Đó là:
-Mạng Neural được kích thích bởi đầu vào .
- Mạng Neural thay dổi các thông số theo kết quả kích thích.
- Mạng Neural phản ứng lại một kích thích mới bằng những thay đổi
tìm thấy trong cấu trúc mạng.
II.2. Phân loại
mạng Neural
II.2.1 Phân loại theo cấu trúc:
Mô hình kết nối của các mạng Neural nhân tạo dựa vào cấu trúc có thể được
chia ra làm hai loại: Mạng nuôi tiến và mạng nuôi lùi.
a. Mạng feedforward :
Hình 1.12
Các Neural tạo thành nhóm trong các lớp , tín hiệu truyền từ lớp input đến lớp
ouput . Các Neural không cùng lớp thì nối với nhau nhưng các Neural cùng lớp thì
không nối với nhau . Ví dụ như mạng perceptron nhiều lớp , mạng chuẩn hoá vecto
học hỏi , mạng điều khiển phát âm và mạng lưu trữ dữ liệu .
b. Mạng recurrent :
hình 1.13
Các đầu ra của một số Neural hồi tiếp lại chính nó hay các Neural ở các lớp kế
cận. Mạng recurrent có bộ nhớ động , ngõ ra của nó phản ánh input hiện hành như
các input và output trước đó . Ví dụ như mạng Hopfied, mạng Elman, mạng Jordan.
Chương 1: Tổng quan về mạng Neural
- 7 -
II.2.2 Phân loại theo phương pháp dạy:
1.Mạng học hỏi có giám sát
Thuật toán này dùng để điều chỉnh sự khác nhau giữa các output thực tế và
output yêu cầu tương ứng từng mẫu đưa vào. Ví dụ như qui tắc delta do Windrow và
Hoff đưa ra vào năm 1960, thuật toán giải thuật lan truyền ngược (backpropagation)
do Rumelhart và Mc Clellan đưa ra năm 1986, thuật toán vecto học hỏi do Kohonen
đưa ra năm 1989.
2.Mạng học hỏi không giám sát
Thuật toán này không đòi hỏi cần biết trước ngõ ra yêu cầu. Trong quá trình
huấn luyện các mẫu nhập đưa vào mạng và thuật toán tự điều chỉnh các trọng số
kết nối, các mẫu nhập có đặc điểm tương tự sẽ ở trong cùng một lớp. Ví dụ như
thuật toán học hỏi cạnh tranh ATR của Carpenter và Grossberg đưa ra vào năm
1988.
đầu vào x đầu ra thực tế y
3.Mạng học hỏi có điều chỉnh
Thuật toán học hỏi có điều chỉnh sử dụng tiêu chuẩn đánh giá các đặc điểm tốt
của output mạng tương ứng và input đưa vào. Ví dụ như thuật toán Gen do Holland
đưa ra năm 1975.
Đầu vào x Đầu ra thực tế y
Mạng
Neural
w
Hình 1.15 Mô hình huấn luyện không giám sát
Mạng
Neural
w
Sai số
Hình 1.14 Mô hình mạng huấn luyện có giám sát
Đầu ra thực tế y
đầu ra mong muốn d
Đầu vào x
Mạng
Neural
Hình 1.16
Chương 1: Tổng quan về mạng Neural
- 8 -
tín hiệu tăng cường
II.3 Cấu trúc mạng Neural
II.3.1. Mạng Neural có một lớp : Bao gồm các phần tử xử lý trên cùng mức.
w
1,1
a
1
p
1
b
1
p
2
a
2
p
3
b
2
w
S,R
a
S
p
R
b
S
Trong đó:
- p
i
: Dữ liệu đầu vào.
- a = f(wp + b) (1.3)
- R :số lượng vecto đầu vào
- S : số lượng Neural trong một lớp
Trong mạng này, mỗi đầu vào p được nối với mỗi Neural thông qua ma trận
trọng số W. Mỗi Neural có một bộ tổng để cộng các trọng số và bias. Kết quả của
chúng là đầu vào của hàm f.
Thường thì số vecto đầu vào khác với số Neural (R
≠S). Trong mạng không bắt
buộc số đầu vào bằng số Neural (R=S).
Ma trận trọng số w
Σ
f
Σ
f
Σ
f
Hình 1.17 Mạng Neural nuôi tiến một lớp
Tín
hiệu
Hồi
Chương 1: Tổng quan về mạng Neural
- 9 -
=
S,RS,2,S
2,R2,2,
1,R1,2,
w . . . w w
....
w . . . w w
w . . . w w
W
1
12
11
Chỉ số hàng trong ma trận cho biết nơi đến Neural và chỉ số cột cho biết nơi bắt
đầu xuất phát từ input của trọng số .
Ví du: W
1,2
cho biết trọng số xuất phát từ input thứ 2 và kết thúc ở Neural thứ 1.
Tín hiệu hồi tiếp
a
1
p
1
b
1
p
2
b
2
a
2
p
R
a
S
b
3
II.3.2. Mạng Neural nhiều lớp
Trong mạng Neural có thể có nhiều lớp. Mỗi lớp có một ma trận trọng số w và
một bias b, và một output a. Lớp Neural đầu tiên gọi là lớp đầu vào, lớp Neural cuối
là lớp đầu ra, các lơp Neural giữa hai lớp đầu vào và đầu ra gọi là lớp ẩn. Trong
mạng Neural một lớp, chỉ có một lớp đầu vào, một lớp đầu ra và một lớp ẩn. Để
phân biệt các giá trò này trong các lớp ta dùng các chỉ số như hình vẽ bên dưới.
Hình 1.18 Mạng Neural nuôi lùi một lớp
Σ
f
Σ
f
Σ
f
Σ
f
Σ
f
Σ
f
Σ
f
Σ
f
Σ
f
P1 a
1,1
a
1,2
a
1,n
b
1,1
b
1,1
b
1,n
P2 a
2,1
a
2,2
a
2,n
b
2,1
b
2,1
b
2,n
Chương 1: Tổng quan về mạng Neural
- 10 -
Lớp cuối cùng có giá trò đầu ra là output thì gọi là output layer, lớp đầu
vào (input) gọi là input layer. Các lớp còn lại gọi là hidden layer (lớp ẩn). Một
vài tác giả thì cho rằng input là lớp thứ 4.
III. LUẬT HỌC VÀ CÁC PHƯƠNG PHÁP DẠY MẠNG
Học là quá trình làm thay đổi các thông số trong mạng (trọng số) cho phù hợp
với kích thích bên ngoài, sau đó chúng lưu giữ các giá trò này. Cách học hỏi được
xác đònh thông qua cách thức thay đổi thông số.
Σ
f
Σ
f
Σ
f
Σ
f
Σ
f
Σ
f
Σ
f
Σ
f
Σ
f
P
1
a
1,1
a
1,2
a
1,n
b
1,1
b
1,2
b
1,n
P
2
a
2,1
a
2,2
a
2,n
b
2,1
b
2,2
b
2,n
P
r
a
r,1
a
r,2
a
r,n
b
r,1
b
r,2
b
r,n
Hình 1.20 Mạng Neural nuôi lùi nhiều lớp
Chương 1: Tổng quan về mạng Neural
- 11 -
Đònh nghóa của việc học bao hàm các ý sau:
- Mạng Neural được kích thích bởi đầu vào.
- Mạng Neural thay đổi các trọng số theo kết quả kích thích.
- Mạng Neural phản ứng lại một kích thích mới bằng những thay đổi tìm thấy
trong cấu trúc mạng.
Có nhiều cách học trong mạng nhưng ở đây chỉ đề cập một số luật học chủ
yếu:
III.1. Luật học sửa lỗi (Error-Correction Learning)
- Gọi d
k
là giá trò đầu ra mong muốn của Neural thứ k.
- y
k
là giá trò đầu ra thực.
- e
k
là sai số của Neural thứ k.
Ta có công thức tính sai số ở lần thứ n:
e
k
(n) = d
k
(n) – y
k
(n) (1.4)
Tổng sai số trong mạng:
E=
)n(e
k
∑
2
2
1
(1.5)
Giá trò trọng số thay đổi như sau :
kj
old
kj
new
kj
w )n(w (n)w ∆+=
(1.6)
Với ∆w
kj
(n) = ηe
k
(n)x
j
(n) (1.7)
Trong đó: η là tốc độ dạy (là một hằng số)
x là giá trò đầu vào (input)
III.2. Luật Hebbian (Hebbian Learning)
Đònh luật Hebb: Gia tăng trọng số của kích thích nếu muốn đầu ra của Neural
tác động đối với kích thích. Ngược lại, giảm trọng số của kích thích nếu không muốn
đầu ra của Neural tác động đối với kích thích đó.
Donald Hebb đã đề xuất sơ đồ học tập để cập nhật các liên kết nút mà ngày nay
chúng ta gọi là qui tắc huấn luyện Hebb. Mỗi khi một Neural được kích hoạt lặp đi lặp
lại bởi một Neural khác, ngưỡng kích hoạt của Neural thứ hai giảm đi, do đó sự truyền
đạt giữa 2 Neural này được dễ dàng bởi sự kích hoạt lặp lại.
Một đặc tính quan trọng của qui tắc này là việc huấn luyện được thực hiện một
cách cục bộ, tức là sự thay đổi trọng số kết nối giữa hai Neural chỉ phụ thuộc vào hoạt
động của 2 Neural đó.
Chương 1: Tổng quan về mạng Neural
- 12 -
Ý tưởng này có thể mở rộng cho các hệ thống nhân tạo. Có nhiều cơng thức tốn
học khác nhau để diễn tả qui tắc Hebb. Cơng thức sau đây được sử dụng phổ biến nhất.
Theo qui tắc Hebb, khi có sự hoạt động chạy từ Neural thứ j đến Neural thứ i, trọng số
tự sẽ tăng. Ơng cho rằng thơng tin có thể được lưu trữ trong kết nối và kỹ thuật huấn
luyện của ơng đã có những đóng góp nền tảng cho lý thuyết mạng Neural.
Nếu biểu thị hoạt động của Neural thứ j bằng xj và đầu ra của Neural thứ i là yi,
thì trọng số kết nối được cho bởi:
∆w
ij
= ŋ x
j
y
i
(1.8)
X
j
Y
i
Hình 1.21
Ở đây ŋ là tham số để hiệu chỉnh sự thay đổi trọng số. Chú ý rằng qui tắc Hebb có
tính cục bộ đối với trọng số và khác với các qui tắc huấn luyện (perceptron, truyền đạt
ngược), khơng có đầu ra u cầu trong qui tắc Hebb và chỉ có đầu vào cần chảy qua
mạng Neural.
Viết lại phương trình trên ta có:
w(t+1) = w(t) + ŋ x(t) y(t) (1.9)
Ở đây t biểu thị số bước lặp và ŋ là độ lớn của bước lặp. Nếu ta có một Neural
tuyến tính, thì thay y = wx ta có:
w(t+1) = w(t) . ( 1+ŋ x
2
(t)) (1.10)
Như vậy, trong số có khả năng tăng khơng giới hạn, làm cho các huấn luyện viên
Hebb khơng ổn định về bản chất, có thể sinh ra các trọng số dương hoặc âm rất lớn.
Để khống chế sự tăng khơng giới hạn của trọng số, Oja và Sanger
đưa ra sự tiêu
chuẩn hoá vào qui tắc Hebb.
Qui tắc Oja:
Oja đề xuất tiêu chuẩn hố qui tắc Hebb. Chúng ta phân trọng số được cập nhật
bằng chuẩn của tất cả các trọng số kết nối:
Oja cho sự xấp xỉ vào qui tắc cập nhật này như sau:
wi (t+1) = wi (t) + η y(t) [x(t) – y(t) wi (t)]
= wi (t) [ 1 - η y2(t) ] + η xi (t) y(t). (1.11)
Ở đây x(t) – y(t).wi (t) là sự hoạt động tiêu chuẩn hố, nó là một “hệ số qn” tỉ
lệ với bình phương của ngõ ra.
Qui tắc Sanger:
Sanger đã sửa đổi qui tắc Oja để thực hiện làm giảm. Mơ tả tóm tắt qui tắc Sanger
như sau: