Nghiên cứu mô hình CNN và xây dựng phần mềm phân loại hình ảnh vẽ tay sử dụng framework Pandas, CVpython.Đây là một dự án khá hay cho các bạn mới tìm hiểu về trí tuệ nhân tạo. Dựa trên trò chơi Quick Draw của Google
MỤC LỤC DANH MỤC BẢNG BIỂU iv DANH MỤC HÌNH ẢNH v BẢNG CHÚ GIẢI CÁC CHỮ VIẾT TẮT vi LỜI MỞ ĐẦU vii Ý TƯỞNG .vii MỤC TIÊU NGHIÊN CỨU vii ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU vii Đối tượng nghiên cứu .vii Phạm vi nghiên cứu viii PHƯƠNG PHÁP NGHIÊN CỨU viii CẤU TRÚC CỦA ĐỀ TÀI .viii CHƯƠNG MACHINE LEARNING VÀ BÀI TỐN PHÂN LOẠI HÌNH ẢNH 1.1 Học máy .1 1.1.1 Trí tuệ nhân tạo 1.1.2 Học máy .2 1.1.3 Một số ví dụ .3 1.2 Phân loại thuật toán học máy 1.2.1 Phân loại theo phương thức học 1.2.2 Phân loại dựa nhóm chức 1.3 Mạng nơron nhân tạo 11 1.3.1 Giới thiệu mạng nơron .11 1.3.2 Cấu tạo trình xử lý nơron sinh học 11 1.3.3 Cấu tạo trình xử lý nơron nhân tạo 12 1.3.4 Các mơ hình hàm kích hoạt mạng nơron nhân tạo .14 1.3.5 Mơ hình mạng nơron 17 1.3.6 Một số kiểu mạng nơron 19 i 1.3.7 Thuật toán lan truyền ngược .20 1.4 Tổng quan toán nhận dạng ảnh 21 1.5 Các hướng tiếp cận phân loại ảnh 22 1.5.1 Phương pháp học máy truyền thống 22 1.5.2 Phương pháp học sâu .23 1.6 Tổng quan Deep learning 24 CHƯƠNG KIẾN TRÚC MẠNG NƠRON TÍCH CHẬP 25 2.1 Lịch sử hình thành phát triển Computer vision mạng thần kinh chuyển đổi CNN 25 2.1.1 Thị giác máy tính (Computer vision) .25 2.1.2 Mạng thần kinh chuyển đổi CNN .25 2.2 Sự khác biệt thị giác máy tính (computer vision) xử lý ảnh (image processing) .26 2.3 Deep learning kỹ thuật hình ảnh số .26 2.3.1 Tích chập (Convolution) gì? 28 2.3.2 Cấu trúc mạng CNN 29 2.3.3 Các siêu tham số lọc .38 2.3.4 Đánh giá độ phức tạp mô hình 39 2.4 Một số toán phổ biến 41 2.4.1 Phát vật (Object detection) 41 2.4.2 Nhận diện dự đoán .42 2.5 Những kiến thức sử dụng Computational tricks 42 CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH THỰC NGHIỆM .43 3.1 Thư viện hỗ trợ 43 3.2 Dữ liệu chương trình .44 3.2.1 Dữ liệu .44 3.2.2 Mô hình thực nghiệm .44 3.3 Kết thực nghiệm 49 ii 3.4 Xây dựng ứng dụng phân loại hình ảnh .51 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59 TÀI LIỆU THAM KHẢO 60 iii DANH MỤC BẢNG BIỂU Bảng 2.1 Giải thích hàm Softmax Bảng 2.2 Cách tính tham số mạng nơron tích chập iv DANH MỤC HÌNH ẢNH Hình 1.1 Tóm tắt q trình phát triển trí tuệ nhân tạo Hình 1.2 Cấu trúc neuron sinh học 12 Hình 1.3 Cấu trúc nơron nhân tạo 12 Hình 1.4 Mơ tả đơn giản mạng nơron nhân tạo .13 Hình 1.5 Thiên lệch thêm vào thực tế 13 Hình 1.6 Đồ thị hàm Sigmoid 14 Hình 1.7 Đồ thị hàm 15 Hình 1.8 Đồ thị hàm tuyến tính .16 Hình 1.9 Đồ thị hàm ReLU .17 Hình 1.10 Mơ hình mạng nơron truyền thẳng 19 Hình 1.11 Mơ hình mạng nơron hồi quy 20 Hình 2.1 Mạng thần kinh chuyển đổi CNN 27 Hình 2.2 Tích chập (convolution) 28 Hình 2.3 Convolution Layer 30 Hình 2.4 ReLU layer (Rectified Linear Unit) 31 Hình 2.5 Pooling layer 34 Hình 2.6 Đồ thị hàm ReLU .36 Hình 2.7 Trực quan hố mơ hình CNN 41 Hình 3.1 Trực quan hố lớp sử dụng mơ hình phân loại hình ảnh 48 Hình 3.2 Đồ thị model Loss 50 Hình 3.3 Đồ thị model Accuracy 51 Hình 3.4 Demo ứng dụng 58 v BẢNG CHÚ GIẢI CÁC CHỮ VIẾT TẮT STT Từ viết tắt AI ANN SVM CNN ML RNN POOL FC Từ đầy đủ Artificial Intelligence Artificial Neural Networks Support Vector Machine Convolutional Neural Network Machine learning Recurrent Neural Network Pooling Fully Connected Ý nghĩa Trí tuệ nhân tạo Mạng thần kinh nhân tạo Máy véctơ hỗ trợ Mạng nơron tích chập Học máy Mạng thần kinh hồi quy Lớp tổng hợp Lớp kết nối đầy đủ NLP Natural Language Processing Xử lý ngôn ngữ tự nhiên vi LỜI MỞ ĐẦU Ý TƯỞNG Bài toán phân loại ảnh vấn đề quan trọng lĩnh vực thị giác máy tính (computer vision), thiết kế để phân biệt xác định lớp ảnh phân loại trước Với vai trị toán cốt lõi lĩnh vực trí tuệ nhân tạo thị giác máy tính, phân loại ảnh có nhiều ứng dụng rộng rãi thực tiễn Vì vậy, việc hiểu áp dụng kỹ thuật xử lý toán cần thiết quan trọng nghiên cứu Các ứng dụng phân loại ảnh đa dạng, bao gồm phân loại ảnh viễn thám vệ tinh, phân loại biển báo giao thông nhận dạng biển báo phần mềm thông báo xe hơi, phân loại ảnh y tế Tất toán với đầu vào ảnh đầu lớp ảnh danh mục xác định trước Việc phân loại ảnh thu hút nhiều quan tâm lĩnh vực công nghệ thông tin Việc nghiên cứu đề tài khoa học giúp hiểu thêm kiến thức kinh nghiệm lĩnh vực trí tuệ nhân tạo, từ phát triển kỹ cần thiết để phục vụ cho công việc tương lai Chính vậy, nhóm chúng em chọn đề tài để thực MỤC TIÊU NGHIÊN CỨU - Nghiên cứu kỹ thuật deep learning, bao gồm ngun lý thủ tục xây dựng mơ hình học máy, nhằm ứng dụng giải toán phân loại nhận dạng ảnh - Nghiên cứu mạng neural nhân tạo (ANN) sở kỹ thuật deep learning - Nghiên cứu mạng neural tích chập (CNN) sở để xây dựng mơ hình deep learning cho toán phân loại ảnh - Thực cài đặt chương trình học máy deep learning để phân loại nhận dạng ảnh vẽ tay ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU Đối tượng nghiên cứu Nghiên cứu lý thuyết tập trung vào mạng neural nhân tạo (ANN), mạng neural tích chập (CNN), mơ hình deep learning việc phân loại nhận dạng ảnh Trong đó, đối tượng nghiên cứu thực tiễn mơ hình deep learning áp dụng cho việc phân loại nhận dạng ảnh vẽ tay vii Phạm vi nghiên cứu - Dữ liệu huấn luyện cho mơ hình https://github.com/googlecreativelab/quickdraw-dataset lấy trang Github: - Dữ liệu nhận dạng ảnh thông dụng chụp lại vẽ tay ứng dụng nhóm phát triển PHƯƠNG PHÁP NGHIÊN CỨU - Phương pháp nghiên cứu lý thuyết phương pháp thực nghiệm - Dựa tài liệu thu thập từ nhiều nguồn tổng hợp, phân tích trình bày lại theo hiểu biết thân - Thử nghiệm để đánh giá mơ hình CẤU TRÚC CỦA ĐỀ TÀI Bài báo cáo gồm chương gồm Chương 1: Giới thiệu tổng quan học máy, toán phân loại ảnh, mạng neural chế lan truyền ngược Giới thiệu số kiểu mạng neural Chương 2: Trình bày mạng neural tích chập, so sánh thị giác máy tính phân loại ảnh, giới thiệu số toán phổ biến liên quan Chương 3: Áp dụng mạng neural tích chập vào thực tiễn Trình bày kết thực tế việc áp dụng vào toán phân loại ảnh vẽ tay viii CHƯƠNG MACHINE LEARNING VÀ BÀI TỐN PHÂN LOẠI HÌNH ẢNH 1.1 Học máy 1.1.1 Trí tuệ nhân tạo Trí tuệ nhân tạo (Artificial Intelligence - AI) lĩnh vực khoa học máy tính cơng nghệ thơng tin liên quan đến việc phát triển hệ thống máy tính có khả tự học, tự động hóa nhiệm vụ thực tác vụ thông minh người Mục tiêu trí tuệ nhân tạo xây dựng hệ thống máy tính có khả "suy nghĩ" "hành động" giống người Để đạt mục tiêu này, trí tuệ nhân tạo sử dụng nhiều phương pháp kỹ thuật khác nhau, bao gồm học máy (machine learning), xử lý ngôn ngữ tự nhiên (natural language processing), thị giác máy tính (computer vision), robotics, học sâu (deep learning), học tăng cường (reinforcement learning) Trí tuệ nhân tạo lĩnh vực khoa học máy tính cơng nghệ thơng tin, phát triển nửa kỷ qua Một số giai đoạn lịch sử phát triển trí tuệ nhân tạo: - Những năm 1940 1950: Trong giai đoạn này, nhà khoa học máy tính bắt đầu nghiên cứu trí tuệ nhân tạo hệ thống thông minh Những người tiên phong lĩnh vực bao gồm John McCarthy, Marvin Minsky, Claude Shannon, Norbert Wiener Alan Turing - Những năm 1960 1970: Trong giai đoạn này, nhà khoa học tiếp tục nghiên cứu phát triển hệ thống AI phương pháp học máy Điển hình cơng trình John McCarthy, Marvin Minsky, Seymour Papert David Marr - Những năm 1980 1990: Trong giai đoạn này, AI áp dụng rộng rãi Hình 1.1 Tóm tắt q trình phát triển trí tuệ nhân tạo ứng dụng thực tế, bao gồm xử lý ngôn ngữ tự nhiên, thị giác máy tính hệ thống chuyên gia Trong giai đoạn này, phương pháp học máy mạng nơ-ron nhân tạo phát triển mạnh mẽ - Những năm 2000 đến nay: Trong giai đoạn này, công nghệ AI tiếp tục phát triển nhanh chóng, đặc biệt phương pháp học sâu học tăng cường Các ứng dụng AI bao gồm xe tự lái, hệ thống nhận diện giọng nói, hệ thống trợ lý ảo ứng dụng lĩnh vực y tế tài Trong suốt q trình phát triển, trí tuệ nhân tạo gặp phải nhiều thách thức khó khăn, tiếp tục phát triển trở thành phần quan trọng cách mạng công nghệ đại 1.1.2 Học máy Trong thời gian gần đây, trí tuệ nhân tạo (AI - Artificial Intelligence) đặc biệt học máy (ML - Machine Learning) trở thành chứng cho phát triển mạnh mẽ cách mạng công nghiệp lần thứ tư, sau động nước, lượng điện cơng nghệ thơng tin Trí tuệ nhân tạo tích hợp lĩnh vực sống, ví dụ hệ thống xe tự lái Google Tesla, hệ thống gợi ý sản phẩm Amazon, trợ lý ảo Siri Apple nhiều ứng dụng khác AI / ML Tuy nhiên, chưa có định nghĩa thức cho học máy Ngay chuyên gia tranh cãi "học máy" "máy học" đa phần tìm tài liệu mạng, thấy định nghĩa học máy này: Theo Tom Mitchell: "Một chương trình máy tính học hỏi từ liệu, cải thiện độ xác tác vụ đo lường P, số đo lường P cải thiện qua thời gian" Với Arthur Samuel: "Học máy lĩnh vực nghiên cứu giúp máy tính tự động học hỏi mà khơng cần phải lập trình cụ thể" Còn với Ethem Alpaydin: "Học máy tập hợp kỹ thuật để giúp máy tính tìm hiểu mối quan hệ ẩn liệu cách sử dụng mơ hình tốn học" Và theo Michael Jordan: "Học máy nghiên cứu cách mà máy tính học hỏi để thực nhiệm vụ cụ thể, khơng phải cách lập trình tường minh, mà cách tìm kiếm cấu trúc tập liệu đại diện cho nhiệm vụ Một ý tưởng quy trình học máy tạo mơ hình dựa số thuật toán để thực nhiệm vụ cụ thể phân loại, phân lớp, hồi quy, Quá trình huấn luyện thực cách sử dụng liệu đầu vào mơ hình xây dựng để dự đoán kết đầu Kết phụ thuộc vào mục tiêu ban đầu điều kiện thực 1.1.3 Một số ví dụ Gmail Google tích hợp tính trả lời thơng minh gửi nhận thư, đề xuất câu trả lời ngắn gọn cho email dựa nội dung chúng Tùy chọn soạn thư thông minh cung cấp cho người dùng đề xuất lời chào, lời kết thúc câu hoàn chỉnh khác để giúp tiết kiệm thời gian nhập email