Xem mẫu
- 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)
NHẬN DẠNG CHỮ SỐ VIẾT TAY DÙNG MẠNG NEURON NHÂN TẠO
Phạm Phú Quốc*, Vương Quang Phước
Khoa Điện tử - Viễn thông, Trường Đại học Khoa học, ĐH Huế
*Email: phuquochusc@gmail.com
Ngày nhận bài: 21/3/2019; ngày hoàn thành phản biện: 21/5/2019; ngày duyệt đăng: 02/7/2019
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.
Từ khóa: mạng neuron nhân tạo, mạng perceptron đa lớp, trí tuệ nhân tạo.
1. MỞ ĐẦU
Hiện nay, với hệ thống dữ liệu hình ảnh khổng lồ trên toàn thế giới, việc phân
tích, xử lý để khai thác sử dụng thông tin trong ảnh là một nhu cầu thiết yếu. Tuy
nhiên, với số lượng dữ liệu khổng lồ, việc phân tích, xử lý thủ công sẽ mất rất nhiều
thời gian và nguồn nhân lực. Thực tiễn đã chứng minh, việc ứng dụng trí tuệ nhân tạo
nói chung hay Deep Learning nói riêng vào các nhiệm vụ trên đã giúp tiết kiệm được
nhiều thời gian và công sức. Từ giữa năm 2011, Google đã giới thiệu dự án Deep
Learning sử dụng mạng neuron nhân tạo dùng cho nhận dạng giọng nói v| sau đó mở
rộng lên c{c lĩnh vực kh{c như Gmail, Google dịch, Google ảnh< *1]. Đối với bài toán
nhận dạng chữ số viết tay, mạng neuron nhiều lớp sẽ được huấn luyện dựa trên các
pixel, đơn vị nhỏ nhất của hình ảnh. Vì vậy mạng neuron nhân tạo là công cụ vô cùng
thích hợp cho việc xử lý, phân tích hình ảnh và mang lại kết quả rất khả quan [2].
119
- Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo
Mục tiêu bài báo trình bày các khái niệm căn bản, xây dựng mô hình nhận diện
chữ số viết tay bằng mạng neuron nhân tạo cho tỷ lệ nhận dạng đúng trên 90%. Các
phần tiếp theo của bài báo sẽ trình b|y đơn vị cấu tạo nhỏ nhất tạo thành mạng neuron
nhân tạo đa lớp và cấu trúc, thông số của mô hình mạng neuron đa lớp cũng như kết
quả thực nghiệm với các trường hợp kh{c nhau để khảo sát, làm rõ chức năng của các
thông số trong mô hình mạng.
2. NEURON NHÂN TẠO
Neuron nhân tạo được xây dựng trên ý tưởng từ neuron sinh học, đơn vị cấu
tạo thành hệ thần kinh của não bộ con người. Những neuron này có nhiệm vụ nhận tín
hiệu từ não bộ và truyền tín hiệu đến các bộ phận kh{c nhau trên cơ thể. Một cách
tương tự, ta có các neuron nhân tạo hay perceptron l| đơn vị cấu thành mạng neuron
nhân tạo. Một perceptron sẽ nhận các ngõ vào có giá trị x1, x2, ... xn và ngõ ra của
perceptron sẽ cho ra giá trị nhị phân [3]. Hình 1 mô tả cấu trúc của một perceptron đơn
giản với 2 giá trị đầu vào X1, X2.
X1
Ngõ ra
X2
Hình 1. Mô hình Perceptron đơn giản.
Nhiệm vụ của perceptron là sử dụng các giá trị ngõ vào để tính toán và xác
định giá trị ngõ ra là 0 hoặc 1. Trong một mạng neuron nhân tạo, ngõ ra của neuron
lớp trước sẽ là đầu vào của lớp tiếp theo.
2.1 Trọng số (Weight – w)
Weight hay trọng số (w) là con số 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.
120
- 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)
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
- Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo
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
122
- 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)
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,
- Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo
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).
124
- 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)
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:
125
- Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo
Tỷ lệ nhận dạng đúng (%) Huấn luyện Kiểm tra
100
99.002 99.008
99
98.066
98
97
95.81
96 95.25 95.46
95
94
93
1 lớp ẩn 2 lớp ẩn 3 lớp ẩn
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:
Tỷ lệ nhận dạng đúng (%)
100 98.776 98.992
98.066
98 96.68
96.2
96 95.25 Huấn luyện
Kiểm tra
94
92
30 neuron 60 neuron 90 neuron
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.
126
- 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)
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.
127
- Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo
TÀI LIỆU THAM KHẢO
[1]. Roger Parloff (2016), Why deep learning is suddenly changing your life, Website:
http://fortune.com/ai-artificial-intelligence-deep-machine-learning/
[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:
http://neuralnetworksanddeeplearning.com/
[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.
128
- 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)
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.
129
- Nhận dạng chữ số viết tay dùng mạng neuron nhân tạo
130
nguon tai.lieu . vn