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
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
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
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:
- nhan_dang_chu_so_viet_tay_dung_mang_neuron_nhan_tao.pdf