1. Trang chủ
  2. » Giáo án - Bài giảng

Nghiên cứu áp dụng kỹ thuật học sâu (deep learning) cho bài toán nhận dạng ký tự latinh

57 858 6

Đ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

Định dạng
Số trang 57
Dung lượng 1,94 MB

Nội dung

Để có một cái nhìn trực quan hơn về phương pháp này, học viên xin trình bày luận văn: “Nghiên cứu áp dụng kỹ thuật học sâu deep learning cho bài toán nhận dạng ký tự Latinh”.. Máy học tậ

Trang 1

BỘ GIAO THÔNG VẬN TẢI BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM

Trang 2

BỘ GIAO THÔNG VẬN TẢI BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM

CN TRẦN QUYẾT CƯỜNG

NGHIÊN CỨU ÁP DỤNG KỸ THUẬT HỌC SÂU (DEEP LEARNING) CHO BÀI TOÁN NHẬN DẠNG

KÝ TỰ LATINH

LUẬN VĂN THẠC SĨ KỸ THUẬT

NGÀNH: CÔNG NGHỆ THÔNG TIN MÃ SỐ: 60480201 CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

Người hướng dẫn khoa học: TS Hồ Thị Hương Thơm

HẢI PHÒNG - 2016

Trang 3

i

LỜI CAM ĐOAN

Học viên xin cam đoan đây là công trình nghiên cứu của riêng mình dưới sự hướng dẫn khoa học của TS Hồ Thị Hương Thơm Các nội dung nghiên cứu, kết quả nêu trong luận văn là xác thực và chưa từng được công bố trong bất kỳ các công trình nào khác

Các thông tin sử dụng trong luận văn là có cơ sở và nguồn gốc rõ ràng Học viên xin hoàn toàn chịu trách nhiệm về tính xác thực và nguyên bản của luận văn

Hải Phòng, ngày tháng năm 2016

Trang 4

ii

LỜI CẢM ƠN

Trong quá trình hoàn thành luận văn, các thầy cô tại trường Đại học Hàng hải Việt Nam đã giúp đỡ và tạo điều kiện cho học viên rất nhiều Học viên xin gửi lời cảm ơn chân thành nhất đến các thầy cô khoa Công nghệ thông tin, Viện Đào tạo sau Đại học và đặc biệt là TS Hồ Thị Hương Thơm đã chỉ bảo, hướng dẫn học viên thực hiện đề tài: “Nghiên cứu áp dụng kỹ thuật học sâu (Deep Learning) cho bài toán nhận dạng ký tự Latinh”

Học viên muốn gửi lời cảm ơn sâu sắc đến gia đình, bạn bè đã động viên, giúp

đỡ trong suốt quá trình nghiên cứu, học tập và hoàn thiện đề tài

Bước đầu làm quen với công tác nghiên cứu khoa học còn nhiều bỡ ngỡ và hạn chế về kiến thức cũng như kinh nghiệm nên không tránh khỏi những thiếu sót nhất định Rất mong nhận được những góp ý của thầy, cô và các bạn để đề tài được hoàn thiện hơn

Xin chân thành cảm ơn!

Trang 5

iii

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

MỤC LỤC iii

DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU v

DANH MỤC CÁC BẢNG vi

DANH MỤC CÁC HÌNH vii

LỜI MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY VÀ NHẬN DẠNG 4

1.1 Học máy (Machine learning) 4

1.1.1 Khái niệm 4

1.1.2 Phân loại 5

1.2 Nhận da ̣ng 10

1.2.1 Nhận dạng 10

1.2.2 Nhận dạng ký tự quang học 11

CHƯƠNG 2: KỸ THUẬT HỌC SÂU CHO BÀI TOÁNNHẬN DẠNG KÝ TỰ LATINH 14

2.1 Mạng nơ-ron nhân tạo 14

2.1.1 Perceptron và sigmoid 14

2.1.2 Kiến trúc của mạng nơ-ron 17

2.1.3 Quá trình xử lý thông tin của một ANN 18

2.1.4 Quá trình học (Learning Processing) của ANN 20

2.1.5 Giao thức huấn luyện (Training protocols) 21

2.2 Mạng nơ-ron xoắn 22

2.2.1 Trường tiếp nhận cục bộ 23

Trang 6

iv

2.2.2 Trọng số chung và định hướng 25

2.2.3 Lớp tổng hợp 28

2.3 Áp dụng phương pháp học sâu vào nhận dạng ký tự Latinh 30

2.3.1 Cơ sở dữ liệu 30

2.3.2 Quá trình nhận dạng 30

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH, CÀI ĐẶT, THỬ NGHIỆM VÀ ĐÁNH GIÁ 37

3.1 Xây dựng chương trình 37

3.1.1 Yêu cầu phần cứng 37

3.1.2 Ngôn ngữ và công cụ lập trình 38

3.1.3 Chương trình demo 39

3.2 Thử nghiệm và đánh giá kết quả 43

3.2.1 Thử nghiệm 43

3.2.2 Đánh giá kết quả 45

KẾT LUẬN 47

TÀI LIỆU THAM KHẢO 48

Trang 7

v

DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU

Trang 9

vii

DANH MỤC CÁC HÌNH

1.1 Quá trình nhận dạng đối tượng của con người 11

2.6b Hàm tổng đối với nhiều nơ-ron trong cùng một lớp 19

2.8 Phân loại học dựa theo thuật toán và kiến trúc 21

Trang 10

1

LỜI MỞ ĐẦU

Nhận dạng ký tự được biết đến đầu thế kỷ XX và luôn được quan tâm phát triển cùng với tiến bộ của khoa học máy tính Từ ý tưởng ban đầu nhằm tạo ra công cụ hỗ trợ người khiếm thị, cho đến nay, nhận dạng ký tự đã ngày càng trở nên quan trọng vì nhiều lý do Ví như việc số hóa nhằm lưu trữ các tài liệu có niên đại cổ rất khó đọc do thời gian hay tác động của môi trường, hoặc chuyển những cuốn sách viết tay thành văn bản số… mà các chương trình nhận dạng có thể giúp con người tiết kiệm được rất nhiều công sức cũng như thời gian Ngoài ra, nhận dạng ký tự còn góp phần không nhỏ vào trong nhiều lĩnh vực của cuộc sống như: bảo mật và lưu trữ thông tin, ngân hàng…

Nhận dạng ký tự có thể được biết đến với hai mục tiêu chính: nhận dạng chữ in và nhận dạng chữ viết tay, trong đó, vấn đề nhận dạng chữ in đã được các chuyên gia giải quyết và đưa ra sản phẩm có thể nhận dạng nhiều loại ký tự của nhiều nước khác nhau Tại Việt Nam, nhiều nhà nghiên cứu cũng đã đưa ra các chương trình nhận dạng chữ Việt in dưới dạng tệp văn bản chứa hình ảnh với độ chính xác lên đến hơn 98% Có thể nói chúng ta đã giải quyết gần như trọn vẹn bài toán nhận dạng chữ in Tuy nhiên, nhận dạng chữ viết tay vẫn là một bài toán tương đối phức tạp đối với chúng ta bởi mỗi người có nét chữ khác nhau và biến đổi đa dạng tùy theo trạng thái của người viết Đôi khi chính người viết cũng không thể xác định được những chữ họ đã viết ra, vậy thì làm cách nào mà máy tính có thể “đọc” và đưa ra chính xác chữ viết tay của người nào đó để tất cả mọi người đều có thể hiểu được ý nghĩa chúng hiển thị? Việc tìm ra phương án giải quyết vấn đề này là động lực thúc đẩy các nhà nghiên cứu cho ra đời các kỹ thuật nhận dạng chữ viết tay khác nhau

Đã có nhiều bước tiến đáng kể trong lĩnh vực nhận dạng ký tự viết tay, trong

đó, phải kể đến các kỹ thuật nhận dạng kết hợp với các phương pháp luận trong lĩnh vực học máy (Machine Learning) Có nhiều cách tiếp cận để giải bài toán nhận dạng ký tự viết tay trong học máy như kỹ thuật mạng Nơ-ron, Support Vector

Trang 11

2

Machine (SVM), Markov… Mỗi cách tiếp cận có ưu điểm và khuyết điểm riêng với tỉ lệ thành công nhất định, trong đó, phương pháp học sâu (Deep learning) ngày càng trở nên nổi trội và có nhiều đóng góp không nhỏ trong lĩnh vực nhận dạng Để có một cái nhìn trực quan hơn về phương pháp này, học viên xin trình bày luận văn: “Nghiên cứu áp dụng kỹ thuật học sâu (deep learning) cho bài toán nhận dạng ký tự Latinh”

Mục tiêu của đề tài:

Mục tiêu của đề tài là nghiên cứu áp dụng kỹ thuật học sâu cho bài toán nhận dạng ký tự Latinh

Đối tượng và phạm vi nghiên cứu:

Đối tượng nghiên cứu của đề tài:

- Đầu vào 10 ký tự Latinh dạng số viết tay từ 0-9, dưới dạng tập cơ sở dữ liệu MNIST

- Kỹ thuật học sâu và phương pháp nhận dạng

Phạm vi nghiên cứu:

- Dựa trên lý thuyết về học sâu và nhận dạng để đưa ra phương pháp cụ thể nhận dạng ký tự Latinh dưới dạng tệp ảnh đầu vào

- Xây dựng chương trình thử nghiệm

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

Cơ sở lý thuyết: Nhận dạng ký tự Latinh bằng kỹ thuật học sâu, từ đó cài đặt thử nghiệm trên tập mẫu để có thể nhận xét, đánh giá phương pháp tìm hiểu được

Dự kiến kết quả đạt được:

Đưa ra kết quả nghiên cứu về mặt lý thuyết cơ sở của kỹ thuật học sâu trong nhận dạng ký tự Latinh Xây dựng được chương trình thử nghiệm và đánh giá dựa trên một tập học và tập test trong bộ dữ liệu MNIST, từ đó nêu ra một số vấn đề ứng dụng trong thực tế

Trang 12

3

Báo cáo toàn văn được trình bày trong 3 chương, cụ thể như sau:

Chương 1: Tổng quan về học máy và nhận dạng: Trình bày khái niệm,

các nội dung cơ bản của học máy và nhận dạng Các ứng dụng của học máy trong thực tế

Chương 2: Kỹ thuật học sâu cho bài toán nhận dạng ký tự Latinh:

Nghiên cứu cụ thể áp dụng kỹ thuật học sâu cho bài toán nhận dạng ký tự Latinh

Chương 3: Xây dựng chương trình, cài đặt, thử nghiệm và đánh giá:

Trên cơ sở lý thuyết đã trình bày ở chương 2, cài đặt chương trình demo, thử nghiệm và đánh giá kết quả

Trang 13

4

CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY VÀ NHẬN DẠNG

1.1 Học máy (Machine learning)

1.1.1 Khái niệm

Học máy (hay máy học) là một phần của khoa học máy tính đã dần được cải tiến từ các nghiên cứu về nhận dạng mẫu và trí tuệ nhân tạo Năm 1959, Arthur Samuel định nghĩa máy học như là một "lĩnh vực nghiên cứu cung cấp cho máy tính khả năng học mà không được lập trình một cách rõ ràng " Máy học tìm hiểu nghiên cứu và xây dựng các thuật toán có thể học hỏi và đưa ra dự đoán về dữ liệu Thuật toán này hoạt động bằng cách xây dựng một mô hình từ ví dụ đầu vào

để đưa ra dự đoán dựa trên dữ liệu hoặc quyết định Ta có thể hiểu:

Học máy là một lĩnh vực của trí thông minh nhân tạo (AI) cung cấp cho máy tính khả năng học hỏi mà không được lập trình một cách rõ ràng Máy học tập trung vào sự phát triển của các chương trình máy tính để có thể tự mình phát triển và thay đổi khi tiếp xúc với dữ liệu mới

Quá trình học máy cũng tương tự như khai thác dữ liệu Cả hai hệ thống đều thông qua dữ liệu để tìm kiếm các mẫu Tuy nhiên, thay vì giải nén dữ liệu để hiểu con người như các ứng dụng khai thác dữ liệu thì học máy sử dụng dữ liệu

đó để phát hiện các mẫu trong dữ liệu và điều chỉnh chương trình hành động phù hợp

Theo sự phát triển của khoa học, học máy được sinh ra trong quá trình khai phá trí tuệ nhân tạo Ngay trong những ngày đầu của ngành học trí tuệ nhân tạo, một số nhà nghiên cứu đã quan tâm đến việc máy học từ dữ liệu Họ cố gắng để tiếp cận vấn đề với những phương pháp khác nhau, dẫn đến sự ra đời và phát triển của mạng nơ-ron Tuy nhiên, việc chú trọng hơn vào các phương pháp tiếp cận dựa trên logic gây ra sự ngăn cách giữa AI và học máy

Học máy được tổ chức lại thành một lĩnh vực riêng biệt và bắt đầu phát triển mạnh những năm 1990 Các lĩnh vực thay đổi mục tiêu của mình từ việc đạt

Trang 14

5

được trí thông minh nhân tạo thành giải quyết các vấn đề có tính chất thực tế Chuyển trọng tâm từ cách tiếp cận mang tính biểu tượng thừa hưởng từ trí tuệ nhân tạo, và hướng tới các phương pháp, mô hình từ thống kê và lý thuyết xác suất

Máy học, khai thác dữ liệu thường sử dụng cùng phương pháp và lồng ghép lên nhau Có thể chia thành các giai đoạn như sau:

 Máy học tập trung vào dự đoán, dựa trên dữ liệu học được từ dữ liệu huấn luyện

 Khai thác dữ liệu tập trung vào việc phát hiện thuộc tính chưa biết trước trong dữ liệu Đây là bước phân tích kiến thức, khai phá trong cơ sở dữ liệu

 Máy học và khai thác dữ liệu được lồng ghép lên nhau theo cách: khai thác dữ liệu sử dụng nhiều phương pháp học máy, nhưng mỗi phương pháp thường có mục đích khác nhau Mặt khác, học máy cũng sử dụng phương pháp khai thác dữ liệu là "học không giám sát" như là một bước tiền xử lý để cải thiện

độ chính xác của việc học

Học máy cũng có quan hệ mật thiết với tối ưu hóa: nhiều vấn đề học được xây dựng nhằm giảm thiểu một số chức năng bị mất trên một tập huấn luyện Chức năng mất thể hiện sự khác biệt giữa các tiên đoán của mô hình được đào tạo và những trường hợp thực tế Sự khác biệt giữa hai trường phát sinh từ mục tiêu tổng quát Trong khi các thuật toán tối ưu hóa có thể giảm thiểu sai số trên một tập huấn luyện thì học máy liên quan với việc giảm thiểu sự mất mát trên các mẫu ẩn

1.1.2 Phân loại

Có nhiều phương pháp học máy khác nhau, trong đó phải kể đến một số loại phương pháp học phổ biến nhất là học không giám sát, học bán giám sát, học giám sát, học tăng cường và học sâu

1.1.2.1 Học không giám sát (Unsupervised Learning)

* Khái niệm học không giám sát

Học không giám sát là một loại thuật toán học máy sử dụng để suy luận từ các tập dữ liệu bao gồm các dữ liệu đầu vào mà không được dán nhãn

Trang 15

6

Phương pháp học không giám sát phổ biến nhất là phân cụm, được sử dụng

để phân tích dữ liệu thăm dò tìm ra các khuôn mẫu ẩn hoặc nhóm trong dữ liệu Các cụm được mô phỏng bằng biện pháp tương tự như việc xác định theo số liệu Euclide hay khoảng cách xác suất

* Một số thuật toán học không giám sát

 Phân cụm cấu trúc: xây dựng một hệ thống đa phân cụm bằng cách tạo ra một cây phân cụm

 Phân cụm k-Means: phân vùng dữ liệu vào k cụm khác nhau dựa trên khoảng cách với trọng tâm của từng cụm

 Mô hình hỗn hợp Gaussian: mô hình cụm như một hỗn hợp của các thành phần mật độ bình thường đa biến

 Ánh xạ tự tổ chức: sử dụng mạng nơ-ron học và phân phối dữ liệu

 Mô hình Markov ẩn: sử dụng quan sát dữ liệu để khôi phục lại trình tự của các trạng thái

Phương pháp học không giám sát được sử dụng trong sinh học để phân tích trình tự và phân nhóm di truyền; trong khai thác dữ liệu dùng để phân tích trình

tự và khai thác mô hình; trong y tế dùng cho phân vùng ảnh; và trong thị giác máy tính được dùng để nhận dạng đối tượng

1.1.2.2 Học bán giám sát (Semi-Supervised Learning)

* Khái niệm học bán giám sát

Học bán giám sát là sự kết hợp giữa một lớp các tác vụ giám sát việc học

và kỹ thuật đào tạo sử dụng dữ liệu không dán nhãn - thường là một lượng nhỏ dữ liệu được dán nhãn cùng với một số lượng lớn các dữ liệu không có nhãn Học bán giám sát là sự kết hợp giữa học không giám sát và học có giám sát

Nhiều nhà nghiên cứu học máy đã tìm thấy rằng dữ liệu không có nhãn, khi được sử dụng kết hợp với một lượng nhỏ dữ liệu có nhãn có thể cải thiện đáng kể

sự chính xác khi học

* Một số thuật toán học bán giám sát

Trang 16

7

Một số thuật toán bán giám sát thường dùng:

Thuật toán Cực đại kỳ vọng (EM), SVM truyền dẫn (TSVM), Co-training, Self-training, và các phương pháp dựa trên đồ thị (graph-based)

1.1.2.3 Học giám sát (Supervised Learning)

* Khái niệm học có giám sát:

Học có giám sát suy luận một chức năng từ dữ liệu huấn luyện được dán nhãn Dữ liệu đào tạo bao gồm một tập các ví dụ huấn luyện Học có giám sát thường dùng cho các bài toán phân lớp

Trong học có giám sát, mỗi ví dụ là một cặp bao gồm một đối tượng đầu vào (thường là một vector) và một giá trị đầu ra mong muốn (còn gọi là các tín hiệu giám sát) Thuật toán học có giám sát phân tích các dữ liệu đào tạo và suy diễn ra chức năng, có thể được sử dụng để lập bản đồ ví dụ mới Một kịch bản tối

ưu sẽ cho phép các thuật toán xác định chính xác các nhãn lớp cho các trường hợp không nhìn thấy Điều này đòi hỏi các thuật toán học để khái quát từ dữ liệu huấn luyện cho những tình huống vô hình một cách hợp lý

* Một số thuật toán học có giám sát:

Một số thuật toán học có giám sát thường dùng khi phân lớp: lan truyền ngược, k láng giềng gần nhất (KNN); máy vector hỗ trợ (SVM); cây quyết định (DT);tiếp cận xác suất thống kê (NB); dựa trên vector trọng tâm (Centroid–base vector); mạng nơron (Nnet) hay tuyến tính bình phương nhỏ nhất (LLSF)

1.1.2.4 Học tăng cường (Reinforcement Learning)

* Khái niệm học tăng cường:

Học tăng cường là một loại của học máy và cũng là một nhánh của trí tuệ nhân tạo Nó cho phép máy và tác tử phần mềm tự động xác định các hành vi lý tưởng trong một bối cảnh cụ thể, để tối đa hóa hiệu quả của nó

Học tăng cường được xác định không phải bằng cách mô tả phương pháp học mà bằng cách mô tả vấn đề học Bất kỳ phương pháp phù hợp để giải quyết vấn đề đều được coi là một phương pháp học tăng cường

* Một số thuật toán học tăng cường:

Trang 17

8

Sau khi đã định nghĩa hàm trả về thích hợp cần được cực đại hóa, ta cần chỉ

rõ thuật toán sẽ được sử dụng để thu được kết quả trả về cao nhất Có hai cách tiếp cận chính, cách tiếp cận hàm giá trị và cách tiếp cận trực tiếp Ngoài ra, còn một số phương pháp khác để tìm chiến lược tối ưu là tìm trong không gian chiến lược, hoặc Q-learning, Temporal difference learning [2]

1.1.2.5 Học sâu (Deep learning)

* Khái niệm học sâu:

Học sâu là một nhánh của lĩnh vực học máy, dựa trên một tập hợp các thuật toán nhằm cố gắng mô hình dữ liệu trừu tượng hóa ở mức cao bằng cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp, hoặc bao gồm nhiều biến đổi phi tuyến

Có một số cách để mô tả học sâu Học sâu là một lớp của các thuật toán máy học mà:

 Sử dụng một tầng (cascade) nhiều lớp các đơn vị xử lý phi tuyến để trích trọn đặc trưng và chuyển đổi Mỗi lớp kế tiếp dùng đầu ra từ lớp trước làm đầu vào Thuật toán này có thể được giám sát hoặc không cần giám sát và được ứng dụng cho các mô hình phân tích (không có giám sát) và phân loại (giám sát)

 Dựa trên học (không có giám sát) của nhiều cấp các đặc trưng hoặc đại diện của dữ liệu Các tính năng cao cấp bắt nguồn từ các tính năng thấp cấp hơn để tạo thành một đại diện thứ bậc

 Là một phần của lĩnh vực máy học và rộng lớn hơn về việc học đại diện dữ liệu

 Học nhiều cấp độ đại diện tương ứng với các mức độ trừu tượng khác nhau; các mức độ hình thành một hệ thống phân cấp của các khái niệm

* Nội dung cơ bản của phương pháp ho ̣c sâu:

Các lớp được sử dụng trong học sâu bao gồm các lớp ẩn của một mạng ron nhân tạo và tập các công thức mệnh đề phức tạp Chúng cũng có thể bao gồm các biến tiềm ẩn được tổ chức thành các lớp chọn lọc trong các mô hình thể sinh (có khả năng sinh ra) sâu như các nút trong Deep Belief Networks và Deep Boltzmann Machines

Trang 18

nơ-9

Các thuật toán học sâu tương phản với các thuật toán học nông bởi số biến đổi được tham số hóa một tín hiệu gặp phải khi nó lan truyền từ các lớp đầu vào đến lớp đầu ra, nơi một biến đổi được tham số hóa là một đơn vị xử lý có các thông số có thể huấn luyện được, chẳng hạn như trọng số và ngưỡng Một chuỗi các biến đổi từ đầu vào đến đầu ra là một đường gán kế thừa (CAP- credit assignment path) CAP mô tả các kết nối quan hệ nhân quả tiềm năng giữa đầu vào và đầu ra và có thể thay đổi chiều dài Về cơ bản, học sâu khác với học nông

ở chỗ nó sử dụng nhiều lớp ẩn thay vì chỉ một lớp ẩn như học nông, bên cạnh đó, học sâu còn cần truyền tín hiệu giữa các lớp ẩn qua thuật toán lan truyền

Các thuật toán học sâu dựa trên các đại diện phân tán Giả định tiềm ẩn đằng sau các đại diện phân tán là các dữ liệu được tạo ra bởi sự tương tác của các yếu tố được tổ chức theo lớp Học sâu thêm giả định rằng các lớp của các yếu tố này tương ứng với các mức độ trừu tượng hay theo thành phần Các con số khác nhau của các lớp và kích thước của lớp có thể được sử dụng để quy định các lượng trừu tượng khác nhau

Học sâu khai thác ý tưởng thứ bậc các yếu tố được tổ chức theo lớp ở cấp cao hơn, những khái niệm trừu tượng cao được học từ các cấp độ thấp hơn Những kiến trúc học sâu này thường được xây dựng với phương pháp lớp chồng lớp tham lam Học sâu giúp tháo gỡ những khái niệm trừu tượng và chọn ra những đặc trưng cần thiết cho việc học

Đối với học có giám sát, phương pháp học sâu sẽ tránh kỹ thuật đặc trưng (feature engineering), bằng cách ánh xạ các dữ liệu vào các đại diện trung gian nhỏ gọn, và lấy được các cấu trúc lớp mà loại bỏ sự dư thừa trong đại diện

Rất nhiều thuật toán học sâu được áp dụng cho học không có giám sát Đây

là yếu tố quan trọng bởi vì dữ liệu không dán nhãn (chưa phân loại) thường phong phú hơn các dữ liệu dán nhãn

* Một số thuâ ̣t toán ho ̣c sâu:

Có nhiều biến thể của kiến trúc ho ̣c sâu đươ ̣c sinh ra từ mô ̣t kiến trúc cha ban đầu Vì ho ̣c sâu có nhiều thuâ ̣t toán khác nhau nên nó phát triển rất nhanh,

Trang 19

10

nhiều biến thể và thuâ ̣t toán mới ra đời liên tu ̣c trong thời gian ngắn, có thể kể đến

một số thuâ ̣t toán như: Ma ̣ng nơ-ron sâu (DNN - Deep Nơ-ron Network), ma ̣ng niềm tin sâu (Deep Belief Network), mạng nơ-ron châ ̣p, ma ̣ng lâ ̣p trình sâu, các

mạng bô ̣ nhớ…

Hiện nay, phương pháp ho ̣c sâu được các nhà nghiên cứu đánh giá rất cao

và đươ ̣c áp du ̣ng vào rất nhiều lĩnh vực đă ̣c biê ̣t là lĩnh vực nhâ ̣n da ̣ng

Dạng được chia thành các loại khác nhau dựa theo tiêu thức và thủ tục được

sử dụng để phân loại

Theo tính chất của đối tượng, dạng được chia thành ba loai: dạng hệ thống nhiều

người, dạng không có con người, và dạng một người

Theo tính chất vật lý, dạng chia thành dạng vật và dạng người

Theo công cụ nhận dạng, dạng chia thành: dạng nhận theo ngôn ngữ tắt mở, và

dạng nhận theo ngôn ngữ khác

b Nhận dạng

Nhận dạng là quá trình nhận biết một phần tử nào đó của đối tượng phải nghiên cứu thuộc vào một dạng cho trước, từ đó rút ra các thuộc tính vốn có của

nó để đưa ra các phương thức xử lý đối tượng

Trong hình 1.1 dưới đây chỉ ra rằng:

- Trước một đối tượng chưa biết, con người cần vận dụng tất cả tri thức liên quan để hiểu biết khái quát về đối tượng Hay còn gọi là quá trình tổng hợp sơ lược về đối tượng

Trang 20

11

Hình 1.1: Quá trình nhận dạng đối tượng của con người

- Tiếp đó, cần phân tích những đặc điểm, thuộc tính của đối tượng và mối quan hệ giữa chúng làm sâu sắc hơn quá trình nhận thức Đây là quá trình nhận thức mang tính chất trực quan, sinh động nhằm tìm ra những thuộc tính riêng lẻ của đối tượng Quá trình mà con người đưa ra các giả thiết để nhận thức đối tượng sâu sắc hơn là quá trình nhận thức theo giả thiết

- Cuối cùng là quá trình tổng hợp chung, đây là quá trình nhận thức sâu sắc nhất; ở đây sẽ có sự đối chiếu, so sánh để khái quát hóa nhiều thuộc tính riêng lẻ của đối tượng cần nghiên cứu thành các thuộc tính chung mang tính bản chất, tính quy luật của cả một nhóm các đối tượng cùng loại Đây là quá trình tư duy trừu tượng của con người mà kết quả cuối cùng là sự hiểu biết bản chất của đối tượng

cho dưới hình thức dạng một cách tư duy thường thấy của con người [1]

Các nhà nghiên cứu dựa trên quá trình nhận dạng của con người tạo ra kỹ thuật giúp máy tính có khả năng nhận dạng, điển hình là nhận dạng ký tự quang học

1.2.2 Nhận dạng ký tự quang học

Nhận dạng ký tự quang học (OCR), là loại phần mềm máy tính được tạo ra

để chuyển các hình ảnh của chữ viết tay hoặc chữ đánh máy thành các văn bản tài liệu OCR được hình thành từ một lĩnh vực nghiên cứu về nhận dạng mẫu, trí tuệ nhận tạo và thị giác máy tính Mặc dù công việc nghiên cứu học thuật vẫn tiếp tục

Đối tượng Chưa biết Tổng hợp sơ lược

Phân tích Giả thiết

Tổng hợp

Trang 21

Ba nguyên tắc cơ bản của OCR là tính toàn vẹn, tính mục đích và khả năng thích ứng (IPA) Những nguyên tắc này tạo thành cốt lõi của các phần mềm nhận dạng ký tự hiện nay

Các chương trình OCR thường hoạt động như sau:

Đầu tiên, chương trình phân tích cấu trúc của tài liệu hình ảnh Nó chia trang thành các yếu tố như khối văn bản, bảng biểu, hình ảnh,…Các dòng được chia thành các từ và sau đó là các ký tự Một khi các ký tự đã được chỉ ra, chương trình so sánh chúng với một tập các hình ảnh mẫu Nó đưa ra rất nhiều giả thuyết

về ký tự Dựa trên những giả thuyết các chương trình phân tích các biến thể khác nhau của sự chia tách dòng thành từ và từ thành ký tự Sau khi xử lý số lượng lớn các giả thuyết xác suất như vậy, chương trình sẽ đưa ra kết quả nhận dạng dưới dạng văn bản điện tử Ngoài ra, đa số phần mềm OCR cung cấp từ điển hỗ trợ nhiều loại ngôn ngữ khác nhau Điều này cho phép phân tích thứ cấp các yếu tố văn bản với mức độ từng từ Với sự hỗ trợ của từ điển, các chương trình đảm bảo phân tích chính xác hơn để nhận dạng các văn bản và đơn giản hóa quá trình xác minh kết quả nhận dạng

Các hệ thống nhận dạng ký tự quang học tiên tiến nhất, như ABBYY FineReader OCR, đang tập trung vào tái tạo tự nhiên hoặc nhận dạng loài động vật Cốt lõi của các hệ thống này luôn tuân theo ba nguyên tắc cơ bản IPA Nguyên tắc toàn vẹn nghĩa là đối tượng quan sát phải luôn luôn được coi là một "toàn bộ" bao gồm nhiều bộ phận liên quan đến nhau Nguyên tắc mục đích giả định rằng bất kỳ giải thích các dữ liệu phải luôn luôn phục vụ mục đích rõ ràng Và nguyên tắc về khả năng thích ứng có nghĩa là chương trình phải có khả năng tự học

Trang 22

13

Với mức chính xác từ 80% đến 90%, những ký tự viết tay sạch đẹp có thể được nhận ra, nhưng với độ chính xác đó vẫn tạo ra hàng chục lỗi mỗi trang, khiến cho công nghệ đó chỉ hiệu quả trong vài trường hợp nào đó Sự đa dạng của OCR hiện nay được biết đến trong công nghiệp là Nhận dạng ký tự thông minh (ICR)

Nhận dạng chữ viết tay là một lĩnh vực nghiên cứu sôi nổi Hầu như không thể nâng cao tỉ lệ nhận dạng chữ viết tay nếu không sử dụng thông tin về ngữ pháp

và văn cảnh Ví dụ như nhận dạng cả một chữ từ một cuốn từ điển thì dễ hơn là việc cố gắng lấy ra những ký tự rời rạc từ chữ đó Nếu có kiến thức về ngữ pháp của một ngôn ngữ được scan cũng có thể giúp xác định một từ có thể là động từ hay danh từ, như vậy, sẽ cho phép độ chính xác cao hơn Chỉ dựa vào hình dạng của ký tự thì không đủ thông tin để nhận dạng chính xác chữ viết tay [8]

Ngoài vấn đề về ngữ cảnh thì việc chữ viết tay đôi khi rất khó đọc do cách viết của mỗi người, hoặc một số văn bản viết tay bị nhòe hoặc mờ đi theo thời gian khiến chúng ta rất khó phân biệt cũng là thách thức cho các nhà nghiên cứu

Giải pháp hàng đầu trong lĩnh vực nhận dạng ký tự hiện nay đó là học máy Mỗi phương pháp học trong học máy có những ưu điểm và khuyết điểm nhất định nhưng được quan tâm phát triển hơn cả chính là phương pháp học sâu Sử dụng học sâu để nhận dạng ký tự, cụ thể là ký tự Latinh như thế nào? Chúng ta sẽ cùng tìm hiểu chi tiết hơn trong chương tiếp theo

Trang 23

2.1 Mạng nơ-ron nhân tạo

Mạng nơ-ron nhân tạo (còn gọi là mạng nơ-ron) là một mô hình toán học hay mô hình tính toán được xây dựng dựa trên các mạng nơ-ron sinh học Nó gồm

có một nhóm các nơ-ron nhân tạo (nút) nối với nhau, và xử lý thông tin bằng cách truyền theo các kết nối và tính giá trị mới tại các nút Để hiểu rõ hơn mạng nơ-ron nhân tạo, chúng ta cần tìm hiểu hai loại nơ-ron nhân tạo là perceptron và sigmoid

2.1.1 Perceptron và sigmoid

2.1.1.1 Perceptron

Perceptron được phát triển vào những năm 1950 và 1960 bởi nhà khoa học Frank Rosenblatt Ngày nay, nó phổ biến trong nhiều mô hình mạng nơ-ron khác nhau

Một perceptron có một số đầu vào (input) nhị phân, x1, x2, , và tạo ra một đầu ra (output) nhị phân duy nhất:

Hình 2.1: Một perceptron với ba đầu vào [4]

Trong hình 2.1, perceptron có ba đầu vào, x1, x2, x3 Cũng có thể có nhiều hơn hoặc ít hơn số đầu vào Rosenblatt đề xuất một quy tắc đơn giản để tính toán

Trang 24

15

đầu ra Các trọng số w1, w2, là các số thực thể hiện tầm quan trọng của các yếu

tố đầu vào tương ứng với đầu ra Các nơ-ron đầu ra 00 hoặc 11, được xác định bởi tổng Σjwjxj là nhỏ hơn hoặc lớn hơn so với một vài giá trị ngưỡng (threshold) Cũng giống như các trọng số, ngưỡng là số thực và là tham số của nơ-ron Khi đó đầu ra được tính như sau:

mô hình ra quyết định tối ưu, do đó ta có một mạng lưới kết hợp nhiều perceptron

để có thể đưa ra quyết định chính xác hơn:

Hình 2.2: Mạng nơ-ron gồm nhiều perceptron Trong hình 2.2, cột đầu tiên hay còn gọi là lớp đầu tiên của perceptron có thể đưa ra ba quyết định từ đầu vào Còn trong lớp perceptron thứ hai, mỗi perceptron được quyết định bởi trọng số lên các đầu ra từ lớp đầu tiên Perceptron trong lớp thứ hai có thể đưa ra quyết định ở mức độ phức tạp và trừu tượng hơn perceptron trong lớp đầu tiên Và thậm chí quyết định phức tạp hơn có thể được thực hiện bởi các perceptron trong lớp thứ ba, thứ tư Bằng cách này, một mạng lưới nhiều lớp của perceptron có thể tham gia vào việc ra quyết định phức tạp

Khi xác định perceptron ta hiểu rằng một perceptron chỉ có một đầu ra duy nhất Trong mạng trên perceptron trông giống như có nhiều đầu ra nhưng thực ra chúng chỉ có một đầu ra Việc nhiều mũi tên đầu ra chỉ là một cách hữu hiệu cho

(2.1)

Trang 25

vô cùng khó khăn đối với mạch thông thường

là điều rất quan trọng cho phép một mạng lưới các nơ-ron sigmoid có thể học

Cũng giống như perceptron, các nơ-ron sigmoid có đầu vào, x1, x2, Nhưng thay vì chỉ 00 hoặc 11, các đầu vào có thể đưa vào bất cứ giá trị nào giữa 00 và

11 Ví dụ, 0,638 là một đầu vào có giá trị trong một nơ-ron sigmoid Các nơ-ron sigmoid cũng có trọng số cho mỗi đầu vào là w1, w2 …và định hướng b Nhưng

đầu ra không phải là 00 hoặc 11 Thay vào đó, đầu ra là σ(wx + b), trong đó σ

được gọi là hàm sigmoid và được xác định bằng:

σ(z) ≡ 1 1

1 e  Một nơ-ron sigmoid với đầu vào x1, x2, trọng số w1, w2 thì khi đó định

Trang 26

mới có nhiều sai lệch so với perceptron

2.1.2 Kiến trúc của mạng nơ-ron

Giả sử chúng ta có một mạng như hình 2.3:

Hình 2.3: Mạng nơ-ron một lớp ẩn Đây là mạng nơ-ron đơn giản với một lớp ẩn, lớp ngoài cùng bên trái trong mạng này được gọi là lớp đầu vào, và các nơ-ron trong lớp này được gọi là nơ-ron đầu vào Lớp ngoài cùng bên phải hoặc đầu ra chứa các nơ-ron đầu ra, như trong trường hợp này chỉ có một nơron đầu ra duy nhất Lớp giữa được gọi là lớp

ẩn, các nơ-ron trong lớp này không phải đầu vào cũng không đầu ra Mạng trên

có một lớp ẩn duy nhất, nhưng một số mạng có nhiều lớp ẩn Ví dụ, mạng bốn lớp trong hình 2.4 có hai lớp ẩn:

Trang 27

18

Hình 2.4: Mạng nơ-ron hai lớp ẩn [4]

Trong khi việc thiết lập lớp đầu vào và đầu ra của một mạng nơ-ron thường đơn giản, thì việc tạo các lớp ẩn thường mất nhiều thời gian và công sức Do đó, các nhà nghiên cứu mạng nơ-ron đã phát triển nhiều công nghệ tự động thiết kế cho các lớp ẩn, giúp mọi người có được những đầu ra theo hướng mình mong muốn Điều này có thể được sử dụng để cân bằng số lớp ẩn với thời gian cần thiết

để đào tạo mạng

2.1.3 Quá trình xử lý thông tin của một ANN

Hình 2.5: Quá trình xử lý thông tin của ANN [6]

Inputs: Mỗi Input tương ứng với 1 thuộc tính của dữ liệu

Output: Kết quả của một ANN là một giải pháp cho một vấn đề cụ thể Connection Weights (Trọng số liên kết) : Đây là thành phần rất quan trọng của một ANN, nó thể hiện mức độ quan trọng của dữ liệu đầu vào đối với quá trình xử lý thông tin (quá trình chuyển đổi dữ liệu từ lớp này sang lớp khác) Quá

Trang 28

19

trình học (Learning Processing) của ANN thực ra là quá trình điều chỉnh các trọng

số (Weights) của các dữ liệu đầu vào để có được kết quả mong muốn [6]

Summation Function (Hàm tổng): Tính tổng trọng số của tất cả phần tử xử

lý PE Hàm tổng của một nơ-ron đối với n đầu vào được tính theo công thức sau:

nơ-ra một đầu nơ-ra hoặc không sinh nơ-ra đầu nơ-ra nào trong ANN (nói cách khác rằng đầu

ra của một nơ-ron có thể được chuyển đến lớp tiếp theo trong mạng nơ-ron hoặc không) Mối quan hệ giữa nội kích hoạt và kết quả được thể hiện bằng hàm chuyển đổi (Transfer Function)

(2.4)

(2.5)

Ngày đăng: 14/10/2017, 16:18

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] GS. TS. Đỗ Hoàng Toàn (2006), Giáo trình lý thuyết nhận dạng ứng dụng trong quản lý, NXB Khoa học và Kỹ thuật, tr5-10 Sách, tạp chí
Tiêu đề: Giáo trình lý thuyết nhận dạng ứng dụng trong quản lý
Tác giả: GS. TS. Đỗ Hoàng Toàn
Nhà XB: NXB Khoa học và Kỹ thuật
Năm: 2006
[2] Th.S Nguyễn Thị Thuận (2006), Phương pháp học tăng cường, Hà Nội, tr26- 30 Sách, tạp chí
Tiêu đề: Phương pháp học tăng cường
Tác giả: Th.S Nguyễn Thị Thuận
Năm: 2006
[3] Chirag I Patel, Ripal Patel, Palak Patel (2011), Handwritten Character Recognition Using Neural Network, International Journal of Scientific &Engineering Research Volume 2, Issue 5 Sách, tạp chí
Tiêu đề: Handwritten Character Recognition Using Neural Network
Tác giả: Chirag I Patel, Ripal Patel, Palak Patel
Năm: 2011
[4] Michael A. Nielsen (2013), Neural Networks And Deep Learning, Determination Press Sách, tạp chí
Tiêu đề: Neural Networks And Deep Learning
Tác giả: Michael A. Nielsen
Năm: 2013
[5] Irwin Sobel (2014), History and Definition of the Sobel Operator Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w