1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng kỹ thuật học sâu nhận dạng tiền trong các hệ thống giao dịch tự động

87 35 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

Định dạng
Số trang 87
Dung lượng 8,15 MB

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

Nội dung

Ngày nay công nghệ tiên tiến đã đóng một nhiệm vụ quan trọng việc nhận dạng tiền tệ thật trong các nền kinh tế Một giải pháp hiệu quả để phát hiện và nhận dạng tiền giấy là điều quan trọng trong các giao dịch tự động Luận văn này đề xuất một cách tiếp cận để nhận dạng tiền giấy dựa trên xử lý ảnh cơ bản dùng mạng học sâu để trích xuất và nhận dạng đặc trưng Kỹ thuật mạng neural sâu như là một nghệ thuật nhận dạng trong xử lý hình ảnh Các kỹ thuật truyền thống thường có chi phí cao để xử lý số liệu hình ảnh của tiền tệ khi nhận dạng nhiều mệnh giá của tiền Luận văn này tập trung vào nhận dạng đúng tiền thật dựa trên hình thức của tờ tiền Phương pháp đề xuất có thể áp dụng để nhận biết nhiều loại mệnh giá cũng như các loại tiền tệ khác nhau Sự đóng góp của nghiên cứu là phương pháp tiếp cận mới dựa trên mạng neural sâu và tăng cường dữ liệu để cải thiện độ chính xác Thứ nhất mạng neural sâu được xây dựng có kiến trúc mạng sử dụng một số inceptions khác nhau cùng với toán tử tích chập nhằm giảm thời gian huấn luyện Thứ hai tăng cường hình ảnh của tập dữ liệu đào tạo để có một dữ liệu lớn hơn đủ cho việc học của mạng neural sâu Phương pháp này nhằm mục đích giải quyết vấn đề dữ liệu nhỏ và tăng cường khả năng học sâu Kết quả thử nghiệm phương pháp được đề xuất có thể áp dụng cho ứng dụng thực tế với hiệu suất có tỷ lệ chính xác 97 85

Trang 1

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

Người hướng dẫn khoa học: TS HOÀNG VĂN DŨNG

Đà Nẵng - Năm 2018

Trang 2

LỜI CAM ĐOAN

Tôi xin cam đoan:

Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của TS Hoàng Văn Dũng

Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố

Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm

Tác giả

Võ Hoàng Thành

Trang 3

MỤC LỤC

TRANG BÌA

LỜI CAM ĐOAN

MỤC LỤC

TRANG TÓM TẮT LUẬN VĂN

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

DANH MỤC CÁC BẢNG

DANH MỤC CÁC HÌNH

MỞ ĐẦU 1

1 Lý do chọn đề tài 1

2 Mục đích và ý nghĩa đề tài 2

3 Mục tiêu và nhiệm vụ 2

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

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

6 Cấu trúc của luận văn 3

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 5

1.1 TỔNG QUAN VỀ XỬ LÝ ẢNH 5

1.1.1 Các khái niệm về ảnh số, điểm ảnh, màu sắc 5

1.1.2 Các dạng ảnh 6

1.1.3 Các thành phần trong hệ thống xử lý ảnh 7

1.2 CƠ BẢN VỀ HỌC MÁY 8

1.2.1 Khái niệm học máy 8

1.2.2 Phân loại phương pháp học máy 8

1.2.3 Ứng dụng của học máy 9

1.3 MỘT SỐ PHƯƠNG PHÁP HỌC MÁY TRUYỀN THỐNG 9

1.3.1 Mạng neural 9

1.3.2 Máy vector hỗ trợ (SVM) 13

1.4 KỸ THUẬT HỌC SÂU 19

1.4.1 Tổng quan về học sâu 19

1.4.2 Mạng neural sâu 20

1.4.3 Mạng neural tích chập (CNN) 21

CHƯƠNG 2: MẠNG NEURAL TÍCH CHẬP TRONG NHẬN DẠNG TIỀN GIẤY 28 2.1 MỘT SỐ MẠNG NEURAL TÍCH CHẬP ĐIỂN HÌNH TRONG NHẬN DẠNG ĐỐI TƯỢNG 28

2.1.1 Mạng LeNet 28

Trang 4

2.1.2 Mạng AlexNet 29

2.1.3 Mạng ZFNet 31

2.1.4 Mạng GoogLeNet 32

2.1.5 Mạng VGGNet 33

2.2 MÔ TẢ BÀI TOÁN NHẬN DẠNG TIỀN GIẤY 35

2.3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 37

2.3.1 Phân tích tổng quan hệ thống 37

2.3.2 Phân tích chức năng của hệ thống 37

2.3.3 Sơ đồ giải pháp nhận dạng tiền giấy 38

2.3.4 Thiết kế mạng neural sâu trong bài toán nhận dạng tiền giấy 39

CHƯƠNG 3: THỰC NGHIỆM, ĐÁNH GIÁ KẾT QUẢ 45

3.1 CÀI ĐẶT CHƯƠNG TRÌNH 45

3.1.1 Môi trường và công cụ lập trình 45

3.1.2 Thiết lập các lớp của mạng DNN trong matlab 46

3.2 CƠ SỞ DỮ LIỆU THỰC NGHIỆM 48

3.2.1 Nguồn dữ liệu và mô tả 48

3.2.2 Tăng cường dữ liệu 51

3.3 QUÁ TRÌNH HUẤN LUYỆN 51

3.4 KẾT QUẢ THỰC NGHIỆM 53

3.5 CHƯƠNG TRÌNH MINH HỌA KẾT QUẢ KIỂM TRA 59

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 63

TÀI LIỆU THAM KHẢO 64

ẾT Đ NH GIAO ĐỀ TÀI ẬN VĂN THẠC SĨ (BẢN SAO)

BẢN SAO KẾT LUẬN CỦA HỘI ĐỒNG, BẢN SAO NHẬN XÉT CỦA CÁC PHẢN BIỆN

Trang 5

TRANG TÓM TẮT LUẬN VĂN

ỨNG DỤNG KỸ THUẬT HỌC SÂU NHẬN DẠNG TIỀN TRONG CÁC

HỆ THỐNG GIAO DỊCH TỰ ĐỘNG

Học viên: Võ Hoàng Thành Chuyên ngành: Ngành Khoa Học Máy Tính

Mã số: 60.48.01 Khóa: 34 Trường Đại học Bách khoa - ĐHĐN

Tóm tắt -Ngày nay, công nghệ tiên tiến đã đóng một nhiệm vụ quan trọng việc nhận dạng tiền tệ thật trong các nền kinh tế Một giải pháp hiệu quả để phát hiện và nhận dạng tiền giấy là điều quan trọng trong các giao dịch tự động Luận văn này đề xuất một cách tiếp cận để nhận dạng tiền giấy dựa trên xử lý ảnh cơ bản dùng mạng học sâu để trích xuất và nhận dạng đặc trưng

Kỹ thuật mạng neural sâu như là một nghệ thuật nhận dạng trong xử lý hình ảnh Các kỹ thuật truyền thống thường có chi phí cao để xử lý số liệu hình ảnh của tiền tệ khi nhận dạng nhiều mệnh giá của tiền Luận văn này tập trung vào nhận dạng đúng tiền thật dựa trên hình thức của tờ tiền Phương pháp đề xuất có thể áp dụng để nhận biết nhiều loại mệnh giá cũng như các loại tiền tệ khác nhau Sự đóng góp của nghiên cứu là phương pháp tiếp cận mới dựa trên mạng neural sâu và tăng cường dữ liệu để cải thiện độ chính xác Thứ nhất, mạng neural sâu được xây dựng có kiến trúc mạng sử dụng một số inceptions khác nhau cùng với toán tử tích chập, nhằm giảm thời gian huấn luyện Thứ hai, tăng cường hình ảnh của tập dữ liệu đào tạo để có một dữ liệu lớn hơn đủ cho việc học của mạng neural sâu Phương pháp này nhằm mục đích giải quyết vấn đề dữ liệu nhỏ

và tăng cường khả năng học sâu Kết quả thử nghiệm phương pháp được đề xuất có thể áp dụng cho ứng dụng thực tế với hiệu suất có tỷ lệ chính xác 97,85%.

Từ khóa - Nhận dạng, tiền giấy, học sâu, mạng neural sâu, tích chập

APPLICATIONS DEEP LEARNING FOR BANKNOTE RECOGNITION

IN AUTOMATIC TRANSACTION SYSTEMS Abstract - Nowadays, advanced technology has played an important task in circulation of

anti-counterfeit notes economy It is essential that requires an efficient solution to detect fake banknotes This thesis proposes an approach for recognition of paper currency based fundamental image processing using deep learning for feature extraction and recognition Deep neural network techniques have dramatically become the state of the art in image processing The high capacity

of traditional techniques on currency image dataset has been impeded because of varieties of the appearance of the banknotes This thesis focuses recognition face value and anti-counterfeit based

on banknote appearance The proposed method can be applied to recognize many kinds of the denomination or face values as well as the national currencies The contribution studies a new approach based on sequential deep neural network and data augmentation for improving accuracy First, the deep neural network is constructed using several inceptions with different parallel convolutional operations which support reducing consuming time Second, image augmentation

of training dataset generates a larger data enough for deep neural network learning This proposed task is aimed to address the small data problem It is utilized for enhancing the capabilities of deep learning Experimental results illustrate that the proposed method is applicable to the real application with enhances performance to 97.85% accuracy rate

Key words - Recognition, banknote, deep learning, deep neural network, convolutional

Trang 6

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

CNN Convolution Neural Network Mạng neural tích chập

Architecture

Kiến trúc thiết bị tính toán hợp nhất

Transform

Biến đổi đặc trưng tỉ lệ không thay đổi

Trang 7

DANH MỤC CÁC BẢNG

Bảng 2.1 Bảng mô tả kiến trúc 25 lớp của mạng AlexNet trong Matlab 30

Bảng 2.2 Bảng mô tả kiến trúc của mạng VGGNet trong Matlab 34

Bảng 2.3 Bảng mô tả kiến trúc 75 lớp của mạng DNN được xây dựng trong Matlab 42 Bảng 3.1 So sánh framework dùng cho kỹ thuật Học sâu 45

Bảng 3.2 Mô tả số lượng dữ liệu mẫu huấn luyện 49

Bảng 3.3 Một số dữ liệu mẫu tiền giấy thật 53

Bảng 3.4 Một số dữ liệu mẫu tiền giấy giả bằng giấy nguyên liệu khác nhau 54

Bảng 3.5 Ma trận kiểm tra kết quả dự đoán trên tập dữ liệu đánh giá của phương pháp CNN 57

Bảng 3.6 Ma trận kiểm tra kết quả dự đoán trên tập dữ liệu đánh giá của phương pháp CNN + SVM 58

Trang 8

DANH MỤC CÁC HÌNH

Hình 1.1 Sơ đồ tổng quát hệ thống xử lý ảnh 7

Hình 1.2 Minh họa về kiến trúc của mạng Neural 10

Hình 1.3 Sơ đồ tổng quát của một perceptron 12

Hình 1.4 Sơ đồ mạng Neuron nhiều perceptron 12

Hình 1.5 Siêu phẳng phân tách mẫu dữ liệu thành 2 lớp 14

Hình 1.6 Các siêu phẳng biên H+ và H- trong SVM 16

Hình 1.7 Tuyến tính hóa phân loại phi tuyến bằng cách biến đổi tập dữ liệu sang một không gian mới có khả năng phân loại tuyến tính 18

Hình 1.8 (a) Mô hình mạng neural cạn[27] (b) Mô hình mạng neural sâu 20

Hình 1.9 Biểu diễn đặc trưng đối tượng trong mạng học sâu 21

Hình 1.10 Kiến trúc mạng tích chập đơn giản 22

Hình 1.11 Quá trình thực hiện tích chập 23

Hình 1.12 Minh họa lớp tích chập trong nhận dạng biển báo giao thông: (a) Các trọng số của bộ lọc tích chập (b) Kết quả đầu ra của các tích chập mặt nạ 24

Hình 1.13 Minh họa hoạt động của Max pooling và Average pooling[33] 24

Hình 1.14 Minh họa giảm kích thước nhờ lớp pooling 25

Hình 1.15 Minh họa hoạt động của lớp ReLU 26

Hình 1.16 Mô hình lớp fully connection 27

Hình 2.1 Kiến trúc mạng LeNet-5 28

Hình 2.2 Kiến trúc của mô hình AlexNet 29

Hình 2.3 Kiến trúc của mô hình mạng ZFNet 31

Hình 2.4 Mô hình về module Inception 32

Hình 2.5 Mô hình kiến trúc mạng GoogLeNet 33

Hình 2.6 Mô hình về kiến trúc mạng VGGNet 34

Hình 2.7 (a) Một số dấu hiệu đặc biệt để con người nhận dạng tiền tệ dựa trên thông tin trực quan, (b) tiền giả bằng các chất liệu khác 37

Hình 2.8 Tổng quan kiến trúc của quá trình nhận dạng tiền giấy 38

Hình 2.9 Kiểm tra tiền giấy dựa trên các kỹ thuật DNN và SVM 39

Hình 2.10 Sơ đồ tổng thể của kiến trúc mạng neural sâu trong nhận dạng tiền giấy 40

Hình 2.11 ược đồ của từng mạng Inception 41

Hình 3.1 Ví dụ về hình ảnh tăng cường 51

Trang 9

Hình 3.2 Quá trình huấn luyện trên tập dữ liệu tiền trong mạng DNN hội tụ với các

giá trị dự kiến sau một vài epochs: (a) độ chính xác; (b) giá trị lỗi 52

Hình 3.3 Trọng số của mặt nạ lọc của lớp tích chập đầu tiên 56

Hình 3.4 Kết quả kích hoạt của một số lớp DNN 56

Hình 3.5 Kết quả nhận dạng mệnh giá 10.000, 20.000, 50.000 VND 60

Hình 3.6 Kết quả nhận dạng mệnh giá 100.000, 200.000, 500.000 VND 61

Hình 3.7 Kết quả nhận dạng khả nghi tiền giả và không phải mẫu tiền 62

Trang 10

MỞ ĐẦU

1 Lý do chọn đề tài

Ngày nay, kỹ thuật học sâu (deep learning) đang tạo nên sự phát triển mạnh mẽ về công nghệ ở trên toàn thế giới, nó ảnh hưởng tới rất nhiều lĩnh vực trong cuộc sống hiện đại (robot, IoT, tài chính, y tế…)

Kỹ thuật học sâu thể hiện tính ưu việt hơn các kỹ thuật khác trong việc nhận diện hình ảnh cũng như nhiều lĩnh vực khác, những kết quả nghiên cứu gần đây áp dụng kỹ thuật này cho độ chính xác cao hơn Nhiều công ty hoạt động về lĩnh vực công nghệ trên thế giới đang đầu tư rất nhiều nguồn lực vào nghiên cứu và phát triển nhằm tạo ra các sản phẩm ứng dụng sử dụng kỹ thuật học sâu Những công ty lớn như Google, Baidu… cũng sử dụng kỹ thuật học sâu dùng trong các thuật toán nhận dạng giọng nói, hình ảnh và đã mang kết quả tốt khi đem vào ứng dụng trong thực tế Các lĩnh vực về công nghệ đã dùng kỹ thuật học sâu có thể kể đến là: công nghệ nhận diện giọng nói (các trợ lý ảo giọng nói như Siri của Apple, Cortana của Microsoft, Alexa của Amazon, DeepVoice của Baidu ), dịch tự động và các công nghệ xử lý ngôn ngữ tự nhiên, công nghệ nhận diện hình ảnh (Google, Microsoft, Facebook, Baidu, )

Công nghệ nhận diện hình ảnh sử dụng kỹ thuật học sâu đang được nhiều nhà nghiên cứu tìm hiểu và đưa vào ứng dụng thực tế; nhóm nghiên cứu về trí tuệ nhân tạo của Facebook đã tạo ra phần mềm DeepFace[1] có khả năng nhận dạng khuôn mặt tốt như con người với độ chính xác khoảng 97.35%, công trình được công bố năm 2014,

sử dụng khoảng 4 triệu ảnh khuôn mặt của hơn 4000 người để huấn luyện cho mạng nơron nhiều lớp, kết quả thu được đã vượt qua các kỹ thuật được nghiên cứu đề xuất trước đó Trong lĩnh vực y tế có nhiều công ty khởi nghiệp (Enlitic, Freenome, Merck, Atomwise …) về y sinh đã đưa ra những sản phẩm điện toán có khả năng đọc X-quang, MRI và phim chụp CT một cách nhanh chóng và chính xác bệnh chuẩn hơn cả bác sỹ điều trị[34]

Ở Việt Nam, việc nghiên cứu về thị giác máy tính (Computer Vision) và các kỹ thuật xử lý ảnh, trí tuệ nhân tạo (AI) để áp dụng giải quyết các bài toán nhận dạng tiền trong các hệ thống giao dịch tự động chưa được nghiên cứu nhiều Ứng dụng Money Reader về nhận dạng Tiền giấy dựa trên hình ảnh và tự động chuyển đổi tỷ giá (Trường Đại học Công nghệ - Hà Nội)[35] là một trong số ít về nghiên cứu này

Cuộc cách mạng công nghiệp lần thứ 4 bước đầu đã có tác động sâu sắc đến định hướng phát triển xã hội Các nhà lãnh đạo đang hối thúc phát triển chính quyền điện

tử, đô thị thông minh, y tế thông minh,… Như vậy, một tất yếu cần phải có các hệ thống tương tác giao dịch thông minh giữa con người và máy tính từ các hệ thống lớn như trung tâm hành chính công giao dịch tự động, các siêu thị mua bán tự động đến

Trang 11

2

các hệ thống nhỏ như dịch vụ đổi tiền tự động, hệ thống thu tiền tự động, hệ thống in các loại văn bản chứng thực tự động,… Các giao dịch tự động sẽ giúp con người tiết kiệm thời gian, chi phí về nhân lực làm tăng hiệu quả dịch vụ, kinh doanh Bên cạnh tính chính xác, nó còn phải đáp ứng yêu cầu về tính linh động, đa dạng và mềm dẽo trong yêu cầu giao dịch, ví dụ như công việc thu phí, tiền trong mua bán hàng tự động thì ngoài những cách giao dịch qua thẻ ngân hàng, chuyển khoản; cách tiếp nhận tiền mặt vẫn được người tiêu dùng lựa chọn nhiều Trong giao dịch tiền mặt, yêu cầu hệ thống phải nhận dạng được nhiều mệnh giá, loại tiền và độ chính xác cao là các yêu cầu hết sức quan trọng nhằm đáp ứng các yêu cầu thực tế trong hệ thống giao dịch tự động

Với những lý do như trên, tôi xin đề xuất đề tài luận văn cao học: “Ứng dụng kỹ

thuật học sâu nhận dạng tiền trong các hệ thống giao dịch tự động”

- Kế thừa những nghiên cứu về các hệ thống nhận dạng tiền trước đây

- Tìm hiểu, mô tả về mô hình hệ thống nhận dạng tiền mặt

- So sánh giữa các kĩ thuật được sử dụng trong hệ thống nhận dạng

- Đồng thời đánh giá hiệu suất của phương pháp bằng các thực nghiệm trên tập

dữ liệu thực

- Vận dụng trí tuệ nhân tạo trong việc giải quyết bài toán nhận dạng tiền mặt với

khả năng xử lý được với nhiều mệnh giá tiền, loại tiền một cách tự động

Trang 12

- Đề xuất được mô hình nhận diện tiền và xác thực với các loại tiền, mệnh giá

khác nhau để ứng dụng trong hệ thống giao dịch tự động

3.2 Nhiệm vụ

- Nghiên cứu kỹ thuật trí tuệ nhân tạo, mạng neural học sâu

- Phát biểu bài toán

- Phân tích và cài đặt giải thuật cho bài toán nhận dạng tiền

- Đánh giá kết quả theo yêu cầu của đề tài

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

4.1 Đối tượng nghiên cứu

- Nghiên cứu các kĩ thuật trí tuệ nhân tạo, kỹ thuật mạng neural học sâu để ứng

dụng trong phân tích hình ảnh, nhận dạng mệnh giá tiền, loại tiền

- Nghiên cứu hệ thống nhận dạng tiền (tiền giấy) để ứng dụng cho các giao dịch

- Phương pháp phân tích điều tra số liệu: thu thập và nghiên cứu các tài liệu có

liên quan đến đề tài

- Phương pháp nghiên cứu tài liệu: các kĩ thuật xử lý ảnh, trí tuệ nhân tạo và đặc

biệt là kỹ thuật học sâu

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

- Nghiên cứu và khai thác các mô hình nhận diện hình ảnh đã được đề xuất

- Xây dựng chương trình ứng dụng vào nhận dạng mệnh giá và các điểm đặc

trưng của tờ tiền

- Kiểm tra, thử nghiệm, nhận xét và đánh giá kết quả

6 Cấu trúc của luận văn

Luận văn được tổ chức thành ba chương chính với các nội dung cụ thể như sau:

Chương 1: Trong chương cơ sở lý thuyết này, chúng tôi trình bày những kiến thức

liên quan đến những nghiên cứu về cách tiếp cận bài toán nhận dạng tiền giấy ứng

Trang 13

4

dụng cho các hệ thống giao dịch tự động Từ đó, có cái nhìn tổng quan về các hướng tiếp cận và giải pháp để ứng dụng trong bài toán nhận dạng tiền giấy, từ các phương pháp xử lý ảnh đơn giản và học máy truyền thống đến các phương pháp học sâu

Chương 2: Ở chương này sẽ trình bày một số mạng neural tích chập điển hình

được ứng dụng nhiều trong thực tế ua đó để vận dụng vào thiết kế mô hình hệ thống nhận dạng tiền giấy, từ việc mô tả bài toán đến việc phân tích hệ thống, xây dựng hoàn chỉnh mô hình nhận dạng tiền Đưa ra một giải pháp để giải pháp để giải quyết bài toán nhận dạng tiền, phương pháp đề xuất là sự kết hợp của mạng neural sâu DNN dùng để huấn luyện dữ liệu trích xuất đặc trưng và máy vector hỗ trợ SVM để phân loại

Chương 3: Trong chương này, chúng tôi sẽ cài đặt chương trình thực nghiệm và

đánh giá kết quả đạt được Cơ sở dữ liệu ảnh sẽ được mô tả cụ thể, quá trình huấn luyện của giải pháp và kết quả đạt được của luận văn sẽ được trình bày cụ thể tại đây

Trang 14

Chương 1: CƠ SỞ LÝ THUYẾT 1.1 Tổng quan về xử lý ảnh

Xử lý ảnh là một ngành khoa học liên quan đến nhiều lĩnh vực và cần nhiều kiến thức cơ sở khác nhau Những lĩnh vự liên quan đó là: Xử lý tín hiệu số, Đại số tuyến tính, xác suất, thống kê, các khái niệm về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn… Trí tuệ nhân tạo, mạng neural nhân tạo cũng được ứng dụng trong quá trình phân tích, nhận dạng và phân loại hình ảnh

Với sự hỗ trợ của các hệ thống tính toán lớn, các thuật toán tiên tiến và sự phát triển của công nghệ phần cứng đã thúc đẩy mạnh mẽ ngành xử lý ảnh phát triển vượt bậc Những thành công của xử lý ảnh được ứng dụng trong hầu hết các lĩnh vực của đời sống xã hội, an ninh quốc phòng, hàng không vũ trụ có thể kể đến là:

- Hệ thống xử lý ảnh bằng mạng neural nhân tạo học sâu có thể nhận dạng, phân loại các kiểu đối tượng khác nhau tốt hơn và nhanh hơn con người Các hệ thống khôi phục ảnh, chỉnh sửa, điều chỉnh độ phân giải, xử lý màu sắc, mã hóa và truyền tin, nhận dạng và phân loại hành động trong các hệ thống giám sát an ninh

- Trong lĩnh vực y tế: Phân tích hình ảnh, chẩn đoán bệnh qua các loại hình ảnh tia Gamma, X-quang, scan PET/CT (cắt lớp phát xạ), …

- ĩnh vực tự động hóa, robot: Hệ thống xe không người lái, giám sát sản xuất sản phẩm công nghiệp, robot phục vụ dân sự, điều khiển giao thông thông minh…

1.1.1 Các khái niệm về ảnh số, điểm ảnh, màu sắc

Ảnh số (digital image) có thể được xem là một biểu diễn dữ liệu rời rạc thể hiện thông tin cả về không gian và cường độ màu Ảnh số gồm một tập hợp hữu hạn các phần tử được biểu diễn bởi giá trị số và có thể dưới dạng ma trận hai chiều, mỗi phần

tử của ảnh số gọi là điểm ảnh (pixel)[4] Tùy thuộc vào độ phân giải cố định hay biến đổi mà điểm ảnh có thể được biểu diễn dưới dạng vector hoặc dạng bitmap Ảnh số có thể được xác định theo mảng hai chiều biểu diễn cường độ sáng của điểm ảnh với giá trị cố định, cũng có thể được xác định theo hàm hai chiều f(x, y), trong đó x và y là các tọa độ trong không gian và độ lớn (amplitude) của hàm f được gọi là độ sáng (intensity) hay độ xám (gray level) của ảnh tại điểm đó

Điểm ảnh (pixel được viết tắt từ picture element) được gọi là một phần tử ảnh[4] được xác định theo toạ độ (x, y) tương ứng với số thứ tự cột và hàng trong ảnh Giá trị mỗi phần tử ảnh được xác định bởi giá trị cường độ mức xám hoặc màu nhất định Kích thước và khoảng cách giữa các điểm ảnh đó được biểu diễn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (màu) của ảnh số gần với như hình ảnh của nó trong không gian thật Số điểm ảnh trên mỗi diện tích biểu diễn

Trang 15

và lĩnh vực xử lý ảnh như 640 x 480, 800 x 600, 1024 x 768,

Độ phân giải bit được định nghĩa là số lượng các giá trị khác nhau có thể biểu diễn

về cường độ sáng hoặc màu sắc Ảnh nhị phân thì chỉ biểu diễn được hai trạng thái giá trị khác nhau (đen hoặc trắng) mỗi pixel loại này dùng 1 bit, ảnh đa mức xám dùng 8 bit cho mỗi pixel thì biểu diễn được 256 giá trị khác nhau từ màu đen (giá trị 0) đến trắng (giá trị 255), ảnh màu RGB dùng 24 bit có thể biểu diễn được hơn 16 triệu màu (224=16.777.216)

Màu sắc được tạo ra bởi các ánh sáng với các bước sóng khác nhau, trong cấu tạo của mắt người bao gồm ba loại tế bào cảm nhận màu có thể nhìn được bảy triệu màu nhưng thực chất chúng ta chỉ có thể cảm nhận sự khác biệt vài ngàn màu Một màu có thể được biểu diễn bởi ba thuộc tính: Sắc thái màu (Hue), độ bão hòa (Saturation), và

độ chói (Intensity).[24]

1.1.2 Các dạng ảnh

- Ảnh màu (colour image): là ảnh chứa thông tin về đối tượng được biểu diễn dưới dạng màu sắc của nó mà mắt thường có thể quan sát được Mỗi điểm ảnh có cấu trúc gồm nhiều kênh màu khác nhau, thông thường được biểu diễn bởi ba lớp màu cơ bản RGB (màu đỏ (red), xanh lá cây (green), xanh lam (blue))

- Ảnh đa mức xám (grey image): thường biểu diễn thông tin liên quan đến cường

độ đa mức xám của đối tượng trong không gian mà không được thể hiện bởi màu sắc thực của nó

- Ảnh nhị phân (binary image): biểu diễn đối tượng bởi hai mức 0 hoặc 1, phân biệt sự xuất hiện các đối tượng và nền trong mỗi bức ảnh

- Ảnh hồng ngoại (infrared image): biễu diễn trực quan quang phổ, liên quan đến phổ điện từ Nó cung cấp thông tin ảnh dựa trên phản xạ ánh sáng hồng ngoại hoặc bức xạ hồng ngoại mà các đối tượng trong khung nhìn phát ra Dựa vào khả năng thu nhận phản xạ hoặc bức xạ hồng ngoại mà các loại camera hồng ngoại có thể thu được các hình ảnh trong điều kiện không có ánh sáng hoặc ánh sáng kém

Trang 16

1.1.3 Các thành phần trong hệ thống xử lý ảnh

Hệ thống xử lý ảnh là đối tượng nghiên cứu liên quan đến các kỹ thuật thị giác máy (computer vision), nó là quá trình biến đổi từ một ảnh ban đầu được thu nhận từ thiết bị sang một không gian mới, làm nổi bật các đặc tính dữ liệu, thuận lợi cho quá trình xử lý thông tin và nâng cao độ chính xác Nó có thể bao gồm một số thành phần chính như sau:

Hình 1.1 Sơ đồ tổng quát hệ thống xử lý ảnh[25]

Hệ thống xử lý ảnh hoạt động theo các bước sau:

- Thu nhận ảnh: là việc hình ảnh về thế giới thực được thu nhận và chuyển qua tín hiệu ảnh rời rạc thông qua các thiết bị thu hình ảnh

- Tiền xử lý: là bước xử lý trên ảnh đầu vào nhằm khử nhiễu, làm nổi bật một số tính chất của ảnh nhằm nâng cao chất lượng các bước xử lý sau

- Trích chọn đặc trưng: là quá trình biến đổi dữ liệu ảnh đầu vào thành tập các đặc trưng Các đặc trưng thường có đặc tính phân biệt cao của các mẫu đầu vào, việc phân biệt các mẫu dữ liệu ảnh đầu vào dễ dàng hơn nhằm nâng cao chất lượng phân loại mẫu so với xử lý dữ liệu thô trên giá trị pixel ảnh Việc trích chọn đặc trưng dùng để thể hiện thông tin trong ảnh trong khi dữ liệu có tính phân biệt cao và cũng có thể làm giảm kích thước

- Phân loại, nhận dạng mẫu: là quá trình xử lý dữ liệu bằng các kỹ thuật, phương pháp phân tích đặc trưng để phân loại các mẫu về các nhóm có chung một số tính chất nào đó Các phương pháp phân loại, nhận dạng mẫu thường liên quan đến các kỹ thuật học máy, bao gồm cả học có giám sát và học không có giám sát

- Biểu diễn tri thức: là việc thể hiện ở mức độ cao của biểu diễn dữ liệu, các mẫu

dữ liệu sau khi phân loại, nhận dạng được biểu diễn dưới dạng tri thức giúp hệ thống

có khả năng “hiểu biết” ngữ nghĩa của nó theo từng kiểu ứng dụng khác nhau trong hệ thống trí tuệ nhân tạo và hệ thống thông minh

Phân loại, nhận dạng mẫu

Biểu diễn tri thức

Ra quyết định

Trang 17

1.2.1 Khái niệm học máy

Học máy (machine learning) là một lĩnh vực nghiên cứu trong trí tuệ nhân tạo, nó liên quan đến việc nghiên cứu, xây dựng các kĩ thuật để các hệ thống “học” tự động từ

dữ liệu từ đó giải quyết những vấn đề cụ thể nào đó Trong học máy, máy tính không cần phải được lập trình một cách rõ ràng mà nó có thể tự thay đổi và cải thiện các thuật toán của mình Học máy có liên quan đến thống kê, nó nghiên cứu việc phân tích dữ liệu và tập trung vào sự phức tạp của các giải thuật trong việc thực thi tính toán Máy học nghiên cứu sự phát triển các giải thuật suy luận xấp xỉ mà có thể xử lý được, nó nghiên cứu cách thức để mô hình hóa bài toán cho phép máy tính tự động hiểu, xử lý

và học từ dữ liệu để thực hiện nhiệm vụ được giao cũng như cách đánh giá giúp tăng tính hiệu quả

Ngày nay, học máy cho phép máy tính giao tiếp với con người và được áp dụng rộng rãi trong nhiều lĩnh vực như: tự lái xe, chẩn đoán y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khoán, phân loại các chuỗi DNA, nhận dạng tiếng nói

và chữ viết, dịch tự động, chơi trò chơi và cử động rô-bốt

1.2.2 Phân loại phương pháp học máy

Dựa vào phương thức học (learning style) có thể phân loại thành bốn phương pháp học máy như sau:

- Học có giám sát (supervised learning) là cách học với tập dữ liệu huấn luyện ban đầu được gán nhãn hoàn toàn từ trước Nó được sử dụng cho lớp bài toán phân lớp, phân loại (Classification)

- Học không có giám sát (unsupervised learning) là cách học với tập dữ liệu huấn luyện ban đầu hoàn toàn chưa được gán nhãn Nó được sử dụng cho lớp bài toán gom cụm, phân cụm (Clustering)

- Học bán giám sát (semi-supervised learning) là cách học với tập dữ liệu huấn luyện gồm cả dữ liệu đã được gán nhãn và dữ liệu chưa được gán nhãn Tuỳ vào từng mục đích cụ thể mà người sử dụng có thể được áp dụng cho bài toán phân lớp hoặc phân cụm

- Học tăng cường (reinforcement learning) là cách học để giải quyết các bài toán giúp cho một hệ thống tự động xác định hành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất Học tăng cường không có các cặp dữ liệu vào/kết quả đúng, các hành động

Trang 18

gần tối ưu cũng không được đánh giá đúng sai một cách tường minh Trong học tăng cường, sự được và mất giữa khám phá và khai thác đã được nghiên cứu chủ yếu áp dụng vào lý thuyết trò chơi (Game Theory)

1.2.3 Ứng dụng của học máy

Học máy ngày càng có nhiều ứng dụng rộng khắp trong các ngành khoa học và công nghiệp đang làm việc với hàm lượng lớn dữ liệu, tầm quan trọng của công nghệ Machine earning được nâng lên ở vị thế mới, đặc biệt những ngành cần phân tích khối lượng dữ liệu khổng lồ Những ứng dụng có thể kể đến là:

- Xử lý ngôn ngữ tự nhiên (Natural Language Processing): xử lý văn bản, nhận dạng giọng nói, tổng hợp giọng nói… các ứng dụng như: Google Translate, Siri, Alexa, Cortana, Google Assistant…

- Nhận dạng (Pattern Recognition): nhận dạng tiếng nói, chữ viết tay, vân tay, thị giác máy tính (Computer Vision), phân tích ảnh X-quang, các hệ chuyên gia chẩn đoán

tự động…

- Hệ thống gợi ý (Recommendation systems): trên các ứng dụng Netflix, Amazon, Facebook, mọi thông tin được gợi ý cho người dùng Nó phụ thuộc vào các hoạt động của người dùng như tìm kiếm, thích hoặc các hành vi trước đó của người dùng…

1.3 Một số phương pháp học máy truyền thống

1.3.1 Mạng neural

Mạng neural (nơ-ron) hay còn gọi mạng neural nhân tạo (Artifical Neural Networks) là một mô hình toán học được xây dựng dựa theo mô phỏng của các mạng neural sinh học Mạng neural bao gồm một nhóm các neural nhân tạo (còn gọi là các nút) được nối với nhau và xử lý thông tin bằng cách truyền theo các kết nối, tính giá trị mới tại các nút

1.3.1.1 Kiến trúc mạng neural

Kiến trúc mạng neural gồm tập các nút gọi là các neural, tập các cung để kết nối các neural lại với nhau Tập các nút được tổ chức thành các lớp, gọi là các layer Trong

đó có một lớp đầu vào (input layer) và một lớp đầu ra (output layer), các lớp giữa gọi

là các lớp ẩn (hidden layer) Mỗi cung kết nối 2 cặp neural với nhau, trong đó có một nút vào và một nút ra Mối liên hệ giữa các nút được thể hiện thông qua hàm biến đổi (hàm truyền) cùng với bộ trọng số tương ứng cho hàm truyền Thông thường, kiến trúc của một mạng neural được xây dựng trước và các trọng số được xác định trong quá trình huấn luyện, tuy nhiên có những mạng có khả năng thay đổi để thích ứng (adaptive) với thực tế và có thể tự thay đổi cấu trúc của mạng dựa trên các thông tin

Trang 19

Hình 1.2 Minh họa về kiến trúc của mạng Neural:(a) mạng có một lớp ẩn, (b) mạng

có hai lớp ẩn.[25]

Mạng neural nhân tạo (Artificial Neural Network - ANN) được sử dụng như một

cơ chế xấp xỉ hàm tùy ý mà “học” được từ các dữ liệu quan sát Tuy nhiên, sử dụng chúng không đơn giản mà đòi hỏi có sự hiểu biết tương đối tốt về lý thuyết cơ bản Một ANN là một hệ thống thích nghi phức tạp, nó có thể thay đổi cấu trúc bên trong dựa vào luồng thông tin qua nó, những thay đổi này thu được thông qua việc điều chỉnh các trọng số Trong Hình 1.2 minh họa trên, mỗi cung thể hiện một kết nối giữa hai neural và chỉ hướng của luồng dữ liệu đi qua trong mạng Mỗi kết nối có một trọng

số nhất định, đó là giá trị có chức năng điều khiển tín hiệu nữa hai neural với nhau Nếu mạng cho kết quả ở lớp đầu ra đủ tốt thì không cần thiết phải điều chỉnh lại trọng

số nhưng mạng cho kết quả chưa tốt (sai số trên ngưỡng) thì hệ thống sẽ thích nghi bằng cách đưa ra các trọng số điều chỉnh để thay đổi kết quả ở lớp đầu ra theo hướng tốt hơn

Trong việc xây dựng mô hình mạng ANN vấn đề chọn mô hình phù hợp với bài toán ứng dụng phụ thuộc vào cách mô tả các mẫu dữ liệu Một mô hình quá phức tạp

sẽ dẫn đến những khó khăn trong quá trình huấn luyện mô hình, còn những mô hình đơn giản lại không giải quyết được những bài toán phức tạp Thuật toán học chủ yếu

Trang 20

liên quan đến việc xây dựng bộ siêu tham số (hyperparameter) đúng để huấn luyện trên một tập hợp dữ liệu cố định cụ thể Thực tế, lựa chọn và điều chỉnh một thuật toán để huấn luyện trên dữ liệu không nhìn thấy yêu cầu một số lượng đáng kể các thử nghiệm Việc kết hợp các mô hình, hàm chi phí và thuật toán học được lựa chọn một cách thích hợp, thì mạng ANN sẽ cho kết quả rất chính xác Với các kết quả thực hiện chính xác, ANN được sử dụng vào dạy học trực tuyến và các ứng dụng tập dữ liệu lớn Mạng neural có rất nhiều ứng dụng và đạt được những kết quả tốt trong lĩnh vực trí tuệ nhân tạo: như nhận dạng ký tự quang học, nhận dạng con người (mặt, dáng…) qua hình ảnh, phát hiện và nhận dạng tín hiệu biển báo giao thông, phát hiện các hành động bất thường trong các hệ thống giám sát thông minh; như giá trị chứng khoán, dự báo thời tiết,

1.3.1.2 Quá trình học của mạng neural

Mạng ANN có thể là một trong ba dạng: học có giám sát, học không giám sát và học tăng cường

- Học có giám sát: quá trình huấn luyện được thực hiện trên tập dữ liệu đã có gán nhãn (bởi chuyên gia) Điển hình cho kỹ thuật này là mạng Neuron lan truyền ngược (Backpropagation)

- Học không giám sát: quá trình huấn luyện được thực hiện và xử lý trên bộ mẫu

dữ liệu không cần gán nhãn trước, giống như quá trình tìm kiếm các đặc trưng tiềm năng (ẩn) trong tập dữ liệu Mạng Neuron điển hình cho kỹ thuật này là tự tổ chức Sefl – Organizing Map (SOM) Ví dụ như thuật toán phân cụm dữ liệu bằng cách chia tập

dữ liệu ban đầu vào các nhóm theo một số tính chất nào đó chưa biết trước

- Học tăng cường là chuỗi các kỹ thuật liên quan đến việc xây dựng mô hình dựa vào quan sát Mục tiêu là tìm cách để cực tiểu hóa một chi phí dài hạn nào đó (chi phí tích lũy mong đợi) Các bài toán thường được dùng học tăng cường là các bài toán điều khiển, trò chơi, và các nhiệm vụ quyết định tuần tự khác Học tăng cường ngày nay được sử dụng khá phổ biến trong các hệ thống tự động hóa và hệ thống tương tác người máy, hệ thống mô hình xe lái tự động

1.3.1.3 Mạng Perceptron

Perceptron là mô hình mạng neural được phát triển bởi nhà khoa học Frank Rosen Blatt[5] Ngày nay nó trở lên phổ biến trong việc sử dụng các model khác nhau của Neural nhân tạo Mạng perceptron một lớp là một dạng đơn giản nhất của mạng neural nhân tạo, là một mô hình tính toán chỉ có một neural Một perceptron thường bao gồm một (hoặc một số) nút đầu vào, một khối xử lý và một đầu ra Perceptron nhận nhiều giá trị nhị phân ở đầu vào (input) và chỉ cho ra một kết quả đầu ra (output) duy nhất

Trang 21

12

Hình 1.3 Sơ đồ tổng quát của một perceptron[37]

Ví dụ ở Hình 1.3 trên cho thấy perceptron có ba đầu vào , , , trong thực tế

nó có thể có nhiều hoặc ít đầu vào hơn Rosenblatt đã đề xuất một quy tắc đơn giản để tính toán đầu ra Ông đã đưa các trọng số, , ,… là các số thực để thể hiện tầm quan trọng của các đầu vào tương ứng với đầu ra Đầu ra của nơron là 0 hoặc 1, được xác định bởi tổng trọng số ∑ nhỏ hơn hay lớn hơn giá trị ngưỡng (threshold) nào

đó Cũng giống như trọng số, ngưỡng là một số thực, nó là một tham số của tế bào thần kinh Đầu ra được tính theo công thức sau:

{ ∑ ∑ (1.1)

Mô hình một perceptron không phải là một mô hình hoàn chỉnh về việc ra quyết định của con người Mô hình một perceptron dùng để minh họa cho nguyên tắc hoạt động của một perceptron có thể cân nhắc các yếu tố khác nhau của bài toán để đưa ra quyết định Trong thực tế thì người ta sử dụng mô hình có mạng lưới các perceptron phức tạp để giải quyết các bài toán và có thể đưa ra những quyết định khá chính xác

Hình 1.4 Sơ đồ mạng Neuron nhiều perceptron[37]

Trong Hình 1.4 trên, cột đầu tiên của perceptron hay chúng ta còn gọi là lớp perceptron đầu tiên, nó đưa ra ba quyết định rất đơn giản, dựa vào các yếu tố ở đầu vào Trong lớp perceptron thứ hai, mỗi perceptron đó đưa ra quyết định bằng cách cân nhắc kết quả từ lớp đầu tiên để ra quyết định Một perceptron trong lớp thứ hai có thể đưa ra quyết định ở mức phức tạp hơn và trừu tượng hơn các perceptron trong lớp thứ nhất Và các quyết định phức tạp hơn có thể được thực hiện bởi perceptron trong lớp

Trang 22

thứ ba, lớp thứ tư Như vậy, mạng neuron gồm các perceptron nhiều lớp có thể tham gia vào việc ra những quyết định phức tạp

Trong Hình 1.4 phía trên các perceptron trông giống như chúng có nhiều đầu ra nhưng thực tế chúng vẫn là đầu ra đơn Nhiều mũi tên đầu ra chỉ là một cách để chỉ ra đầu ra từ một perceptron đang được sử dụng làm đầu vào cho một số perceptron khác Cách biểu diễn đó dễ sử dụng hơn là vẽ một dòng đầu ra mà sau đó tách ra

Để đơn giản hóa mô tả perceptrons, chúng ta thay đổi đầu tiên là viết ∑

thành w⋅x≡∑ , trong đó w và x là các vectơ có thành phần là trọng số và đầu vào tương ứng Sự thay đổi thứ hai là thay thế ngưỡng (threshold) bằng độ lệch (bias) của perceptron, ký hiệu b≡ − threshold Sử dụng độ lệch thay vì ngưỡng nên quy tắc perceptron có thể viết lại như sau:

{ (1.2) Đối với một perceptron với một độ lệch thực sự lớn, nó rất dễ dàng để perceptron đưa kết quả ở đầu ra là 1 Nhưng nếu độ lệch là rất nhỏ, thì nó rất khó để perceptron đưa kết quả ở đầu ra là 1 Việc giới thiệu độ lệch chúng ta sẽ thấy việc mô tả perceptron đơn giản hơn Vì vậy, chúng ta sẽ không sử dụng ngưỡng, mà luôn sử dụng

độ lệch

1.3.2 Máy vector hỗ trợ (SVM)

1.3.2.1 Giới thiệu

Thuật toán SVM là một thuật toán phân loại, thuộc phương pháp học có giám sát

Nó nhận dữ liệu vào và phân loại chúng thành hai lớp khác nhau Thuật toán huấn luyện SVM xây dựng một mô hình để phân loại hai lớp dữ liệu cho trước Thuật toán SVM được tìm ra bởi Corinna và Vapnik[7] năm 1995

Ban đầu thuật toán SVM được thiết kế cho bài toán phân loại nhị phân, về sau được mở rộng để áp dụng cho bài toán phân loại đa lớp khác nhau[8, 9] Mô hình SVM là cách biểu diễn các vector hỗ trợ phân loại trong không gian nhiều chiều và lựa chọn siêu phẳng (hyperplane) phân loại giữa hai lớp sao cho cực đại khoảng cách từ các mẫu dữ liệu huấn luyện (các điểm trong không gian n chiều) tới mặt phẳng phân loại Các mẫu mới được đưa vào để phân loại phải được biểu diễn trong cùng một không gian như tập huấn luyện và được SVM phân loại vào một trong hai lớp tùy thuộc vào giá trị cụ thể của mẫu dữ liệu thuộc phía nào của mặt siêu phẳng phân loại Thuật toán SVM là một trong những phương pháp phân lớp được sử dụng rộng rãi nhất trong lĩnh vực khoa học máy tính và phân tích số liệu

Thuật toán SVM thực hiện hiệu quả trên các tập dữ liệu lớn và xử lý hiệu quả trên không gian có số chiều lớn, đặc biệt áp dụng cho các bài toán phân loại dữ liệu hình

Trang 23

14

ảnh, văn bản và tiếng nói, SVM hoạt động khá linh hoạt, nó có khả năng áp dụng nhiều hàm nhân khác nhau và có thể phân loại tuyến tính hoặc phi tuyến tính Trong ứng dụng vào thực tế SVM đạt độ chính xác khá cao so với các kỹ thuật học máy truyền thống khác Phương pháp SVM có nhiều phiên bản được phát triển và đã được lập trình thành công cụ, theo hướng tiếp cận phân loại tuyến tính và phi tuyến Nhóm tác giả Chang và Lin[9] đã phát triển một công cụ được sử dụng khá phổ biến

1.3.2.2 Phân loại tuyến tính

Kỹ thuật SVM tuyến tính được mô tả như sau: Cho trước một tập dữ liệu huấn

luyện S gồm n mẫu (x 1 , y 1 ), (x n , y n ) với x i là mẫu dữ liệu được biểu diễn dưới dạng

các điểm trong không gian p chiều (hoặc xem nó là vector có p phần tử) và y i {-1, 1}

là nhãn tương ứng để chỉ lớp của mẫu dữ liệu đó Mục tiêu của SVM là tìm một siêu phẳng có khả năng phân tách tập mẫu thành 2 tập theo nhãn của nó với lề đạt khoảng

cách cực đại, lề là khoảng cách từ siêu phẳng đến các điểm (trong p chiều) gần nhất

Các siêu phẳng cần tìm ở đây chính là các đường thẳng trong trường hợp không gian hai chiều, mặt phẳng trong trường hợp không gian ba chiều và tổng quát hơn là

các siêu phẳng không gian con R d-1 chiều trong không gian R d

Siêu phẳng trong không gian đa chiều có thể được viết dưới dạng:

(1.3)

Trong đó, w là vector pháp tuyến của siêu phẳng, w không nhất thiết là vector đơn

vị Tham số b/||w|| được xác định là khoảng cách từ siêu phẳng đến gốc tọa độ theo vector pháp tuyến w

Lề cực đại (maximal margin) là khoảng cách lớn nhất của siêu phẳng biên song song với siêu phẳng mà không chứa điểm dữ liệu nào bên trong nó

Các vector hỗ trợ (support vectors) là các điểm dữ liệu gần nhất với siêu phẳng phân cách, những điểm này nằm trên siêu phẳng biên

Hình 1.5 Siêu phẳng phân tách mẫu dữ liệu thành 2 lớp: (a) các siêu phẳng ứng cử

viên, (b) lề phân loại và các vector hỗ trợ tìm được

Trang 24

Hình 1.5 trên cho thấy: có vô số đường thẳng có thể phân loại hai lớp dữ liệu thành hai miền khác nhau, các đường này được gọi là siêu phẳng Mục tiêu là cần tìm

ra siêu phẳng tốt nhất để phân lớp dữ liệu Siêu phẳng mà SVM tìm kiếm là siêu phẳng

có giá trị lề lớn nhất, hay còn gọi là siêu phẳng với lề cực đại (maximal margin hyperplane)

Để phân loại tốt nhất cần xây dựng siêu phẳng tối ưu (optimal hyperplane) ề càng lớn thì sai số tổng quát hóa của thuật toán phân loại càng bé Nghĩa là nó nằm càng xa các điểm dữ liệu của tất cả các lớp càng tốt Muốn các điểm dữ liệu có thể được chia tách một cách tuyến tính, cần xác định hai siêu phẳng sao cho không có điểm nào ở giữa chúng và khoảng cách giữa chúng là lớn nhất

Đối với dữ liệu có khả năng phân loại tuyến tính, các vector hỗ trợ tìm các siêu phẳng phân cách có giá trị lề càng lớn càng tốt Giả sử tất cả các dữ liệu huấn luyện thỏa mãn điều kiện:

đến gốc tọa độ là 1 b / w Bài toán tối ưu này tương đối khó giải vì hàm mục tiêu phụ thuộc vào ||w||, là một hàm có khai căn Tuy nhiên có thể thay ||w|| bằng hàm mục tiêu ⁄ ‖ ‖ mà không làm thay đổi lời giải đối với bài toán Như vậy, vấn đề cần thiết là cực tiểu hóa mục tiêu ⁄ ‖ ‖ theo w và b với điều kiện y i (w.x i + b) ≥ 1

Bằng cách thêm các nhân tử Lagrange , bài toán trở thành dạng như sau:

Mỗi mẫu huấn luyện xi tương ứng với một hệ số Lagrange i Sau khi huấn luyện

các mẫu có i 0 được gọi là vector hỗ trợ và nằm trên một trong hai siêu phẳng H+, hoặc H-

Trang 25

Khi đã có vector hỗ trợ được huấn luyện, có thể đơn giản quyết định một mẫu thử

x thuộc về lớp nào do các siêu phẳng H+, H- tạo ra bằng cách đặt lớp của x là hàm dấu:

sign(w.x+b) (1.8)

Có thể giải bài toán tối ưu hóa trên bằng các kỹ thuật thông thường cho quy hoạch toàn phương Theo điều kiện Karush-Kuhn-Tucker (KKT)[38], lời giải có thể được viết dưới dạng tổ hợp tuyến tính của các vectơ huấn luyện

∑ (1.9) Điều kiện KKT được thể hiện như sau:

1 ) (

i (1.10)

1 )

0 i C yi w xi b (1.12)

Với bài toán lề cực đại cứng thì điều kiện 0 ≤ α i ≤ C được thay bởi 0 ≤ α i

1.3.2.3 Phân loại tuyến tính lề mềm (Soft Margin Classifiers)

Trong trường hợp không tồn tại siêu phẳng nào để có thể phân tách được hai lớp

dữ liệu, thì kỹ thuật phân loại lề mềm được sử dụng để chọn một siêu phẳng phân tách tập mẫu dữ liệu huấn luyện tốt nhất có thể và cực đại hóa khoảng cách giữa siêu phẳng

với các mẫu được phân loại đúng Phương pháp lề mềm sử dụng các biến bổ sung ξi

Trang 26

(xem như giá trị bù vào) nhằm đo độ sai lệch của mẫu bị phân loại sai qua đó giá trị này có tác dụng kéo phần tử về đúng nhãn của nó

y i (w.x i + b) ≥ 1 − ξi, với i = 1, ,n (1.13)

Hay nói cách khác, hàm mục tiêu có bổ sung thêm một hệ số mới để phạt (penalty)

các điểm bị phân loại nhầm thì giá trị ξi khác không và bài toán tối ưu hóa trở thành

bài toán tối ưu hóa giữa lề cực đại và mức phạt nhỏ nhất Nếu hàm phạt là tuyến tính thì bài toán trở thành dạng như sau:

} (1.15)

1.3.2.4 Hàm nhân

Hàm nhân (Kernel function, còn gọi là hàm lõi) ký hiệu K là một hàm số trên không gian X, với mọi cặp vector ta có:

( ) ( ) ( ) (1.16)với là ánh xạ từ không gian mẫu X tới một không gian thuộc tính F được xác

định Khi đó, hàm phân loại có dạng:

b x x K y x

i

),()

Với p = 2 và d = 2, chúng ta có thể xây dựng một cách tường minh một ánh xạ Φ

từ R2 tới R3 như sau:

),2,(),(

:

2 2 2 1 2 1 2

1

3 2

u u u u u

u

R R

 (1.19)

và K(u, v) chính là tích vô hướng của hai vector Φ(u) và Φ(v) trong R3 (với lưu ý

rằng một hàm nhân có thể tương ứng với nhiều ánh xạ) Với d > 2, ta có:

Trang 27

18

) , ( ) 1 , 1 ( ) (

1 1 2

1

2

))(

()

().(

d

j

j i j i d

i d

j

j i j i i

d

i

u v

- Hàm nhân RBF: là hàm số có dạng: 2

2 2 /

),(u v e u v

K (1.21)

trong đó δ thường được gọi là độ rộng (width) của hàm Trong trường hợp này, số

chiều của không gian đặc trưng là vô hạn Do vậy, khả năng của các hàm tuyến tính cũng trở nên không giới hạn

1.3.2.5 Phân loại phi tuyến (nonlinear classification)

Đối với phân loại phi tuyến có thể thực hiện việc ánh xạ các vector đặc trưng phi tuyến vào một không gian nhiều chiều hơn để có thể tuyến tính hóa rồi dùng phân loại tuyến tính trong không gian mới này Đặc biệt, là một hàm ánh xạ từ không gian mẫu d chiều ban đầu vào không gian đặc trưng F được định nghĩa là Φ : Rd → F Đối với một vector đặc trưng gốc ( ), vector đặc trưng chuyển đổi được cho bởi ( x) Nhãn y vẫn giữ nguyên Do đó, mẫu huấn luyện ( ) trở thành ( ( ) ) Sau đó, ta tìm một siêu phẳng trong không gian chuyển đổi F phân tách các mẫu huấn luyện ( (x1),y1),…,( (x n),y n)

Việc thực hiện phân loại phi tuyến bằng cách biến đổi qua một không gian khác để

có thể tuyến tính hóa phân loại Trong trường hợp không thể phân chia các lớp dữ liệu một cách tuyến tính trong không gian ban đầu thì thực hiện biến đổi dữ liệu trong không gian ban đầu vào một không gian mới nhiều chiều hơn, để việc phân loại chúng trở nên dễ dàng hơn trong không gian mới theo cách tiếp cận tuyến tính đã có uá trình tuyến tính hóa được thể hiện như trong Hình 1.7 minh họa như sau:

Hình 1.7 Tuyến tính hóa phân loại phi tuyến bằng cách biến đổi tập dữ liệu

sang một không gian mới có khả năng phân loại tuyến tính[25]

Trang 28

Với trường hợp (a) là biến đổi trong không gian 1D thành 2D có thể sử dụng hàm

biến đổi ( ) còn trường hợp (b) là biến đổi 2D thành 3D theo một hàm

Le Cun và các cộng sự đã áp dụng các thuật toán truyền ngược tiêu chuẩn, đối với một mạng neuron sâu với mục đích nhận dạng chữ viết tay mã ZIP trong các bức thư[2] Nhưng do sự hạn chế về tài nguyên tính toán của các hệ thống phần cứng tại thời điểm

đó nên kỹ thuật học sâu chưa đạt được kết quả để ứng dụng trong thực tế (chạy thuật toán mất nhiều thời gian mới cho ra kết quả) Kiến trúc mạng neural sâu này là nền tảng cơ bản của giải pháp học sâu được nghiên cứu và ứng dụng trong thực tế Mạng neural học sâu là một dạng của kỹ thuật học sâu, các nghiên cứu và đề xuất mô hình để giải quyết những bài toán phức tạp bằng các phương pháp dựa trên cơ sở mạng thần kinh nhân tạo Các công nghệ tiên tiến, hiện đại như nhận diện giọng nói, thị giác máy tính, xử lý ngôn ngữ tự nhiên và những vấn đề khác của ngành trí tuệ nhân tạo (AI) đang áp dụng kỹ thuật học sâu

Học sâu một trong những lĩnh vực đang được quan tâm nghiên cứu nhất trong thời gian gần đây của ngành khoa học máy tính nói chung và ngành máy học nói riêng Kỹ thuật học sâu đã có được những thành tựu nhất định đóng góp vào sự phát triển chung của thời kỳ đầu của cuộc cách mạng công nghệ 4.0 Kỹ thuật này với độ chính xác vượt trội so với những kỹ thuật trước đây đã sử dụng và nó còn thúc đẩy sự tiến bộ trong nhiều lĩnh vực nghiên cứu như: nhận dạng đối tượng (object recognition), dịch tự động (machine translation), nhận diện giọng nói (speech recognition), và nhiều lĩnh vực khác của ngành trí tuệ nhân tạo

Ngày nay, với sự phát triển nhanh chóng về các thiết bị phần cứng cho phép lưu trữ nhiều dữ liệu và do các nguồn cung cấp tài nguyên phong phú từ người dùng mạng

xã hội được thông qua các thiết bị smartphone có khả năng thu thập và chia sẻ thông tin hình ảnh, camera kỹ thuật số giá rẻ; Đặc biệt là năng lực tính toán của hệ thống máy tính được tăng lên đáng kể với sự ra đời của công nghệ GPU trở thành công cụ hỗ trợ các tính toán song song đã giúp cải thiện thời gian huấn luyện của các mạng học

Trang 29

20

sâu, nó có thể tính toán xử lý bài toán theo thời gian thực Hai vấn đề về nguồn dữ liệu lớn và sức mạnh tính toán của máy tính đã làm cho các mạng học sâu hoạt động hiệu quả hơn, với độ chính xác vượt trội so với các phương pháp truyền thống Vì thế, kỹ thuật học sâu được các nhà nghiên cứu, doanh nghiệp đưa vào ứng dụng trong thực tế

và nó thực sự trở thành một lĩnh vực nghiên cứu tiềm năng Những kết quả nổi bật của

kỹ thuật học sâu trong những năm gần đây có thể kể đến là: Năm 2011, hãng công nghệ nổi tiếng Google đã lập dự án Google Brain, Facebook cũng thành lập AI Research Unit để nghiên cứu các thuật toán học sâu và thực tế đã chứng minh sự thành công của các dự án này Với các ứng dụng thực tế như khả năng nhận diện giọng nói của các trợ lý ảo trong sản phẩm Google Now của Google, Cortana của Microsoft và Siri của Apple, nhận diện khuôn mặt từ phần mềm DeepFace của Facebook

1.4.2 Mạng neural sâu

Mạng Neural sâu (Deep Neural Network - DNN) là một mạng neuron nhân tạo (Artificial Neural Network - ANN) với nhiều đơn vị lớp ẩn kết nối với nhau từ lớp đầu vào cho tới lớp đầu ra DNN tìm kiếm và sử dụng các phép toán chuẩn xác để biến dữ liệu đầu vào thành dữ liệu đầu ra, cho dù mạng có mối quan hệ tuyến tính hay mối quan hệ phi tuyến tính phức tạp Các mạng neural sâu khác với những mạng neural đơn giản ở mức độ sâu của mạng, nghĩa là số nút trong mỗi lớp và số lớp ẩn lớn hơn nhiều so với mạng neural đơn giản Ví dụ minh họa về mạng neural đơn giản (cạn) và mạng neural sâu (phức tạp với nhiều lớp ẩn và nhiều nút) như Hình 1.8

Hình 1.8 (a) Mô hình mạng neural cạn[27] (b) Mô hình mạng neural sâu[37]

Ta có thể thấy ở Hình 1.8 (a) mạng neural cạn là mạng một lớp perceptron bao gồm một lớp đầu vào và một lớp đầu ra và có một lớp ẩn Ở Hình 1.8 (b) mạng neural sâu có nhiều lớp ẩn (3 lớp ẩn) trong mô hình mạng, do vậy ta có thể xem khái niệm

“sâu” ở đây được hiểu là mạng neural có nhiều lớp ẩn trong kiến trúc của mạng ANN

Ở trong mạng neural sâu, tại các nút của mỗi lớp sẽ được huấn luyện để nhận biết các đặc trưng riêng biệt dựa vào kết quả đầu ra của các lớp trước đó Khi đi sâu vào các lớp trong của mạng neural sâu, độ phức tạp của đặc trưng càng tăng lên, các nút có thể phát hiện, tổng hợp các đặc trưng từ những lớp trước để biểu diễn các đặc trưng ở mức cao hơn Khái niệm về “đặc trưng phân cấp” là một quá trình phân cấp tăng dần độ

Trang 30

phức tạp và độ trừu tượng của đối tượng Các mạng neural sâu có khả năng phát hiện

ra các cấu trúc tiềm năng trong các cơ sở dữ liệu không được gán nhãn và phi cấu trúc Mạng neural sâu được tạo ra để giải quyết các tập dữ liệu rất lớn trong không gian nhiều chiều với hàng tỷ các tham số cần xử lý thông qua các hàm biến đổi phi tuyến Các loại dữ liệu này luôn có rất nhiều ở trong thế giới thực, các kết quả thực nghiệm cho thấy rằng mạng neural sâu giải quyết rất hiệu quả các dữ liệu phi cấu trúc như dữ liệu thô đa phương tiện, hình ảnh, văn bản, video, âm thanh Các kỹ thuật học sâu được sử dụng tốt cho các bài toán về xử lý, nhận dạng và phân loại dữ liệu thực không được gán nhãn, dữ liệu tương đồng và dị thường trong dữ liệu mà không được con người tổ chức lại như trong các cơ sở dữ liệu quan hệ để quản lý Một ví dụ điển hình trong việc thể hiện ưu thế của mạng neural sâu qua bài toán được gọi là album ảnh thông minh Album ảnh thông minh được xây dựng trên cơ sở các kỹ thuật học sâu, thực hiện học hàng triệu ảnh và phân chúng vào đúng các lớp thực của nó bằng cách phân tích, đánh giá tương tự giữa các ảnh.[25]

Hình 1.9 Biểu diễn đặc trưng đối tượng trong mạng học sâu[28]

1.4.3 Mạng neural tích chập (CNN)

Một trong những dạng tiêu biểu và được sử dụng nhiều nhất hiện nay của mô hình mạng neural sâu (mạng học sâu) đó là mạng neural tích chập (convolutional neural network - CNN) Mạng CNN có khả năng nhận dạng và phân loại hình ảnh với độ chính xác rất cao và đã được nhiều hãng công nghệ nổi tiếng như Google, Facebook, Amazon, Baidu…ứng dụng vào các hệ thống xử lý ảnh lớn của họ với nhiều mục đích

Trang 31

22

khác nhau như tìm kiếm ảnh, tagging tự động, nhận diện khuôn mặt, phát triển xe hơi

tự lái hay đưa ra các khuyến nghị cho người dùng

Mạng CNN phát triển dựa trên ý tưởng cải tiến cách thức của các mạng neural nhân tạo truyền thẳng (Feedforward Neural Network) bị hạn chế học với các dữ liệu hình ảnh bởi sự liên kết quá đầy đủ giữa các điểm ảnh vào node Kích thước của ảnh càng lớn thì số lượng liên kết càng tăng thì khối khối lượng tính toán càng lớn Ví dụ: một ảnh xám có kích thước 28×28 (pixels) sẽ cho ra vector đặc trưng có 784 chiều, với một ảnh màu (RGB) cùng kích thước sẽ là 2352 chiều, có nghĩa là cần tới 2352 trọng

số nối giữa lớp vào một node ở lớp ẩn kế tiếp Số lượng trọng số sẽ càng lớn hơn nữa nếu số lượng node trong lớp ẩn và số lượng lớp ẩn tăng lên Ta có thể thấy với một bức ảnh nhỏ như vậy thì cũng cần đến số lượng tính toán rất lớn, chính vì vậy làm cho

mô hình mạng thao tác với các ảnh có kích thước lớn trở nên khó khăn hơn Chính sự liên kết đầy đủ này cũng tạo ra sự dư thừa khi với mỗi bức ảnh, các thông tin chủ yếu thể hiện qua sự phụ thuộc giữa các điểm ảnh với những điểm xung quanh nó mà không phụ thuộc với các điểm ảnh ở cách xa nhau Dựa vào ý tưởng này mạng neural tích chập (CNN) ra đời với một kiến trúc mới khác so mạng truyền thẳng Mạng CNN xây dựng liên kết chỉ sử dụng một phần cục bộ trong ảnh kết nối đến node trong lớp tiếp theo thay vì toàn bộ ảnh như trong mạng nơ-ron truyền thẳng

Hình 1.10 Kiến trúc mạng tích chập đơn giản[29]

Mạng neural tích chập gồm có: một lớp đầu vào (input layer), một lớp đầu ra (out layer) và một số lớp ẩn (hidden layer) Các lớp ẩn có các lớp như: lớp tích chập (convolutional layer), lớp giảm kích thước (pooling layer), lớp sửa dữ liệu (ReLU layer), lớp kết nối đầy đủ (full connected layer) và lớp chuẩn hóa (normalization layer) Kiến trúc cơ bản của mạng tích chập gồm có: lớp Convolutional, lớp Pooling,

lớp RELU và lớp Fully connected

1.4.3.1 Lớp Convolutional (lớp tích chập)

Lớp tích chập là lớp quan trọng nhất của mạng CNN, nó thể hiện ý tưởng của mạng neural tích chập Thay vì kết nối toàn bộ điểm ảnh, phép biến đổi tích chập là

Trang 32

phép kết nối cục bộ, với một bộ trọng số được gọi là mặt nạ lọc (filter kernel) hay mặt

Trong mạng CNN, đầu vào của lớp tích chập là một ảnh kích thước M x N x r với:

Trang 33

1.4.3.2 Lớp pooling (lớp giảm kích thước)

Lớp pooling là lớp thực hiện các tính toán chính trong cấu trúc mạng CNN nhằm mục đích làm giảm kích thước các neural ở lớp trước, qua đó làm giảm độ phức tạp tính toán trong xử lý và biểu diễn đặc trưng mà vẫn giữ được thông tin quan trọng nhất của dữ liệu Trong mạng CNN, pooling là quá trình tính toán trên ma trận và toán tử pooling được thực hiện độc lập trên mỗi kênh màu của ma trận ảnh đầu vào

Các toán tử pooling có các dạng khác nhau như: Max pooling (lọc cực đại), Average pooling (lọc trung bình) Nó dùng một cửa sổ lọc có kích thước cụ thể (chẳng hạn 2x2 hoặc 3x3, ) và thực hiện quét qua trên toàn bộ không gian của đặc trưng, tại mỗi vị trí được xét trong cửa sổ lọc thì chỉ lựa chọn và giữ lại phần tử có giá trị lớn nhất (với Max pooling), hoặc giá trị trung bình của các phần tử trong cửa sổ lọc (với Average pooling) hoặc giá trị chuẩn L2-norm Về mặt ý nghĩa thì Max pooling xác

Trang 34

định vị trí cho tín hiệu mạnh nhất khi áp dụng một loại filter, nó cũng tương tự như là một bộ lọc phát hiện ví trị đối tượng bằng filter trong bài toán phát hiện đối tượng trong ảnh

Hình 1.13 thể hiện cách thức hoạt động của hai kiểu lọc pooling (Max pooling và Average pooling) cho ra hai kết quả khác nhau, nó làm giảm kích thước từ 4x4 thành 2x2 Nếu dùng cửa sổ lọc với kích thước 2x2 thì sau khi thực hiện pooling, kết quả thu được không gian mẫu giảm còn một phần tư số neural so với ban đầu của lớp, nghĩa là giảm đi 4 mỗi chiều, những chiều sâu của lớp là không thay đổi Lớp pooling hoạt động độc lập với độ sâu của đầu vào và thay đổi kích thước trong miền không gian hai chiều Với kiểu max pooling, các giá trị lớn nhất trong mỗi vùng sẽ giúp bảo toàn tính phù hợp của mỗi đặc trưng bên trong mỗi vùng Nghĩa là nó không quan tâm quá nhiều

về vị trí chính xác nơi đặc trưng phù hợp, miễn là nó phù hợp ở chỗ nào đó trong cửa

sổ lọc.[10, 11]

Hình 1.14 Minh họa giảm kích thước nhờ lớp pooling[36]

1.4.3.3 Lớp ReLU ( lớp hiệu chỉnh hay lớp sửa dữ liệu)

Phép biến đổi covolution là một phép biển đổi tuyến tính Vì vậy, nếu tất cả các neural được tổng hợp bởi các phép biến đổi tuyến tính thì một mạng neural đều có thể đưa về dưới dạng một hàm tuyến tính Do đó tại mỗi neural cần có một hàm truyền dưới dạng phi tuyến, có nhiều dạng hàm phi tuyến được sử dụng trong quá trình này nhưng các nghiên cứu gần đây chứng minh được việc sử dụng hàm ReLu (Rectified Linear Unit) cho kết quả tốt hơn Lớp ReLU về cơ bản là chỉ áp dụng hàm truyền ReLu nhằm hiệu chỉnh giá trị các nút trong mạng, nó có vai trò quan trọng trong quá trình xử lý của mạng CNN nhằm loại bỏ những phần tử âm và thay thế tất cả các phần

tử âm bởi giá trị không (0) Lớp ReLU sẽ giúp các hệ thống xử lý trong CNN giữ chắc chắn mô hình bằng cách làm cho các giá trị đã được học khỏi việc bị mắc kẹt gần giá

trị 0

Trang 35

26

Hình 1.15 Minh họa hoạt động của lớp ReLU[33]

1.4.3.4 Lớp normalization (lớp chuẩn hóa)

Lớp chuẩn hóa có nhiều dạng khác nhau được đề xuất sử dụng trong kiến trúc CNN Nó được đưa vào với ý định thực hiện lược đồ ức chế quan sát của bộ não sinh học Trong neural sinh học, nó được hiểu là khả năng một neural thần kinh kích động

để làm dịu các láng giềng của nó Chúng ta muốn xác định một đỉnh cực đại cục bộ nghĩa là có xu hướng tạo ra một sự tương phản trong một vùng để làm tăng độ nhạy cảm của nhận thức Đồng thời việc chuẩn hóa để giải quyết vấn đề phân phối các giá trị của neural quá rộng Lớp chuẩn hóa thường được sử dụng giữa lớp tích chập và lớp ReLU nhằm mục đích tăng tốc độ huấn luyện và làm giảm sự nhạy cảm việc khởi tạo tham số của mạng Tuy nhiên, những lớp chuẩn hóa này không được ưu tiên sử dụng

vì trong thực tế đóng góp của nó không lớn vào kết quả chung.[25]

1.4.3.5 Lớp fully connection (lớp kết nối đầy đủ)

Lớp kết nối đầy đủ có kiến trúc mạng tương tự kết nối trong mạng neural truyền thẳng truyền thống Các node trong lớp kết nối đầy đủ được kết với toàn bộ các node ở lớp tiếp theo Ở lớp này, kích thước của lớp không còn quá lớn so với mô hình mạng truyền thẳng truyền thống, nghĩa là số các tham số không lớn và số phép toán cần thực hiện trên lớp cũng không quá phức tạp và có thể sử dụng mô hình truyền thẳng để thực hiện phân loại trực tiếp dữ liệu

Do đó, lớp fully connection đảm nhiệm chức năng như mô hình phân lớp dựa trên kết quả đặc trưng đã được xử lý và trích xuất ở các lớp trước đó Trong CNN lớp này thường được sử dụng ở lớp cuối của kiến trúc mạng

Trang 36

Hình 1.16 Mô hình lớp fully connection[25]

Trang 37

28

Chương 2: MẠNG NEURAL TÍCH CHẬP TRONG NHẬN

DẠNG TIỀN GIẤY

2.1 Một số mạng neural tích chập điển hình trong nhận dạng đối tượng

Mạng CNN được áp dụng khá nhiều trong các bài toán nhận dạng như: nhận dạng vật thể trong ảnh, nhận dạng chữ viết tay, nhận dạng vật thể 3D, xử lý tiếng nói, xử lý ngôn ngữ tự nhiên, … với độ chính xác rất cao

Các nhà khoa học đã nghiên cứu và đề xuất nhiều kiến trúc mạng CNN thông qua các bài báo khoa học và đã được kiểm chứng, áp dụng cho các bài toán khác nhau như: eNet, AlexNet, ZFNet, VGGNet, GoogleNet, …

2.1.1 Mạng LeNet

Mạng LeNet là một trong những kiến trúc mạng CNN được phát triển bởi Yann ecun, được sử dụng rất thành công việc nhận dạng chữ viết tay, đặc biệt là với kiến trúc LeNet-5 và mô hình pretrain[12]

Hình 2.1 Kiến trúc mạng LeNet-5[12]

Pretrain là mô hình của mạng đã được huấn luyện trên tập dữ liệu tiêu chuẩn (theo phạm vi, mục tiêu xây dựng mạng) Người sử dụng có thể dùng mô hình pretrain đưa trực tiếp vào trong chương trình để giải quyết bài toán hoặc tiếp tục huấn luyện dữ liệu

cụ thể của bài toán ứng dụng đó

Hình 2.1 trên minh họa kiến trúc mạng LeNet-5 với đầu vào với hình ảnh 32 x 32

x 1 (mục tiêu là nhận dạng chữ viết tay) Trong lớp đầu tiên (C1), mạng sử dụng sáu

bộ lọc 5 x 5 với stride 1 và thu được kích thước 28 x 28 x 6 Sau khi tích chập giảm kích thước từ 32 x 32 xuống 28 x 28 Sau đó, ở lớp S2 (lấy mẫu lớp con) sử dụng pooling (lọc trung bình) giảm kích thước và nhận được kích thước là 14 x 14 x 6 Tiếp

đó, lớp C3 sử dụng một lớp tích chập khác với bộ lọc 16 x 5 và nhận được kích thước

là 10 x 10 x 16 Tiếp theo, lớp S4 pooling (lọc trung bình) thu được kích thước là 5 x 5

x 16 Sau đó, lớp tiếp theo (C5) là một lớp được kết nối đầy đủ với 120 node Sau đó,

Trang 38

lớp C5 gồm 120 node này kết nối đầy đủ với lớp F6 có 84 node Nhìn theo mô hình kiến trúc của mạng này, ta nhận thấy khi chúng ta đi sâu hơn vào trong mạng (từ trái qua phải) chiều cao và chiều rộng có xu hướng giảm và số kênh tăng lên Mạng Lenet5 chỉ có 60.000 tham số, đây là mô hình kiến trúc mạng khá phổ biến hiện nay:

Conv → pool → conv → pool → fully connected → fully connected → output Kiến trúc LeNet5 là một kiến trúc cơ bản, được xây dựng trên cơ sở mạng tích chập sử dụng tuần tự dùng 3 lớp (layer) tích chập, pooling, hiệu chỉnh không tuyến tính để xử lý đặc trưng ảnh được phân phối trên toàn bộ ảnh với các phép tích chập có khả năng học các tham số một cách hiệu quả để trích xuất các đặc trưng Mạng LeNet

là tiền đề của kỹ thuật học sâu và đạt được kết quả thực nghiệm quan trọng làm nỗi bật

kỹ thuật học sâu trong xử lý ảnh tại thời điểm đó

2.1.2 Mạng AlexNet

Mạng AlexNet phát triển bởi nhóm tác giả: Alex Krizhevsky, Ilya Sutskever và Geoff Hinton Năm 2012, mô hình mạng này được giới thiệu với cấu trúc tương tự như eNet nhưng với số lượng neuron, filter và layer lớn hơn Mô hình pretrain của mạng AlexNet được sử dụng rất thành công và phổ biến trong lĩnh vực nhận dạng đối tượng ảnh Được xem là mạng neural đầu tiên phổ biến rộng rãi khả năng ứng dụng của mạng CNN Những kết quả thu được của mạng AlexNet đã nâng tầm kỹ thuật học sâu CNN và được sự quan tâm lớn của nhiều nhà khoa học Nó có khả năng ứng dụng để giải quyết các bài toán nhận dạng mẫu trong thực tế nhờ có độ chính xác cao và tốc độ

xử lý nhanh chóng Những ưu điểm này của mạng AlexNet có được là nhờ sử dụng các thuật toán xử lý song song trên GPU, với nền tảng công nghệ CUDA làm cho mô hình này có khả năng ứng dụng trong thời gian thực Nhóm tác giả đã xây dựng kiến trúc mạng CNN 8 lớp trong công trình công bố đầu tiên[13], mô tả qua Hình 2.2

Hình 2.2 Kiến trúc của mô hình AlexNet[13]

Trong hệ thống công cụ phần mềm Matlab, mô hình Pretrained AlexNet đã được tích hợp vào công cụ Neural Network từ năm 2017 với kiến trúc 25 lớp trong Bảng 2.1.[25]

Trang 39

30

Bảng 2.1 Bảng mô tả kiến trúc 25 lớp của mạng AlexNet trong Matlab[26]

Mô hình mạng AlexNet có những điểm chính sau:[25]

- Mô hình pretrain AlexNet được huấn luyện trên tập dữ liệu lớn ImageNet[14] Tập dữ liệu này có hơn 15 triệu ảnh đã được gán nhãn (annotation) với hơn 22 nghìn lớp đối tượng khác nhau

1 Image Input Anh đầu vào kích thước chuẩn hóa 227x227x3

2 Convolution 96 bộ lọc tích chập kích thước 11x11x3, bước trượt với stride [4 4]

3 ReLU Sử dụng bộ lọc hiệu chỉnh đơn vị tuyến tính

4 Cross Channel

Normalization Chuẩn hóa cross channel

5 Max Pooling ớp max pooling sử dụng kích thước 3x3, bước trượt stride [2 2]

6 Convolution 256 bộ lọc tích chập kích thước 5x5x48, bước trượt với stride [1 1]

7 ReLU Sử dụng bộ lọc hiệu chỉnh đơn vị tuyến tính

8 Cross Channel

Normalization Chuẩn hóa cross channel

9 Max Pooling ớp max pooling sử dụng kích thước 3x3, bước trượt stride [2 2]

10 Convolution 384 bộ lọc tích chập kích thước 3x3x256, bước trượt với stride [1

1]

11 ReLU Sử dụng bộ lọc hiệu chỉnh đơn vị tuyến tính

12 Convolution 384 bộ lọc tích chập kích thước 3x3x192, bước trượt với stride [1

1]

13 ReLU Sử dụng bộ lọc hiệu chỉnh đơn vị tuyến tính

14 Convolution 256 bộ lọc tích chập kích thước 3x3x192, bước trượt với stride [1

1]

15 ReLU Sử dụng bộ lọc hiệu chỉnh đơn vị tuyến tính

16 Max Pooling ớp max pooling sử dụng kích thước 3x3, bước trượt stride [2 2]

17 Fully Connected ớp kết nối đẩy đủ với 4096 nút đầu ra

18 ReLU Sử dụng bộ lọc hiệu chỉnh đơn vị tuyến tính

19 Dropout Sử dụng dropout 50%

20 Fully Connected ớp kết nối đẩy đủ với 4096 nút đầu ra

21 ReLU Sử dụng bộ lọc hiệu chỉnh đơn vị tuyến tính

Trang 40

- Sử dụng lớp ReLU thay cho các hàm phi tuyến nhằm giảm làm thời gian huấn luyện Kết quả cho thấy dùng kiểu lớp Re nhanh hơn nhiều lần so với các hàm truyền thống khác như tanh, sigmoid

- Sử dụng kỹ thuật tăng cường (augmentation) nhằm làm gia tăng dữ liệu huấn luyện từ bộ dữ liệu gốc bằng các phép biến đổi hình học như phép quay, tịnh tiến, trích xuất vùng con, co giãn và méo ảnh

- Thực hiện nhiều lớp dropout nhằm giải quyết vấn đề quá khớp (overfitting) đối với tập dữ liệu huấn luyện

- Huấn luyện mô hình sử dụng phương pháp giảm gradient ngẫu nhiên với các giá trị đặc biệt cho thông số động lượng (momentum) và trọng số phân rã (weight decay) nhằm tìm cực trị theo đạo hàm bậc nhất

- Thành công của AlexNet là một bước tiên phong, tạo tiền đề cho sự phát triển vượt bậc của kỹ thuật trí tuệ nhân tạo Sự thành công của AlexNet một phần nhờ vào

kỹ thuật xử lý song song trên GP , mô hình pretrain AlexNet được huấn luyện trên 2 GPU GTX 580 với thời gian từ 5 đến 6 ngày

2.1.3 Mạng ZFNet

Mạng ZFNet (ZF viết tắt của Zeiler và Fergus) là một mô hình kiến trúc mạng CNN được phát triển bởi Matthew Zeiler và Rob Fergus[15] Mạng ZFNet có kiến trúc chiến thắng cuộc thi trên ImageNet 2013 (ILSVRC 2013) Mạng neural này được phát triển từ nền tảng mạng AlexNet với việc tinh chỉnh các hyperparameter (filter size, stride,…) với những layer gần input layer, filter size và stride nhỏ hơn

Hình 2.3 Kiến trúc của mô hình mạng ZFNet[15]

Mô hình kiến trúc mạng ZFNet cơ bản tương đồng với mô hình mạng AlexNet, nó chỉ thay đổi một số điều sau:[25]

- Mô hình pretrain của mạng ZFNet sử dụng khoảng 1,3 triệu ảnh để huấn luyện, thì mạng AlexNet dùng 15 triệu ảnh

Ngày đăng: 23/04/2021, 15:56

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Yaniv Taigman, Ming Yang, Marc'Aurelio Ranzato, and Lior Wolf, "Deepface: Closing the gap to human-level performance in face verification," in Proceedings of the IEEE conference on computer vision and pattern recognition, 2014, pp. 1701-1708 Sách, tạp chí
Tiêu đề: Deepface: Closing the gap to human-level performance in face verification
[2] Yann LeCun et al., "Backpropagation applied to handwritten zip code recognition," (in A), vol. 1, no. 4, pp. 541-551, 1989 Sách, tạp chí
Tiêu đề: Backpropagation applied to handwritten zip code recognition
[3] Yann LeCun, Yoshua Bengio, and Geoffrey %J nature Hinton, "Deep learning," (in A), vol. 521, no. 7553, p. 436, 2015 Sách, tạp chí
Tiêu đề: Deep learning
[4] Chris Solomon and Toby Breckon, Fundamentals of Digital Image Processing: A practical approach with examples in Matlab. John Wiley & Sons, 2011 Sách, tạp chí
Tiêu đề: Fundamentals of Digital Image Processing: "A practical approach with examples in Matlab
[5] Frank Rosenblatt, The perceptron, a perceiving and recognizing automaton Project Para. Cornell Aeronautical Laboratory, 1957 Sách, tạp chí
Tiêu đề: The perceptron, a perceiving and recognizing automaton Project Para
[6] Rina Dechter, Learning while searching in constraint-satisfaction problems. University of California, Computer Science Department, Cognitive Systems Laboratory, 1986 Sách, tạp chí
Tiêu đề: Learning while searching in constraint-satisfaction problems
[7] Corinna Cortes and Vladimir %J Machine learning Vapnik, "Support-vector networks," (in A), vol. 20, no. 3, pp. 273-297, 1995 Sách, tạp chí
Tiêu đề: Support-vector networks
[8] Jason Weston and Chris Watkins, "Multi-class support vector machines," Citeseer1998 Sách, tạp chí
Tiêu đề: Multi-class support vector machines
[9] Chih-Chung Chang, Chih-Jen %J ACM transactions on intelligent systems Lin, and technology, "LIBSVM: a library for support vector machines," (in A), vol.2, no. 3, p. 27, 2011 Sách, tạp chí
Tiêu đề: LIBSVM: a library for support vector machines
[10] Benjamin %J arXiv preprint arXiv:. Graham, "Fractional max-pooling," (in A), 2014 Sách, tạp chí
Tiêu đề: Fractional max-pooling
[11] Jost Tobias Springenberg, Alexey Dosovitskiy, Thomas Brox, and Martin %J arXiv preprint arXiv:. Riedmiller, "Striving for simplicity: The all convolutional net," (in A), 2014 Sách, tạp chí
Tiêu đề: Striving for simplicity: The all convolutional net
[12] Yann LeCun, Léon Bottou, Yoshua Bengio, and Patrick %J Proceedings of the IEEE Haffner, "Gradient-based learning applied to document recognition," (in A), vol. 86, no. 11, pp. 2278-2324, 1998 Sách, tạp chí
Tiêu đề: Gradient-based learning applied to document recognition
[13] Alex Krizhevsky, Ilya Sutskever, and Geoffrey E Hinton, "Imagenet classification with deep convolutional neural networks," in Advances in neural information processing systems, 2012, pp. 1097-1105 Sách, tạp chí
Tiêu đề: Imagenet classification with deep convolutional neural networks
[14] Olga Russakovsky et al., "Imagenet large scale visual recognition challenge," (in A), vol. 115, no. 3, pp. 211-252, 2015 Sách, tạp chí
Tiêu đề: Imagenet large scale visual recognition challenge
[15] Matthew D Zeiler and Rob Fergus, "Visualizing and understanding convolutional networks," in European conference on computer vision, 2014, pp.818-833: Springer Sách, tạp chí
Tiêu đề: Visualizing and understanding convolutional networks
[16] Christian Szegedy et al., "Going deeper with convolutions," in Proceedings of the IEEE conference on computer vision and pattern recognition, 2015, pp. 1-9 Sách, tạp chí
Tiêu đề: Going deeper with convolutions
[17] Radigya M Correia et al., "Banknote analysis by portable near infrared spectroscopy," (in A), vol. 8, pp. 57-63, 2018 Sách, tạp chí
Tiêu đề: Banknote analysis by portable near infrared spectroscopy
[18] Vanessa da Silva Oliveira, Ricardo Saldanha Honorato, Fernanda Araújo Honorato, and Claudete Fernandes %J Forensic science international Pereira,"Authenticity assessment of banknotes using portable near infrared spectrometer and chemometrics," (in A), vol. 286, pp. 121-127, 2018 Sách, tạp chí
Tiêu đề: Authenticity assessment of banknotes using portable near infrared spectrometer and chemometrics
[19] Sangwook Baek, Euison Choi, Yoonkil Baek, and Chulhee %J Digital Signal Processing Lee, "Detection of counterfeit banknotes using multispectral images," (in A), 2018 Sách, tạp chí
Tiêu đề: Detection of counterfeit banknotes using multispectral images
[24] Đỗ Năng Toàn, Bài giảng môn học Xử lý ảnh, 2013. [Online]. Xem tại: https://tailieu.vn/doc/bai-giang-xu-ly-anh-pgs-ts-do-nang-toan-1739869.html Link

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