Deep learning, mạng nơ ron nhân tạo nhiều lớp MLP và bài toán nhận dạng hình ảnh mạng nơ ron tích chập (convolution neural network CNN)

76 6 0
Deep learning, mạng nơ ron nhân tạo nhiều lớp MLP và bài toán nhận dạng hình ảnh mạng nơ ron tích chập (convolution neural network   CNN)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LỜI CẢM ƠN Lời đầu tiên, em xin chân thành cảm ơn các thầy cô giáo trong trường Đại học Khoa Học cùng các thầy cô trong khoa Điện, Điện Tử và Công Nghệ Vật Liệu đã nhiệt tình giúp đỡ, giảng d.

LỜI CẢM ƠN Lời đầu tiên, em xin chân thành cảm ơn thầy cô giáo trường Đại học Khoa Học thầy cô khoa Điện, Điện Tử và Công Nghệ Vật Liệu nhiệt tình giúp đỡ, giảng dạy và mang đến cho em những điều bổ ích môn đại cương mơn chun ngành, giúp em có tảng sở lý thuyết vững chắc kiến thức cần thiết để thực đồ án tốt nghiệp và xa là có được hướng tốt tương lai Tiếp theo đó, em xin chân thành cảm ơn bạn lớp Điện tử - Viễn thông K40, gia đình và người đông hành, khích lệ, giúp đỡ và động viên em suốt thời gian vừa qua Đặc biệt nhất, em xin gửi lời cám ơn chân thành đến Thạc sĩ Vương Quang Phước, giảng viên Bộ môn Kỹ thuật Viễn thông - trường Đại học Khoa Học, người hướng dẫn, cung cấp tài liệu, động viên bảo nhiệt tình để em hồn thành đồ án tốt nghiệp Trong suốt trình thực đồ án, chắn khơng tránh khỏi sai sót Em mong nhận đóng góp từ thầy, để hồn thiện đồ án tốt nghiệp Em xin chân thành cám ơn! Sinh viên thực Nguyễn Trí Định i MỤC LỤC LỜI CẢM ƠN i MỤC LỤC ii DANH MỤC HÌNH ẢNH iv DANH MỤC BẢNG BIỂU vi DANH MỤC CÁC CHỮ VIẾT TẮT vii MỞ ĐẦU CHƯƠNG 1.DEEP LEARNING, MẠNG NƠ-RON NHÂN TẠO NHIỀU LỚP MLP VÀ BÀI TỐN NHẬN DẠNG HÌNH ẢNH 1.1.Giới thiệu chương 1.2.Deep learning 1.3.Mạng nơ-ron nhân tạo 1.3.1.Perceptron 1.3.2.Sigmoid 1.3.3.Mạng nơ-ron nhân tạo nhiều lớp MLP 1.3.4.Bài toán nhận dạng hình ảnh 1.4.Kết luận chương CHƯƠNG 2.LÝ THUYẾT CƠ BẢN VỀ MẠNG NƠ-RON TÍCH CHẬP CNN VÀ CÁC THAM SỐ LIÊN QUAN 2.1.Giới thiệu chương 2.2.Mạng nơ-ron tích chập 2.3.Lớp tích chập 2.3.1.Phép tích chập 2.3.2.Vùng tiếp nhận cục bộ 2.3.3.Số bước trượt (Strides) 2.3.4.Zero padding 11 2.4.Lấy mẫu xuống (Pooling) 12 2.5.Lớp Dropout 13 2.6.Hàm kích hoạt ngõ Softmax 14 2.7.Hàm tổn hao Cross Entropy 15 2.8.Tỷ lệ học 15 ii 2.9.Kết luận chương 16 CHƯƠNG 3.SO SÁNH MƠ HÌNH MLP VỚI CNN VÀ KHẢO SÁT SỰ ẢNH HƯỞNG CỦA CÁC THAM SỐ 17 3.1.Giới thiệu chương 17 3.2.Cơ sở liệu, so sánh mơ hình 17 3.2.1.Cơ sở liệu 17 3.2.2.So sánh mô hình MLP và CNN 18 3.3.Đánh giá ảnh hưởng của các tham số 21 3.3.1.Lớp tích chập 21 3.3.2.Hàm kích hoạt: 26 3.3.3.Pooling: 27 3.3.4.Dropout 28 3.3.5.Tỉ lệ học 30 3.3.6.Kết luận: 31 3.4.Kết luận chương 32 CHƯƠNG 4.SỬ DỤNG MÔ HÌNH CNN TỐI ƯU CHO VIỆC PHÂN LOẠI CỦ QUẢ 33 4.1.Giới thiệu chương 33 4.2.Cơ sở dữ liệu 33 4.3.Khảo sát với mạng Lenet 37 4.4.Khảo sát với mô hình CNN tối ưu: 39 4.5.Mở rộng sở dữ liệu 43 4.6.Kết luận chương 48 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 49 TÀI LIỆU THAM KHẢO 51 PHỤ LỤC 54 iii DANH MỤC HÌNH ẢNH Hình 1.1 Mối quan hệ AI/Machine Learning/Deep Learning [2] Hình 1.2 Sơ đồ mô tả cách mạng nơ-ron hoạt động [3] Hình 1.3 Một mạng nơ-ron nhân tạo Hình 1.4 Cấu trúc perceptron với đầu vào Hình 1.5 Mạng nơ-ron tích chập [5] 10 Hình 1.6 Thuật toán Gradient descent 14 Hình 1.7 Thuật toán SGD với động lượng (Stochastic gradient descent with momentum) [9] 15 Hình 1.8 Hình ảnh góc nhìn máy tính [13] 19 Hình 2.1 Nơ-ron lớp ẩn kết nối với vùng tiếp nhận cục 21 Hình 2.2 Quá trình trượt vùng tiếp nhận cục theo chiều ngang chiều dọc 22 Hình 2.3 Quá trình hình thành lớp ẩn sau trượt vùng tiếp nhận cục 22 Hình 2.4 Giá trị stride (a) stride (b) 23 Hình 2.5 Lớp ẩn giữ nguyên kích thước lớp ngõ vào thêm zero padding 24 Hình 2.6 Lớp ngõ vào (a), lọc (b) đồ đặc tính (c) 26 Hình 2.7 Đồ thị hàm ReLu 27 Hình 2.8 Lớp ngõ vào (a) lớp ngõ sau áp dụng lớp pooling (b) 28 Hình 2.9 Mạng nơ-ron sau áp dụng Dropout [16] 29 Hình 3.1 Hình ảnh chữ số viết tay từ tập MNIST [17] 32 Hình 3.2 Hình ảnh trích xuất từ sở liệu CIFAR10 [18] 33 Hình 3.3 Mơ hình mạng Multilayer Perceptron (MLP) 34 Hình 3.4 Mơ hình mạng Lenet-5 (CNN) Yan Lecun công bố năm 1998 [19] 34 Hình 3.5 Khảo sát mạng MLP với tỉ lệ học khác 38 Hình 3.6 Kết mạng MLP theo lớp ẩn 39 Hình 3.7 Kết mạng MLP theo số lượng nơ-ron lớp ẩn 40 Hình 3.8 Kết mạng MLP thay đổi giá trị Dropout 41 iv Hình 3.9 Khảo sát mạng CNN với tỉ lệ học khác 43 Hình 3.10 Kết mạng CNN tăng số khối tích chập .44 Hình 3.11 Kết mạng CNN tăng số lượng đồ đặc tính 44 Hình 3.12 Kết mạng CNN thay đổi giá trị Dropout 45 Hình 3.13 Sơ đồ biểu diễn kích thước lọc ảnh hưởng tới mơ hình 47 Hình 3.14 Sơ đồ thể kích thước bước trượt ảnh hưởng tới mơ hình mạng 48 Hình 3.15 Sơ đồ thể loại lấy mẫu xuống ảnh hưởng tới mơ hình mạng 49 Hình 3.16 Sơ đồ khối mơ hình CNN sử dụng để đánh giá 50 Hình 3.17 Tỉ lệ mát thuật toán tối ưu tập liệu MNIST 51 Hình 3.18 Tỉ lệ nhận dạng thuật toán tập huấn luyện tập đánh giá 52 Hình 3.19 Tỉ lệ mát thuật toán tối ưu tập liệu CIFAR-10 53 Hình 3.20 Tỉ lệ nhận dạng thuật toán tập huấn luyện tập đánh giá 53 Hình 4.1 Chế độ xem project (dự án) 56 Hình 4.2 Các mo-đun dự án hệ thống 57 Hình 4.3 Bộ mô cho loại thiết bị 59 Hình 4.4 Mơ hình mạng CNN sử dụng để phát triển lên ứng dụng .61 Hình 4.5 Tham số weight mơ hình tensorflow 64 Hình 4.6 Tham số weight mơ hình tensorflow lite 64 Hình 4.7 Mô hình CNN với định dạng tensorflow 65 Hình 4.8 Mơ hình CNN với định dạng tensorflow lite 65 Hình 4.9 Giao diện ứng dụng nhận dạng chữ số viết tay 66 Hình 4.10 Một số kết nhận dạng trích xuất từ ứng dụng 67 Hình 4.11 Một số nhận dạng sai trích xuất từ ứng dụng 68 Hình 4.12 Sơ đồ khối mơ hình mạng MLP sử dụng đánh giá khảo sát 72 Hình 4.13 Sơ đồ khối mơ hình mạng Lenet-5 sử dụng khảo sát đánh giá 75 Hình 4.14 Nhập mơ hình vào Android studio với định dạng tflite 85 DANH MỤC BẢNG BIỂU Bảng 3.1 Kết mạng MLP thay đổi kích thước gói 42 v Bảng 3.2 Kết mạng CNN thay đổi kích thước gói 46 Bảng 4.1 Chuyển đổi định dạng h5 thành tflite 63 Bảng 4.2 Xây dựng mơ hình MLP để tiến hành đánh giá ngôn ngữ Python 73 Bảng 4.3 Xây dựng mơ hình Lenet-5 tiến hành đánh giá ngôn ngữ Python 76 Bảng 4.4 Xây dựng mô hình CNN để đánh giá thuật tốn tối ưu ngôn ngữ Python 79 Bảng 4.5 Huấn luyện đánh giá mơ hình CNN Google colab ngôn ngữ Python 82 vi DANH MỤC CÁC CHỮ VIẾT TẮT Từ viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt AI Artificial Intelligence Trí tuệ nhân tạo CNN Convolutional Neural Mạng nơ-ron tích chập Network FC Fully Connected Mạng kết nối hoàn toàn MLP Multi-Layers Perceptron Multi-Layers Perceptron CIFAR Canadian ReLU Institute for Viện nghiên cứu tiên Advanced Research tiến Canada Rectifier Linear Unit Bộ chuyển đổi tuyến tính GPU Graphics Processing Unit Bộ xử lý hình ảnh GD Gradient Descent Thuật tốn giảm dần độ dốc ANN Artificial Neural Network APK Android Package Mạng nơ-ron nhân tạo Application Bộ cài đặt ứng dụng hệ điều hành Android vii MỞ ĐẦU Lý lựa chọn đề tài Mục tiêu đề tài Nghiên cứu, đánh giá các kỹ thuật học sâu sở dữ liệu CIFAR10 Đánh giá tác động của số lớp, tốc độ học( learning rate), các hàm tối ưu (optimizers), tỉ lệ loại bỏ ngẫu nhiên (dropout)… Xây dựng mô hình thích hợp dựa những đánh giá để áp dụng vào bài toán phân loại củ quả Trong quá trình thực hiện đồ án, em đã học hỏi và rèn luyện được một số kiến thức và kỹ như:  Nâng cao kỹ lập trình với ngôn ngữ Python, mô phỏng google colab  Phát triển kỹ báo cáo nhóm, làm việc nhóm  Nâng cao kỹ đọc tài liệu khoa học, tài liệu tiếng anh Đối tượng nghiên cứu Bộ sở liệu CIFAR10 với 60000 hình ảnh màu gồm: máy bay, tơ, chim, mèo, hươu, chó, ếch, ngựa, tàu xe tải có kích thước 32x32 pixel Bộ sở dữ liệu Fruit-360 với 30080 ảnh màu thuộc 48 lớp với 22783 ảnh huấn luyện và 7297 ảnh kiểm tra, kích thước mỗi ảnh là 100x100 pixel Deep Learning(Mạng MLP và CNN – Các thông số, cấu trúc mạng) Ngôn ngữ lập trình Python ( Thư viện Keras, numpy, matplotlib…) Ngơn ngữ lập trình Python Phương pháp đánh giá Nghiên cứu lý thuyết, đánh giá thông qua mô phỏng thực nhiệm Google Colaboratory (Google Colab) Quá trình thực hiện gồm các bước:  Chuẩn bị sở dữ liệu  Xây dựng mô hình mạng  Chọn phương pháp đánh giá, hàm kích hoạt, hàm tối ưu và hàm tổn hao  Huấn luyện mô hình để tối ưu các thông số weight và bias  Đánh giá mô hình và dự đoán với dữ liệu mới Cấu trúc báo cáo đề tài Nội dung đồ án gồm chương:  Chương 1: Deep Learning, Mạng Nơ-ron nhân tạo nhiều lớp MLP tốn nhận dạng hình ảnh  Chương 2: Mạng nơ-ron tích chập (Convolution neural network - CNN)  Chương 3: So sánh mơ hình MLP với CNN và khảo sát đánh giá các thông số để xây dựng mơ hình  Chương 4: Ứng dụng mơ hình mạng nơ-ron tích chập (CNN) vào bài toán phân loại củ quả DEEP LEARNING, MẠNG NƠ-RON NHÂN TẠO NHIỀU LỚP MLP VÀ BÀI TỐN NHẬN DẠNG HÌNH ẢNH Giới thiệu chương Deep Learning là một kỹ thuật huấn luyện được nghiên cứu cũng ứng dụng rộng rãi, và bài toán nhận dạng hình ảnh là môt những vấn đề được quan tâm hàng đầu Chương giới thiệu tổng quan Deep Learning, cách thức cấu thành mạng nơ-ron, và phương pháp học, đặc điểm toán nhận dạng Deep learning Thuật ngữ AI (Artificial Intelligence) hay còn gọi là trí thơng minh nhân tạo nghiên cứu biết đến vào năm 1956, AI dùng để chỉ những cổ máy được chế tạo phức tạp, sở hữu những đặc tính gần giống với trí thông minh của người + Khối thứ 4: Convolution4 + MaxPooling4: 128 bản đồ đặc tính với kích thước 5x5, số bước trượt = 1, padding = MaxPooling kích thước 2x2 - Hàm truyền: Relu - Lớp liên kết đầy đủ: lần lượt là 1000 nơ-ron, 256 nơ-ron - Tỷ lệ Dropout: 50% - Ngõ ra: 10 nơ-ron với hàm kích hoạt ngõ softmax - Hàm tối ưu Adam với tỷ lệ học 0.0001 - Kích thước gói con: 32 - Chu kỳ học: 20  Kết quả đánh giá: Mô hình đánh giá qua 20 chu kỳ học cho kết quả Nhận thấy tỷ lệ nhận dạng đúng của tập huấn luyện đạt 98% và tập kiểm tra gần đạt kết quả cao với tỉ lệ xấp xỉ với tập huấn luyện, và với mô hình tối ưu này có thể thấy được hiện tượng overfitting đã được hạn chế mô hình được thêm vào các lớp Dropout Thời gian huấn luyện với tập dữ liệu 22783 ảnh chỉ nằm khoảng giờ đồng hồ (vì mô hình sử dụng kích thước bước trượt lớn và với lớp Max pooling thì kích thước cũng thông số mạng giảm đáng kể) Như vậy, sau quá trình khảo sát thì mô hình CNN tối ưu này cho kết quả tốt nhiều so với mô hình Lenet  Kết quả nhận dạng tập kiểm tra:  Kết quả nhận dạng với tập dữ liệu mới: 4.5 Mở rộng sở dữ liệu Với các bài toán về Deep Learning thì dữ liệu cực kỳ quan trọng, nó quyết định đến thành bài của bài toán Những bài toán có quá ít dữ liệu thì quá trình huấn luyện hiện tượng overfitting xảy rất nhiều, muốn tránh được điều này ta cần phải làm giàu những dữ liệu đó, và may mắn Keras cung cấp thư viện thuận tiện cho việc mở rộng sở dữ liệu, chỉ với một vài ảnh ta có thể tăng cường lên vài trăm thậm chí là vài trăm nghìn, triệu ảnh bằng cách: phóng to, thu nhỏ, lật ngang, lật dọc, tăng giảm độ sáng cho ảnh, dịch ảnh sang trái sang phải… Ví dụ:  Nếu muốn lật ảnh : Image = ImageDataGenerator(rotation_range=90) Lệnh thực hiện bằng cách xoay ảnh ngẫu nhiên theo chiều kim đồng hồ khoảng từ 00 đến 900 Kết quả thu được:  Dịch chuyển ảnh theo chiều dọc: Image = ImageDataGenerator(height_shift_range=0.5) dịch chuyển sang trái hoặc phải ngẫu nhiên 1/2 độ rộng ảnh  Dịch chuyển ảnh theo chiều ngang: Image = ImageDataGenerator(weight_shift_range=0.5) dịch chuyển lên hoặc xuống dưới ngẫu nhiên 1/2 độ rộng ảnh  Lật ảnh + thay đổi độ sáng tối: Image = ImageDataGenerator(brightness_range=[0.5, 1.5]) giá trị sẽ thay đổi ngẫu nhiên giữa 0.5 cho đến 1.5 Với những giá trị nhỏ thì ảnh sẽ tối, ở là ko có thay đổi và lớn ảnh sẽ sáng  Phóng to thu nhỏ kích thước ảnh: Image = ImageDataGenerator(zoom_range=[0.5, 1.5]) ảnh sẽ được phóng to hay thu nhỏ ngẫu nhiên khoảng 50% đến 150% lần kích thước ảnh  Kết quả từ một ảnh thu được sau: Như vậy có thể thấy chỉ với một bức ảnh có thể tạo bức ảnh khác và nếu áp dụng vào cở sở dữ liệu nhiều thì số lượng ảnh sẽ tăng lên rất nhiều lần 4.6 Kết luận chương Chương cách phát triển từ mơ hình mạng CNN lên thành ứng dụng nhận dạng chữ số viết tay nói riêng nhận dạng hình ảnh nói chung tảng di động Android Cùng với đó, rút nhận xét độ tối ưu hay lỗi ứng dụng KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Sau hoàn thành đề tài “Ứng dụng kĩ thuật học sâu vào toán nhận dạng chữ số viết tay tảng di động Android”, em xin trình bày số kết đạt sau: - Trình bày khái quát mạng nơ-ron nhân tạo, cụ thể mạng MLP mạng CNN - Cách thức xây dựng mơ hình mạng nơ-ron nhân tạo cho toán nhận dạng chữ số viết tay - Tìm hiểu thuật tốn, phương pháp học mạng nơ-ron nhân tạo - Khảo sát thực nghiệm tập liệu chữ số viết tay MNIST mơ hình mạng - Đánh giá tầm quan trọng tham số ảnh hưởng đến hiệu mơ hình - Từ sở mạng nơ-ron tích chập CNN, phát triển lên thành ứng dụng nhận dạng chữ số viết tay tảng di động Android với tỉ lệ mơ hình mạng 99.3% Hướng phát triển tương lai Do thời gian nghiên cứu hạn hẹp, kiến thức tiếp thu chưa đủ, đề tài đưa toán nhận dạng chữ số viết tay vấn đề liên quan Kết tập liệu nhằm múc đích làm đa dạng kết Việc tối ưu cho liệu cần có q trình thực nghiệm lâu dài Một số hướng mở rộng đề tài tương lai như: - Tiến hành khảo sát phát triển ứng dụng xây dựng mơ hình từ tập liệu khó - Nghiên cứu kỹ thuật để tối ưu mơ hình, giúp tăng tỉ lệ nhận dạng tối ưu thời gian huấn luyện mơ hình tập liệu - Phát triển ứng dụng nhận dạng chữ số viết tay chỉnh chu hướng đến cho việc học chữ số cho trẻ em TÀI LIỆU THAM KHẢO [1] Đề tài nghiên cứu khoa học Phạm Phú Quốc (2019) “Ứng dụng kĩ thuật học sâu vào tốn nhận dạng hình ảnh” Khoa điện tử - Viễn thông, Đại học Khoa học - Huế [2] Michael Copeland (2016) What’s the Difference Between Artificial Intelligence, Machine Learning, and Deep Learning?, NVIDIA Blog [3] Bill Schmarzo (2018) Using Confusion Matrices to Quantify the Cost of Being Wrong, View Blog [4] Michael A Nielsen (2015) Neural Networks and Deep Learning, Determination Press [5] V SHARMA (2018) Deep Learning – Introduction to Convolutional Neural Networks Vinod Sharma's Blog [6] Léon Bottou, Frank E Curtis, Jorge Nocedal (2016) Optimization Methods for Large-Scale Machine Learning, arXiv:1606.04838 [7] Goodfellow, Bengio & Courville 2016, p 200, "Furthermore, back propagation is often misunderstood as being specific to multi-layer neural networks, but in principle it can compute derivatives of any function" [8] Qian, N (1999) On the momentum term in gradient descent learning algorithms Neural Networks: The Official Journal of the International Neural Network Society, 12(1), 145–151 http://doi.org/10.1016/S0893-6080(98)00116-6 [9] Sutskever, I., Martens, J., Dahl, G.E and Hinton, G.E (2013) On the importance of initialization and momentum in deep learning ICML (3), Vol 28, pp 1139—1147 [10] Christian Igel and Michael H ̈usken (2000) Improving the Rprop Learning Algorithm http://citeseerx.ist.psu.edu/viewdoc/summary? doi=10.1.1.17.1332 [11] Alexandre Défossez, Léon Bottou, Francis Bach, Nicolas Usunier (2020) On the Convergence of Adam and Adagrad, arXiv:2003.02395 [12] Matthew D Zeiler (2012), ADADELTA: AN ADAPTIVE LEARNING RATE METHOD,arXiv:1212.5701v1 [cs.LG] 22 Dec 2012 [13] Jean-Louis Queguiner (2019) Deep Learning explained to my 8-yearold daughter OVHcloud blog [14] Fei-Fei Li, Andrej Karpathy, Justin Johnson (2016) Image Classification, in Convolutional Neural Networks for Visual Recognition, Stanford CS [15] Alex Krizhevsky, Ilya Sutskever, Geoffrey E Hinton (2012) Imagenet classification with deep convolutional neural networks, NIPS, vol 25, pp 10971105 [16] Xiang Li, Shuo Chen, Xiaolin Hu, Jian Yang (2018) Understanding the Disharmony between Dropout and Batch Normalization by Variance Shift arXiv:1801.05134 [17] Yann LeCun, Courant Institute (1989) The MNIST Database of Handwritten Digits [18] Alex Krizhevsky, Vinod Nair and Geoffrey Hinton (2009) The CIFAR10 dataset [19] Eugenio Culurciello (2017) “The History of Neural Networks” Medium [20] Sagar Sharma (2017) Epoch vs Batch Size vs Iterations Medium [21] Official homepage: developer.android.com [22] Margaret Maynard-Reid (2019) E2E tf.Keras to TFLite to Android Medium ... Chương 1: Deep Learning, Mạng Nơ- ron nhân tạo nhiều lớp MLP tốn nhận dạng hình ảnh  Chương 2: Mạng nơ- ron tích chập (Convolution neural network - CNN)  Chương 3: So sánh mơ hình MLP với... Ứng dụng mơ hình mạng nơ- ron tích chập (CNN) vào bài toán phân loại củ quả DEEP LEARNING, MẠNG NƠ -RON NHÂN TẠO NHIỀU LỚP MLP VÀ BÀI TOÁN NHẬN DẠNG HÌNH ẢNH Giới thiệu chương Deep Learning... 11 Mạng nơ- ron nhân tạo nhiều lớp MLP Mạng nơ- ron nhân tạo nhiều lớp MLP (Mutil Layer Perceptron) là sự kết hợp của nhiều lớp Perceptron và có cấu tạo hình dưới: Mỗi mơ hình

Ngày đăng: 03/08/2022, 15:43

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan