1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

13 10 0

Đ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 đề Sử dụng mạng CNN phân loại chữ số viết tay
Tác giả Hà Nội
Người hướng dẫn TS. Trịnh Anh Phúc
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Học sâu và Ứng dụng
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2020
Thành phố Hà Nội
Định dạng
Số trang 13
Dung lượng 385,89 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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

Trang 2

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 toán 5

2 Giới thiệu mô hình 5

2.1 Tổng quan kiến trúc mạng mô hình sử dụng 5

2.2 Lớp 2 6

2.3 Lớp 3 6

2.4 Lớp 4 6

2.5 Lớp 5 6

2.6 Lớp 6 6

2.7 Lớp 7 6

3 Bộ dữ liệu hình ảnh 7

4 Kết quả thực nghiệm 9

4.1 Cấu hình Google Colab: 9

4.2 Cấu hình phần mềm: 9

4.3 Độ đo đánh giá 10

4.4 Hàm mất mát 10

4.5 Thời gian train, test 11

Phần kết luận 13

Trang 3

Lởi cảm ơn

Lời đầu tiên cho phép chúng em được gửi lời cảm ơn 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ể hoà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 học được, bài tập lớn của chúng em chắc chắn vẫ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!

Trang 4

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 toá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 toá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 khuôn 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

Trang 5

Phần nội dung

1 Mô tả bài toán

Nhận diện chữ số viết tay sử dụng bộ dữ liệu MNIST Bộ dữ liệu gồm 70000 mẫu dữ liệu

về các chữ số từ 0 đến 9 Mô hình được huấn luyện với 60000 mẫu dữ liệu và được kiểm tra bằng 10000 mẫu dữ liệu còn lại Bài toán nhận diện chữ số viết tay đọc dữ liệu ảnh đầu vào là ảnh của chữ số cần đoán nhãn, sử dụng mô hình đã được huấn luyện để dự đoán nhãn cho ảnh đó

2 Giới thiệu mô hình

2.1 Tổng quan kiến trúc mạng mô hình sử dụng

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:

2.1 Lớp 1

Lớp đầu tiên 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

Trang 6

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

2.2 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

2.3 Lớp 3

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

2.4 Lớp 4

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

2.5 Lớp 5

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

2.6 Lớp 6

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

2.7 Lớp 7

Lớp 7 là 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

Trang 7

Tổng kết các lớp:

Parameters Operations

1:

convolutiona

l layer

28x28x1

6 kernel (5,5) padding=”same”

stride=1 activate fuction: ReLU

28x28x6 6x5x5x1+6

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

2: max

pooling 28x28x6 kernel(2,2)

padding=0 stride=2

14x14x6

-3:

convolutiona

l layer

14x14x6

16 kernel (5,5) padding=0 stride=1 activate function: ReLU

10x10x16 16x5x5x6+16

=2416 (5x5x6)x(10x10x16 )

=240000

4: max

pooling 10x10x16 kernel (2,2)

padding=0 stride=2

5x5x16

-5: full

connected 400(=5x5x16) activate function: ReLU 120 120x400+120 =48120 120x400 =48000

6:full

connected 120 activate function: ReLU 84 84x120+84 =10164 120x84 =10080

7: full

connected 84 activate function: ReLU 10 84x10+10 =850 84x10 =840

Tổng 61706 416520

3 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ó

Trang 8

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:

Trang 9

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

4 Kết quả thực nghiệm

4.1 Cấu hình Google Colab:

Cấu hình phần cứng Google colab:

- GPU: Tesla K80, driver version 418.67, memory 11441 MiB

- CPU: Single core Intel Xeon (-MT-) cache: 56320 KB

clock speeds: max: 2200 MHz 1: 2200 MHz 2: 2200 MHzMemory: 13 GB

4.2 Cấu hình phần mềm:

Sử dụng bộ thư viện Keras với các module sau:

- keras.datasets.mnist

- keras.layers.Conv2D

- keras.layers.MaxPooling2D

- keras.layers.Dense

- keras.layers.Flatten

- keras.models.Sequential

- Keras.utils.np_utils

Sử dụng bộ thư viện bổ sung sau:

- matplotlib.pyplot

Trang 10

- numpy

4.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

4.4 Hàm mất mát

Các nhãn trong bài toán được chuyển đổi về dạng one-hot vector:

Hàm activation tại lớp cuối cùng là hàm softmax: nhận đầu vào là một mảng số thực và đầu ra là một phân phối xác suất với mỗi phần tử nằm trong khoảng [0, 1] và tổng các phần tử bằng 1 Giá trị của label dạng one-hot và kết quả dự đoán sau hàm softmax là có cùng kích thước

Trang 11

Hàm “categorical_crossentropy“ trong Keras:

L=−

i

M

y ilog(^y i)

Với ^y là giá trị nhãn mà mô hình dự đoán ra, y là nhãn thực, M là số lượng lớp dữ liệu Hàm này tính toán độ chênh lệch giữa giá trị dự đoán và nhãn thực của dữ liệu Giá trị L

càng nhỏ thì model dự đoán càng gần với giá trị thực

4.5 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ự đoán sai:

Trang 13

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 toán khác nhau trong tương lai

Ngày đăng: 06/12/2022, 00:05

HÌNH ẢNH LIÊN QUAN

2. Giới thiệu mơ hình - 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
2. Giới thiệu mơ hình (Trang 5)
3. Bộ dữ liệu hình ảnh - 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
3. Bộ dữ liệu hình ảnh (Trang 7)
3. Bộ dữ liệu hình ảnh - 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
3. Bộ dữ liệu hình ảnh (Trang 7)
Hình 1: Một số hình ảnh về mẫu dữ liệu của MNIST - 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
Hình 1 Một số hình ảnh về mẫu dữ liệu của MNIST (Trang 8)
Hình 2: Biểu đồ thống kê trên 2 tập train, test của MNIST - 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
Hình 2 Biểu đồ thống kê trên 2 tập train, test của MNIST (Trang 9)
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 - 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
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 (Trang 10)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w