TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
Hà Nội - Năm 2024
Trang 2PHIẾU GIAO ĐỒ ÁN MÔN HỌC HỌC PHẦN ĐỒ ÁN MẠNG NƠ-RON NHÂN TẠO
I Thông tin chung
1 Mã lớp học phần: 20241FE6059003 Khóa: 16
2 Tên nhóm: Nhóm 09
3 Họ và tên thành viên trong nhóm:
Sinh viên 1: Phạm Văn Viên MSV: 2021606680Sinh viên 2: Bùi Hữu Hải MSV: 2021606627Sinh viên 3: Hoàng Trung Dũng MSV: 2021606798
II Nội dung học tập
1 Tên đề tài: Thiết kế mạng nơ-ron nhân tạo nhận dạng hình ảnh động vật
2 Hoạt động của sinh viên:
T
1 Á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
2 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à
3
Thuyết trình ứng dụng xây dựng trên nền tảng mạng nơ-ron nhân
4 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.
L4
3 Sản phẩm nghiên cứu:
3 Quyển báo cáo Trình bày theo quy định(QĐ 815/QĐ-ĐHCN) 01
Trang 3III 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 14/10/2024 đến ngày 15/12/2024, 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ế mô hình mạng đáp ứng yêu cầu kỹ thuậ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
Trang 4KẾ HOẠCH THỰC HIỆN
Mã lớp học phần: 20241FE6059003 Khóa: 16
Tên sinh viên thực hiện:
Sinh viên 1: Phạm Văn Viên MSV: 2021606680Sinh viên 2: Bùi Hữu Hải MSV: 2021606627Sinh viên 3: Hoàng Trung Dũng MSV: 2021606798Tên đề tài: Thiết kế mạng nơ-ron nhân tạo nhận dạng hình ảnh động vật
Tuần Nội dung công việc Phương pháp thực hiện
Nghiên cứu nội dung đề tài Từng thành viên tự làm công
việc được phân chia tại nhà5
Nghiên cứu nội dung đề tài Từng thành viên tự làm công
việc được phân chia tại nhà6
Nghiên cứu nội dung đề tài Làm việc trực tiếp tại thư viện
trường ĐH CNHN
7 Viết quyển báo cáo Viết quyển báo cáo
8 Hoàn thiện quyển báo cáo Hoàn thiện quyển báo cáo
9 Làm Slide báo cáo dự án Làm slide
10
Báo cáo dự án
Thực hiện báo cáo trực tiếp vớigiảng viên và các sinh viênkhác
Trang 5MỤC LỤC
DANH MỤC BẢNG BIỂU 7
DANH MỤC HÌNH ẢNH 8
MỞ ĐẦU 9
CHƯƠNG 1: TỔNG QUAN 11
1.1 Tổng quan vấn đề nghiên cứu 11
1.2 Nội dung lý thuyết liên quan 11
1.2.1 Giới thiệu chung về mạng Neural nhân tạo 11
1.2.2 Các thành phần của mạng 12
1.2.3 Các ứng dụng của mạng 14
1.2.4 Nguyên lý của một Neural tích chập điển hình 14
1.3 Kết luận chương 1 15
CHƯƠNG 2: THIẾT KẾ MÔ HÌNH MẠNG NEURAL NHÂN TẠO NHẬN DIỆN HÌNH ẢNH ĐỘNG VẬT 16
2.1 Phân tích yêu cầu bài toán 16
2.1.1 Mục tiêu thiết kế 16
2.1.2 Điều kiện ràng buộc của thiết kế 16
2.1.3 Thông số kĩ thuật 16
2.1.4 Tiêu chí đánh giá sản phẩm 16
2.2 Thiết kế ý tưởng 17
2.2.1 Mạng Neural Perceptron 17
2.2.2 Mạng Neural Tích chập (CNN) 18
2.2.3 Lựa chọn phương án tối ưu 20
2.3 Thiết kế chi tiết 20
2.3.1 Xây dựng mô hình huấn luyện mạng Neural và thuật toán 20
Trang 62.3.2 Huấn luyện mạng Neural 22
2.3.3 Thiết kế phần mềm 23
2.4 Kết luận chương 2 29
CHƯƠNG 3: KẾT QUẢ VÀ THỰC NGHIỆM 30
3.1 Vận hành sản phẩm 30
3.2 Thử nghiệm và kiểm chứng sản phẩm 31
3.3 Đánh giá sản phẩm 32
3.4 Ứng dụng của sản phẩm 32
3.5 Tác động của sản phẩm tới môi trường, kinh tế, xã hội 32
3.6 Kết luận chương 3 33
KẾT LUẬN 34
TÀI LIỆU THAM KHẢO 35
PHỤ LỤC 36
Trang 7DANH MỤC BẢNG BIỂU
Bảng 3.1 Kết quả thực nghiệm sản phẩm 31
Trang 8DANH MỤC HÌNH ẢNH
Hình 1.1 Cấu tạo của một mạng Neural nhân tạo 12
Hình 1.2 Mô hình mạng Neural nhân tạo 12
Hình 1.3 Cấu trúc mạng perceptron 13
Hình 1.4 Cấu trúc mạng Neural nhiều lớp 14
Hình 2.1 Mô hình huấn luyện mạng Neural 20
Hình 2.2 Hàm Maxpooling 21
Hình 2.3 Dữ liệu ảnh 24
Hình 2.4 Ma trận dữ liệu ảnh 25
Hình 2.5 Quá trình nhân tích chập 27
Hình 2.6 Giá trị Pooling tối đa 27
Hình 2.7 Ma trận duỗi thẳng 27
Hình 2.8 Quá trình huấn luyện 28
Hình 3.1 Kết nối file data chọn ảnh 30
Hình 3.2 Kết quả dự đoán 30
Trang 9MỞ ĐẦU
1 Lý do chọn đề tài
Trong lĩnh vực nhận diện hình ảnh, có rất nhiều ứng dụng quan trọng trongcuộc sống và nghiên cứu Một ví dụ điển hình là việc nhận diện động vật quahình ảnh, ứng dụng này có vai trò thực tiễn cao Các ứng dụng đáng chú ý baogồm nghiên cứu sinh thái học, bảo vệ môi trường và giám sát động vật hoang
dã Với những ứng dụng thiết thực này, nhóm 9 đã quyết định lựa chọn đề tài
"Thiết kế mô hình mạng Neural nhân tạo nhận diện hình ảnh động vật" để làm
đồ án thi kết thúc học phần Mạng Neural nhân tạo
2 Mục tiêu nghiên cứu
Trong kỷ nguyên công nghệ 4.0, việc áp dụng trí tuệ nhân tạo vào mọi lĩnhvực của cuộc sống đã trở thành xu hướng để tiết kiệm thời gian và công sức Cụthể, trong lĩnh vực giáo dục, nhóm chúng em đặt mục tiêu phát triển một sảnphẩm giúp nâng cao hiệu quả học tập giữa giáo viên và học sinh Các mục tiêuchính bao gồm:
- Tạo cảm hứng học tập mới, giúp trẻ ôn tập lại bài học khi ở nhà
- Thuận tiện cho phụ huynh theo dõi
- Giảm bớt gánh nặng cho giáo viên
3 Đối tượng nghiên cứu
Các đặc điểm riêng biệt của các loài động vật là cơ sở để tạo ra những độngvật sở hữu những đặc điểm đó Những loài động vật có thể được áp dụng gồm:chó, mèo, lợn, gà, gấu, v.v Các mô hình mạng nơ-ron nhân tạo, bao gồm deeplearning và machine learning, được sử dụng để thực hiện điều này Các thuậttoán huấn luyện mạng nơ-ron như lan truyền thẳng và lan truyền ngược cũngđược áp dụng Dữ liệu đầu vào chủ yếu là hình ảnh của các loài động vật
4 Phạm vi nghiên cứu
Với đề tài nhận diện hình ảnh động vật, nghiên cứu này sẽ khám phá việc
áp dụng mạng nơ-ron tích chập (CNN) trong lĩnh vực nhận diện hình ảnh nói
Trang 10chung, cũng như hình ảnh động vật cụ thể Dữ liệu hình ảnh sẽ bao gồm các loàiđộng vật phổ biến trong đời sống hàng ngày.
5 Phương pháp nghiên cứu
Các phương pháp nghiên cứu
- Phương pháp thu thập thông tin: Tiến hành khảo sát các thông tin và bàinghiên cứu được công bố trên các trang web, cũng như tham khảo các bài viết từcác tạp chí khoa học
- Phương pháp xử lý thông tin: Thực hiện việc chọn lọc và phân tích thôngtin theo cả định lượng và định tính
- Phương pháp phân tích và tổng hợp lý thuyết: Tìm kiếm, tổng hợp vànghiên cứu các tài liệu liên quan đến Mạng Nơ-ron Tích chập (ConvolutionalNeural Network - CNN) và các thuật toán học máy Đồng thời, tìm hiểu cáckiến thức liên quan đến kỹ thuật lập trình, đặc biệt là ngôn ngữ lập trình Python
6 Ý nghĩa khoa học và thực tiễn của đề tài
Ý nghĩa khoa học: Nghiên cứu này sẽ bổ sung cho lý thuyết trong lĩnh vựcMạng Nơ-ron Nhân tạo, làm rõ một số vấn đề liên quan đến cấu trúc của mạngCNN và các phương pháp huấn luyện Đồ án cũng đóng góp vào việc giới thiệu
và xây dựng một hệ thống nhận diện và phân loại hình ảnh, đồng thời mở rộngnghiên cứu về các mô hình học sâu trong lĩnh vực nhận diện và phân loại hìnhảnh phổ biến toàn cầu thông qua CNN (Convolutional Neural Network)
Ý nghĩa thực tiễn: Luận văn này phát triển ứng dụng trực quan cho các môhình nhằm phát hiện và nhận diện hình ảnh động vật Ngoài ra, ứng dụng cũngcung cấp thống kê dữ liệu để so sánh hiệu suất giữa các mô hình khác nhau trongquá trình huấn luyện, kiểm thử và đánh giá mô hình nhận diện hình ảnh động vậtdựa trên CNN
7 Cấu trúc của báo cáo đồ án mạng nơ-ron
Đề tài nghiên cứu bao gồm 3 chương:
- Chương 1: Tổng quan về đề tài
Trang 11- Chương 2: Thiết kế mô hình mạng Neural nhân tạo nhận diện hình ảnh động vật
- Chương 3: Kết quả thực nghiệm và đánh giá
CHƯƠNG 1: TỔNG QUAN 1.1 Tổng quan vấn đề nghiên cứu
Trong kỷ nguyên 4.0 hiện nay, trí tuệ nhân tạo (AI) đang ngày càng trở nênphổ biến và mang lại nhiều lợi ích thiết thực cho cuộc sống con người Nhữngnăm gần đây, lĩnh vực Thị giác máy tính (Computer Vision) đã đạt được nhiềuthành công vượt bậc, với các công ty lớn như Facebook, Google và Amazontích hợp những tính năng thông minh vào sản phẩm của họ Những tính năngnày bao gồm nhận diện khuôn mặt, phát triển xe tự lái, giao hàng tự động vànhiều mô hình nhận dạng khác như dấu vân tay, khuôn mặt và biển số xe.Quá trình nhận diện hình ảnh liên quan đến việc xác định và phân loại cácđối tượng, mẫu hoặc đặc điểm trong một bức ảnh Điều này thường được thựchiện thông qua các thuật toán máy học hoặc trí tuệ nhân tạo, đóng vai trò quantrọng trong lĩnh vực này Nhận diện hình ảnh có nhiều ứng dụng hữu ích, baogồm nhận diện khuôn mặt, phát hiện đối tượng và phân loại sản phẩm Đặc biệt,nhận diện động vật qua hình ảnh là một ứng dụng quan trọng trong thực tiễn, có
ý nghĩa trong nghiên cứu sinh thái, bảo vệ môi trường và giám sát động vậthoang dã
1.2 Nội dung lý thuyết liên quan
1.2.1 Giới thiệu chung về mạng Neural nhân tạo
Mạng Neural là chuỗi những thuật toán được đưa ra để tìm kiếm các mốiquan hệ cơ bản trong tập hợp các dữ liệu, thông qua việc bắt trước hoạt động của
bộ não con người Mạng Neural nhân tạo có khả năng thích ứng được vơi nhữngthay đổi từ đầu vào, chính là quá trình học của mạng Từ đó có thể đưa ra đượckết quả một cách tốt nhất mà không cần phải thiết kế lại các tiêu chuẩn đầu ra
Trang 121.2.2 Các thành phần của mạng
Một mạng Neural nhân tạo bao gồm các Neural nhân tạo và các lớpperceptron
- Mô hình một Neural nhân tạo:
- Một Neural nhân tạo được mô phỏng dựa trên cấu trúc của mộtNeural sinh học, bao gồm:
+ Cell body chứa nhân
+ Dendrities dùng để truyền tín hiệu từ Neural lân cận đến cell body+ Axon: dùng để truyền tín hiệu từ cell body của Neural này đến cell body của Neural khác
Hình 1.1 Cấu tạo của một mạng Neural nhân tạo
- Trên cơ sở cấu tao của một Neural sinh học, mô hình Neural nhân tạođược xây dựng như sau:
Hình 1.2 Mô hình mạng Neural nhân tạo
Các đầu vào p1, p2, … , p k được kết nối thông qua bộ trọng số có thể thayđổi được w 1 ,1 , w 1 ,2 , … , w 1 , k tương ứng để đưa vào bộ tổng Ngoài ra Neural còn
Trang 13có độ lệch bias (b) được cộng cùng các đầu vào được trọng số hóa để tính đầu ra
a =f (n) (1.2) Trong đó f là hàm truyền đạt ( tranfer function ).
- Các lớp Perceptron:
- Perceptron là mạng Neural đơn giản, chỉ bao gồm 1 lớp được tạo nên
từ M Neural nhân tạo, mỗi Neural nhận N tín hiệu đầu vào:
Hình 1.3 Cấu trúc mạng perceptron
- Một mạng Neural nhân tạo thường có có cấu trúc 3 lớp:
+ Lớp đầu vào: Thông tin cần được xử lý được đưa vào mạng Neural qualớp đầu vào Nút đầu vào tiếp nhận, phân loại, phân tích dữ liệu và sau
đó chuyển qua lớp tiếp theo
+ Lớp ẩn: Dữ liệu chuyển từ lớp đầu vào sang lớp ẩn, hoặc từ lớp ẩn nàysang lớp ẩn khác Mạng Neural nhân tạo có thể có 1 hoặc nhiều lớp ẩn.Mỗi lớp ẩn phân tích, xử lý dữ liệu đó sâu hơn và chuyển sang các lớptiếp theo
+ Lớp đầu ra: Lớp đầu ra trả kết quả cuối cùng của tất cả dữ liệu được xử
lý trước đó Lớp này có thể có 1 hoặc nhiều node
Trang 14Hình 1.4 Cấu trúc mạng Neural nhiều lớp
Xử lý giọng nói: Được ứng dụng trong các hệ thống nhận dạng giọng nói,tổng hợp giọng nói, và nhận diện ngôn ngữ từ giọng nói
Dự đoán hành vi người dùng: Sử dụng trong các hệ thống đề xuất sảnphẩm, dự đoán tương tác của người dùng trên mạng xã hội và tối ưu hóatrải nghiệm người dùng
Ngoài ra, còn rất nhiều ứng dụng khác của mạng Neural nhân tạo Trongphạm vi đề tài này, mạng Neural được sử dụng để nhận diện hình ảnh động vậtthông qua một tập dữ liệu hình ảnh đã cho
1.2.4 Nguyên lý của một Neural tích chập điển hình
Một mạng Neural tích chập (Convolutional Neural Network - CNN) làmột mạng Neural được thiết kế đặc biệt cho việc xử lý dữ liệu hình ảnh và cóhiệu suất cao trong các nhiệm vụ như nhận diện và phân loại hình ảnh [1]
Trang 15Lớp tích chập (Convolutional layer): Lớp tích chập là lõi của một mạngCNN và thực hiện việc trích xuất đặc trưng từ dữ liệu hình ảnh đầu vào Lớp này
sử dụng các bộ lọc (filter) để tìm kiếm các đặc trưng như cạnh, góc, màu sắc, vàtexture trong hình ảnh
Lớp tổng hợp (Pooling layer): Lớp tổng hợp được sử dụng để giảm kíchthước không gian của feature map và tăng cường tính đặc trưng Các phép tổnghợp như Max Pooling hoặc Average Pooling được áp dụng để chọn giá trị lớnnhất hoặc trung bình trong một vùng nhất định của feature map
Lớp kết nối đầy đủ (Fully-Connected layer): Sau khi trích xuất đặc trưng,các feature map được làm phẳng thành một vector và đưa qua các lớp kết nốiđầy đủ để thực hiện phân loại Các lớp kết nối đầy đủ có nhiều Neural và sửdụng các hàm kích hoạt (activation function) như ReLU (Rectified Linear Unit)
để tạo ra các đầu ra phi tuyến tính
Lớp đầu ra (Output layer): Lớp cuối cùng của mạng CNN là lớp dự đoán,thường là một lớp softmax được sử dụng cho bài toán phân loại Lớp này tínhtoán xác suất cho mỗi lớp phân loại và cho biết xác suất mà một mẫu hình ảnhthuộc về mỗi lớp
Trong quá trình huấn luyện, mạng CNN sử dụng một hàm mất mát (lossfunction) để đo lường sự khác biệt giữa đầu ra dự đoán và nhãn thực tế của dữliệu huấn luyện. Mục tiêu là điều chỉnh các trọng số trong mạng Neural để giảmthiểu hàm mất mát và cải thiện khả năng phân loại
1.3 Kết luận chương 1
Trong chương 1, nhóm của em đã trình bày tổng quan về mô hình mạngNeural nhân tạo trong việc nhận diện hình ảnh động vật Nhóm đã xây dựngđược cách thức và mục tiêu cụ thể cho đề tài, đáp ứng các tiêu chí mở đầu củabài toán nhận diện hình ảnh Bên cạnh đó, nhóm cũng đã đề cập đến những cơ
sở lý thuyết cơ bản cần thiết, nhằm đảm bảo rằng đề tài sẽ được hoàn thiện mộtcách tốt nhất
Trang 16CHƯƠNG 2: THIẾT KẾ MÔ HÌNH MẠNG NEURAL NHÂN TẠO
NHẬN DIỆN HÌNH ẢNH ĐỘNG VẬT 2.1 Phân tích yêu cầu bài toán
2.1.1 Mục tiêu thiết kế
Thiết kế mô hình mạng Neural nhân tạo: hiệu quả, có độ nhận dạng chính xác cao
Thiết kế mô hình phần mềm:
- Chuẩn bị dữ liệu đầu vào
- Phân tách tập dữ liệu train, validation và test
- Chọn hàm mất mát và tối ưu hóa
- Huấn luyện mô hình
- Đánh giá và điều chỉnh mô hình
- Lưu trữ và triển khai
2.1.2 Điều kiện ràng buộc của thiết kế
Hình ảnh đầu vào cần phải nằm trong thư mục dữ liệu hình ảnh (folderdata) Mô hình mạng nơron (neural network) phải có tối thiểu một lớp mạngnơron tích chập (CNN) và một lớp ẩn Lớp ẩn này phải chứa số lượng nơron lớnhơn ba [3]
Trang 172.2 Thiết kế ý tưởng
Trong thời kỳ đổi mới hiện đại, việc nhận diện hình ảnh động vật trong các lĩnh vực y tế và nông nghiệp trở nên vô cùng quan trọng Công nghệ nhậndiện hình ảnh mang lại nhiều lợi ích thiết thực và cần thiết cho hoạt động của cuộc sống Nhằm đạt được khả năng nhận diện chính xác cao, nhóm chúng
em đã đề xuất hai giải pháp cho bài toán này Giải pháp đầu tiên là sử dụng mạng Neural Perceptron và giải pháp thứ hai là sử dụng mạng Neural Tích chập (CNN) để xây dựng mô hình nhận diện
Bước 1: Nhân tất cả các giá trị đầu vào với các giá trị trọng số tương ứng
rồi cộng để tính tổng trọng số Dưới đây là biểu thức toán học của nó:
∑WI*xi = x1*w1 + x2*w2 + x3*w3+…… x4*w4 (2.1)
Cộng thêm độ lệch 'b' vào tổng trọng số này sẽ giúp cải thiện hiệu suất của môhình
Bước 2: Một hàm kích hoạt được áp dụng với tổng trọng số nêu trên cho
chúng ta kết quả đầu ra ở dạng nhị phân hoặc giá trị liên tục như sau:
Hàm Perceptron
Hàm perceptron ''f(x)'' có thể đạt được dưới dạng đầu ra bằng cách nhân
đầu vào 'x' với hệ số trọng số 'w' đã học
Y=f(∑WI*xi + b) (2.2)f(x)=1; nếu w.x+b>0 Mặt khác, f(x)=0
'w' trọng số của neurel
'b' độ lệch chuẩn
Trang 18'x' các giá trị x đầu vào.
Ưu điểm của mô hình Perceptron [3]
Đơn giản: Perceptron là một mô hình đơn giản, dễ hiểu và thực hiện Điềunày làm cho nó trở thành một lựa chọn tốt cho các bài toán đơn giản và khi cầnmột mô hình dễ giải thích
Dễ huấn luyện: Quá trình huấn luyện của Perceptron rất nhanh chóng vàkhông đòi hỏi nhiều tài nguyên so với một số mô hình phức tạp hơn Điều nàyđặc biệt hữu ích khi có ít dữ liệu
Hạn chế của mô hình Perceptron [3]
Perceptron chỉ có thể được sử dụng để phân loại các bộ vectơ đầu vào cóthể phân tách tuyến tính Nếu các vectơ đầu vào là phi tuyến tính, thì không dễ
b Các lớp cơ bản của mạng CNN
Convolution neural network gồm những lớp cơ bản sau: [1]
- Convolutional Layer: đóng vai trò mấu chốt của CNN, đảm nhiệm việcthực hiện mọi tính toán Những yếu tố quan trọng nhất của Convolutionallayer bao gồm:
+ Stride: bước sải của bộ lọc filter map từ trái sang phải hoặc từ trênxuống dưới
+ Padding: các giá trị 0 được thêm cùng lớp input
+ Feature map: thể hiện kết quả của quá trình tính toán sau mỗi lần filtermap quét qua input