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

Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử

87 31 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 1,83 MB

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

Nội dung

Cứ như thế quá trình này khi diễn rađồng thời giữa một mạng lưới các neuron sẽ tạo nên hoạt động của hệ thần kinhtrong bộ não chúng ta.Lấy cảm hứng từ mô hình đó một perceptron được minh

Trang 2

Lời cảm ơnLời đầu tiên, tác giả xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất tới TS.

Lê Đình Nam, người đã tận tình hướng dẫn, giúp đỡ và động viên tác giả trongsuốt quá trình thực hiện luận văn này

Tác giả xin trân trọng cảm ơn Viện Toán ứng dụng và Tin học, Đại học BáchKhoa Hà Nội đã tạo mọi điều kiện thuận lợi cho tác giả trong quá trình học tập

và nghiên cứu Xin cảm ơn các thầy cô, các bạn sinh viên, học viên cao học củaViện Toán ứng dụng và Tin học đã giúp đỡ, trao đổi cùng tác giả những kiếnthức và kinh nghiệm quý báu để giúp cho luận văn này được hoàn thiện hơn.Cuối cùng, tác giả xin kính tặng những người thân yêu nhất của mình niềmhạnh phúc và vinh dự to lớn này!

Trang 3

Tóm tắt nội dung luận vănPhát hiện vật thể và khoanh vùng đối tượng là một trong những bài toán điểnhình của lĩnh vực thị giác máy tính Bài toán phát hiện vật thể là bài toán cónhiều ứng dụng thiết thực trong cuộc sống như xe tự lái, robot thông minh, chẩnđoán bệnh qua hình ảnh hay phát hiện các mục tiêu bất thường trong an ninhquân sự Trong luận văn này tác giả xin giới thiệu về YOLO, một trong những

mô hình phát hiện vật thể tốt nhất ở thời điểm hiện tại và ứng dụng nó trongviệc xây dựng một website thương mại điện tử phục vụ thị hiếu của người dùng.Các thử nghiệm của mô hình được thực hiện trên tập dữ liệu thực tế, do chínhtác giả thu thập xử lý và đã cho ra kết quả như kỳ vọng Đồng thời tác giả cũng

đề xuất một máy tìm kiếm cho bài toán gợi ý sản phẩm tương tự theo yêu cầungười dùng và có sản phẩm để minh họa tính thực tiễn của mô hình Với tư duyứng dụng, luận văn có tiềm năng phát triển xa hơn để trở thành một sản phẩmthương mại Đây thực sự là một hướng đi đầy triển vọng nhưng cũng rất tháchthức Với luận văn này tác giả cũng hướng độc giả tới một cái nhìn toàn diện

về ứng dụng của trí tuệ nhân tạo vào cuộc sống: từ lý thuyết học máy, đến xâydựng mô hình, thu thập xử lý dữ liệu, huấn luyện mô hình, và cuối cùng là xâydựng hệ thống sản phẩm phục vụ người dùng

Từ khóa: Object detection, Phát hiện vật thể trong ảnh, YOLO, Reverse age Search

Im-Giáo viên hướng dẫn

Ký và ghi rõ họ tên

Hà Nội, ngày 27 tháng 03 năm 2021

HỌC VIÊN

Ký và ghi rõ họ tên

Trang 4

LỜI NÓI ĐẦU 11

1.1 Perceptron - cội nguồn của học sâu 12

1.2 Kiến trúc mạng neuron nhân tạo 15

1.3 Lan truyền tiến 16

1.4 Học với mạng neuron 17

1.4.1 Gradient Descent cho hàm một biến 18

1.4.2 Gradient Descent cho hàm nhiều biến 19

1.4.3 Gradient Descent với Momentum 20

1.5 Thuật toán lan truyền ngược và đạo hàm 21

1.6 Một số hàm kích hoạt thường dùng 22

1.6.1 Hàm Sigmoid 23

1.6.2 Hàm Tanh 24

1.6.3 Hàm ReLU 25

1.6.4 Hàm Leaky ReLU 26

2 MẠNG NEURON TÍCH CHẬP 27 2.1 Phép tích chập cho ảnh 27

2.1.1 Toán tử tương quan chéo 27

2.1.2 Tầng tích chập 28

2.2 Đệm và bước sải 31

2.2.1 Đệm 31

2.2.2 Sải bước 33

2.3 Đa kênh đầu vào và đầu ra 33

2.3.1 Đa kênh đầu vào 34

2.3.2 Đa kênh đầu ra 35

2.4 Gộp 36

2.4.1 Gộp cực đại và gộp trung bình 36

2.4.2 Đệm và bước sải 37

Trang 5

2.4.3 Đầu vào đa kênh 37

2.5 Mạng Neuron tích chập LeNet 38

2.6 Một số mạng neuron tích chập hiện đại 39

2.6.1 Mạng Alexnet (2012) 39

2.6.2 Mạng VGG (2014) 41

3 YOLO VÀ BÀI TOÁN NHẬN DIỆN VẬT THỂ 43 3.1 Giới thiệu 43

3.2 Nhận diện hợp nhất 44

3.3 Anchor box 48

3.4 Kiến trúc 51

3.5 Hàm mất mát 51

3.5.1 Sai số phân lớp 52

3.5.2 Sai số định vị 52

3.5.3 Sai số tin cậy 52

3.5.4 Sai số 53

3.6 Thuật toán Non-maximal suppression 53

3.7 Cài đặt YOLO 54

4 ỨNG DỤNG YOLO TRONG NHẬN DẠNG HÀNG HÓA 63 4.1 Thu thập và đánh nhãn dữ liệu 63

4.2 Tiền xử lý dữ liệu 64

4.2.1 Làm sạch dữ liệu 64

4.2.2 Tăng cường dữ liệu 65

4.3 Huấn luyện mô hình 67

4.3.1 Đánh giá mô hình 67

4.3.2 Kết quả mô hình 69

4.4 Một số kết quả thực tế 69

5 XÂY DỰNG WEBSITE BÁN HÀNG 73 5.1 Mô hình và kiến trúc hệ thống của website 73

5.1.1 WebUI 73

5.1.2 Backend Server 74

5.1.3 Kiến trúc cơ sở dữ liệu 74

5.2 Máy tìm kiếm 76

5.2.1 Mô hình máy tìm kiếm 76

5.2.2 Chất lượng máy tím kiếm 77

5.3 Demo sản phẩm 78

Trang 6

KẾT LUẬN 85

Trang 7

1.1 Cấu tạo neuron sinh học [1] 12

1.2 Mô hình Perceptron đơn giản [1] 13

1.3 Mô hình neuron sinh học (bên trái) và mô hình toán học của nó (bên phải) [1] 14

1.4 Bên trái: Mạng neuron 2 tầng Bên phải: Mạng neuron 3 tầng 15 1.5 Ví dụ về trị số score trong bài toán phân loại ảnh [1] 16

1.6 Ví dụ về Gradient Descent [2] 18

1.7 GD dưới góc nhìn vật lý [2] 20

1.8 Hàm sigmoid phi tuyến [1] 23

1.9 Đồ thị hàm Tanh [1] 24

1.10 Đồ thị hàm ReLU [1] 25

2.1 Ví dụ về tương quan chéo trong không gian hai chiều [6] 27

2.2 Biểu diễn ảnh với thư viện numpy trong Python [6] 29

2.3 Khởi tạo bộ lọc K [6] 29

2.4 Tương quan chéo [6] 29

2.5 Tương quan chéo với X chuyển vị [6] 30

2.6 Một số ví dụ về bộ lọc [6] 30

2.7 Tương quan chéo hai chiều khi thực hiện đệm [6] 32

2.8 Phép tương quan chéo với sải bước 3 theo chiều dài và và 2 theo chiều rộng [6] 33

2.9 Phép tính tương quan chéo với hai kênh đầu vào [6] 34

2.10 Gộp cực đại với cửa sổ có kích thước 2 × 2 [6] 37

2.11 Dòng dữ liệu trong LeNet 5 Đầu vào là một chữ số viết tay, đầu ra là một xác suất đối với 10 kết quả khả thi [6] 38

2.12 Mạng Lenet thu gọn [6] 40

2.13 Lenet và Alexnet [6] 41

2.14 Alexnet và VGG [6] 42

Trang 8

3.1 YOLO chia ảnh thành lưới S × S, mỗi ô trong lưới chỉ dự đoán

một vật thể duy nhất [9] 45

3.2 Mỗi ô dự đoán một số khung chứa cố định cho 1 vật thể nào đó [9] 45 3.3 Ví dụ về ground-truth bounding box và predicted bounding box [7] 46

3.4 Công thức tính IOU [7] 47

3.5 Ví dụ về tính tọa độ khung chứa trong bức ảnh kích thước448×448, S = 3 [8] 47

3.6 YOLO dự đoán lưới S × S với B khung chứa [9] 48

3.7 Anchor box trong thực tế [9] 49

3.8 5 anchor boxes [9] 49

3.9 Xác định anchor box cho một vật thể Từ ô thứ ita xác định được 3 anchor boxes Cả 3 anchor boxes này đều giao nhau với khung chứa của vật thể Tuy nhiên chỉ anchor box có đường viền dày nhất được lựa chọn làm anchor box cho vật thể bởi nó có IOU so với khung chứa thật là cao nhất [9] 49

3.10 Hình chữ nhật nét đứt bên ngoài là anchor box có kích thước là (pw, ph) Tọa độ của một khung chứa sẽ được xác định dựa trên đồng thời cả anchor box và ô mà nó thuộc về Điều này giúp kiểm soát vị trí của khung chứa dự đoán đâu đó quanh vị trí của ô và khung chứa mà không vượt quá xa ra bên ngoài giới hạn này Do đó quá trình huấn luyện sẽ ổn định hơn rất nhiều [9] 50

3.11 Kiến trúc YOLO [3] 51

3.12 Thuật toán Non-maximal suppression [3] 53

4.1 Quá trình gãn nhãn cho ảnh với công cụ Image LabelImg 64

4.2 Kết quả thu được sau khi gán nhãn 64

4.3 Lật dọc ảnh 65

4.4 Lật ngang ảnh 65

4.5 Kết hợp lật dọc và lật ngang ảnh 66

4.6 Xoay ảnh 1 góc 90 66

4.7 Làm mờ ảnh 66

4.8 Tăng cường độ màu sắc 67

5.1 Kiến trúc hệ thống website 73

5.2 Cấu trúc bảng Product) 75

5.3 Dữ liệu bảng Product) 75

5.4 Cấu trúc bảng Product Category 75

5.5 Dữ liệu bảng Product Category 76

Trang 9

5.6 Luồng hoạt động của máy tìm kiếm 77

5.7 Mẫu ảnh kiểm thử máy tìm kiếm 77

5.8 Mẫu ảnh kiểm thử máy tìm kiếm 78

5.9 Trang chủ 80

5.10 Tìm kiếm bằng liên kết hình ảnh 81

5.11 Kết quả tìm kiếm bằng liên kết 82

5.12 Người dùng có thể lựa chọn các sản phẩm theo sở thích 82

5.13 Tìm kiếm bằng cách cắt một phần của ảnh 83

5.14 Kết quả tìm kiếm bằng ảnh cắt 84

Trang 10

4.1 Kết quả mô hình 695.1 Kết quả máy tìm kiếm 79

Trang 11

Cùng với sự phát triển của khoa học kỹ thuật hiện đại, học máy nói chung vàhọc sâu nói riêng đang ngày càng được áp dụng rộng rãi trong các lĩnh vực củađời sống Những sản phẩm của trí tuệ nhân tạo đang thầm lặng len lỏi vào mọingóc ngách trong cuộc sống của con người và trở thành một phần thiết yếu.Trong luận văn này, tôi muốn đề cập đến một ứng dụng của lĩnh vực thị giácmáy tính trong mua sắm Đó là ứng dụng mô hình nhận dạng vật thể trong ảnhYOLO vào việc xây dựng một website thương mại điện tử phục vụ nhu cầu củangười dùng.

Trong thế giới hiện đại việc mua sắm là một nhu cầu thiết yếu của mọi ngườimọi nhà Mua sắm trực tuyến là một hình thức phổ biến trong thời đại 4.0 và

vô cùng tiện lợi Thử tưởng tượng bạn muốn mua một chiếc điện thoại giống vớichiếc điện thoại của một người bạn Việc bạn cần làm là chụp một bức ảnh vềchiếc điện thoại đó và tải lên website của chúng tôi, ngay lập tức nó trả về chobạn các sản phẩm tương tự Mục tiêu mà luận văn này hướng tới là một sảnphẩm đầy tính thiết thực như thế

Trong khuôn khổ nội dung luận văn, tôi sẽ trình bày về mô hình học sâuYOLO trong bài toán nhận diện vật thể và ứng dụng trong việc xây dựng mộtwebsite thương mại điện tử để phục vụ người dùng Nội dung chính của luận vănbao gồm các phần sau:

• Chương 1: Giới thiệu các kiến thức tổng quan về mạng neuron nhân tạo

• Chương 2: Trình bày về mô hình mạng neuron tích chập và một số mô hìnhliên quan

• Chương 3: Bài toán nhận dạng vật thể và mô hình YOLO

• Chương 4: Ứng dụng YOLO trong bài toán nhận dạng hàng hóa

• Chương 5: Xây dựng website bán hàng

Luận văn được hoàn thành trong chương trình Thạc sĩ Khoa học Toán tin tạiViện Toán ứng dụng và Tin học, Đại học Bách Khoa Hà Nội, dưới sự hướng dẫncủa TS Lê Đình Nam

Trang 12

Mặc dù đã được hoàn thành với nhiều cố gắng nhưng do hạn chế về kinhnghiệm, luận văn này không thể tránh khỏi những sai sót Tác giả rất mongnhận được những ý kiến đóng góp quý báu từ thầy cô và các bạn học viên đểluận văn được hoàn thiện hơn nữa.

Trang 13

Nhiều nhận định cho rằng học sâu mô phỏng cách mà các tế bào thần kinh(neuron) trong não chúng ta hoạt động Tuy nhiên các mô hình mạng neurontrong học sâu hiện tại chỉ sử dụng những nguyên lý hoạt động đơn giản nhấtcủa neuron dựa trên các nghiên cứu từ năm 1940 Từ đó đến nay các nhà khoahọc đã phát hiện ra rằng các neuron hoạt động theo những nguyên lý phức tạphơn nhiều Những đột phá về học sâu năm 2012 đã cho thấy những hiểu biết dù

là đơn giản nhất về bộ não con người cũng đem lại những giá trị vô cùng to lớnvới nhân loại cũng như sự phát triển của lĩnh vực trí tuệ nhân tạo Nội dung củachương này sẽ trình bày các kiến thức về mạng neuron nhân tạo và được thamkhảo tại [1]

Mở đầu phần này ta sẽ tập trung làm rõ về perceptron, một khái niệm được coinhư cội nguồn của học sâu

Dưới đây là hình ảnh mô phỏng về cấu tạo của 1 neuron sinh học:

Hình 1.1: Cấu tạo neuron sinh học [1]

Một neuron sẽ nhận các tín hiệu điện (electrical signal) có chứa thông tin từ

Trang 14

các synapse của một hay nhiều neuron khác thông qua các đuôi gai (dendrite).Các giá trị tín hiệu điện đầu vào (input) sẽ được tích tụ lại trong thân neuron(cell body) Nếu tổng các tín hiệu này vượt quá một ngưỡng (threshold) nhấtđịnh thì thân neuron sẽ phát ra một tín hiệu điện đầu ra (output) truyền quasợi trục (axon) tới các synapse Neuron lúc này được gọi là đang firing hay đãactivated Tín hiệu điện output này sẽ được truyền sang các neuron khác nhờvào sự liên kết giữa synapse và dendrite, độ 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 này khi diễn rađồng thời giữa một mạng lưới các neuron sẽ tạo nên hoạt động của hệ thần kinhtrong bộ não chúng ta.

Lấy cảm hứng từ mô hình đó một perceptron được minh họa như sau:

Hình 1.2: Mô hình Perceptron đơn giản [1]

Trong mô hình trên, các giá trị đầu vào x1, x2, , xn đại diện cho giá trị củacác tín hiệu điện truyền tới từ các synapse của các neuron khác Hình tròn đặc

là đại diện cho thân neuron Các input sẽ được nhân lần lượt với các giá trịtrọng số w1, w2, , wn tương ứng trước khi truyền tới thân neuron Đây là cáchperceptron mô phỏng độ mạnh yếu giữa các liên kết synapse-dendrite để điềuchỉnh lượng thông tin được truyền sang Gọi tổng của các tín hiệu được tích tụlại tại thân neuron là z thì:

Trang 15

qua một hàm số cụ thể và các hàm số này được gọi chung là hàm kích hoạt(activation function) bởi vì làm kích hoạt neuron Output sẽ được tính đơn giảnnhư sau:

từ ngữ hay sử dụng, người gửi, người nhận Sử dụng các đặc điểm này làm inputcho perceptron để quyết định xem email đó là spam (output 1) hay không phảispam (output 0) Do đó, việc cho perceptron học nghĩa là tìm ra những giá trịphù hợp của các trọng số w sao cho perceptron có thể đưa ra output 1 hay 0một cách chính xác nhất Cách để tìm ra các giá trị phù hợp này thường là bằngcách sử dụng một thuật toán có tên là Gradient Descent

Như vậy ở phần này ta đã mô hình hóa được một neuron sinh học dưới dạngmột mô hình toán học đơn giản

Hình 1.3: Mô hình neuron sinh học (bên trái) và mô hình toán học của nó (bên phải) [1]

Trang 16

1.2 Kiến trúc mạng neuron nhân tạo

Mạng neuron nhân tạo được mô hình hóa như tập hợp các neuron được kết nốivới nhau trong một đồ thị Output của một neuron có thể là input của neuronkhác Mạng neuron được thường được tổ chức thành các tầng neuron (gọi làlayer) riêng biệt, loại tầng neuron phổ biến nhất là là tầng kết nối đầy đủ (fully-connected layer) Trong loại tầng này, giữa hai tầng kề nhau mỗi neuron củatầng thứ nhất sẽ có kết nối tới tất cả các neuron của tầng còn lại nhưng không

có liên kết trong nội tại tầng đó

Như vậy, một mạng neuron sẽ có 3 kiểu tầng:

• Tầng vào (input layer): Là tầng bên trái cùng của mạng thể hiện cho cácđầu vào của mạng

• Tầng ra (output layer): Là tầng bên phải cùng của mạng thể hiện cho cácđầu ra của mạng

• Tầng ẩn (hidden layer): Là tầng nằm giữa tầng vào và tầng ra thể hiện choviệc suy luận logic của mạng

Hình 1.4: Bên trái: Mạng neuron 2 tầng Bên phải: Mạng neuron 3 tầng.

Quy ước: Khi nói mạng neuron N-tầng ta sẽ không tính tầng input Do đómột mạng neuron đơn tầng là một mạng không có tầng ẩn nào, chỉ gồm 1 tầnginput và 1 tầng output

Tầng output: Không giống như các tầng khác trong mạng neuron, các neurontrong tầng này thường không có hàm kích hoạt Điều này là bởi vì giá trị củatầng output cuối thường được dùng để thể hiện chỉ số đánh giá (score) của lớpcác đối tượng, ví dụ như trong bài toán phân lớp các giá trị này thường là các

số bất kỳ nào đó

Kích thước mạng neuron: Có hai số đo thường được dùng để đánh giá kíchthước của mạng neuron là số lượng neuron hoặc số lượng tham số mà mạng cầnhọc Xét 2 ví dụ ở hình 1.4 ta có kết quả sau:

Trang 17

Hình 1.5: Ví dụ về trị số score trong bài toán phân loại ảnh [1]

• Mạng thứ nhất (bên trái) có: 4 + 2 = 6 neurons (không tính input), [3 × 4] + [4 × 2] = 20 trọng số, 4 + 2 = 6 biases Suy ra có 26 tham số mà mạng nàycần học

• Mạng thứ hai (bên phải) có: 4 + 4 + 1 = 9 neurons,[3 × 4] + [4 × 4] + [4 × 1] =

12 + 16 + 4 = 32 trọng số, và 4 + 4 + 1 = 9 biases Do đó có 41 tham số cầnhọc

Với mô hình mạng neuron tích chập được giới thiệu ở chương 2 số tham số của

mô hình có thể lên đến hàng trăm triệu

Các neuron trong mạng kết nối với nhau theo một chiều duy nhất từ tầng vàotới tầng ra Tức là mỗi neuron ở một tầng nào đó sẽ nhận đầu vào là tất cả cácneuron ở tầng trước đó mà không suy luận ngược lại Hay nói cách khác, việcsuy luận trong mạng neuron là suy luận tiến (feedforward):

Trang 18

i là đầu ra của neuron này ứng với hàm kích hoạt f (zi).

Đặt a(l)0 = 1 và w(l+1)i0 = b(l+1)i ta có thể viết lại công thức trên dưới dạng vector:

tả sự sai khác giữa kết quả thực tế và kết quả của mô hình Mục đích ở đây là

ta đi tối ưu hàm mất mát này để kết quả của mạng neuron gần chính xác nhấtvới kết quả thực tế Ví dụ, các bài toán hồi quy thường đánh giá dựa trên sai sốtrung bình bình phương (MSE) Trong đó sai số MSE được định nghĩa như sau:

với Yˆ là vector n giá trị mà mô hình dự báo, Y là vector giá trị quan sát được

Để tối ưu các hàm mất mát này ta sử dụng phương pháp đạo hàm có tên làGradient Descent

Để đơn giản ta lấy ví dụ với hàm mất mát trong mô hình Hồi quy tuyến tính.Nhìn chung, việc tìm cực tiểu toàn cục của các hàm mất mát trong Học máy làrất phức tạp, thậm chí là bất khả thi Thay vào đó, người ta thường cố gắng tìmcác điểm cực tiểu địa phương, và ở một mức độ nào đó, coi đó là nghiệm cầntìm của bài toán

Các điểm cực tiểu địa phương là nghiệm của phương trình đạo hàm bằng 0.Nếu bằng một cách nào đó có thể tìm được toàn bộ (hữu hạn) các điểm cực tiểu,

Trang 19

Hình 1.6: Ví dụ về Gradient Descent [2]

ta chỉ cần thay từng điểm cực tiểu địa phương đó vào hàm số rồi tìm điểm làmcho hàm có giá trị nhỏ nhất Tuy nhiên, trong hầu hết các trường hợp, việc giảiphương trình đạo hàm bằng 0 là bất khả thi Nguyên nhân có thể đến từ sự phứctạp của dạng đạo hàm, từ việc các điểm dữ liệu có số chiều lớn, hoặc từ việc cóquá nhiều điểm dữ liệu

Hướng tiếp cận phổ biến nhất là xuất phát từ một điểm mà chúng ta coi làgần với nghiệm của bài toán, sau đó dùng một phép toán lặp để tiến dần đếnđiểm cần tìm, tức đến khi đạo hàm gần với 0 Gradient Descent (viết gọn là GD)

và các biến thể của nó là một trong những phương pháp được dùng nhiều nhất

Vì kiến thức về GD khá rộng nên phần này sẽ được chia làm 2 phần Phầnđầu giới thiệu ý tưởng phía sau thuật toán GD và một vài ví dụ đơn giản Phầnsau sẽ nói về các phương pháp cải tiến GD và các biến thể của GD trong các bàitoán mà số chiều và số điểm dữ liệu lớn

1.4.1 Gradient Descent cho hàm một biến

Quan sát hình 1.6 Giả sửxt là điểm ta tìm được sau vòng lặp thứ t Ta cần tìmmột thuật toán để đưa xt về càng gần x càng tốt Trong hình này, ta quan sátthấy:

1 Nếu đạo hàm của hàm số tại xt : f0(xt) > 0 thì xt nằm về bên phải so với x

(và ngược lại) Để điểm tiếp theo xt+1 gần vớix hơn, ta cần di chuyển xt vềphía bên trái, tức về phía âm Nói các khác, chúng ta cần di chuyển ngược

Trang 20

dấu với đạo hàm:

xt+1 = xt+ ∆

Trong đó ∆ là một đại lượng ngược dấu với đạo hàm f0(xt)

2 xt càng xa x về phía bên phải thìf0(xt) càng lớn hơn 0 (và ngược lại) Vậy

∆ sẽ tỉ lệ thuận với -f0(xt)

Từ hai nhận xét phía trên, ta có công thức cập nhật sau mỗi bước:

xt+1= xt− ηf0(xt)

Trong đó, η là một số dương được gọi là tốc độ học Dấu trừ thể hiện việc chúng

ta phải đi ngược với đạo hàm Các quan sát đơn giản phía trên, mặc dù khôngphải đúng cho tất cả các bài toán, nó là nền tảng cho rất nhiều phương pháp tối

ưu nói chung và thuật toán Học máy nói riêng Tốc độ hội tụ của GD phụ thuộcvào điểm khởi tạo ban đầu và hệ số tốc độ học η

1.4.2 Gradient Descent cho hàm nhiều biến

Giả sử ta cần tìm cực tiểu toàn cục cho hàm f (θ) trong đó θ là một vector,thường được dùng để ký hiệu tập hợp các tham số của một mô hình cần tối ưu,trong Hồi quy tuyến tính thì các tham số chính là hệ số w Đạo hàm của hàm

số đó tại một điểm θ bất kỳ được ký hiệu là ∇θf (θ) Tương tự như hàm 1 biến,thuật toán GD cho hàm nhiều biến cũng bắt đầu bằng một điểm dự đoán θ0, sau

Đạo hàm của hàm mất mát là:

∇wL(w) = 1

T (Xw − y)

Trang 21

Hình 1.7: GD dưới góc nhìn vật lý [2]

Quan sát hình 1.7, thuật toán GD thường được ví với tác dụng của trọng lực lênmột hòn bi đặt trên một mặt có dạng như hình một thung lũng giống như hình1.7 a) Bất kể ta đặt hòn bi ở A hay B thì cuối cùng hòn bi cũng sẽ lăn xuống

và kết thúc ở vị trí C

Tuy nhiên, nếu như bề mặt có hai đáy thung lũng như Hình 1.7 b) thì tùyvào việc đặt bi ở A hay B, vị trí cuối cùng của bi sẽ ở C hoặc D Điểm D là mộtđiểm cực tiểu địa phương không mong muốn

Một cách tiếp cận vật lý hơn, vẫn xét Hình 1.7 b), nếu vận tốc ban đầu của bikhi ở điểm B đủ lớn, khi bi lăn đến điểm D, theo đà, bi có thể tiếp tục di chuyểnlên dốc phía bên trái của D Và nếu giả sử vận tốc ban đầu lớn hơn nữa, bi cóthể vượt dốc tới điểm E rồi lăn xuống C như trong Hình 1.7 c)

Dựa trên hiện tượng này, thuật toán cải tiến GD với momentum ra đời nhằmkhắc phục việc nghiệm của GD rơi vào một điểm cực tiểu địa phương khôngmong muốn

Trong GD, ta cần tính lượng thay đổi ở thời điểm t để cập nhật vị trí mớicho nghiệm Nếu chúng ta coi đại lượng này như vận tốc vt trong vật lý, vị trímới của hòn bi sẽ là θt+1 = θt− vt Dấu trừ thể hiện việc phải di chuyển ngượcvới đạo hàm Công việc bây giờ là tính đại lượng vt sao cho nó vừa mang thôngtin của độ dốc (tức đạo hàm), vừa mang thông tin của đà, tức vận tốc trước đó

vt1, coi như vận tốc ban đầu v0 = 0 Một cách đơn giản nhất, có thể cộng hai đạilượng này lại:

vt = γvt−1+ η∇θJ (θ)

Trong đó γ thường được chọn là một giá trị khoảng < 1, vt là vận tốc tại thời

Trang 22

điểm trước đó, ∇θJ (θ) chính là độ dốc của điểm trước đó Sau đó vị trí mới củahòn bi được xác định như sau:

θ = θ − vt

Thuật toán đơn giản này tỏ ra rất hiệu quả trong các bài toán thực tế Trongkhông gian nhiều chiều, cách tính toán cũng hoàn toàn tương tự

Để tính đạo hàm của hàm mất mát trong mạng neuron, ta sử dụng một giảithuật đặc biệt là giải thuật lan truyền ngược (backpropagation) Được công bốvào năm 1986, giải thuật này giúp mạng neuron thực thi hiệu quả và được ứngdụng ngày một nhiều cho tới tận ngày này

Giải thuật lan truyền ngược được thực hiện như sau:

• Lan truyền tiến:

Lần lượt tính các a(l) từ l = 2 → L theo công thức:

• Lan truyền ngược:

Tính đạo hàm theo z ngược lại từ l = (L − 1) → 2 theo công thức:

với z(l) tính được ở bước 1 và ∂L

∂z (l+1) tính được ở vòng lặp ngay trước

Trang 23

1.6 Một số hàm kích hoạt thường dùng

Hàm kích hoạt là những hàm phi tuyến được áp dụng vào đầu ra của các neurontrong tầng ẩn của một mô hình, và được sử dụng làm dữ liệu đầu vào cho tầngtiếp theo

Trong mạng neuron học sâu, hàm kích hoạt là cần thiết vì nếu không có cáchàm kích hoạt phi tuyến, thì mạng neuron của chúng ta dù có nhiều tầng vẫn

sẽ có hiệu quả như một tầng tuyến tính Để hiểu rõ hơn và trực quan hơn, ta

sẽ xem xét một mạng neuron nhỏ gồm 2 tầng (có các hàm kích hoạt tuyến tínhtương ứng) Mạng này sẽ nhận vào input là X và trả ra output Y:

Vì ta đang giả sử hàm kích hoạt g() là tuyến tính nên a(1) = cZ(1) với c là một

số thực Chọn c = 1 Sử dụng các công thức bên trên, ta có:

Trang 24

1.6.1 Hàm Sigmoid

Hình 1.8: Hàm sigmoid phi tuyến [1]

Hàm Sigmoid có công thức toán học:

1 Trong quá khứ hàm Sigmoid hay được dùng vì có đạo hàm rất đẹp Tuy nhiênhiện nay hàm Sigmoid rất ít được dùng vì những nhược điểm sau:

• Hàm Sigmoid bão hòa và triệt tiêu gradient: Một nhược điểm dễ nhận thấy

là khi đầu vào có trị tuyệt đối lớn (rất âm hoặc rất dương), gradient củahàm số này sẽ rất gần với 0 Điều này đồng nghĩa với việc các hệ số tươngứng với điểm đang xét sẽ gần như không được cập nhật (còn được gọi làvanishing gradient)

• Hàm Sigmoid không có trung tâm là 0 (zero-centered) gây khó khăn choviệc hội tụ Xét mô hình:

f =Xwixi + b

⇒ dfdwi = xi

Gọi L là hàm mất mát của mô hình:

dL

dwi =

dL df

Trang 25

nhật sẽ chỉ diễn ra theo 1 số hướng nhất định, hạn chế sự linh hoạt của môhình.

Tuy nhiên ta có thể giải quyết vấn đề này bằng cách chuẩn hoá dữ liệu

về dạng có trung tâm là 0 (zero-centered) với các thuật toán batch/layernormalization

Hàm Tanh còn có thể được biểu diễn bằng hàm sigmoid bằng công thức sau:

tanh(x) = 2σ(2x) − 1

Trang 26

• Tốc độ hội tụ nhanh hơn hẳn ReLU có tốc độ hội tụ nhanh gấp 6 lần Tanh(Krizhevsky et al.) Điều này có thể do ReLU không bị bão hoà ở 2 đầu nhưSigmoid và Tanh.

• Tính toán nhanh hơn Tanh và Sigmoid sử dụng hàm exp và công thức phứctạp hơn ReLU rất nhiều do vậy sẽ tốn nhiều chi phí hơn để tính toán

• Tuy nhiên ReLU cũng có một nhược điểm: Với các neuron có giá trị nhỏhơn 0, qua hàm ReLU sẽ thành 0, hiện tượng này gọi là “Dying ReLU“ Nếucác neuron bị chuyển thành 0 thì sẽ không có ý nghĩa ở tầng tiếp theo vàcác hệ số tương ứng từ neuron đấy cũng không được cập nhật với GradientDescent, từ đó Leaky ReLU ra đời

• Khi hệ số học lớn, các trọng số có thể thay đổi theo cách làm tất cả neurondừng việc cập nhật

Trang 28

Ở chương này chúng ta sẽ tìm hiểu về mạng neuron tích chập thường hay đượcgọi và ConvNets hay CNNs, chúng được coi là những hòn đá tảng của lĩnh vựchọc sâu Trước hết, chúng ta sẽ đi qua các phép toán cơ bản nhằm tạo nên bộkhung của tất cả các mạng neuron tích chập, bao gồm: các tầng tích chập, các

kĩ thuật đệm (padding) và sải bước (stride), các tầng gộp (pooling) dùng để kếthợp thông tin qua các vùng không gian kề nhau, việc sử dụng nhiều bộ lọc ở mỗitầng Cuối chương sẽ giới thiệu về mạng LeNet, mạng tích chập đầu tiên và một

số mạng CNN hiện đại đang được dùng phổ biến hiện nay Các kiến thức trongchương này được tham khảo tại [6]

2.1.1 Toán tử tương quan chéo

Trong một tầng tích chập, một mảng đầu vào và một bộ lọc (hay còn được gọi

là hạt nhân - kernel) được kết hợp để tạo ra mảng đầu ra bằng phép toán tươngquan chéo Để đơn giản, ta xét phép toán này với dữ liệu hai chiều Trong hình2.1, đầu vào là một mảng hai chiều với chiều dài 3 và chiều rộng 3 Ta kí hiệukích thước của mảng là 3 × 3 hoặc (3, 3) Một bộ lọc (filter/kernel) kích thước là

2 × 2

Hình 2.1: Ví dụ về tương quan chéo trong không gian hai chiều [6]

Ta bắt đầu với cửa sổ tích chập đặt tại vị trí góc trên bên trái của mảng đầu

Trang 29

vào và di chuyển cửa sổ này từ trái sang phải và từ trên xuống dưới Khi cửa sổtích chập được đẩy tới một vị trí nhất định, mảng con đầu vào nằm trong cửa

sổ đó và bộ lọc được nhân theo từng phần tử, rồi sau đó ta lấy tổng các phần

tử trong mảng kết quả để có được một giá trị số vô hướng duy nhất Giá trị nàyđược ghi vào mảng đầu ra tại vị trí tương ứng Ở ví dụ hình 2.1, mảng đầu ra

có chiều dài 2 và chiều rộng 2, với bốn phần tử được tính bằng phép tương quanchéo hai chiều:

2.1.2 Tầng tích chập

Tầng tích chập (Conv Layer) sẽ thực hiện phép toán tương quan chéo giữa đầuvào và bộ lọc, sau đó cộng thêm một hệ số điều chỉnh để có được đầu ra Haitham số của tầng tích chập là bộ lọc và hệ số điều chỉnh Khi huấn luyện môhình chứa các tầng tích chập, ta thường khởi tạo bộ lọc với giá trị ngẫu nhiên

và nhiệm vụ của mô hình là tự tập dữ liệu đầu vào nó sẽ hiệu chỉnh để học được

bộ lọc phù hợp nhất với tập dữ liệu đó

Phát hiện biên của một vật thể trong ảnh

Đây là một ứng dụng thường thấy của một tầng tích chập: phát hiện đường biêncủa một vật thể trong một bức ảnh bằng cách xác định vị trí các điểm ảnh thayđổi Giả sử ta có một bức ảnh kích thước là 6 × 8, ta sẽ biểu diễn bức ảnh nàydưới dạng một mảng 6 × 8, giá trị 0 tương ứng với điểm ảnh màu đen, giá trị 1tương ứng với giá trị 1 Sử dụng thư viện numpy trong Python ta minh họa ví

dụ trên như sau:

Trang 30

Hình 2.2: Biểu diễn ảnh với thư viện numpy trong Python [6]

Sau đó, ta tạo một bộ lọc K có kích thước (1, 2) Khi thực hiện phép tươngquan chéo với đầu vào, nếu hai phần tử cạnh nhau theo chiều ngang có giá trịgiống nhau thì đầu ra sẽ bằng 0, còn lại đầu ra sẽ khác 0

Hình 2.3: Khởi tạo bộ lọc K [6]

Thực hiện phép tương quan chéo của X và K:

Hình 2.4: Tương quan chéo [6]

Bạn có thể thấy rằng các vị trí biên trắng đổi thành đen có giá trị 1, còn các

vị trí biên đen đổi thành trắng có giá trị -1 Các vị trí còn lại của đầu ra có giátrị 0 Bây giờ hãy áp dụng hạt nhân này cho chuyển vị của ma trận điểm ảnh.Như kỳ vọng, giá trị tương quan chéo bằng không Bộ lọc K chỉ có thể phát hiệnbiên dọc Thực hiện phép tương quan chéo của X và K:

Trang 31

Hình 2.5: Tương quan chéo với X chuyển vị [6]

Học một bộ lọc

Ví dụ ở mục 2.1.2 là cách thức mà các phương pháp xử lý ảnh truyền thốngthường làm để trích xuất ra được các đặc trưng của một bức ảnh Cụ thể, tronglĩnh vực xử lý ảnh người ta đã nghiên cứu và phát hiện ra được các bộ lọc mà từ

đó có thể trích xuất ra được các đặc trưng mong muốn như: xác định các đườngnét, làm mờ, làm rõ nét ảnh, v.v Dưới đây là một số bộ lọc hay dùng:

Hình 2.6: Một số ví dụ về bộ lọc [6]

Trang 32

Với phương pháp xử lý ảnh truyền thống ta chỉ cần tra cứu các bộ lọc này

và áp dụng vào bức ảnh để thu được kết quả mong muốn nhưng với học sâuviệc này hoàn toàn khác và đó cũng chính là lý do khiến học sâu thu được nhiềuthành tựu vượt bậc hơn so với các phương pháp cổ điển

Mục tiêu của mạng neuron tích chập sẽ là tạo ra (học) được một bộ lọc có khảnăng tạo ra Y từ X Công việc đầu tiên mà chúng ta cần làm là xây dựng mộttầng tích chập và khởi tạo một mảng ngẫu nhiên làm bộ lọc Tiếp đến, trongmỗi lần lặp, ta sẽ sử dụng bình phương sai số để so sánh Y và đầu ra của tầngtích chập, sau đó tính toán GD để cập nhật trọng số Để đơn giản, trong tầngtích chập này, ta sẽ bỏ qua hệ số điều chỉnh

ý rằng vì các bộ lọc thường có chiều rộng và chiều cao lớn hơn 1 nên sau khi

áp dụng nhiều phép tích chập liên tiếp, đầu ra thường có kích thước nhỏ hơnđáng kể so với đầu vào Nếu ta bắt đầu với một ảnh có 240 × 240 điểm ảnh và ápdụng 10 tầng tích chập có kích thước5 × 5 thì kích thước ảnh này sẽ giảm xuống

200 × 200 điểm ảnh, 30% bức ảnh sẽ bị cắt bỏ và mọi thông tin có ích trên viềncủa ảnh gốc sẽ bị xóa sạch Đệm là công cụ phổ biến nhất để xử lý vấn đề này.Trong những trường hợp khác, ta có thể muốn giảm đáng kể kích thước ảnh,

ví dụ như khi độ phân giải của đầu vào quá cao Phép tích chập sải bước (Stridedconvolution) là một kỹ thuật phổ biến có thể giúp ích trong trường hợp này

Như mô tả ở trên, một vấn đề rắc rối khi áp dụng các tầng tích chập là việcchúng ta có thể mất một số điểm ảnh trên biên của ảnh Vì chúng ta thường sửdụng các hạt nhân nhỏ, với một phép tích chập ta có thể chỉ mất một ít điểmảnh, tuy nhiên sự mất mát này có thể tích lũy dần khi ta thực hiện qua nhiều

Trang 33

tầng tích chập liên tiếp Một giải pháp đơn giản cho vấn đề này là chèn thêmcác điểm ảnh xung quanh đường biên trên bức ảnh đầu vào, nhờ đó làm tăngkích thước sử dụng của bức ảnh Thông thường, chúng ta thiết lập các giá trịcủa các điểm ảnh thêm vào là 0 Trong hình 2.7, ta đệm một đầu vào 3 × 3 ,làm tăng kích thước lên thành 5 × 5 Đầu ra tương ứng sẽ tăng lên thành một

ma trận 4 × 4

Hình 2.7: Tương quan chéo hai chiều khi thực hiện đệm [6]

Nếu chúng ta chèn thêm tổng cộng ph hàng đệm (phân nửa ở phía trên vàphân nửa ở phía dưới) và pw cột đệm (phân nửa bên trái và phân nửa bên phải),kích thước đầu ra sẽ là:

(nh− kh+ ph+ 1) × (nw − kw + pw + 1). (2.2.2)Điều này có nghĩa là chiều cao và chiều rộng của đầu ra sẽ tăng thêm lần lượt

là ph và pw

Các mạng neuron tích chập thường sử dụng các hạt nhân tích chập với chiềudài và chiều rộng là số lẻ, như 1, 3, 5 hay 7 Việc chọn hạt nhân có kích thước lẻgiúp chúng ta bảo toàn được các chiều không gian khi thêm cùng số hàng đệmcho cạnh trên và dưới, và thêm cùng số cột đệm cho cạnh trái và phải

Hơn nữa, việc sử dụng bộ lọc kích thước lẻ cùng đệm để giữ nguyên số chiềumang lại một lợi ích khác Với mảng hai chiều X bất kì, khi kích thước bộ lọc lẻ

và số hàng và số cột đệm bằng nhau, thu được đầu ra có cùng chiều dài và chiềurộng với đầu vào, ta sẽ biết chắc chắn rằng mỗi phần tử đầu ra Y[i, j] được tínhbằng phép tương quan chéo giữa đầu vào và hạt nhân tích chập có tâm nằm tại

X[i, j]

Trang 34

Ta gọi số hàng và cột di chuyển qua mỗi lần là sải bước (stride) Cho đến giờ,chúng ta sử dụng sải bước 1 cho cả chiều dài và chiều rộng Đôi lúc, chúng ta cóthể muốn sử dụng sải bước lớn hơn Hình 2.8 biểu diễn phép tương quan chéohai chiều với sải bước 3 theo chiều dọc và 2 theo chiều ngang Có thể thấy rằngkhi tính giá trị phần tử thứ hai của cột đầu tiên, cửa sổ tích chập di chuyểnxuống ba hàng Cửa sổ này di chuyển sang phải hai cột khi tính giá trị phần tửthứ hai của hàng đầu tiên Khi cửa sổ di chuyển sang phải ba cột ở đầu vào, giátrị đầu ra không tồn tại vì các phần tử đầu vào không lấp đầy cửa sổ (trừ khi

ta thêm một cột đệm)

Hình 2.8: Phép tương quan chéo với sải bước 3 theo chiều dài và và 2 theo chiều rộng [6]

Khi sải bước theo chiều cao làsh và sải bước theo chiều rộng làsw, kích thướcđầu ra là:

b(nh− kh+ ph+ sh)/shc × b(nw− kw+ pw+ sw)/swc. (2.2.3)

Thực tế mỗi tấm ảnh được tạo nên bởi nhiều kênh (channel) Cụ thể, ảnh màu

sử dụng hệ màu RGB tiêu chuẩn với các kênh riêng biệt thể hiện lượng màu đỏ,xanh lá và xanh dương), nhưng cho đến lúc này, ta vẫn đơn giản hóa tất cả các

Trang 35

ví dụ tính toán với chỉ một kênh đầu vào và một kênh đầu ra Điều đó đã chophép chúng ta coi các đầu vào, các bộ lọc tích chập và các đầu ra như các mảnghai chiều.

Khi chúng ta thêm các kênh vào hỗn hợp ấy, đầu vào cùng với các lớp biểudiễn ẩn của ta trở thành các mảng ba chiều Chẳng hạn, mỗi ảnh RGB đầu vào

có dạng 3 × h × w Ta xem trục này là chiều kênh, có kích thước là 3

Khi dữ liệu đầu vào có nhiều kênh, ta cần xây dựng một bộ lọc tích chập vớicùng số kênh đầu vào như dữ liệu đầu vào, để nó có thể thực hiện tính tươngquan chéo với dữ liệu này Giả sử số kênh dữ liệu đầu vào làci, ta sẽ cần số kênhđầu vào của bộ lọc tích chập là ci Nếu kích thước cửa sổ của bộ lọc tích chập là

kh× kw, thì khi ci = 1, ta có thể xem bộ lọc tích chập này đơn giản là một mảnghai chiều có kích thước kh× kw

Tuy nhiên, khi ci > 1 , chúng ta cần một bộ lọc chứa mảng có kích thước

kh× kw cho mỗi kênh của đầu vào Gộp ci mảng này lại ta được một bộ lọc tíchchập kích thước ci × kh× kw Vì đầu vào và bộ lọc đều có ci kênh, ta có thể thựchiện phép tương quan chéo trên từng cặp mảng hai chiều của đầu vào và bộ lọccho mỗi kênh, rồi cộng kết quả của ci kênh lại để tạo ra một mảng hai chiều.Đây là kết quả của phép tương quan chéo hai chiều giữa dữ liệu đầu vào đa kênh

và kênh bộ lọc tích chập đa đầu vào

Trong hình 2.9 minh hoạ một ví dụ về phép tương quan chéo hai chiều với haikênh đầu vào Phần tô đậm là phần tử đầu ra đầu tiên cùng các phần tử củamảng đầu vào và bộ lọc được sử dụng trong phép tính đó:

(1 × 1 + 2 × 2 + 4 × 3 + 5 × 4) + (0 × 0 + 1 × 1 + 3 × 2 + 4 × 3) = 56

Hình 2.9: Phép tính tương quan chéo với hai kênh đầu vào [6]

Trang 36

2.3.2 Đa kênh đầu ra

Ta có thể thấy rằng bất kể số lượng kênh đầu vào là bao nhiêu thì vẫn chỉ có mộtkênh đầu ra Tuy nhiên việc có nhiều kênh ở mỗi tầng là rất cần thiết Trongcác kiến trúc mạng neuron, ta thường tăng kích thước chiều kênh khi tiến sâuhơn trong mạng, đồng thời giảm độ phân giải không gian để đánh đổi với chiềukênh sâu hơn này Theo trực giác, ta có thể xem mỗi kênh tương ứng với mộttập các đặc trưng khác nhau Nhưng thực tế phức tạp hơn một chút so với cáchdiễn giải theo trực giác này vì các biểu diễn không được học độc lập mà đượctối ưu hóa để có ích khi kết hợp với nhau Do đó việc học các đặc trưng, ví dụnhư việc phát hiện biên, sẽ được học bởi một vài kênh thay vì chỉ một kênh duynhất

Đặt ci và co lần lượt là số lượng kênh đầu vào và đầu ra, kh và kw lần lượt làchiều cao và chiều rộng của bộ lọc Để có được một đầu ra với nhiều kênh, ta tạomột mảng bộ lọc có kích thước ci× kh× kw cho mỗi kênh đầu ra Ta nối chúnglại dựa trên chiều kênh đầu ra đã biết, sao cho kích thước của bộ lọc tích chập

là co× ci× kh× kw Đoạn mã dưới đây sẽ minh họa rõ hơn quá trình này:

Định nghĩa một hàm tương quan chéo để tính đầu ra của nhiều kênh

Giả sử muốn tạo một bộ lọc tích chập với 3 kênh đầu r, ta sẽ nối mảng bộ lọc

K với K + 1 (cộng một cho mỗi phần tử trong K) và K + 2

Kết quả:

Trang 37

2.4 Gộp

Khi xử lý ảnh, ta thường muốn giảm dần độ phân giải không gian của các biểudiễn ẩn, tổng hợp thông tin lại để khi càng đi sâu vào mạng, vùng tiếp nhận (ởđầu vào) ảnh hưởng đến mỗi nút ẩn càng lớn

Nhiệm vụ cuối cùng thường là trả lời một câu hỏi nào đó về toàn bộ tấm ảnh,

ví dụ như: trong ảnh có mèo không? Vậy nên các nút của tầng cuối cùng thườngcần phải chịu ảnh hưởng của toàn bộ đầu vào Bằng cách dần gộp thông tin lại

để tạo ra các ánh xạ đặc trưng thưa dần, ta sẽ học được một biểu diễn toàn cục,trong khi vẫn có thể giữ nguyên toàn bộ lợi thế đến từ các tầng tích chập xử lýtrung gian

Hơn nữa, khi phát hiện các đặc trưng cấp thấp như: cạnh, viền, ta thườngmuốn cách biểu diễn này bất biến với phép tịnh tiến trong một chừng mực nào

đó Ví dụ, nếu ta lấy ảnhX với một ranh giới rõ rệt giữa màu đen và màu trắng

và dịch chuyển toàn bộ tấm ảnh sang phải một điểm ảnh, tức Z[i, j] = X[i, j + 1]

thì đầu ra cho ảnh mới Z có thể sẽ khác đi rất nhiều Đường biên đó và các giátrị kích hoạt sẽ đều dịch chuyển sang một điểm ảnh Trong thực tế, các vật thểhiếm khi xuất hiện chính xác ở cùng một vị trí Thậm chí với một chân máy ảnh

và một vật thể tĩnh, chuyển động của màn trập vẫn có thể làm rung máy ảnh

và dịch chuyển tất cả đi một vài điểm ảnh (các máy ảnh cao cấp được trang bịnhững tính năng đặc biệt nhằm khắc phục vấn đề này)

Mục này sẽ giới thiệu về các tầng gộp với hai chức năng là giảm độ nhạy cảmcủa các tầng tích chập đối với vị trí và giảm kích thước của các biểu diễn

2.4.1 Gộp cực đại và gộp trung bình

Tương tự như các tầng tích chập, toán tử gộp gồm một cửa sổ có kích thước cốđịnh được trượt trên tất cả các vùng của đầu vào với giá trị sải bước nhất định,tính toán một giá trị đầu ra duy nhất tại mỗi vị trí mà cửa sổ trượt qua Tầnggộp không có bộ lọc thay vào đó, các toán tử gộp được định nghĩa sẵn: tính giátrị cực đại hoặc trung bình của các phần tử trong cửa sổ gộp tương ứng với haitên gọi là gộp cực đại (max pooling) và gộp trung bình (average pooling).Trong cả hai trường hợp, giống như với toán tử tương quan chéo, ta có thểxem như cửa sổ gộp bắt đầu từ phía trên bên trái của mảng đầu vào và trượtqua mảng này từ trái sang phải và từ trên xuống dưới Ở mỗi vị trí mà cửa sổgộp dừng, nó sẽ tính giá trị cực đại hoặc giá trị trung bình của mảng con nằmtrong cửa sổ (tùy thuộc vào phép gộp được sử dụng) Ví dụ:

Trang 38

Hình 2.10: Gộp cực đại với cửa sổ có kích thước 2 × 2 [6]

Mảng đầu ra ở hình 2.10 gồm 4 phần tử được tính như sau:

max(0, 1, 3, 4) = 4, max(1, 2, 4, 5) = 5, max(3, 4, 6, 7) = 7, max(4, 5, 7, 8) = 8.

Một tầng gộp với cửa sổ gộp có kích thước p × q được gọi là một tầng gộp p × q

Phép gộp sẽ được gọi là phép gộp p × q Xét ví dụ nhận diện biên của vật thểđược đề cập ở đầu mục, chúng ta sẽ sử dụng kết quả của tầng tích chập làm giátrị đầu vào cho tầng gộp cực đại 2 × 2 Đặt giá trị đầu vào của tầng tích chập

là X và kết quả của tầng gộp là Y Dù giá trị của X[i, j] và X[i, j + 1] hay giátrị của X[i, j + 1] và X[i, j + 2] có khác nhau hay không, tất cả giá trị trả về củatầng gộp sẽ là Y [i, j] = 1 Nói cách khác, khi sử dụng tầng gộp cực đại 2 × 2, tavẫn có thể phát hiện ra khuôn mẫu được nhận diện bởi tầng tích chập nếu nó bịchuyển dịch không nhiều hơn một phần tử theo chiều cao và chiều rộng

2.4.2 Đệm và bước sải

Cũng giống như các tầng tính chập, các tầng gộp cũng có thể thay đổi kích thướcđầu ra Và cũng như trước, chúng ta có thể thay đổi cách thức hoạt động củatầng gộp để đạt được kích thước đầu ra như mong muốn bằng cách thêm đệmvào đầu vào và điều chỉnh sải bước

Khi xử lý dữ liệu đầu vào đa kênh, tầng gộp sẽ áp dụng lên từng kênh một cáchriêng biệt thay vì cộng từng phần tử tương ứng của các kênh lại với nhau như

Trang 39

tầng tích chập Điều này có nghĩa là số lượng kênh đầu ra của tầng gộp sẽ giống

số lượng kênh đầu vào

LeNet là một trong những mạng CNN lâu đời nổi tiếng nhất được Yann LeCunphát triển vào những năm 1998 Ở phần này, ta sẽ tìm hiểu cho tiết về mạngneuron tích chập cơ sở này Nhìn vào hình 2.11 ta có thể thấy mạng LeNet gồmhai phần:

• Một khối các tầng tích chập,

• Một khối các tầng kết nối đầy đủ

Hình 2.11: Dòng dữ liệu trong LeNet 5 Đầu vào là một chữ số viết tay, đầu ra là một xác suất đối với

10 kết quả khả thi [6]

Các đơn vị cơ bản trong khối tích chập là một tầng tích chập và một lớp gộptrung bình theo sau Lớp gộp trung bình được sử dụng vì tại thời điểm ra đời,những năm 90, lớp gộp cực đại chưa được phát minh, sau này lớp gộp cực đạiđược chứng minh là hoạt động tốt hơn Tầng tích chập được sử dụng để nhậndạng các mẫu không gian trong ảnh, chẳng hạn như các đường cạnh và các bộphận của vật thể, lớp gộp trung bình phía sau được dùng để giảm số chiều Khốitầng tích chập tạo nên từ việc xếp chồng các khối nhỏ gồm hai đơn vị cơ bảnnày

Mỗi tầng tích chập sử dụng hạt nhân có kích thước 5 × 5 và xử lý mỗi đầu

ra với một hàm kích hoạt sigmoid (hàm ReLU hiện được biết là hoạt động đángtin cậy hơn, nhưng chưa được phát minh vào thời điểm đó) Tầng tích chập đầutiên có 6 kênh đầu ra và tầng tích chập thứ hai tăng độ sâu kênh lên 16

Tuy nhiên, cùng với sự gia tăng số lượng kênh này, chiều cao và chiều rộng lạigiảm đáng kể Do đó, việc tăng số lượng kênh đầu ra làm cho kích thước tham

số của hai tầng tích chập tương tự nhau Hai lớp gộp trung bình có kích thước

Trang 40

2 × 2 và sải bước bằng 2, tức chúng không chồng chéo nhau Nói cách khác, lớpgộp giảm kích thước của các biểu diễn còn một phần tư kích thước trước khigộp.

Đầu ra của khối tích chập có kích thước được xác định bằng (kích thước batch

1, kênh, chiều cao, chiều rộng) Trước khi chuyển đầu ra của khối tích chập sangkhối kết nối đầy đủ, ta phải trải phẳng từng mẫu trong minibatch 2 Nói cáchkhác, ta biến đổi đầu vào 4D thành đầu vào 2D tương thích với các tầng kết nốiđầy đủ: chiều thứ nhất là chỉ số các mẫu trong minibatch và chiều thứ hai làbiểu diễn vector phẳng của mỗi mẫu Khối tầng kết nối đầy đủ của LeNet có batầng kết nối đầy đủ, với số lượng đầu ra lần lượt là 120, 84 và 10 Bởi vì ta đangthực hiện bài toán phân loại, tầng đầu ra 10 chiều tương ứng với số lượng cáclớp đầu ra khả thi (10 chữ số từ 0 đến 9) 3

Có thể nhận xét rằng chiều cao và chiều rộng của biểu diễn sau mỗi tầngtrong toàn bộ khối tích chập sẽ giảm theo chiều sâu của mạng so với chiều cao

và chiều rộng của biểu diễn ở tầng trước) Tầng tích chập đầu tiên sử dụng mộthạt nhân với chiều cao và chiều rộng là 5 rồi đệm thêm 2 đơn vị điểm ảnh đểgiữ nguyên kích thước đầu vào Trong khi đó, tầng tích chập thứ hai cũng dùngcùng một hạt nhân với kích thước là 5 × 5mà không có sử dụng giá trị đệm thêmvào, dẫn đến việc chiều cao và chiều rộng giảm đi 4 đơn vị điểm ảnh Ngoài ra,mỗi tầng gộp sẽ làm giảm đi một nửa chiều cao và chiều rộng của đặc trưng ánh

xạ đầu vào Tuy nhiên, khi chúng ta đi theo chiều sâu của mạng, số kênh sẽ tănglần lượt theo từng tầng Từ 1 kênh của dữ liệu đầu vào lên tới 6 kênh sau tầngtích chập thứ nhất và 16 kênh sau tầng tích chập thứ hai Sau đó, giảm số chiềulần lượt qua từng tầng kết nối đầy đủ đến khi trả về một đầu ra có kích thướcbằng số lượng lớp của hình ảnh

Ở phần này tôi sẽ trình bày một số mạng neuron tích chập phổ biến hiện nay,phần này sẽ chỉ đưa ra kiến trúc và các so sánh giữa các mạng với nhau

2 Khi 1 < kích cỡ batch < Kích thước tập huấn luyện thì nó được gọi là minibatch.

3 Lenet được sử dụng cho bài toán nhận dạng chữ số viết tay trên tập dữ liệu MNIST.

Ngày đăng: 07/12/2021, 23:27

HÌNH ẢNH LIÊN QUAN

Hình 1.3: Mô hình neuron sinh học (bên trái) và mô hình toán học của nó (bên phải). [1] - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 1.3 Mô hình neuron sinh học (bên trái) và mô hình toán học của nó (bên phải). [1] (Trang 15)
Hình 1.4: Bên trái: Mạng neuron 2 tầng. Bên phải: Mạng neuron 3 tầng. - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 1.4 Bên trái: Mạng neuron 2 tầng. Bên phải: Mạng neuron 3 tầng (Trang 16)
Hình 1.5: Ví dụ về trị số score trong bài toán phân loại ảnh. [1] - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 1.5 Ví dụ về trị số score trong bài toán phân loại ảnh. [1] (Trang 17)
Hình 1.6: Ví dụ về Gradient Descent. [2] - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 1.6 Ví dụ về Gradient Descent. [2] (Trang 19)
Hình 1.7: GD dưới góc nhìn vật lý. [2] - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 1.7 GD dưới góc nhìn vật lý. [2] (Trang 21)
Hình 2.2: Biểu diễn ảnh với thư viện numpy trong Python. [6] - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 2.2 Biểu diễn ảnh với thư viện numpy trong Python. [6] (Trang 30)
Hình 2.5: Tương quan chéo với X chuyển vị. [6] - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 2.5 Tương quan chéo với X chuyển vị. [6] (Trang 31)
Hình 2.6: Một số ví dụ về bộ lọc. [6] - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 2.6 Một số ví dụ về bộ lọc. [6] (Trang 31)
Hình 2.8: Phép tương quan chéo với sải bước 3 theo chiều dài và và 2 theo chiều rộng. [6] - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 2.8 Phép tương quan chéo với sải bước 3 theo chiều dài và và 2 theo chiều rộng. [6] (Trang 34)
Hình 2.9: Phép tính tương quan chéo với hai kênh đầu vào. [6] - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 2.9 Phép tính tương quan chéo với hai kênh đầu vào. [6] (Trang 35)
Hình 2.13: Lenet và Alexnet. [6] - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 2.13 Lenet và Alexnet. [6] (Trang 42)
Hình 2.14: Alexnet và VGG. [6] - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 2.14 Alexnet và VGG. [6] (Trang 43)
Hình 3.1: YOLO chia ảnh thành lưới S × S, mỗi ô trong lưới chỉ dự đoán một vật thể duy nhất - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 3.1 YOLO chia ảnh thành lưới S × S, mỗi ô trong lưới chỉ dự đoán một vật thể duy nhất (Trang 46)
Hình 3.2: Mỗi ô dự đoán một số khung chứa cố định cho 1 vật thể nào đó. [9] - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 3.2 Mỗi ô dự đoán một số khung chứa cố định cho 1 vật thể nào đó. [9] (Trang 46)
Hình 3.3: Ví dụ về ground-truth bounding box và predicted bounding box . [7] - Ứng dụng nhận dạng vật thể trong ảnh số vào xây dựng website thương mại điện tử
Hình 3.3 Ví dụ về ground-truth bounding box và predicted bounding box . [7] (Trang 47)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w