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

NGHIÊN CỨU PHƯƠNG PHÁP HỌC CÓ GIÁM SÁT VỚI MẠNG NEURON MLP

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 (989.64 KB, 32 trang )

HỌC VIỆN KỸ THUẬT QUÂN SỰ
KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN KHOA HỌC MÁY TÍNH
BÀI TẬP
MÔN TRÍ TUỆ NHÂN TẠO
Đề tài
NGHIÊN CỨU
PHƯƠNG PHÁP HỌC CÓ GIÁM SÁT
VỚI MẠNG NEURON MLP
Giảng viên
Tiến sĩ Ngô Hữu Phúc
Sinh viên thực hiện
Nguyễn Duy Hiếu – MHV: 11870194
Lớp: KHMT-K23 TPHCM
Tp Hồ Chí Minh, Tháng 7 năm 2012
MỤC LỤC
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
1. Giới thiệu
Hiện nay, phương pháp học có giám sát có thể nói là phương pháp được sử dụng
nhiều nhất trong các ứng dụng của mạng nơron. Một “thầy giáo” cung cấp các ví dụ mẫu
huấn luyện cho một mạng nơron học tập. Học tập trong bối cảnh này có nghĩa là gia tăng
thích ứng kết nối thông tin giữa các nơron với nhau để đưa ra một kết quả chính xác nhất.
Trong thực tế, phương pháp học này có thể được thể hiện như là một vấn đề giảm
thiểu về tham số một không gian nhiều chiều, cụ thể là không gian vector mở rộng ra bởi
trọng lượng. Một kỹ thuật điển hình để thực hiện tối ưu hóa thực hiện theo nguyên tắc giảm
độ dốc và thủ tục học giám sát phổ biến nhất là thuật toán lan truyền ngược.
Trong bài tìm hiểu này nội dung bao gồm 2 phần: phần 1 là tìm hiểu về mạng nơron
MLP và các phương pháp học, phần 2 là tìm hiểu về xây dựng một mạng nơron MLP và
thuật toán lan truyền ngược.
2. Mạng nơron nhân tạo.


2.1. Mạng nơron nhân tạo là gì?
Mạng nơron nhân tạo, Artificial Neural Network (ANN) gọi tắt là mạng nơron,
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ệ nơron sinh học. Nó được tạo lên từ một số lượng lớn các phần tử (gọi là phần tử xử lý
hay nơron) kết nối với nhau thông qua các liên kết (gọi là trọng số liên kết) làm việc như
một thể thống nhất để giải quyết một vấn đề cụ thể nào đó.
Một mạng nơron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận dạng mẫu,
phân loại dữ liệu, ) thông qua một quá trình học từ tập các mẫu huấn luyện. Về bản chất
học chính là quá trình hiệu chỉnh trọng số liên kết giữa các nơron.
Một nơron là một đơn vị xử lý thông tin và là thành phần cơ bản của một mạng nơron.
Cấu trúc của một nơron được mô tả trên hình dưới.
SVTH: Nguyễn Duy Hiếu Trang 2
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
Hình 1: 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:
[cong thuc]
SVTH: Nguyễn Duy Hiếu Trang 3
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
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).
Bảng 1: Một số hàm truyền thông dụng
Hàm truyền Đồ thị Định nghĩa
Symmetrical Hard
Limit (hardlims)
Linear (purelin)
Saturating Linear
(satlin)
Log-Sigmoid (logsig)
2.2. 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
SVTH: Nguyễn Duy Hiếu Trang 4
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
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.
2.2.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 2: Mạng tự kết hợp
 Kết hợp khác kiểu (heteroassociative): là mạng có tập nơron đầu vào và đầu ra riêng
biệt. Perceptron, các mạng Perceptron nhiều tầng (MLP: MultiLayer Perceptron), mạng
Kohonen, … thuộc loại này.
SVTH: Nguyễn Duy Hiếu Trang 5
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
Hình 3: Mạng kết hợp khác kiểu
Ngoài ra tùy thuộc vào mạng có các kết nối ngược (feedback connections) từ các
nơron đầu ra tới các nơron đầu vào hay không, người ta chia ra làm 2 loại kiến trúc mạng.
 Kiến trúc truyền thẳng (feedforward architechture): là kiểu kiến trúc mạng không có
các kết nối ngược trở lại từ các nơron đầu ra về các nơron đầu vào; mạng không lưu lại các
giá trị output trước và các trạng thái kích hoạt của nơron. Các mạng nơron truyền thẳng cho
phép tín hiệu di chuyển theo một đường duy nhất; từ đầu vào tới đầu ra, đầu ra của một tầng
bất kì sẽ không ảnh hưởng tới tầng đó. Các mạng kiểu Perceptron là mạng truyền thẳng.
Hình 4: Mạng truyền thẳng
 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.
SVTH: Nguyễn Duy Hiếu Trang 6
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
Hình 5: Mạng phản hồi
2.2.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 6: Perceptron
Đầu ra của mạng được xác định như sau: mạng lấy tổng có trọng số các thành phần
của vector đầu vào, kết quả này cùng ngưỡng b được đưa vào hàm truyền (Perceptron dùng
hàm Hard-limit làm hàm truyền) và kết quả của hàm truyền sẽ là đầu ra của mạng.

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.
SVTH: Nguyễn Duy Hiếu Trang 7
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
2.2.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.
Hình 7: Mạng MLP tổng quát
Kiến trúc của một mạng MLP tổng quát có thể mô tả như sau:
 Đầu vào là các vector (x1, x2, , 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:
SVTH: Nguyễn Duy Hiếu Trang 8
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
 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.
3. Phương pháp học có giám sát với mạng nơron MLP
3.1. Các phương pháp học
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ì?
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.
SVTH: Nguyễn Duy Hiếu Trang 9
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
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).
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: 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).
3.2. Phương pháp học có giám sát trong mạng nơron
SVTH: Nguyễn Duy Hiếu Trang 10
Dữ liệu dùng để huấn luyện
(đã biết nội dung và tính chất dữ liệu
Giải thuật huấn luyện Hàm mục tiêu
Mạng nơron
Ra
Vào
-
+
Hình 8: Sơ đồ huấn luyện mạng nơron có giám sát

error
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
Mạng nơron học có giám sát là mạng nơron khi huấn luyện, tín hiệu đầu vào đã biết
rõ, đầu ra đã xác định. Nhiệm vụ chỉ là: huấn luyện bộ trọng số. Sau khi đã huấn luyện xong,
một tín hiệu đầu vào sẽ được kết hợp với bộ trọng số đã được huấn luyện để đưa ra một tín
hiệu đầu ra. Từ tín hiệu đầu ra này mà mạng nơron sẽ cho biết đây là hư hỏng gì. Mô hình
huấn luyện mạng nơron giám sát có thể được minh họa trong hình sau.
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:
SVTH: Nguyễn Duy Hiếu Trang 11
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
 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.
3.2.1. Học có giám sát với mạng Perceptron một lớp
Luật học perceptron được Rosenblatt đưa ra vào cuối năm 1950 là mục cho nguyên lý
sửa sai theo giải thuật lan truyền ngược sai lệch. Luật học này dựa trên mô hình Perceptron
chỉ gồm một nơron duy nhất, dùng hàm ngưỡng tuyến tính làm hàm truyền nên được dùng
cho việc nhận dạng và phân đối tượng thành 2 loại.
Mô tả giải thuật:
Cho trước tập các giá trị vào đầu ra
Đầu vào Đầu ra
1.x
1

= (, , …) y
1
2.x
2
= (, , …,) Y
2
SVTH: Nguyễn Duy Hiếu Trang 12
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
……………
K.x
k
= (, , …,) Y
k
Hình 9: mô hình Perceptron và chỉ dẫn về trọng lượng kết nối
Vấn đề là tìm vetơ trọng số w như là
0(x) = sign(<w,x>) = y
cho tất cả các mẫu câu trong tập huấn luyện.
Với 0 là giá trị của mạng nơron, y là giá trị ra mong muốn, e là sai lệch giữa hai giá trị
này: e = y – 0
Hàm kích hoạt được dùng là hàm ngưỡng tuyến tính, cho dưới dạng
0(x) =
Phương pháp học theo Perceptron được thực hiện bằng cách thay đổi w theo công
thức:
W= w + (y-0)x với >0 là hệ số học. (1)
Từ phương trình (1) ta thấy rằng giá trị của mạng nơron bằng giá trị ra mong muốn,
0=y, khi w không thay đổi. Khi đó quá trình học kết thúc.
Giải thuật:
Bước 1: chọn một giá trị >0
Bước 2: khởi tạo trọng số w một cách ngẫu nhiên, thiết lập sai lệch e=0, bắt đầu với
mẫu thứ k=1.

Bước 3: bắt đầu học. Cho x=x
k
và tính đầu ra
0(x) =
Bước 4: cập nhật trọng số
W= w + (y-0)x
Bước 5: tính sai lệch
SVTH: Nguyễn Duy Hiếu Trang 13
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
c = e + ||y – 0||
2
Bước 6: nếu k < K (tức chưa hết tập dữ liệu cần học) thì tăng k lên để qua mẫu kế tiếp
rồi trở lại bước 3, nếu k = K qua bước 7.
Bước 7: xong một chu kỳ học. Nếu e = 0 kết thúc quá trình học.
Còn nếu e > 0 thì thiết lập e = 0, k = 1 và khởi tạo chu kỳ học mới bằng cách trở lại
bước 3.
Thuyết sau đây chứng tỏ rằng nếu bài toán có nhiều lời giải thì giải thuật học
Perceptron sẽ tìm ra một lời giải trong số đó. Thuyết hội tụ: Nếu bài toán là khả tách tuyến
tính thì chương trình sẽ chỉ lặp lại một số lần nhất định.
3.2.2. Học có giám sát với mạng nơron MLP
Trong phương pháp này ta sử dụng thuật toán lan tuyện ngược để thực hiện:
Thuật toán:
Ta sử dụng một số kí hiệu sau:
• j: nơron 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
• 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.
SVTH: Nguyễn Duy Hiếu Trang 14
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
- 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
4. Các vấn đề trong xây dựng mạng MLP
4.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ô
SVTH: Nguyễn Duy Hiếu Trang 15
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
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 10: Mối liên hệ giữa sai số và kích thước mẫu
Trong thực hành thường gặp phải 2 vấn đề sau :
 Đối với hầu hết bài toán thực tế, mẫu bị ràng buộc chặt chẽ với dữ liệu có sẵn. Ta
thường không có được số lượng mẫu mong muốn.
 Kích thước mẫu cũng có thể bị giới hạn bởi bộ nhớ hoặc khả năng lưu trữ của máy
tính. Nếu tất cả các dữ liệu đồng thời được giữ trong bộ nhớ suốt thời gian luyện, kích thước
bộ nhớ máy tính sẽ bị chiếm dụng nghiêm trọng.
Nếu lưu trữ trên đĩa sẽ cho phép dùng mẫu lớn hơn nhưng thao tác đọc đĩa từ thế hệ
này sang thế hệ khác khiến cho tiến trình chậm đi rất nhiều.
Chú ý: việc tăng kích thước mẫu không làm tăng thời gian luyện. Những tập mẫu lớn
hơn sẽ yêu cầu ít thế hệ luyện hơn. Nếu ta tăng gấp đôi kích thước của mẫu, mỗi thế hệ luyện
sẽ tốn thời gian khoảng gấp đôi, nhưng số thế hệ cần luyện sẽ giảm đi một nửa. Điều này có

nghĩa là kích thước mẫu (cũng có nghĩa là độ chính xác của mô hình) không bị giới hạn bởi
thời gian luyện.
Luật cơ bản là: Sử dụng mẫu lớn nhất có thể sao cho đủ khả năng lưu trữ trong bộ
nhớ trong (nếu lưu trữ đồng thời) hoặc trên đĩa từ (nếu đủ thời gian đọc từ đĩa).
b. Mẫu con
SVTH: Nguyễn Duy Hiếu Trang 16
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
Trong xây dựng mô hình cần chia tập mẫu thành 2 tập con: một để xây dựng mô hình
gọi là tập huấn luyện (training set), và một để kiểm nghiệm mô hình gọi là tập kiểm tra (test
set). Thông thường dùng 2/3 mẫu cho huấn luyện và 1/3 cho kiểm tra. Điều này là để tránh
tình trạng quá khớp (overfitting).
c. Sự phân tầng mẫu
Nếu ta tổ chức mẫu sao cho mỗi mẫu trong quần thể đều có cơ hội như nhau thì tập
mẫu được gọi là tập mẫu đại diện. Tuy nhiên khi ta xây dựng một mạng để xác định xem một
mẫu thuộc một lớp hay thuộc một loại nào thì điều ta mong muốn là các lớp có cùng ảnh
hưởng lên mạng, để đạt được điều này ta có thể sử dụng mẫu phân tầng. Xét ví dụ sau[1]:
Giả sử ta xây dựng mô hình nhận dạng chữ cái viết tay tiếng Anh, và nguồn dữ liệu
của ta có 100.000 ký tự mà mỗi ký tự được kèm theo một mã cho biết nó là chữ cái nào. Chữ
cái xuất hiện thường xuyên nhất là e, nó xuất hiện 11.668 lần chiếm khoảng 12%; chữ cái
xuất hiện ít nhất là chữ z, chỉ có 50 lần chiếm 0,05%.
Trước hết do giới hạn của bộ nhớ máy tính, giả sử bộ nhớ chỉ có thể xử lý được 1300
mẫu. Ta tạo hai dạng tập mẫu: tập mẫu đại diện và tập mẫu phân tầng. Với tập mẫu đại diện,
chữ e sẽ xuất hiện 152 lần (11,67% của 1300) trong khi đó chữ z chỉ xuất hiện một lần
(0,05% của 1300). Ngược lại ta có thể tạo tập mẫu phân tầng để mỗi chữ có 50 mẫu. Ta thấy
rằng nếu chỉ có thể dùng 1300 mẫu thì tập mẫu phân tầng sẽ tạo ra mô hình tốt hơn. Việc
tăng số mẫu của z từ 1 lên 50 sẽ cải thiện rất nhiều độ chính xác của z, trong khi nếu giảm số
mẫu của e từ 152 xuống 50 sẽ chỉ giảm chút ít độ chính xác của e.
Bây giờ giả sử ta dùng máy tính khác có bộ nhớ đủ để xử lý một lượng mẫu gấp 10
lần, như vậy số mẫu sẽ tăng lên 13000. Rõ ràng việc tăng kích thước mẫu sẽ giúp cho mô
hình chính xác hơn. Tuy nhiên ta không thể dùng tập mẫu phân tầng như trên nữa vì lúc này

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

câu hỏi «hàm truyền như thế nào được coi là tốt ? » là điều không hề đơn giản. Có một số
quy tắc khi chọn hàm truyền như sau:
 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
SVTH: Nguyễn Duy Hiếu Trang 18
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
= 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 nơron là đối xứng (tức là với đầu vào
ngẫu nhiên thì đầu ra có phân bố đối xứng). Nếu một mạng nơron không đối xứng thì giá trị
đầu ra sẽ lệch sang một bên, không phân tán lên toàn bộ miền giá trị của output. Điều này có
thể làm cho mạng rơi vào trạng thái bão hòa, không thoát ra được.
Trong thực tế người ta thường sử dụng các hàm truyền dạng – S. Một hàm s(u) được
gọi là hàm truyền dạng – S nếu nó thỏa mãn 3 tính chất sau:
- s(u) là hàm bị chặn: tức là tồn tại các hằng số C1 ≤ C2 sao cho: C1 ≤ s(u) ≤ C2 với
mọi u.
- s(u) là hàm đơn điệu tăng: giá trị của s(u) luôn tăng khi u tăng. Do tính chất thứ nhất,
s(u) bị chặn, nên s(u) sẽ tiệm cận tới giá trị cận trên khi u dần tới dương vô cùng, và tiệm cận
giá trị cận dưới khi u dần tới âm vô cùng.
- s(u) là hàm khả vi: tức là s(u) liên tục và có đạo hàm trên toàn trục số.
Một hàm truyền dạng - S điển hình và được áp dụng rộng rãi là hàm Sigmoid.

b. Xác định số nơron tầng ẩn
Câu hỏi chọn số lượng noron trong tầng ẩn của một mạng MLP thế nào là khó, nó phụ
thuộc vào bài toán cụ thể và vào kinh nghiệm của nhà thiết kế mạng. Nếu tập dữ liệu huấn
luyện được chia thành các nhóm với các đặc tính tương tự nhau thì số lượng các nhóm này
có thể được sử dụng để chọn số lượng nơron ẩn. Trong trường hợp dữ liệu huấn luyện nằm
rải rác và không chứa các đặc tính chung, số lượng kết nối có thể gần bằng với số lượng các
mẫu huấn luyện để mạng có thể hội tụ. Có nhiều đề nghị cho việc chọn số lượng nơron tầng
ẩn h trong một mạng MLP. Chẳng hạn h phải thỏa mãn h>(p-1)/(n+2), 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.
SVTH: Nguyễn Duy Hiếu Trang 19
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
Việc chọn số tầng ẩn cũng là một nhiệm vụ khó. Rất nhiều bài toán đòi hỏi nhiều hơn một
tầng ẩn để có thể giải quyết tốt.
Để tìm ra mô hình mạng nơron tốt nhất, Ishikawa and Moriyama (1995) sử dụng học
cấu trúc có quên (structural leanrning with forgetting), tức là trong thời gian học cắt bỏ đi
các liên kết có trọng số nhỏ. Sau khi huấn luyện, chỉ các noron có đóng góp vào giải quyết
bài toán mới được giữ lại, chúng sẽ tạo nên bộ xương cho mô hình mạng nơron.
c. Khởi tạo trọng
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 nơron thu được là cân bằng (với đầu vào ngẫu nhiên
thì sai số lan truyền ngược cho các ma trận trọng số là xấp xỉ bằng nhau):
|ΔW
1
/W

1
| = |ΔW
2
/W
2
| = |ΔW
3
/W
3
|
Nếu mạng nơron không cân bằng thì quá trình thay đổi trọng số ở một số ma trận là
rất nhanh trong khi ở một số ma trận khác lại rất chậm, thậm chí không đáng kể. Do đó để
các ma trận này đạt tới giá trị tối ưu sẽ mất rất nhiều thời gian.
 Tạo trọng 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.
4.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 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.
SVTH: Nguyễn Duy Hiếu Trang 20
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
Hình 11: 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.
Có nhiều phương pháp để huấn luyện dữ liệu mới. Chẳng hạn sau khi một số mẫu mới
được học, một vài mẫu cũ được chọn ngẫu nhiên trong số các mẫu trước đó để đưa vào học.
Vấn đề sẽ khó khăn hơn khi các mẫu cũ không còn nữa. Khi đó các mẫu giả
(pseudoexamples) có thể được sử dụng để lưu giữ các trọng số càng gần các trọng số trước
càng tốt.
4.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. 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:
SVTH: Nguyễn Duy Hiếu Trang 21
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
- Hạn chế số nút ẩn
- Ngăn không cho mạng sử dụng các trọng số lớn
- Giới hạn số bước luyện
Khi mạng được luyện, nó chuyển từ các hàm ánh xạ tương đối đơn giản đến các hàm
ánh xạ tương đối phức tạp. Nó sẽ đạt được một cấu hình tổng quát hóa tốt nhất tại một điểm
nào đó. Sau điểm đó mạng sẽ học để mô hình hóa nhiễu, những gì mạng học được sẽ trở
thành quá khớp. Nếu ta phát hiện ra thời điểm mạng đạt đến trạng thái tốt nhất này, ta có thể

ngừng tiến trình luyện trước khi hiện tượng quá khớp xảy ra.
Ta biết rằng, chỉ có thể để đánh giá mức độ tổng quát hóa của mạng bằng cách kiểm
tra mạng trên các mẫu nó không được học. Ta thực hiện như sau: chia mẫu thành tập mẫu
huấn luyện và tập mẫu kiểm tra. Luyện mạng với tập mẫu huấn luyện nhưng định kỳ dừng lại
và đánh giá sai số trên tập mẫu kiểm tra. Khi sai số trên tập mẫu kiểm tra tăng lên thì quá
khớp đã bắt đầu và ta dừng tiến trình luyện.
Chú ý rằng, nếu sai số kiểm tra không hề tăng lên, tức là mạng không có đủ số nút ẩn
để quá khớp. Khi đó mạng sẽ không có đủ số nút cần thiết để thực hiện tốt nhất. Do vậy nếu
hiện tượng quá khớp không hề xảy ra thì ta cần bắt đầu lại nhưng sử dụng nhiều nút ẩn hơn.
5. Ví dụ mô hình nhận dạng chữ viết offline
5.1. Mô hình
Nhận dạng chữ viết tay gián tiếp (Off-line handwritten character recognition) là mô
hình nhận dạng chữ viết với dữ liệu đầu vào ở dạng hình ảnh của các ký tự. Hệ thống sẽ quét
và nhận dạng tĩnh dựa trên các hình ảnh đó. Mô hình này ta thường bắt gặp trong việc số hóa
những quyển sách, tài liệu trên giấy từ thế giới thực vào máy vi tính. Khác với mô hình nhận
dạng Online, kiểu nhận dạng này chỉ dựa trên tốc độ xử lý của hệ thống. Thông thường, kết
quả nhận được từ mô hình này chính xác hơn 90%. Khó khăn của mô hình này là ta phải tiến
hành xử lý trên hình ảnh của ký tự, so sánh và rút chọn ra những đặc trưng. Việc này thường
khiến chúng ta mất thời gian hơn.Nhưng bù lại, khi ta xử lý tốt vấn đề này thì việc nhận dạng
càng chính xác.
Trong bài báo cáo này, chúng ta sẽ đề cập đến mô hình nhận dạng chữ viết offline sử
dụng mạng MLP dựa trên Demo. Mục tiêu chính của Demo này là chứng minh khả năng của
việc triển khai mạng Nơron nhân tạo trong việc nhận ký tự offline: sử dụng kỉ thuật phân tích
SVTH: Nguyễn Duy Hiếu Trang 22
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
ảnh dể nhận diện chữ viết tay. Cách thức thực hiện trong bài này là ta sẽ input hình ảnh đầu
vào, phân tích, phát hiện các kí tự, lập ma trận các ký hiệu và đào tạo mạng với một tập hợp
các ký tự Unicode.
5.2. Mạng MLP
Mô hình mạng nơron sử dụng ở đây là mạng lan truyền thẳng ( MultiLayer Perceptron

) với ba tầng gồm một tầng vào, một tầng ẩn và một tầng đầu ra. Số nơron đầu vào bằng số
chiều của vector đặc trưng cho mẫu, số nơron tầng ẩn có thể thay đổi linh hoạt trong quá
trình luyện mạng, và số nơron tầng ra bằng số lớp cần phân loại.
Các mạng nơron Multi-Layer Perceptron có lẽ là kiến trúc mạng phổ biến nhất trong
ngày hôm nay sử dụng. Các tế bào của mạng thực hiện một tổng hợp có trọng số của đầu vào
ngưỡng của mình và vượt qua mức này kích hoạt thông qua một chức năng kích hoạt để đưa
ra giá trị của bản thân, và các tế bào được sắp xếp theo một cấu trúc liên kết soát theo lớp.
Mạng này do đó có một cách hiểu đơn giản là một hình thức đầu vào-đầu ra mô hình, với các
trọng số và ngưỡng các thông số tự do của mô hình. Các vấn đề quan trọng trong Multilayer
perceptrons (MLP) thiết kế bao gồm các đặc điểm kỹ thuật của số lớp ẩn và số lượng các đơn
vị trong mỗi lớp.
f(x)= – 1
và đạo hàm: f’(x) = f(x) (1-f(x)
Hình 12: Mạng nơron MLP cho mô hình nhận dạng Offline
Như vậy, ta sẽ xây dựng một mạng MLP gồm có 3 lớp: một lớp nhập vào , một lớp ẩn
và một lớp xuất ra. Lớp đầu vào được cấu thành từ 150 tế bào nơron tiếp nhận dữ liệu điểm
ảnh nhị phân từ một điểm ảnh biểu tượng ma trận 10x15 . Kích thước của ma trận này là
SVTH: Nguyễn Duy Hiếu Trang 23
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
quyết định có xem xét đến chiều cao trung bình và chiều rộng của hình ảnhký tự có thể được
ánh xạ mà không đưa ra bất kỳ pixel nhiễu đáng kể. Các lớp ẩn được cấu tạo từ 250 tế bào
nơron có số lượng được quyết định trên cơ sở kết quả tối ưu trên một cơ sở thử nghiệm và
báo lỗi. Lớp xuất ra gồm có 16 tế bào nơron tương ứng với 16-bit của mã Unicode. Để khởi
tạo các trọng số một hàm ngẫu nhiên được sử dụng để chỉ định một số ngẫu nhiên ban đầu
nằm giữa hai số nguyên định sẵn tên weight_bias. Các sai lệch trọng số được chọn thử và lỗi
quan sát để tương ứng với trọng số trung bình của việc hội tụ nhanh chóng.
5.3. Cơ sở dữ liệu
Cơ sở dữ liệu cho bài toán nhận dạng ký tự quang gồm 90 ký tự Latinh với các loại
font khác nhau, cùng với giá trị Unicode tương ứng của chúng:
Hình 13: mẫu các ký tự trong nhận dạng ký tự

5.4. Quá trình nhận dạng
Các hoạt động mà mạng thực thi trong Demo được đề cập gồm các giai đoạn sau:
Giai đoạn huấn luyện:
 Phân tích hình ảnh cho ký tự
 Chuyển đổi các biểu tượng với ma trận điểm ảnh
 Lấy ký tự đầu ra tương ứng mong muốn và chuyển đổi sang Unicode
 Tính toán đầu ra
 So sánh đầu ra với giá trị Unicode đầu ra mong muốn và tính toán lỗi
 Điều chỉnh trọng số cho phù hợp và lặp lại quá trình cho đến khi số lần lặp đặt trước
Giai đoạn thử nghiệm:
 Phân tích hình ảnh cho ký tự
 Chuyển đổi các biểu tượng với ma trận điểm ảnh
 Tính toán đầu ra
 Hiển thị ký tự đại diện của các đầu ra Unicode
Dựa trên các hoạt động này, chúng ta sẽ đề ra phương pháp nhận dạng gồm các bước
theo sơ đồ sau:
SVTH: Nguyễn Duy Hiếu Trang 24
Nghiên cứu phương pháp học có giám sát với mạng nơron MLP
a) Thu nhận ảnh:
Ảnh văn bản, tài liệu có thể được thu nhận bằng máy quét scanner, webcam, hoặc các
thiết bị thu nhận ảnh thông dụng khác.
b) Phân tích ảnh để tìm ký tự:
Quá trình phân tích ảnh để tìm ký tự bao gồm hai bước sau:
Bước 1: Tách dòng ký tự ra khỏi ảnh ký tự:
Quá trình phân tích ảnh để phát hiện các ký tự bằng cách kiểm tra điểm ảnh là phần
cốt lõi của bộ tiền xử lý đầu vào và cả giai đoạn thử nghiệm.
Mức độ ký tự được công nhận trong một tập tin hình ảnh đầu vào dựa trên giá trị màu
sắc của điểm ảnh cá nhân, các giới hạn trong Demo này được giả định là một trong hai màu
đen RGB (255,0,0,0) hay RGB(255.255.255.255) màu trắng.
Những hình ảnh đầu vào được giả định là ở dạng bitmap ở bất kỳ độ phân giải nào đều

có thể được ánh xạ tới một đối tượng bitmap trong môi trường Microsoft Visual Studio. Thủ
tục phân tích hình ảnh để phát hiện các ký tự được liệt kê trong các thuật toán sau đây:
1: bắt đầu từ pixel đầu tiên x và (0,0)
2: quét chiều rộng của hình ảnh với Y tăng dần
- Nếu một điểm ảnh màu đen được phát hiện, y điểm đầu của dòng đầu tiên.
- Nếu không tiếp tục quét.
- Nếu không có điểm ảnh màu đen được tìm thấy, tăng y và reset lại x để quét dòng
tiếp theo chiều ngang.
3: bắt đầu từ điễm đầu của dòng đầu tiên và x đầu tiên(0,line_top)
4: quét theo chiều rộng của hình trên cùng y.
- Nếu không tìm được điểm ảnh nào thì y-1 là đáy là dòng, tăng số dòng lên 1
SVTH: Nguyễn Duy Hiếu Trang 25

×