Phân loại hình ảnh chó mèo có thể được sử dụng để tự động hóa các tác vụ như nhận dạng chó mèo trong các video hoặc hình ảnh, hoặc phân loại ảnh chó mèo trong các kho dữ liệu lớn.. Phân
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO BÀI TẬP LỚN MÔN MẠNG NƠ-RON NHÂN TẠO
Trang 2PHI ẾU GIAO ĐỒ ÁN MÔN HỌC
I Thông tin chung
II Nội dung học tập
ảnh
1
Đề xuất ý tưởng thiết kế; Lựa chọn và sử dụng các tài liệu kỹ
thuật phù hợp để viết báo cáo đồ án môn học về phát triển ứng
dụng mạng nơ-ron nhân tạo
L1; L4
2 Áp dụng kiến thức về toán để tính toán các tham số, xây dựng
mô hình mạng nơ ron nhân tạo L1; L4
3 Thiết kế phần mềm mô phỏng; Đánh giá mô hình L2; L3
4
Viết báo cáo ứng dụng mạng nơ-ron nhân tạo sử dụng văn bản
và đồ họa Thuyết trình ứng dụng xây dựng trên nền tảng
mạng nơ-ron nhân tạo
L2; L3
TT Tên sản phẩm Yêu cầu Số lượng
1 Slide thuyết trình Theo nội dung đề tài đồ án 01
2 Mô hình/Mô phỏng Theo đề tài đồ án 01
Trang 33 Quyển báo cáo Trình bày theo quy định
(QĐ 815/QĐ-ĐHCN) 01
III Nhiệm vụ học tập
Hoàn thành nội dung của đồ án theo đúng quy định trong thời gian từ ngày 16/10/2023 đến ngày 24/12/2023, bao gồm:
- Thực hiện thành lập nhóm, triển khai kế hoạch làm việc nhóm
- Họp nhóm (ít nhất 05 lần); ghi chép biên bản họp; lưu video minh chứng cho buổi họp
- Thay phiên điều phối công việc của nhóm (mỗi thành viên làm trưởng nhóm ít nhất 01 giai đoạn)
- Áp dụng kiến thức, kỹ năng và công cụ liên quan để thiết kế ứng dụng mạng nơ ron trong các bài toán thực tế
- Báo cáo sản phẩm nghiên cứu theo đề tài được giao trước giảng viên và các sinh viên khác
IV Học liệu thực hiện Đồ án
1 Tài liệu học tập:
Phương pháp và ứng dụng, 2000
2 Phương tiện, nguyên liệu thực hiện Đồ án (nếu có):
- Laptop cá nhân, ngôn ngữ lập trình Python, các thư viện hỗ trợ như tensorflow, Tkinter, scikit-learn, pillow…
Trang 4Hà Nội, ngày 16 tháng 10 năm 2023 Trưởng bộ môn
Trang 5PH Ụ LỤC: MÔ TẢ YÊU CẦU KỸ THUẬT CỦA MÔ HÌNH NHẬN DIỆN
Trang 6MỤC LỤC
DANH MỤC HÌNH ẢNH 2
LỜI NÓI ĐẦU 3
MỞ ĐẦU 4
1 Lý do chọn đề tài 4
2 Tình hình nghiên cứu trong và ngoài nước 4
3 Phương pháp nghiên cứu, mục tiêu, phạm vi và đối tượng nghiên cứu 4
4 Kết quả dự kiến 5
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 6
1.1 Giới thiệu chung 6
1.1.1 Khái niệm chung 6
1.1.2 Tầm quan trọng của mạng nơ-ron 7
1.1.3 Nguyên lý hoạt động của mạng nơ-ron 9
1.1.4 Các phương pháp huấn luyện mạng nơ-ron 10
1.2 Một số mô hình mạng nơ-ron sử dụng cho phân loại, nhận diện 11
1.3 Mô hình mạng nơ-ron tích chập (CNN) 13
1.3.1 Khái niệm chung 13
1.3.2 Các lớp cơ bản của mạng nơ-ron tích chập 14
1.4 Kết luận chương 15
CHƯƠNG 2: THIẾT KẾ MÔ HÌNH MẠNG NƠ-RON NHÂN TẠO PHÂN LOẠI CHÓ MÈO QUA HÌNH ẢNH 16
2.1 Yêu cầu thiết kế 16
Trang 72.2 Sơ đồ khối 16
2.3 Bài toán thiết kế mạng nơ-ron nhận diện chó mèo 17
2.3.1 Đối tượng đầu vào 17
2.3.2 Tiền xử lý dữ liệu 17
2.3.3 Huấn luyện mô hình 18
2.3.4 Dự đoán đầu ra dựa trên trọng số của mô hình đã huấn luyện 24
2.4 Kết luận chương 25
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ 26
3.1 Các kịch bản kiểm thử mô hình 26
3.2 Đánh giá mô hình 28
3.3 Hướng phát triển 29
KẾT LUẬN 30
TÀI LIỆU THAM KHẢO 31
Trang 8DANH MỤC HÌNH ẢNH
Hình 1: cấu trúc mạng nơ-ron cơ bản 6
Hình 2: Đếm số lượng xe đang lưu thông 7
Hình 3: Chuyển đổi giọng nói thành văn bản 8
Hình 4: ChatGPT – chatbot tự động có khả năng xử lý ngôn ngữ tự nhiên 8
Hình 5: Học có giám sát 10
Hình 6: Học không giám sát 10
Hình 7: Học tăng cường 11
Hình 8: Cấu trúc một mạng nơ-ron tích chập 13
Hình 9: sơ đồ khối của mô hình 16
Hình 10: Tiền xử lý dữ liệu 17
Hình 11: Mô hình mạng nơ-ron tích chập nhận diện chó mèo 19
Hình 12: Tầng tích chập 20 Hình 13: Dự đoán kết quả đầu ra dựa trên trọng số của mô hình đã huấn luyện 25
Trang 9LỜI NÓI ĐẦU
Lời đầu tiên, nhóm em xin gửi lời cảm ơn chân thành đến cô Dương Thị Hằng, người đã trực tiếp hướng dẫn và đưa ra những góp ý định hướng để tạo mọi điều kiện giúp đồ án của nhóm ngày càng được hoàn thiện hơn
Mặc dù đã có nhiều cố gắng trong quá trình làm đồ án tốt nhưng do thời gian
và năng lực bản thân có hạn nên không thể tránh khỏi còn những thiếu sót Nhóm
em rất mong sẽ nhận được những góp ý quý báu đến từ tất cả các thầy cô giáo để kết quả của nhóm được hoàn thiện hơn
Chúng em xin chân thành cảm ơn!
Trang 102 Tình hình nghiên cứu trong và ngoài nước
Trên thế giới, các nghiên cứu về phân loại ảnh chó mèo dùng CNN đã được triển khai từ nhiều năm về trước và vẫn tiếp tục cho tới ngày nay Các nghiên cứu này đã đạt được những kết quá đáng nể, với độ chính xác có thể lên tới 99% Trong những năm gần đây các nghiên cứu phân loại ảnh chó mèo sử dụng mạng nơ-ron tích chập có xu hướng sử dụng các kiến trúc CNN, các kỹ thuật học máy mới Tại Việt Nam, đề tài này đã được triển khai nghiên cứu nhiều năm nay Các nghiên cứu về đề tài này nói chung đã có thể bắt kịp với thế giới về độ chính xác
mô hình (trên 99%)
3 Phương pháp nghiên cứu, mục tiêu, phạm vi và đối tượng nghiên cứu
Phương pháp nghiên cứu:
Trang 11- Bước 3: Xây dựng mô hình CNN
Mục tiêu của đề tài:
Phạm vi, đối tượng nghiên cứu sẽ tập trung vào các nội dung sau:
4 Kết quả dự kiến
Xây dựng mô hình bằng phương pháp sử dụng mạng nơ-ron tích chập (CNN)
Mô hình mạng nơ-ron nhân tạo nhận diện chó mèo qua hình ảnh hoạt động ổn định, độ chính xác đạt trên 80%
Thời gian nhận diện một tấm ảnh không quá 50 ms
Trang 12CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu chung
Mạng nơ-ron nhân tạo (Artificial neural network – ANN) hay thường được gọi ngắn gọn là mạng nơ-ron (Neural network) là một mô hình toán học hay mô hình tính toán được xây dựng dựa trên cấu trúc của mạng nơ-ron sinh học Các nơ-ron này có nhiệm vụ tìm kiếm các mối liên hệ cơ bản trong tập hợp dữ liệu và đưa
ra các dự đoán Độ chính xác của dự đoán phụ thuộc vào độ đa dạng của tập dữ liệu, phương pháp xây dựng, huấn luyện mô hình mạng nơ-ron [1]
Kiến trúc mạng nơ-ron cơ bản gồm 3 lớp:
nơ-ron có thể có một hoặc nhiều lớp ẩn) Lớp này phụ trách việc trích xuất các đặc trưng, xử lý chuyên sâu dữ liệu, học cách tạo ra đầu ra mong muốn
Hình 1: cấu trúc mạng nơ-ron cơ bản
Trang 131.1.2 Tầm quan trọng của mạng nơ-ron
Mạng nơ-ron có thể đưa ra các dự đoán, suy luận có độ chính xác cao mà ít cần đến sự tác động của con người Lý do là nó có khả năng học hỏi, tìm ra mối liên kết trong tập dữ liệu đầu vào và đầu ra phi tuyến tính, phức tạp Nhờ khả năng làm việc với dữ liệu lớn và tương thích tốt khi đầu vào thay đổi mà mạng nơ-ron nhân tạo được áp dụng rộng rãi khắp các ngành nghề Dưới đây là 4 công dụng nổi bật nhất của mạng nơ-ron [3]
Thị giác máy tính (Computer Vision): là khả năng trích xuất dữ liệu cũng như thông tin chuyên sâu từ hình ảnh và video của máy tính Từ đó tìm ra các đặc trưng riêng của hình ảnh, video giúp máy tính có thể phân biệt, nhân diện hình ảnh tương tự như con người Thị giác máy tính được ứng dụng rất phổ biến hiện nay,
ví dụ:
- Hệ thống nhận diện khuôn mặt, tăng cường tính bảo mật
- Kiểm duyệt nội dung để tự động loại bỏ các nội dung không an toàn hoặc không phù hợp
- Dán nhãn hình ảnh để nhận diện thương hiệu, phân loại con vật, …
- Hệ thống nhận diện biển số xe, đếm lượng phương tiện đang lưu thông
Hình 2: Đếm số lượng xe đang lưu thông
Nhận dạng giọng nói (Voice Recognition): mạng nơ-ron có thể phân tích giọng nói con người, bất kể mẫu giọng, cao độ, tông giọng, ngôn ngữ và giọng địa
Trang 14phương Rất nhiều nền tảng số đã tích hợp công cụ nhận dạng giọng nói để thực hiện các công việc như:
Hình 3: Chuyển đổi giọng nói thành văn bản
Kỹ thuật xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP): kỹ thuật xử lý ngôn ngữ tự nhiên là khả năng xử lý văn bản tự nhiên do con người tạo
ra Mạng nơ-ron giúp máy tính thu thập thông tin chuyên sâu và ý nghĩa từ văn bản và tài liệu Các mô hình trí tuệ nhân tạo tiên tiến hiện nay được xây dựng để
viên ảo và chatbot tự động; Tự động sắp xếp và phần loại dữ liệu được ghi…
Hình 4: ChatGPT – chatbot tự động có khả năng xử lý ngôn ngữ tự nhiên
Trang 15Công cụ đề xuất: mạng nơ-ron có thể theo dõi hoạt động người dung, thu thập dữ liệu về thói quen mua sắm, sử dụng mạng xã hội hay bất cứ hoạt động nào Học tập từ dữ liệu đó và đưa ra các đề xuất được cá nhân hóa Điều này thể hiện
rõ nhất ở các mạng xã hội và các sản thương mại điện tử, nơi dữ liệu cá nhân được
sử dụng để tối ưu hóa trải nghiệm người dùng Ví dụ như Google, công cụ tìm kiếm này sẽ đưa ra các đề xuất có nội dung liên quan tới lịch sử tìm kiếm của người dùng Điều này giúp người dùng tìm được nội dung mong muốn trong thời
gian ngắn nhất
Kiến trúc mạng nơ-ron nhân tạo được lấy cảm hứng từ bộ não con người Các tế bào não của con người, còn được gọi là nơ-ron, tạo thành một mạng lưới thần kinh phức tạp, có tính liên kết cao, tác động qua lại thông qua tín hiệu điện giúp con người xử lý thông tin
Mô hình mạng ron nhân tạo cũng hoạt động tương tự như các tế bào ron trong cơ thể người Các nơ-ron tương tác với nhau để giải quyết một vấn đề Mỗi nơ-ron được gọi là một nút mạng, về bản chất là một phần mềm, sử dụng hệ
này xác định mức độ ảnh hưởng của tín hiệu từ các nơ-ron khác đến nơ-ron đó Mạng nơ-ron hoạt động theo hai giai đoạn chính: Giai đoạn học tập và giai đoạn
dự đoán Giai đoạn học tập, trong giai đoạn này, mạng nơ-ron được huấn luyện trên một tập dữ liệu mẫu Tập dữ liệu mẫu gồm các ví dụ về đầu vào và đầu ra mong muốn Mạng nơ-ron học các đặc trưng từ tập dữ liệu này, liên kết các đặc trưng đầu vào để học cách tạo ra đầu ra mong muốn cho bất kỳ đầu vào nào Giai đoạn dự đoán, trong giai đoạn này mạng nơ-ron được sử dụng để dự đoán đầu ra cho các đầu vào mới [2]
Trang 161.1.4 Các phương pháp huấn luyện mạng nơ-ron
Học có giám sát (Supervised Learning): đây là phương pháp được sử dụng phổ biến nhất cho việc huấn luyện các mô hình mạng nơ-ron hiện nay Gọi là phương pháp học có giám sát là bởi mô hình mạng nơ-ron sẽ được huấn luyện dưới sự giám sát để đưa ra được các dự đoán con người mong muốn Dữ liệu huấn luyện được đưa vào dưới dạng cặp đối tượng đầu vào và đầu ra mong muốn tương ứng Nhiệm vụ của mô hình mạng nơ-ron là đưa ra được đầu ra dự đoán gần chính xác nhất với đầu ra mong muốn Việc học có giám sát có thể được nhóm lại thành các vấn đề về phân loại và hồi quy [4]
Hình 5: Học có giám sát
Học không giám sát (Unsupervised Learning): là một phương pháp nhắm tìm ra mô hình phù hợp với các quan sát Nó khác với phương pháp học có giám sát ở chỗ đầu ra là không biết trước Dữ liệu huấn luyện chỉ gồm các đầu vào được thu thập Nhiệm vụ của mạng nơ-ron là mô hình hóa cấu trúc nền tảng hoặc sự phân bố dữ liệu để hiểu rõ hơn về nó [4]
Hình 6: Học không giám sát
Trang 17Học tăng cường (Reinforcement Learning): là kỹ thuật học máy tiên tiến giúp đào tạo mô hình mạng nơ-ron đưa ra quyết định tối ưu nhất Phương pháp này bắt chước quy trình học thử và sai mà con người sử dụng để đạt được mục tiêu đã đặt ra Học tăng cường giúp phần mềm tăng cường các hành động tiến tới mục tiêu, bỏ qua các hành động làm xao lãng quá trình huấn luyện Kỹ thuật này
sử dụng mô hình khen thưởng và trừng phát trong quá trình xử lý dữ liệu Các thuật toán tiếp thu ý kiến phản hồi của từng hành động và khám phá ra con đường tốt nhất hướng tới kết quả mong muốn [4]
Hình 7: Học tăng cường
1.2 Một số mô hình mạng nơ-ron sử dụng cho phân loại, nhận diện
MLP (Multilayer Perceptron) là một mạng nơ-ron nhân tạo có cấu trúc gồm nhiều lớp ẩn, mỗi lớp có các nơ-ron được kết nối với nhau Cấu trúc của MLP gồm
ba phần chính: lớp đầu vào, các lớp ẩn và lớp đầu ra Các nơ-ron của lớp trước và lớp sau liên kết theo cấu trúc hoàn toàn kết nối Trong cấu trúc hoàn toàn kết nối, mỗi nơ-ron trong một lớp nhận đầu vào từ tất cả các nơ-ron trong lớp trước đó Đầu vào nơ-ron tính bằng tổng trọng số của các kết nối giữa nơ-ron đó và các nơ-ron ở lớp trước Cấu trúc hoàn toàn kết nối có thể học được các mối quan hệ phức tạp giữa các đặc trưng, mô hình sử dụng cấu trúc này có thể được sử dụng cho
Trang 18nhiều ứng dụng khác nhau Tuy nhiên cấu trúc hoàn toàn kết nối có thể dẫn đến hiện tượng quá khớp, đặc biệt là khi dữ liệu huấn luyện không đủ lớn
KNN (K-nearest neighbors) là một phương pháp học máy dựa trên sự gần gũi Trong KNN, một điểm dữ liệu mới được phân loại dựa trên các điểm dữ liệu gần gũi nhất với nó trong không gian dữ liệu KNN thường được sử dụng trong phân loại, nhưng cũng có thể sử dụng trong các ứng dụng hồi quy Mô hình KNN hoạt động như sau:
Giá trị k là một tham số của KNN Tham số này không ảnh hưởng đến độ chính xác của mô hình Nếu k nhỏ, mô hình sẽ nhạy cảm với nhiễu Nếu k lớn, mô hình
sẽ ít nhạy cảm với nhiễu hơn, nhưng sẽ kém chính xác hơn KNN có ưu điểm dễ hiểu và dễ triển khai, không yêu cầu nhiều dữ liệu huấn luyện, có thể sử dụng với nhiều loại dữ liệu khác nhau như hình ảnh, âm thanh, văn bản, … Nhược điểm của
mô hình này là có độ chính xác kém so với các phương pháp học máy khác, có thể dẫn tới hiện tượng quá khớp nếu k quá nhỏ
CNN (Convolutional Neural Network) hay mạng nơ-ron tích chập là mô hình học máy được sử dụng rộng rãi trong các ứng dụng xử lý hình ảnh và video Mạng nơ-ron tích chập có thể tự động học hỏi các đặc trưng từ dữ liệu hình ảnh
và video, giúp cho việc phân loại hình ảnh, nhận dạng đối tượng và các tác vụ xử
lý hình ảnh hiệu quả hơn Cấu trúc của CNN bao gồm các lớp tích chập, lớp pooling và lớp kết nối đầy đủ CNN có thể tự động học hỏi các đặc trưng phức tạp
Trang 19từ dữ liệu hình ảnh do đó được ứng dụng trong nhiều lĩnh vực khác nhau như phân loại hình ảnh, nhận dạng đối tượng, trí tuệ nhân tạo trong trò chơi Tuy nhiên, mô hình CNN yêu cầu lượng lớn dữ liệu huấn luyện và dữ liệu này phải đảm bảo độ
đa dạng
Mô hình KNN có thể dùng khi dữ liệu có nhiều đặc trưng độc lập Nếu dữ liệu có nhiều mối quan hệ phức tạp giữa các đặc trưng, mô hình MLP sẽ được sử dụng Mô hình CNN phù hợp với các mô hình có dữ liệu đầu vào là hình ảnh hoặc video Với đề tài thiết kế mạng nơ-ron nhân tạo phân loại chó mèo qua hình ảnh, nhóm đề xuất sử dụng mô hình mạng nơ-ron tích chập (CNN)
1.3 Mô hình mạng nơ-ron tích chập (CNN)
Mạng nơ-ron tích chập, hay CNN là mô hình mạng nơ-ron tiên tiến được áp dụng nhiều trong lĩnh vực học sâu Hiện nay mạng CNN được ứng dụng chủ yếu trong lĩnh vực xử lý ảnh Cụ thể là nhận diện đối tượng trong ảnh thông qua huấn luyện từ tập dữ liệu đã được gán nhãn Mạng nơ-ron tích chập là tập hợp những lớp tích chập xếp chồng lên nhau, sử dụng các hàm như ReLu và Tanh để kích hoạt các trọng số Mạng CNN có tính kết hợp và tính bất biến Tính kết hợp đề cập đến khả năng học hỏi các đặc trưng từ dữ liệu hình ảnh mà không phụ thuộc vào vị trí của các đặc trưng đó trong hình ảnh Tính bất biến đề cập đến khả năng học hỏi các đặc trưng từ dữ liệu hình ảnh mà không bị ảnh hưởng bởi các thay đổi
về kích thước, ánh sáng hoặc góc nhìn của hình ảnh [4]
Trang 201.3.2 Các lớp cơ bản của mạng nơ-ron tích chập
Lớp tích chập (CONV): đây là tầng quan trọng nhất của toàn mạng CNN
Nó sử dụng các bộ lọc để thực hiện phép tích chập khi đưa chúng qua đầu vào
Các tham số của các bộ lọc này bao gồm kích thước bộ lọc F và độ trượt S
Lớp pooling: khi ma trận ảnh đầu vào có kích thước quá lớn, các lớp pooling layer sẽ được đặt giữa những tầng tích chập để giảm các tham số Có 2 loại lớp pooling đó là Max pooling và Average pooling
và pooling
Lớp kết nối đầy đủ (Fully Connected): Nhận đầu vào là dữ liệu đã được làm
phẳng, mỗi đầu vào đó được kết nối đến tất cả nơ-ron Thường được sử dụng ở tầng cuối mạng, được sử dụng để tối ưu hóa các tham số của mạng
Lớp dropout là một kỹ thuật thường được sử dụng trong mạng nơ-ron tích chập để cải thiện khả năng khái quá hóa mô hình Trong quá trình huấn luyện, lớp này thực hiện tắt ngẫu nhiên hoạt động của một số nơ-ron trong một lớp với xác suất nhất định Các nơ-ron bị tắt sẽ không đóng góp vào tính toán cho nơ-ron ở lớp tiếp theo Việc này giúp giảm hiện tượng quá khớp khi huấn luyện mô hình