Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo

TÓM TẮT Với vị trí dẫn đầu trong xu thế công nghệ hiện tại, trí tuệ nhân tạo (Artificial Intelligence - AI), đã v| đang được nhiều nhà khoa học trên toàn thế giới nghiên cứu và phát triển. Ở Việt Nam, chủ đề này đã thu hút được nhiều sự quan tâm trong v|i năm gần đ}y, tuy nhiên số lượng c{c b|i b{o cũng như t|i liệu liên quan còn khá hạn chế. Bài báo trình bày những khái niệm cơ bản, theo khía cạnh đơn giản nhất, từ đó có thể l|m rõ được bản chất của AI, hay cụ thể hơn l| Deep Learning. Chúng tôi lựa chọn mô hình mạng neuron nhân tạo tiêu chuẩn, mạng perceptron đa lớp (Multi-layer Perceptron), thực hiện tác vụ nhận dạng chữ số viết tay. Hiệu năng của mạng được đ{nh gi{ thông qua tỷ lệ nhận dạng đúng hình ảnh. Bên cạnh đó, c{c tham số chi phối đến kết quả như tỷ lệ học (Learning Rate), số lớp ẩn/số neuron lớp ẩn v| kích thước gói dữ liệu cũng được khảo s{t v| đ{nh giá trong quá trình thực hiện

Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo trang 1

Trang 1

Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo trang 2

Trang 2

Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo trang 3

Trang 3

Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo trang 4

Trang 4

Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo trang 5

Trang 5

Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo trang 6

Trang 6

Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo trang 7

Trang 7

Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo trang 8

Trang 8

Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo trang 9

Trang 9

Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 12 trang xuanhieu 8160
Bạn đang xem 10 trang mẫu của tài liệu "Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo

Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo
biểu thị mức độ quan trọng của ngõ vào so 
với ngõ ra [5]. Giá trị ngõ ra của perceptron phụ thuộc vào tổng giữa trọng số và ngõ 
vào: 
{
 ∑ 
 ∑ 
 (1) 
Trong đó : ngõ vào thứ của perceptron; : trọng số của ngõ vào ; 
 : mức ngưỡng quyết định giá trị ngõ ra. H|m x{c định ngõ ra ở (1) còn được 
gọi là hàm step. 
Ngõ ra 
X2 
X1 
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học, ĐH Huế Tập 14, Số 1 (2019) 
121 
2.2 Bias – b 
Để đơn giản cho perceptron quyết định giá trị đầu ra 0 hay 1, có thể thay thế 
giá trị ngưỡng (threshold) bằng nghịch đảo số Bias hay ngưỡng = -b. 
Và có thể viết lại (1) như sau: 
{
 ∑ 
 ∑ 
 (2) 
2.3 Neuron sigmoid và hàm sigmoid 
Tương tự với perceptron, neuron sigmoid có nhiều ngõ vào (x1, x2, x3<) tương 
ứng có các trọng số cho mỗi đầu vào khác nhau (w1, w2, w3<) v| bias b. Nhưng thay vì 
chỉ nhận một trong hai giá trị 0/1, chúng có thể có bất kì giá trị thực nào giữa 0 và 1 (ví 
dụ: 0,45), ngõ ra được x{c định bởi hàm kích hoạt : 
 (3) 
Trong đó: ∑ 
Giá trị ngõ ra của hàm sigmoid có thể được viết lại như sau : 
 (∑ )
 (4) 
Hàm sigmoid, dùng để tính toán ngõ ra của các neuron giữa các lớp của mạng, 
cho phép giá trị ngõ ra là các số thực nằm trong khoảng 0 đến 1, thay vì chỉ nhận 2 giá 
trị 0/1 đơn thuần [4] như ở hàm step. Từ đó, giúp cho quá trình học của neuron linh 
hoạt hơn, c{c tham số được hiệu chỉnh tốt hơn thay vì thay đổi đột ngột. Quá trình trên 
được biểu diễn thông qua đồ thị của 2 h|m tương ứng, mô tả như trong hình 2. 
(a) 
(b) 
Hình 2. Đồ thị hàm sigmoid (a) và hàm step (perceptron) (b). 
Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo 
122 
3. MÔ HÌNH MẠNG NEURON NHÂN TẠO 
3.1 Cấu trúc mạng neuron nhân tạo 
Trong phạm vi bài báo, chúng tôi chỉ để cập đến mạng perceptron đa lớp 
(MLP). Về cơ bản, MLP có tối thiểu 3 lớp: một lớp ngõ vào, một lớp ngõ ra và một hoặc 
nhiều lớp ẩn [5+. Trong đó, lớp ngõ vào tiếp nhận dữ liệu vào mạng neuron; lớp ẩn 
(hidden layer) dùng để tính toán các thông số dựa trên dữ liệu từ lớp ngõ vào và 
chuyển tiếp kết quả đến lớp tiếp theo; lớp ngõ ra thực hiện đ{nh gi{ v| đưa ra kết quả 
dựa trên các thuật toán thích hợp. 
Các mô hình mạng MLP sử dụng ngõ ra lớp trước làm ngõ vào lớp sau, không 
có sự phản hồi từ lớp ngõ ra về lại lớp ngõ v|o được gọi là mạng feed-forward [6] và sự 
liên kết các neuron giữa các lớp được gọi là fully connected [3] hay mạng kết nối hoàn 
toàn. Mạng fully connected có ưu điểm l| đơn giản, dễ triển khai tuy nhiên nhược 
điểm là số lượng thông số và số lượng phép tính trong mạng rất lớn. 
Ví dụ, với mô hình mạng như hình 3, bỏ qua thông số bias, số lượng trọng số 
đã l|: 4 x 5 + 5 x 3 = 35 trọng số. 
Hình 3. Một mô hình mạng neuron nhân tạo cơ bản. 
3.2 Phương pháp “học” trong mạng MLP 
Hiệu suất của mạng được đ{nh gi{ bằng cách sử dụng hàm tổn hao hay cost 
function [5]. Dựa v|o h|m n|y để đ{nh gi{ một mô hình mạng “học” tốt hay không tốt. 
Giá trị của hàm tổn hao có giá trị lớn nếu ngõ ra dự đo{n của mạng khác với nhãn thực 
sự v| ngược lại. 
∑ 
 (5) 
Trong đó: : hàm tổn hao; : tổng số nhãn; : ngõ ra của mạng dự đo{n; 
 : giá trị ngõ ra thực sự tương ứng với ngõ vào . 
Việc huấn luyện mạng neuron nhân tạo là tìm ra các giá trị phù hợp của trọng 
số và bias sau mỗi vòng lặp từ những giá trị ngẫu nhiên được khởi tạo ban đầu để có 
được ngõ ra như mong muốn. Bằng phương ph{p Gradient Descent cho phép thay đổi 
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học, ĐH Huế Tập 14, Số 1 (2019) 
123 
các trọng số và bias bằng cách lấy đạo hàm của hàm tổn hao [3]. Cụ thể, các tham số sẽ 
được cập nhật như sau: 
∑
 (6) 
∑
 (7) 
 Trong đó : tương ứng là các trọng số và bias mới của neuron được cập 
nhật; : tỷ lệ học; : mini-batch size được tạo ra bằng cách chia nhỏ số lượng dữ liệu. 
Các thông số này sẽ được khảo sát rõ ở phần 4. 
4. THỰC NGHIỆM VÀ KẾT QUẢ 
4.1 Cơ sở dữ liệu 
Bài báo sử dụng tập dữ liệu MNIST [7] (Modified National Institute of 
Standards and Technology) để l|m cơ sở dữ liệu đ{nh gi{ hệ thống. Bộ dữ liệu MNIST 
được chia thành hai phần: dữ liệu dành cho quá trình huấn luyện và dữ liệu dành cho 
quá trình kiểm tra. Dữ liệu huấn luyện gồm 50000 ảnh, dữ liệu kiểm tra gồm 10000 
ảnh. Tất cả đều là hình ảnh đen trắng các chữ số viết tay từ 0 tới 9 có kích thước 28 
pixel x 28 pixel đã được gắn nhãn đúng. Một số hình ảnh ngẫu nhiên được trích xuất 
từ bộ dữ liệu MNIST: 
Nhãn: 3 Nhãn: 5 Nhãn: 7 Nhãn: 8 Nhãn: 9 
Hình 4. Một số ảnh đã được gắn nhãn tương ứng. 
4.2 Lựa chọn các thông số ban đầu 
Ngõ vào và ngõ ra của mạng sẽ là các thông số cố định của một mô hình mạng 
neuron nhân tạo. Ở bài toán nhận diện chữ số viết tay sử dụng bộ dữ liệu MNIST, mục 
đích của mạng sẽ nhận dạng được 10 chữ số khác nhau từ 0 đến 9, từ đó lớp ngõ ra 
cuối cùng cần 10 neuron thể hiện 10 chữ số khác nhau. Với ảnh 2 chiều có kích thước 
28 pixel x 28 pixel chuyển về dạng dữ liệu 1 chiều 784 pixel x 1 pixel cho mỗi hình ảnh. 
Ta xây dựng một mô hình mạng neuron với 784 neuron đầu v|o tương ứng với 784 
pixel. Với 10 giá trị ngõ ra (tương ứng với các nhãn 0, 1, 2, <, 9), sẽ có 10 neuron ở lớp 
ngõ ra. 
Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo 
124 
Các thông số kh{c như: số neuron lớp ẩn, số lớp ẩn, tỷ lệ học, mini-batch size sẽ 
được làm rõ ở phần sau. 
4.3 Kết quả thực nghiệm 
Mô hình thực nghiệm được lập trình với ngôn ngữ Python 3, framework được 
sử dụng là Numpy. Khởi tạo với mô hình mạng neuron ban đầu được tham khảo ở [3] 
gồm 3 lớp: lớp ngõ vào 784 neuron, 1 lớp ẩn có 30 neuron, lớp ngõ ra 10 neuron. 
Thử nghiệm với 100 chu kỳ học, lúc này kết quả huấn luyện gần như đạt bão 
hòa trong 10 chu kỳ liên tiếp gần (mỗi chu kỳ học tương đương một lần quét qua hết 
tất cả ảnh huấn luyện), dữ liệu huấn luyện và dữ liệu kiểm tra được chia thành các tập 
con, mỗi tập con có 10 ảnh, tỷ lệ học = 0,3. 
Kết quả thực nghiệm được tiến hành trên máy tính cá nhân có cấu hình: Intel 
Core i5-4210M 2,6 GHz, RAM 8GB, GPU AMD Radeon HD 8750M. Thời gian huấn 
luyện cho mô hình trên khoảng 15 phút, cho tỷ lệ nhận dạng đúng 95,15% ở trên dữ 
liệu kiểm tra. 
Bên cạnh mô hình khởi tạo ban đầu, các mô hình với các thông số khác nhau sẽ 
được khảo s{t để làm rõ chức năng của từng thông số trong mạng. 
4.3.1 Tác động của tỷ lệ học – Learning Rate 
Việc lựa chọn tỷ lệ học (Learning Rate - LR) có vai trò quan trọng trong việc 
quyết định tốc độ học của mạng neuron nhân tạo. Tốc độ học càng nhanh sự thay đổi 
trọng số càng lớn, hàm mất mát càng nhanh hội tụ về giá trị nhỏ nhất. 
(a) (b) 
Hình 5. Tỷ lệ nhận dạng của mạng MLP với tỷ lệ học LR = 0,3 (a) và tỷ lệ học LR = 3 (b). 
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học, ĐH Huế Tập 14, Số 1 (2019) 
125 
Hình 5 mô tả sự khác nhau khi chọn LR ở hai trường hợp cụ thể: mô hình (a) sử 
dụng LR = 0,3 nhỏ hơn so với mô hình (b) sử dụng LR = 3. Rõ ràng với một LR nhỏ tốc 
độ học của mạng khá chậm, sau 100 chu kỳ học vẫn chưa thể đạt ngưỡng bão hòa, tỷ lệ 
nhận dạng vẫn đang tiếp tục tăng nhẹ. Ở mô hình (b), LR lớn hơn mạng chỉ mất chưa 
đến 20 chu kỳ học đã đạt ngưỡng bão hòa. Tuy nhiên, LR lớn cho phép mạng học rất 
nhanh, chỉ với vài chu kỳ học đã đạt gần đến ngưỡng bão hòa nhưng nhược điểm là 
không ổn định, tỷ lệ nhận dạng dao động mạnh. Ngược lại ở LR thấp, tỷ lệ nhận dạng 
rất ổn định, tuy nhiên tốc độ học chậm. 
Kết hợp ưu điểm riêng của từng loại, việc chọn LR lớn ở những chu kỳ học đầu 
nhằm tăng tốc độ học, chọn các LR thấp hơn ở những chu kỳ học sau sẽ giúp mạng học 
ổn định hơn. Cụ thể ở hình 6, ở chu kỳ học thứ 80, LR đã được giảm đi 10 lần so với các 
chu kỳ học trước, rõ ràng tỷ lệ nhận dạng của mạng đạt ngưỡng bão hòa và vẫn rất ổn 
định hơn so với các chu kỳ học đầu. 
Hình 6. Kết quả mạng MLP khi kết hợp 2 giá trị LR khác nhau. 
4.3.2 Tác động của số lớp ẩn và số lượng neuron 
Việc chọn lựa số lượng lớp ẩn trong mạng MLP hay số lượng neuron trong các 
lớp ẩn vẫn chưa có một quy tắc cụ thể. Các thông số này quyết định độ phức tạp của 
mạng MLP hay độ khó của b|i to{n đặt ra. Thực nghiệm với mạng MLP được giữ 
nguyên các thông số, số lượng lớp ẩn lần lượt tăng lên 2 v| 3 lớp ẩn cho kết quả nhận 
dạng như sau: 
Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo 
126 
Hình 7. Tỷ lệ nhận dạng đúng với các số lượng lớp ẩn khác nhau. 
Khi tăng số lượng lớp ẩn, tỷ lệ nhận dạng đúng ở dữ liệu huấn luyện và kiểm 
tra đều tăng lên, tuy nhiên khi tăng số lớp ẩn độ chêch lệch giữa tỷ lệ nhận dạng ở tập 
kiểm tra so với tập huấn luyện được rút ngắn. Việc tăng số lớp ẩn làm cho mô hình 
mạng trở nên phức tạp kéo theo thời gian hoàn thành quá trình huấn luyện tăng lên. 
Số lượng neuron trong lớp ẩn cũng quyết định đến tỷ lệ nhận dạng trong mạng MLP. 
Số lượng neuron càng nhiều, độ phức tạp của mạng càng cao, số lượng trọng số càng 
nhiều. Hình 8 thể hiện kết quả khảo sát trên cùng mạng MLP có 1 lớp ẩn nhưng có số 
lượng neuron ở lớp ẩn tăng dần: 
Hình 8. Khảo sát mạng MLP với số lượng neuron khác nhau. 
Kết luận: Kết quả nhận được khi đ{nh gi{ trên tập kiểm tra (tương ứng với quá 
trình nhận dạng trên thực tế). Nhận thấy rằng, khi tăng số lượng lớp ẩn hay số lượng 
neuron trong mỗi lớp ẩn thì kết quả tỷ lệ nhận dạng cho mạng MLP đều tăng, tuy 
nhiên tăng số lượng neuron trong lớp ẩn sẽ có hiệu quả hơn so với tăng số lượng lớp 
ẩn trong mạng về tỷ lệ nhận dạng. 
98.066 
99.002 99.008 
95.25 95.46 
95.81 
93
94
95
96
97
98
99
100
1 lớp ẩn 2 lớp ẩn 3 lớp ẩn 
Tỷ lệ nhận dạng đúng (%) Huấn luyện Kiểm tra 
98.066 
98.776 98.992 
95.25 
96.2 
96.68 
92
94
96
98
100
30 neuron 60 neuron 90 neuron
Tỷ lệ nhận dạng đúng (%) 
Huấn luyện 
Kiểm tra 
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học, ĐH Huế Tập 14, Số 1 (2019) 
127 
4.3.3 Ảnh hưởng của mini-batch size 
Mini-batch size được tạo ra bằng cách chia nhỏ tập dữ liệu huấn luyện và tập 
kiểm tra thành nhiều phần bằng nhau. Ví dụ tập huấn luyện MNIST có 50000 ảnh, 
chọn mini-batch size bằng 10 có nghĩa l| chia tập huấn luyện thành 5000 tập con, mỗi 
tập con có 10 ảnh. Số lượng ảnh trong tập con quyết định có bao nhiêu ảnh dùng để 
huấn luyện cho một lần cập nhật weight, bias. Để hoàn thành một chu kỳ học, mạng 
MLP sẽ lần lượt chọn lần lượt các tập con để huấn luyện, sau mỗi tập con, các weight 
và bias sẽ được cập nhật cho đến khi hết số lượng các tập con. 
Thực nghiệm với các mini-batch size khác nhau cho kết quả trên tập kiểm tra 
như bảng 1: 
Bảng 1. Kết quả thực nghiệm trên tập kiểm tra với các mini-batch size khác nhau 
Mini-batch size 1 5 10 20 50 100 
Tỷ lệ nhận dạng (%) 90,11 95,44 95,25 95,2 94,86 94,52 
Mini-batch size lớn sẽ mở rộng cơ sở dữ liệu cho quá trình học, song song với 
đó, việc chọn các mini-batch size lớn cũng yêu cầu bộ nhớ lớn hơn cho việc tính toán. 
Qua đ{nh gi{ thực nghiệm, ta thấy được rằng với các mô hình nhỏ v| đơn giản, cập 
nhật các thông số nhiều lần qua các mini-batch size nhỏ cho kết quả tốt hơn c{c mini-
batch size lớn. Ngoài ra, ứng dụng với batch size nhỏ cũng phù hợp là bài toán nhận 
dạng thực tiễn, bộ não phải đưa ra quyết định sau khi học với một số lượng mẫu khá 
bé, do đó kết quả tối ưu chính là hướng đến chính l| tăng tỷ lệ nhận dạng đúng với số 
lượng mẫu bé. 
5. KẾT LUẬN 
B|i b{o đã trình b|y những thuật ngữ cơ bản, cấu tạo mạng MLP cũng như 
cách mà mạng neuron “học” c{c thông số để đ{nh gi{ cho b|i to{n nhận dạng chữ số 
viết tay. Thông qua đó, b|i b{o cũng thực hiện thực nghiệm trên các mô hình mạng 
khác nhau, khảo s{t c{c trường hợp riêng biệt nhằm làm rõ chức năng cũng như ưu 
nhược điểm của từng mô hình. Tuy nhiên quy mô bài toán còn nhỏ, việc lựa chọn các 
thông số vẫn còn l| phương ph{p thực nghiệm, một cách thủ công, mang tính chất 
tham khảo. Với các bài toán thực tiễn, xử lý ảnh dùng mạng neuron tích chập 
(Convolution Neural Network) sẽ có nhiều ưu điểm hơn v| được sử dụng rộng rãi 
thay cho mạng MLP. 
Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo 
128 
TÀI LIỆU THAM KHẢO 
[1]. Roger Parloff (2016), Why deep learning is suddenly changing your life, Website: 
[2]. Dan Ciresan, Ueli Meier, Jurgen Schmidhuber (2012). Multi-column Deep Neural 
Networks for Image Classification, arXiv:1202.2745v1 
[3]. Michael A. Nielsen (2015), Neural Networks and Deep Learning, Online book: 
[4]. Saeed AL-Mansoori (2015), Intelligent Handwritten Digit Recognition using Artificial Neural 
Network, International Journal of Engineering Research and Applications, Vol. 5, Issue 5, 
pp. 46-51. 
[5]. Walter H. Delashmit and Michael T. Manry (2005), Recent developments in multilayer 
perceptron neural networks, Proceedings of the 7th Annual Memphis Area Engineering and 
Science Conference. 
[6]. Murat H. Sazli (2006), A brief review of feed-forward neural networks, Commun. Fac. Sci. 
Univ. Ank., Vol 50, pp. 11-17. 
[7]. Yann LeCun, Courant Institute (1989). The MNIST Database of Handwritten Digits. 
RECOGNITION OF HANDWRITTEN DIGITS 
USING ARTIFICIAL NEURON NETWORK 
Pham Phu Quoc*, Vuong Quang Phuoc 
Faculty of Electronics and Telecommunications, University of Sciences, Hue University 
*Email: phuquochusc@gmail.com 
ABSTRACT 
With the leading position in the current technology trend, artificial intelligence (AI) 
has been researched and developed by many scientists worldwide. In Vietnam, this 
topic has attracted a lot of attention recently, but the number of articles and related 
documents is still limited. The article will present the most basic concepts, in the 
simplest aspect, then clarify the nature of AI, or more specifically, Deep Learning. 
We selected standard artificial neuron network model, multi-layer perceptron 
network (MLP), performing handwritten digit recognition task. The performance 
of the model is evaluated through the correct image recognition rate. In addition, 
the parameters that influence the results such as learning rate (LR), number of 
hidden layers/hidden neuron numbers and mini-batch size will also be analyzed 
and evaluated. 
Keywords: artificial intelligence, multi-layer perceptron, neural network. 
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học, ĐH Huế Tập 14, Số 1 (2019) 
129 
Phạm Phú Quốc sinh ngày 06/08/1996 tại Thừa Thiên Huế. Hiện đang l| 
sinh viên ng|nh Điện tử Viễn thông, chuyên ngành Kỹ thuật Viễn thông 
tại Trường Đại học Khoa học, ĐH Huế. 
Lĩnh vực nghiên cứu: mạng neuron nhân tạo, xử lý ảnh. 
Vương Quang Phước sinh ngày 14/08/1990 tại Thừa Thiên Huế. Năm 
2013, ông tốt nghiệp kỹ sư chuyên ng|nh Điện tử viễn thông, Trường Đại 
học Khoa học, Đại học Huế. Năm 2018, ông nhận bằng thạc sĩ chuyên 
ngành Kỹ thuật Điện tử tại Trường Đại học B{ch Khoa Đ| Nẵng. Hiện 
nay, ông đang công t{c tại Khoa Điện tử Viễn thông, Trường Đại học 
Khoa học, Đại học Huế. 
Lĩnh vực nghiên cứu: Hệ thống thông tin quang, mạng Neuron nhân tạo. 
Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo 
130 

File đính kèm:

  • pdfnhan_dang_chu_so_viet_tay_dung_mang_neuron_nhan_tao.pdf