Final Project AI

You might also like

You are on page 1of 12

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM


KHOA ĐIỆN – ĐIỆN TỬ
---o0o---

BÁO CÁO CUỐI KỲ


CHƯƠNG TRÌNH PHÂN LOẠI ẢNH
SỬ DỤNG DEEP LEARNING

GVHD: TS. Huỳnh Thế Thiện

Sinh viên thực hiện


1. Nguyễn Minh Thiện 21119358
2. Đặng Ngọc Huy 21119336

Ho Chi Minh City, May 2024


MỤC LỤC
1. Objectives ..................................................................................................................................1
2. Deep learning background ........................................................................................................1
3. Relevant algorithms ....................................................................................................................1
4. Network architecture..................................................................................................................2
5. Design decisions .........................................................................................................................4
6. Simulation results .......................................................................................................................5
7. Discussion and insights................................................................................................................8
Reference ........................................................................................................................................ 10
1. Objectives

Mục tiêu của nhóm là xây dựng một chương trình Python để phân loại hình ảnh sử
dụng một mạng Deep Learning mà nhóm tự thiết kế, với khả năng phân loại chính xác hình
ảnh vào tám lớp được xác định trước. Qua dự án này, nhóm mong muốn nâng cao kỹ năng
lập trình Python, làm quen với framework TensorFlow, và học được kỹ thuật huấn luyện
mô hình và đánh giá chúng. Ngoài ra hy vọng sẽ phát triển khả năng giải quyết vấn đề, tư
duy phê phán và kỹ năng làm việc nhóm thông qua việc thực hiện đề tài cùng nhau.

2. Deep learning background

Thuật ngữ học sâu (Deep learning) nổi tiếng trong cộng đồng trí tuệ nhân tạo đồng thời
với sự phổ biến và thành công của các ứng dụng thông minh nhân tạo. Lịch sử của nó đi
kèm với các bước tiến quan trọng như việc áp dụng thành công trong nhận dạng hình ảnh
và xử lý ngôn ngữ tự nhiên. Điều đặc biệt là sự phát triển các kiến trúc mạng neural sâu
như Convolutional Neural Networks (CNNs), Recurrent Neural Networks (RNNs), và
Transformer.

Đặc biệt CNNs đã chứng minh sức mạnh của mình trong xử lý dữ liệu không gian như
hình ảnh và video. Thiết kế cấu trúc của chúng tập trung vào việc nhận diện và điều chỉnh
các đặc trưng cục bộ thông qua các bước tích chập và lớp tổng hợp. Sự kết hợp này cho
phép mạng học các biểu diễn phân cấp và tự động hóa việc trích xuất thông tin từ dữ liệu.
Các CNNs đã đạt được những kết quả ấn tượng trong nhiều nhiệm vụ quan trọng như nhận
dạng đối tượng, phân loại hình ảnh và phát hiện vật thể. Với việc tự động hóa quá trình
trích xuất và học các đặc trưng cấp thấp đến cấp cao từ dữ liệu, chúng đã nâng cao hiệu
suất của nhiều ứng dụng thực tiễn.

3. Relevant algorithms

- Convolutional Neural Networks (CNNs): dạng đặc biệt của mạng nơ-ron được dùng
để xử lý và phân loại ảnh. Chúng tự động học và nhận diện các đặc điểm trong ảnh như
cạnh, góc, hay texture. CNNs có các lớp như lớp tích chập, lớp pooling (thường là max
pooling), và lớp kết nối đầy đủ để giúp phân loại ảnh.
- Backpropagation: thuật toán quan trọng trong việc huấn luyện mạng nơ-ron. Nó hoạt
động bằng cách điều chỉnh các trọng số của mạng dựa trên độ lỗi của dự đoán so với kết
quả thực tế. Quá trình này được lặp lại nhiều lần cho đến khi mạng đạt được độ chính xác
mong muốn.
- Learning rate (tốc độ học) là một tham số quan trọng trong quá trình huấn luyện mạng
nơ-ron. Đây là một giá trị số dương nhỏ được sử dụng để điều chỉnh các trọng số của mạng
trong mỗi bước cập nhật. Learning rate quyết định tốc độ và hướng mà mạng nơ-ron di
chuyển trong không gian trọng số để tìm kiếm điểm tối ưu của hàm mất mát.

1
- Batch Normalization: kỹ thuật quan trọng giúp mạng nơ-ron học nhanh hơn và ổn
định hơn. Nó giúp chuẩn hóa dữ liệu đầu ra từ các lớp trước để mạng học hiệu quả hơn.
Kỹ thuật này giúp mạng học tốt hơn và tránh trường hợp quá khớp.
- Dropout: kỹ thuật giúp mạng nơ-ron tránh việc học "quá nhớ" dữ liệu huấn luyện. Nó
loại bỏ ngẫu nhiên một số nơ-ron trong quá trình huấn luyện, giúp mạng trở nên linh hoạt
và tổng quát hóa tốt hơn.
- Activation Functions: các hàm được sử dụng để kích hoạt các nơ-ron trong mạng. Các
hàm này giúp mạng học các đặc điểm phức tạp của dữ liệu. Các hàm phổ biến như ReLU,
Tanh và Sigmoid được sử dụng trong mạng nơ-ron.
- Optimization Algorithms: Optimization Algorithms là các thuật toán giúp mạng nơ-
ron điều chỉnh các trọng số để giảm thiểu độ lỗi. Các thuật toán như SGD, Adam và
RMSprop được sử dụng để cập nhật các trọng số dựa trên độ dốc của hàm mất mát.
- Loss Functions: Loss Functions là các hàm được sử dụng để đo lường sự khác biệt
giữa dự đoán của mạng nơ-ron và kết quả thực tế. Các hàm như Cross-Entropy Loss thường
được sử dụng trong các bài toán phân loại để đo lường độ chính xác của mô hình.

4. Network architecture

2
Hình 4.1: Kiến trúc mạng

3
Hình 4.2. Phân tích kiến trúc mạng

5. Design decisions

Để triển khai một mô hình deep learning, việc lựa chọn các quyết định thiết kế quan trọng
đóng vai trò quyết định đến hiệu suất và khả năng áp dụng của mô hình. Vì vậy, trong phần
này, nhóm đã xem xét các quyết định thiết kế được thực hiện để phát triển một mô hình
phân loại ảnh sử dụng TensorFlow và Keras như sau:
- Kiến trúc mô hình: sử dụng một mạng neural convolutional (CNN) tuần tự
(sequential) cho bài toán nhận dạng hình ảnh. CNN đã được chứng minh là rất hiệu quả
trong xử lý hình ảnh và nhận dạng đối tượng. Mô hình của nhóm bao gồm các lớp sau:

4
+ Lớp Convolutional (Conv2D): Được sử dụng để trích xuất các đặc trưng từ hình ảnh.
+ Lớp Max Pooling (MaxPooling2D): Sử dụng để giảm kích thước của các đặc trưng.
+ Lớp Batch Normalization: Chuẩn hóa đầu ra của các lớp trước đó để giảm overfitting.
- Trước khi đưa dữ liệu vào mô hình, sử dụng một lớp Rescaling để chuẩn hóa giá
trị pixel của hình ảnh về khoảng từ 0 đến 1. Điều này giúp mô hình học hiệu quả hơn bằng
cách đảm bảo rằng dữ liệu đầu vào có cùng một phạm vi.
- Regularization: Để ngăn chặn hiện tượng overfitting trong quá trình huấn luyện,
nhóm đã sử dụng lớp Dropout sau các lớp Dense. Dropout ngẫu nhiên loại bỏ một phần
các đơn vị trong quá trình huấn luyện, giúp mô hình trở nên chung chung hơn.
- Tối ưu hóa: Sử dụng tối ưu hóa Nadam với một tỷ lệ học tập cố định. Nadam kết
hợp cả Adam optimizer để cải thiện tốc độ hội tụ của mô hình, đặc biệt là trong các mô
hình học sâu.
- Giảm learning rate: Để tăng hiệu suất của mô hình, nhóm sử dụng callback
ReduceLROnPlateau để giảm learning rate khi không có sự cải thiện đáng kể trong việc
giảm validation loss.
- Số lượng epoch và batch size: Huấn luyện mô hình trong 40 epoch và sử dụng
batch size là 64. Số lượng epoch được chọn để đảm bảo rằng mô hình có đủ thời gian để
học cách biểu diễn dữ liệu. Batch size được chọn để tối ưu hóa việc tính toán và bộ nhớ.
- Biểu đồ đánh giá: Sử dụng các biểu đồ để đánh giá hiệu suất của mô hình, bao gồm
độ chính xác và hàm mất mát trên cả tập huấn luyện và tập validation. Biểu đồ này cung
cấp một cái nhìn trực quan về hiệu suất của mô hình và giúp xác định vấn đề như overfitting.

6. Simulation results

Kết quả mô phỏng lần 1:

-> Val_Accuracy: 84.79%

5
Hình 6.1: Biểu đồ mô phỏng lần 1
Kết quả mô phỏng lần 2:

-> Val_Accuracy: 85.62%

6
Hình 6.2: Biểu đồ mô phỏng lần 2
Kết quả mô phỏng lần 3:

-> Val_Accuracy: 84.79%

7
Hình 6.3: Biểu đồ mô phỏng lần 3

7. Discussion and insights

Với những mục tiêu đã đề ra, nhóm đã làm được những kết quả sau:
- Xây dựng một mô hình phân loại ảnh radar sử dụng mạng nơ-ron (CNN), một phương
pháp phổ biến và hiệu quả cho các bài toán phân loại ảnh.
- Tối ưu hóa quá trình huấn luyện bằng cách sử dụng tối ưu hóa Nadam và callback
ReduceLROnPlateau để giảm tỷ lệ học dựa trên giá trị loss trên tập validation. Điều này
giúp cải thiện hiệu suất của mô hình và tránh overfitting.
- Đạt được một mô hình với độ chính xác cao trên tập huấn luyện và tập validation, mặc
dù cần tiếp tục nghiên cứu và cải thiện để giải quyết các hạn chế như số lượng dữ liệu hạn
chế và nguy cơ overfitting.
Hạn chế:
- Overfitting: Hiện tượng overfitting có thể xảy ra khi mô hình quá tập trung vào việc
học từ dữ liệu huấn luyện mà không tổng quát hóa tốt trên dữ liệu mới. Điều này dẫn đến
việc mô hình hoạt động không hiệu quả trên tập dữ liệu kiểm tra hoặc dữ liệu thực tế.

8
- Hiệu quả của mô hình: Mặc dù đạt được độ chính xác trung bình là 85.07%, nhưng
hiệu suất của mô hình vẫn còn một số vấn đề cần được giải quyết để đạt được kết quả tối
ưu trong các ứng dụng thực tế.

9
Reference

[1] H. Deng, J. Li, K. Zhang, "Deep Learning Approaches for Image


Classification," in IEEE Transactions on Neural Networks and Learning Systems, vol. 25,
no. 4, pp. 621-633, April 2014, doi: 10.1109/TNNLS.2013.2275025.
[2] T. N. Sơn, Trí Tuệ Nhân Tạo: Cơ Sở và Ứng Dụng, Thành phố Hồ Chí Minh,
Việt Nam: Trường Đại học Sư phạm Kỹ thuật TP.HCM, 2020.

10

You might also like