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

Tiểu luận môn Máy học và ứng dụng MẠNG NƠRON & ỨNG DỤNG TRONG VIỆC NHẬN DẠNG CHỮ VIẾT

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 (578.95 KB, 37 trang )

)(
iii
netfy
θ
−=
j
n
j
iji
xwnet

=
=
1
i
θ
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HCM
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÁO CÁO THU HOẠCH MÔN HỌC
MÁY HỌC & ỨNG DỤNG
ĐỀ TÀI
MẠNG NƠRON & ỨNG DỤNG TRONG VIỆC NHẬN
DẠNG CHỮ VIẾT

TP.HCM 03/ 2014
DANH MỤC HÌNH ẢNH
Số hiệu
hình
Tên hình Trang


Hình
Cấu trúc của một nơron sinh học điển hình
5
Hình
Nơron nhân tạo
6
Hình
Đồ thị các dạng hàm truyền
8
Hình
Mạng tự kết hợp
9
HVTH: Nhan Thanh Nhã
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
Hình 5
Mạng kết hợp khác kiểu
9
Hình 6
Mạng truyền thẳng
10
Hình 7
Mạng phản hồi
10
Hình 8
Perceptron
10
Hình 9
Mạng MLP tổng quát
11
Hình 10

Mạng nơron ba lớp
13
Hình 11 Mạng truyền thẳng một lớp 14
Hình 12 Mạng truyền thẳng nhiều lớp 14
Hình 13 Mạng hồi tiếp một lớp 15
Hình 14 Mạng neural hồi quy 15
Hình 15
Cấu trúc của mạng Hopfield
16
Hình 16
Cấu trúc của BAM
17
Hình 17
Học có giám sát
19
Hình 18
Học không có giám sát
21
Hình 19
Sơ đồ cấu trúc chung của quá trình học
22
Hình 20
Mạng 3 lớp lan truyền ngược
23
Hình 21
Mối liên hệ giữa sai số và kích thước mẫu
29
Hình 22
Huấn luyện luân phiên trên hai tập mẫu
33

HVTH: Nhan Thanh Nhã Page 2
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
MỤC LỤC
HVTH: Nhan Thanh Nhã
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
LỜI NÓI ĐẦU
Cùng với sự phát triển nhanh chóng, vượt bậc của ngành công nghiệp máy tính, nhu cầu của
người dùng đối với máy tính ngày càng cao, không chỉ giải quyết các vấn đề lưu trữ, tính
toán bình thường, người dùng còn mong đợi máy tính có khả năng thông minh hơn, có thể
giải quyết vấn đề như con người. Do đó môn máy học ra đời. Máy học đóng vai trò hết sức
quan trọng trong việc phát triển Công nghệ thông tin, nâng cao sự hữu dụng của máy tính,
giúp con người gần gũi với máy tính hơn, góp phần thúc đẩy các ngành khoa học khác phát
triển. Nhiều chương trình thông minh có khả năng giải quyết những vấn đề
khó khăn của con người đã ra đời và đóng góp những thành tựu to lớn.
Những chương trình này được ứng dụng nhiều công nghệ tri thức tiên tiến.
Một trong những công nghệ đó là mạng nơron nhân tạo. Mạng noron nhân tạo là
một sản phẩm phần mềm ra đời nhằm kết hợp khả năng xử lý thông tin cực nhanh của máy
tính với khả năng xử lý thông tin song song gần như cùng lúc của bộ não con người. Từ đó
đã tạo nên sự kỳ diệu cho máy tính.
Trong phạm vi của bài báo cáo này, em xin trình bày Mô hình mạng nơron nhân tạo, phân
tích cài đặt thuật toán lan truyền ngược.
Chân thành cám ơn PGS.TS Vũ Thanh Nguyên đã tận tình giảng dạy, cung cấp rất đầy đủ
tài liệu của môn học. Giúp chúng em tiếp thu kiến thức về các nguyên tắc, phương pháp
sáng tạo để không những vận dụng tốt trong bài thu hoạch mà còn giúp ích cho chúng em
giải quyết các bài toán trong đời sống cũng như trong nghiên cứu luận văn sau này.
Với lượng thời gian có giới hạn và năng lực còn hạn chế nên không tránh khỏi những sai
sót, em mong nhận được sự góp ý hơn nữa của Thầy và các bạn.
Nội dung báo cáo gồm các phần chính: CHƯƠNG 1: TỔNG QUAN VỀ MÔ HÌNH MẠNG
NƠRON, CHƯƠNG 2: HUẤN LUYỆN VÀ XÂY DỰNG MẠNG NƠRON, CHƯƠNG 3: THUẬT
TOÁN LAN TRUYỀN NGƯỢC, CHƯƠNG 4: CHƯƠNG TRÌNH ỨNG DỤNG MẠNG NƠRON


HVTH: Nhan Thanh Nhã Page 4
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
CHƯƠNG 1: TỔNG QUAN VỀ MÔ HÌNH MẠNG NƠRON
1.1 Giới thiệu về mạng nơron nhân tạo
1.1.1 Mạng nơron nhân tạo là gì?
Định nghĩa: Mạng nơron nhân tạo, Artificial Nơron Network (ANN) gọi tắt là mạng
nơron, nơron 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ệ 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.
1.1.2 Lịch sử phát triển 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ở 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 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 đã đượ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
HVTH: Nhan Thanh Nhã Page 5
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
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ở 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 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 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 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 neuron.
1.1.3 . So sánh mạng nơron với máy tính truyền thống
Các mạng nơron có cách tiếp cận khác trong giải quyết vấn đề so với máy tính truyền
thống. Các máy tính truyền thống sử dụng cách tiếp cận theo hướng giải thuật, tức là máy
tính thực hiện một tập các chỉ lệnh để giải quyết một vấn đề. Vấn đề được giải quyết phải
được biết và phát biểu dưới dạng một tập chỉ lệnh không nhập nhằng. Những chỉ lệnh này
sau đó phải được chuyển sang một chương trình ngôn ngữ bậc cao và chuyển sang mã máy
để máy tính có thể hiểu được.
Trừ khi các bước cụ thể mà máy tính cần tuân theo được chỉ ra rõ ràng, máy tính sẽ
không làm được gì cả. Điều đó giới hạn khả năng của các máy tính truyền thống ở phạm vi
giải quyết các vấn đề mà chúng ta đã hiểu và biết chính xác cách thực hiện. Các máy tính sẽ
trở lên hữu ích hơn nếu chúng có thể thực hiện được những việc mà bản thân con người
không biết chính xác là phải làm như thế nào.
Các mạng nơron xử lý thông tin theo cách thức giống như bộ não con người. Mạng
được tạo nên từ một số lượng lớn các phần tử xử lý được kết nối với nhau làm việc song
song để giải quyết một vấn đề cụ thể. Các mạng nơron học theo mô hình, chúng không thể
được lập trình để thực hiện một nhiệm vụ cụ thể. Các mẫu phải được chọn lựa cẩn thận nếu
HVTH: Nhan Thanh Nhã Page 6
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
không sẽ rất mất thời gian, thậm chí mạng sẽ hoạt động không đúng. Điều hạn chế này là
bởi vì mạng tự tìm ra cách giải quyết vấn đề, thao tác của nó không thể dự đoán được.
Các mạng nơron và các máy tính truyền thống không cạnh tranh nhau mà bổ sung cho nhau.

Có những nhiệm vụ thích hợp hơn với máy tính truyền thống, ngược lại có những nhiệm vụ
lại thích hợp hơn với các mạng nơron. Thậm chí rất nhiều nhiệm vụ đòi hỏi các hệ thống sử
dụng tổ hợp cả hai cách tiếp cận để thực hiện được hiệu quả cao nhất. (thông thường một
máy tính truyền thống được sử dụng để giám sát mạng nơron)
1.2 Nơron sinh học và nơron nhân tạo
1.2.1 Nơron 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
nơron 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 nơron 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 nơron,
các con đường này tạo nên hệ thống giao tiếp của bộ não.
Hình : Cấu trúc của một nơron sinh học điển hình
Mỗi nơron 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 nơron khác. Điểm liên
kết giữa sợi trục của nơron này với nhánh hình cây của nơron khác gọi là synapse. Liên kết
giữa các nơron 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 nơron được xác định trước lúc sinh ra. Một số cấu trúc được phát triển
HVTH: Nhan Thanh Nhã Page 7
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyê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 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.
Dựa trên những hiểu biết về nơron sinh học, con người xây dựng nơron 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.
1.2.2 Nơron nhân tạo
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 : 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 k 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 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. Một số hàm truyền
thường sử dụng trong các mô hình mạng nơron được đưa ra trong bảng 1 .
♦ Đầu ra: 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.
Xét về mặt toán học, cấu trúc của một nơron k, được mô tả bằng cặp biểu thức sau:

HVTH: Nhan Thanh Nhã Page 8
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
[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
nơron 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
là tín hiệu đầu ra của
nơron.
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).
Về mặt toán học, cấu trúc của một neuron i được mô tả bằng cặp biểu thức sau:
)(
iii

netfy
θ
−=

j
n
j
iji
xwnet

=
=
1
trong đó: x
1
, x
2
, …x
m
là các tín hiệu đầu vào, còn w
i1
, w
i2
,…,w
im
là các trọng số kết nối của
neuron thứ i, net
i
là hàm tổng, f là hàm truyền,
i

θ
là một ngưỡng, y
i
là tín hiệu đầu ra của
neuron.
Hàm truyền có thể có các dạng sau:
- Hàm bước



<

=
00
01
xkhi
xkhi
y
(1)
- Hàm giới hạn chặt (hay còn gọi là hàm bước)



<−

==
01
01
)sgn(
xkhi

xkhi
xy
(2)
- Hàm bậc thang





<
≤≤
>
==
00
10
11
)sgn(
xkhi
xkhix
xkhi
xy
(3)
- Hàm ngưỡng đơn cực
x
λ

+
=
e
y

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

+
=
− x
λ
e
y
với λ>0 (5)
Đồ thị các dạng hàm truyền được biểu diễn như sau:
HVTH: Nhan Thanh Nhã Page 9
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
Hình 3: Đồ thị các dạng hàm truyền
1.3 Mô hình mạng nơron
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).
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) = 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.

1.3.1. Các kiểu mô hình mạng nơron
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.
Hình 4: Mạng tự kết hợp
HVTH: Nhan Thanh Nhã Page 10
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
♦ 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: MultiLayer Perceptron), mạng
Kohonen, … thuộc loại này.
Hình 5: 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 6: 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ừ
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.
HVTH: Nhan Thanh Nhã Page 11
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
Hình 7: Mạng phản hồi
1.3.2. 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 8: 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.
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.
1.3.3. Mạng nhiều tầng truyền thẳng (MLP)
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.
HVTH: Nhan Thanh Nhã Page 12
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
Hình 9: 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.
♦ 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.
1.4 Cấu tạo và phương thức làm việc của mạng nơron
Dựa trên những phương pháp xây dựng neuron đã trình bày ở mục trên, ta có thể hình
dung mạng nơron như là một hệ truyền đạt và xử lý tín hiệu. Đặc tính truyền đạt của neuron
phần lớn là đặc tính truyền đạt tĩnh.
Khi liên kết các đầu vào/ra của nhiều neuron với nhau, ta thu được một mạng nơron,
việc ghép nối các neuron trong mạng với nhau có thể là theo một nguyên tắc bất kỳ. Vì
mạng nơron là một hệ truyền đạt và xử lý tín hiệu, nên có thể phân biệt các loại neuron khác
nhau, các neuron có đầu vào nhận thông tin từ môi trường bên ngoài khác với các neuron có
đầu vào được nối với các neuron khác trong mạng, chúng được phân biệt với nhau qua
vector hàm trọng số ở đầu vào w.
HVTH: Nhan Thanh Nhã Page 13
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
Nguyên lý cấu tạo của mạng nơron bao gồm nhiều lớp, mỗi lớp bao gồm nhiều neuron có
cùng chức năng trong mạng. Hình 9 là mô hình hoạt động của một mạng nơron 3 lớp với 8
phần tử neuron. Mạng có ba đầu vào là x
1
, x

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

không đầy đủ hoặc bị tác động của nhiễu. Mạng neural kiểu này được ứng dụng trong lĩnh
vực hoàn thiện mẫu, trong đó có một ứng dụng cụ thể là nhận dạng chữ viết.
- Nhiệm vụ tổng quát của một mạng neural là lưu giữ động các thông tin. Dạng thông
tin lưu giữ này chính là quan hệ giữa các thông tin đầu vào và các đáp ứng đầu ra tương
ứng, để khi có một kích thích bất kỳ tác động vào mạng, mạng có khả năng suy diễn và đưa
ra một đáp ứng phù hợp. Đây chính là chức năng nhận dạng theo mẫu của mạng neural. Để
thực hiện chức năng này, mạng neural đóng vai trò như một bộ phận tổ chức các nhóm
thông tin đầu vào, và tương ứng với mỗi nhóm là một đáp ứng đầu ra phù hợp. Như vậy,
một nhóm bao gồm một loại thông tin đầu vào và một đáp ứng đầu ra. Các nhóm có thể
được hình thành trong quá trình học, và cũng có thể không hình thành trong quá trình học.
HVTH: Nhan Thanh Nhã Page 14
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
1.4.1. Mạng neural một lớp
Mỗi một neuron có thể phối hợp với các neuron khác tạo thành một lớp các trọng số.
Mạng một lớp truyền thẳng như hình 10. Một lớp neuron là một nhóm các neuron mà chúng
đều có cùng trọng số, nhận cùng một tín hiệu đầu vào đồng thời.
Hình 11: Mạng truyền thẳng một lớp
Trong ma trận trọng số, các hàng là thể hiện neuron, hàng thứ j có thể đặt nhãn như một
vector w
j
của neuron thứ j gồm m trọng số w
ji
. Các trọng số trong cùng một cột thứ j
(j=1,2, ,n) đồng thời cùng nhận một tín hiệu đầu vào x
j
.
w
j
= [w
j1

, w
j2
, , w
jm
]
Tại cùng một thời điểm, vector đầu vào x = [x
1
, x
2
, , x
n
] có thể là một nguồn bên ngoài là
cảm biến hoặc thiết bị đo lường đưa tới mạng.
1.4.2. Mạng neural truyền thẳng nhiều lớp
Hình 12: Mạng truyền thẳng nhiều lớp
Mạng neural nhiều lớp có các lớp được phân chia thành 3 loại sau đây:
- Lớp vào là lớp neuron đầu tiên nhận tín hiệu vào x
i
(i = 1, 2, , n). Mỗi tín hiệu x
i
được đưa đến tất cả các neuron của lớp đầu vào. Thông thường, các neuron đầu vào không
làm biến đổi các tín hiệu vào x
i
, tức là chúng không có các trọng số hoặc không có các loại
hàm chuyển đổi nào, chúng chỉ đóng vai trò phân phối các tín hiệu.
- Lớp ẩn là lớp neuron sau lớp vào, chúng không trực tiếp liên hệ với thế giới bên
ngoài như các lớp neuron vào/ra.
- Lớp ra là lớp neuron tạo ra các tín hiệu ra cuối cùng.
1.4.3. Mạng neural phản hồi
Mạng neural phản hồi là mạng mà đầu ra của mỗi neuron được quay trở lại nối với đầu vào

của các neuron cùng lớp được gọi là mạng Laeral như hình 13
HVTH: Nhan Thanh Nhã Page 15
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
Hình 13: Mạng hồi tiếp một lớp
1.4.4. Mạng neural hồi quy
Hình 14: Mạng neural hồi quy
Mạng neural phản hồi có thể thực hiện đóng vòng được gọi là mạng neural hồi quy như hình
14. Mạng neural hồi quy có trọng số liên kết đối xứng như mạng Hopfield, mạng luôn hội tụ
về trạng thái ổn định (Hình13). Mạng BAM thuộc nhóm mạng neural hồi quy, gồm 2 lớp
liên kết 2 chiều, không được gắn với tín hiệu vào/ra. Nghiên cứu mạng neural hồi quy mà có
trọng số liên kết không đối xứng, thì sẽ gặp phải vấn đề phức tạp nhiều hơn so với mạng
truyền thẳng và mạng hồi quy có trọng số liên kết đối xứng.
1.4.5. Mạng Hopfield
Mạng Hopfield là mạng phản hồi một lớp, được chỉ ra trong hình 13. Cấu trúc chi tiết của
nó được thể hiện trong hình 15. Khi hoạt động với tín hiệu rời rạc, nó được gọi là mạng
Hopfield rời rạc, và cấu trúc của nó cũng được gọi là mạng hồi quy.
HVTH: Nhan Thanh Nhã Page 16
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
Hình 15: Cấu trúc của mạng Hopfield
Như mạng Hopfield đã vẽ ở trên, ta thấy nút có một đầu vào bên ngoài x
j
và một giá trị
ngưỡng
j
θ
(j = 1,2, n). Một điều quan trọng cần nói ở đây là mỗi nút không có đường phản
hồi về chính nó. Nút đầu ra thứ j được nối tới mỗi đầu vào của nút khác qua trọng số w
ij
, với
i


j, (i = 1,2, ,n), hay nói cách khác w
ii
= 0, (với i = 1,2, ,n).
Một điều quan trọng nữa là trọng số của mạng Hopfield là đối xứng, tức là w
ij
= w
ji
, (với i,j
= 1,2, ,n). Khi đó, luật cập nhật cho mỗi nút mạng là như sau:
,sgn
1
)()1(










−+=


=
+
n
ij

j
i
k
jij
k
i
xywy
θ
i = 1,2, ,n (6)
Luật cập nhật trên được tính toán trong cách thức không đồng bộ. Điều này có nghĩa là, với
một thời gian cho trước, chỉ có một nút mạng cập nhật được đầu ra của nó. Sự cập nhật tiếp
theo trên một nút sẽ sử dụng chính những đầu ra đã được cập nhật. Nói cách khác, dưới hình
thức hoạt động không đồng bộ của mạng, mỗi đầu ra được cập nhật độc lập.
Có sự khác biệt giữa luật cập nhật đồng bộ và luật cập nhật không đồng bộ. Với luật
cập nhật không đồng bộ thì sẽ chỉ có một trạng thái cân bằng của hệ (với giá trị đầu đã được
xác định trước). Trong khi đó, với luật cập nhật đồng bộ thì có thể làm mạng hội tụ ở mỗi
điểm cố định hoặc một vòng giới hạn.
1.4.6. Mạng BAM
Mạng BAM bao gồm hai lớp và được xem như là trường hợp mở rộng của mạng Hopfield.
Ở đây ta chỉ xét mạng rời rạc, vì nó đơn giản và dễ hiểu.
Hình 16: Cấu trúc của BAM
Khi mạng neural được tích cực với giá trị đầu vào của vector tại đầu vào của một lớp, mạng
sẽ có hai mẫu trạng thái ổn định, với mỗi mẫu tại đầu ra của nó là một lớp. Tính động học
của mạng thể hiện dưới dạng tác động qua lại giữa hai lớp. Cụ thể hơn, giả sử một vector
đầu vào x được cung cấp cho đầu vào của lớp neuron y. Đầu vào được xử lý và truyền tới
đầu ra của lớp y như sau:
y’ = a(wx) ;









=

jiji
xway
'
; với i = 1,2, ,n (1)
Ở đó a(.) là hàm truyền, vector y’ bây giờ lại nuôi trở lại lớp neuron X và tạo nên đầu ra như
sau:
x’ = a(w
T
y’);






=

=
n
i
iijj
ywax
1

; với j = 1,2, ,m (2)
HVTH: Nhan Thanh Nhã Page 17
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
Sau đó x’ nuôi trở lại đầu vào của lớp y và tạo ra hàm y’’ theo phương trình (1). Quá trình
này cứ tiếp tục, bao gồm các bước như sau:
y
(1)
= a(wx
(0)
) (truyền thẳng lần thứ nhất)
x
(2)
= a(w
(T)
y
(1)
) (truyền ngược lần thứ nhất)
y
(3)
= a(wx
(2)
) (truyền thẳng lần thứ hai)
x
(4)
= a(w
(T)
y
(3)
) (truyền ngược lần thứ hai) (3)


y
(k-1)
= a(wx
(k-2)
) (truyền thẳng lần thứ k/2)
x
(k)
= a(w
(T)
y
(k-1)
) (truyền ngược lần thứ k/2)
Chú ý rằng trạng thái cập nhật trong phương trình (3) là đồng bộ theo phương trình (1) và
(2). Trạng thái cập nhật cũng có thể không đồng bộ theo phương trình (1) và (2) với các nút
i, j được chọn tự do. Người ta đã chỉ ra rằng, hệ thống ổn định cho cả hai chế độ đồng bộ và
không đồng bộ. Tuy nhiên, chế độ đồng bộ sẽ làm cho hệ thống hội tụ nhanh hơn nhiều.
HVTH: Nhan Thanh Nhã Page 18
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
CHƯƠNG 2: HUẤN LUYỆN VÀ XÂY DỰNG MẠNG NƠRON
2.1. Huấn luyện mạng Nơron
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 nơron đượ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ì?
học có giám sát, thì tại mỗi thời điểm khi đầu vào được cung cấp tới mạng neural, phản ứng
đầu ra mong muốn d tương ứng của hệ thống được đưa ra. Ở hình 16, khi mỗi đầu vào x
(k)
được đặt vào mạng, đầu ra mong muốn tương ứng d
(k)
cũng được cung cấp tới mạng. Hiệu
giữa đầu ra thực y
(k)
và đầu ra mong muốn d
(k)
được đo trong máy phát tín hiệu lỗi. Máy này
sẽ tạo ra tín hiệu lỗi cho mạng để hiệu chỉnh các trọng số của mạng, và với các hiệu chỉnh
này thì đầu ra thực sẽ tiến sát với đầu ra mong muốn.
Hình 17: Học có giám sát
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).
HVTH: Nhan Thanh Nhã Page 19
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
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 có giám sát trong các mạng nơron
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
nơron 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 nơron, chẳng hạn có (n + 1) nơron vào
(n nơron cho biến vào và 1 nơron cho ngưỡng x
0
), m nơron đầ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
♦ 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 nơron. 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 nơron 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.

♦ 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.
Hình 18: Học không có giám sát
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.
HVTH: Nhan Thanh Nhã Page 20
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
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).
 mô tả cấu trúc chung của quá trình học của ba phương pháp học đã nêu ở trên.
Trong tín hiệu vào x

j
(j = 1,2, ,m), có thể được lấy từ đầu ra của các neuron khác hoặc
có thể được lấy ra từ bên ngoài. Trọng số của neuron thứ i được thay đổi tùy theo tín hiệu ở
đầu vào mà nó thu nhận giá trị đầu ra của nó.
Dạng tổng quát của luật học trọng số của mạng neural cho biết số gia của vector w
i

i
w

tỉ lệ với tín hiệu học r và tín hiệu đầu vào x(t).
i
w

(t) =
)( txr
η
(10)
η
là một số dương và được gọi là hằng số học dùng để xác định tốc độ học, r là tín hiệu học
và phụ thuộc:
).,,(
iir
dxwfr
=
(11)
Hình 19: Sơ đồ cấu trúc chung của quá trình học
Từ hình 18 ta thấy, vector trọng số w
i
= [w

i1
, w
i2
, , w
im
]
T
có số gia tỷ lệ với tín hiệu vào x và
tín hiệu học r. Vector trọng số ở thời điểm (t+1) được tính như sau:
w
i
(t+1) = w
i
(t) +
η
f
r
(w
i
(t),x(t),d(t)).x(t). (12)
Phương trình liên quan đến sự biến đổi trọng số trong mạng neural rời rạc, và tương ứng với
sự thay đổi trọng số trong mạng neural liên tục theo biểu thức sau:
)( txr
dt
dw
i
η
=
(13)
Vấn đề quan trọng trong việc phân biệt luật học cập nhật trọng số có giám sát hay

không có giám sát, hoặc học củng cố là tín hiệu học r. Như vậy, đối với tín hiệu học r thì nó
làm thế nào để thay đổi hoặc cập nhật trọng số trong mạng neural.
Mạng neural nhân tạo có các tính chất sau:
- Là hệ phi tuyến
- Là hệ xử lý song song
HVTH: Nhan Thanh Nhã Page 21
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
- Là hệ học và thích nghi: Mạng được luyện từ số liệu quá khứ, có khả năng tự chỉnh
đầu vào khi số liệu đầu vào bị mất.
- Là hệ nhiều biến, nhiều đầu vào, nhiều đầu ra (MISO), rất tiện dùng khi điều khiển
đối tượng có nhiều biến số.
HVTH: Nhan Thanh Nhã Page 22
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
CHƯƠNG 3: THUẬT TOÁN LAN TRUYỀN NGƯỢC
3.1. Thuật toán lan truyền ngược
Thuật toán lan truyền ngược được ứng dụng để giải các bài toán điều khiển các hệ phi tuyến
phức tạp và bất ổn định. Lan truyền ngược là một phương pháp cho phép xác định tập trọng
số tốt nhất của mạng để giải một bài toán đã cho. Việc áp dụng phương pháp lan truyền
ngược là một quá trình lặp đi lặp lại nhiều lần hai tiến trình chính: lan truyền tiến để thực
hiện ánh xạ và lan truyền ngược sai số để cập nhật các trọng số. Các trọng số của mạng là
các hệ số của mô hình. Phương pháp giảm gradient được dùng để cập nhật những hệ số này
sao cho giảm thiểu được sai số của mô hình.
Xét lớp mạng 3 lớp như hình 19
Hình 20: Mạng 3 lớp lan truyền ngược
Thuật toán: Đầu tiên ta cho lan truyền thẳng suốt trong mạng, qua các phần tử neuron và
được tiếp tục với các hàm kích hoạt của phần tử neuron. Các mạng được nghiên cứu cùng
với thuật toán học lan truyền ngược được gọi là mạng lan truyền ngược.
Huấn luyện các cặp vào/ra.
{(x
(k)

, d
(k)
)}, k = 1,2, ,p
Thuật toán cung cấp một thủ tục cho việc thay đổi các vector trọng số trong mạng, đầu ra
của mạng được lan truyền ngược trở lại lớp đầu vào cho đúng các mẫu. Cơ sở cho việc cập
nhật các trọng số là phương pháp độ dốc Gradient.
Với cặp vào ra (x
(k)
, d
(k)
), thuật toán lan truyền ngược thực hiện các bước như sau:
Đầu tiên, mẫu x
(k)
được lan truyền từ lớp đầu vào qua các lớp ẩn đi đến lớp đầu ra có kết quả
là y
(k)
. Sau đó, sai số giữa y
(k)
và d
(k)
được lan truyền ngược trở lại từ lớp đầu ra tới lớp đầu
vào để cập nhật trọng số. Hình 20 diễn giải thuật toán lan truyền ngược. Kết quả có thể mở
rộng sang mạng neural nhiều lớp.
Trên hình 19 có m phần tử neuron đầu vào, l phần tử neuron ở lớp ẩn, và n phần tử neuron ở
lớp đầu ra. Đường nét liền diễn tả lan truyền thẳng của các tín hiệu, đường nét đứt diên tả
lan truyền ngược của các sai số. Đầu tiên huấn luyện vào cặp vào/ra ký hiệu (x,d) để cho
đơn giản ta bỏ chỉ số k. Khi một mẫu đầu vào x được đưa vào thì các phần tử trong mạng sẽ
được tính như sau:
Đầu vào phần tử q của lớp ẩn sẽ được tính theo phương trình:
HVTH: Nhan Thanh Nhã Page 23

Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
j
m
j
qjq
xvnet

=
=
1
(1)
Phương trình đầu ra của q sẽ là:
()( anetaz
qq
==
j
m
j
qj
xv

=1
) (2)
Đầu vào phần tử thứ i của lớp đầu ra sẽ là:
)(
111
j
m
j
qj

l
q
iqq
l
q
iqi
xvawzwnet
∑∑∑
===
==
(3)
Phương trình đầu ra của phần tử nowron thứ i sẽ là:
))(.()()(
111
j
m
j
qj
l
q
iqq
l
q
iqii
xvawazwanetay
∑∑∑
===
===
(4)
Các chỉ số trên được tính toán cho sự lan truyền tiến của các tín hiệu đầu vào xuyên suốt

qua các lớp mạng neural. Trước khi ta đề cập đến các tín hiệu sai số của sự lan truyền
ngược, ta sẽ định nghĩa một hàm mục tiêu như sau:
[ ]
2
1 1
2
11
2
2
1
)(
2
1
)(
2
1
)(
∑ ∑∑∑
= ===

















−=−=−=
n
i
l
q
qiqi
n
i
ii
n
i
ii
zwadnetadydwE
(5)
Sau đó, theo phương pháp độ dốc Gradient, các trọng số nối giữa lớp ẩn và lớp đầu ra được
cập nhật bởi
iq
w

, và nó được tính theo công thức sau:
iq
iq
w
E
w



−=∆
η
(6)
Sử dụng các công thức (8,10) và thay đổi luật với
iq
w
E


, ta có:
[ ][ ]
[ ]
qoiqiii
iq
i
i
i
i
i
i
iq
zznetayd
w
net
net
net
net
y

y
E
w
ηδη
=−=



































−=∆ )('
(7)
Trong đó,
oi
δ
là tín hiệu sai số, chỉ số dưới thứ hai là điểm thứ i trong lớp đầu ra. Sai số tín
hiệu được định nghĩa bởi:
[ ][ ]
)('
iii
i
i
ii
oi
netayd
net
y
y
E
net
E

−=
















−=


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

neta
neta


=
)(
)('
.
Bây giờ ta phải tính đầu ra z
q
của lớp ẩn:
Với trọng số nối giữa đầu vào và các lớp ẩn, ta sử dụng thay đổi luật cùng phương pháp độ
dốc Gradient, ta cập nhật trọng số để kết nối giữa phần tử thứ j của lớp đầu vào với phần tử
thứ q của lớp ẩn. Khi đó:































−=





















−=










−=∆
qj
q
q
q
qqj
q
qqj
qj
v
net
net
z
z

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

=
−−=∆
η

(10)
Sử dụng công thức (8), ta có thể viết lại công thức (10) như sau:
HVTH: Nhan Thanh Nhã Page 24
Đồ Án: Máy Học & Ứng Dụng PGS TS: Vũ Thanh Nguyên
[ ]
jhqjq
n
i
iqoiqj
xxnetawv
∂=−=∆

=
ηδη
).('
1
(11)
Ở đây,
hq

là sai số tín hiệu của phần tử thứ q của lớp ẩn và được định nghĩa như dưới đây:
iq
n
i
oiq
q
q
qq
hq
wneta

net
z
z
E
net
E

=
=




















−=



−=∂
1
)('
δ
(12)
Trong đó, net
q
là đầu vào phần tử thứ q của lớp ẩn.
Tín hiệu sai số của một phần tử trong lớp ẩn khác so với tín hiệu sai số của một phần tử
trong lớp đầu ra, như đã được chỉ ra trong công thức (12) và (8). Do có sự khác nhau này,
nên các thủ tục cập nhật các trọng số trên được gọi là luật học delta tổng quát. Chúng ta xem
xét công thức (12), sai số tín hiệu
hq

của phần tử lớp ẩn q có thể được xác định trong các
mẫu của các tín hiệu sai số
oi
δ
của các phần tử ở lớp ra thứ i (y
i
) cung ứng. Các hệ số là các
trọng số được sử dụng cho lan truyền thẳng, nhưng ở đây chúng truyền các tín hiệu sai số (
oi
δ
) ngược trở lại, đó chính là các đường nét đứt trong hình 19. Điều này đã chứng tỏ được
đặc điểm quan trọng của thuật toán lan truyền ngược – luật cập nhật cục bộ, đây chính là
tính toán trọng số thay đổi dựa vào sự kết nối, và chúng ta chỉ cần giá trị ở hai đầu của kết
nối này.

Sự đạo hàm ở trên có thể dễ dàng mở rộng cho mạng có nhiều hơn một lớp ẩn, bằng cách sử
dụng chuỗi luật liên tiếp. Trong trường hợp chung, với số lớp tùy ý, thì sự lan truyền ngược
được cập nhật luật ở dạng sau:
jinputioutputjiij
xxw
−−
==∆
ηδηδ
(13)
Ở đây, (output-i) và (input-j) quy vào hai đầu của sự kết nối từ phần tử thứ j tới phần tử thứ
i, x
j
là đầu vào cuối cùng kích hoạt từ một phần tử lớp ẩn, hoặc từ một đầu vào bên ngoài.
Ngoài ra,
i
δ
là tín hiệu học được định nghĩa bởi công thức (8) với đầu ra hoặc lớp cuối cùng
của các trọng số kết nối, và được định nghĩa bởi công thức (11) cho tất cả các lớp khác. Khi
hàm sigmoid lưỡng cực được sử dụng làm hàm kích hoạt, đồng thời sử dụng (8) và (12) ta
có hàm y được xác định như sau:
1
1
1
)( −
+
==
−net
e
netay
Khi đó ta có:

[ ]
)1(
2
1
)(1
2
1)(
)('
22
yneta
net
neta
neta −=−=


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


=
−=
1
2
)1(
2
1
δδ
(15)
Thuật toán lan truyền ngược
Xem xét một mạng với Q lớp lan truyền ngược, q=1,2, ,Q; với
q
net
i

q
y
i
lần lượt là đầu
vào và đầu ra của khối trong lớp thứ q. Mạng có m neuron đầu vào, l neuron ở lớp ẩn, và n
neuron đầu ra. Với
q
w
ij
là trọng số nối từ
q-1
w
j
đến
q

y
i
.
Đầu vào: các cặp huấn luyện {x
(k)
, d
(k)
| k=1,2, ,p}, ở đó giá trị đầu vào của phần tử cuối
cùng bằng -1, tức là
1
)(
1
−=
+
k
m
x
.
Bước 0 (Đặt giá trị ban đầu)
- Lựa chọn bước tính (Hằng số học) 0<η<1 và E
max
(sai số lớn nhất cho phép).
HVTH: Nhan Thanh Nhã Page 25

×