Tải bản đầy đủ (.docx) (11 trang)

Báo cáo bài tập lớn Môn Học sâu và ứng dụng ĐỀ TÀI Sử dụng mạng CNN phân loại chữ số viết tay

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (359.93 KB, 11 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG
**********

Báo cáo bài tập lớn
Mơn Học sâu và ứng dụng
ĐỀ TÀI: Sử dụng mạng CNN phân loại chữ số viết tay

Giảng viên hướng dẫn : TS. Trịnh Anh Phúc
Sinh viên thực hiện

:

Hà Nội, 12 – 2020


MỤC LỤC
Lởi cảm ơn......................................................................................................................... 3
Phần mở đầu....................................................................................................................... 4
Phần nội dung.................................................................................................................... 5
1. Mơ tả bài tốn............................................................................................................ 5
2. Giới thiệu mơ hình..................................................................................................... 5
3. kết quả thực nghiệm................................................................................................... 7
3.1. Cấu hình Google Colab...................................................................................................................... 7
3.2. Bộ dữ liệu hình ảnh........................................................................................................................... 7
3.4. Độ đo đánh giá.................................................................................................................................. 9
3.3. Thời gian train, test........................................................................................................................... 9

Phần kết luận.................................................................................................................... 11



Lởi cảm ơn
Lời đầu tiên cho phép chúng em được gửi lời cảm ơn chân thành tới thầy Trịnh Anh Phúc
giảng viên môn Học sâu và ứng dụng, cảm ơn thầy đã dạy cho chúng em những kiến thức
rất hay về deep learning, cảm ơn thầy vì những tiết học nhiều kiến thức nhưng cũng đầy
thư giãn, mang lại cho chúng em niềm say mê học tập để có thể hồn thành bài tập lớn
của mơn học.
Tuy nhiên, với những kiến thức cơ bản, nhập môn, bài tập lớn của chúng em chắc chắn
cịn tồn tại nhiều sai sót, rất mong nhận được các góp ý từ thầy.
Em xin chân thành cảm ơn.


Phần mở đầu
Hiện nay, thuật ngữ deep learning đang trở nên phổ biến. Deep learning – học sâu là một
tập hợp các các máy học nơi các mạng nơ-ron nhân tạo, các thuật tốn mơ phỏng bộ não
con người, học hỏi từ một lượng lớn dữ liệu.
Mỗi ngày chúng ta tạo ra khoảng 2.6 nghìn tỷ bytes dữ liệu, đó chính là nguồn học của
các thuật tốn học sâu. Vì vậy, học sâu trong những năm gần đây đã có những bước phát
triển như vũ bão, một số ví dụ trong thực tế của học sâu: trợ lý ảo, các ứng dụng tự động
dịch giữ các ngôn ngữ, nhận diện khn mặt, xe tự hành,…
Để có những hiểu biết về các mạng học sâu, trong khuôn khổ môn học Học sâu và ứng
dụng, chúng em lựa chọn đề tài sử dụng mạng CNN để nhận diện chữ số viết tay.


Phần nội dung
1. Mơ tả bài tốn
Nhận diện chữ số viết tay là một bài toán cơ bản trong deep learning và có nhiều ứng
dụng trong cuộc sống như nhận diện biển báo, nhận diện chi phiếu ngân hàng, nhận hiện
mã bì thư của dịch vụ bưu chính, hay các chữ số trên biểu mẫu nói chung…
Đầu vào: Hình ảnh chứa một chữ số viết tay.
Đầu ra: Nhãn tương ứng với chữ số đó.


2. Giới thiệu mơ hình
LeNet-5 là một kiến trúc mạng CNN cũ, được phát triển vào năm 1998 bởi Andre LeCun,
Leon Bottou, Yoshua Bengio, và Patrick Hafner. LeNet-5 được dùng cho nhận dạng chữ
viết tay và trở thành cơ sở thiết kế cho các mạng lớn hơn sau này.
Trong bài này, chúng em sử dụng kiến trúc mạng Lenet-5 nhưng có một chút thay đổi, cụ
thể là thay lớp AVG Pooling bằng lớp Max Pooling và hàm kích hoạt sau các tầng tích
chập và tầng kết nối đầy đủ là ReLU.
Kiến trúc mơ hình:

Lớp 1 là lớp tích chập nhận đầu vào là ảnh kích thước 28x28x1. Nó sử dụng 6 hạt nhân
kích thước 5x5x1, thực hiện tích chập padding “same”, bước nhảy bằng 1 tạo ra một
tensor kích thước 28x28x6. Tensor này được chuyển qua một hàm kích hoạt ReLU, sau
đó trở thành đầu vào cho lớp 2.


Lớp 2 là lớp gộp max pooling, nhận đầu vào là tensor kích thước 28x28x6. Lớp này
thực hiện lấy mẫu con khơng đệm, bằng cách sử dụng hạt nhân kích thước 2x2 với bước
nhảy là 2 tạo ra tensor kích thước 14x14x6 đi tới lớp 3 trở thành đầu vào.
Lớp 3 là lớp tích chập, đầu vào là tenensor kích thước 14x14x6. Lớp này sử dụng 16 hạt
nhân kích thước 5x5x6, thực hiện tích chập khơng đệm, bước nhảy bằng 1 thu được
tensor kích thước 10x10x16, tensor này được đưa qua hàm kích hoạt ReLU và trở thành
đầu vào cho lớp tiếp theo.
Lớp 4 là một lớp gộp max pooling, đầu vào của nó là tensor 10x10x16 kích thước hạt
nhân 2x2 bước nhảy bằng 2. Đầu ra của lớp này là tensor 5x5x16.
Lớp 5 là kết nối đầy đủ (Dense), nhận đầu vào là một vector được duỗi ra từ tensor
5x5x16 (đầu ra của lớp 4), hàm kích hoạt ReLU, đầu ra là 1 vector kích thước 120
Lớp 6 là một lớp kết nối đầu đủ, vector đầu vào kích thước 120, hàm kích hoạt ReLU,
vector đầu ra kích thước 84
Lớp 7: lớp kết nối đầu đủ, lấy đầu ra của lớp 6 làm đầu vào, sử dụng kích hoạt softmax để

tiến hành phân loại cho 10 lớp tương ứng 10 node đầu ra.
Tổng kết các lớp:
1:
convolutional
layer
2: max
pooling
3:
convolutional
layer
4: max
pooling
5:
6:full
connected
7: full
connected

28x28x1
6 kernel (5,5)
padding=”same”
stride=1
activate fuction: ReLU
28x28x6
kernel(2,2)
padding=0
stride=2
14x14x6
16 kernel (5,5)
padding=0

stride=1
activate function: ReLU
10x10x16
kernel (2,2)
padding=0
stride=2
400(=5x5x16)
activate function: ReLU
120
activate function: ReLU
84
activate function: ReLU

28x28x6

Parameters
6x5x5x1+6
=156

14x14x6

-

10x10x16

16x5x5x6+16
=2416

5x5x16


-

120

120x400+120
=48120
84x120+84
=10164
84x10+10
=850
61706

84
10
Tổng

Operations
(5x5x1)x(28x28x6)
=117600

(5x5x6)x(10x10x16
)
=240000

120x400
=48000
120x84
=10080
84x10
=840

416520


3. kết quả thực nghiệm
3.1. Cấu hình Google Colab:
Cấu hình phần cứng Google colab:
-

GPU: Up to Tesla K80 with 12 GB of GDDR5 VRAM
CPU: Intel Xeon Processor with two cores @ 2.20 GHz
Memory: 13 GB RAM.

3.2. Bộ dữ liệu hình ảnh
Trong bài toán này sử dụng bộ dữ liệu MNIST là bộ cơ sở về chữ số viết tay, được cải
biên từ bộ cơ sở dữ liệu gốc của NIST giúp dễ sử dụng hơn. MNIST là tập hợp gồm
70000 mẫu ảnh chứa dữ liệu về các chữ số viết tay từ 0 đến 9. Trong đó dữ liệu huấn
luyện là 60000 và dữ liệu test là 10000 mẫu ảnh. Mỗi mẫu ảnh gồm 2 phần là một hình
ảnh grayscale của một kí tự chữ số kích thước 28x28 và một nhãn tương ứng với nó.


Hình 1: Một số hình ảnh về mẫu dữ liệu của MNIST

Thống kê trên hai tập train, test:
Chữ số
0
1
2
3
4
5

6
7
8
9
Tổng

Tập train
Số lượng mẫu
5923
6742
5958
6131
5842
5421
5918
6265
5851
5949
60000

Chữ số
0
1
2
3
4
5
6
7
8

9
Tổng

Tập test
Số lượng mẫu
980
1135
1032
1010
982
892
958
1028
974
1009
10000


Hình 2: Biểu đồ thống kê trên 2 tập train, test của MNIST

3.3. Độ đo đánh giá
Có nhiều cách để đánh giá một mơ hình phân lớp: accuracy score, confusion matrix, ROC
curve, Area Under the Curve, Precision and Recall, F1 score, Top R error,… Tuy nhiên,
để cho đơn giản, trong bài toán này, chúng em sử dụng accuracy score (độ chính xác).
Đây là cách đánh giá dựu trên tỉ lệ giữa số dự đoán đúng trên tổng số dự đoán trong tập
test.

3.4. Thời gian train, test
Trainning tập dữ diệu huấn luyện 60000 mẫu dữ liệu với batch-size=32, epoch=20 hết
100s 60ms thu được độ chính xác training accuracy=0.9945.

Thời gian test 10000 mẫu dữ liệu hết 1s, độ chính xác testing accuracy=0.9847, test loss
là 0,0769. Một số hình ảnh dự đốn sai:



Phần kết luận
Mơ hình sau khi chỉnh sửa so với mơ hình gốc có tỉ lệ lỗi khá cao 1,53%, cần có
những tìm hiểu sâu hơn để cải tiến mơ hình. Tuy nhiên về cơ bản, chúng em đã hiểu
được các tầng trong mơ hình gốc và có thể tùy biến mơ hình theo ý, từ đó có thể tự tạo
ra các mơ hình phục vụ cho các bài tốn khác nhau trong tương lai.



×