1. Trang chủ
  2. » Y Tế - Sức Khỏe

Bài tập lớn môn học Nhập môn trí tuệ nhân tạo: Phân loại ảnh chó mèo

29 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Phân loại ảnh chó mèo
Tác giả Nguyễn Tiến Hiệp, Nguyễn Quốc Khánh, Chu Minh Hiếu, Trịnh Trung Hiếu, Ngô Quốc Hiếu
Người hướng dẫn PTS. Nguyễn Thị Mai Trang
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Nhập Môn Trí Tuệ Nhân Tạo
Thể loại Báo cáo Bài Tập Lớn
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 29
Dung lượng 4,77 MB

Nội dung

Đây là lý do tại sao mạng nơ-ron tích chập lại có tác dụng mạnh mẽ trong việc phân loại hình ảnh: chúng có thể tìm hiểu các đặc điểm cục bộ hiệu quả hơn mạng nơ ron truyền thống.. Các tí

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

BÁO CÁO BÀI TẬP LỚN MÔN HỌC: NHẬP MÔN TRÍ TUỆ NHÂN TẠO

Đề tài: Phân loại ảnh chó mèo Giảng viên hướng dẫn : Nguyễn Thị Mai Trang

Nhóm bài tập lớn : 02

Thành viên trong nhóm : Nguyễn Tiến Hiệp – B21DCCN048

: Nguyễn Quốc Khánh – B21DCCN456 : Chu Minh Hiếu - B21DCCN348 : Trịnh Trung Hiếu - B21DCCN372 : Ngô Quốc Hiếu - B21DCCN360

Hà Nội - 2024

Trang 2

2

MỤC LỤC

DANH MỤC HÌNH ẢNH 3

DANH MỤC BẢNG 4

DANH SÁCH TỪ VIẾT TẮT 5

CHƯƠNG 1: TỔNG QUAN BÀI TOÁN 6

1.1 Đặt vấn đề về bài toán 6

1.2 Mục tiêu của bài toán 6

1.3 Phạm vi bài toán 6

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 7

2.1 Mô hình CNN 7

2.1.1 Giới thiệu 7

2.1.2 Cấu trúc Convolution Neural Network 8

2.2 Phương pháp đánh giá độ chính xác 16

CHƯƠNG 3: THỰC NGHIỆM VÀ KẾT QUẢ 18

3.1 Tổng quan về dữ liệu 18

3.2 Phương pháp 18

3.2.1 Tiền xử lý dữ liệu 19

3.2.2 Xây mô hình 19

3.2.3 Quá trình train mô hình 22

3.3 Đánh giá mô hình 22

CHƯƠNG 4: KẾT LUẬN 29

TÀI LIỆU THAM KHẢO 1

Trang 3

DANH MỤC HÌNH ẢNH

3

DANH MỤC HÌNH ẢNH

Hình 1 Dữ liệu ảnh với máy tính 7

Hình 2 Các tính toán của lớp tích chập 8

Hình 3 Các tính toán của lớp tích chập 9

Hình 4 Lớp tích chập hoạt đng với stride là 2 10

Hình 6 Max pooling 13

Hình 7 Full connected layer 14

Hình 8 Bộ dữ liệu 18

Hình 9 Sơ đồ quá trình 18

Hình 10 Tăng cường dữ liệu dạng ảnh 19

Hình 11 Kiến trúc mô hình phân loại 20

Hình 12 Kết quả thu được khi train với 25 epochs 23

Hình 13 Kết quả thu được khi train với 50 epochs 24

Hình 14 Kết quả thu được khi train với 100 epochs 25

Trang 4

4

DANH MỤC BẢNG

Bảng 1 Chi tiết các hyperparameter của model 20Bảng 2 Chi tiết các tham số dùng để train 22Bảng 3 Kết quả khi train mô hình với các epochs khác nhau 22

Trang 5

DANH SÁCH TỪ VIẾT TẮT

5

DANH SÁCH TỪ VIẾT TẮT

Từ viết tắt Thuật ngữ tiếng Anh Thuật ngữ tiếng Việt

CNN Convolutional Neural Network Mạng thần kinh tích chập

GPU Graphics Processing Unit Bộ xử lý đồ họa

MRI Magnetic Resonance Imaging Ảnh cộng hưởng từ

NLP Natural Language Processing Xử lý ngôn ngữ tự nhiên

SIFT Scale-Invariant Feature TransformBiến đổi đặc trưng liên quan

HOG Histogram of Oriented Gradients Biểu đồ độ dốc đạo hàm

Trang 6

Tuy nhiên, việc phân loại ảnh chó mèo bằng phương pháp truyền thống gặp nhiều khó khăn do sự đa dạng về giống loài, đặc điểm ngoại hình, góc chụp và điều kiện ánh sáng trong ảnh Do đó, việc sử dụng mạng nơ ron tích chập (CNN) một kiến trúc học - - máy hiệu quả trong xử lý ảnh - để giải quyết bài toán này là một hướng đi đầy tiềm năng

1.2 Mục tiêu của bài toán

Mục tiêu của bài toán này là xây dựng một mô hình CNN để phân loại ảnh chó mèo với độ chính xác cao Các mục tiêu cụ thể bao gồm:

● Xây dựng mô hình CNN: Thiết kế và xây dựng mô hình CNN phù hợp với bài toán phân loại ảnh chó mèo

● Huấn luyện mô hình: Huấn luyện mô hình trên tập dữ liệu ảnh chó mèo có gắn nhãn

● Đánh giá mô hình: Đánh giá hiệu suất của mô hình trên tập dữ liệu kiểm tra

● Phân tích kết quả: Phân tích kết quả thu được và đề xuất các giải pháp cải thiện hiệu quả mô hình

1.3 Phạm vi bài toán

Bài toán này tập trung vào việc phân loại ảnh tĩnh của chó mèo, không bao gồm ảnh động và video Các đối tượng chó mèo trong ảnh có thể ở các tư thế, kích thước, góc chụp và điều kiện ánh sáng khác nhau Mô hình CNN được xây dựng sẽ phân loại ảnh chó mèo thành hai lớp: chó và mèo

Trang 7

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1.2 2 Bài toán phân loại ảnh (Image Classification)

Phân loại ảnh là một bài toán quan trọng bậc nhất trong lĩnh vực Computer Vision Chúng ta đã có rất nhiều nghiên cứu để giải quyết bài toán này bằng cách rút trích các đặc trưng rất phổ biến như SIFT, HOG rồi cho máy tính học nhưng những cách này tỏ ra không thực sự hiệu quả Nhưng ngược lại, đối với con người, chúng ta lại có bản năng tuyệt vời để phân loại được những đối tượng trong khung cảnh xung quanh

Dữ liệu đầu vào của bài toán là một bức ảnh Một ảnh được biểu ảnh bằng

ma trận các giá trị Mô hình phân lớp sẽ phải dự đoán được lớp của ảnh từ ma trận điểm ảnh này, ví dụ như ảnh đó là con mèo, chó, hay là chim

Hình 1 Dữ liệu ảnh với máy tính

Trang 8

8

Để biểu diễn một bức ảnh 256 x 256 pixel trong máy tính thì ta cần ma trận

sẽ có kích thước 256 x 256 chiều, và tùy thuộc vào bức ảnh là có màu hay ảnh xám thì ma trận này sẽ có số kênh tương ứng, ví dụ với ảnh màu 256 x 256 RGB, chúng ta sẽ có ma trận 256 x 256 x 3 để biểu diễn ảnh này

2.1.2 Cấu trúc Convolution Neural Network

2.1.2.1 Lớp tích chập - Convolution Layer

Lớp tích chập là thành phần cốt lõi của mạng nơ ron tích chập và là nơi thực hiện hầu hết các phép tính toán Các lớp tích chập cho phép mạng thần kinh trích xuất các đặc trưng trong từng khu vực cục bộ nhỏ thay vì toàn bộ tập dữ liệu Đây là lý do tại sao mạng nơ-ron tích chập lại có tác dụng mạnh mẽ trong việc phân loại hình ảnh: chúng có thể tìm hiểu các đặc điểm cục bộ hiệu quả hơn mạng nơ ron truyền thống Hơn nữa, điều -này cũng làm giảm số lượng tham số trong quá trình huấn luyện, làm cho mạng nơ-ron tích chập dễ huấn luyện hơn và tránh over-fitting

-Hình 2 Các tính toán của lớp tích chập

Kernel tính toán chính của một lớp tích chập xử lý các phép tích chập đa chiều, được tóm tắt trong Hình 2 Lớp tích chập bao gồm các nơ-ron (pixel của các bản đồ kích hoạt) được sắp xếp theo 3 chiều: chiều cao H, chiều rộng W và kênh C Mỗi nơ-ron thực hiện các phép nhân và tích lũy và được triển khai bằng các đơn vị MAC là thành phần (chịu trách nhiệm thực hiện các phép nhân và tích lũy) trong các lớp tích chập Do đó, mỗi lớp tích chập biến đổi các bản đồ kích hoạt đầu vào 3D thành các bản đồ kích hoạt

Trang 9

CHƯƠNG CỞ SỞ LÝ THUYẾT2:

9

đầu ra 3D Mỗi nhóm kernel 3D được sử dụng để thực hiện phép tích chập với các bản

đồ kích hoạt đầu vào 3D, kết quả là một mặt phẳng 2D duy nhất có kích thước Hout ×

Wout cho mỗi bản đồ kích hoạt đầu ra Cụ thể, tích chập 3D được thực hiện bằng cách tổng hợp của nhiều phép tích chập 2D trên từng mặt phẳng Hơn nữa, một bias 1D được thêm vào kết quả của phép tích chập 3D Mỗi lớp thực hiện các tính toán sau: Y(z, t, q) = B(q) + ∑𝐶𝑖𝑛 ∑𝐻𝑓𝑗=1 ∑𝑊𝑓𝑖=1 𝑋(𝑧𝑆 + 𝑗, 𝑡𝑆 + 𝑖, 𝑘)

H Win/ in: chiều cao/chiều rộng của bản đồ kích hoạt đầu vào

Hout/ Wout: chiều cao/chiều rộng của bản đồ kích hoạt đầu ra

H Wf/ f : là chiều cao/chiều rộng của kernel

C cin/ out: là số kênh của bản đồ kích hoạt đầu vào/đầu ra

Hình 3 Các tính toán của lớp tích chập

Trang 10

10

2.2.2.2 Bước nhảy - Stride

Trong mạng nơ ron tích chập (CNN), bước nhảy (stride) là một tham số quan trọng ảnh hưởng đến kích thước đầu ra của lớp tích chập (convolutional layer) Nó xác định số pixel mà kernel di chuyển trên bản đồ đặc trưng (feature map) sau mỗi lần thực hiện phép tính tích chập

● Kích thước giảm: Việc sử dụng stride lớn hơn 1 sẽ dẫn đến kích thước đầu

ra của bản đồ đặc trưng nhỏ hơn so với kích thước đầu vào

● Giảm số phép tính: Khi stride lớn hơn, số phép tính tích chập được thực hiện sẽ ít hơn, giúp tăng tốc độ tính toán và giảm thiểu nguy cơ quá khớp (overfitting)

● Kiểm soát độ phân giải: Stride có thể được sử dụng để điều chỉnh độ phân giải của bản đồ đặc trưng, giúp mô hình tập trung vào các đặc trưng có kích thước lớn hơn hoặc nhỏ hơn

Hình 4 Lớp h chập hoạt động với stride là 2.tíc

Trang 11

CHƯƠNG CỞ SỞ LÝ THUYẾT2:

11

2.1.2.3 Đường viền - Padding

Đường viền (padding) là một kỹ thuật được sử dụng trong mạng nơ-ron tích chập (CNN) để bổ sung các pixel vào rìa của bản đồ đặc trưng đầu vào (input feature map) trước khi thực hiện phép tính tích chập (convolution) Việc sử dụng padding có thể mang lại nhiều lợi ích:

Giữ kích thước đầu ra:

● Vấn đề: Khi sử dụng kernel tích chập với kích thước lớn hơn 1, kích thước của bản đồ đặc trưng đầu ra (output feature map) sẽ nhỏ hơn so với bản đồ đầu vào

● Giải pháp: Bằng cách bổ sung padding xung quanh bản đồ đầu vào, kích thước của bản đồ đầu ra có thể được giữ nguyên hoặc tăng lên, tùy thuộc vào cách sử dụng padding

Giảm thiểu mất thông tin:

● Vấn đề: Việc sử dụng kernel tích chập có thể dẫn đến mất thông tin ở rìa của bản đồ đầu vào do chỉ có các pixel bên trong được sử dụng trong phép tính tích chập

● Giải pháp: Bằng cách bổ sung padding, các pixel ở rìa của bản đồ đầu vào cũng được sử dụng trong phép tính tích chập, giúp giảm thiểu mất thông tin

và cải thiện độ chính xác của mô hình

● khác nhau tùy thuộc vào loại dữ liệu đầu vào (ví dụ: ảnh, video)

Đường viền (padding) là một kỹ thuật hữu ích trong CNN giúp giữ kích thước đầu ra, giảm thiểu mất thông tin và cải thiện độ chính xác của mô hình Việc lựa chọn loại padding và kích thước padding phù hợp cần được thực hiện dựa trên các yếu tố như kích thước kernel, kiến trúc mạng, loại dữ liệu đầu vào, v.v…

2.1.2.4 Hàm kích hoạt - Activate Function

Hàm kích hoạt ánh xạ đầu vào tới đầu ra là chức năng cốt lõi của tất cả các loại hàm kích hoạt trong tất cả các loại mạng thần kinh Giá trị đầu vào được xác định bằng

Trang 12

12

cách tính tổng có trọng số của đầu vào nơ ron cùng với - bias của nó (nếu có) Điều này

có nghĩa là hàm kích hoạt đưa ra quyết định có kích hoạt nơ ron thần kinh có tham chiếu đến một đầu vào cụ thể hay không bằng cách tạo đầu ra tương ứng

-Các lớp kích hoạt phi tuyến tính được sử dụng sau tất cả các lớp có trọng số (được gọi là các lớp có thể học được, chẳng hạn như các lớp FC và các lớptíchchập) trong CNN Hiệu suất phi tuyến tính của các lớp kích hoạt có nghĩa là việc ánh xạ đầu vào tới đầu ra sẽ phi tuyến tính; hơn nữa, các lớp này còn mang lại cho CNN khả năng tìm hiểu những điều cực kỳ phức tạp Hàm kích hoạt cũng phải có khả năng phân biệt, đây là một tính năng cực kỳ quan trọng vì nó cho phép sử dụng phương pháp truyền ngược lỗi để huấn luyện mạng Các loại hàm kích hoạt sau đây được sử dụng phổ biến nhất trong CNN và các mạng nơ-ron sâu khác

Sigmoid: Đầu vào của hàm kích hoạt này là số thực, trong khi đầu ra bị giới hạn trong khoảng từ 0 đến 1 Đường cong hàm sigmoid có hình chữ S và có thể được biểu diễn bằng toán học

f(x) = 11+𝑒−𝑥

ReLU: Hàm được sử dụng phổ biến nhất trong CNN Nó chuyển đổi toàn bộ giá trị của đầu vào thành số không âm

f(x) = max(0, x) Tanh: Tương tự như hàm sigmoid, vì đầu vào của nó là số thực, nhưng đầu ra bị giới hạn trong khoảng − 1 đến 1

f(x) = 𝑒

𝑥 − 𝑒−𝑥

𝑒𝑥 + 𝑒−𝑥2.2.2.5 Lớp tổnghợp (Pooling layer)

Lớp tổng hợp sẽ giảm bớt số lượng tham số khi hình ảnh quá lớn Không gian tổng hợp còn được gọi là lấy mẫu con hoặc giảm mẫu xuống làm giảm kích thước của mỗi map nhưng vẫn giữ lại thông tin quan trọng Đây là một dạng giảm mẫu phi

Trang 13

Hình 5 Max pooling 2.2.2.6 Lớp kết nối đầy đủ (Fully connected layer)

Lớp kết nối đầy đủ là một thành phần quan trọng trong mạng nơ-ron tích chập (CNN), đóng vai trò then chốt trong việc phân loại và xuất dự đoán cho bài toán

Lớp kết nối đầy đủ chuyển đầu vào từ chiều ℝm sang ℝn Giả xử x ∈ ℝmlà đầu vào của lớp kết nối đầy đủ, yi ∈ ℝ là đầu ra thứ i yi ∈ ℝ được tính toán theo công thức sau

Trang 14

Mạng nơ-ron chuyển tiếp nguồn cấp dữ liệu thông thường: xi là đầu vào, z

là đầu ra của các nơ ron, a là đầu ra của các hàm kích hoạt và y là đầu ra của mạng Batch Norm được áp dụng cho đầu ra của nơ-ron ngay trước khi áp dụng chức năng kích hoạt Thông thường, một nơron không có Batch Norm sẽ được tính như sau:

-Với g là phép biến đổi tuyến tính của nơ ron, w trọng số của nơ- -ron, b - bias của nơ-ron và f là hàm kích hoạt Mô hình học các tham số w và b

Trang 15

CHƯƠNG CỞ SỞ LÝ THUYẾT2:

15

Thêm batch norm, nó trông như sau:

Với z đầu ra của Batch Norm, m là giá trị trung bình đầu ra của nơN z -ron, sz độ lệch chu n cẩ ủa đầu ra của nơ-ron và các thông s và ố 𝛾 𝛽 của Batch Norm Các tham số 𝛽 và l𝛾 ần lượt là giá trị trung bình và độ ệ l ch chuẩn Do đó, kết quả đầu ra c a Batch Norm là m t k t quủ ộ ế ả có phân ph i có giá tr trung bình ố ị

𝛽 và độ lệch chuẩn là 𝛾 Các giá trị này được học qua các epochs và các tham số học khác, chẳng hạn như trọng số của các nơ ron, nhằm mục đích giảm sự mất -mát của mô hình

2.2.2.8 Lớp bỏ học (Dropout layer)

Lớp bỏ học (Dropout layer) là một kỹ thuật thường được sử dụng trong mạng nơ ron tích chập (CNN) để giúp cải thiện hiệu suất mô hình bằng cách ngăn -chặn hiện tượng quá khớp (overfitting)

Hoạt động của lớp bỏ học:

● Trong quá trình huấn luyện, lớp bỏ học sẽ ngẫu nhiên loại bỏ một tỷ lệ phần trăm các nơ ron trong một lớp nhất định.-

● Tỷ lệ phần trăm này được gọi là tỷ lệ bỏ học (dropout rate)

● Các nơ ron bị loại bỏ sẽ không được cập nhật trong quá trình lan truyền ngược (backpropagation)

-Lợi ích của lớp bỏ học:

● Giảm thiểu over-fitting: Lớp bỏ học giúp ngăn chặn mạng nơ ron học quá nhiều chi tiết cụ thể trong tập dữ liệu huấn luyện, từ đó giảm thiểu khả năng over-fitting

-● Cải thiện khả năng khái quát hóa: Khi mạng nơ ron được huấn luyện với lớp bỏ học, nó sẽ học cách tạo ra các dự đoán chính xác hơn cho các dữ liệu mới chưa từng gặp trước đây

Trang 16

đủ (fully connected layer).

● Tỷ lệ bỏ học thường được đặt trong khoảng từ 0.2 đến 0.5

● Có thể sử dụng nhiều lớp bỏ học trong cùng một mạng nơ-ron

2.2 Phương pháp đánh giá độ chính xác

Hiệu suất của mô hình được tính toán bằng cách sử dụng bốn tham số được biểu diễn bởi ma trận nhầm lẫn: Accuracy, F1 score, Precision và Recall Công thức tính toán các tham số được biểu diễn như sau:

Accuracy mô tả về sự đáng tin cậy của mô hình trong việc phân loại chính xác

Độ chính xác thường được tính bằng tỷ lệ giữa số lượng các dự đoán đúng và tổng số lượng mẫu Precision so sánh độ chính xác của dữ liệu được trình bày với các dự đoán

Trang 17

CHƯƠNG CỞ SỞ LÝ THUYẾT2:

17

của mô hình Nó thường được tính bằng tỷ lệ giữa số lượng các dự đoán đúng positive

và tổng số lượng dự đoán positive của mô hình Recall đo lường khả năng của mô hình trong việc dự đoán các trường hợp positive (positive class) một cách chính xác Nó thường được tính bằng tỷ lệ giữa số lượng các dự đoán đúng positive và tổng số lượng mẫu positive thực tế F1 Score là trung bình kết quả dữ liệu từ việc so sánh precision và recall Đây là một phép đo tổng hợp giữa precision và recall, giúp đánh giá hiệu suất tổng thể của mô hình

Trang 18

Hình 7 Bộ dữ liệu gồm ảnh chó mèo

3.2 Phương pháp

Quá trình làm dự án được trình bày thông qua biểu đồ sau

Hình 8 Sơ đồ quá trình

Trang 19

CHƯƠNG THỰC NGHIỆM VÀ KẾT QUẢ3:

19

3.2.1 Tiền xử lý dữ liệu

Qua phần tổng quan, dữ liệu ảnh được sử dụng là ảnh màu RGB, kích thước từng ảnh là khác nhau Để thêm sự đa dạng hơn về dữ liệu, bọn em đã sử dụng phương pháp tăng cường dữ liệu00 với Trivial Augment Wide

Hình 9 Tăng cường dữ liệu dạng ảnh

Trivial Augment hoạt động như sau: “Nó nhận một hình ảnh X và một tập hợp các tăng cường A làm đầu vào Sau đó, nó đơn giản là lấy một tăng cường từ

A một cách ngẫu nhiên đồng đều và áp dụng tăng cường này vào hình ảnh X đã cho với một mức độ m, được lấy mẫu ngẫu nhiên đồng đều từ tập hợp các mức

độ có thể có {0, , 30}, và trả về hình ảnh được tăng cường.” Trival Augment Wide là một biến thể của Trivial Augment Thay vì chỉ áp dụng một phép biến đổi duy nhất cho mỗi hình ảnh như trong Trivial Augment thông thường, nó áp dụng nhiều phép biến đổi đồng thời cho mỗi hình ảnh

3.2.2 Xây mô hình

Sử dụng một mạng nơ ron tích chập để phân loại các nhãn Hình 12 thể hiện cấu trúc của mô hình Mô hình nhận đầu vào là một tensor có kích thước [batch_size, 3, 224, 224] với 3 là số kênh màu (R-G-B) và kích thước ảnh width

-x height là 224-x224 Trước hết, đầu vào được đi qua lớp Convolutional đầu tiên

Ngày đăng: 26/06/2024, 17:26

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w