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

Giải pháp ứng dụng kỹ thuật deep learning trong nhận dạng mặt người (Khóa luận tốt nghiệp)

53 888 9

Đ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 53
Dung lượng 1,54 MB

Nội dung

Giải pháp ứng dụng kỹ thuật deep learning trong nhận dạng mặt ngườiGiải pháp ứng dụng kỹ thuật deep learning trong nhận dạng mặt ngườiGiải pháp ứng dụng kỹ thuật deep learning trong nhận dạng mặt ngườiGiải pháp ứng dụng kỹ thuật deep learning trong nhận dạng mặt ngườiGiải pháp ứng dụng kỹ thuật deep learning trong nhận dạng mặt ngườiGiải pháp ứng dụng kỹ thuật deep learning trong nhận dạng mặt ngườiGiải pháp ứng dụng kỹ thuật deep learning trong nhận dạng mặt ngườiGiải pháp ứng dụng kỹ thuật deep learning trong nhận dạng mặt ngườiGiải pháp ứng dụng kỹ thuật deep learning trong nhận dạng mặt người

Trang 1

TRƯỜNG ĐẠI HỌC QUẢNG BÌNH KHOA KỸ THUẬT – CÔNG NGHỆ THÔNG TIN

Trang 2

TRƯỜNG ĐẠI HỌC QUẢNG BÌNH KHOA KỸ THUẬT – CÔNG NGHỆ THÔNG TIN

KHÓA LUẬN TỐT NGHIỆP

Giảng viên hướng dẫn:

TS Hoàng Văn Dũng

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi, các số liệu và kết quả nghiên cứu nêu trong luận văn là trung thực, được tác giả cho phép sử dụng và chưa từng được công bố trong

bất kỳ một công trình nào khác

Tác giả luận văn

Đặng Văn Đạt

Trang 4

MỤC LỤC

MỞ ĐẦU 1

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

2 Mục đích nghiên cứu 1

3 Đối tượng, phạm vi nghiên cứu 2

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

3.2 Phạm vi nghiên cứu 2

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

5 Ý nghĩa khoa học và thực tiễn đề tài 2

6 Bố cục luận văn 2

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Một số kỹ thuật xử lý ảnh trong nhận dạng 4

1.1.1 Tiền xử lý ảnh 4

1.1.2 Các phép toán hình thái học 4

1.1.3 Một số bộ lọc 5

1.1.4 Nhận dạng 7

1.2 Học máy 8

1.2.1 Máy vector hỗ trợ (Suport Vector Machine) 8

1.2.2 Deep learning 13

1.3 Kỹ thuật deep learning 14

1.3.1 Mạng nơ ron nhân tạo 14

1.3.2 Mạng nơ ron tích chập 22

Trang 5

CHƯƠNG 2

ÁP DỤNG KỸ THUẬT DEEP LEARNING VÀO NHẬN DẠNG

KHUÔN MẶT

2.1 Bài toán nhận dạng khuôn mặt con người 29

2.2 Áp dụng kỹ thuật Deep learning vào nhận dạng khuôn mặt 29

2.2.1 Mô hình giải pháp nhận dạng khuôn mặt 29

2.2.2 Phân tích giải pháp nhận dạng khuôn mặt 30

2.2.3 Thuật toán lan truyền ngược 31

2.2.4 Quá trình huấn luyện mạng nơ ron tích chập sâu (DCNN) 32

CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH, CÀI ĐẶT, THỬ NGHIỆM VÀ ĐÁNH GIÁ 3.1 Thư viện TensorFlow và OpenCV 34

3.1.1 Thư viện TensorFlow 34

3.1.2 Thư viện OpenCV 36

3.2 Ngôn ngữ và công cụ lập trình 37

3.3 Thực nghiệm 38

3.3.1 Thu thập và xử lý dữ liệu 38

3.3.2 Xử lý trước dữ liệu 39

3.3.3 Đào tạo mô hình 41

3.3.4 Nhận dạng 41

3.4 Kết quả nhận dạng 42

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

TÀI LIỆU THAM KHẢO 45

Trang 6

DANH MỤC HÌNH ẢNH

Hình 1.1 Biểu diễn phân lớp dựa trên thuật toán SVM [5] 9

Hình 1.2 Siêu phẳng phân chia dữ liệu tốt có khoảng cách lề

xa nhất [5,7]

10

Hình 1.3 Trường hợp dữ liệu có thể phân chia tuyến tính 10

Hình 1.4 Mô tả trường hợp dữ liệu không phân chia tuyến

tính

11

Hình 1.5 Dữ liệu được phân lớp bởi hàm nhân [5] 12

Hình 1.7 Mạng nơ-ron gồm nhiều perceptron [6] 15

Hình 1.10 Quá trình xử lý thông tin của một ANN [8] 18

Trang 7

Hình 1.11b Several neurons[8] 19

Hình 1.13 Phân loại dựa theo thuật toán và kiến trúc [8] 21

Hình 1.14 Mạng kết nối đầy đủ với ba lớp ẩn [6,9] 22

Hình 1.17 Trường tiếp nhận cục bộ với nơ-ron ẩn đầu tiên [6] 24

Hình 1.18 Trường tiếp nhận cục bộ với nơ-ron ẩn thứ hai [6,9] 24

Trang 8

Hình 2.2 Quá trình huấn luyện mạng nơ ron tích chập sâu

(DCNN)

33

Hình 3.1 Ví dụ về một graph trong Tensorflow 34

Hình 3.3 Hình ảnh ví dụ từ tập dữ liệu ảnh khuôn mặt cho 8

danh tính

38

Hình 3.4 Mô tả định dạng sắp xếp các thư mục trong tập dữ

liệu ảnh mẫu ban đầu

39

Hình 3.5 Hình ảnh khuôn mặt được cắt trong tập dữ liệu ảnh

ban đầu

40

Hình 3.6 Mô tả định dạng các thư mục file được lưu trữ sau

quá trình xử lý trước dữ liệu

Trang 9

MỞ ĐẦU

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

Cùng với sự phát triển của khoa học công nghệ, trí tuệ nhân tạo được xem là nhân tố định hình tương lai Với sự phát triển nhanh chóng trong những năm gần đây, trí tuệ nhân tạo đã thực sự đi vào cuộc sống Hàng loạt các công nghệ mới sử dụng trí tuệ nhân tạo ra đời giúp ích cho con người trong nhiều lĩnh vực như an ninh , bảo mật, y học, giáo dục

Machine learning là một lĩnh vực con của trí tuệ nhân tạo (AI) Nguyên tắc cốt lõi của Machine learning là các máy tiếp nhận dữ liệu và tự học Machine learning là một phương pháp phân tích dữ liệu mà sẽ tự động hóa việc xây dựng mô hình phân tích Sử dụng các thuật toán lặp để học từ dữ liệu, cho phép máy tính tìm thấy những thông tin giá trị ẩn sâu mà không được lập trình một cách rõ ràng nơi để tìm Một trong những kỹ thuật được sử dụng phổ biến trong Machine learning hiện nay là kỹ

thuật Deep learning

Deep learning là một lĩnh vực chuyên sâu trong Machine learning Nó sử dụng một số kỹ thuật của Machine learning để giải quyết các vấn đề thực tế bằng cách khai thác các mạng thần kinh nhân tạo và mô phỏng việc đưa ra các quyết định của con

người

Deep learning có ứng dụng sâu rộng trong các lĩnh vực của đời sống như tìm kiếm sự sai khác giữu các văn bản, phát hiện gian lận, phát hiện spam, nhận dạng chữ viết tay, nhận dạng hình ảnh, giọng nói… góp phần quan trọng trong việc hỗ trợ con người trong nhiều lĩnh vực đời sống Từ những ứng dụng thực tế, lợi ích mà Deep

learning đem lại và các kiến thức chuyên môn, là cơ sở để thực hiện đề tài: “Giải pháp ứng dụng kỹ thuật Deep Learning trong nhận dạng mặt người ” nhằm

nghiên cứu và ứng dụng kỹ thuật Deep learning để xây dựng hệ thống nhận dạng

khuôn mặt con người

2 Mục đích nghiên cứu

- Nghiên cứu kỹ thuật Deep learning

- Ứng dụng kỹ thuật deep learning trong nhận dạng khuôn mặt con người

Trang 10

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

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

- Đối tượng nghiên cứu của đề tài là kỹ thuật Deep Learning, thuật toán ứng dụng deep learning trong nhận dạng khuôn mặt

3.2 Phạm vi nghiên cứu

- Phạm vi nghiên cứu, hình ảnh khuôn mặt các bạn sinh viên trong lớp Đại học Công nghệ thông tin K56, giới hạn ở mức độ thực nghiệm tạo hệ thống nhận dạng mặt con người sử dụng kỹ thuật Deep learning để hệ thống nhận biết mặt của các bạn sinh viên trong lớp

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

- Phương pháp tài liệu: Nghiên cứu tài liệu về kỹ thuật deep learning Deep Learning; các phép lọc, các thuật toán tìm kiếm và so khớp mẫu trong nhận dạng xử

lý ảnh Các tài liệu về nhận dạng và xử lý ảnh và một số tài liệu liên quan

- Phương pháp thực nghiệm: Xây dựng cơ sở dữ liệu ảnh huấn luyện nhận dạng khuôn mặt, sử dụng kỹ thuật Deep Learning để huấn luyện tập dữ liệu hình ảnh khuôn mặt Kết hợp các thuật toán được thu thập trong quá trình nghiên cứu để giải quyết bài toán nhận dạng mặt người Xây dựng hệ thống dựa trên ngôn ngữ lập trình Python

sử dụng IDE Pycharm và công cụ thiết kế giao diện QT

5 Ý nghĩa khoa học và thực tiễn đề tài

- Nghiên cứu kỹ thuật Deep Learning, đưa ra cơ sở lý thuyết về các kỹ thuật của Deep Learning

- Xây dựng được chương trình thực nghiệm và đánh giá hệ thống nhận dạng khuôn mặt con người sử dụng kỹ thuật deep learning

- Ứng dụng hệ thống nhận dạng mặt con người vào hệ thống giám sát an ninh, bảo mật, quản lý thông tin cá nhân tại cơ quan, doanh nghiệp, hộ gia đình

6 Bố cục luận văn

Bố cục luận văn được chia thành 3 chương

Chương 1 Cơ sở lý thuyết

Trang 11

Trình bày một số kỹ thuật xử lý ảnh trong nhận dạng đối tượng, máy vector hỗ trợ (Suport Vector Machine) trong quá trình học máy Mô tả chi tiết về hai kiến trúc mạng nơ ron nhân tạo và mạng nơ ron tích chập

Chương 2 Áp dụng kỹ thuật Deep learning vào nhận dạng khuôn mặt

Chương này trình bày về việc ứng dụng kỹ thuật Deep learning vào nhận dạng khuôn mặt Đưa ra mô hình cho toàn bộ giải pháp, phân tích các thành phần trong hệ thống, mô tả các thành phần (cơ sở dữ liệu ảnh, các quá trình huấn luyện cơ sở dữ liệu, quá trình nhận dạng) để hình thành hệ thống nhận dạng khuôn mặt

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

Lựa chọn công cụ phát triển, xử lý dữ liệu đầu vào để đưa vào chương trình Quá trình cài đặt chương trình, quá trình chạy thử nghiệm Thống kê, đánh giá các kết quả trong quá trình thử nghiệm chương trình

Trang 12

CHƯƠNG 1

CƠ SỞ LÝ THUYẾT

Chương này trình bày một số kỹ thuật xử lý ảnh trong nhận dạng đối tượng, máy vector hỗ trợ (Suport Vector Machine) trong quá trình học máy Mô tả về hai kiến trúc mạng nơ ron nhân tạo và mạng nơ ron tích chập

1.1 MỘT SỐ KỸ THUẬT XỬ LÝ ẢNH TRONG NHẬN DẠNG

1.1.1 Tiền xử lý ảnh

Quá trình tiền xử lý đối với khuôn mặt nhằm nâng cao chất lượng ảnh, chuẩn hóa dữ liệu, kích thước ảnh Nếu các ảnh có chất lượng không tốt như bị thừa sáng, nhiễu có thể sử dụng một số phép cân bằng sáng, một số bộ lọc để tăng chất lượng hình ảnh và giảm nhiễu Trường hợp ảnh có chất lượng khá tốt thì chỉ cần chuẩn hóa ảnh (normalize image), nó khiến độ lệch giữa 2 điểm ảnh được giảm xuống làm quá trình rút đặc trưng thêm chính xác

1.1.2 Các phép toán hình thái học

Hình thái là thuật ngữ chỉ sự nghiên cứu về cấu trúc hay hình học topo của đối tượng trong ảnh Phần lớn các phép toán của "Hình thái" được định nghĩa từ hai phép toán cơ bản là phép "giãn nở" (Dilation) và phép "co" (Erosion) [1],[2]

Các phép toán này được định nghĩa như sau: Giả thiết ta có đối tượng X và phần

tử cấu trúc (mẫu) B trong không gian Euclide hai chiều Kí hiệu Bx là dịch chuyển của B tới vị trí x

Trang 13

Ví dụ: Ta có tập X như sau:

1.1.3 Một số bộ lọc

1.1.3.1 Bộ lọc Blur

Là một phép lọc làm cho trơn ảnh và khử nhiễu hạt và là một bộ lọc trung bình

Ma trận lọc (Kernel) của bộ lọc Blur có dạng:

Trong OpenCV để sử dụng Blur cho một hình ảnh, sử dụng hàm:

cv::blur(cv::InputArray src, cv::InputArray dst, cv::Size ksize,

cv::Point anchor = cv::Point(-1,-1), int borderType = 4)

Phân tích

src: Là ảnh gốc

dst: Là ảnh sau khi thực hiện phép lọc số ảnh

Trang 14

ksize: Là kích thước của ma trận lọc

anchor: Là Anchor Point của ma trận lọc Giá trị mặc định là (-1,-1)

borderType: Là phương pháp để ước lượng và căn chỉnh các điểm ảnh nếu phép lọc chúng vượt ra khỏi giới hạn của ảnh Giá trị mặc định là 4

1.1.3.2 Bộ lọc Sobel

Kỹ thuật sử dụng 2 ma trận lọc (Kernel) xấp xỉ đạo hàm theo hướng x và y:

Là một phép lọc giúp tìm đường biên cho ảnh Trong OpenCV để sử dụng Sobel cho một hình ảnh, sử dụng hàm:

cv::Sobel(cv::InputArray src, cv::OutputArray dst, int ddepth, int dx,

int dy, int ksize = 3, double scale = (1,0) , double delta = (0,0),

int borderType = 4);

Phân tích

src: Là ảnh gốc

dst: Là ảnh sau khi thực hiện phép lọc số ảnh

ksize: Là kích thước của ma trận lọc Giá trị mặc định là 3

ddepth: Là độ sâu của ảnh sau phép lọc: VD: CV_32F, CV_64F,

dx: Là đạo hàm theo hướng x

dy: Là đạo hàm theo hướng y

Để đạo hàm theo hướng nào thì ta đặt giá trị đó lên 1

scale và delta: Là 2 thông số tùy chọn cho việc tính giá trị đạo hàm lưu giá trị

vi sai vào ảnh sau phép lọc Mặc định là 1 và 0

borderType: Là phương pháp để ước lượng và căn chỉnh các điểm ảnh nếu phép lọc chúng vượt ra khỏi giới hạn của ảnh giá trị mặc định là 4

Trang 15

Trong OpenCV để sử dụng Laplace cho một hình ảnh, bạn sử dụng hàm sau:

cv::Laplace(cv::InputArray src, cv::OutputArray dst, int ddepth, int ks ze =1, double scale =(1,0), double delta =(0,0), int borderType =4);

Có một phương pháp lọc dùng để tìm đường biên cục bộ khác là Gradient, phương pháp này làm việc khá tốt khi độ sáng thay đổi rõ nét, khi mức xám thay đổi chậm hoặc miền chuyển tiếp trải rộng thì phương pháp này tỏ ra kém hiệu quả Vậy nên người ta sử dụng phương pháp laplace để khắc phục nhược điểm này

Trong kỹ thuật lọc laplace, điểm biên được xác định bởi điểm cắt điểm không

Và điểm không là duy nhất do vậy kỹ thuật này cho đường biên rất mảnh (Rộng 1 pixel) Rất nhạy cảm với nhiễu do đạo hàm bậc 2 không ổn định

1.1.4 Nhận dạng

Nhận dạng tự động (automatic recognition), mô tả đối tượng, phân loại và phân nhóm các mẫu [2] Nó được ứng dụng trong nhiều ngành khoa học khác nhau

Nhận dạng có mẫu (supervised classification), chẳng hạn phân tích phân biệt

(discriminant analyis), trong đó mẫu đầu vào được định danh như một thành phần của một lớp đã xác định

Trang 16

Nhận dạng không có mẫu (unsupervised classification hay clustering) trong

đó các mẫu được gán vào các lớp khác nhau dựa trên một tiêu chuẩn đồng dạng nào

đó Các lớp này cho đến thời điểm phân loại vẫn chưa biết hay chưa được định danh

Hệ thống nhận dạng tự động bao gồm ba khâu tương ứng với ba giai đoạn chủ yếu sau đây:

1 Thu nhận dữ liệu và tiền xử lý

2 Biểu diễn dữ liệu

3 Nhận dạng, ra quyết định

Bốn cách tiếp cận khác nhau trong lý thuyết nhận dạng là:

1 Đối sánh mẫu dựa trên các đặc trưng được trích chọn

2 Phân loại thống kê

3 Đối sánh cấu trúc

4 Phân loại dựa trên mạng nơ-ron nhân tạo

Trong các ứng dụng rõ ràng không thể chỉ dùng có một cách tiếp cận đơn lẻ để phân loại “tối ưu” do vậy cần sử dụng cùng một lúc nhiều phương pháp và cách tiếp cận khác nhau Các phương thức phân loại tổ hợp hay được sử dụng khi nhận dạng

và nay đã có những kết quả có triển vọng dựa trên thiết kế các hệ thống lai (hybrid system) bao gồm nhiều mô hình kết hợp

1.2 HỌC MÁY

1.2.1 Máy vector hỗ trợ (Suport Vector Machine)

1.2.1.1 Giới thiệu

Trong các thuật toán phân lớp trong kỹ thuật học máy giám sát thì máy véc tơ

hỗ trợ là một thuật toán hiệu quả đặc biệt trong các bài toán phân lớp dữ liệu Thuật toán này được đề xuất bởi Vladimir N Vapnik Ý tưởng chính của nó là coi các dữ liệu đầu vào như là các điểm trong một không gian n chiều và từ các dữ liệu huấn luyện ban đầu được gán nhãn sẽ tìm ra được một siêu phẳng phân lớp chính xác các

dữ liệu này, siêu phẳng sau đó được dùng để phân lớp các dữ liệu chưa biết cần tiên đoán [5]

Trang 17

Hình 1.1 Biểu diễn phân lớp dựa trên thuật toán SVM [5]

Xét một tập dữ liệu mẫu: 𝒟= {( 𝓍1,y1), ,(𝓍𝜄,y𝜄) , 𝓍 ∈ ℝ𝑛, y ∈{-1,1} Trong đó i x là một véc tơ đặc trưng hay một điểm ( trong không gian n chiều

𝑥𝑖 ∈ ℝ𝑛 biễu diễn tập mẫu i d cặp ( , ) ii xybiểu diễn rằng với một véc tơ đặc trưng i

x thì được gán nhãn là i y tương ứng trong đó y ∈{-1,1} hay nói cách khác với tập mẫu i d sẽ được gán nhãn cho trước là i y Ta có phương trình một siêu phẳng được cho như sau :

Trang 18

Hình 1.2 Siêu phẳng phân chia dữ liệu tốt có khoảng cách lề xa nhất [5],[7]

1.2.1.2 Phân lớp dữ liệu phân chia tuyến tính

Việc huấn luyện Suport Vector Machine (SVM) với mục đích là để tìm ra các support vector và MMH MMH là ranh giới phân chia tuyến tính giữa các lớp và vì thế SVM tương ứng có thể được sử dụng để phân lớp dữ liệu mà dữ liệu đó có thể phân chia tuyến tính thì SVM được huấn luyện được gọi là SVM tuyến tính

Sau khi huấn luyện SVM, chúng ta sẽ phân loại các bộ mới

Hình 1.3 Trường hợp dữ liệu có thể phân chia tuyến tính

Công thức Lagrangian [5]:

𝑑(𝑋𝑇) = ∑ 𝑦𝑖𝛼𝑖

𝑙

𝑋𝑇 + 𝑏0

Trang 19

Trong đó:

𝑋𝑇 là một bộ test

𝑦𝑖 là nhãn lớp của support vector 𝑋𝑖

𝑙 là số lượng các support vector

𝛼 là nhân tử Lagrangian

𝑏0 là biến số được xác định bởi sự tối ưu hóa hay các thuật toán SVM

MMH được xem là ranh giới quyết định trong việc quyết định xem một bộ test

bất kỳ sẽ thuộc vào lớp nào

Giả sử cho một bộ test XT, ta gắn nó vào phương trình trê, sau đó kiểm tra dấu hiệu của kết quả Từ đó ta sẽ được bộ test sẽ rơi vào mặt nào của siêu phẳng Nếu dấu gường, thìXT rơi vào phía trên của MMH và SVM đoán XT thuộc về lớp +1 Nếu dấu

âm, thì XT nằm tại hoặc dưới MMH và nhãn được đoán là -1

1.2.1.3 Phân lớp dữ liệu không phân chia tuyến tính

Trường hợp dữ liệu không thể phân chia tuyến tính được nghĩa là không có đường thẳng nào có thể vẽ được để phân chia lớp này [5]

Hình 1.4 Mô tả trường hợp dữ liệu không phân chia tuyến tính

Hình 1.4 cho thấy được trường hợp dữ liệu không phân chia tuyến tính trên không gian 2 chiều Ở đây ta không thể vẽ một đường thẳng phân chia 2 lớp, do đó ranh giới quyết định ở đây không tuyến tính

Trang 20

Tuy nhiên đối với trường hợp này SVM vẫn có cách để giải quyết bằng cách

mở rộng SVM phi tuyến như sau:

Bước 1: Chuyển dữ liệu nguồn lên một không gian nhiều chiều hơn bằng cách

sử dụng ánh xạ phi tuyến Một vài ánh xạ phi tuyến thông thường có thể được sử dụng để thực hiện bước này

Bước 2: Tìm những siêu phằng trong không gian mới này Cuối cùng quay lại tối ưu bình phương đã được giải quyết sử dụng công thức SVM tuyến tính Siêu phằng có biên độ lớn nhất được tìm thấy trong không gian mới tương ứng với siêu

bề mặt phân chia không tuyến tính trong không gian ban đầu

1.2.1.4 Hàm nhân (Kernel)

Trên thực tế đối với thuật toán svm chúng ta không cần phải biết một cách quá

rõ ràng các giá trị của một véc tơ dữ liệu trong không gian mới như thế nào, để tìm

ra các siêu phẳng tối ưu giá trị cần quan tâm nhất chính là tích vô hướng giữa các véc

tơ đặc trưng là ảnh của véc tơ dữ liệu ban đầu trong không gian mới, một hàm cho phép tìm ra các tích vô hướng của các dữ liệu ảnh này được gọi hàm nhân Kernel đây

là một hàm hết sức quan trọng trong thuật toán svm: 𝐾(𝑥𝑖, 𝑥𝑗) = ∅(𝑥𝑖) ∙ ∅(𝑥𝑗) Một số hàm nhân (Kernel) cơ bản [4]:

Hàm nhân tuyến tính (linear): 𝐾(𝑥𝑖, 𝑥𝑗) = 𝑥𝑖∙ 𝑥𝑗

Hàm nhân đa thức (polynomial): 𝐾(𝑥𝑖, 𝑥𝑗) = (𝛾𝑥𝑖∙ 𝑥𝑗 + 𝑟)𝑑, 𝛾 > 0

Hàm RBF (radial basis funciont): 𝐾(𝑥𝑖, 𝑥𝑗) = 𝑒𝑥𝑝(−𝛾‖𝑥𝑖− 𝑥𝑗‖2), 𝛾 > 0 Hàm sigmoid: 𝐾(𝑥𝑖, 𝑥𝑗) = tanh (𝛾𝑥𝑖∙ 𝑥𝑗 + 𝑟)

Hình 1.5 Dữ liệu được phân lớp bởi hàm nhân [5]

Trang 21

Trong hình 1.5 Bên trái là một SVM với polynominal kernel bậc 3 được áp dụng

để phân lớp dữ liệu phi tuyến tính Hình bên phải là một SVM với radial kernel được

áp dụng Trong ví dụ này cả hai Kernel đều tỏ ra tương đối thích hợp với việc ra quyết định phân lớp

1.2.2 Deep learning

1.2.2.1 Giới thiệu

Deep learning 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 Deep learning là một lớp của các thuật toán máy học :

- 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

1.2.2.2 Phương pháp deep learning

Các lớp được sử dụng trong deep learning bao gồm các lớp ẩn của một mạng nơ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 [6]

Sự khác nhau giữa deep learning và học nông: deep learning 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 đó, deep learning 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 deep learning dựa

Trang 22

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 Deep learning 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 Deep learning 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 deep learning này thường được xây dựng với phương pháp lớp chồng lớp tham lam Deep learning 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 deep learning 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

* Một số thuật toán deep learning: deep learning có nhiều thuật toán khác

nhau nên nó phát triển rất nhanh nhiều biến thể và thuật toán mới ra đời liên tục trong thời gian ngắn, có thể kể đến một số thuật toán như: Mạng nơ-ron sâu (DNN - Deep Nơ-ron Network), mạng niềm tin sâu (Deep Belief Network), mạng nơ-ron chập, mạng lập trình sâu, các mạng bộ nhớ

1.3 KỸ THUẬT DEEP LEARNING

1.3.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

1.3.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, 𝑥1, 𝑥2, , và tạo ra một đầu ra (output) nhị phân duy nhất [6]

Trang 23

Hình 1.6 Một perceptron với ba đầu vào

Trong hình 1.6, perceptron có ba đầu vào 𝑥1, 𝑥2, 𝑥3 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 đầu ra Các trọng số 𝑤1, 𝑤2, 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 ∑𝑗𝑊𝑗𝑋𝑗 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:

Bằng cách thay đổi trọng số và ngưỡng, chúng ta có thể có được các mô hình khác nhau của việc ra quyết định Nhưng một perceptron không phải là một 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 1.7 Mạng nơ-ron gồm nhiều perceptron [6]

𝑥1

Output

𝑥2

𝑥3

Trang 24

Trong hình 1.7, 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ể thamgia 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 thấy đầu ra từ một perceptron đang được sử dụng như là đầu vào cho một vài perceptron khác Perceptron cho thấy rằng chúng ta có thể đưa ra các thuật toán học tự động điều chỉnh trọng số và định hướng của một mạng nơ-ron nhân tạo Điều chỉnh này sẽ xảy

ra khi phản ứng với các kích thích bên ngoài, mà không cần sự can thiệp trực tiếp của một lập trình viên Các thuật toán học cho phép chúng ta sử dụng nơron nhân tạo theo cách hoàn toàn khác với các cổng logic thông thường Mạng nơ-ron có thể học để giải quyết vấn đề một cách đơn giản trong khi vấn đề đó lại vô cùng khó khăn đối với mạch thông thường

1.3.1.2 Sigmoid

Trong thực tế, đôi khi chỉ cần một thay đổi nhỏ ở trọng số để cho ra kết quả tốt hơn, nhưng với perceptron thì việc thay đổi dù chỉ một chút ở trọng số của bất kỳ perceptron trong mạng cũng có thể dẫn đến kết quả hoàn toàn thay đổi Để khắc phục vấn đề này, ta sử dụng nơ-ron nhân tạo được gọi là nơ-ron sigmoid Nơ-ron sigmoid tương tự như perceptron nhưng có sự sửa đổi để nếu có thay đổi nhỏ trong trọng số

và định hướng chỉ gây ra một sự thay đổi nhỏ trong đầu ra Đây 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, 𝑥1, 𝑥2, 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à

𝑤1, 𝑤2, …và định hướng b Nhưng đầu ra không phải là 00 hoặc 11 Thay vào đó,

Trang 25

Một nơ-ron sigmoid với đầu vào 𝑥1, 𝑥2, trọng số 𝑤1, 𝑤2, thì khi đó định hướng b là:

Để hiểu rõ hơn sự tương đồng giữa sigmoid và perceptron, giả sử z ≡ w ⋅ x + b

là một số dương lớn, tiếp đó e-z ≈ 0 và σ(z) ≈ 1 Nói cách khác, khi z = w ⋅ x + b là lớn và dương, đầu ra từ các nơ-ron sigmoid là xấp xỉ 1, cũng giống như perceptron Giả sử theo cách khác khi z = w ⋅ x + b âm, tiếp đó e-z → ∞ và σ(z)≈ 0 Vì vậy, khi

z = w ⋅ x + b âm, hoạt động của nơ-ron sigmoid cũng tương tự với perceptron Chỉ khi w ⋅ x + b không là các giá trị quá lớn hoặc quá nhỏ thì sigmoid mới có nhiều sai lệch so với perceptron

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

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

Hình 1.8 Mạng Nơ ron một lớp ẩn [6]

Đâ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

Trang 26

ẩ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 1.8

có hai lớp ẩn:

Hình 1.9 Mạng nơ-ron hai lớp ẩn [6]

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

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

Hình 1.10 Quá trình xử lý thông tin của một ANN [8]

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

Ngày đăng: 08/09/2018, 09:54

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Hoàng Kiếm, Vũ Đức Khánh (2003) “Giáo trình xử lý ảnh”,NXB ĐHQG Sách, tạp chí
Tiêu đề: Giáo trình xử lý ảnh
Nhà XB: NXB ĐHQG
[2] 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
[3] A. Krizhevsky, I. Sutskever, and G. E. Hinton “ImageNet classification with deep convolutional neural networks”, In NIPS, pages 1106–1114, 2012 Sách, tạp chí
Tiêu đề: ImageNet classification with deep convolutional neural networks
[4] Chih-Wei Hsu, Chih-Chung Chang, and Chih-Jen Lin “A Practical Guide to Support Vector Classification”, Department of Computer Science National Taiwan University- Taipei 106- Taiwan, Last updated: May 19, 2016 Sách, tạp chí
Tiêu đề: A Practical Guide to Support Vector Classification
[5] Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani “An Introduction to Statistical Learning with Applications in R ( Springer Texts in Statistics ) ”, by Springer Publishing, 2013 Sách, tạp chí
Tiêu đề: An Introduction to Statistical Learning with Applications in R ( Springer Texts in Statistics )
[6] 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
[7] Steve R. Gunn ,“Support Vector Machines for Classification and Regression”, Technical Report, Faculty of Engineering, Science and Mathematics School of Electronics and Computer Science, 1998 Sách, tạp chí
Tiêu đề: Support Vector Machines for Classification and Regression

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w