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

báo cáo bài tập lớn xử lý ngôn ngữ tự nhiên đề tài 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 (934.57 KB, 41 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÁO CÁO BÀI TẬP LỚN XỬ LÝ NGÔN NGỮ TỰ NHIÊN
NHẬN DẠNG CHỮ VIẾT
Giảng viên hướng dẫn: PGS. Lê Thanh Hương
Sinh viên thực hiện: Phạm Phương Bắc 20080176
Nguyễn Duy Hưởng 20081337
Lê Quốc Trung 20082778
Nguyễn Tuấn Vinh 20083174
Phạm Tuấn Việt 20083152
Hà Nội - 04/2012
Mục Lục
Mục Lục 1
1
Lời nói đầu 2
Chương I. Tổng quan về tài 3
I.1. Tổng quan về nhận dạng chữ viết 3
I.2. Các khái niệm liên quan 4
I.2.1 Mạng nơ ron 4
I.2.2. Mạng nơ ron nhân tạo 5
I.2.3. Mạng Perceptron 16
I.2.4. Phương pháp học máy back-propagation 21
I.2.5. Tập huấn luyện mạng 28
Chương II. Nội dung thực hiện 29
II.1 Các modun chương trình 29
II.1.1. Mô hình bài toán 29
II.1.2. Giao diện chương trình 34
II.2. Kết quả 36
II.3. Đánh giá 37
Kết luận 39
Tài liệu tham khảo 40


Chú thích 40
Lời nói đầu
Từ trước đến nay đề tài nhận dạng chữ viết đã được quan tâm nghiên cứu rất nhiều vì nó
có tính ứng dụng cao trong thực tiễn như giúp tăng tốc độ nhập thông tin từ các loại tài liệu chưa
2
được số hóa hoặc còn ở dạng ảnh sang dạng ngôn ngữ máy, hỗ trợ khả năng đọc văn bản cho
robot, đặc biệt là với tình hình phát triển rất nhanh của các thiết bị di động như smart phone,
tablet… một nhu cầu lớn được đặt ra là tốc độ tạo văn bản khi sử dụng. Do vậy vấn đề nhận dạng
chữ viết ngày càng chứng tỏ tính hữu dụng của nó trong đời sống.
Căn cứ vào tiềm năng của lĩnh vực nhận dạng chữ viết và niềm yêu thích lĩnh vực nhận
dạng, nhóm em đã lựa chọn đề tài nhận dạng chữ viết.
Chúng em xin cảm ơn PGS. Lê Thanh Hương – Giảng viên viện CNTT&TT trường Đại
học Bách khoa Hà Nội đã giúp chúng em giải đáp các thắc mắc trong quá trình học cũng như làm
bài tập lớn.
Chương I. Tổng quan về tài
I.1. Tổng quan về nhận dạng chữ viết
Nhận dạng chữ viết có hai loại là nhận dạng chữ in và chữ viết tay. Mỗi kiểu nhận dạng
có những đặc trưng riêng. Chữ in thường tuân theo những mẫu nhất định của các font chữ trong
các chương trình tạo văn bản và thường rõ nét. Đối với chữ viết tay, mỗi người có một kiểu viết
riêng thậm chí chữ viết của một người cũng không giống nhau qua các lần viết khác nhau. Chữ
3
viết tay trên văn bản như giấy thường hay bị mờ, mất nét, lệch dòng…Điều đó khiến cho việc
nhận dạng trở lên khó khăn hơn.
Trong khuôn khổ bài tập lớn, nhóm em làm về nhận dạng các ký tự viết tay, cụ thể hơn là
các ký tự số viết tay. Ảnh của các ký tự này được tạo bởi chương trình vẽ của máy tính và được
lưu vào các tệp ảnh .png.
I.2. Các khái niệm liên quan
I.2.1 Mạng nơ ron
Phần tử xử lý cơ bản của một mạng nơron sinh học là một nơron, phần tử này có thể chia
làm bốn thành phần cơ bản như sau: dendrites, soma, axon và synapses.

- Dendrites: là phần nhận tín hiệu đầu vào
- Soma: là hạt nhân
- Axon: là phần dẫn ra tín hiệu xử lý
- Synapses: là đường tín hiệu điện hóa giao tiếp giữa các nơron.
Kiến trúc cơ sở này của bộ não con người có một vài đặc tính chung. Một cách tổng quát,
thì một nơron sinh học nhận đầu vào từ các nguồn khác nhau, kết hợp chúng lại với nhau, thực
thi tổ hợp phi tuyến chúng để cho ra kết quả cuối cùng ở đầu ra. Hình 1.1 dưới đây chỉ ra mối
quan hệ giữa bốn phần từ của một nơron sinh học
Hình 1.1: Một nơron sinh học
Một nơron sinh học chỉ có một số chức năng cơ bản như vậy, ta nhận thấy khả năng xử lý
thông tin của nó là rất yếu. Để có được khả năng xử lý thông tin hoàn hảo như bộ não con người,
thì các nơron phải kết hợp và trao đổi thông tin với nhau. Ta hình dung sơ đồ liên kết, và trao đổi
thông tin giữa hai nơron như hình 1.2.
4
Hình 1.2. Sự liên kết các nơron
I.2.2. Mạng nơ ron nhân tạo
Mô hình toán học của mạng nơron sinh học được đề xuất bởi McCulloch và Pitts, thường
được gọi là nơron M-P, ngoài ra nó còn được gọi là phần tử xử lý và được ký hiệu là PE
(Processing Element).
Mô hình nơron có m đầu vào x
1
, x
2
,…, x
m
, và một đầu ra y
i
như sau:
Hình 1.3: Mô hình một nơron nhân tạo
Giải thích các thành phần cơ bản:

- Tập các đầu vào: Là các tín hiệu vào 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 m chiều.
5
- Tập các liên kết (các trọng số): Mỗi liên kết được thể hiện bởi một trọng số (thường
được gọi là trọng số liên kết). Trọng số liên kết giữa tín hiệu vào thứ j cho 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 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 (Hàm tổng): 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: 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: Hàm này 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 tùy 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: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa một đầu ra.
Về mặt toán học, cấu trúc của một nơron i được mô tả bằng cặp biểu thức sau:
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
nơron 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
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 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ả đến hàm truyền), và cho một tín hiệu đầu ra (là kết quả của hàm truyền).
● Hàm truyền có thể có các dạng sau:
- Hàm bước y = (1.6)
- Hàm giới hạn chặt (hay còn gọi là hàm bước)
y = sgn(x) = (1.7)
- Hàm bậc thang
y = sgn(x) = (1.8)
- Hàm ngưỡng đơn cực
6
y = với ⅄ > 0 (1.9)
-Hàm ngưỡng hai cực
y = – 1 với < 0⅄ (1.10)
●Đồ thị các dạng hàm truyền được biểu diễn như sau:

I.2.2.1. 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 mạng nơron đã 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 nơron
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 nơron với nhau, ta thu được một mạng nơron, việc
ghép nối các nơron 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 nơron khác nhau, các nơron có
đầu vào nhận thông tin từ môi trường bên ngoài khác với các nơron có đầu vào được nối với các
nơron 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.
7
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 lớp, mỗi
lớp bao gồm nhiều nơron có cùng chức năng trong mạng. Hình 1.5 là mô hình hoạt động của một
mạng nơron 3 lớp với 8 phần tử nơron. Mạng có ba đầu vào x
1
, x
2
, x
3
và hai đầu vào y
1
, y
2
. Các
tín hiệu đầu vào được đưa đến 3 nơron đầu vào, 3 nơron này làm thành lớp đầu vào của mạng.
Các nơron trong lớp này được gọi là nơron đầu vào. Đầu ra của các nơron này được đưa đến đầu
vào của 3 nơron tiếp theo, 3 nơron 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 nơron trong lớp này có tên là nơron nội hay
nơron ẩn. Đầu ra của các nơron này được đưa đến 2 nơron đưa tín hiệu ra môi trường bên ngoài.
Các nơron trong lớp đầu ra này được gọi là nơron đầu ra.
Mạng nơron đượ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 nơron 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 nơron nào trong mạng cũng được nối với
một hoặc một vài nơron khác). Mạng nơron bao gồm một hay nhiều lớp trung gian được gọi là

mạng Multilayer Perceptrons (MLP – Network).
Mạng nơron 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 nơron đượ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 nơron 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 nơron là lưu giữ động các thông tin. Dạng thông tin
lưu trữ 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à
8
đư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 nơ
ron. Để thực hiện chức năng này, mạng nơron đó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.
Hình 1.6 là một số liên kết đặc thù của mạng nơron. Nơron được vẽ là các vòng tròn xem như
một tế bào thần kinh, chúng có các mối liên hệ đến các nơron khác nhờ các trọng số kiên kết.
Tập hợp các trọng số liên kết này sẽ lập thành các ma trận trọng số tương ứng.
Mạng nơron một lớp
Mỗi một nơron có thể phối hợp với các nơron 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 1.6a. Một lớp nơron là một nhóm các nơron 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.
Trong ma trận trọng số, các hàng là thể hiện nơron, hàng thứ j có thể đặt nhãn như một
vector w

j
của nơron 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.
9
Mạng nơron truyền thẳng nhiều lớp
Mạng nơron nhiều lớp (Hình 1.6.c) có các lớp được phân chia thành 3 loại sau đây:
● Lớp vào là lớp nơron đầ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 nơron của lớp đầu vào. Thông thường, các nơron đầ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 nơron 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 nơron vào/ra.
● Lớp ra là lớp nơron tạo ra các tín hiệu ra cuối cùng.
Mạng nơron phản hồi
Mạng nơron phản hồi là mạng mà đầu ra của mỗi nơron được quay trở lại nối với đầu vào
của các nơron cùng lớp được gọi là mạng Laeral (như hình 1.6.b)
Mạng nơron hồi quy
Mạng nơron phản hồi có thể thực hiện đóng vòng được gọi là mạng nơron hồi quy (như
hình 1.6.d). Mạng nơron 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ình 1.6.b). Mạng BAM thuộc nhóm mạng nơron 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 nơron 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.
Mạng Hopfield
Mạng Hopfield là mạng phản hồi một lớp, được chỉ ra trong hình 1.6.b. Cấu trúc chi tiết
của nó được thể hiện trong hình 1.7. 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.
10
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( + – Ө ), i = 1,2,…,n (1.11)
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.
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.
11
Khi mạng nơron đượ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 nơron y. Đầu vào được xử lý và truyền tới đầu ra của

lớp y như sau:
y’ = a(wx) ; y’
i
= a(∑w
ij
x
j
); với i = 1,2,…,n (1.12)
Ở đó a(.) là hàm truyền, vector y’ bây giờ lại nuôi trở lại lớp nơron X và tạo nên đầu ra
như sau:
x’ = a(w
T
y’); x
j
= a( ); với j = 1,2,…,m (1.13)
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.12). 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
(2)
) (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) (1.14)
.
.
.
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 (1.14) là đồng bộ theo phương trình
(1.12) và (1.13). Trạng thái cập nhật cũng có thể không đồng bộ theo phương trình (1.12) và
(1.13) 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.
I.2.2.2. Các luật học
12
Thông thường, mạng nơron được điều chỉnh hoặc được huấn luyện để hướng các đầu vào
riêng biệt đến đích ở đầu ra. Cấu trúc huấn luyện mạng được chỉ ra ở hình dưới. Ở đây, hàm
trọng số của mạng được điều chỉnh trên cơ sở so sánh đầu ra với đích mong muốn (target), cho
tới khi đầu ra của mạng phù hợp với đích. Những cặp vào/đích (input/ target) được dùng để giám
sát cho sự huấn luyện mạng.
Để có được một số cặp vào/ra, ở đó mỗi giá trị vào được gửi đến mạng và giá trị ra tương
ứng được thực hiện bằng mạng là sự xem xét và so sánh với giá trị mong muốn. Bình thường, nó
sẽ tồn tại một sai số vì giá trị mong muốn không hoàn toàn phù hợp với giá trị thực. Sau mỗi lần
chạy, ta có tổng bình phương của tất cả các sai số. Sai số này đuợc sử dụng để xác định các hàm
trọng số mới.
Sau mỗi lần chạy, hàm trọng số của mạng được sửa đổi với đặc tính tốt hơn tương ứng
với đặc tính mong muốn. Từng cặp giá trị vào/ra phải được kiểm tra và trọng số được điều chỉnh
một vài lần. Sự thay đổi các hàm trọng số của mạng sẽ được dừng lại, nếu tổng các bình phương
sai số nhỏ hơn một giá trị đặt trước, hoặc đã chạy đủ một số lần chạy xác định (trong trường hợp
này, mạng có thể không thỏa mãn yêu cầu đặt ra do sai lệch còn cao). Có hai kiểu học:
● Học tham số: là các tham số về trọng số cập nhật kết nối giữa các nơron.
● Học cấu trúc: trọng tâm là sự biến đổi cấu trúc của các mạng nơron gồm số lượng nút
và các loại liên kết.
Giả sử ma trận trọng số bao gồm tất cả các phần tử thích ứng của mạng nơron. Nhiệm vụ
của việc học tham số là tìm ra được ma trận chính xác mong muốn từ ma trận giả thiết ban đầu
(với cấu trúc của mạng nơron có sẵn). Để làm được điều này thì mạng nơron phải sử dụng các
trọng số điều chỉnh, với nhiều phương pháp học khác nhau để có thể tính toán gần đúng ma trận
W cần tìm đặc trưng cho mạng. Sau đây là 3 phương pháp học:
Học có giám sát
Học có giám sát: là quá trình học có tín hiệu chỉ đạo bên ngoài d (Hình 1.10). Trong 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 nơron, phản ứng đầu ra
mong muốn d tương ứng của hệ thống đươc đưa ra. Ở hình (1.10), 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 đuợc cung cấp tới mang. 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.
13
Học củng cố
Tín hiểu chủ đạo d có thể lấy từ môi trường bên ngoài, nhưng tín hiệu này không được
đầy đủ, mà chỉ có một vài bit đại diện có tính chất kiểm tra qua trình tốt hay xấu. Học củng cố
cũng là một dạng của học có giám sát, bởi vì mạng vẫn nhận một số tín hiệu từ mạng bên ngoài.
Nhưng tín hiệu phản hồi chỉ mang tính chất đánh giá hơn là mạng tính chất chỉ dẫn. Nó cho biết
mức độ tốt hay xấu của một đầu ra đặc biệt. Tín hiệu củng cố bên ngoài thường được xử lý bằng
máy phát tín hiệu đánh giá để tạo ra nhiều hơn nữa các thông tin tín hiệu đánh giá, sau đó dùng
để điều chỉnh các trọng số với mục đích đạt được tín hiệu đánh giá tốt hơn.
Học không có giám sát
Trong phần học không có giám sát, sẽ không có thầy hướng dẫn, tức là không có tín hiệu
d cung cấp tới mạch phản hồi. Điều này cho thấy, ta sẽ không biết đầu ra đạt giá trị gì. Với loại
này, thì các nơron tự xoay xở với các dữ liệu mẫu mà nó có được, chứ không có “thầy” gợi ý cần
luyện theo hướng nào. Mạng phải tự khám phá mẫu, đặc tính, sự tương quan hay loại đầu vào.
Trong khi khám phá những đặc tính này, tham số của mạng sẽ bị thay đổi. Quá trình này được
gọi là tự tổ chức. Một ví dụ điển hình là quá trình phân loại đối tượng không có thầy, những lớp
thích hợp được hình thành bằng cách khám phá sự tương tự và không tương tự trong số các đối
tượng.

Hình (1.12) 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 nơron khác hoặc có
thể được lấy ra từ bên ngoài. Trọng số của nơron 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 nơron cho biết số gia của vector w
i
là Δw
i
tỉ lệ với tín hiệu học r và tín hiệu vào x(t).
Δw
i
(t) = ηr.x(t) (1.15)
14
η 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: r = f
r
(w
i
, x, d
i
). (1.16)
Từ hình (1.12) 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) (1.17)
Phương trình liên quan đến sự biến đổi trọng số trong mạng nơron rời rạc, và tương ứng
với sự thay đổi trọng số trong mạng nơron liên tục theo biểu thức sau:
= η.r.x(t) (1.18)
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 nơron.
Mạng nơron nhân tạo có các tính chất sau:
● Là hệ phi tuyến
● Là hệ xử lý song song
● 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ố.
15
I.2.3. Mạng Perceptron
I.2.3.1. Mạng Perceptron một lớp

Mạng perceptron một lớp do F.Rosenblatt đề xuất năm 1960 [1] là một mạng truyền
thẳng chỉ có một lớp vào và một lớp ra, không có lớp ẩn. Trên mỗi lớp này có thể có một hoặc
nhiều nơron. Mô hình mạng nơron của Rosenblatt sử dụng hàm ngưỡng đóng vai trò là hàm
chuyển. Do đó, tổng của các tín hiệu vào lớn hơn giá trị ngưỡng thì giá trị đầu ra của nơron sẽ là
1, còn trái lại sẽ là 0.
out
i
= với net
i
= ∑w
ij
x
j
là tổng thông tin đầu vào của nơron i.
Ngay từ khi mạng Perceptron một lớp được đề xuất nó đã được sử dụng để giải quyết bài
toán phân lớp. Một đối tượng sẽ được nơron i phân vào lớp A nếu:
Tổng thông tin đầu vào : ∑w
ij
x
j
> Ө
i
Trong đó w
ij
là trọng số liên kết từ nơron j tới nơron i, x
j
là đầu vào từ nơron j, và Ө là
ngưỡng của nơron i. Trong trường hợp trái lại đối tượng sẽ được phân vào lớp B.
Việc huấn luyện mạng dựa trên phương pháp học có giám sát với tập mẫu học là {(x
(k)

,
d
(k)
)}, k= 1,2,…,p. Trong đó d
(k)
= [d
1
(k)
, d
2
(k)
,…, d
n
(k)
]
T
là đầu ra quan sát được tương ứng với đầu
vào x
(k)
= [x
1
(k)
, x
2
(k)
, …, x
m
(k)
]
T

(với m là số đầu vào, n là số đầu ra và p là cặp mẫu đầu vào – đầu
ra dùng cho việc học). Như vậy chúng ra mong rằng sau quá trình học, đầu ra tính toán được y
(k)
= [y
1
(k)
, y
2
(k)
, …, y
n
(k)
]
T
sẽ bằng với đầu ra của mẫu học d
(k)
.
y
i
(k)
=g(w
i
T
x
(k)
) = g( = d
i
(k)
với i = 1,2, …, n; k = 1,2, …, p (1.19)
Hình 1.13 Mạng perceptron một lớp

16
Để bắt đầu quá trình luyện mạng, các trọng số được gán giá trị ngẫu nhiên trong khoảng
[-3, 3]. Sau đó hiệu chỉnh các trọng số cho phù hợp với mẫu học để làm giảm sai số giữa y
(k)

d
(k)
.
Các bước tiến hành:
● Xác định ngẫu nhiên bộ trọng số.
● Với mỗi mẫu học (x
(k)
, d
(k)
), k = 1,2, …, p thực hiện các bước:
◦ Tính giá trị y
(k)
theo công thức
◦ Xác định sai số tại nơron i: = d
i
– y
i
, trong đó d
i
là giá trị đầu ra quan sát
được và y
i
là giá trị đầu ra tính toán tại nơron thứ i
◦ Tính Δw
ij

là số gia của trọng số w
ij
(trọng số liên kết giữa đầu vào j tới nơron i)
theo công thức Δw
ij
= η trong đó η là tốc độ học ( 0 < η < 1)
◦ Hiệu chỉnh w
ij
(t+1)
= w
ij
(t)
+ Δw
ij
= w
ij
(t)
+ η trong đó w
ij
(t+1)
là trọng số
sau khi điều chỉnh ở lần học tại thời điểm t
Rosenblatt đã chứng minh rằng quá trình học của mạng Perceptron sẽ hội tụ tới bộ trọng
số W, biểu diễn đúng các mẫu học với điều kiện là các mẫu này biểu thị các điểm rời rạc của một
hàm khả tách tuyến tính nào đó ( f: R
n
 R được gọi là khả tách tuyến tính nếu các tập {F
-1
(x
k

)},
với x
k
thuộc miền trị của f, có thể tách được với nhau bởi các siêu phẳng trong không gian R
n
).
Năm 1969, Minsky và Papert đã chứng minh một cách chặt chẽ rằng lớp hàm thể hiện sự
phụ thuộc giữa đầu vào và đầu ra có thể học bởi mạng Perceptron một lớp là lớp hàm khả tách
tuyến tính. Khả tách tuyến tính là trường hợp tồn tại một mặt siêu phẳng để phân cách tất cả các
đối tượng của một lớp này với một lớp khác, ví dụ một mặt phẳng sẽ phân chia không gian ba
chiều thành hai vùng riêng biệt. Mở rộng ra, nếu có n đầu vào , n>2 thì công thức (
) tạo nên một siêu phẳng có n-1chiều trong không gian n chiều, nó chia không
gian đó thành hai nửa. Trong nhiều bài toán thực tế đòi hỏi chia các vùng của các điểm trong một
siêu không gian thành các lớp riêng biệt. Loại bài toán này gọi là bài toán phân lớp. Bài toán
phân lớp có thể giải quyết bằng cách tìm các tham số thích hợp cho một siêu phẳng để nó có thể
chia không gian n chiều thành các vùng riêng biệt.
Với tính chất của như đã nêu trên, mạng perceptron một lớp có thể mô tả các hàm logic
như AND, OR và NOT. Tuy nhiên nó không thể hiện được hàm XOR. Như vậy chứng tỏ mô
hình perceptron một lớp không thể giải quyết bài toán này. Vấn đề này sẽ được giải quyết bằng
mô hình mạng nơ-ron perceptron nhiều lớp (Multilayer Perceptron - MLP).
17
I.2.3.2. Mạng perceptron nhiều lớp
Mạng perceptron nhiều lớp (Multilayer Perceptron –MLP) còn được gọi là mạng truyền
thẳng nhiều lớp là sự mở rộng của mô hình mạng perceptron với sự bổ sung thêm những lớp ẩn
và các nơ-ron trong các lớp ẩn này có hàm chuyển (hàm kích hoạt) dạng phi tuyến. Mạng MLP
có một lớp ẩn là mạng nơ-ron nhân tạo được sử dụng phổ biến nhất, nó có thể xấp xỉ các hàm
liên tục được định nghĩa trên một miền có giới hạn cũng như những hàm là tập hợp hữu hạn của
các điểm rời rạc.
1. Giải quyết bài toán XOR với mạng MLP
Ta thấy có thể dùng hai đường thẳng để phân tách với trường hợp hàm XOR.

-0,5+x1+x2=0 và -1,5+x1+x2=0
Hay ta giải hệ bất phương trình:

Dễ thấy mỗi bất phương trình ở trên có thể được thực hiện bằng một nơ-ron và đầu ra của
hai nơron này (2 bất phương trình) là đầu vào của một hàm AND. Do vậy có thể sử dụng mạng
MLP sau để thực hiện chức năng của hàm XOR như sau:
Hình 1.14 Thực hiện hàm XOR bằng mạng MLP
2. Một số vấn đề cần chú ý khi sử dụng mạng MLP
Mạng nơron perceptron nhiều lớp là loại mạng nơron được sử dụng trong nhiều ứng dụng
thực tế. Tuy nhiên, để mạng có thể đưa ra kết quả tốt, chúng ta cần quan tâm đến một số vấn đề
có ảnh hưởng khá quan trọng đến hiệu quả làm việc của nó bao gồm: vấn đề chuẩn hóa số liệu
đầu vào, vấn đề học chưa đủ và học quá của mạng, vấn đề lựa chọn một cấu trúc mạng phù hơp
với bài toán.
2.1Vấn đề chuẩn hóa số liệu đầu vào
Mạng MLP thường sử dụng hàm chuyển là hàm sigmoid có dạng như sau
18
Hình 1.18 Hàm sigmoid g(x) = 1/(1 + )
Với dạng hàm này, giá trị ở đầu ra của mỗi nơ-ron nằm trong phạm vi khoảng (0,1) và
nó đạt các giá trị bão hoà ( xấp xỉ 0 hay 1 ) khi ⎢x ⎢ lớn. Do đó, khi đầu vào của mạng có giá trị
tuyệt đối lớn thì ta cần chuẩn hoá nó về khoảng có giá trị nhỏ, nếu không thì các nơ-ron tại các
lớp ẩn ngay ban đầu đã có thể đạt giá trị bão hoà và quá trình học của mạng không đạt kết quả
mong muốn. Với dạng hàm như trên thì giá trị đầu vào của mạng thường được chuẩn hoá về
khoảng thuộc đoạn [-3, 3] . Mặt khác, do tín hiệu đầu ra của nơ-ron nằm trong khoảng giá trị
(0,1) nên các giá trị đầu ra thực tế trong các mẫu học cũng cần chuẩn hoá về khoảng giá trị này
để có thể dùng cho quá trình luyện mạng. Do vậy trong quá trình tính toán, để có các giá trị thực
tế ở đầu ra của mạng chúng ta cần phải chuyển các giá trị trong khoảng (0,1) về miền các giá trị
thực tế.
2.2 Vấn đề học chưa đủ và học quá thuộc của mạng
Vấn đề mấu chốt khi xây dựng một mạng nơ-ron nhân tạo là làm thế nào mạng có khả
năng tổng quát hoá cao để đưa ra kết quả tốt cả với những trường hợp đầu vào của mạng không

nằm trong tập mẫu đã dùng để luyện mạng. Giống như các mô hình hồi quy phi tuyến khác, đối
với mạng nơ-ron nhân tạo ta cũng phải giải quyết hai vấn đề là ANN học chưa đủ (underfitting)
và học quá (overfitting). Khi mạng có cấu trúc (số nút ẩn và liên kết) cũng như số lần học chưa
đủ so với nhu cầu của bài toán thì sẽ dẫn tới tình trạng mạng không đủ khả năng mô tả gần đúng
mối quan hệ tương quan giữa đầu vào và đầu ra của quá trình cần dự báo và dẫn tới học chưa đủ.
Trái lại, nếu mạng quá phức tạp (quá nhiều nút ẩn và quá nhiều tham số) và được học “quá khít”
đối với các mẫu dùng để luyện mạng thì có thể dẫn tới tình trạng mạng học cả thành phần nhiễu
lẫn trong các mẫu đó, đây là tình trạng “học quá thuộc” của mạng. Vấn đề nêu trên có thể làm
cho nhiều loại mạng nơ-ron, đặc biệt là mạng MLP có thể có những trường hợp cho kết quả dự
đoán rất sai lệch với thực tế.
Một số giải pháp cho vấn đề học quá của mạng:
● Sử dụng tập số liệu có tính đại diện tốt để luyện mạng: Đây được xem là một cách khá tốt để
tránh hiện tượng overfitting. Khi tập mẫu dùng để luyện mạng thể hiện được nhiều trạng thái có
thể xẩy ra của quá trình cần nghiên cứu thì sau khi học mạng sẽ có khả năng tổng quát hoá tương
đối tốt từ tập dữ liệu đó và sẽ không chịu ảnh hưởng nhiều của hiện tượng overfitting. Ngoài ra
một số biện pháp dưới đây cũng có thể góp phần quan trọng giúp khắc phục hiện tượng
overfitting của mạng.
19
● Lựa chọn cấu trúc mô hình phù hợp: Việc lựa chọn mô hình của mạng (số lớp ẩn, số nơ-ron
trên mỗi lớp ẩn) có ảnh hưởng quan trọng đến hiện tượng học chưa đủ (underfitting) và học quá
(overfitting) của mạng. Nghiên cứu của Steve Lawrence và C.Lee Giles [5] về bài toán nội suy
hàm y = sin(x/3) + v, 0≤ x ≤20. với v là biến ngẫu nhiên nằm trong khoảng (- 0.25 , 0.25) cho
thấy nếu mạng chỉ gồm một nút ẩn thì mạng không thể học được hàm này. Mạng có hai nút ẩn có
khả năng tổng quát hoá tốt nhất (tuy không chính xác hoàn toàn với các mẫu nhưng nó tạo nên
giáng điệu gần với hàm cần xấp xỉ nhất và nó đã không quá khít với nhiễu của mẫu học). Các
mạng có độ phức tạp hơn (10 nút ẩn, 50 nút ẩn) tuy nó có thể học khá chính xác các mẫu được sử
dụng nhưng chính điều này lại làm cho nó học quá nhiều cả thành phần nhiễu nên khả năng tổng
quát hoá giảm và dẫn tới hiện tượng học quá (overfitting).
Hình 1.19 Nội suy hàm y = sin(x/3) + v, 0 sử dụng MLP
● Dừng học đúng lúc: Năm 1991, trong một nghiên cứu về vấn đề học quá của

mạng, hai tác giả Nelson và Illingworth [6] đã đưa ra giải pháp dừng học đúng
lúc để tránh hiện tượng học quá của mạng như sau:
◦ Tập mẫu được chia làm hai phần: một phần dùng để luyện mạng và phần
còn lại để kiểm thử.
◦ Sử dụng các giá trị khởi tạo nhỏ
◦ Sử dụng hằng số tốc độ học có giá trị thấp.
◦ Tính toán sự thay đổi lỗi kiểm thử trong quá trình luyện mạng.
◦ Dừng học khi thấy lỗi kiểm thử bắt đầu tăng
2.3 Lựa chọn kích thước mạng
20
Các công trình dựa trên định lý của Kolmogorov dự kiến rằng toàn bộ các ánh xạ liên tục
từ [0,1]
p
đến [0,1]
n
đều có thể được xấp xỉ bằng một mạng perceptron ba lớp có lớp vào gồm p
nơ-ron, lớp ra gồm n nơ-ron và lớp ẩn gồm (2p+1) nơ-ron.
Tuy nhiên không thể chỉ ra được chính xác số lượng nơ-ron tối ưu trong mạng, tính chất
của các nơ-ron, tức là dạng phi tuyến cụ thể thực hiện phép xấp xỉ này.
Một số công trình nghiên cứu về chủ đề này cho rằng số nơron tối ưu ở lớp ẩn thường
nhỏ hơn (2p+1).
Ngoài ra cũng cần phải nói cơ sở dữ liệu học phải có kích thước phù hợp với kiến trúc
mạng. Theo Vapnik và Chervonenkis, cơ sở dữ liệu học phải có số mẫu thoả mãn:
N ≈ 10.N
w
, ở đó N
w
là số trọng số của mạng. (1.36)
Gọi số nơ-ron thuộc lớp ẩn là L, số nơ-ron ở lớp vào là p thì trọng số của các kết nối giữa
lớp vào và lớp ẩn thứ nhất (kể cả ngưỡng) là:

D=(p+1).L (1.37)
Theo một số kết quả nghiên cứu, số mẫu của cơ sở dữ liệu học cần phải thoả mãn
N ≈ 4.D (1.38)
Khi số lượng mẫu của cơ sở dữ liệu học chưa đạt đến giới hạn cần thiết thì ta nên làm
giảm số lượng các kết nối để tránh hiện tượng học thuộc lòng.
I.2.4. Phương pháp học máy back-propagation
I.2.4.1. Thuật toán học theo phương pháp lan truyền ngược sai số
Thuật toán học theo phương pháp lan truyền ngược sai số do Rumelhart và các cộng sự
đề xuất [2] là một trong số những kết quả nghiên cứu quan trọng nhất đối với sự phát triển của
mạng nơ-ron nhân tạo. Thuật toán này được áp dụng cho mạng truyền thẳng nhiều lớp trong đó
các nơ-ron có thể sử dụng các hàm chuyển là các hàm liên tục có các dạng khác nhau.
Thuật toán sử dụng một tập các mẫu gồm các cặp đầu vào - đầu ra để luyện mạng. Với
mỗi cặp đầu vào - đầu ra (x
(k)
,d
(k)
) thuật toán lan truyền ngược sai số thực hiện hai giai đoạn sau:
● Giai đoạn thứ nhất, mẫu đầu vào x
(k)
được truyền từ lớp vào tới lớp ra, và ta có kết quả
đầu ra tính toán được là y
(k)
.
● Giai đoạn tiếp theo, tín hiệu lỗi được tính toán từ sự khác nhau giữa đầu ra quan sát
được d
(k)
với đầu ra tính toán y
(k)
sẽ được lan truyền ngược lại từ lớp ra đến các lớp trước
để điều chỉnh các trọng số của mạng. Để làm ví dụ ta xét mạng truyền thẳng có một lớp

ẩn dưới đây, đối với các mạng có kích thước lớn hơn thì thao tác cũng tương tự.
Mạng nơ-ron được xét có m nơ-ron ở lớp vào, l nơ-ron trong lớp ẩn và n nơ-ron ở lớp ra.
Đường kẻ liền thể hiện luồng tín hiệu được truyền từ đầu vào tới đầu ra còn các đường kẻ nét đứt
thể hiện luồng tín hiệu lỗi được truyền ngược trở lại từ đầu ra.
21
Hình 1.15 Lan truyền tín hiệu trong quá trình học theo phương pháp lan truyền ngược sai số
Chúng ta xét một cặp đầu vào - đầu ra để luyện mạng (x,d), để đơn giản chúng ta bỏ ký
hiệu mũ k thể hiện số thứ tự của cặp mẫu này trong bộ mẫu dùng để luyện mạng. Khi đưa vào
đầu vào x, nơ-ron thứ q trong lớp ẩn sẽ nhận tín hiệu vào của mạng là:
net
q
= (1.20)
nơron q ở lớp ẩn sẽ tính toán và tạo kết quả ở đầu ra của nó là:
z
q
= g(net
q
) = g( ) (1.21)
Do đó tín hiệu vào của nơron thứ i trên lớp ra sẽ là:
net
i
= (1.22)
Và cuối cùng, đầu ra của nơron i trên lớp ra sẽ là:
y
i
= g(net
i
) = g( ) = g( ) (1.23)
Công thức trên cho biết quá trình lan truyền tín hiệu từ đầu vào qua lớp ẩn tới đầu ra.
Tiếp theo chúng ta xét tín hiệu lỗi được lan truyền ngược lại từ lớp ra. Trước hết, đối với mỗi cặp

giá trị vào – ra chúng ta xây dựng một hàm giá như sau:
E(w) = (1.24)
Như vậy với một tập gồm p mẫu học, chúng ta lần lượt xây dựng được p hàm giá như
vậy. Việc học của mạng hay nhiệm vụ của giải thuật thực chất là tìm kiếm tập trọng số W trong
không gian RM (M là số trọng số có trong mạng) để lần lượt tối thiểu hoá các hàm giá như vậy.
Điều đáng chú ý là việc tối thiểu hoá được tiến hành liên tiếp nhau và theo chu kỳ đối với các
hàm giá.
Để tối thiểu hoá các hàm giá như vậy, giải thuật lan truyền ngược sai số sử dụng phương
pháp giảm gradient để điều chỉnh các trọng số liên kết giữa các nơ-ron. Bản chất của phương
pháp này là khi sai số E được vẽ như hàm của tham số gây ra sai số sẽ phải có một cực tiểu tại bộ
22
giá trị nào đó của tham số. Khi quan sát độ dốc của đường cong, chúng ta quyết định phải thay
đổi tham số thế nào để có thể tiến gần đến cực tiểu cần tìm kiếm hơn. Trong hình vẽ dưới đây,
giá trị của trọng số phải giảm nếu đạo hàm d
E
/d
W
là dương.
Hình 1.16 Sai số E được xét là hàm của trọng số W
Bằng biểu thức, chúng ta có thể biểu diễn phương pháp giảm gradient như sau:
Δw = w
(new)
– w
(old)
= -η. E/ w (1.25)
Ở đây η là hằng số dương xác định tốc độ giảm giá trị của w, còn dấu âm chỉ chiều giảm
gradient.
Áp dụng phương pháp giảm gradient đối với các trọng số liên kết giữa các nơron trong
lớp ẩn tới các nơ-ron của lớp ra ta có:
Δw

iq
= -η (1.26)
Do hàm sai số E là một hàm phức tạp và là hàm gián tiếp của trọng số w
iq
(công thức
1.24). Sử dụng nguyên tắc tính đạo hàm của hàm gián tiếp cho ta có:
Δw
iq
= -η[ ] ][ ] = η[d
i
- y
i
] [g’(net
i
)] [z
q
] ηδ
oi
z
q
(1.27)
Trong đó δ
oi
là tín hiệu sai số và chỉ số oi có nghĩa là nút thứ i trong trên lớp ra.
Tín hiệu sai số được tính như sau:
δ
oi
-[ ] = -[ ][ ] = [d
i
- y

i
] [g’(net
i
)] (1.28)
Trong đó net
i
là tín hiệu vào của nơron thứ i trên lớp ra và g’(net
i
) = net
i
)/ . Kết
quả này tương tự luật học delta áp dụng cho mạng perceptron một lớp với đầu vào bây giờ là đầu
ra z
q
của lớp ẩn.
23
Để điều chỉnh trọng số của các liên kết giữa lớp vào tới lớp ẩn ta cũng sử dụng phương
pháp giảm gradient và lấy đạo hàm theo các biến trung gian như đã áp ở trên. Xét liên kết giữa
nơ-ron thứ j ở lớp vào và nơ-ron thứ q trên lớp ra:
Δw
qj
= -η[ ] -η ][ ] = -η ][ ] [ ] (1.29)
Từ công thức (1.24) mỗi thành phần lỗi [d
i
– y
i
], i = 1,2,…, n là hàm của z
q
do vậy công
thức trên có thể tiếp tục biến đổi:

Δw
qj
= η (1.30)
Sử dụng công thức (1.24) ta viết lại biểu thức (1.26) như sau:
Δw
qj
= η μδ
hq
x
j
(1.31)
Trong đó δ
hq
là tín hiệu lỗi của nơron thứ q trong lớp ẩn và được định nghĩa như sau:
δ
hq
- ]= - ] [ ] = g’(net
q
) (1.32)
Với net
q
là tín hiệu vào của nơron thứ q, như vậy tín hiệu lỗi của nơron trên lớp ẩn khác
với tín hiệu lỗi của nơron trên lớp ra (xem công thức 1.28 và 1.32). Vì sự khác nhau này, thủ tục
điều chỉnh trọng số được gọi là luật học delta mở rộng. Nhìn lại công thức (1.32) tín hiệu lỗi δ
hq
của nơron thứ q trong lớp ẩn được xác định từ các tín hiệu lỗi δ
oi
, của các nơron trên lớp ra.
Tổng quát đối với lớp bất kỳ, luật lan truyền ngược có dạng:
Δw

ij
= ηδ
i
x
j
= ηδ
output_i
x
input_j
(1.33)
Trong đó “output_i” là đầu ra của nơron i và “input_j” là hai đầu kết nối của phần tử thứ
j tới phần tử thứ i, δ
i
là tín hiệu học được định nghĩa trong công thức (1.18)
Từ các phân tích trên, thuật toán lan truyền ngược sai số được xây dựng như sau:
Xét một mạng nơron truyền thẳng có Q lớp, q = 1, 2, …, Q, và gọi net
i
và y
i
là tín hiệu
vào và ra của nơron thứ i trong lớp q. Mạng này có m đầu vào và n đầu ra. Đặt
q
w
ij
là trọng số
của liên kết từ nơron thứ j trong lớp q-1 tới nơron thứ i trong lớp q.
Đầu vào: Một tập các cặp mẫu học {(x
(k)
, d
(k)

) | k =1,2,…,p} và vector đầu vào được bổ
sung thêm x
(k)
m+1

= -1.
Bước 0 (khởi tạo)
Chọn một hằng số η > 0 và E
max
(dung sai cho phép). Khởi tạo ngẫu nhiên các trọng số
trong khoảng giá trị nhỏ. Đặt E =0 và k = 1.
Bước 1 (thực hiện một quá trình lặp cho việc huấn luyện mạng)
Sử dụng mẫu học thứ k:
Tại lớp vào (q=1), với mọi i ta có:
q
y
i
=
1
y
i
= x
(k)
i
Bước 2 (lan truyền tín hiệu từ lớp vào tời lớp ra)
Bước 3 (Xác định tín hiệu lỗi
Q
δ
i
tại lớp ra)

24
Bước 4 (Lan truyền ngược sai số)
Lan truyền ngược sai số để điều chỉnh các trọng số và tính toán tín hiệu lỗi
q-1
δ
i
cho các
lớp trước:
Bước 5 (Kiểm tra điều kiện lặp)
Kiểm tra:
If(k < p) then
Begin
k = k + 1;
goto bước 1;
End
Else
Goto bước 6;
Bước 6 (Kiểm tra lỗi tổng cộng hiện thời đã chấp nhận được chưa)
If (E < E
max
) then
{kết thúc quá trình học và đưa ra bộ trọng số cuối cùng}
Else
Begin
E = 0;
K=1;
Goto bước 1 {để bắt đầu một lần học tiếp theo};
End;
Mỗi lần toàn bộ tập mẫu học được lan truyền qua mạng được gọi là một epoch. Số epoch
phụ thuộc vào từng trường hợp cụ thể và sự khởi tạo ban đầu. Có trường hợp thuật toán phải sau

hàng chục nghìn epoch mới hội tụ tới lời giải. Nếu tham số khởi tạo không phù hợp có thể làm
cho quá trình học không đạt kết quả mong muốn. Đối với mỗi epoch ta tính sai số trung bình của
mạng theo công thức sau:
RMS = (1.34)
Trong đó p là số mẫu được dùng để luyện mạng, n là số biến của véc-tơ đầu ra. Sai số
RMS thường được dùng để đánh giá kết quả học của mạng nơ-ron.
I.2.4.2. Một số yếu tố ảnh hưởng đến quá trình học theo phương pháp lan truyền ngược sai
số
Khởi tạo các trọng số
25

×