Tải bản đầy đủ (.doc) (45 trang)

Tìm hiểu kỹ thuật mạng nơ ron nhân tạo. đi sâu mạng back propagation of error. cài đặt minh họa

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 (3.23 MB, 45 trang )

LỜI MỞ ĐẦU
Từ khi ra đời, máy tính đã nhanh chóng phát triển và đóng một vai trò rất
quan trọng trong nghiên cứu khoa học kỹ thuật cũng như trong đời sống.
Nhưng một máy tính dù có mạnh đến đâu chăng nữa, cũng chỉ có thể làm
việc theo một chương trình đã được hoạch định sẵn bởi lập trình viên. Nó vẫn
không có khả năng liên tưởng, kết nối sự việc này với sự việc khác, và quan
trọng hơn hết là khả năng sáng tạo như con người.
Mạng nơron nhân tạo (Artificial neural networks ) ra đời xuất phát từ ý
tưởng mô phỏng hoạt động của bộ não con người.
Mạng noron nhân tạo là sự tái tạo bằng kỹ thuật những chức năng của hệ
thần kinh con người với vô số các nơron được liên kết truyền thông với nhau
qua mạng. Giống như con người, ANN được học bởi kinh nghiệm, lưu những
kinh nghiệm đó và sử dụng trong những tình huống phù hợp.
Mạng nơron trong một vài năm trở lại đây đã được nhiều người quan tâm
và đã áp dụng thành công trong nhiều lĩnh vực khác nhau, như tài chính, y tế, địa
chất và vật lý, dự báo, phân loại... Kết hợp chặt chẽ với logic mờ, mạng nơron
nhân tạo đã tạo nên cuộc cách mạng thực sự trong việc thông minh hóa và vạn
năng hóa các bộ điều khiển kỹ thuật cao cho cả hiện nay và trong tương lai. Ví dụ
như ứng dụng tự động điều khiển hệ thống lái tàu, hệ thống dự báo sự cố,…
Mạng nơron dựa trên việc mô phỏng cấp thấp hệ thống nơron sinh học.
Trong tương lai với sự phát triển mô phỏng nơron sinh học, chúng ta có thể có
loại máy tính thông minh thật sự.
Vì lý do đó nhóm 11 chúng em lựa chọn đề tài “Tìm hiểu kỹ thuật mạng
nơ ron nhân tạo. Đi sâu mạng Back Propagation of Error. Cài đặt minh
họa”. Đây là một đề tài khá lớn và phức tạp, song trong phạm vi một bài báo
cáo ngắn, chúng em xin trình bày những kiến thức ở mức cơ bản nhất.
Để hoàn thành bài báo cáo này, chúng em đã nhận được sự hướng dẫn
nhiệt tình của ThS. Nguyễn Phương Nga – giảng viên bộ môn Tính toán mềm
lớp KHMT2-K6 chúng em. Những bài giảng và tài liệu của cô chính là cơ sở để
chúng em có thể hoàn thành tốt báo cáo của mình. Chúng em xin chân thành
cảm ơn cô!


Nhóm thực hiện

Nhóm 11 – LTKHMT2K6

1

Giảng viên: Nguyễn Phương Nga


MỤC LỤC
PHẦN 1: GIỚI THIỆU CHUNG VỀ TÍNH TOÁN MỀM...................................4
Trong thực tế cuộc sống, các bài toán liên quan đến hoạt động nhận thức, trí tuệ
của con người đều hàm chứa những đại lượng, thông tin mà bản chất là không
chính xác, không chắc chắn, không đầy đủ. Ví dụ: sẽ chẳng bao giờ có các thông
tin, dữ liệu cũng như các mô hình toán đầy đủ và chính xác cho các bài toán dự
báo thời tiết. Nhìn chung con người luôn ở trong bối cảnh là không có thông tin
đầy đủ và chính xác cho các hoạt động ra quyết định của bản thân mình............4
Trong lĩnh vực khoa học kĩ thuật cũng vậy, các hệ thống phức tạp trên thực tế
thường không thể mô tả đầy đủ và chính xác bởi các phương trình toán học
truyền thống. Kết quả là những cách tiếp cận kinh điển dựa trên kỹ thuật phân
tích và các phương trình toán học nhanh chóng tỏ ra không còn phù hợp. Vì thế,
công nghệ tính toán mềm chính là một giải pháp trong lĩnh vực này...................5
1. Một số đặc điểm của công nghệ tính toán mềm:...............................................5
- Tính toán mềm căn cứ trên các đặc điểm, hành vi của con người và tự nhiên để
đưa ra các quyết định hợp lý trong điều kiện không chính xác và không chắc
chắn để tạo ra các máy thông minh (thế hệ mới của TTNT).................................5
- Các thành phần của tính toán mềm có sự bổ sung, hỗ trợ lẫn nhau tạo hệ thống
có tổ chức chặt.......................................................................................................5
- Tính toán mềm là một hướng nghiên cứu mở, bất kỳ một kỹ thuật mới nào
được tạo ra từ việc bắt trước trí thông minh của con người đều có thể trở thành

một thành phần mới của tính toán mềm................................................................5
- Công nghệ tính toán mềm bao gồm 4 thành phần chính: Fuzzy Computing
(FC), Evolutionary Computing (EC), Neural Computing (NC) and Probabilistic
Computing (PC - còn đang phát triển)..................................................................5
1981 1960 1943 1965...........................................................................................6
1960 1992 1965 1962 1970..................................................................................6
(ARTIFICIAL NEURAL NETWORK)................................................................7
I. LỊCH SỬ PHÁT TRIỂN CỦA MẠNG NƠRON..............................................7
Ngày nay, không chỉ dừng lại ở mức nghiên cứu lý thuyết, các nghiên cứu ứng
dụng mạng nơron để giải quyết các bài toán thực tế được diễn ra ở khắp mọi nơi.
Các ứng dụng mạng nơron ra đời ngày càng nhiều và ngày càng hoàn thiện hơn.
Nhóm 11 – LTKHMT2K6

2

Giảng viên: Nguyễn Phương Nga


Điển hình là các ứng dụng: xử lý ngôn ngữ (Language Processing), nhận dạng kí
tự (Character Recognition), nhận dạng tiếng nói (Voice Recognition), nhận dạng
mẫu (Pattern Recognition), xử lý tín hiệu (Signal Processing), Lọc dữ liệu (Data
Filtering),…...........................................................................................................9
II. MẠNG NƠRON SINH HỌC...........................................................................9
3. Perceptron........................................................................................................15
4. Mạng nhiều tầng truyền thẳng (MLP).............................................................16
Để khắc phục những khó khăn đối với những bài toán có mẫu phân chia không
tuyến tính, mạng nơron nhiều lớp được sử dụng. Có rất nhiều công trình nghiên
cứu vềmạng MLP và đã cho thấy nhiều ưu điểm của mạng này.........................18
Mạng MLP là một giải pháp hữu hiệu cho việc mô hình hoá, đặc biệt với quá
trình phức tạp hoặc cơ chế chưa rõ ràng. Nó không đòi hỏi phải biết trước dạng

hoặc tham số. Mạng MLP là cơ sở cho thuật toán lan truyền ngược và khả năng
xấp xỉ liên tục......................................................................................................18
6. Xây dựng mạng nơron:...................................................................................18
6.1 Chuẩn bị dữ liệu...........................................................................................18
a. Kích thước mẫu.........................................................................................................18
b. Mẫu con.....................................................................................................................20
c. Sự phân tầng mẫu......................................................................................................20
d. Chọn biến..................................................................................................................21

6.2 Xác định các tham số cho mạng:..................................................................21
a. Chọn hàm truyền............................................................................................21
b. Xác định số nơron tầng ẩn........................................................................................22
c. Khởi tạo trọng số:......................................................................................................23

6.3 Vấn đề lãng quên (catastrophic forgetting)..................................................23
6.4 Vấn đề quá khớp...........................................................................................24
a. Khái niệm quá khớp..................................................................................................24
b. Giải quyết quá khớp..................................................................................................25

7. Huấn luyện mạng nơron:.................................................................................25
Nhóm 11 – LTKHMT2K6

3

Giảng viên: Nguyễn Phương Nga


* Các kỹ thuật học:..............................................................................................25
IV. ỨNG DỤNG CỦA MẠNG NORON...........................................................28
PHẦN 3: MẠNG LAN TRUYỀN NGƯỢC SAI SỐ.........................................29

4. Kỹ thuật học có giám sát:................................................................................33
PHẦN 4: BÀI TOÁN MINH HỌA.....................................................................35
Sử dụng kỹ thuật học có giám sát trong mạng nơron:.........................................35
1. Giới thiệu bài toán...........................................................................................35
2. Các bước cài đặt bài toán bằng lệnh trong Matlab:.........................................35
Bước 1: Xây dựng mô hình mạng nơron cho bài toán:.......................................35
3. Cài đặt bài toán sử dụng công cụ nntool trong Matlab:..................................38
KẾT LUẬN.........................................................................................................43
TÀI LIỆU THAM KHẢO...................................................................................44

PHẦN 1: GIỚI THIỆU CHUNG VỀ TÍNH TOÁN MỀM
Trong thực tế cuộc sống, các bài toán liên quan đến hoạt động nhận thức,
trí tuệ của con người đều hàm chứa những đại lượng, thông tin mà bản chất là
không chính xác, không chắc chắn, không đầy đủ. Ví dụ: sẽ chẳng bao giờ có các
Nhóm 11 – LTKHMT2K6

4

Giảng viên: Nguyễn Phương Nga


thông tin, dữ liệu cũng như các mô hình toán đầy đủ và chính xác cho các bài toán
dự báo thời tiết. Nhìn chung con người luôn ở trong bối cảnh là không có thông
tin đầy đủ và chính xác cho các hoạt động ra quyết định của bản thân mình.
Trong lĩnh vực khoa học kĩ thuật cũng vậy, các hệ thống phức tạp trên
thực tế thường không thể mô tả đầy đủ và chính xác bởi các phương trình toán
học truyền thống. Kết quả là những cách tiếp cận kinh điển dựa trên kỹ thuật
phân tích và các phương trình toán học nhanh chóng tỏ ra không còn phù
hợp. Vì thế, công nghệ tính toán mềm chính là một giải pháp trong lĩnh vực này.
Công nghệ tính toán mềm (Soft Computing – SC) là một hệ thống có tổ

chức chặt chẽ. Hệ thống này là sự hợp nhất của các phương pháp được thiết kế
để mô hình hóa nhằm giải quyết các bài toán thực không thể hoặc quá khó để
mô hình hóa bằng toán học.
Đích của công nghệ tính toán mềm (SC) là phát hiện và tìm lời giải với
bài toán khó do sự mơ hồ, không chắc chắn, xấp xỉ và chỉ đúng một phần của dữ
liệu, nhằm đạt được sự tương đồng với khả năng trí tuệ của con người về lý giải
và học trong môi trường mơ hồ.
1. Một số đặc điểm của công nghệ tính toán mềm:
- Tính toán mềm căn cứ trên các đặc điểm, hành vi của con người và tự
nhiên để đưa ra các quyết định hợp lý trong điều kiện không chính xác và không
chắc chắn để tạo ra các máy thông minh (thế hệ mới của TTNT).
- Các thành phần của tính toán mềm có sự bổ sung, hỗ trợ lẫn nhau tạo hệ
thống có tổ chức chặt.
- Tính toán mềm là một hướng nghiên cứu mở, bất kỳ một kỹ thuật mới
nào được tạo ra từ việc bắt trước trí thông minh của con người đều có thể trở
thành một thành phần mới của tính toán mềm.
- Công nghệ tính toán mềm bao gồm 4 thành phần chính: Fuzzy
Computing (FC), Evolutionary Computing (EC), Neural Computing (NC) and
Probabilistic Computing (PC - còn đang phát triển).
2. Lịch sử phát triển:
SC
=
Soft
Computing

EC

+

Evolutionary

Computing

Zadeh
Nhóm 11 – LTKHMT2K6

Rechenberg
5

NN

+

FL

Neural
Netwwork

Fuzzy
Logic

McCulloch

Zadeh

Giảng viên: Nguyễn Phương Nga


1981

EC

Evolutionary
Computing

Rechenberg
1960

1960

=

GP
Genetic
Programming

1943

+

ES

+

1965

EP

+

GA


Evolution
Strategies

Evolutionary
Progamming

Genetic
Algorithms

Koza

Rechenberg

Fogel

Holland

1992

1965

1962

1970

3. Ứng dụng của tính toán mềm:
Các nghiên cứu gần đây về tính toán mềm là bước phát triển của công
nghệ tính toán và mở ra nhiều ứng dụng.
Các mô hình tính toán mềm thường dựa vào kinh nghiệm con người, sử
dụng dung sai cho phép của sự không chính xác, tính bất định, gần đúng, xấp xỉ

để tìm lời giải hiệu quả ở chỗ đơn giản, dễ hiểu, dễ thực hiện, chi phí thấp.
Các ý tưởng cơ bản của tính toán mềm đầu tiên xuất hiện theo các bài báo
của Zadeh về lý thuyết tập mờ vào 1965, sau đó là bài báo năm 1973 về phân
tích hệ thống phức tạp và quá trình ra quyết định, tiếp theo là bài báo năm 1981
về lý thuyết khả năng và phân tích dữ kiện mềm. Về sau, mạng thần kinh và giải
thuật di truyền đã góp phần nâng cao hiệu quả của tính toán mềm.
Các ứng dụng thành công của tính toán mềm cho thấy tính toán mềm ngày
càng phát triển mạnh và đóng vai trò đặc biệt trong các lĩnh vực khác nhau của
Khoa học và Kỹ thuật.
Tính toán mềm biểu thị một sự chuyển dịch, biến hóa quan trọng trong các
hướng tính toán. Sự chuyển dịch này phản ảnh sự kiện trí tuệ con người, không
như máy tính, có khả năng đáng kể trong việc lưu trữ và xử lý thông tin không
chính xác và bất định, và đây mới là những thông tin thực tế và thường gặp.

Nhóm 11 – LTKHMT2K6

6

Giảng viên: Nguyễn Phương Nga


PHẦN 2: GIỚI THIỆU VỀ ANN
(ARTIFICIAL NEURAL NETWORK)
I. LỊCH SỬ PHÁT TRIỂN CỦA MẠNG NƠRON
Các nghiên cứu về bộ não con người đã được tiến hành từ hàng nghìn năm
nay. Cùng với sự phát triển của khoa học kĩ thuật đặc biệt là những tiến bộ trong
ngành điện tử hiện đại, việc con người bắt đầu nghiên cứu các nơron nhân tạo là
hoàn toàn tự nhiên. Sự kiện đầu tiên đánh dấu sự ra đời của mạng nơron nhân tạo
diễn ra vào năm 1943 khi nhà thần kinh học Warren McCulloch và nhà toán học
Walter Pitts viết bài báo mô tả cách thức các nơron hoạt động. Họ cũng đã tiến

hành xây dựng một mạng nơron đơn giản bằng các mạch điện. Các nơron của họ
được xem như là các thiết bị nhị phân với ngưỡng cố định. Kết quả của các mô
hình này là các hàm logic đơn giản chẳng hạn như “ a OR b” hay “a AND b”.
Tiếp bước các nghiên cứu này, năm 1949 Donald Hebb cho xuất bản cuốn
sách Organization of Behavior. Cuốn sách đã chỉ ra rằng các nơron nhân tạo sẽ
trở nên hiệu quả hơn sau mỗi lần chúng được sử dụng.
Những tiến bộ của máy tính đầu những năm 1950 giúp cho việc mô hình
hóa các nguyên lý của những lý thuyết liên quan tới cách thức con người suy
nghĩ đã trở thành hiện thực. Nathanial Rochester sau nhiều năm làm việc tại các
phòng thí nghiệm nghiên cứu của IBM đã có những nỗ lực đầu tiên để mô
phỏng một mạng nơron. Trong thời kì này tính toán truyền thống đã đạt được
những thành công rực rỡ trong khi đó những nghiên cứu về nơron còn ở giai
đoạn sơ khai. Mặc dù vậy những người ủng hộ triết lý “thinking machines” (các
máy biết suy nghĩ) vẫn tiếp tục bảo vệ cho lập trường của mình.
Năm 1956 dự án Dartmouth nghiên cứu về trí tuệ nhân tạo (Artificial
Intelligence) đã mở ra thời kỳ phát triển mới cả trong lĩnh vực trí tuệ nhân tạo
lẫn mạng nơron. Tác động tích cực của nó là thúc đẩy hơn nữa sự quan tâm của
các nhà khoa học về trí tuệ nhân tạo và quá trình xử lý ở mức đơn giản của mạng
nơron trong bộ não con người.
Những năm tiếp theo của dự án Dartmouth, John von Neumann đã đề xuất
việc mô phỏng các nơron đơn giản bằng cách sử dụng rơle điện áp hoặc đèn
chân không. Nhà sinh học chuyên nghiên cứu về nơron Frank Rosenblatt cũng
bắt đầu nghiên cứu về Perceptron. Sau thời gian nghiên cứu này Perceptron đã
Nhóm 11 – LTKHMT2K6

7

Giảng viên: Nguyễn Phương Nga



được cài đặt trong phần cứng máy tính và được xem như là mạng nơron lâu đời
nhất còn được sử dụng đến ngày nay. Perceptron một tầng rất hữu ích trong việc
phân loại một tập các đầu vào có giá trị liên tục vào một trong hai lớp.
Perceptron tính tổng có trọng số các đầu vào, rồi trừ tổng này cho một ngưỡng
và cho ra một trong hai giá trị mong muốn có thể. Tuy nhiên Perceptron còn rất
nhiều hạn chế, những hạn chế này đã được chỉ ra trong cuốn sách về Perceptron
của Marvin Minsky và Seymour Papert viết năm 1969.
Năm 1959, Bernard Widrow và Marcian Hoff thuộc trường đại học
Stanford đã xây dựng mô hình ADALINE (ADAptive LINear Elements) và
MADALINE. (Multiple ADAptive LINear Elements). Các mô hình này sử dụng
quy tắc học Least-Mean-Squares (LMS: Tối thiểu bình phương trung bình).
MADALINE là mạng nơron đầu tiên được áp dụng để giải quyết một bài toán
thực tế. Nó là một bộ lọc thích ứng có khả năng loại bỏ tín hiệu dội lại trên
đường dây điện thoại. Ngày nay mạng nơron này vẫn được sử dụng trong các
ứng dụng thương mại.
Năm 1974 Paul Werbos đã phát triển và ứng dụng phương pháp học lan
truyền ngược (back-propagation). Tuy nhiên phải mất một vài năm thì phương
pháp này mới trở nên phổ biến. Các mạng lan truyền ngược được biết đến nhiều
nhất và được áp dụng rộng dãi nhất cho đến ngày nay.
Thật không may, những thành công ban đầu này khiến cho con người
nghĩ quá lên về khả năng của các mạng nơron. Chính sự cường điệu quá mức đã
có những tác động không tốt đến sự phát triển của khoa học và kỹ thuật thời bấy
giờ khi người ta lo sợ rằng đã đến lúc máy móc có thể làm mọi việc của con
người. Những lo lắng này khiến người ta bắt đầu phản đối các nghiên cứu về
mạng nơron. Thời kì tạm lắng này kéo dài đến năm 1981.
Năm 1982 trong bài báo gửi tới viện khoa học quốc gia, John Hopfield
bằng sự phân tích toán học rõ ràng, mạch lạc, ông đã chỉ ra cách thức các mạng
nơron làm việc và những công việc chúng có thể thực hiện được. Cống hiến của
Hopfield không chỉ ở giá trị của những nghiên cứu khoa học mà còn ở sự thúc
đẩy trở lại các nghiên cứu về mạng nơron.

Cũng trong thời gian này, một hội nghị với sự tham gia của Hoa Kỳ và Nhật
Bản bàn về việc hợp tác/cạnh tranh trong lĩnh vực mạng nơron đã được tổ chức tại
Kyoto, Nhật Bản. Sau hội nghị, Nhật Bản đã công bố những nỗ lực của họ trong
Nhóm 11 – LTKHMT2K6

8

Giảng viên: Nguyễn Phương Nga


việc tạo ra máy tính thế hệ thứ 5. Tiếp nhận điều đó, các tạp chí định kỳ của Hoa
Kỳ bày tỏ sự lo lắng rằng nước nhà có thể bị tụt hậu trong lĩnh vực này. Vì thế,
ngay sau đó, Hoa Kỳ nhanh chóng huy động quĩ tài trợ cho các nghiên cứu và ứng
dụng mạng nơ ron.
Năm 1985, viện vật lý Hoa Kỳ bắt đầu tổ chức các cuộc họp hàng năm về
mạng nơron ứng dụng trong tin học (Neural Networks for Computing).
Năm 1987, hội thảo quốc tế đầu tiên về mạng nơron của Viện các kỹ sư
điện và điện tử IEEE (Institute of Electrical and Electronic Engineer) đã thu hút
hơn 1800 người tham gia.
Ngày nay, không chỉ dừng lại ở mức nghiên cứu lý thuyết, các nghiên cứu
ứng dụng mạng nơron để giải quyết các bài toán thực tế được diễn ra ở khắp mọi
nơi. Các ứng dụng mạng nơron ra đời ngày càng nhiều và ngày càng hoàn thiện
hơn. Điển hình là các ứng dụng: xử lý ngôn ngữ (Language Processing), nhận
dạng kí tự (Character Recognition), nhận dạng tiếng nói (Voice Recognition),
nhận dạng mẫu (Pattern Recognition), xử lý tín hiệu (Signal Processing), Lọc dữ
liệu (Data Filtering),…..
II. MẠNG NƠRON SINH HỌC
Không có một định nghĩa tổng quát về mạng nơ ron, song các chuyên gia
trong lĩnh vực này đều có chung một quan điểm: “Mạng nơ ron bao gồm một tập
hợp các phần tử xử lý đơn giản mà chúng ta gọi là các nơ ron, được liên kết với

nhau và hoạt động song song với nhau. Tính năng của mạng phụ thuộc vào cấu trúc
của mạng, trọng số liên kết giữa các nơ ron và quá trình xử lý bên trong các nơ ron.
Mạng nơ ron có khả năng học số liệu và tổng quát hóa từ các số liệu đã học”.
Các mạng nơ ron được xây dựng để mô phỏng chức năng của một mạng
nơ ron sinh học nói chung hay mạng nơ ron sinh học của con người nói riêng.
* Mô hình và quá trình xử lý trong nơ ron sinh học:
Hệ thần kinh của con người có khoảng 10 10 nơ ron. Mỗi nơ ron bao gồm
thân nơ ron (cell body), bên trong có nhân (soma), hệ thống dây thần kinh vào
hình cây (dendrites) và một đầu dây thần kinh ra (axon).
Các đầu dây thần kinh vào nhận tín hiệu từ các nơ ron khác, nhân nơ ron
sẽ sinh ra tín hiệu ở đầu ra của nơ ron và truyền tới các nơ ron khác được nối với
đầu ra của chúng.
Nhóm 11 – LTKHMT2K6

9

Giảng viên: Nguyễn Phương Nga


Điểm nối giữa các dây thần kinh vào và ra gọi là các khớp. Tín hiệu truyền
trong các dây thần kinh là tín hiệu điện, dòng điện là dòng chuyển động của các ion.
Tại khớp thần kinh, các tín hiệu điện ở đầu ra sẽ kích thích làm giải phóng
các chất hóa học, được gọi là chất truyền nơ ron. Các chất truyền nơ ron sẽ
khuếch tán qua khe hở khớp và xuyên qua màng khớp. Các chất hóa học này lại
kích thích tạo ra các tín hiệu điện ở đầu vào của các nơ ron khác.
Khớp thần kinh hoạt động một chiều, tức là chỉ có các tín hiệu điện ở đầu
ra mới tạo thành được các tín hiệu điện ở đầu vào của các nơ ron khác mà không
có chiều ngược lại. Hơn nữa tại các khớp còn có tỷ lệ biến đổi thông tin giữa
đầu vào và đầu ra, gọi là độ khuếch đại lớp.


Hình 1: Mô hình nơ ron sinh học
Như vậy nơron sinh học hoạt động theo cách thức sau: nhận tín hiệu đầu
vào, xử lý các tín hiệu này và cho ra một tín hiệu output. Tín hiệu output này sau
đó được truyền đi làm tín hiệu đầu vào cho các nơron khác.
Tất cả các đặc điểm trên đều được vận dụng một cách triệt để trong việc
xây dựng một mạng nơ ron nhân tạo nhằm tạo ra một mạng nơ ron giống với
mạng nơ ron sinh học nhất.
III. MẠNG NƠRON NHÂN TẠO
1. Khái niệm:
Mạng nơron nhân tạo, Artificial Neural Network (ANN) gọi tắt là mạng
nơron là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của
Nhóm 11 – LTKHMT2K6

10

Giảng viên: Nguyễn Phương Nga


các hệ nơron sinh học. Nó được tạo lên từ một số lượng lớn các phần tử (gọi là
phần tử xử lý hay nơron) kết nối với nhau thông qua các liên kết (gọi là trọng số
liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó.
Một mạng nơron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận
dạng mẫu, phân loại dữ liệu, ...) thông qua một quá trình học từ tập các mẫu
huấn luyện. Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa
các nơron.
Một nơron là một đơn vị xử lý thông tin và là thành phần cơ bản của một
mạng nơron. Cấu trúc của một nơron được mô tả trên hình dưới.

Hình 1: Mô hình nơron nhân tạo
Các thành phần cơ bản của một nơron nhân tạo bao gồm:

- Tập các đầu vào: Là các tín hiệu vào (input signals) của nơron, các tín
hiệu này thường được đưa vào dưới dạng một vector n chiều.
- Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là
trọng số liên kết – Synaptic weight). Trọng số liên kết giữa tín hiệu vào thứ j với
nơron 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 một cách 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.
Trọng số kết nối: W = [w1, w2, …, wn]T
- Bộ tổng (Summing function) (u): 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 (còn gọi là độ lệch - bias): Kí hiệu: θ
Nhóm 11 – LTKHMT2K6

11

Giảng viên: Nguyễn Phương Nga


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 (Transfer function) : Hàm này được dùng để giới hạn phạm
vi đầu ra của mỗi nơron. 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 nơron đượ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ể là các hàm tuyến tính hoặc
phi tuyến. Việc lựa chọn hàm truyền nào là tuỳ 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 (Output): Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có
tối đa là một đầu ra.
Về bản chất một mạng nơron có chức năng như là một hàm ánh xạ F: X
→ Y, trong đó X là không gian trạng thái đầu vào (input state space) và Y là
không gian trạng thái đầu ra (output state space) của mạng. Các mạng chỉ đơn

giản là làm nhiệm vụ ánh xạ các vector đầu vào x ∈ X sang các vector đầu ra y
∈ Y thông qua “bộ lọc” (filter) các trọng số. Tức là y = F(x) = f(W, x), trong đó
W là ma trận trọng số liên kết. Hoạt động của mạng thường là các tính toán số
thực trên các ma trận.
Đối với mỗi nơ ron chúng ta tính một giá trị Net, là hàm của các tín hiệu
đầu vào xi và trọng số wi:
Net = w1x1 + w2x2 + … + wnxn
Tín hiệu ra tại mỗi nơ ron là một hàm số của Net:
Y =f(Net)
Hàm truyền f thường sử dụng trong các mô hình mạng nơron như sau:

Hàm truyền

Đồ thị

Định nghĩa

Symmetrical Hard
Limit (hardlims)

Nhóm 11 – LTKHMT2K6

12

Giảng viên: Nguyễn Phương Nga


y = f (u) = α . u
α là hệ số góc của hàm


Linear (purelin)

Saturating Linear
(satlin)

Log-Sigmoid
(logsig)

y=f(u)

Như vậy tương tự như nơron sinh học, nơron nhân tạo cũng nhận các tín
hiệu đầu vào, xử lý (nhận các tín hiệu này với trọng số liên kết, tính tổng các
tích thu được rồi gửi kết quả tới hàm truyền) và cho một tín hiệu đầu ra (là kết
quả của hàm truyền).
2. Các kiến trúc mạng:
Mặc dù mỗi nơron đơn lẻ có thể thực hiện những chức năng xử lý thông
tin nhất định, sức mạnh của tính toán nơron chủ yếu có được nhờ sự kết hợp các
nơron trong một kiến trúc thống nhất. Một mạng nơron là một mô hình tính toán
được xác định qua các tham số: kiểu nơron (như là các nút nếu ta coi cả mạng
nơron là một đồ thị), kiến trúc kết nối (sự tổ chức kết nối giữa các nơron) và
thuật toán học (thuật toán dùng để học cho mạng).
Cách thức kết nối các nơron trong mạng xác định kiến trúc (topology) của
mạng. Các nơron trong mạng có thể kết nối đầy đủ (fully connected) tức là mỗi
nơron đều được kết nối với tất cả các nơron khác, hoặc kết nối cục bộ (partially
connected) chẳng hạn chỉ kết nối giữa các nơron trong các tầng khác nhau.
Người ta chia ra hai loại kiến trúc mạng chính:
- Tự kết hợp (autoassociative): là mạng có các nơron đầu vào cũng là các
nơron đầu ra. Mạng Hopfield là một kiểu mạng tự kết hợp.

Nhóm 11 – LTKHMT2K6


13

Giảng viên: Nguyễn Phương Nga


Hình 2: Mạng tự kết hợp
- Kết hợp khác kiểu (heteroassociative): là mạng có tập nơron đầu vào và
đầu ra riêng biệt. Perceptron, các mạng Perceptron nhiều tầng (MLP: Multi
Layer Perceptron), mạng Kohonen, … thuộc loại này.

Hình 3: Mạng kết hợp khác kiểu
Ngoài ra tùy thuộc vào mạng có các kết nối ngược (feedback connections)
từ các nơron đầu ra tới các nơron đầu vào hay không, người ta chia ra làm 2 loại
kiến trúc mạng.
- Kiến trúc truyền thẳng (feedforward architechture): là kiểu kiến trúc
mạng không có các kết nối ngược trở lại từ các nơron đầu ra về các nơron đầu
vào; mạng không lưu lại các giá trị output trước và các trạng thái kích hoạt của
nơron. Các mạng nơron truyền thẳng cho phép tín hiệu di chuyển theo một
đường duy nhất; từ đầu vào tới đầu ra, đầu ra của một tầng bất kì sẽ không ảnh
hưởng tới tầng đó. Các mạng kiểu Perceptron là mạng truyền thẳng.

Hình 4: Mạng truyền thẳng

Nhóm 11 – LTKHMT2K6

14

Giảng viên: Nguyễn Phương Nga



- Kiến trúc phản hồi (Feedback architecture): là kiểu kiến trúc mạng có
các kết nối từ nơron đầu ra tới nơron đầu vào. Mạng lưu lại các trạng thái trước
đó, và trạng thái tiếp theo không chỉ phụ thuộc vào các tín hiệu đầu vào mà còn
phụ thuộc vào các trạng thái trước đó của mạng. Mạng Hopfield thuộc loại này.

Hình 5: Mạng phản hồi
3. Perceptron
Perceptron là mạng nơron đơn giản nhất, nó chỉ gồm một nơron, nhận đầu
vào là vector có các thành phần là các số thực và đầu ra là một trong hai giá trị +1
hoặc -1.

Hình 6: Perceptron
Đầu ra của mạng được xác định như sau: mạng lấy tổng có trọng số các
thành phần của vector đầu vào, kết quả này cùng ngưỡng b được đưa vào hàm
truyền (Perceptron dùng hàm Hard-limit làm hàm truyền) và kết quả của hàm
truyền sẽ là đầu ra của mạng.
3.1 Luật học Perceptron:
Cho tập mẫu học với vecto vào X và 1 đầu ra lý tưởng tương ứng d(k).
Đối với nhiệm vụ phân lớp thì d(k) thường là 1 hoặc -1. Luật học:
- Bắt đầu với các trọng số ngẫu nhiên.
Nhóm 11 – LTKHMT2K6

15

Giảng viên: Nguyễn Phương Nga


- Lấy một vecto vào x từ tập huấn luyện.
- Nếu đầu ra tính toán yk # d(k) (tức là perceptron đáp ứng sai) thì điều

chỉnh trọng mọi trọng số Wi:
wi = c(dk – yk)xi.
3.2 Giải thuật học Perceptron:
- Với mỗi tập các mẫu học D={(x,d)}
x là vecto đầu vào
d là giá trị đầu ra mong muốn (-1 hoặc 1)
- Với một ví dụ học x được perceptron phân lớp chính xác, thì vecto trọng
số w không thay đổi.
- Nếu d=1 nhưng perceptron lại sinh ra -1 (Out=-1) thì w cần được thay
đổi sao cho giá trị New(w,x) tăng lên.
- Nếu d=-1 nhưng perceptron lại sinh ra 1 (Out=1) thì w cần được thay đổi
sao cho giá trị New(w,x) giảm đi.
- Perceptron sẽ điều chỉnh trọng số trên thành phần thứ I của vecto đầu
vào một lượng wi = c(d – f(Ʃwixi))xi.
f(Ʃwixi)) chính là giá trị đầu ra của perceptron, nó có giá trị +1 hoặc -1.
- Hiệu giữa d và f(Ʃw ixi)) là 0, 2 hoặc -2. Vì vậy với mỗi thành phần của
vecto đầu vào:
+ Nếu giá trị đầu ra mong muốn và giá trị đầu ra tính toán t bằng nhau thì
không làm gì cả.
+ Nếu giá trị đầu ra thực là -1 và 1 là giá trị mong muốn thì tăng trọng số
của đường thứ i lên (2cxi).
+ Nếu giá trị đầu ra thực là 1 và -1 là giá trị mong muốn thì giảm trọng số
của đường thứ i (-2cxi).
- c được gọi là hằng số thể hiện tốc độ học vì nếu c lớn thì các giá trị điều
chỉnh wi sẽ lớn, như vậy đẩy nhanh quá trình wi hội tụ về giá trị đúng của nó.
Perceptron cho phép phân loại chính xác trong trường hợp dữ liệu có thể
phân chia tuyến tính (các mẫu nằm trên hai mặt đối diện của một siêu phẳng).
Nó cũng phân loại đúng đầu ra các hàm AND, OR và các hàm có dạng đúng khi
n trong m đầu vào của nó đúng (n ≤ m). Nó không thể phân loại được đầu ra của
hàm XOR.

4. Mạng nhiều tầng truyền thẳng (MLP)

Nhóm 11 – LTKHMT2K6

16

Giảng viên: Nguyễn Phương Nga


Mô hình mạng nơron được sử dụng rộng rãi nhất là mô hình mạng nhiều
tầng truyền thẳng (MLP: Multi Layer Perceptron). Một mạng MLP tổng quát là
mạng có n (n≥2) tầng (thông thường tầng đầu vào không được tính đến): trong
đó gồm một tầng đầu ra (tầng thứ n) và (n-1) tầng ẩn.

Hình 7: Mạng MLP tổng quát
Kiến trúc của một mạng MLP tổng quát có thể mô tả như sau:
- Đầu vào là các vector (x1, x2, ..., xn) trong không gian n chiều, đầu ra là
các vector (y1, y2, ..., ym) trong không gian m chiều. Đối với các bài toán phân
loại, n chính là kích thước của mẫu đầu vào, m chính là số lớp cần phân loại.
Mỗi nơron thuộc tầng sau liên kết với tất cả các nơron thuộc tầng liền trước nó.
- Đầu ra của nơron tầng trước là đầu vào của nơron thuộc tầng liền sau nó.
Hoạt động của mạng MLP như sau: tại tầng đầu vào các nơron nhận tín hiệu
vào xử lý (tính tổng trọng số, gửi tới hàm truyền) rồi cho ra kết quả (là kết quả của
hàm truyền); kết quả này sẽ được truyền tới các nơron thuộc tầng ẩn thứ nhất; các
nơron tại đây tiếp nhận như là tín hiệu đầu vào, xử lý và gửi kết quả đến tầng ẩn
thứ 2…; quá trình tiếp tục cho đến khi các nơron thuộc tầng ra cho kết quả.
* Một số kết quả đã được chứng minh:
- Bất kì một hàm Boolean nào cũng có thể biểu diễn được bởi một mạng
MLP 2 tầng trong đó các nơron sử dụng hàm truyền sigmoid.
- Tất cả các hàm liên tục đều có thể xấp xỉ bởi một mạng MLP 2 tầng sử

dụng hàm truyền sigmoid cho các nơron tầng ẩn và hàm truyền tuyến tính cho
các nơron tầng ra với sai số nhỏ tùy ý.
- Mọi hàm bất kỳ đều có thể xấp xỉ bởi một mạng MLP 3 tầng sử dụng hàm
truyền sigmoid cho các nơron tầng ẩn và hàm truyền tuyến tính cho các nơron
tầng ra.
Nhóm 11 – LTKHMT2K6

17

Giảng viên: Nguyễn Phương Nga


Để khắc phục những khó khăn đối với những bài toán có mẫu phân
chia không tuyến tính, mạng nơron nhiều lớp được sử dụng. Có rất nhiều công
trình nghiên cứu vềmạng MLP và đã cho thấy nhiều ưu điểm của mạng này.
Mạng MLP là một giải pháp hữu hiệu cho việc mô hình hoá, đặc biệt với
quá trình phức tạp hoặc cơ chế chưa rõ ràng. Nó không đòi hỏi phải biết
trước dạng hoặc tham số. Mạng MLP là cơ sở cho thuật toán lan truyền
ngược và khả năng xấp xỉ liên tục.
5. Mạng Hopfield:
Mạng Hopfield là một dạng mạng nơron nhân tạo truyền ngược do John
Hopfield đưa ra.
N2>N1
N2>N3

N
1

N
2


N1>N2

N4>N1

N1>N4

N1>N3

N2>N4
N4>N2

N3>N1
N3>N2

N
3

N
4

N3>N4
N4>N3

Mạng Hopfield đóng vai trò như các hệ thống bộ nhớ có thể đánh địa chỉ
nội dung với các nút ngưỡng dạng nhị phân.
- Bảo đảm sẽ hội tụ về một cực tiểu cục bộ, nhưng không đảm bảo sẽ hội
tụ về một trong các mẫu được lưu trữ.
- Gồm 1 lớp đơn các nơron kết nối đầy đủ.
- Các nơron liên kết với mỗi nơron khác nhưng không tự kết nối.

6. Xây dựng mạng nơron:
6.1 Chuẩn bị dữ liệu
a. Kích thước mẫu
Không có nguyên tắc nào hướng dẫn kích thước mẫu phải là bao nhiêu đối
với một bài toán cho trước. Hai yếu tố quan trọng ảnh hưởng đến kích thước mẫu:
- Dạng hàm đích: khi hàm đích càng phức tạp thì kích thước mẫu cần tăng.

Nhóm 11 – LTKHMT2K6

18

Giảng viên: Nguyễn Phương Nga


- Nhiễu: khi dữ liệu bị nhiễu (thông tin sai hoặc thiếu thông tin) kích
thước mẫu cần tăng.
Đối với mạng truyền thẳng (feedforward), cho hàm đích có độ phức tạp
nhất định, kèm một lượng nhiễu nhất định thì độ chính xác của mô hình luôn có
một giới hạn nhất định. Có thể cần tập mẫu vô hạn để đạt đến giới hạn chính xác.
Nói cách khác độ chính xác của mô hình là hàm theo kích thước tập mẫu. Khi
kích thước mẫu tăng, độ chính xác sẽ được cải thiện - lúc đầu nhanh, nhưng chậm
dần khi tiến đến giới hạn.
Dạng tổng quát của mối liên hệ giữa sai số và kích thước mẫu như sau:

Hình 12: Mối liên hệ giữa sai số và kích thước mẫu
Trong thực hành thường gặp phải 2 vấn đề sau :
- Đối với hầu hết bài toán thực tế, mẫu bị ràng buộc chặt chẽ với dữ liệu
có sẵn. Ta thường không có được số lượng mẫu mong muốn.
- Kích thước mẫu cũng có thể bị giới hạn bởi bộ nhớ hoặc khả năng lưu
trữ của máy tính. Nếu tất cả các dữ liệu đồng thời được giữ trong bộ nhớ suốt

thời gian luyện, kích thước bộ nhớ máy tính sẽ bị chiếm dụng nghiêm trọng.
Nếu lưu trữ trên đĩa sẽ cho phép dùng mẫu lớn hơn nhưng thao tác đọc đĩa
từ thế hệ này sang thế hệ khác khiến cho tiến trình chậm đi rất nhiều.
Chú ý: việc tăng kích thước mẫu không làm tăng thời gian luyện. Những
tập mẫu lớn hơn sẽ yêu cầu ít thế hệ luyện hơn. Nếu ta tăng gấp đôi kích thước
của mẫu, mỗi thế hệ luyện sẽ tốn thời gian khoảng gấp đôi, nhưng số thế hệ cần

Nhóm 11 – LTKHMT2K6

19

Giảng viên: Nguyễn Phương Nga


luyện sẽ giảm đi một nửa. Điều này có nghĩa là kích thước mẫu (cũng có nghĩa
là độ chính xác của mô hình) không bị giới hạn bởi thời gian luyện.
Luật cơ bản là: Sử dụng mẫu lớn nhất có thể sao cho đủ khả năng lưu trữ
trong bộ nhớ trong (nếu lưu trữ đồng thời) hoặc trên đĩa từ (nếu đủ thời gian đọc
từ đĩa).
b. Mẫu con
Trong xây dựng mô hình cần chia tập mẫu thành 2 tập con: một để xây
dựng mô hình gọi là tập huấn luyện (training set), và một để kiểm nghiệm mô
hình gọi là tập kiểm tra (test set). Thông thường dùng 2/3 mẫu cho huấn luyện
và 1/3 cho kiểm tra. Điều này là để tránh tình trạng quá khớp (overfitting).
c. Sự phân tầng mẫu
Nếu ta tổ chức mẫu sao cho mỗi mẫu trong quần thể đều có cơ hội như
nhau thì tập mẫu được gọi là tập mẫu đại diện. Tuy nhiên khi ta xây dựng một
mạng để xác định xem một mẫu thuộc một lớp hay thuộc một loại nào thì điều ta
mong muốn là các lớp có cùng ảnh hưởng lên mạng, để đạt được điều này ta có
thể sử dụng mẫu phân tầng. Xét ví dụ sau[1]:

Giả sử ta xây dựng mô hình nhận dạng chữ cái viết tay tiếng Anh, và
nguồn dữ liệu của ta có 100.000 ký tự mà mỗi ký tự được kèm theo một mã cho
biết nó là chữ cái nào. Chữ cái xuất hiện thường xuyên nhất là e, nó xuất hiện
11.668 lần chiếm khoảng 12%; chữ cái xuất hiện ít nhất là chữ z, chỉ có 50 lần
chiếm 0,05%.
Trước hết do giới hạn của bộ nhớ máy tính, giả sử bộ nhớ chỉ có thể xử lý
được 1300 mẫu. Ta tạo hai dạng tập mẫu: tập mẫu đại diện và tập mẫu phân
tầng. Với tập mẫu đại diện, chữ e sẽ xuất hiện 152 lần (11,67% của 1300) trong
khi đó chữ z chỉ xuất hiện một lần (0,05% của 1300). Ngược lại ta có thể tạo tập
mẫu phân tầng để mỗi chữ có 50 mẫu. Ta thấy rằng nếu chỉ có thể dùng 1300
mẫu thì tập mẫu phân tầng sẽ tạo ra mô hình tốt hơn. Việc tăng số mẫu của z từ
1 lên 50 sẽ cải thiện rất nhiều độ chính xác của z, trong khi nếu giảm số mẫu của
e từ 152 xuống 50 sẽ chỉ giảm chút ít độ chính xác của e.
Bây giờ giả sử ta dùng máy tính khác có bộ nhớ đủ để xử lý một lượng
mẫu gấp 10 lần, như vậy số mẫu sẽ tăng lên 13000. Rõ ràng việc tăng kích thước
mẫu sẽ giúp cho mô hình chính xác hơn. Tuy nhiên ta không thể dùng tập mẫu
Nhóm 11 – LTKHMT2K6

20

Giảng viên: Nguyễn Phương Nga


phân tầng như trên nữa vì lúc này ta sẽ cần tới 500 mẫu cho chữ z trong khi ta
chỉ có 50 mẫu trong nguồn dữ liệu. Để giải quyết điều này ta tạo tập mẫu như
sau: tập mẫu gồm tất cả các chữ hiếm với số lần xuất hiện của nó và kèm thêm
thông tin về chữ có nhiều mẫu nhất. Chẳng hạn ta tạo tập mẫu có 50 mẫu của
chữ z (đó là tất cả) và 700 mẫu của chữ e (chữ mà ta có nhiều mẫu nhất).
Như vậy trong tập mẫu của ta, chữ e có nhiều hơn chữ z 14 lần. Nếu ta
muốn các chữ z cũng có nhiều ảnh hưởng như các chữ e, khi học chữ z ta cho

chúng trọng số lớn hơn 14 lần. Để làm được điều này ta có thể can thiệp chút ít
vào quá trình lan truyền ngược trên mạng. Khi mẫu học là chữ z, ta thêm vào 14
lần đạo hàm, nhưng khi mẫu là chữ e ta chỉ thêm vào 1 lần đạo hàm. Ở cuối thế
hệ, khi cập nhật các trọng số, mỗi chữ z sẽ có ảnh hưởng hơn mỗi chữ e là 14
lần, và tất cả các chữ z gộp lại sẽ có ảnh hưởng bằng tất cả các chữ e.
d. Chọn biến
Khi tạo mẫu cần chọn các biến sử dụng trong mô hình. Có 2 vấn đề cần quan
tâm:
- Cần tìm hiểu cách biến đổi thông tin sao cho có lợi cho mạng hơn: thông
tin trước khi đưa vào mạng cần được biến đổi ở dạng thích hợp nhất, để mạng
đạt được hiệu xuất cao nhất. Xét ví dụ về bài toán dự đoán một người có mắc
bệnh ung thư hay không. Khi đó ta có trường thông tin về người này là “ngày
tháng năm sinh”. Mạng sẽ đạt được hiệu quả cao hơn khi ta biến đổi trường
thông tin này sang thành “tuổi”. Thậm chí ta có thể quy tuổi về một trong các
giá trị: 1 = “trẻ em” (dưới 18), 2 = “thanh niên” (từ 18 đến dưới 30), 3 = “trung
niên” (từ 30 đến dưới 60) và 4 = “già” (từ 60 trở lên).
- Chọn trong số các biến đã được biến đổi, biến nào sẽ được đưa vào mô
hình: không phải bất kì thông tin nào về mẫu cũng có lợi cho mạng. Trong ví dụ
dự đoán người có bị ung thư hay không ở trên, những thuộc tính như “nghề
nghiệp”, “nơi sinh sống”, “tiểu sử gia đình”,… là những thông tin có ích. Tuy
nhiên những thông tin như “thu nhập”, “số con cái”,… là những thông tin không
cần thiết.
6.2 Xác định các tham số cho mạng:
a. Chọn hàm truyền
Không phải bất kỳ hàm truyền nào cũng cho kết quả như mong muốn. Để
trả lời cho câu hỏi «hàm truyền như thế nào được coi là tốt ? » là điều không hề
đơn giản. Có một số quy tắc khi chọn hàm truyền như sau:
Nhóm 11 – LTKHMT2K6

21


Giảng viên: Nguyễn Phương Nga


- Không dùng hàm truyền tuyến tính ở tầng ẩn. Vì nếu dùng hàm truyền
tuyến tính ở tầng ẩn thì sẽ làm mất vai trò của tầng ẩn đó: Xét tầng ẩn thứ i:
Tổng trọng số ni = wiai-1 + bi
ai = f(ni) = wf ni +bf (hàm truyền tuyến tính)
Khi đó: tổng trọng số tại tầng thứ (i + 1)
ni+1 = wi+1ai + bi+1
= wi+1[wf ni +bf] + bi+1
= wi+1 [wf(wiai-1 + bi) + bf] + bi+1
= Wai-1 + b
Như vậy ni+1 = Wai-1 + b, và tầng i đã không còn giá trị nữa.
- Chọn các hàm truyền sao cho kiến trúc mạng nơron là đối xứng (tức là
với đầu vào ngẫu nhiên thì đầu ra có phân bố đối xứng). Nếu một mạng nơron
không đối xứng thì giá trị đầu ra sẽ lệch sang một bên, không phân tán lên toàn bộ
miền giá trị của output. Điều này có thể làm cho mạng rơi vào trạng thái bão hòa,
không thoát ra được.
Trong thực tế người ta thường sử dụng các hàm truyền dạng – S. Một hàm
s(u) được gọi là hàm truyền dạng – S nếu nó thỏa mãn 3 tính chất sau:
– s(u) là hàm bị chặn: tức là tồn tại các hằng số C1 ≤ C2 sao cho: C1 ≤
s(u) ≤ C2 với mọi u.
– s(u) là hàm đơn điệu tăng: giá trị của s(u) luôn tăng khi u tăng. Do tính
chất thứ nhất, s(u) bị chặn, nên s(u) sẽ tiệm cận tới giá trị cận trên khi u dần tới
dương vô cùng, và tiệm cận giá trị cận dưới khi u dần tới âm vô cùng.
– s(u) là hàm khả vi: tức là s(u) liên tục và có đạo hàm trên toàn trục số.
Một hàm truyền dạng - S điển hình và được áp dụng rộng rãi là hàm
Sigmoid.
b. Xác định số nơron tầng ẩn

Câu hỏi chọn số lượng noron trong tầng ẩn của một mạng MLP thế nào là
khó, nó phụ thuộc vào bài toán cụ thể và vào kinh nghiệm của nhà thiết kế
mạng. Nếu tập dữ liệu huấn luyện được chia thành các nhóm với các đặc tính
tương tự nhau thì số lượng các nhóm này có thể được sử dụng để chọn số lượng
nơron ẩn. Trong trường hợp dữ liệu huấn luyện nằm rải rác và không chứa các
đặc tính chung, số lượng kết nối có thể gần bằng với số lượng các mẫu huấn
luyện để mạng có thể hội tụ. Có nhiều đề nghị cho việc chọn số lượng nơron
tầng ẩn h trong một mạng MLP. Chẳng hạn h phải thỏa mãn h>(p-1)/(n+2),
Nhóm 11 – LTKHMT2K6

22

Giảng viên: Nguyễn Phương Nga


trong đó p là số lượng mẫu huấn luyện và n là số lượng đầu vào của mạng. Càng
nhiều nút ẩn trong mạng, thì càng nhiều đặc tính của dữ liệu huấn luyện sẽ được
mạng nắm bắt, nhưng thời gian học sẽ càng tăng.
Một kinh nghiệm khác cho việc chọn số lượng nút ẩn là số lượng nút ẩn
bằng với số tối ưu các cụm mờ (fuzzy clusters). Phát biểu này đã được chứng
minh bằng thực nghiệm. Việc chọn số tầng ẩn cũng là một nhiệm vụ khó. Rất
nhiều bài toán đòi hỏi nhiều hơn một tầng ẩn để có thể giải quyết tốt.
Để tìm ra mô hình mạng nơron tốt nhất, Ishikawa and Moriyama (1995)
sử dụng học cấu trúc có quên (structural leanrning with forgetting), tức là trong
thời gian học cắt bỏ đi các liên kết có trọng số nhỏ. Sau khi huấn luyện, chỉ các
noron có đóng góp vào giải quyết bài toán mới được giữ lại, chúng sẽ tạo nên bộ
xương cho mô hình mạng nơron.
c. Khởi tạo trọng số:
Trọng số thường được khởi tạo bằng phương pháp thử sai, nó mang tính
chất kinh nghiệm và phụ thuộc vào từng bài toán. Việc định nghĩ thế nào là một

bộ trọng sốtốt cũng không hề đơn giản. Một số quy tắc khi khởi tạo trọng số:
- Khởi tạo trọng số sao cho mạng nơron thu được là cân bằng (với đầu vào
ngẫu nhiên thì sai số lan truyền ngược cho các ma trận trọng số là xấp xỉ bằng
nhau):
|ΔW1/W1| = |ΔW2/W2| = |ΔW3/W3|
Nếu mạng nơron không cân bằng thì quá trình thay đổi trọng số ở một số ma
trận là rất nhanh trong khi ở một số ma trận khác lại rất chậm, thậm chí không đáng
kể. Do đó để các ma trận này đạt tới giá trị tối ưu sẽ mất rất nhiều thời gian.
- Tạo trọng số sao cho giá trị kết xuất của các nút có giá trị trung gian. (0.5
nếu hàm truyền là hàm Sigmoid). Rõ ràng nếu ta không biết gì về giá trị kết xuất
thì giá trị ở giữa là hợp lý. Điều này cũng giúp ta tránh được các giá trị thái quá.
Thủ tục khởi tạo trọng số thường được áp dụng:
– B1: Khởi tạo các trọng số nút ẩn và các trọng số của các cung liên kết
trực tiếp giữa nút nhập và nút xuất, nếu có giá trị ngẫu nhiên, nhỏ, phân bố đều
quanh 0.
– B2: Khởi tạo một nửa số trọng số của nút xuất giá trị 1, và nửa kia giá trị -1.
6.3 Vấn đề lãng quên (catastrophic forgetting)
Nhóm 11 – LTKHMT2K6

23

Giảng viên: Nguyễn Phương Nga


Catastrophic forgetting là vấn đề một mạng quên những gì nó đã học được
trong các mẫu trước khi đang học các mẫu mới. Nguyên nhân là do sự thay đổi
các trọng số theo các mẫu mới, nếu như các mẫu cũ trong một thời gian không
được đưa vào huấn luyện. Để tránh điều này, ta thường thực hiện việc huấn
luyện luân phiên giữa mẫu cũ và mẫu mới.


Hình 13: Huấn luyện luân phiên trên hai tập mẫu
Xét ví dụ mạng được huấn luyện luân phiên với hai tập mẫu A và B (hình
13). Tại mỗi chu kỳ mạng sẽ học tập mẫu A sau đó học tập mẫu B. Khi bước
vào chu kỳ thứ hai, lỗi lúc bắt đầu học tập mẫu A cao hơn là ở chu kỳ thứ nhất
khi vừa học xong tập A. Điều này là do giữa hai lần học tập mẫu A mạng đã học
tập mẫu B. Tuy nhiên nếu xét trên cả chu kỳ thì lỗi huấn luyện sẽ giảm xuống.
Tức là lỗi lúc bước vào chu kỳ thứ ba sẽ nhỏ hơn lúc bước vào chu kỳ thứ hai.
Có nhiều phương pháp để huấn luyện dữ liệu mới. Chẳng hạn sau khi một
số mẫu mới được học, một vài mẫu cũ được chọn ngẫu nhiên trong số các mẫu
trước đó để đưa vào học. Vấn đề sẽ khó khăn hơn khi các mẫu cũ không còn
nữa. Khi đó các mẫu giả (pseudoexamples) có thể được sử dụng để lưu giữ các
trọng số càng gần các trọng số trước càng tốt.
6.4 Vấn đề quá khớp
a. Khái niệm quá khớp
Vấn đề quá khớp xảy ra khi mạng được luyện quá khớp (quá sát) với dữ
liệu huấn luyện (kể cả nhiễu), nên nó sẽ trả lời chính xác những gì đã được học,

Nhóm 11 – LTKHMT2K6

24

Giảng viên: Nguyễn Phương Nga


còn những gì không được học thì nó không quan tâm. Như vậy mạng sẽ không
có được khả năng tổng quát hóa.
Về mặt toán học, một giả thuyết (mô hình) h được gọi là quá khớp nếu tồn
tại giả thuyết h' sao cho:
1. Error train (h) < Error train (h')
2. Error test (h) > Error test (h')

b. Giải quyết quá khớp
Vấn đề quá khớp xảy ra vì mạng có năng lực quá lớn. Có 3 cách để hạn
chế bớt năng lực của mạng:
– Hạn chế số nút ẩn
– Ngăn không cho mạng sử dụng các trọng số lớn
– Giới hạn số bước luyện
Khi mạng được luyện, nó chuyển từ các hàm ánh xạ tương đối đơn giản đến
các hàm ánh xạ tương đối phức tạp. Nó sẽ đạt được một cấu hình tổng quát hóa tốt
nhất tại một điểm nào đó. Sau điểm đó mạng sẽ học để mô hình hóa nhiễu, những
gì mạng học được sẽ trở thành quá khớp. Nếu ta phát hiện ra thời điểm mạng đạt
đến trạng thái tốt nhất này, ta có thể ngừng tiến trình luyện trước khi hiện tượng
quá khớp xảy ra.
Ta biết rằng, chỉ có thể để đánh giá mức độ tổng quát hóa của mạng bằng
cách kiểm tra mạng trên các mẫu nó không được học. Ta thực hiện như sau: chia
mẫu thành tập mẫu huấn luyện và tập mẫu kiểm tra. Luyện mạng với tập mẫu
huấn luyện nhưng định kỳ dừng lại và đánh giá sai số trên tập mẫu kiểm tra. Khi
sai số trên tập mẫu kiểm tra tăng lên thì quá khớp đã bắt đầu và ta dừng tiến
trình luyện.
Chú ý rằng, nếu sai số kiểm tra không hề tăng lên, tức là mạng không có
đủ số nút ẩn để quá khớp. Khi đó mạng sẽ không có đủ số nút cần thiết để thực
hiện tốt nhất. Do vậy nếu hiện tượng quá khớp không hề xảy ra thì ta cần bắt
đầu lại nhưng sử dụng nhiều nút ẩn hơn.
7. Huấn luyện mạng nơron:
* Các kỹ thuật học:
Khái niệm: Học là quá trình thay đổi hành vi của các vật theo một cách
nào đó làm cho chúng có thể thực hiện tốt hơn trong tương lai.
Nhóm 11 – LTKHMT2K6

25


Giảng viên: Nguyễn Phương Nga


×