1. Trang chủ
  2. » Luận Văn - Báo Cá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 7 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 Môn Học Sâu Và Ứng Dụng
Thể loại báo cáo
Năm xuất bản 2020
Thành phố Hà Nội
Định dạng
Số trang 13
Dung lượng 395,78 KB

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

Nội dung

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... Lởi cảm ơnLời đầu tiên cho phép chúng em được gửi lời cảm ơn t

Trang 1

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

Hà Nội, 12 – 2020

Trang 2

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=−M i y i log ( ^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:

Ngày đăng: 24/12/2023, 10:59

HÌNH ẢNH LIÊN QUAN

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)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w