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

Nghiên ứu các kỹ thuật học sâu và ứng dụng

71 2 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

Tiêu đề Nghiên Cứu Các Kỹ Thuật Học Sâu Và Ứng Dụng
Tác giả Nguyễn Viết Hưng
Người hướng dẫn PGS. TS Nguyễn Đức Minh
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Kỹ Thuật Điện Tử
Thể loại Luận Văn Thạc Sĩ Kỹ Thuật
Năm xuất bản 2018
Thành phố Hà Nội
Định dạng
Số trang 71
Dung lượng 6,29 MB

Nội dung

Phần sau đó là giới thiệu một số các mạng học sâu điển hình đƣợc ứng dụng rộng rãi trong thực tế.1.1 Khái niệm Học sâu deep learning là một chi của ngành máy học machie learning dựa trên

Trang 1

NGHIÊN CỨU CÁC KỸ THUẬT HỌC SÂU VÀ ỨNG DỤNG

LUẬN VĂN THẠC SĨ KỸ THUẬT Chuyên ngành: Kỹ thuật điện tử

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Trang 3

i

MỤC LỤC

MỤC LỤC i

DANH MỤC HÌNH VẼ ii

DANH MỤC BẢNG BIỂU iv

DANH MỤC CÁC TỪ VIẾT TẮT v

LỜI CẢM ƠN 1

LỜI MỞ ĐẦU 2

CHƯƠNG 1: TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP HỌC SÂU 4

1.1 Khái niệm 4

1.2 Phân loại 5

1.2.1 Mạng nơ ron tích chập- 8

1.2.2 Mạng nơ ron hồi quy- 19

1.3 Kết luận chương 33

CHƯƠNG 2 : KỸ THUẬT HỌC SÂU CHO BÀI TOÁN NHẬN DẠNG KHUÔN MẶT……… 35

2.1 Phát hiện khuôn mặt 37

2.1.1 P-Net 37

2.1.2 R-Net 39

2.1.3 O-Net 40

2.2 Trích chọn đặc trưng 40

2.3 Nhận dạng khuôn mặt 49

2.4 Kết luận chương 51

CHƯƠNG 3 : XÂY DỰNG CHƯƠNG TRÌNH CHẠY THỬ NGHIỆM 52

3.1 Đặt vấn đề 52

3.2 Xây dựng chương trình 55

3.3 Kiểm thử và đánh giá 57

3.4 Kết luận chương 60

CHƯƠNG 4: KẾT LUẬN 62

TÀI LIỆU THAM KHẢO 63

Trang 4

ii

DANH MỤC HÌNH VẼ

Hình 1.1: Vị trí của học sâu trong lĩnh vực trí tuệ nhân tạo 4

Hình 1.2: Cấu tạo nơ-ron sinh học [1] 5

Hình 1.3: Perceptron – mô hình đơn giản của một mạng neron nhân tạo 6

Hình 1.4: Cấu trúc của một mạng MultiLayer Perceptron với 2 lớp ẩn [2] 7

Hình 1.5: Ví dụ về bộ lọc của CNN [4] 10

Hình 1.6: Nhân chập bộ lọc F1 với ma trận ảnh đầu vào của số 7 [4] 11

Hình 1.7: Phép tính tích chập của bộ lọc F1 [4] 12

Hình 1.8: Bộ lọc cạnh (đứng phải, đứng trái, ngang dưới, ngang trên) với đầu vào là ảnh MNIST [4] 12

Hình 1.9: Ma trận đầu vào được bao quanh bởi đường viền phụ kích thước p (giá trị 0) [4] 13

Hình 1.10: Nhân tích chập với bước sải s = 2 [4] 14

Hình 1.11: Phép nhân chập khối với ảnh RGB [4] 14

Hình 1.12: Hai bộ lọc kích thước 3x3x3 được dùng để phát hiện cạnh đứng và cạnh ngang [4] 15

Hình 1.13: Pooling theo giá trị cực đại [4] 16

Hình 1.14: Ví dụ về mạng CNN đầy đủ dùng cho bài toán phân loại kí tự viết tay MNIST [4] 17

Hình 1.15: Một mạng RNN điển hình [5] 20

Hình 1.16: Mạng RNN cho dịch máy [9] 22

Hình 1.17: Sử dụng liên kết trực quan về ngữ nghĩa để tạo mô tả cho ảnh [12] 23

Hình 1.18: Hàm mất mát tại mỗi trạng thái ẩn 24

Hình 1.19: Lan truyền ngược của RNN 25

Hình 1.20: Hàm tanh và đạo hàm [13] 27

Hình 1.21: Mô hình RNN chuẩn chứa một lớp [14] 29

Hình 1.22: Mô hình LSTM chứa bốn lớp [14] 29

Hình 1.23: Trạng thái tế bào của LSTM [14] 30

Hình 1.24: Lớp cổng quên (Forget Gate layer) của LSTM [14] 30

Hình 1.25: Lớp cổng cập nhật (Update Gate layer) [14] 31

Hình 1.26: Cập nhật trạng thái tế bào [14] 31

Hình 1.27: Cập nhật đầu ra của mỗi tế bào [14] 32

Hình 1.28: Cấu tạo của GRU [14] 33

Hình 2.1: Các thành phần của hệ thống nhận dạng khuôn mặt 36

Hình 2.2: Tạo các bản sao ảnh với kích thước khác nhau [21] 38

Hình 2.3: Kiến trúc mạng của P-Net [21] 38

Hình 2.4: Non-Maximum Suppression [21] 39

Hình 2.5: Kiến trúc mạng của R-Net [21] 39

Hình 2.6: Kiến trúc mạng của O-Net [21] 40

Trang 5

iii

Hình 2.7: Kiến trúc mạng Inception-ResNet V1 [25] 41

Hình 2.8: Cấu tạo của khối Inception-A và Reduction-A [25] 42

Hình 2.9: Cấu tạo của khối Inception-B và Reduction-B [25] 43

Hình 2.10: Cấu tạo của khối Inception-C [25] 44

Hình 2.11: Phương pháp chọn bộ ba để huấn luyện 45

Hình 2.12: Mạng Siamese 46

Hình 2.13: Triplet loss trước và sau khi huấn luyện 46

Hình 2.14: Cách chọn bộ ba để huấn luyện mô hình 48

Hình 2.15: Mini-batch trong tập huấn luyện 49

Hình 2.16: Sử dụng One-shot learning để đăng kí khuôn mặt cho nhân viên.- 50

Hình 2.17: Các bước nhận dạng khuôn mặt 50

Hình 3.1: Một vài trường hợp bị nhận sai khi chạy dự đoán trên bộ trọng số có sẵn 53

Hình 3.2: Bộ dữ liệu CASIA-WebFace và VGGFace2 54

Hình 3.3: Bộ dữ liệu Asian-Celeb và TSDVFace 54

Hình 3.4: Căn chỉnh ảnh đầu vào 55

Hình 3.5: Quá trình huấn luyện và dự đoán 56

Hình 3.6: Kết quả trong quá trình huấn luyện 58

Hình 3.7: Visualize khi chạy dự đoán sau khi huấn luyện sử dụng t-SNE 59

Trang 6

iv

DANH MỤC BẢNG BIỂU

Bảng 1 1: Bảng tổng kết số lượng tham số tại mỗi lớp CNN- 18

Bảng 3 1: Kết quả khi chạy dự đoán với bộ trọng số huấn luyện trước- 52

Bảng 3 2: Cách tạo ra số cặp dựa vào số lượng ảnh- 55

Bảng 3 3: Bảng giá trị siêu tham số- 56

Bảng 3 4: Thông tin cấu hình máy huấn luyện- 57

Bảng 3 5: Thông tin phần mềm để huấn luyện- 57

Bảng 3-6: Kết quả trước và sau khi tinh chỉnh mô hình 58

Trang 7

v

DANH MỤC CÁC TỪ VIẾT TẮT

ANN Artificial Neural Network Mạng nơ-ron nhân tạo

BPTT Backpropagation Through Time Lan truyền ngược liên hồi

CNN Convolutional Neural Network Mạng nơ-ron tích chập

COCO Common Objects in Context Bộ dữ liệu về các đối tượng phổ

biến trong các ngữ cảnh khác nhauGRU Gated Recurrent Units Đơn vị cổng hồi quy

LSTM Long-Short Term Memory Kiến trúc nhớ dài-ngắn hạn

LWF Labeled Faces in the Wild Bộ dữ liệu gán nhãn mặt người

trong tự nhiên MLP MultiLayer Perceptron Mạng Perceptron nhều lớp

MNIST Modified National Institute of

Standards and Technology

Bộ chữ số viết tay

MTCNN Multi-task Cascaded

Convolutional Network

Mạng tích chập Cascaded đa nhiệm vụ

NLP Natural Language Processing Xử lý ngôn ngữ tự nhiên

NMS Non-Maximum Suppression Chặn không cực đại

RNN Recurrent Neural Network Mạng nơ-ron hồi quy

VGG Visual Geometry Group Nhóm hình học trực quan

Trang 8

1

LỜI CẢM ƠN Trong quá trình hoàn thành luận văn, các thầy tại IC lab 618 của trường Đại học Bách Khoa Hà Nội đã giúp đỡ và tạo điều kiện cho học viên rất nhiều Học viên xin gửi lời cảm ơn chân thành nhất đến các thầy cô trong viện Điện tử viễn thông, viện đào tạo sau Đại học và đặc biệt là PGS TS Nguyễn Đức Minh của IC lab 618 đã chỉ bảo, hướng dẫn học viên thực hiện đề tài: “Nghiên cứu các kỹ thuật học sâu và ứng dụng”.Học viên cũng muốn gửi lời cảm ơn sâu sắc đến gia đình, đồng nghiệp công ty đã động viên giúp đỡ trong suốt quá trình nghiên cứu, học tập và hoàn thiện đề tài

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

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

Trang 9

2

LỜI MỞ ĐẦU Nhận dạng khuôn mặt đang trở thành một trong những công nghệ phát triển và có rất nhiều ứng dụng thực tế Mục tiêu của luận văn này là phát triển một hệ thống nhận dạng khuôn mặt dùng cho doanh nghiệp ở Việt Nam để có thể hỗ trợ tiến tới thay thế những hệ thống chấm công hiện tại nhờ vào việc sử dụng kỹ thuật học sâu Hệ thống nhận dạng khuôn mặt sử dụng mạng nơ ron tích chập để trích chọn ra các đặc trưng -Dựa trên các đặc trưng được trích chọn ra để so sánh giữa các khuôn mặt với nhau Ngoài ra hệ thống còn có thể học trực tuyến bằng cách đăng kí những khuôn mặt mới vào cơ sở dữ liệu, điều này có ý nghĩa rất lớn trong việc ứng dụng vào nhu cầu thực tế của doanh nghiệp

Mục đích của đề tài:

Mục đích của đề tài là nguyên cứu các kỹ thuật học sâu và áp dụng vào trong hệ thống nhận dạng khuôn mặt

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

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

- Đầu vào là bộ dữ liệu khuôn mặt người Châu Á của Microsoft và bộ dữ liệu khuôn mặt người của một doanh nghiệp Việt Nam, bộ dữ liệu này được tự tạo và trích ra từ camera giám sát của doanh nghiệp

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

Phạm vi nghiên cứu của đề tài:

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

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

Luận điểm cơ bản và đóng góp mới:

Đưa ra kết quả nghiên cứu về mặt lý thuyết cơ sở của kỹ thuật học sâu trong nhận dạng khuôn mặt của người Việt Nam Xây dựng được chương trình thử nghiệm và đánh giá dựa trên một tập học trong bộ dữ liệu của Microsoft về khuôn mặt người Châu

Trang 10

3

Á và một tập kiểm tra được tạo ra từ khuôn mặt nhân viên trong một công ty ở Việt Nam, từ đó nêu ra một số vấn đề ứng dụng trong thực tế

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

Cơ sở lý thuyết về nhận dạng khuôn mặt người bằng kỹ thuật học sâu từ đó cài đặt thử nghiệm trên tập dữ liệu mẫu về khuôn mặt người Châu Á của Microsoft để có thể nhận xét, đánh giá phương pháp tìm hiểu được

Luận văn được trình bày trong 4 chương, cụ thể như sau:

Chương 1: Tổng quan về các phương pháp học sâu: Trình bày khái niệm, các nội dung

và phương pháp cơ bản của học sâu cũng như hai loại học sâu phổ biến nhất

Chương 2: Kỹ thuật học sâu cho bài toán nhận dạng khuôn mặt: Nghiên cứu cụ thể và

áp dụng kỹ thuật học sâu cho bài toánnhậ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á: Trên cơ sở lý

thuyết đã trình bày ở chương 2 để cài đặt chạy thử nghiệm và đánh giá kết quả đạt được

Chương 4: Tổng kết lại những kết quả đạt được trong luận văn, những hạn chế cũng

như hướng phát triển tiếp theo của hệ thống nhận dạng khuôn mặt cho công ty ở Việt Nam

Trang 11

4

CHƯƠNG 1 : TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP HỌC SÂU

Chương này giới thiệu tổng quan về các phương pháp học sâu, khái niệm cũng như phân loại của các phương pháp học sâu Phần sau đó là giới thiệu một số các mạng học sâu điển hình được ứng dụng rộng rãi trong thực tế

1.1 Khái niệm

Học sâu (deep learning) là một chi của ngành máy học (machie learning) dựa trên một tập hợp các thuật toán để 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 bằng cách khác bao gồm nhiều biến đổi phi tuyến

Hình 1.1: Vị trí của học sâu trong lĩnh vực trí tuệ nhân tạo

Có nhiều định nghĩa về học sâu như sau:

- Sử dụng một tầng nhiều lớp các đơn vị xử lý phi tuyến để trích tách đặc điểm 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 Các thuật toán này có thể được giám sát hoặc không cần 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 điểm 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

Trang 12

5

- Là một phần của lĩnh vực máy học 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

Các định nghĩa này có điểm chung là (1) nhiều lớp các đơn vị xử lý phi tuyến và (2) học có giám sát hoặc học không có giám sát của biểu diễn đặc tính ở mỗi lớp, với các lớp hình thành một hệ thống các tính năng phân cáp từ thấp đến cao cấp

1.2 Phân loại

Mạng nơ-ron nhân (ANN) tạo là phương pháp thành công nhất và được áp dụng rộng rãi nhất trong các phương pháp học sâu Mạng nơ-ron nhân tạo được lấy cảm hứng từ các mô hình sinh học năm 1959 được đề xuất bởi người đoạt giải Nobel David

H Hubel và Torsten Wiesel, hai người đã tìm thấy hai loại tế bào trong vỏ não thị giác chính: các tế bào đơn giản và các tế bào phức tạp Nhiều mạng nơ-ron nhân tạo có thể được xem như là các mô hình ghép tầng của các tế bào loại lấy cảm hứng từ những quan sát sinh học

Hình 1.2: Cấu tạo nơ ron sinh học- [1]

Một neuron sinh học sẽ nhận các tín hiệu điện (electrical signal) có chứa các thông tin nhất định từ các Synapse của một hay nhiều các neuron khác thông qua các đuôi gai

Trang 13

6

(Dendrites) Các giá trị tín hiệu đầu vào (input) sẽ được đưa vào trong thân của neuron (Cell body) Nếu tổng của các tín hiệu đầu vào vượt quá một ngưỡng nhất định thì thân neuron sẽ phát ra một tín hiệu điện đầu ra (output) truyền qua sợi trục (Axon) tới các Synapse Tín hiệu điện này sẽ được truyền qua các neuron khác nhau nhờ vào sự liên kết giữa các Synapse và Dendrites và độ mạnh yếu của các liên kết sẽ quyết định lượng thông tin được truyền sang Cứ như thế quá trình nay diễn ra một cách đồng thời giữa các neuron với nhau để tạo thành một mạng lưới của hệ thần kinh trong não bộ của con người Vào năm 1958, nhà khoa học Frank Rosenblatt đã dựa trên nguyên lý hoạt động trên để đề xuát ra mô hình Perceptron

Hình 1.3: Perceptron – mô hình đơn giản của một mạng neron nhân tạo

Quá trình xử lý của một Perceptron:

- Inputs (dữ liệu vào): Mỗi Input ương ứng với một thuộc tính của dữ liệu t

- Output (kết quả): Kết quả của một ANN là một giải pháp cho một vấn đề cần giải quyết

- Weights (trọng số): Đây là một thành phần rất quan trọng của một ANN, nó thể hiện mức độ quan trọng của mỗi một Input đối với quá trình xử lý thông tin (quá trình chuyển đổi dữ liệu từ Layer này sang Layer khác) Quá trình học của ANN thực chất là quá trình điều chỉnh các trọng số của các dữ liệu đầu vào để có được một đầu ra mong muốn

Trang 14

7

- Summations (hàm tổng): Tính tổng trọng số của ấ ả các input đƣợc đƣa vào t t c

mỗi nơ-ron Hàm t ng c a mổ ủ ột nơ ron đố ới n input đƣợ- i v c tính theo công thức sau:

- Transfer Function (hàm chuyển đổi): Hàm tổng (Summation Function) của một

nơ ron cho biết khả năng kích hoạt (Activation) của nơ ron đó còn gọi là kích - hoạt bên trong (internal activation) Các nơ ron này có thể sinh ra một output -hoặc không trong ANN Mối quan hệ giữa Internal Activation và kết quả (output) đƣợc thể hiện bằng hàm chuyển đổi (Transfer Function) Việc lựa chọn Transfer Function có tác động lớn đến kết quả của ANN Hàm chuyển đổi phi tuyến đƣợc sử phổ biến trong ANN là sigmoid (logical activation) function.Một mạng nơ ron đơn giản đƣợc tạo ra từ các liên kết giữa các Perceptron và là nền -tảng cho các mạng rơ ron phức tạp hơn sau này là mạng MultiLayer Perceptron (MLP) -Một mạng MLP điển hình gồm 3 thành phần chính: lớp đầu vào (input layer) và lớp đầu ra (output layer) chỉ gồm một lớp, lớp ẩn (hidden layer) có thể có một hay nhiều lớp

-Hình 1.4: Cấu trúc của một mạng MultiLayer Perceptron với 2 lớp ẩn [2]

Trang 15

8

Có hai cấu trúc mạng điển hình của mạng nơ ron nhân tạo là mạng nơ ron tích chập - (convolution neuron network) và mạng nơ-ron hồi quy (recurrent neuron network) 1.2.1 Mạng nơ ron tích chập-

-Cùng với âm thanh và văn bản thì hình ảnh là một trong những hình thức phổ biến nhất để con người diễn đạt một thông tin Đối với một người có thị giác bình thường thì có thể dễ dàng mô tả nội dung, nhận biết và phát hiện các đối tượng được thể hiện trong một bức ảnh Tuy nhiên dưới góc nhìn của máy tính thì việc này khó khăn hơn rất nhiều bởi vì máy tính nhìn một bức ảnh chỉ đơn thuần là một ma trận số (bức ảnh được cấu thành từ các điểm ảnh – pixel và được biểu diễn dưới dạng con số trong một không gian màu nhất định như RGB, …) Mục tiêu cơ bản của thị giác máy tính (computer vision) là làm sao để có thể làm cho máy tính hiểu được nội dung của một bức ảnh mà chỉ dựa vào các ma trận số đơn thuần Thị giác máy tính tập trung giảiquyết những bài toán như:

 Phân loại ảnh

 Xác định vật thể, đối tượng có trong ảnh: con người, xe cộ, động vật, …

 Tạo ảnh với những phong cách khác nhau: tạo từ ảnh gốc ra những ảnh có phong cách khác nhau

Mạng nơ ron truyền thống MultiLayer Perceptron hoạt động không thực sự hiểu quả với dữ liệu đầu vào là hình ảnh Nếu coi mỗi điểm ảnh là một thuộc tính (feature), một ảnh RBG có kích thước (100x100) sẽ có 100x100x3 = 30000 thuộc tính Nếu kích thước ảnh tăng lên 1000x1000 thì sẽ là 3 triệu thuộc tính cho mỗi ảnh đầu vào Nếu sử dụng MultiLayer Perceptron với liên kết đầy đủ (fully connected) thì nếu như lớp ẩn có

-1000 thành phần (units), ma trận trọng số sẽ có kích thước -1000 x 3 triệu tương với 3 triệu trọng số cần huấn luyện Điều này yêu cầu khối lượng tính toán cực lớn và thường

Trang 16

để thực hiện các phép biến đổi và tạo ra đầu ra (cũng chính là đầu vào của các lớp kế tiếp) Tuy nhiên lớp tích chập có điểm khác là sử dụng các phép tính tích chập để thực hiện việc biến đổi dữ liệu Mỗi lớp tích chập chứa một hoặc nhiều bộ lọc (filter –feature detector) cho phép pháp hiện và trích xuất những đặc trưng khác nhau của ảnh (hình dạng, kích thước của các vật thể có trong ảnh) Lớp tích chập càng chứa nhiều bộc lọc thì càng có khả năng trích xuất ra được những đặc trưng khó và phức tạp của ảnh Trong các mạng CNN thông thường với nhiều lớp tích chập thì những lớp CNN gần đầu vào của mạng sẽ học được những đặc trưng đơn giản của ảnh như các cạnh,viền (shape, edge) của những đối tượng trong ảnh (low level feature) Ngược lại những lớp CNN ở gần cuối sẽ học những đặc trưng phức tạp và chi tiết hơn về các đối tượng trong ảnh như mắt, mũi, v.v (high level feature)

Lấy ví dụ về CNN được sử dụng để phân loại tập các ảnh viết tay của các số từ 0 đến 9 (tập dữ liệu MNIST) Đầu vào là những bức ảnh đen trắng (Gray Scale) và được biểu diễn bởi một ma trận các điểm ảnh có kích thước cố định h x w Lớp đầu tiên của CNN sử dụng 4 bộ lọc kích thước 3x3: F1, F2, F3 và F4 với giá trị tương ứng như trong hình 1.5 Các giá trị tại mỗi ô của các bộ lọc có thể được biểu diễn bởi màu sắc tương ứng với Đen ( 1), Xám (0), Trắng (1) như trong hình dưới đây.-

Trang 17

10

Hình 1.5: Ví dụ về bộ lọc của CNN [4]

Để minh họa cho phép nhân chập, chúng ta sử dụng đầu vào là một bức ảnh viết tay của số 7, biểu diễn dưới dạng ma trận 30 x 22 và áp dụng riêng biệt với từng bộ lọc trên Phép nhân tích chập được thực hiện bằng cách trượt ma trận lọc 3 x 3 trên ma trận ảnh đầu (bộ lọc dịch sang phải/ xuống dưới 1 cột/hàng mỗi một lần trượt) cho đến khi

nó đi qua hết tất cả các vùng kích thước 3 x 3 Như minh họa cho hình 1.6, ma trận lọc F1 được chập với từng vùng (block) điểm ảnh kích thước 3 x 3 của ảnh đầu vào Tại mỗi vị trí di chuyển của ma trận F1, giá trị đầu ra được tính bằng phép tính tích chập của ma trận F1 với vùng bao phủ tương ứng

Trang 18

11

Hình 1.6: Nhân chập bộ lọc F1 với ma trận ảnh đầu vào của số 7 [4]

Ô đầu tiên (0, 0) của ma trận đầu ra có giá trị 0.01 là kết quả của phép nhân chập giữa

ma trận lọc F1 với góc trái trên cùng của ma trận đầu vào và đƣợc tính nhƣ sau:

Trang 19

Có hai nhược điểm dễ nhận thấy của việc sử dụng bộ lọc để tính tích chập đó là:

 Giả sử ta có ma trận đầu vào là 6 x 6 và bộ lọc có kích thước 3 x3 thì sau phép tính tích chập sẽ cho ra một ma trận kích thước 4 x 4 có kích thước nhỏ hơn kích thước đầu vào Tổng quát hóa nếu đầu vào là ma trận n x n sử dụng bộ lọc f x f thì đầu ra có ma trận (n – f + 1) x (n f – + 1), mỗi lần tính tích chập thì kích thước đầu ra bị giảm xuống Chính vì thế ta chỉ có thể thực hiện được một vài phép tính tích chập trước khi ma trận trở lên quá nhỏ

 Cũng với ví dụ mà trận đầu vào là 6 x 6 thì ta dễ dàng nhận thấy những điểm ảnh ở vùng trung tâm của ảnh sẽ được nhân tích chập nhiều lần hơn so với những điểm ảnh ngoài viền Điều này có nghĩa lượng thông tin trích xuất được

sẽ không đồng điều và có thể mất những thông tin quan trọng ở ngoài viền ảnh

Trang 20

13

Hình 1.9: Ma trận đầu vào được bao quanh bởi đường viền phụ kích thước p [4]

Để khắc phục hai nhược điểm trên, một đường viền phụ (padding) được thêm vào xung quanh của ma trận đầu vào (ô màu cam trong hình 9) Việc thêm đường viền phụ làm 1.tăng kích thước ma trận đầu vào từ đó dẫn đến tăng kích thước ma trận đầu ra Hơn nữa những pixel ngoài viễn cũng được tính toán nhiều hơn, từ đó tránh mất thông tin ở ngoài viền

Trong phép nhân tích chập ở trên, bộ lọc trượt trên ma trận đầu vào 1 hàng/cột trong mỗi bước di chuyển Tuy nhiên, giá trị này có thể bằng 2, 3 hoặc lớn hơn Sốhàng/c t mà b lộ ộ ọc trượt qua trong một bước di chuy n kí hi u là ể ệ s Kích thước ma tr n ậđầu ra lúc này được tính b i: ở

x Nếu n + 2p – k không chia hết cho s, chúng ta lấy chặn dưới như trong hình minh họadưới đây:

Trang 21

Hình 1.11: Phép nhân chập khối với ảnh RGB [4]

Trang 22

15

Tại một lớp tích chập nhiều bộ lọc có thể được sử dụng cùng một lúc để phát hiện

và trích xuất ra những đặc trưng khác nhau của ảnh

 Lớp liên kết đầy đủ (Fully connected – FC)

Lớp Pooling được sử dụng trong mạng CNN để giảm kích thước đầu vào, tăng tốc độ tính toán và hiệu năng trong việc trích xuất những đặc trưng của ảnh Có nhiều cách Pooling được sử dụng nhưng trong đó có hai phương pháp phổ biến nhất là Pooling theo giá trị cực đại (Max Pooling) và Pooling theo giá trị trung bình (Average Pooling)

Trang 23

16

Hình 1.13: Pooling theo giá trị cực đại [4]

Trong hình trên có sử dụng bộ lọc kích thước 2 x 2 trượt trên ma trận đầu vào 2 hàng/cột trong mỗi bước nhảy (s=2) và chia nó thành những vùng khác nhau Mỗi ô trong ma trận đầu ra lấy giá trị lớn nhất của vùng tương ứng

 Có hai siêu tham số (hyperparameters) là kích thước của bộ lọc và giá trị bước f sải s tuy nhiên không có tham số cần hu n luy n trong l p Max Pooling ấ ệ ớ

Trang 25

18

Bảng 1-1: Bảng tổng kết số lượng tham số tại mỗi lớp CNN

Activation shape Activation size # parameters

 Lớp Pooling không có tham số

 Số lượng tham số trong các lớp tích chập là không cao

 Phần lớn tham số nằm ở lớp liên kết đầy đủ

 Từ trái sang phải kích thước các hàm kích hoạt có xu hướng giảm Ta cần phải chú ý thiết lập giá trị các hyperparameters (p, s, f) vì kích thước các hàm kích hoạt giảm quá nhanh sẽ ảnh hưởng tiêu cực tới hiệu năng của CNN

Chúng ta có thể thấy có hai ưu điểu chính của lớp tích chập so với lớp liên kết đầy đủ

là chia sẻ tham số và liên kết thưa Nếu chúng ta có ảnh đầu vào kích thước 32 x 32 x 3

và sử dụng 6 bộ lọc kích thước 5 x 5 thì thu được đầu ra kích thước 28 x 28 x 6 Đầu vào có 3072 và đầu ra sẽ có 4704 thành phần (unit) Nếu sử dụng lớp liên kết đầy đủ,

ma trận trọng số có kích thước 3072 x 4704 tương đương với gần 14M tham số Trong khi đó lớp tích chập chỉ có 6 x (25 + 1) = 156 tham số Chúng ta có thể lý giải điều này theo hai cách sau:

Chia sẻ tham số: Một bộ phát hiện đặc trưng (feature detector) ví dụ như bộ

phát hiện cạnh (edge detector) hoạt động tốt trên một vùng của ảnh đầu vào thì

Trang 26

19

cũng có thể hoạt động tốt trên các vùng còn lại Các vùng bộ lọc đi qua trên ma trận đầu vào không tách biệt hoàn toàn, mà chia sẻ ít nhiều một phần diện tích (phụ thuộc vào bước sải s) Điều này dẫn tới các tham số được dùng chung cho các vùng khác nhau cùng chứa nó trong việc tinsht oán giá trị đầu ra, do đó số lượng tham số được giảm xuống đáng kể

Liên kết thưa: Một thành phần đầu ra (output unit) chỉ phụ thuộc vào bộ phát

hiện đặc trưng và một phần nhỏ của anh đầu vào thay vì toàn bộ bức ảnh Điều này khác với lớp liên kết đầy đủ, khi mỗi thành phần đầu ra phụ thuộc vào tất cả các thành phần của đầu vào

1.2.2 Mạng nơ ron hồi quy

-Như đã đề cập ở phần đầu chương 2, mạng nơ ron nhân tạo được xây dựng để mô phỏng lại cách hoạt động của bộ não con người Đối với mạng nơ ron nhân tạo thông -thường (MLP), mỗi sự kiện đầu vào (input) được xử lý một cách độc lập và đưa ra x đầu ra y (output) tương ứng mà không có sự trao đổi thông tin thu thập được tại mỗi đầu vào trong mạng Tuy nhiên, bộ não của con người hoạt động một cách phức tạp x hơn thế rất nhiều với sự kết hợp của nhiều dạng thông tin và sự kiện với nhau để đưa ra kết luận cuối cùng Ví dụ điển hình là thông tin đầu vào ở dạng chữ trong ngôn ngữ, để

-có thể điền vào từ còn thiếu trong văn bản thì chúng ta cần phải tổng hợp ngữ nghĩa của cả một câu hoặc một đoạn Đây là một quá trình phức tạp mà những mạng nơ-ron bình thường không thể mô phỏng lại được Mạng nơ ron hồi quy (Recurrent Neural -Network – RNN) ra đời để giải quyết vấn đề này

Ý tưởng chính của mạng RNN là sử dụng chuỗi các thông tin Trong các mạng nơron truyền thống tất cả các đầu và và cả đầu ra là độc lập với nhau Tức là chúng o không thể liên kết thành chuỗi với nhau Nhưng trong thực tế các mô hình này không

-tỏ ra hiệu quả trong nhiều bài toán khác nhau, đặc biệt là xử lý ngôn ngữ RNN được gọi là hồi quy (Recurrent) bởi lẽ chúng thực hiện cùng một tác vụ cho tất cả các phần

Trang 27

20

tử của một chuỗi với đầu ra phụ thuộc vào đầu ra trước đó Nói cách khác, RNN có khả năng nhớ các thông tin được tính toán trước đó Trên lý thuyết, RNN có thể sử dụng được thông tin của một văn bản rất dài, tuy nhiên thực tế thì nó chỉ có thể nhớ được một vài bước trước đó mà thôi (sẽ được đề cập ở phần sau) Về cơ bản một mạng RNN

có dạng như sau:

Hình 1.15: Một mạng RNN điển hình [5]

Mô hình trên mô tả phép triển khai nội dung của một RNN Triển khai ở đây có thể hiểu đơn giản là ta vẽ ra một mạng rơ ron chuỗi tuần tự Ví dụ ta có một câu gồm 5 -chữ, thì mạng nơ ron được triển khai sẽ gồm 5 tầng nơ ron tương ứng với mỗi chữ một - -tầng Lúc đó việc tính toán bên trong RNN được thực hiện như sau:

 xt là đầu vào tại bước Ví dụ, t x0là một vec tơ one hot tương ứng với từ thứ 1 - của câu

- st là trọng thái ẩn tại bước Nó chính là bộ nhớ của mạng t st được tính toán dựa trên cả các trạngthái ẩn trước đó và đầu vào tại chính bước đó St = f(Uxt + Wst-

1) Hàm thường là một hàm phi tuyến như f tang hyperbolic (tanh) hay ReLu

Để làm phép toán cho phần tử ẩn đầu tiên ta cần khởi tạo thêm s-1, thường giá trị khởi tạo sẽ bằng 0

 ot là đầu ra tại bước Ví dụ, ta muốn dự đoán từ tiếp theo có thể xuất hiện trong tcâu thì otchính là một vec tơ xác xuất các từ trong danh sách từ vựng của ta: - ot

= softmax(Vst)

Trang 28

21

Ta cần lưu ý một vài điểm ở mạng RNN:

 st đóng vai trò như là bộ nhớ của mạng, stsẽ tổng hợp thông tin của tất cả các trạng thái trước đó Do có rất nhiều trạng thái trước đó cần được tổng hợp, nên thực tế RNN chỉ được tổng hợp ở một hữu hạn trạng thái trước đó

 Không như mạng rơ ron truyền thống sử dụng các tham số khác nhau tại mỗi layer, m ột RNN chia sẻ cùng một bộ tham số (U, V, W) cho tất cả các bước Đây là một ưu điểm và khối lượng tính toán so với mạng nơ ron truyền thống.-

- Hình 1.15 chỉ ra rằng có nhiều đầu ra cho mỗi một bước, nhưng tùy thuộc vào bài toán cụ thể mà có thể số lượng đầu ra sẽ khác nhau Ví dụ khí dự đoán từ trong một câu, chúng ta có thể chỉ cần quan tâm đến đầu ra cuối cùng, không cần phải quan tâm đến đầu ra cho mỗi từ Tương tự, chúng ta không cần đầu vào tại mỗi bước Đặc trưng chủ yếu của RNN là trạng thái ẩn, nơi tổng hợp thông tin dưới dạng chuỗi

Trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP – Natural Language Processing), đã ghi nhận nhiều thành công của RNN cho nhiều vấn đề khác nhau Dưới đây là một vài ứng dụng của RNN trong xử lý ngôn ngữ tự nhiên:

Mô hình hóa ngôn ngữ và sinh văn bản: Mô hình ngôn ngữ cho phép ta dự

đoán được xác xuất của một từ nào đó xuất hiện sau một chuỗi các từ đi liền trước nó Do có khả năng ước lượng được độ tương tự của các câu nên nó còn được ứng dụng cho việc dịch máy Một ưu điểm của việc có thể dự đoán được

từ tiếp theo là ta có thể xây dựng được một mô hình tự sinh từ cho phép máy tính có thể tự tạo ra các văn bản mới từ tập mẫu và xác xuát đầu ra của mỗi từ Trong mô hình ngôn ngữ, đầu vào thường là một chuỗi các từ (được mô tả bằng vec-tơ one hot) và đầu ra là một chuỗi các từ dự đoán được Khi huấn luyện -mạng, ta sẽ gán ot = xt+1 vì ta muốn đầu ra tại bước chính là từ tiếp theo của t câu Một vài nghiên cứu về mô hình hóa ngôn ngữ và sinh văn bản được thể hiện trong [6 7 8 ][ ][ ]

Trang 29

22

Dịch máy (Machien Translation) tương tự như mô hình hóa ngôn ngữ ở điểm

là đầu vào là một chuỗi các từ trong ngôn ngữ nguồn (ngôn ngữ cần dịch – ví dụ

là tiếng Anh) Còn đầu ra sẽ là một chuỗi các từ trong ngôn ngữ đích (ngôn ngữ dịc – ví dụ là tiếng Việt) Điểm khác nhau ở đây là đầu ra của ta chỉ xử lý sau khi đã xem xét toàn bộ chuỗi đầu vào Một số nghiên cứu nổi bật về dịch máy được thể hiện trong [9][10 ]

Hình 1.16: Mạng RNN cho dịch máy [9]

Nhận dạng giọng nói: Đưa vào một chuỗi các tín hiệu âm thanh, ta có thể dự đoán được chuỗi các đoạn ngữ âm đi kèm với xác xuất của chúng Nghiên cứu

về nhận dạng giọng nói có thể được tìm thấy trong [11]

Mô tả hình ảnh: cùng với mạng nơ ron tích chập như đã đề cập trong phần 2.1 thì RNN được sử dụng để tự động tạo ra mô tả cho các ảnh chưa được gán nhãn

-Sư kết hợp này đã đưa ra được các kết quả đáng kinh ngạc Ví dụ như các ảnh dưới đây, các mô tả sinh ra có mức độ chính xác và độ tường tận khá cao

Trang 30

23

Hình 1.17: Sử dụng liên kết trực quan về ngữ nghĩa để tạo mô tả cho ảnh [12]

1.2.2.1 Lan truy ề n ngư ợc liên h i

Huấn luyện mạng RNN cũng tương tự như các mạng nơ ron truyền thống, tuy nhiên giải thuật lan truyền ngược (backpropagation) có sự thay đổi một chút Đạo hàm tại mỗi đầu ra phụ thuộc không chỉ vào các tính toán tại bước trước đó, mà còn phụ thuộc vào các bước trước đó nữa, vì các tham số trong mạng RNN được sử dụng chung cho tất cả các bước trong mạng Ví dụ, để tính đạo hàm tại t=4 ta phải lan truyền ngược

-cả 3 bước phía trước rồi cộng tổng đạo hàm của chúng lại với nhau Việc tính toán đạo hàm như thế này được gọi là lan truyền ngược liên hồi (BPTT – Backpropagation Through Time)

Như đã đề cập trong phần đầu của mạng RNN, ta có các công thức cơ bản c a RNN ủnhư sau (lưu ý là có một chút thay đổ ừi t thành o )

Ta cũng định nghĩa hàm mất mát, hay hàm lỗi dạng cross entropy như sau:

Trang 31

24

Ở đây, yt là t chính xác ừ ở bước t, còn là từ mà ta dự đoán Ta coi mỗi chuỗi đầy đủ (một câu) là một mẫu huấn luyện Vì vậy tổng số lỗi chính là tổng của tất cả các lỗi ở mỗi bước (mỗi từ)

Hình 1.18: Hàm mất mát tại mỗi trạng thái ẩn

Mục tiêu của ta là tính đạo hàm của lỗi với tham số U, V, W tương ứng và sau đó học các tham s này b ng cách s d ng ố ằ ử ụ Stochastic Gradient Descent (SGD) Tương tựnhư việc c ng t ng các lộ ổ ỗi, ta cũng sẽ ộ c ng tổng các đạo hàm t i mạ ỗi bước cho m i ỗ

m u hu n luy n: ẫ ấ ệ Đề tính đạo hàm, ta sử dụng quy tắc chu i vi phân Quy ỗ

tắc này được áp dụng cho vi c lan truyệ ền ngược lỗi của giải thuật lan truyền ngược

Trong đó, và là phép nhân ngoài c a 2 véc-ủ tơ Qua phép triển khai trên ta

có th ểthấy chỉ ph thu c vào các giá tr ụ ộ ị ở bước hi n thệ ời: Từ đó ta thấy rằng tính đạo hàm cho V chỉ đơn giản là phép nhân ma trận Nhưng với W và thì Uphép tính của ta lại không đơn giản như vậy:

Trang 32

chuẩn khó để huấn luyện, vì các chuỗi (câu) có thể khá dài đến tận hàng chục kí tự

Trang 33

Ở đây, cũng tuân theo quy tắc chuỗi đạo hàm Ví dụ: , các thành phần ở công thức trên đều là véc tơ vì phép lấy đạo hàm cho véc tơ cũng là véc tơ, nên kết - - -quả thu được sẽ là một ma trận (ma trận Jacobi), trong đó các phầ ử tương tứng đượn t c tính theo phép toán pointwise ới đạo hàm tương ứv ng Ta có th vi t l i công th c trên ể ế ạ ứnhư sau:

Chứng minh công thức trên được thực hiện trong [15] và phép tính trên cho ta một norm bậc 2 Vì hàm kích hoạt (tanh hay sigmoid) của ta sẽ cho kết quả đầu ra nằm

trong khoảng [-1, 1] nên đạo hàm của nó sẽ bị đóng trong khoảng [0, 1] (với sigmoid

thì giá trị sẽ là [0, 0.25])

Trang 34

27

Hình 1.20: Hàm tanh và đạo hàm [13] Nhìn vào hình trên ta có thể thấy cả hàm tanh và sigmoid sẽ có đạo hàm bằng 0 tại

2 đầu Mà khi đạo hàm bằng 0 thì nút mạng tương ứng tại đó sẽ bị bão hòa Lúc đó các nút phía trước cũng sẽ bị bão hòa theo Nên với các giá trị nhỏ trong ma trận, khi ta thực hiện phép nhân ma trận sẽ đạo hàm tương ứng sẽ bùng nổi rất nhanh, thậm chí nó

sẽ bị triệt tiêu chỉ sau vài bước nhân Như vậy, các bước ở xa sẽ không còn tác dụng với nút hiện tại nữa, làm cho RNN không thể học được các phụ thuộc xa Vấn đề này không chỉ xảy ra với mạng RNN mà ngay cả mạng nơ ron chuẩn khá sâu cũng có hiện -tượng này RNN cũng là một mạng chuẩn sâu, với số tầng mạng bằng với số từ đầu vào của một chuỗi, nên hiện tượng này có thể thấy ngay trong RNN

Với cách nhìn như trên ta có thể suy luận thêm vấn đề bùng nổ đạo hàm của RNN nữa Tùy thuộc vào hàm kích hoạt và tham số của mạng, vấn đề bùng nổ đạo hàm có thể xảy ra khi các giá trị của ma trận là lớn Tuy nhiên, bùng nổ đạo hàm có thể theo dõi được vì khi đạo hàm bị bùng nổ thì ra sẽ thu được kết quả là một giá trị phi số (NaN) làm cho trường trình của ta bị dừng hoạt động Lý do thứ hai là bùng nổ đạo hàm có thể ngăn chặn được khi ta đặt ngưỡng giá trị trên cho đạo hàm như trong [14]

Trang 35

1997 và là phương pháp phổ biến nhất trong lĩnh vực NLP Còn GRU mới được đề xuất vào năm 2014, nó là một phiên bản đơn giản hóa của LSTM Cả hai kiến trúc RNN này được thiết kế để tránh vấn đề mất mát đạo hàm và kiểu quả cho việc học các phụ thuộc xa.

1.2.2.3 M ng LS™ ạ

Mạng LSTM được thiết kế nhằm tránh cho đạo hàm bị triệt tiêu như mô tả trong phần 2.1.2 Về cơ bản, LSTM có kiến trúc như mạng RNN thuần nhưng khác nhau ở cách tính toán các trạng thái ẩn (o kí hilà ệu c a phép nhân ủ poitwise hay còn g i là – ọphép nhân Hadamard):

V i m ng RNN thu n, các tr ng thái ớ ạ ầ ạ ẩn được tính toán d a vào ự

với st là trạng thái ẩn mới, st-1 là trạng thái ẩn phía trước và xt là đầu vào của bước đó Như vậy, đầu vào và đầu ra của LSTM cũng không khác so với RNN thuần,

Ngày đăng: 22/01/2024, 16:57

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

TÀI LIỆU LIÊN QUAN

w