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

BÁO cáo NHẬP môn TRÍ TUỆ NHÂN tạo đề tài NHẬN DIỆN kí tự VIẾT TAY áp DỤNG mô HÌNH CNN

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 (1.99 MB, 26 trang )

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

BÁO CÁO
NHẬP MƠN TRÍ TUỆ NHÂN TẠO
ĐỀ TÀI : NHẬN DIỆN KÍ TỰ VIẾT TAY
ÁP DỤNG MƠ HÌNH CNN
Giáo viên hướng dẫn

:

ThS.Ngơ Văn Linh

Sinh viên thực hiện

:

Nhóm 04- 118596

Họ tên

MSSV

Nguyễn Thị Thắm

20183984

Trần Thị Hồng Nhung

20183965



Vũ Thị Ngọc Lan

20183939

Hà Nội-2020

TIEU LUAN MOI download : moi nhat


Mục lục
Mục lục...........................................................................................................................................
I. Giới thiệu đề tài......................................................................................................................
II.

Mơ tả bài tốn...........................................................................................................

III.

Cơ sở lý thuyết và phương pháp giải quyết...........................................................

1.

Cơ sở lý thuyết..........................................................................................................

1.1. Mạng noron và giải thuật lan truyền ngược.................................................................

1.2. Mô hình CNN.............................

1.3. Xử lý ảnh.....................................

2.

Phương pháp giải quyết...........................................................................................

2.1. Chuẩn bị dữ liệu huấn luyện....

2.2. Xử lí ảnh và trích chọn đặc trư

2.3. Mơ hình mạng CNN..................

2.4. Đánh giá mơ hình......................
IV.

Xây dựng ứng dụụ̣ng nhận dạng..............................................................................

V.

Đề xuất phát triển....................................................................................................

Mã nguồn và tài liệu tham khảo.................................................................................................

1

TIEU LUAN MOI download : moi nhat


I. Giới thiệu đề tài
Hiện nay, thông tin, tri thức được chuyển thành dữ liệu lưu trữ trên các thiết bị như máy
tính, laptop,.. hay trên các nền tảng trực tuyến. Đối với những dữ liệu mới, việc đưa dữ liệu vào
kho lưu trữ có thể thực hiện rất dễ dàng bằng cách nhập trực tiếp. Tuy nhiên, có rất nhiều tài liệu

cũ được viết bằng tay cần được lưu trữ vào máy mà việc nhập trục tiếp gây tốn thời gian và
khơng hiệu quả.
Bài tốn nhận dạng chữ viết tay được đặt ra để giải quyết vấn đề này. Bài toán đã được
nghiên cứu rất nhiều và đạt được kết quả đáng kể với nhiều phương pháp khác nhau. Trong đó,
phương pháp sử dụng mạng noron tích chập được sử dụng khá phổ biến và đem lại hiệu quả tốt.
Do đó, nhóm em đã chọn đề tài: “ Nhận diện kí tự viết tay áp dụng mơ hình CNN “ để tìm hiểu
và xây dựng được một mơ hình giải quyết bài tốn.

II. Mơ tả bài tốn
Tên đề tài: Nhận diện kí tự viết tay áp dụng mơ hình CNN
* Mục đích: Nhận diện kí tự viết tay (số và chữ Latin), từ ảnh đầu chụp đầu vào đưa ra kết quả là
kí tự dưới dạng UNICODE.
*

u cầu:
• Ảnh đầu vào là ảnh chụp kí tự cần nhận diện, rõ nét, khơng bị khuyết thiếu
• Ứng dụng đưa ra kết quả với độ chính xác cao, nhanh chóng, ít lỗi
• Sử dụng mạng noron

* Ứng dụng: Kết quả bài tốn có thể ứng dụng trong nhận diện biển số xe, chấm bài thi
trắc nghiệm,…

2

TIEU LUAN MOI download : moi nhat


III. Cơ sở lý thuyết và phương pháp giải quyết
Trong phần này chúng em xin trình bày qua về những kiến thức mà chúng em đã áp dụng vào
để hoàn thành project này. Trong đó bao gồm các kiến thức về mạng nơ-ron nhiều lớp, thuật tốn

lan truyền ngược, mơ hình mạng tích chập. Và phương pháp giải quyết bài toán được áp dụng
bao gồm phương pháp xử lý ảnh và xây dựng mơ hình nhận diện.

1. Cơ sở lý thuyết
1.1. Mạng noron và giải thuật lan truyền ngược
Ý

tưởng của mạng nơ-ron
Một mạng nơ-ron đơn giản có cấu trúc như sau:
Cấu tạo của một mạng nơ ron bao gồm:
-

Các node: mỗi node thực hiện một các
phép tính tốn
- Các kết nối: thực hiện việc truyền tín
hiệu từ node này đến node khác. Thông
tin của mỗi kết nối là một trọng số
(weight) để chỉ ra mức độ tín hiệu
mạnh hay yếu.
Dữ liệu đầu vào sẽ đi qua các lớp và
mạng sẽ tính tốn để cho ra đầu ra phù hợp.
Hình 1: Kiến trúc một mạng nơ-ron đơn giản.
Nguồn: < >

Mạng nơ-ron nhiều lớp
Trong thực tế áp dụng, người ta thường dùng mạng nơ-ron bao gồm nhiều lớp kề
nhau.Các node giữa hai lớp kề nhau sẽ liên kết với nhau. Đầu ra của lớp trước sẽ trở thành đầu
vào của lớp kế tiếp. Những lớp ở giữa của mạng (tức là trừ input và output) được gọi chung là
các hidden layers.


3

TIEU LUAN MOI download : moi nhat


4

TIEU LUAN MOI download : moi nhat


Hinh 2: Cấu trúc mạng nơ-ron nhiều lớp.
Nguồn: Natural Language In Action.Hobson Lane, Cole Howard, Hannes Max Hapke (2019)

5

TIEU LUAN MOI download : moi nhat


Hàm kích hoạt
Hoạt động tính tốn tại mỗi node được minh họa thơng qua một mơ hình đơn giản
Perceptron dưới đây:
-Vector trọng số

Từ sơ đồ Hình 3, ta có:
một kết nối đặc

w = [w0, w1, w2, …,wn]

-Đầu vào là vector
Mỗi thuộc tính của đầu vào xi sẽ được gắn với

trưng bởi trọng số wi .

Hinh 3: Mơ hình Perceptron.
Nguồn: Natural Language In Action. Hobson Lane, Cole Howard, Hannes Max Hapke (2019)
Mỗi node sẽ thực hiện tính tốnwxT . Sau đó tích vơ hướng này được đưa vào hàm kích hoạt f(x)f.xHàm kích hoạtnếuởđâywxsẽTbiến>t
về dạng 0 hoặc 1.

0 nếu wxT <= t
Hàm kích hoạt phải là hàm phi tuyến và khả vi. Do là hàm phi tuyến nên nó giúp mạng nơ-ron có
khả năng mơ hình hóa quan hệ phi tuyến giữa input và output. Hơn nữa, do là hàm khả vi nên nó
cho phép thực hiện đạo hàm từng phần hàm mất mát theo các trọng số.
()=

1

Thuật toán lan truyền ngược
Mạng nơ-ron hoạt động dựa trên 2 thuật toán lan truyền: lan truyền ngược và lan truyền tiến.
Thuật toán lan truyền tiến (Propagation): thực hiện truyền input dọc theo mạng, tính
tốn đầu ra (theo chiều xi từ input đến output).

6

TIEU LUAN MOI download : moi nhat


Thuật tốn lan truyền ngược (Backpropagation): thực hiện tính tốn mức độ đóng góp
vào hàm mất mát của mỗi trọng số ở từng lớp để cập nhật nó. Trong đó, kết quả tính được
của lớp sau được dùng làm cơ sở tính tốn cho lớp trước (chiều ngược với lan truyền tiến).
Thuật tốn lan truyền ngược đóng vai trị tạo nên sức mạnh cho mạng nơ-ron vì khả năng
cập nhật trọng số và bias dựa vào đầu ra output (như các mơ hình học máy khác). Dưới đây

là phần mơ tả toán học của thuật toán.
L

* Một số biểu diễn dùng trong bài toán:
L-1

: lớp cuối
: lớp kề cuối
l

: Lớp thứ
y

: giá trị thực cần dự đoán
Lan truyền ngược cho phép mơ hình mạng có thể cập nhật w và b để giảm giá trị của hàm C.
Để xem ảnh hưởng của trọng số tới C, ta tính đạo hàm của C theo w:
C( ) = ∂ C( ) ∂ a((L)) ∂ z(L())



∂w

L

∂a

L

∂z


L

∂w

L

(1)

Ảnh hưởng của b tới C:
∂C
( L)

(2)

∂b
Dữ liệu để huấn luyện sẽ được phân nhỏ thành các lô (batch). Mạng nơ- ron sẽ thực hiện tính
tốn đạo hàm theo lô này và cập nhật trọng số sau khi đưa mỗi batch dữ liệu vào.
w( L)=w( L)−learning
b(L)=b( L)−learning

Ta thấy đạo hàm hàm mất mát theo trọng số của lớp l:
l= L (l: lớp cuối cùng). Do đó, để cập nhật trọng số và bias của toàn mạng, ta phải tính tốn đạo hàm
từ cuối trở về đầu, lấy đạo hàm riêng đã tính ở lớp sau làm cơ sở tính tốn đạo hàm của lớp trước đó.

Như vậy, hoạt động cơ bản của mạng nơ-ron là như sau:
7

Thực hiện lan truyền tiến ra được output
Từ output tính tốn hàm mất mát



TIEU LUAN MOI download : moi nhat


-

Tính đạo hàm của hàm mất mát theo thuật lan truyền ngược để cập nhật trọng số và bias

8

TIEU LUAN MOI download : moi nhat


1.2.

Mơ hình CNN

Trong mơ hình mạng nơ-ron ở trên, mỗi node của lớp sau sẽ được kết nối toàn bộ với các
node của lớp trước. Việc kết nối toàn bộ như vậy đòi hỏi rất nhiều tham số, điều này khiến cho
mơ hình sau khi huấn luyện khá nặng. Hơn nữa, trong NN,mỗi điểm dữ liệu sẽ sử dụng một bộ
tham số khác nhau nên mơ hình khơng thể hiện được những đặc trưng tương tự nhau nhưng ở vị
trí khác nhau trên ảnh. Do vậy, trong bài toán phân loại ảnh, người ta thường sử dụng mơ hình
mạng CNN-Convolutional Neural Network để khắc phục những hạn chế của NN

Hinh 4. Mơ hình điển hình của mạng tích chập.
Nguồn: CS231n: Convolutional Neural Networks for Visual Recognition | Spring 2020

Mạng tích chập thường có 2 phần:
Các lớp đầu tiên thường là kết hợp của nhiều Convolutional Layer và Pooling
Layer. Chức năng của phần này là trích chọn đặc trưng của đầu vào.

Phần sau của mạng thường là các lớp kết nối toàn phần (Fully Connected Layer) làm
nhiệm vụ chuyển các đặc trưng học được sang thông số để phân loại.
Các lớp thường sử dụng trong mạng tích chập
-

Convolutional layer (Conv Layer)
Tham số cần học: các bộ
lọc. Mỗi bộ lọc sẽ trích ra 1
đặc trưng của ảnh như cạnh,
đường thay đổi màu sắc,…
Việc tính tốn ở Conv
Layer được thực hiện như sau:
Trọng số của lớp này là tập
các bộ lọc. Tập này là một ma
trận trọng số (kernel) có kích
thước dài-rộng nhỏ hơn ảnh
đầu vào và có độ sâu bằng với
ảnh. Kernel sẽ dịch trên tồn bộ
ảnh, tại mỗi bước dịch nó sẽ
thực hiện nhân tích vơ hướng
với phần ảnh tương ứng.

9

TIEU LUAN MOI download : moi nhat


Hinh 5:.Hoạt động của Conv Layer.

Từ Hình 5 ta thấy output của Conv Layer có kích thước dài-rộng khác với của input (nó

bị thu nhỏ lại). Do khi dịch bộ lọc, số lần bộ lọc nhân với các phần tử ở biên ít hơn so với
phần tử ở giữa ảnh. Do đó, nếu như trong ảnh có những đặc trưng quan trọng ở biên thì nó sẽ
rất dễ bị bỏ qua. Vậy nên, trong Conv Layer người ta áp dụng kỹ thuật zero-padding, tức là
bọc ma trận input bằng các phần tử 0. Kỹ thuật này giúp tất cả các phần tử trong ảnh sẽ có
đóng góp như nhau vào mơ hình. Hơn nữa, nó cũng giúp kiểm sốt kích thước của đầu ra,
đảm bảo kích thước dài-rộng của output bằng với input.
Conv Layer thường được sử dụng kết hợp với một hàm kích hoạt. Hàm này có chức
năng là làm gia tăng độ chênh lệch giữa các giá trị đầu ra của Conv Layer. Những giá trị bé
sẽ được loại bớt từ đó những giá trị lớn của mơ hình sẽ được kích hoạt. Các hàm kích hoạt
thường được dùng là: Leaky ReLU, ReLU, tanh, sigmoid,…
Ưu điểm của Conv Layer so với việc kết nối toàn bộ trong Neural Network đó là:
Số lượng tham số = số phần tử của bộ lọc +1 (Nhỏ hơn so với NN)
Do bộ tham số cho mỗi node như nhau nên đặc trưng nên Conv có thể trích được các
đặc trưng giống nhau ở vị trí khác nhau.
-

Pooling Layer:
Trong mơ hình CNN, giữa các Conv Layer kế tiếp nhau thường là 1 lớp Pooling Layer.
Hoạt động như sau:

Hinh 6.Hoạt động của MaxPooling Layer.
Nguồn: CS231n: Convolutional Neural Networks for Visual Recognition | Spring 2020

Tham số cần chỉ rõ đó là kích thước của sổ để thực hiện phép lấy max và độ dài
bước dịch chuyển.
Chức năng của lớp này là giúp giảm kích thước dữ liệu khi nó đi dọc mạng. Giảm kích
thước dữ liệu đồng nghĩa với việc giảm số lượng tham số và cơng việc tính tốn của mơ
hình, từ đó kiểm sốt được tình trạng overfitting.Ngồi ra, Pooling có chức năng giúp việc
dự đốn của mơ hình gần như khơng đổi khi đầu vào bị thay đổi bởi các phép biến đổi nhỏ.
Trong các loại pooling, Max Pooling được sử dụng phổ biến nhất do nó trích xuất các

đặc trưng là các viền/rìa của ảnh. Ngồi Max Pooling, cịn có các kiểu pooling khác như
Average Pooling hay L2-norm Pooling.

10

TIEU LUAN MOI download : moi nhat


-

Batch Normalization:

Lớp này sẽ giúp chuẩn hóa kết quả đầu ra của Conv Layer. Lớp này hoạt động như sau:

Hinh 7.Hoạt động của BatchNormalization.
Nguồn: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift.

Sergey Ioffe, Christian Szegedy(2015)

Lớp này sẽ thực hiện normalize bằng cách trừ đầu vào với kỳ vọng sau đó chia nó cho
phương sai. Điều này sẽ khiến cho ^xi tuân theo phân phối Gaussian. Tuy nhiên vì sau
khi thực hiện normalize, ta được μβ=0, σ β =1 nên nếu chỉ biến đổi như vậy thì các bước
tiếp theo hầu như x^i hầu như không thay đổi so với xi. Do đó ta cần thực hiện thêm bước
biến đổi cuối cùng để thay đổi phương sai và kỳ vọng của dữ liệu trong minibatch.
Việc sử dụng BatchNormalization có ưu điểm đó là, khi mơ hình thực hiện lan truyền
ngược, việc cập nhật trọng số của các lớp trước sẽ không ảnh hưởng nhiều đến kết quả của
lớp thực hiện Batch Normalization và từ đó cũng khơng ảnh hưởng nhiều đến việc cập
nhật trọng số của các lớp phía sau. Do vậy, mơ hình khơng phải cập nhật quá nhiều lần, kết
quả train qua mỗi epoch ổn định hơn.
-


Fully Connected Layer (FC Layer):
Sau khi đi qua các Conv Layers, Pooling Layers để trích chọn đặc trưng, dữ liệu sẽ
được truyền vào FC Layer để lấy ra giá trị làm cơ sở để phân loại. Trước khi cho vào FC
Layer, dữ liệu sẽ được duỗi thẳng thành vector 1 chiều. Sau đó, ở FC Layer thực hiện nhân
tích vơ hướng của vector đầu vào với vector trọng số. Do là kết nối toàn phần nên FC
Layer là lớp chứa nhiều trọng số nhất của mơ hình.
Chức năng của lớp này là tổng hợp các đặc trưng đã được trích trọn ở các lớp trước đó
để tính tốn dự đốn. Thường ở cuối các mơ hình CNN sẽ có một hoặc nhiều lớp Dense.
Việc xếp nhiều lớp Dense như vậy cuối mơ hình sẽ giúp mơ hình hóa được các quan hệ phức
tạp giữa đặc trưng và nhãn thực tế của dữ liệu.
-

Dropout:

11

TIEU LUAN MOI download : moi nhat


Dropout có chức năng là loại bỏ kết nỗi giữa 2 layer kế tiếp nhau theo một xác suất xác
định. Trong CNN, Dropout thường được sử dụng ở giữa các FC Layers. Tham số cần chỉ rõ
đó là xác suất loại bỏ. Giá trị này thường được đặt là 0.5 khi đặt giữa các FC Layers.
Chức năng của Dropout là giúp mơ hình giảm khả năng bị overfitting. Đồng thời huấn
luyện một mơ hình sử dụng Dropout nhiều lần sẽ cho ra kết quả mỗi lần khác nhau, điều này
cũng giống như việc thử nghiệm nhiều mơ hình.

1.3.

Xử lý ảnh


Khi xử lí thơng tin trên ảnh, để tiện cho q trình xử lí dữ liệu, sẽ dễ dàng hơn nhiều khi ta chỉ
xử lí dữ liệu trên 1 ma trận số thay vì nhiều ma trận => chuyển đổi ảnh màu về ảnh xám
(grayscale converting)
Tương tự như ảnh màu, ảnh xám cũng có kích thước 800 pixel * 600 pixel, có thể biểu diễn
dưới dạng một ma trận kích thước 600 * 800 (số hàng*số cột). Tuy nhiên mỗi pixel trong ảnh
xám biểu diễn chỉ cần 1 giá trị nguyên trong khoảng [0;255] thay vì (r,g,b) như trong ảnh màu.

Giá trị 0 là màu đen, 255 là màu trắng và giá trị pixel càng gần 0 thì càng tối và càng gần
255 thì càng sáng.
- Để giữ lại các chi tiết chính và loại bỏ các chi tiết thừa trên ảnh =>biến đổi ảnh về
dạng nhị phân – đen trắng (binary).
- Ảnh đen trắng là ảnh biểu diễn bởi 1 ma trận 2 chiều, trong đó các phần tử của của
ma trận chỉ có 2 giá trị là 0 – màu đen và 255 – màu trắng.
- Để chuyển ảnh sang dạng nhị phân ta chọn một ngưỡng (threshold) để xác định
đâu là điểm ảnh đen và đâu là điểm ảnh trắng. Nếu giá trị trên ảnh xám lớn hơn
ngưỡng threshold, đấy là điểm ảnh trắng và ngược lại.
Gọi ảnh xám là Gray, ảnh đen trắng cần xác định là BW, tọa độ các pixel trên hình là (x,y), ta có
- BW(x,y) = 255 nếu Gray(x,y) => threshold
- BW(x,y) = 0 nếu Gray(x,y) <= threshold

12

TIEU LUAN MOI download : moi nhat


2. Phương pháp giải quyết
2.1.

Chuẩn bị dữ liệu huấn luyện


Bộ dữ liệu mà em sử dụng đó là bộ EMNIST trong đó chúng em chia nó ra như sau:
Tập train:
Tập validation :
Tập test :
Nhãn đầu ra bao gồm 47 nhãn bao gồm các ký tự sau:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabdefghnqrt
Ở đây chúng em gộp các ký tự có cách viết hoa và viết thường giống nhau vào thành 1 nhãn
(VD: chữ o và O; chữ m và chữ M;…)

2.2.

Xử lí ảnh và trích chọn đặc trưng

Bộ dữ liệu sử dụng cho quá trình train model là bộ dữ liệu EMNIST. Các bức ảnh trong
bộ dữ liệu EMNIST là ảnh đen trắng (1 chanel), có kích thước 28x28 pixel (tổng cộng 784
pixel). Mỗi pixel mang một giá trị là một số tự nhiên từ 0 đến 255. Các pixel màu đen có giá trị
bằng 0, các pixel càng trắng thì có giá trị càng cao (nhưng không quá 255).
=> Mục tiêu: Ảnh đầu vào của ứng dụng là ảnh kĩ thuật số (digital image), sau q trình xử lí
ảnh, ảnh sẽ có dạng giống dạng ảnh trong EMNIST để tăng tối đa tính tương đồng về độ phân
giải, cường độ màu sắc => tăng độ chính xác cho dự đốn.
Để thực hiện việc này chúng em sử dụng thư viện cv2 và numpy của Python để thực hiện
các bước xử lý.
Các bước xử lí ảnh và trích chọn đặc trưng:
- Ảnh load được từ thiết bị:

- Chuyển ảnh từ ảnh màu qua ảnh xám

13


TIEU LUAN MOI download : moi nhat


- Làm sắc nét ảnh, loại bỏ các thành phần tần số cao như nhiễu hay làm trơn ảnh,
chuyển ảnh về dạng binary dạng nền đen chữ trắng

- Tìm nét và làm đậm nét

- Xác định vùng chứa kí tự : Xác định số lượng kí tự có trong ảnh, sau đó tìm và
lọc contours.

- Cắt và Resize lại ảnh đã crop về 28pixel*28pixel

14

TIEU LUAN MOI download : moi nhat


2.3.

Mơ hình mạng CNN

Cấu trúc mơ hình
Mơ hình gồm:
- Phần trích chọn đặc trưng:
3 bộ (Conv – Max Pooling – Batch
Normalization). Trong đó, tại mỗi bộ:

Conv: có sử dụng zero padding,
kernel: 32x3x3, stride = 1, activation

function: ReLU
Max Pooling: kích thước cửa sổ:
2x2, stride = 2.
BatchNormalization: sử dụng tham
số mặc định của Keras
- Phần dự đoán:
(Flatten – Dense – Dropout – Dense
- Dense)
Dense: sử dụng activation function:
ReLU
Dropout: xác suất loại bỏ = 0.5

Hinh 8. Mơ hình CNN để nhận diện

Q trình xây dựng mơ hình

15

TIEU LUAN MOI download : moi nhat


- Lựa chọn số cặp (Conv-Maxpooling):

Lựa chọn hàm kích hoạt:


đây chúng em có xét 3 hàm kích hoạt ReLU, LeakyReLU, tanh. Do mỗi hàm có ưu
nhược điểm riêng nên chúng em chọn cách thử nghiệm để chọn hàm cho kết quả tốt hơn. Ở
trên cho thấy, hàm ReLU cho kết quả tốt hơn (xấp xỉ hơn hàm LeakyReLU và cao hơn hẳn
hàm tanh). Hàm ReLU có cơng thức f(x)như sau:=max(0, x)

16

TIEU LUAN MOI download : moi nhat


Hinh 8: Hàm ReLU
Nguồn: />
Ưu điểm của ReLU đó là tính tốn nhanh hơn các hàm kích hoạt khác. Hơn nữa, ReLU
biến đầu ra của lớp sử dụng nó thành vector có nhiều phần tử bằng 0 (thưa). Điều này giúp
mơ hình giảm khả năng overfitting và loại bỏ được nhiễu. Và ReLU không gây ra hiện tượng
mất gradient ( vanishing gradient problem) như hàm sigmoid và tanh do nó không thu hẹp
khoảng giá trị của đầu vào.
Tuy nhiên, hàm ReLU cũng có những hạn chế như là bùng nổ gradient . Nó khiến mơ
hình phải cập nhật trọng số đáng kể sau mỗi lần lan truyền ngược. Điều này khiến mơ hình
mất đi tính ổn định. Ngồi ra, mơ hình sử dụng ReLU có thể gặp phải tình trạng chết. Một
nút sẽ bị mất hoàn toàn tác dụng khi đầu ra của nó là âm. LeakyReLU khắc phục điều này tuy
nhiên khi thử nghiệm thấy ReLU cho kết quả tốt hơn.

17

TIEU LUAN MOI download : moi nhat


-

Hàm mất mát: Cross-entropy

Chúng em sử dụng hàm mất mát cross-entropy. Cơng thức của nó như sau:
t


Trong đó:
nhãn

là x
i, ngư

i

C

i

là xác suất để

s

: Tập nhãn

Ưu điểm của hàm cross -entropy đó là nó chỉ trừng phạt/thưởng dựa trên xác suất đối
với nhãn chính xác của dữ liệu, khơng bị ảnh hưởng bởi xác suất dự đoán trên nhãn mà dữ
liệu khơng thuộc vào. Ngồi ra, do sử dụng hàm logarit, nên nó sẽ trừng phạt rất nặng nếu
mơ hình dự đốn xác suất vào nhãn thực tế là bé.

trong mơ hình này, chúng em cũng sử dụng kết hợp hàm cross-entropy kết hợp với
hàm softmax. Việc kết hợp này thường được sử dụng trong các mơ hình mạng CNN do hàm
softmax giúp biến kết quả tính tốn được từ mạng về dạng xác suất.
Hàm softmax được tính như sau:

Hàm softmax sẽ giúp đưa kết quả tính tốn được từ của các lớp trong mạng trở về giá trị thuộc khoảng (0, 1). Tổng
các đầu ra tính tốn trên từng nhãn là 1. Do đó, kết quả của softmax được xem như xác suất để ảnh rơii=pvào,từng ký tự.


Với dữ liệu đầu vào có nhãn thực tế là hàm mất mát cross entropy khi được sử dụng kết
hợp với hàm softmax sẽ được tính như sau:
- Lựa chọn thuật tốn tối ưu:

18

TIEU LUAN MOI download : moi nhat


Từ thử nghiệm, chúng em chọn thuật toán tối ưu cho mơ hình là thuật tốn Adam. Đây cũng
là một thuật toán được sử dụng nhiều hiện nay.
Adam là thuật tốn tối ưu có khả năng thay đổi learning rate cho từng tham số trong q
trình tối ưu. Nó là kết hợp của 2 thuật toán tối ưu: RMSprop và Stochastic Gradient Descent sử
dụng momemtum.

Hinh 9.Thuật tốn Adam.
Nguồn:MỗiAdam:epochA MethodsẽthựcforhiệnStochastictích Optimization.lũynhưsau:Diederik P. Kingma, Jimmy Ba(2015).
Trong đó, m được tích lũy giúp cho q trình tối ưu có thể thốt khỏi các điểm cực tiểu địa phương (hoặc các điểm dạng yên
ngựa). t được tích lũy để điều chỉnh learning rate sao cho dần dần bướct cập nhật càng nhỏ phù hợpv với khi gradient lớn (càng dốc)
thì phải cập nhật bước nhỏ. m v

Tuy nhiên do và được khởi tạo là các vector 0 nên ở những bước đầu giá trị tích lũy là khá
t
nhỏ do đó thơng số tích lũy được scale như sau:

Từ đó, learning rate được cập nhật như sau:
19

TIEU LUAN MOI download : moi nhat



2.4.

Đánh giá mơ hình

Mơ hình có số lượng tham số là: 754,735
Độ chính xác trên tập test gồm 18800 ảnh là : 0.8893
Giá trị hàm mất mát: 0.3877
Ngoài ra chúng em còn thực hiện test trên tập gồm 100 ảnh thực tế có dạng ma trận
chữ để kiểm tra kết hợp hiệu quả của khâu xử lý ảnh và khâu dự đốn. Cách thức
chúng em đánh giá đó là
score=

tổng số ký tự dự đoán đúng và đúngthứ tự
tổng số ký tự trong 100 ảnh

Kết quả cho độ chính xác là 72,4%.

20

TIEU LUAN MOI download : moi nhat


IV. Xây dựng ứng dụụ̣ng nhận dạng
Ứng dụng được viết bằng Python chạy trên nền tảng Python 3.8.6, sử dụng
các thư viện sau:
- Để chạy ứng dụng nhận diện cần cài đặt các thư viện sau:
PyQt5, tensorflow, keras, cv2, numpy, typing.
- Huấn luyện mơ hình, chúng em sử dụng thêm các thư viện sau:

pandas, sklearn, typing.
Để sử dụng ứng dụng trước tiên cần cài đặt môi trường chạy
Python: và các thư viện sử dụng cmd: pip install <tên thư viện>
Ứng dụng không cần cài đặt, chỉ cần chạy file
gui.py Giao diện ứng dụng:

Để sử dụng người dùng load file ảnh cần nhận dạng từ thiết bị bằng nút Open,
nhấn Run để nhận dạng. Kết quả sẽ được hiển thị ở phần RESULT

21

TIEU LUAN MOI download : moi nhat


22

TIEU LUAN MOI download : moi nhat


V.

Đề xuất phát triển

- Sử dụng các thuật toán object-detection để tìm kiếm vùng chứa kí tự
- Cải tiến mơ hình nhận dạng một từ, một đoạn văn bản
- Điều chỉnh mơ hình để nâng cao độ chính xác và tốc độ nhận dạng

23

TIEU LUAN MOI download : moi nhat



×