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

Tiểu luận môn Máy học và ứng dụng TÌM HIỂU MẠNG NEURAL VÀ ỨNG DỤNG NHẬN DẠNG CHỮ SỐ VIẾT TAY BẰNG GIẢI THUẬT LAN TRUYỀN NGƯỢC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (865.94 KB, 29 trang )

i


ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
________________


BÀI THU HOẠCH
MÁY HỌC
Đề Tài:
TÌM HIỂU MẠNG NEURAL VÀ ỨNG DỤNG NHẬN DẠNG CHỮ
SỐ VIẾT TAY BẰNG GIẢI THUẬT LAN TRUYỀN NGƢỢC

Giảng viên : PGS.TS. Vũ Thanh Nguyên
Học viên: Trịnh Đồng Thạch Trúc
MSHV: CH1301068
Lớp: Cao Học Khóa 8



TP.HCM, Tháng 3 năm 2014
BÀI THU HOẠCH MÔN MÁY HỌC
i
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
MỤC LỤC
GIỚI THIỆU 1
CHƢƠNG 1: TỔNG QUAN VỀ MÔ HÌNH MẠNG NEURAL 2
1. Giới thiệu về mạng neural nhân tạo 2
1.1. Mạng neural nhân tạo là gì? 2
1.2. Lịch sử phát triển mạng neural 2


2. Neural sinh học và neural nhân tạo 5
2.1. Neural sinh học 5
2.2. Neural nhân tạo 6
2.3. Mô hình mạng neural 8
2.3.1. Các kiểu mô hình mạng neural 9
2.3.2. Perceptron 11
2.3.3. Mạng nhiều tầng truyền thẳng (MLP) 12
CHƢƠNG 2: HUẤN LUYỆN VÀ XÂY DỰNG MẠNG NEURAL 13
2.1. Huấn luyện mạng Neural 13
2.1.1. Các phƣơng pháp học 13
2.1.2. Học có giám sát trong các mạng neural 14
2.1.3. Thuật toán lan truyền ngƣợc 15
2.2. Các vấn đề trong xây dựng mạng MLP 16
2.2.1. Chuẩn bị dữ liệu 17
2.2.2. Xác định các tham số cho mạng 18
2.2.3. Vấn đề lãng quên (catastrophic forgetting) 20
2.2.4 Vấn đề quá khớp 21
CHƢƠNG 3: CHƢƠNG TRÌNH NHẬN DẠNG SỐ VIẾT TAY 23
3.1 Giới thiệu bài toán 23
3.2. Giao diện chƣơng trình 23
BÀI THU HOẠCH MÔN MÁY HỌC
ii
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
3.3. Kết quả thử nghiệm 23
CHƢƠNG 4: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 25
TÀI LIỆU THAM KHẢO 26

BÀI THU HOẠCH MÔN MÁY HỌC
1
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC

GIỚI THIỆU
Bên cạnh việc nỗ lực đƣa các ứng dụng vào thực tế cuộc sống, các chuyên gia
hàng đầu về công nghệ thông tin vẫn không quên đi giấc mơ, đó là tạo ra một máy tính
tƣơng đƣơng với bộ não con ngƣời.
Một trong những tiếp cận đầu tiên mà chúng ta có thể làm quen là mạng neural
nhân tạo. Mạng neural nhân tạo là một mô phỏng xử lý thông tin, đƣợc nghiên cứu ra
từ hệ thống thần kinh của sinh vật, giống nhƣ bộ não để xử lý thông tin. Nó bao gồm
số lƣợng lớn các mối gắn kết cấp cao để xử lý các yếu tố làm việc trong mối liên hệ
giải quyết vấn đề rõ ràng. ANNs giống nhƣ con ngƣời, đƣợc học bởi kinh nghiệm, lƣu
những kinh nghiệm hiểu biết và sử dụng trong những tình huống phù hợp.
Đầu tiên ANN đƣợc giới thiệu năm 1943 bởi nhà thần kinh học Warren
McCulloch và nhà logic học Walter Pits. Nhƣng với những kỹ thuật trong thời gian
này chƣa cho phép họ nghiên cứu đƣợc nhiều. Những năm gần đây mô phỏng ANN
xuất hiện và phát triển. Các nghiên cứu ứng dụng đã đƣợc thực hiện trong các ngành:
điện, điện tử, kỹ thuật chế tạo, y học, quân sự, kinh tế…
Đề tài này sẽ giới thiệu tóm tắt lý thuyết mạng neural nhân tạo một cách cơ bản
nhất. Bên cạnh đó, đề tài này cũng giới thiệu một chƣơng trình ứng dụng giúp nhận
dạng số viết tay.
Chỉ là một tiếp cận rất nhỏ bé và trong một phạm vi hẹp, nhƣng đề tài mong
muốn mang lại những hiểu biết đơn giản về một mạng neural hoạt động. Mong rằng
đề tài này sẽ luôn đƣợc quan tâm và phát triển ngày càng hiệu quả.

BÀI THU HOẠCH MÔN MÁY HỌC
2
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
CHƢƠNG 1: TỔNG QUAN VỀ MÔ HÌNH MẠNG NEURAL
1. Giới thiệu về mạng neural nhân tạo
1.1. Mạng neural nhân tạo là gì?
Định nghĩa: Mạng neural nhân tạo, Artificial Neural Network (ANN) gọi tắt là
mạng neural, neural network, 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 các hệ neural 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 neural) 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 neural 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 neural.
1.2. Lịch sử phát triển mạng neural
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 neural 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 neural 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 neural hoạt động. Họ cũng đã tiến hành xây dựng một mạng
neural đơn giản bằng các mạch điện. Các neural 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 neural nhân tạo sẽ trở lê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
BÀI THU HOẠCH MÔN MÁY HỌC
3
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
nghiên cứu của IBM đã có những nỗ lực đầu tiên để mô phỏng một mạng neural.
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ề neural 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 neural. 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 neural 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 neural đơ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ề neural Frank Rosenblatt cũng bắt đầu nghiên cứu
về Perceptron. Sau thời gian nghiên cứu này Perceptron đã đƣợc cài đặt trong phần
cứng máy tính và đƣợc xem nhƣ là mạng neural 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 neural
đầ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 neural
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
BÀI THU HOẠCH MÔN MÁY HỌC
4
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
trở lê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 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 neural. 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 neuron. 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 neural 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 neuron.
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 neural đã đƣợ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 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 neuron.
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
neuron ứ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 neuron 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 neural để 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 neural 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
BÀI THU HOẠCH MÔN MÁY HỌC
5
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
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),…
2. Neural sinh học và neural nhân tạo
2.1. Neural sinh học
Qua quá trình nghiên cứu về bộ não, ngƣời ta thấy rằng: bộ não con ngƣời bao
gồm khoảng 10
11
neural tham gia vào khoảng 10
15
kết nối trên các đƣờng truyền. Mỗi
đƣờng truyền này dài khoảng hơn một mét. Các neural có nhiều đặc điểm chung với
các tế bào khác trong cơ thể, ngoài ra chúng còn có những khả năng mà các tế bào
khác không có đƣợc, đó là khả năng nhận, xử lý và truyền các tín hiệu điện hóa trên
các đƣờng mòn neural, các con đƣờng này tạo nên hệ thống giao tiếp của bộ não.

Hình 1: Cấu trúc của một neural sinh học điển hình
Mỗi neural sinh học có 3 thành phần cơ bản:
• Các nhánh vào hình cây ( dendrites)
• Thân tế bào (cell body)
• Sợi trục ra (axon)
Các nhánh hình cây truyền tín hiệu vào đến thân tế bào. Thân tế bào tổng hợp
và xử lý cho tín hiệu đi ra. Sợi trục truyền tín hiệu ra từ thân tế bào này sang neural
BÀI THU HOẠCH MÔN MÁY HỌC
6
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
khác. Điểm liên kết giữa sợi trục của neural này với nhánh hình cây của neural khác
gọi là synapse. Liên kết giữa các neural và độ nhạy của mỗi synapse đƣợc xác định bởi
quá trình hóa học phức tạp. Một số cấu trúc của neural đƣợc xác định trƣớc lúc sinh ra.
Một số cấu trúc đƣợc phát triển thông qua quá trình học. Trong cuộc đời cá thể, một số
liên kết mới đƣợc hình thành, một số khác bị hủy bỏ.
Nhƣ vậy neural 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 neural khác.
Dựa trên những hiểu biết về neural sinh học, con ngƣời xây dựng neural nhân
tạo với hy vọng tạo nên một mô hình có sức mạnh nhƣ bộ não.
2.2. Neural nhân tạo
Một neural 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
neural. Cấu trúc của một neural đƣợc mô tả trên hình dƣới.

Hình 2: Neural nhân tạo
Các thành phần cơ bản của một neural 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 neural, 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 neural k
BÀI THU HOẠCH MÔN MÁY HỌC
7
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
thƣờng đƣợc kí hiệu là w
kj
. 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.
♦ Bộ tổng (Summing function): 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à một độ lệch - bias): 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 neural. 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 neural đƣợ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. Một số hàm truyền thƣờng sử dụng trong các mô hình mạng neural đƣợc đƣa ra
trong bảng 1 .
♦ Đầu ra: Là tín hiệu đầu ra của một neural, với mỗi neural sẽ có tối đa là một
đầu ra.
Xét về mặt toán học, cấu trúc của một neural k, đƣợc mô tả bằng cặp biểu thức
sau: [cong thuc] trong đó: x
1
, x
2
, , x
p
: là các tín hiệu vào; (w
k1
, w
k2, ,
w
kp)
là các trọng
số liên kết của neural thứ k; u
k
là hàm tổng; b
k
là một ngƣỡng; f là hàm truyền và y
k

tín hiệu đầu ra của neural.
Nhƣ vậy tƣơng tự nhƣ neural sinh học, neural 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).
Bảng 1: Một số hàm truyền thông dụng
Hàm truyền
Đồ thị
Định nghĩa
BÀI THU HOẠCH MÔN MÁY HỌC
8
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
Symmetrical Hard
Limit (hardlims)


Linear (purelin)


Saturating Linear
(satlin)


Log-Sigmoid
(logsig)


2.3. Mô hình mạng neural
Mặc dù mỗi neural đơ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 neural chủ yếu có đƣợc nhờ sự kết hợp các neural
trong một kiến trúc thống nhất. Một mạng neural là một mô hình tính toán đƣợc xác
định qua các tham số: kiểu neural (nhƣ là các nút nếu ta coi cả mạng neural là một đồ
thị), kiến trúc kết nối (sự tổ chức kết nối giữa các neural) và thuật toán học (thuật toán
dùng để học cho mạng).

Về bản chất một mạng neural 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
BÀI THU HOẠCH MÔN MÁY HỌC
9
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
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) = s(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.
2.3.1. Các kiểu mô hình mạng neural
Cách thức kết nối các neural trong mạng xác định kiến trúc (topology) của
mạng. Các neural trong mạng có thể kết nối đầy đủ (fully connected) tức là mỗi neural
đều đƣợc kết nối với tất cả các neural 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 neural 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 neural đầu vào cũng là các
neural đầu ra. Mạng Hopfield là một kiểu mạng tự kết hợp.

Hình 3: Mạng tự kết hợp
♦ Kết hợp khác kiểu (heteroassociative): là mạng có tập neural đầu vào và đầu
ra riêng biệt. Perceptron, các mạng Perceptron nhiều tầng (MLP: MultiLayer
Perceptron), mạng Kohonen, … thuộc loại này.
BÀI THU HOẠCH MÔN MÁY HỌC
10
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC

Hình 4: 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 neural đầu ra tới các neural đầ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 neural đầu ra về các neural đầ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 neural. Các mạng
neural 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 5: Mạng truyền thẳng
♦ 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ừ neural đầu ra tới neural đầ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.
BÀI THU HOẠCH MÔN MÁY HỌC
11
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC

Hình 6: Mạng phản hồi
2.3.2. Perceptron
Perceptron là mạng neural đơn giản nhất, nó chỉ gồm một neural, 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 7: 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.
Hoạt động của Perceptron có thể đƣợc mô tả bởi cặp công thức sau:
[Cong thuc]
và y = f(u - b) = Hardlimit(u - b); y nhận giá trị +1 nếu u - b>0, ngƣợc lại y
nhận giá trị -1.

BÀI THU HOẠCH MÔN MÁY HỌC
12
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
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.
2.3.3. Mạng nhiều tầng truyền thẳng (MLP)
Mô hình mạng neural đƣợ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 8: 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, , xp) trong không gian p chiều, đầu ra là các
vector (y1, y2, , yq) trong không gian q chiều. Đối với các bài toán phân loại, p
chính là kích thƣớc của mẫu đầu vào, q chính là số lớp cần phân loại. Xét ví dụ trong
bài toán nhận dạng chữ số: với mỗi mẫu ta lƣu tọa độ (x,y) của 8 điểm trên chữ số đó,
và nhiệm vụ của mạng là phân loại các mẫu này vào một trong 10 lớp tƣơng ứng với
10 chữ số 0, 1, …, 9. Khi đó p là kích thƣớc mẫu và bằng 8 x 2 = 16; q là số lớp và
bằng 10.


BÀI THU HOẠCH MÔN MÁY HỌC
13
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
CHƢƠNG 2: HUẤN LUYỆN VÀ XÂY DỰNG MẠNG NEURAL
2.1. Huấn luyện mạng Neural
2.1.1. Các phƣơng pháp 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.
Một mạng neural đƣợc huyấn luyện sao cho với một tập các vector đầu vào X,
mạng có khả năng tạo ra tập các vector đầu ra mong muốn Y của nó. Tập X đƣợc sử
dụng cho huấn luyện mạng đƣợc gọi là tập huấn luyện (training set). Các phần tử x
thuộc X đƣợc gọi là các mẫu huấn luyện (training example). Quá trình huấn luyện bản
chất là sự thay đổi các trọng số liên kết của mạng. Trong quá trình này, các trọng số
của mạng sẽ hội tụ dần tới các giá trị sao cho với mỗi vector đầu vào x từ tập huấn
luyện, mạng sẽ cho ra vector đầu ra y nhƣ mong muốn
Có ba phƣơng pháp học phổ biến 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):
♦ Học có giám sát: Là quá trình học có sự tham gia giám sát của một “thầy
giáo”. Cũng giống nhƣ việc ta dạy một em nhỏ các chữ cái. Ta đƣa ra một chữ “a” và
bảo với em đó rằng đây là chữ “a”. Việc này đƣợc thực hiện trên tất cả các mẫu chữ
cái. Sau đó khi kiểm tra ta sẽ đƣa ra một chữ cái bất kì (có thể viết hơi khác đi) và hỏi
em đó đây là chữ gì?
Với học có giám sát, tập mẫu huấn luyện đƣợc cho dƣới dạng D = {(x,t) | (x,t) ∈
[IR
N
x R
K
]}, trong đó: x = (x
1
, x
2
, , x
N
) là vector đặc trƣng N chiều của mẫu huấn
luyện và t = (t
1

, t
2
, , t
K
) là vector mục tiêu K chiều tƣơng ứng, nhiệm vụ của thuật
toán là phải thiết lập đƣợc một cách tính toán trên mạng nhƣ thế nào đó để sao cho với
mỗi vector đặc trƣng đầu vào thì sai số giữa giá trị đầu ra thực sự của mạng và giá trị
mục tiêu tƣơng ứng là nhỏ nhất. Chẳng hạn mạng có thể học để xấp xỉ một hàm t =
f(x) biểu diễn mối quan hệ trên tập các mẫu huấn luyện (x, t).
BÀI THU HOẠCH MÔN MÁY HỌC
14
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
Nhƣ vậy với học có giám sát, số lớp cần phân loại đã đƣợc biết trƣớc. Nhiệm vụ
của thuật toán là phải xác định đƣợc một cách thức phân lớp sao cho với mỗi vector
đầu vào sẽ đƣợc phân loại chính xác vào lớp của nó.
♦ Học không giám sát: Là việc học không cần có bất kỳ một sự giám sát nào.
Trong bài toán học không giám sát, tập dữ liệu huấn luyện đƣợc cho dƣới dạng:
D = {(x
1
, x
2
, , x
N
)}, với (x
1
, x
2
, , x
N
) là vector đặc trƣng của mẫu huấn luyện.

Nhiệm vụ của thuật toán là phải phân chia tập dữ liệu D thành các nhóm con, mỗi
nhóm chứa các vector đầu vào có đặc trƣng giống nhau.
Nhƣ vậy với học không giám sát, số lớp phân loại chƣa đƣợc biết trƣớc, và tùy
theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các lớp phân loại
khác nhau.
♦ Học tăng cƣờng: đôi khi còn đƣợc gọi là học thƣởng-phạt (reward-penalty
learning), là sự tổ hợp của cả hai mô hình trên. Phƣơng pháp này cụ thể nhƣ sau: với
vector đầu vào, quan sát vector đầu ra do mạng tính đƣợc. Nếu kết quả đƣợc xem là
“tốt” thì mạng sẽ đƣợc thƣởng theo nghĩa tăng các trọng số kết nối lên; ngƣợc lại
mạng sẽ bị phạt, các trọng số kết nối không thích hợp sẽ đƣợc giảm xuống. Do đó học
tăng cƣờng là học theo nhà phê bình (critic), ngƣợc với học có giám sát là học theo
thầy giáo (teacher).
2.1.2. Học có giám sát trong các mạng neural
Học có giám sát có thể đƣợc xem nhƣ việc xấp xỉ một ánh xạ: X→ Y, trong đó
X là tập các vấn đề và Y là tập các lời giải tƣơng ứng cho vấn đề đó. Các mẫu (x, y)
với x = (x
1
, x
2
, . . ., x
n
) ∈ X, y = (y
l
, y
2
, . . ., y
m
) ∈ Y đƣợc cho trƣớc. Học có giám sát
trong các mạng neural thƣờng đƣợc thực hiện theo các bƣớc sau:
♦ B1: Xây dựng cấu trúc thích hợp cho mạng neural, chẳng hạn có (n + 1)

neural vào (n neural cho biến vào và 1 neural cho ngƣỡng x
0
), m neural đầu ra, và khởi
tạo các trọng số liên kết của mạng.
♦ B2: Đƣa một vector x trong tập mẫu huấn luyện X vào mạng
♦ B3: Tính vector đầu ra o của mạng
BÀI THU HOẠCH MÔN MÁY HỌC
15
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
♦ B4: So sánh vector đầu ra mong muốn y (là kết quả đƣợc cho trong tập huấn
luyện) với vector đầu ra o do mạng tạo ra; nếu có thể thì đánh giá lỗi.
♦ B5: Hiệu chỉnh các trọng số liên kết theo một cách nào đó sao cho ở lần tiếp
theo khi đƣa vector x vào mạng, vector đầu ra o sẽ giống với y hơn.
♦ B6: Nếu cần, lặp lại các bƣớc từ 2 đến 5 cho tới khi mạng đạt tới trạng thái
hội tụ. Việc đánh giá lỗi có thể thực hiện theo nhiều cách, cách dùng nhiều nhất là sử
dụng lỗi tức thời: Err = (o - y), hoặc Err = |o - y|; lỗi trung bình bình phƣơng (MSE:
mean-square error): Err = (o- y)
2
/2;
Có hai loại lỗi trong đánh giá một mạng neural. Thứ nhất, gọi là lỗi rõ ràng
(apparent error), đánh giá khả năng xấp xỉ các mẫu huấn luyện của một mạng đã đƣợc
huấn luyện. Thứ hai, gọi là lỗi kiểm tra (test error), đánh giá khả năng tổng quá hóa
của một mạng đã đƣợc huấn luyện, tức khả năng phản ứng với các vector đầu vào mới.
Để đánh giá lỗi kiểm tra chúng ta phải biết đầu ra mong muốn cho các mẫu kiểm tra.
Thuật toán tổng quát ở trên cho học có giám sát trong các mạng neural có nhiều
cài đặt khác nhau, sự khác nhau chủ yếu là cách các trọng số liên kết đƣợc thay đổi
trong suốt thời gian học. Trong đó tiêu biểu nhất là thuật toán lan truyền ngƣợc.
2.1.3. Thuật toán lan truyền ngƣợc
Ta sử dụng một số kí hiệu sau:
 j: neural thứ j (hay nút thứ j)

 X
j
: vector đầu vào của nút thứ j
 W
j
: vector trọng số của nút thứ j
 x
ji
: đầu vào của nút thứ j từ nút thứ i
 w
ji
: trọng số trên x
ji

 b
j
: ngƣỡng tại nút thứ j
 o
j
: đầu ra của nút thứ j
 t
j
: đầu ra mong muốn của nút thứ j
BÀI THU HOẠCH MÔN MÁY HỌC
16
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
 Downstream(j): Tập tất cả các nút nhận đầu ra của nút thứ j
làm một giá trị đầu vào.
 η: tốc độ học
 f: hàm truyền với f(x) = 1 / (1 + e

-x
)
Thuật toán lan truyền ngƣợc đƣợc mô tả nhƣ sau:
Input:
- Mạng feed-forward với n
i
đầu vào, n
h
nút ẩn và n
o
đầu ra.
- Hệ số học η
- Tập dữ liệu huấn luyện D = {là vector đầu vào, là vector đầu ra mong
muốn}.
Output: Các vector trọng số
Thuật toán:
Bƣớc 1: Khởi tạo trọng số bởi các giá trị ngẫu nhiên nhỏ.
Bƣớc 2: Lặp lại cho tới khi thỏa mãn điều kiện kết thúc.
Với mỗi mẫu, thực hiện các bƣớc sau:
2.1 Tính đầu ra o
j
cho mỗi nút j:
o
j
= f(d – b
j
) với d = Σx
ji
w
ji


2.2 Với mỗi nút k thuộc tầng ra, tính δ
k
theo công thức:
δ
k
= (t
k
– o
k
)(1 – o
k
)o
k

2.3 Với mỗi nút h thuộc tầng ẩn, tính δ
h
theo công thức:
δ
h
= o
h
(1 – o
h
) Σδ
k
w
kh
với k ∈ Downstream(j)
2.4 Cập nhật: w

ji
= w
ji
+ Δw
ji

Trong đó Δw
ji
= ηδ
k
x
ji

2.2. Các vấn đề trong xây dựng mạng MLP
BÀI THU HOẠCH MÔN MÁY HỌC
17
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
2.2.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.
♦ 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 9: 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.
BÀI THU HOẠCH MÔN MÁY HỌC
18
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
♦ 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.
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.
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.
♦ 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.
2.2.2. Xác định các tham số cho mạng
BÀI THU HOẠCH MÔN MÁY HỌC
19
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
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:
♦ 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 = w
i
a
i-1
+ b
i

a
i
= f(n
i
) = w
f
n
i
+b

f
(hàm truyền tuyến tính)
Khi đó: tổng trọng số tại tầng thứ (i + 1)
n
i+1
= w
i+1
a
i
+ b
i
+1
= w
i+1
[w
f
n
i
+b
f
] + b
i
+1
= w
i+1
[w
f
(w
i
a

i-1
+ b
i
) + b
f
] + b
i
+1
= Wa
i-1
+ b
Nhƣ vậy n
i+1
= Wa
i-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 neural 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 neural 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.
b. Xác định số neural 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 neural ẩ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 neural tầng ẩn h trong một mạng MLP. Chẳng hạn h phải
BÀI THU HOẠCH MÔN MÁY HỌC

20
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
thỏa mãn h>(p-1)/(n+2), 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)[8]. 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.
c. Khởi tạo trọng
Trọng 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 tốt
cũng không hề đơn giản. Một số quy tắc khi khởi tạo trọng:
♦ Khởi tạo trọng sao cho mạng neural 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):
|ΔW
1
/W
1
| = |ΔW
2
/W
2
| = |ΔW
3
/W
3
|
Nếu mạng neural 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 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 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.
2.2.3. Vấn đề lãng quên (catastrophic forgetting)
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
BÀI THU HOẠCH MÔN MÁY HỌC
21
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚ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 10: 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 2-
10). 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.
2.2.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, 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ÀI THU HOẠCH MÔN MÁY HỌC
22
CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC
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.

×