daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn...

32
ĐI HC Đ NNG KHOA CÔNG NGH THÔNG TIN V TRUYN THÔNG ---------- BO CO ĐỒ N Đ ti: TÌM HIỂU V XÂY DỰNG CHƯƠNG TRÌNH NHN DIN CH VIT BNG NƠRON SVTH : Nguyn Th Nht L Nguyn Hiu Ngha Lp: 18IT3 GVHD: TS. Nguyn Đức Hiển

Transcript of daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn...

Page 1: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

ĐAI HOC ĐA NĂNGKHOA CÔNG NGHÊ THÔNG TIN VA TRUYÊN THÔNG

----------

BAO CAO ĐỒ AN

Đê tai:

TÌM HIỂU VA XÂY DỰNG CHƯƠNG TRÌNH NHÂN DIÊN CHƯ VIÊT BĂNG NƠRON

SVTH : Nguyên Thi Nhât Lê

Nguyên Hiêu Nghia

Lơp: 18IT3

GVHD: TS. Nguyên Đức Hiển

Đa Năng, tháng 11 năm 2020

Page 2: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

ĐAI HOC ĐA NĂNGKHOA CÔNG NGHÊ THÔNG TIN VA TRUYÊN THÔNG

----------

BAO CAO ĐỒ AN

Đê tai:

TÌM HIỂU VA XÂY DỰNG CHƯƠNG TRÌNH NHÂN DIÊN CHƯ VIÊT BĂNG NƠRON

SVTH : Nguyên Thi Nhât Lê

Nguyên Hiêu Nghia

Lơp: 18IT3

GVHD: TS. Nguyên Đức Hiển

Đa Năng, tháng 11 năm 2020

Page 3: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

MUC LUCLƠI CAM ƠN.................................................................................................................5

LƠI NÓI ĐẦU................................................................................................................6

CHƯƠNG I: TỔNG QUAN...........................................................................................8

1.1 Khái quát............................................................................................................8

1.2. Mục tiêu nghiên cứu............................................................................................8

1.3. Đối tượng va phạm vi nghiên cứu........................................................................9

1.3.1. Đối tượng......................................................................................................9

1.3.2. Phạm vi nghiên cứu......................................................................................9

1.4. Phương pháp nghiên cứu.....................................................................................9

1.4.1. Phương pháp lý thuyêt..................................................................................9

1.4.2. Phương pháp thực nghiêm............................................................................9

1.5 Ý nghia của đề tai..................................................................................................9

CHƯƠNG II. CƠ SƠ LÝ THUYÊT.............................................................................10

2.1 Thuât toán CNN – Convolutional Neural Network:........................................10

2.1.1 Convolutional la gì?..................................................................................11

2.1.2 Cấu trúc của mạng CNN...........................................................................11

2.1.3 Giơi thiêu về Gradient Descent:..................................................................12

2.2 Giơi thiêu về các thư viên hỗ trợ:....................................................................13

2.2.1 Thư viên Tensorflow.................................................................................13

2.2.2 Giơi thiêu về Node.js...................................................................................14

2.2.3 Google Colab la gì?...................................................................................15

CHƯƠNG III: PHÂN TÍCH BÀI TOÁN.....................................................................17

3.1 Mục tiêu...........................................................................................................17

3.2 Đao tạo mô hình deep learning phân loại chữ viêt tay....................................17

3.2.1 Tổng quan về tâp dữ liêu huấn luyên...........................................................17

3.2.2 Xử lý hình ảnh đầu vao.............................................................................17

Page 4: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

3.2.3 Xây dựng mô hình phân loại........................................................................18

3.3 Các bươc thực hiên..........................................................................................18

CHƯƠNG IV: KÊT LUẬN CHUNG...........................................................................21

4.1 Kêt quả đạt được..............................................................................................21

4.2 Ưu điểm va nhược điểm của mô hình phân loại..............................................24

TÀI LIỆU THAM KHAO.............................................................................................25

Page 5: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

LƠI CAM ƠNTrên thực tê không có sự thanh công nao ma không gắn liền vơi những sự hỗ

trợ, giúp đỡ dù ít hay nhiều, dù trực tiêp hay gián tiêp của người khác. Trong suốt

quãng thời gian từ khi bắt đầu học tâp tại giảng đường trường Đại học công nghê

thông tin va truyền thông Viêt Han - Đại học Đa Năng, tôi đã nhân được rất nhiều sự

quan tâm, giúp đỡ của thầy cô va các bạn.

Vơi lòng biêt ơn sâu sắc nhất, tôi xin gửi lời cảm ơn chân thanh tơi toan thể các

thầy cô giáo trong khoa Công nghê thông tin va truyền thông Đại học Viêt Han, những

người đã dạy dỗ va truyền đạt vốn kiên thức vô cùng quý báu của mình cho chúng em

trong suốt quãng thời gian học tại đây. Những tình cảm va kiên thức ma thầy cô đã gửi

trao cho chúng em sẽ la hanh trang cho chúng em để bươc đi trên những đoạn đường

tương lai.

Tôi cũng xin gửi lời cảm ơn sâu sắc tơi Thầy Nguyên Đỗ Công Pháp , người đã

tân tình hỗ trợ va dẫn dắt tôi trong suốt quá trình thực hiên đồ án để có được kêt quả

một cách tốt nhất.

Một lần nữa tôi xin được chân thanh cảm ơn!

Page 6: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

LƠI NÓI ĐẦUNhân dạng la linh vực được các nha khoa học rất quan tâm để giải quyêt các

yêu cầu trong cuộc sống hiên nay, có nhiều linh vực nhân dạng như nhân dạng tín

hiêu, nhân dạng tiêng nói hay nhân dạng ảnh. Vấn đề nhân dạng chữ viêt tay nói chung

va nhân dạng chữ số viêt tay nói riêng la một vấn đề thách thức đối vơi những nha

nghiên cứu.

Chữ số viêt tay xuất hiên ở hầu hêt trong các công viêc của các cơ quan, nha

máy, xí nghiêp, trường học. Trong các trường phổ thông hiên nay, đều có một bộ phân

quản lý điểm để thực hiên các khâu tiêp nhân va nhâp vao máy tính bảng điểm viêt tay

của giáo viên bộ môn, công tác nay luôn chiêm nhiều thời gian va đôi khi không đảm

bảo tiên độ hoạt động của nha trường.

Để nhân dạng chữ số viêt tay, có nhiều phương pháp va kỹ thuât khác nhau

như: logic mờ, giải thuât di truyền, mô hình xác xuất thống kê, mô hình mạng nơ ron.

Đã có nhiều công trình nghiên cứu về nhân dạng chữ số viêt tay đạt hiêu quả cao, tuy

nhiên, các ứng dụng vẫn chưa đáp ứng hoan toan các yêu cầu của người dùng.

Vây nên, cần có một ứng dụng nhân dạng chữ viêt có phương pháp va kỹ thât

cao hơn để có thể dê dang tiêp cân vơi người dùng, hạn chê những lỗi cơ bản của nhân

dạng.

Page 7: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

NHÂN XÉT

(Của giảng viên)……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

Đa Năng, ngay 04 tháng 09 năm 2020

(Ký va ghi rõ họ tên)

Page 8: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

CHƯƠNG I: TỔNG QUAN

1.1 Khái quát.

Nhân dạng chữ viêt tay la bai toán khó trong lơp các bai toán nhân dạng chữ, va vẫn luôn thu hút được nhiều sự quan tâm nghiên cứu của các nha khoa học. Đặc biêt la trong vai thâp niên gần đây, do sự thúc đẩy của quá trình tin học hóa trong mọi linh vực, ứng dụng nhân dạng chữ cang có nhiều ý nghia khi được sử dụng cho các bai toán trong thực tê. Cũng như nhiều bai toán nhân dạng tiêng nói, hình ảnh… khác, thì độ chính xác của hê thống vẫn tiêp tục cần phải cải thiên nhằm vươn tơi khả năng nhân dạng giống như con người.

Tuy nhiên, vơi bai toán nhân dạng chữ viêt tay thì vấn đề trở nên phức tạp hơn nhiều so vơi bai toán nhân dạng chữ in thông thường ở những vấn đề sau đây:

Vơi chữ viêt tay thì không thể có các khái niêm font chữ, kích cỡ chữ. Các kí tự trong một văn bản chữ viêt tay thường có kích thươc khác nhau. Thâm chí, cùng một kí tự trong một văn bản do một người viêt nhiều khi cũng có độ rộng, hẹp, cao, thấp khác nhau, ...

Vơi những người viêt khác nhau chữ viêt có độ nghiêng khác nhau (chữ nghiêng nhiều/ít, chữ nghiêng trái/phải...).

Các kí tự của một từ trên văn bản chữ viêt tay đối vơi hầu hêt người viêt thường bi dính nhau vì vây rất khó xác đinh được phân cách giữa chúng.

Các văn bản chữ viêt tay còn có thể có trường hợp dính dòng (dòng dươi bi dính hoặc chồng lên dòng trên).

Trong những năm gần đây, mô hình mạng Neuron theo hương học sâu đã cho thấy những kêt quả tốt trong nhiều bai toán khác nhau, trong đó có nhân dạng chữ.

Hiên nay vơi sự phát triển không ngừng của máy tính, phương pháp Deep Learning ra đời đã đáp ứng cơ bản trong viêc nhân dạng va xử lý ảnh. Deep Learning la một thuât toán dựa trên một số ý tưởng từ não bộ tơi viêc tiêp thu nhiều tầng biểu đạt, cả cụ thể lẫn trừu tượng, qua đó lam rõ nghia của các loại dữ liêu. Deep Learning được ứng dụng trong nhân diên hình ảnh, nhân diên giọng nói, xử lý ngôn ngữ tự nhiên. Hiên nay rất nhiều các bai toán nhân dạng sử dụng Deep Learning để giải quyêt do Deep Learning có thể giải 2 quyêt các bai toán vơi số lượng lơn, kích thươc đầu vao lơn vơi hiêu năng cũng như độ chính xác vượt trội so vơi các phương pháp phân lơp truyền thống.

1.2. Mục tiêu nghiên cứu

Page 9: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

Mục tiêu chính của đề tai nay la sử dụng kỹ thuât Deep learning để xây dựng chương trình nhân dạng chữ số viêt tay.

1.3. Đối tượng va phạm vi nghiên cứu

1.3.1. Đối tượng

Các chữ số viêt tay. Cơ sở lý thuyêt về nhân dạng ảnh. Các phương pháp, giải thuât về nhân dạng. Kỹ thuât Deep Learning

1.3.2. Phạm vi nghiên cứu

Nghiên cứu kỹ thuât xử lý ảnh, Anh quét chữ số viêt tay, Các chữ số tự nhiên tự 0 đên 9,

1.4. Phương pháp nghiên cứu

1.4.1. Phương pháp lý thuyết

Các tai liêu về cơ sở lý thuyêt: xử lý ảnh số, lọc trích ảnh số, xác đinh biên, rút trích số, nhân dạng ký tự số.

Nghiên cứu mạng Nơ ron nhân dạng chữ viêt tay. Phương pháp Deep Learning Các tai liêu liên quan tơi lâp trình

1.4.2. Phương pháp thực nghiệm

Xây dựng chương trình thử nghiêm. Kiểm thử tính hiêu quả của chương trình vơi các chữ số khác nhau.

1.5 Ý nghĩa của đê tai

Về khoa học: Đề tai sẽ mang ý nghia cung cấp về mặt lý thuyêt để lam rõ về các phương pháp va kỹ thuât nhân dạng chữ số viêt tay.

Về thực tiên: Góp phần hỗ trợ cho viêc nhâp văn bản vơi dữ liêu số.

Page 10: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

CHƯƠNG II. CƠ SƠ LÝ THUYÊT

2.1 Thuật toán CNN – Convolutional Neural Network:

Convolutional Neural Network (CNNs – Mạng nơ-ron tích châp) la một trong

những mô hình Deep Learning tiên tiên. Nó giúp cho chúng ta xây dựng được những

hê thống thông minh vơi độ chính xác cao như hiên nay.

CNN được sử dụng nhiều trong các bai toán nhân dạng các object trong ảnh. Để

tìm hiểu tại sao thuât toán nay được sử dụng rộng rãi cho viêc nhân dạng (detection),

chúng ta hãy cùng tìm hiểu về thuât toán nay.

Tương tự như viêc trẻ em học cách nhân diên đối tượng, chúng ta cần cho thuât

toán học rất nhiều hình ảnh trươc khi nó có thể đưa ra dự đoán cho hình ảnh đầu vao

ma nó chưa từng thấy.

Máy tính “nhìn” theo cách khác con người. Trong thê giơi máy tính chỉ có những

con số. Mỗi hình ảnh có thể được biểu diên dươi dạng mảng 2 chiều những con số

được gọi la các pixel.

Mặc dù máy tính nhìn nhân theo cách khác con người, chúng ta vẫn có thể dạy

máy tính nhân diên các mẫu như con người. Điều quan trọng la chúng ta cần nghi về

hình ảnh theo một cách khác đi.

Để dạy thuât toán nhân diên đối tượng trong hình ảnh, ta sử dụng một loại Mạng

Nơ-ron Nhân Tạo (Artificial Neural Network): Mạng Nơ-ron Tích Châp. Tên của nó

được dựa trên phép tính quan trọng được sử dụng trong mạng đó la Tích Châp.

Mạng Nơ-ron Tích Châp lấy cảm hứng từ não người. Nghiên cứu trong những thâp

niên 1950 va 1960 của D.H Hubel va T.N Wiesel trên não của động vât đã đề xuất một

mô hình mơi cho viêc cách ma động vât nhìn nhân thê giơi. Trong báo cáo, hai ông đã

diên tả 2 loại tê bao nơ-ron trong não va cách hoạt động khác nhau: tê bao đơn giản

(simple cell – S cell) va tê bao phức tạp (complex cell – C cell).

Các tê bao đơn giản được kích hoạt khi nhân diên các hình dáng đơn dản như

đường nằm trong một khu vực cố đinh va một góc cạnh của nó. Các tê bao phức tạp có

vùng tiêp nhân lơn hơn va đầu ra của nó không nhạy cảm vơi những vi trí cố đinh

trong vùng.

Trong thi giác, vùng tiêp nhân của một nơ-ron tương ứng vơi một vùng trên võng

mạc nơi ma sẽ kích hoạt nơ-ron tương ứng.

Page 11: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

Năm 1980, Fukushima đề xuất mô hình mạng nơ-ron có cấp bâc gọi la

neocognitron. Mô hình nay dựa trên khái niêm về S cell va C cell. Mạn neocognitron

có thể nhân diên mẫu dựa trên viêc học hình dáng của đối tượng.

Sau đó vao năm 1998, Mạng Nơ-ron Tích Châp được giơi thiêu bởi Bengio, Le

Cun, Bottou va Haffner. Mô hình đầu tiên của họ được gọi tên la LeNet-5. Mô hình

nay có thể nhân diên chữ số viêt tay.

2.1.1 Convolutional la gì?

Các convolutional layer có các parameter(kernel) đã được học để tự điều chỉnh lấy

ra những thông tin chính xác nhất ma không cần chọn các feature.

Trong hình ảnh ví dụ trên, ma trân bên trái la một hình ảnh trắng đen được số hóa.

Ma trân có kích thươc 5×5 va mỗi điểm ảnh có giá tri 1 hoặc 0 la giao điểm của dòng

va cột.

Convolution hay tích châp la nhân từng phần tử trong ma trân 3. Sliding Window

hay còn gọi la kernel, filter hoặc feature detect la một ma trân có kích thươc nhỏ như

trong ví dụ trên la 3×3.

Convolution hay tích châp la nhân từng phần tử bên trong ma trân 3×3 vơi ma trân

bên trái. Kêt quả được một ma trân gọi la Convoled feature được sinh ra từ viêc nhân

ma trân Filter vơi ma trân ảnh 5×5 bên trái.

2.1.2 Cấu trúc của mạng CNN

Mạng CNN la một tâp hợp các lơp Convolution chồng lên nhau va sử dụng các

ham nonlinear activation như ReLU va tanh để kích hoạt các trọng số trong các node.

Mỗi một lơp sau khi thông qua các ham kích hoạt sẽ tạo ra các thông tin trừu tượng

hơn cho các lơp tiêp theo.

Mỗi một lơp sau khi thông qua các ham kích hoạt sẽ tạo ra các thông tin trừu tượng

hơn cho các lơp tiêp theo. Trong mô hình mạng truyền ngược (feedforward neural

network) thì mỗi neural đầu vao (input node) cho mỗi neural đầu ra trong các lơp tiêp

theo.

Mô hình nay gọi la mạng kêt nối đầy đủ (fully connected layer) hay mạng toan vẹn

(affine layer). Còn trong mô hình CNNs thì ngược lại. Các layer liên kêt được vơi

nhau thông qua cơ chê convolution.

Page 12: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

Layer tiêp theo la kêt quả convolution từ layer trươc đó, nhờ vây ma ta có được các

kêt nối cục bộ. Như vây mỗi neuron ở lơp kê tiêp sinh ra từ kêt quả của filter áp đặt lên

một vùng ảnh cục bộ của neuron trươc đó.

Mỗi một lơp được sử dụng các filter khác nhau thông thường có hang trăm hang

nghìn filter như vây va kêt hợp kêt quả của chúng lại. Ngoai ra có một số layer khác

như pooling/subsampling layer dùng để chắt lọc lại các thông tin hữu ích hơn (loại bỏ

các thông tin nhiêu).

Trong quá trình huấn luyên mạng (traning) CNN tự động học các giá tri qua các

lơp filter dựa vao cách thức ma bạn thực hiên. Ví dụ trong tác vụ phân lơp ảnh, CNNs

sẽ cố gắng tìm ra thông số tối ưu cho các filter tương ứng theo thứ tự raw pixel >

edges > shapes > facial > high-level features. Layer cuối cùng được dùng để phân lơp

ảnh.

Trong mô hình CNN có 2 khía cạnh cần quan tâm la tính bất biên (Location

Invariance) va tính kêt hợp (Compositionality). Vơi cùng một đối tượng, nêu đối tượng

nay được chiêu theo các gốc độ khác nhau (translation, rotation, scaling) thì độ chính

xác của thuât toán sẽ bi ảnh hưởng đáng kể.

Pooling layer sẽ cho bạn tính bất biên đối vơi phép dich chuyển (translation), phép

quay (rotation) va phép co giãn (scaling). Tính kêt hợp cục bộ cho ta các cấp độ biểu

diên thông tin từ mức độ thấp đên mức độ cao va trừu tượng hơn thông qua

convolution từ các filter.

Đó la lý do tại sao CNNs cho ra mô hình vơi độ chính xác rất cao. Cũng giống như

cách con người nhân biêt các vât thể trong tự nhiên.

Mạng CNN sử dụng 3 ý tưởng cơ bản:

Các trường tiêp nhân cục bộ (local receptive field)

Trọng số chia sẻ (shared weights)

Tổng hợp (pooling).

2.1.3 Giơi thiệu vê Gradient Descent:

Trong Machine Learning nói riêng va Toán Tối Ưu nói chung, chúng ta thường

xuyên phải tìm giá tri nhỏ nhất (hoặc đôi khi la lơn nhất) của một ham số nao đó. Ví

dụ như các ham mất mát trong hai bai Linear Regression va K-means Clustering. Nhìn

chung, viêc tìm global minimum của các ham mất mát trong Machine Learning la rất

Page 13: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

phức tạp, thâm chí la bất khả thi. Thay vao đó, người ta thường cố gắng tìm các điểm

local minimum, va ở một mức độ nao đó, coi đó la nghiêm cần tìm của bai toán.

Các điểm local minimum la nghiêm của phương trình đạo ham bằng 0. Nêu bằng

một cách nao đó có thể tìm được toan bộ (hữu hạn) các điểm cực tiểu, ta chỉ cần thay

từng điểm local minimum đó vao ham số rồi tìm điểm lam cho ham có giá tri nhỏ nhất

(đoạn nay nghe rất quen thuộc, đúng không?). Tuy nhiên, trong hầu hêt các trường

hợp, viêc giải phương trình đạo ham bằng 0 la bất khả thi. Nguyên nhân có thể đên từ

sự phức tạp của dạng của đạo ham, từ viêc các điểm dữ liêu có số chiều lơn, hoặc từ

viêc có quá nhiều điểm dữ liêu.

Hương tiêp cân phổ biên nhất la xuất phát từ một điểm ma chúng ta coi la gần vơi

nghiêm của bai toán, sau đó dùng một phép toán lặp để tiên dần đên điểm cần tìm, tức

đên khi đạo ham gần vơi 0. Gradient Descent (viêt gọn la GD) va các biên thể của nó

la một trong những phương pháp được dùng nhiều nhất.

2.2 Giơi thiệu vê các thư viện hỗ trợ:

2.2.1 Thư viện Tensorflow

TensorFlow la một framework nguồn mở cho Machine Learning, đặc biêt la Deep

Learning, nó cung cấp đầy đủ các công cụ để xây dựng một thuât toán Machine

Page 14: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

Learning từ nhỏ bé cho đên cực lơn. Không những vây, đi kèm vơi TensorFlow còn có

một số công cụ vô cùng tuyêt vời:

TensorBoard: công cụ giúp minh họa các đồ thi tính toán (computational graph),

sự thay đổi giá tri của các ham tính toán (loss, accuracy,…) dươi dạng biểu đồ.

TensorFlow Serving: công cụ giúp triển khai các mô hình Machine Learning viêt

bằng TensorFlow thanh một sản phẩm thực sự.

Các API giúp cho viêc sử dụng TensorFlow dê dang hơn được phát triển bởi

những nha nghiên cứu về Machine Learning trên toan thê giơi (TensorFlow High

Level API, TF-Slim, TensorFlow Object Detection API)

2.2.2 Giơi thiệu vê Node.js

Nodejs la một nền tảng (Platform) phát triển độc lâp được xây dựng ở trên

Javascript Runtime của Chrome ma chúng ta có thể xây dựng được các ứng dụng

mạng một cách nhanh chóng va dê dang mở rộng.

Nodejs được xây dựng va phát triển từ năm 2009, bảo trợ bởi công ty Joyent, trụ

sở tại California, Hoa Kỳ.

Phần Core bên dươi của Nodejs được viêt hầu hêt bằng C++ nên cho tốc độ xử lý

va hiêu năng khá cao.

Nodejs tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gian thực.

Nodejs áp dụng cho các sản phẩm có lượng truy câp lơn, cần mở rộng nhanh, cần

đổi mơi công nghê, hoặc tạo ra các dự án Startup nhanh nhất có thể.

Những ứng dụng nên viết bằng Nodejs

Rõ rang, không phải cứ hot va mơi la Nodejs lam gì cũng tốt, ví dụ như một ứng

dụng cần tính ổn đinh cao, logic phức tạp thì các ngôn ngữ PHP hay Ruby… vẫn la sự

lựa chọn tốt hơn. Còn dươi đây la những ứng dụng có thể va nên viêt bằng Nodejs:

Websocket server: Các máy chủ web socket như la Online Chat, Game

Server…

Fast File Upload Client: la các chương trình upload file tốc độ cao.

Ad Server: Các máy chủ quảng cáo.

Cloud Services: Các dich vụ đám mây.

RESTful API: đây la những ứng dụng ma được sử dụng cho các ứng dụng

khác thông qua API.

Page 15: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

Any Real-time Data Application: bất kỳ một ứng dụng nao có yêu cầu về tốc độ

thời gian thực. Micro Services: Ý tưởng của micro services la chia nhỏ một ứng dụng

lơn thanh các dich vụ nhỏ va kêt nối chúng lại vơi nhau. Nodejs có thể lam tốt điều

nay.

Lý do để tự tin sử dụng Nodejs

Các ứng dụng Nodejs được viêt bằng javascript, ngôn ngữ nay la một ngôn ngữ

khá thông dụng. Theo tác giả của ngôn ngữ Javascript, Ryan Dahl: “Javascript có

những đặc tính ma lam cho nó rất khác biêt so vơi các ngôn ngữ lâp trình động còn lại,

cụ thể la nó không có khái niêm về đa luồng, tất cả la đơn luồng va hương sự kiên.”

Nodejs chạy đa nền tảng phía Server, sử dụng kiên trúc hương sự kiên Event-

driven, cơ chê non-blocking I/O lam cho nó nhẹ va hiêu quả.

Có thể chạy ứng dụng Nodejs ở bất kỳ đâu trên máy Mac – Window – Linux, hơn

nữa cộng đồng Nodejs rất lơn va hoan toan miên phí. Các bạn có thể thấy cộng đồng

Các ứng dụng NodeJS đáp ứng tốt thời gian thực va chạy đa nền tảng, đa thiêt bi.

2.2.3 Google Colab la gì?

Colaboratory hay còn gọi la Google Colab, la một sản phẩm từ Google Research,

nó cho phép chạy các dòng code python thông qua trình duyêt, đặc biêt phù hợp vơi

Data analysis, machine learning va giáo dục. Colab không cần yêu cầu cai đặt hay cấu

hình máy tính, mọi thứ có thể chạy thông qua trình duyêt, bạn có thể sử dụng tai

nguyên máy tính từ CPU tốc độ cao va cả GPUs va cả TPUs đều được cung cấp cho

bạn.

Colab cung cấp nhiều loại GPU, thường la Nvidia K80s, T4s, P4s and P100s, tuy

nhiên người dùng không thể chọn loại GPU trong Colab, GPU trong Colab thay đổi

theo thời gian. Vì la dich vụ miên phí, nên Colab sẽ có những thứ tự ưu tiên trong viêc

Page 16: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

sử dụng tai nguyên hê thống, cũng như giơi hạn thời gian sử dụng, thời gian sử dụng

tối đa lên tơi 12 giờ.

Ưu điểm:

Google Colab miên phí.

Cung cấp phần cứng mạnh cho viêc chạy thử code từ CPU, GPU đên TPU.

Dê dang sử dụng va truy câp, kêt nối lưu trữ trực tiêp trên Google Drive, Github

Sử dụng được nhiều thư viên phổ dụng danh cho DeepLearning như Keras,

TensorFlow, PyTorch, va OpenCV

Nhược điểm:

Thời gian sử dụng có giơi hạn, sau 12 giờ VM của colab bi reset.

Không thể tự lựa chọn cấu hình phần cứng, vơi account free.

Page 17: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

CHƯƠNG III: PHÂN TÍCH BAI TOAN

3.1 Mục tiêu

Xây dựng một model deep learning có khả năng phân loại tơi 39 chữ cái, số va kí tự

viêt tay khác nhau trên một tâp dữ liêu cho trươc.

3.2 Đao tạo mô hình deep learning phân loại chữ viết tay

3.2.1 Tổng quan vê tập dữ liệu huấn luyện

Tâp dữ liêu chứa tất cả các chữ cái tiêng Anh (nhỏ va viêt hoa), chữ số (0-9) va

một số ký tự đặc biêt (@, #, $, &)

Hình ảnh la hình ảnh đen trắng 32 x 32 pixel

Có tổng cộng 39 loại, 26 cho chữ cái (chữ cái nhỏ va chữ hoa được kêt hợp để

tạo ra một lơp duy nhất của mỗi ký tự), 9 loại chữ số (tức la từ 1 đên 9). để

tránh phân loại sai chữ số 0 được kêt hợp trong loại ký tự O va một số ký tự đặc

biêt (@, #, $, &).

Nguồn: https://www.kaggle.com/vaibhao/handwritten-characters

3.2.2 Xử lý hình ảnh đầu vao

Tăng cường dữ liêu huấn luyên

Tiên hanh tăng cường dữ liêu cho tâp huấn luyên bằng các phương pháp như

rescale, width shift, height shift.

Điều nay sẽ giúp mô hình phân loại hoạt động tốt hơn vơi các bức ảnh mô hình

chưa từng được học.

Thay đổi kích thươc của các bức ảnh trong tâp dữ liêu

Thay đổi kích thươc của tất cả bức ảnh trong tâp dữ liêu lam cho dữ liêu đồng

nhất, dê dang quyêt đinh được đầu vao va các layer của mô hình đao tạo.

Page 18: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

3.2.3 Xây dựng mô hình phân loại

Đinh nghia các layer của mô hình đao tạo

o Layer 1: La một lơp Convolutional 2D có 32 filter va kích thươc của mỗi

filter la 3x3, đầu vao của nó la một ảnh có kích thươc 32x32x3 va ham

kích hoạt la ReLU.

o Layer 2: La một lơp MaxPooling2D có tham số mặc đinh la 2x2 giúp

giảm kích thươc của bức ảnh đi một nửa, kích thươc hiên tại la

16x16x32.

o Layer 3: La một lơp Convolutional 2D có 64 filter va kích thươc của mỗi

filter la 3x3, ham kích hoạt la ReLU.

o Layer 4: La một lơp MaxPooling2D có tham số mặc đinh la 2x2 giúp

giảm kích thươc của bức ảnh đi một nửa, kích thươc hiên tại la 8x8x64.

o Layer 5: La một Flatten giúp duỗi thẳng bức ảnh ra thanh kích thươc

4096x1.

o Layer 6: La một lơp Dense layer gồm 256 param va ham kích hoạt la

ReLU

o Layer 7: La một lơp Dense layer gồm 39 param tương ứng vơi 39 loại kí

tự va ham kích hoạt la Softmax

3.3 Các bươc thực hiện

Import các thư viên cần thiêt

Page 19: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

Download dataset từ https://www.kaggle.com/vaibhao/handwritten-characters

va giải nén

Tạo các biên lưu vi trí của thư mục Train va Validation

Tạo các biên train_generator va valid_generator để đinh nghia các thuộc tính

nhằm tăng cường tâp dữ liêu huấn luyên

Tiên hanh nhâp dữ liêu từ các thư mục va tăng cường dữ liêu

Tạo mô hình huấn luyên

Page 20: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

Biên dich mô hình huấn luyên

Tiên hanh đao tạo

Chuyển đổi mô hình sang TensorFlow.js để thực hiên demo trên web

Page 21: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

CHƯƠNG IV: KÊT LUÂN CHUNG

4.1 Kết quả đạt được

Mô hình có khả năng phân loại tơi 39 chữ cái, số va kí tự viêt tay khác nhau từ

một hình ảnh được cung cấp bởi người dùng

Một số hình ảnh:

Page 22: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG
Page 23: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG
Page 24: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

4.2 Ưu điểm va nhược điểm của mô hình phân loại

Ưu điểm

o Có thể phân loại được 39 kí tự khác nhau

o Giao diên web dê sử dụng

o Tốc độ nhân diên nhanh

o Độ chính xác tương đối cao

Nhược điểm

o Do giơi hạn dữ liêu nên viêc nhân dạng chữ thường khá khó khăn

o Nhân diên sai sẽ trả ra kêt quả la @

o Hình ảnh được đưa vao để nhân diên phải la chữ trắng nền đen

Page 25: daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2021/01/1609926560-nguyenthin... · Web viewNguyễn Đức Hiển Đà Nẵng, tháng 11 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG

TAI LIÊU THAM KHAO1. https://www.tensorflow.org/tutorials/keras/classification

2. https://www.youtube.com/watch?v=98dZscH8b-0&feature=youtu.be

3. https://machinelearningmastery.com/how-to-develop-a-convolutional-neural-

network-from-scratch-for-mnist-handwritten-digit-classification/

4. https://xemtailieu.com/tai-lieu/nghien-cuu-mo-hinh-hoc-sau-deep-learning-va-

ung-dung-trong-nhan-dang-chu-viet-tay-1298083.html