Tải bản đầy đủ (.pdf) (75 trang)

Hiểu biết môi trường xung quanh dùng mạng nơron tích chập

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.26 MB, 75 trang )

TÓM TẮT

Trong những năm gần đây, trên thế giới nghiên cứu ứng dụng xử lý và nhận dạng
ảnh đang là hướng nghiên cứu tập trung của rất nhiều nhà khoa học trong đa số các lĩnh
vực. Khái niệm xử lý ảnh và thị giác máy – Computer vision có liên quan tới nhiều ngành
học và hướng nghiên cứu khác nhau. Từ những năm 1970 khi mà năng lực tính tốn của
máy tính ngày càng trở nên mạnh mẽ hơn, các máy tính lúc này có thể xử lý được những
tập dữ liệu lớn như các hình ảnh, các đoạn phim thì khái niệm và kỹ thuật về thị giác
máy ngày càng được nhắc đến và nghiên cứu nhiều hơn cho tới ngày nay. Và đặc biệt
gần đây nhất không thể không để đến cái tên Deep Learning, công nghệ đang giúp cho
trí tuệ nhân tạo sánh được với con người. Deep Learning đã thúc đẩy tiến bộ trong đa
dạng các lĩnh vực như nhận thức sự vật, dịch tự động, nhận diện giọng nói… Những vấn
đề từng rất khó khăn với các nhà nghiên cứu trí tuệ nhân tạo.
Convolutional Neural Network (CNN – Mạng nơron tích chập) là một trong những
mơ hình Deep Learning tiên tiến giúp cho chúng ta xây dựng được những hệ thống thơng
minh với độ chính xác cao như hiện nay.
Trong đề tài này, em tìm hiểu phương pháp và giải thích đơn giản về CNN cũng
như ý tưởng của mơ hình CNN trong việc nhận dạng các đối tượng sự vật trong môi
trường xung quanh.

iv


MỤC LỤC
Trang tựa

Trang

Quyết định giao đề tài
Lý lịch khoa học .......................................................................................................... i
Lời cam đoan .............................................................................................................ii


Lời cảm ơn ................................................................................................................ iv
Tóm tắt ........................................................................................................................ v
Mục lục ....................................................................................................................... vi
Danh mục chữ viết tắt ................................................................................................ ix
Danh mục hình ảnh ..................................................................................................... x
Danh mục bảng .........................................................................................................xii
Chương 1: TỔNG QUAN .......................................................................................... 1
1.1 Tổng quan về lĩnh vực nghiên cứu ................................................................. 1
1.2 Mục tiêu của đề tài ......................................................................................... 2
1.3 Nhiệm vụ và giới hạn của đề tài..................................................................... 2
1.4 Phương pháp nghiên cứu ............................................................................... 3
1.5 Tóm tắt nội dung chính của đề tài .................................................................. 3
Chương 2 : CƠ SỞ LÝ THUYẾT............................................................................. 4
2.1 Mạng nơron và mạng nơron lan truyền ngược ............................................... 4
2.1.1 Giới thiệu về mạng Nơron ...................................................................... 4
2.1.2 Một số kiểu mạng nơron ......................................................................... 7
2.1.3 Các phương pháp huấn luyện mạng thần kinh nhân tạo.......................... 9
2.2 Mạng nơron tích chập .................................................................................. 11
2.2.1 Tích chập .............................................................................................. 12
2.2.2 Các thành phần cơ bản của mạng CNN ................................................ 13
2.2.3 Kiến trúc mạng CNN ............................................................................ 20

v


2.3 Xác định vị trí và xác định đối tượng trong mạng CNN .............................. 21
2.3.1 Xác định vị trí của đối tượng đơn trong ảnh ......................................... 22
2.3.2 RCNN ................................................................................................... 24
2.3.3 Fast RCNN ........................................................................................... 25
2.3.4 Faster RCNN ........................................................................................ 26

2.3.5 Underfitting và Overfitting ................................................................... 37
Chương 3 : NHẬN DIỆN CÁC ĐỐI TƯỢNG XUNG QUANH SỬ DỤNG
MẠNG NƠ RON TÍCH CHẬP ................................................................................ 40
3.1 Nhận diện đơn đối tượng với kỹ thuật CNN ................................................ 40
3.1.1 Xây dựng mạng CNN ........................................................................... 40
3.1.2 Dữ liệu huấn luyện................................................................................ 43
3.1.3 Huấn luyện mạng .................................................................................. 44
3.2 Nhận diện đa đối tượng với kỹ thuật Faster RCNN ..................................... 48
3.2.1 Faster RCNN – VGG16 ........................................................................ 48
3.2.2 Dữ liệu huấn luyện................................................................................ 51
3.2.3 Huấn luyện mạng .................................................................................. 53
Chương 4 : KẾT QUẢ MÔ PHỎNG ...................................................................... 54
4.1 Giới thiệu chương trình mơ phỏng ............................................................... 54
4.2 Kết quả mô phỏng ........................................................................................ 55
4.2.1 Kết quả nhận diện đơn đối tượng với kỹ thuật CNN............................. 55
4.2.2 Kết quả nhận diện đa đối tượng với kỹ thuật Faster RCNN.................. 59
4.3 So sánh kết quả giữa hai mạng CNN ........................................................... 63
4.4 Đánh giá kết quả giữa các kỹ thuật .............................................................. 64
Chương 5 : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ............................................. 66
5.1 Kết luận........................................................................................................ 66
5.2 Hướng phát triển .......................................................................................... 67
TÀI LIỆU THAM KHẢO ......................................................................................... 68

vi


DANH MỤC CHỮ VIẾT TẮT
Mạng nơron nhân tạo

ANN


Artificial Neural Network

CIFAR

Canadian Institute For
Advanced Research

CNN

Convolutional Neural
Networks

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

CPU

Central Processing Unit

Bộ vi xử lý trung tâm

GPU

Graphics Processing Unit

Bộ vi xử lý đồ họa

MS COCO

Microsoft Common Objects

In Context

R-CNN

Region - Convolutional
Neural Networks

Mạng nơron tích chập với vùng
đề xuất

ReLU

Rectified Linear Unit

Hàm biến đổi tuyến tính

ROI pooling

Region Of Interest Pooling

Vùng phân chia theo tỉ lệ

RPN

Region Proposal Network

Mạng đề xuất vùng

vii



DANH MỤC HÌNH ẢNH
Hình ảnh

Trang

Hình 2.1: Tế bào thần kinh. ........................................................................................................4
Hình 2.2: Mạng thần kinh nhân tạo. ...........................................................................................5
Hình 2.3: Một số hàm tác động. .................................................................................................7
Hình 2.4: Mạng truyền thẳng một lớp. .......................................................................................7
Hình 2.5: Mạng truyền thẳng nhiều lớp. ....................................................................................8
Hình 2.6: Mạng hồi quy một lớp. ...............................................................................................8
Hình 2.7: Mạng hồi quy nhiều lớp. ............................................................................................9
Hình 2.8: Các phương pháp huấn luyện mạng thần kinh nhân tạo. ..........................................9
Hình 2.9: Học có giám sát. .......................................................................................................10
Hình 2.10: Học củng cố. ...........................................................................................................11
Hình 2.11: Học khơng giám sát. ...............................................................................................11
Hình 2.12: Minh họa tích chập. ................................................................................................12
Hình 2.13: Tách biên. ...............................................................................................................13
Hình 2.14: ANN với cấu trúc kết nối đầy đủ. ..........................................................................13
Hình 2.15: Ví dụ ứng dụng tích chập. ......................................................................................14
Hình 2.16: Các thành phần của lớp tích chập. .........................................................................16
Hình 2.17: Cách tính tham số của lớp tích chập. .....................................................................17
Hình 2.18: Cách tính tham số của lớp pooling.........................................................................18
Hình 2.19: Kiến trúc mạng CNN cơ bản..................................................................................20
Hình 2.20: Xác định vị trí và xác định đối tượng. ...................................................................21

viii



Hình 2.21: Độ sai lệch của các mạng ImageNet so với thị giác con người ............................22
Hình 2.22: So sánh các chỉ số của đường bao chứa đối tượng. ...............................................23
Hình 2.23: Xác định vị trí đối tượng ở lớp fully connected. ...................................................23
Hình 2.24: Regions + CNN. .....................................................................................................24
Hình 2.25: Hiệu chỉnh các giá trị của vùng đề xuất.................................................................25
Hình 2.26: Fast RCNN. ............................................................................................................26
Hình 2.27: Kiến trúc của mạng Faster RCNN. ........................................................................27
Hình 2.28: Huấn luyện mạng RPN...........................................................................................28
Hình 2.29: Sử dụng các cửa sổ trượt lên lớp tích chập. ...........................................................29
Hình 2.30: Anchor tại điểm ảnh (320, 320). ............................................................................31
Hình 2.31: Vùng đề xuất...........................................................................................................34
Hình 2.32: Underfitting và Overfitting. ...................................................................................38
Hình 3.1: Mạng CNN 5 layer. ..................................................................................................42
Hình 3.2: Một số hình ảnh trong tập ảnh huấn luyện. .............................................................43
Hình 3.3: Mơ hình mạng VGG16.............................................................................................50
Hình 3.4: Một số hình ảnh của tập dữ liệu MS COCO............................................................51
Hình 3.5: Các đối tượng chứa trong tập dữ liệu MS COCO. ..................................................52
Hình 4.1: Giao diện chương trình mơ phỏng kỹ thuật CNN. ..................................................54
Hình 4.2: Giao diện kết quả của chương trình mơ phỏng kỹ thuật CNN................................55

ix


DANH MỤC BẢNG BIỂU
Bảng

Trang

Bảng 3.1: Thông số của mạng CNN 15 lớp. ............................................................................41
Bảng 3.2: Tập ảnh huấn luyện mạng CNN 15 lớp. ..................................................................44

Bảng 3.3: Tập ảnh kiểm tra mạng CNN 15 lớp. ......................................................................44
Bảng 3.4: Thơng số trong q trình huấn luyện mạng CNN 15 lớp........................................47
Bảng 3.5: Thông số của mạng Faster RCNN - VGG16...........................................................50
Bảng 3.6: Liệt kê các đối tượng trong tập dữ liệu MS COCO. ...............................................52
Bảng 3.7: Số lượng ảnh và dung lượng của tập dữ liệu MS COCO. ......................................53
Bảng 4.1: Bảng kết quả mô phỏng sử dụng kỹ thuật CNN. ....................................................58
Bảng 4.2: Bảng kết quả mô phỏng sử dụng kỹ thuật Faster RCNN........................................62
Bảng 4.3: Bảng so sánh kết quả mô phỏng giữa kỹ thuật CNN và kỹ thuật Faster RCNN ...64
Bảng 4.4: Đánh giá khả năng nhận dạng đối tượng. ................................................................65
Bảng 4.5: Đánh giá khả năng xác định vị trí. ...........................................................................65
Bảng 4.6: Đánh giá thời gian xử lý...........................................................................................65

x


Chương 1:

TỔNG QUAN
1.1 Tổng quan về lĩnh vực nghiên cứu
Trí tuệ nhân tạo (Artificial Intelligence - AI) giờ xuất hiện ở khắp mọi nơi. Nó là
thứ được sử dụng để trả lời email tự động trên Gmail, học cách lái xe cho chúng ta ngồi
chơi, sắp xếp lại ảnh của những chuyến đi chơi thành từng album riêng biệt, thậm chí
cịn giúp quản lý ngơi nhà hay đi mua sắm. Trí tuệ nhân tạo có thể được hiểu đơn giản
là được cấu thành từ các lớp xếp chồng lên nhau, trong đó mạng thần kinh nhân tạo nằm
ở dưới đáy, Machine Learning nằm ở tầng tiếp theo và Deep Learning nằm ở tầng trên
cùng.
Năm 2011, Google khởi tạo dự án Google Brain với mục đích tạo ra một mạng
thần kinh được huấn luyện bởi các thuật toán Deep Learning. Dự án này sau đó đã chứng
minh được khả năng tiếp nhận được cả những khái niệm bậc cao của Deep Learning.
Facebook cũng thành lập AI Research Unit, đơn vị nghiên cứu về AI sử dụng Deep

Learning vào việc tạo ra các giải pháp hiệu quả hơn giúp nhận diện khuôn mặt và sự vật
trên 350 triệu bức ảnh và video được đăng tải lên Facebook mỗi ngày. Một ví dụ tiêu
biểu khác về Deep Learning trong thực tế là khả năng nhận diện giọng nói của các trợ lý
ảo Google Now và Siri.
Deep Learning đang ngày càng cho thấy một tương lai đầy hứa hẹn với ứng dụng
vào điều khiển xe tự lái hay robot quản gia. Mặc dù các sản phẩm này vẫn còn nhiều hạn
chế nhưng những thứ chúng làm được hiện nay thực sự rất khó tưởng tượng nổi chỉ vài
năm trước đây; tốc độ nâng cấp cũng cao chưa từng thấy. Khả năng phân tích dữ liệu
lớn và sử dụng Deep Learning vào các hệ thống máy tính có thể tự thích nghi với những
gì chúng tiếp nhận mà khơng cần đến bàn tay lập trình của con người sẽ nhanh chóng
mở đường cho nhiều đột phá trong tương lai. Những đột phá này có thể là việc thiết kế
1


ra những trợ lý ảo, các hệ thống xe tự lái hay sử dụng vào thiết kế đồ họa, sáng tác nhạc,
cho đến phát triển các nguyên liệu mới giúp robot thấu hiểu thế giới xung quanh hơn.
Chính vì tính thương mại cao mà các công ty lớn, đặc biệt là Google, luôn ưu tiên các
startup về robot và Deep Learning trong danh sách thâu tóm của mình.
Deep Learning nói riêng hay trí tuệ nhân tạo nói chung thực sự có rất nhiều ứng
dụng tuyệt vời, nhưng chúng ta hiện mới chỉ đang ở giai đoạn đầu phát triển nó nên
những hạn chế là khơng thể tránh khỏi. Có lẽ cịn phải chờ khá lâu nữa những hệ thống
AI “có tri giác” mới thực sự xuất hiện, nhưng những gì các công ty lớn như Google,
Facebook, IBM đang làm hiện nay cũng tương tự với việc đặt những viên gạch đầu tiên
mở đường cho kỷ nguyên AI trong những thập kỷ tới.
1.2 Mục tiêu của đề tài
Mục tiêu của đề tài là sử dụng mơ hình mạng nơron tích chập để xử lý ảnh được
thu thập trong môi trường sống xung quanh nhằm hiểu được các đối tượng và sự vật
trong ảnh là gì và cũng như để biết được vị trí của đối tượng sự vật đó trong ảnh.
1.3 Nhiệm vụ và giới hạn của đề tài
Nhiệm vụ:

 Tìm hiểu một số mơ hình và ứng dụng của Deep Learning trong xử lý hình ảnh.
 Tìm hiểu các phương pháp tìm điểm đặc trưng trong ảnh.
 Trích xuất các điểm đặc trưng và biểu diễn nó trong mạng nơron tích chập.
 Tập hợp các điểm đặc trưng từ nhiều ảnh và dự đốn tính chất, đặc trưng của ảnh.
 Thực hiện huấn luyện, mô phỏng bằng phần mềm để xác định đối tượng, sự vật
trong ảnh.
Giới hạn:
 Trong đề tài này, hiệu suất của mơ hình mơ phỏng bị giới hạn bởi phần cứng và
số lượng dữ liệu thu thập.

2


1.4 Phương pháp nghiên cứu
 Thu thập, tổng hợp các tài liệu lý thuyết cơ bản liên quan đến đề tài.
 Tìm hiểu các kết quả nghiên cứu đã cơng bố trong nước và quốc tế.
 Phân tích lý thuyết và xây dựng phần mềm để đánh giá mơ hình mạng.
 Tổng hợp viết báo cáo.
1.5 Tóm tắt nội dung chính của đề tài
Nội dung của đề tài bao gồm các phần sau:
Chương I: Tổng quan
Giới thiệu tổng quan về mục đích của đề tài cũng như các nghiên cứu liên quan đến
đề tài, cũng như trình bày mục tiêu và phương pháp thực hiện đề tài.
Chương II: Cơ sở lý thuyết
Giới thiệu cơ sở lý thuyết sử dụng trong đề tài như mạng CNN, mạng R-CNN,
mạng Fast R-CNN, mạng Faster R-CNN và các kỹ thuật xử lý liên quan.
Chương III: Xây dựng bài toán nhận dạng đơn giản dùng mạng nơron tích chập.
Chương này sẽ đi vào trình bày cách xây dựng mạng, tổ chức dữ liệu, huấn luyện
và giới thiệu các phần mềm mô phỏng các kỹ thuật.
Chương IV: Kết quả mơ phỏng

Chương này sẽ trình bày các kết quả mô phỏng nhằm so sánh và đánh giá các kỹ
thuật.
Chương V: Kết luận và hướng phát triển
Chương này sẽ đưa ra kết luận và hướng phát triển của đề tài.

3


Chương 2:

CƠ SỞ LÝ THUYẾT
2.1 Mạng nơron và mạng nơron lan truyền ngược
2.1.1 Giới thiệu về mạng Nơron
Đặc điểm bộ não người: hệ xử lý thông tin phức tạp, phi tuyến và song song, có
khả năng học, ghi nhớ, tổng quát hóa, xử lý lỗi và có khoảng 1011 tế bào thần kinh.
Tế bào thần kinh sinh học gồm: đầu dây thần kinh, thân tế bào, sợi thần kinh.

Sợi nhánh
Sợi trục

Eo
răng-vi-ê
Thanh
nơ ron

Bao mi-ê-lin

Nhân
Hình 2.1: Tế bào thần kinh.
Tế bào thần kinh nhân tạo: được biết như là mơ hình tốn học đơn giản của bộ não

con người.

4


Đặc điểm: Cần được huấn luyện trước khi sử dụng, các nghiên cứu về lĩnh vực này
bắt từ 1940. Hiện nay có rất nhiều mạng và các thuật tốn huấn luyện tương ứng được
công bố để giải quyết các bài tốn khác nhau.
Mạng thần kinh nhân tạo: Nó bao gồm các tế bào thần kinh kết nối với nhau bởi
các liên kết, mỗi liên kết kèm theo một trọng số. Các vectơ tín hiệu ngõ vào và vectơ
trọng số của tế bào thần kinh.

𝑥1
𝑛

𝑥2

𝑓(෍ 𝑊𝑖 𝑋𝑖 )
𝑖=1

Y

𝑥3
Hình 2.2: Mạng thần kinh nhân tạo.
Theo tài liệu [2] ta có thể định nghĩa như sau: Mạng nơron (thần kinh) nhân tạo,
Artificial Neural Network (ANN) là một mơ hình xử lý thơng tin phỏng theo cách thức
xử lý thông tin của các hệ nơron sinh học. Nó được tạo nên từ một số lượng lớn các phần
tử (nơron) kết nối với nhau thông qua các liên kết (trọng số liên kết) làm việc như một
thể thống nhất để giải quyết một vấn đề cụ thể nào đó. Một mạng nơron nhân tạo được
cấu hình cho một ứng dụng cụ thể (nhận dạng mẫu, phân loại dữ liệu, ...) thơng qua một

q trình học từ tập các mẫu huấn luyện. Về bản chất học chính là q trình hiệu chỉnh
trọng số liên kết giữa các nơron.
Các thành phần cơ bản của một nơron nhân tạo bao gồm:
 Tập các đầu vào: là các tín hiệu vào của nơron, các tín hiệu này thường được đưa
vào dưới dạng một vector N chiều.

5


 Tập các liên kết: mỗi liên kết được thể hiện bởi một trọng số liên kết – Synaptic
weight. Trọng số liên kết giữa tín hiệu vào thứ j với nơron k thường được kí hiệu là Wij.
Thơng thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo
mạng và được cập nhật liên tục trong quá trình học mạng.
 Bộ tổng (Summing function): thường dùng để tính tổng của tích các đầu vào với
trọng số liên kết của nó.
 Ngưỡng (cịn gọi là một độ lệch - bias): ngưỡng này thường được đưa vào nhờ
một thành phần của hàm truyền.
 Hàm truyền (Transfer function): hàm này được dùng để giới hạn phạm vi đầu ra
của mỗi nơron. Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng.
 Đầu ra: là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa là một đầu ra.
 Xét về mặt tốn học, cấu trúc của một nơron k, được mơ tả bằng biểu thức sau:
Hàm xử lý ngõ vào:
 Hàm tuyến tính:
n

f  neti  ( wij x j )  i  W T X  
j 1

(2.1)


 Hàm toàn phương:
n

f  net  ( wij xij 2 )  i

(2.2)

f  net  (  2  ( wij  xij )2 )  i   2 ( X  W )T ( X  W )  

(2.3)

j 1

 Hàm cầu:
n

j 1

Hàm xử lý ngõ ra _ Hàm kích hoạt: Y = a(f), bao gồm:

6


 Hàm nấc.
 Hàm dấu.
 Hàm tuyến tính.
 Hàm dốc bão hịa.
 Hàm tuyến tính bão hịa.
 Hàm dạng S.


Threshold

Linear

Gaussian

Sigmoid

Hình 2.3: Một số hàm tác động.
2.1.2 Một số kiểu mạng nơron
2.1.2.1 Mạng truyền thẳng một lớp

Hình 2.4: Mạng truyền thẳng một lớp.

7


Là mạng chỉ gồm một lớp tế bào thần kinh xử lý. Tín hiệu chỉ truyền theo một
chiều từ ngõ vào đến ngõ ra.
2.1.2.2 Mạng truyền thẳng nhiều lớp

Hình 2.5: Mạng truyền thẳng nhiều lớp.
Là mạng gồm nhiều lớp tế bào thần kinh xử lý. Tín hiệu chỉ truyền theo một chiều
từ ngõ vào đến ngõ ra.
2.1.2.3 Mạng hồi quy một lớp

Hình 2.6: Mạng hồi quy một lớp.

8



Là mạng chỉ gồm một lớp trong đó có tín hiệu hồi tiếp từ ngõ ra trở về ngõ vào.
2.1.2.4 Mạng hồi quy nhiều lớp

Hình 2.7: Mạng hồi quy nhiều lớp.
Là mạng gồm nhiều lớp tế bào thần kinh xử lý. Trong đó có tín hiệu hồi tiếp từ ngõ
ra trở về ngõ vào.
2.1.3 Các phương pháp huấn luyện mạng thần kinh nhân tạo

Kiểu học

Học thơng số

Có giám sát

Học cấu trúc

Củng cố

Khơng giám sát

Hình 2.8: Các phương pháp huấn luyện mạng thần kinh nhân tạo.

9


2.1.3.1 Học có giám sát

Hình 2.9: Học có giám sát.
Học có giám sát: Là q trình học có sự tham gia giám sát của một “thầy giáo”.

Cũng giống như việc ta dạy một em nhỏ các chữ cái. Ta đưa ra một chữ “a” và bảo với
em đó rằng đây là chữ “a”. Việc này được thực hiện trên tất cả các mẫu chữ cái. Sau đó
khi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể viết hơi khác đi) và hỏi em đó đây là
chữ gì?
Như vậy với học có giám sát, số lớp cần phân loại đã được biết trước. Nhiệm vụ
của thuật toán là phải xác định được một cách thức phân lớp sao cho với mỗi vector đầu
vào sẽ được phân loại chính xác vào lớp của nó.
2.1.3.2 Học củng cố
Học củng cố: đơi khi cịn được gọi là học thưởng-phạt (rewardpenalty learning), là
sự tổ hợp của cả hai mơ hình trên. Phương pháp này cụ thể như sau: với vector đầu vào,
quan sát vector đầu ra do mạng tính được. Nếu kết quả được xem là “tốt” thì mạng sẽ
được thưởng theo nghĩa tăng các trọng số kết nối lên; ngược lại mạng sẽ bị phạt, các
trọng số kết nối không thích hợp sẽ được giảm xuống.

10


Hình 2.10: Học củng cố.
2.1.3.3 Học khơng giám sát

Hình 2.11: Học khơng giám sát.
2.2 Mạng nơron tích chập
CNN là một trong những thuật toán Deep Learning cho kết quả tốt nhất hiện nay
trong hầu hết các bài toán về thị giác máy như phân lớp, nhận dạng, …Về cơ bản CNN
là một kiểu mạng ANN truyền thẳng, trong đó kiến trúc chính gồm nhiều thành phần
được ghép nối với nhau theo cấu trúc nhiều tầng đó là:
 Convolution.
 Pooling.
 ReLU.
 Fully connected.

11


Trước tiên ta đi vào tìm hiểu khái niệm tích chập trong mạng nơ ron tích chập trước.
2.2.1 Tích chập
Tích chập được sử dụng đầu tiên trong xử lý tín hiệu số (Signal Processing). Nhờ
vào nguyên lý biến đổi thông tin, các nhà khoa học đã áp dụng kĩ thuật này vào xử lý
ảnh và video số. Các nguyên lý về tích chập được trình bày rõ hơn trong tài liệu [1].
Để dễ hình dung, ta có thể xem tích chập như một cửa sổ trượt (Sliding Window)
áp đặt lên một ma trận. Ta có thể theo dõi cơ chế của tích chập qua hình minh họa bên
dưới:

Hình ảnh

Ma trận đặc tính

Hình 2.12: Minh họa tích chập.
Ma trận bên trái là một bức ảnh đen trắng. Mỗi giá trị của ma trận tương đương với
một điểm ảnh (pixel), 0 là màu đen, 1 là màu trắng (nếu là ảnh xám thì giá trị biến thiên
từ 0 đến 255).
Sliding window cịn có tên gọi là kernel, filter hay feature detector. Ở đây, ta dùng
một ma trận với bộ lọc 3×3 nhân từng thành phần tương ứng (Element-wise) với ma trận
ảnh bên trái. Gía trị đầu ra do tích của các thành phần này cộng lại. Kết quả của tích chập
là một ma trận (Convoled Feature) sinh ra từ việc trượt ma trận bộ lọc và thực hiện tích
chập cùng lúc lên toàn bộ ma trận ảnh bên trái.
Dưới đây là kết quả thu được sau khi sử dụng cửa sổ trượt là ma trận tách biên
Sobel:
12



Hình 2.13: Tách biên.
2.2.2 Các thành phần cơ bản của mạng CNN
Trước khi đi vào các thành phần cơ bản của CNN, ta xem xét một ví dụ về cách
thức xử lý thông tin đầu vào của một ANN truyền thẳng để từ đó ta thể thấy được tác
dụng của các thành phần có trong mạng CNN.

W

Lớp ẩn

Lớp đầu vào

Hình 2.14: ANN với cấu trúc kết nối đầy đủ.
Hình trên mơ tả một ví dụ với dữ liệu đầu vào là một bức ảnh có kích thước
200*200 được xử lý bằng ANN với kết nối đầy đủ giữa hai tầng liên tiếp (full connected).
Như vậy giả sử số neural tầng ẩn là 40000 thì tổng số tham số (mà cụ thể hơn ở đây là
các trọng số liên kết W giữa các neural tầng nhập với tầng ẩn) cần phải ước lượng lên
13


đến 1.6 tỉ. Điều này gây khó khăn cho việc huấn luyện ANN trên hai yếu tố:(1) chi phí
để xây dựng dữ liệu huấn luyện lớn và (2) thời gian huấn luyện lâu.
Từ thực tế đặt ra ở trên người ta thấy rằng để giảm số lượng tham số cần giảm số
lượng kết nối giữa các lớp. Từ đây thành phần tích chập được áp dụng – ý tưởng chính
là mỗi nơ ron chỉ cần kết nối tới một vùng cục bộ của ảnh thay vì trên tồn bộ ảnh.
2.2.2.1 Lớp tích chập (Convolution layer)
Lớp tích chập là lớp quan trọng nhất trong cấu trúc của CNN. Lớp tích chập dựa trên
lý thuyết xử lý tín hiệu số, việc lấy tích chập sẽ giúp trích xuất được những thơng tin quan
trọng từ dữ liệu. Hình dưới mơ tả lý thuyết và cách thức tích chập hoạt động trên một dữ
liệu đầu vào được biểu diễn bằng một ma trận hai chiều. Ta có thể hình dung phép tính

này được thực hiện bằng cách dịch chuyển một cửa sổ mà ta gọi là kernel trên ma trận đầu
vào, trong đó kết quả mỗi lần dịch chuyển được tính bằng tổng tích chập (tích của các giá
trị giữa 2 ma trận tại vị trí tương ứng), trong hình là giá trị đầu ra khi dịch chuyển kenel
kích thước 2*2 trên tồn bộ ma trận kích thước 3*4.

Hình 2.15: Ví dụ ứng dụng tích chập.

14


Khi được áp dụng phép tính tích chập vào xử lý ảnh người ta thấy rằng tích chập sẽ
giúp biến đổi các thông tin đầu vào thành các yếu tố đặc trưng (nó tương ứng như bộ phát
hiện – detector các đặc trưng về cạnh, hướng, đốm màu …). Hình 2.15 là minh họa việc
áp dụng phép tính tích chập trên ảnh trong đó (a) là kết quả biến đổi hình ảnh khi thực
hiện phép tích chập khác nhau cho ra kết quả khác nhau, (b) là trực quan hóa các kernel
dùng để detector các đặc trưng về cạnh, hướng, đốm màu.
Để dễ hình dung, ta xét bài tốn thực hiện tính giá trị đầu ra của một ảnh có kích
thước 𝑊1 *𝐻1 * 𝐷1 . Khi đó một lớp tích chập sẽ có một cửa sổ trượt – cửa sổ này thực
chất cũng là một ma trận có kích thước F*F thực hiện trên mỗi chiều của ảnh đầu vào
(ta sử dụng K bộ lọc). Trong quá trình xử lý sẽ dịch chuyển các bộ lọc trên toàn bộ bức
ảnh theo S (stride) bước (tính bằng pixel).
Ta gọi mỗi vùng mà bộ lọc áp đặt lên ma trận đầu vào là receptive field. Trong một
số trường hợp để cân bằng giữa số bước dịch chuyển và kích thước của ảnh người ta có
thể chèn thêm P pixel với một giá trị màu cho trước (thường là 0) xung quanh viền của
ảnh khi đó ta được ma trận đầu ra (feature map) là 𝑊2 * 𝐻2 *𝐷2 trong đó:
𝑊2 =(𝑊1 – F+2P)/S+1

(2.4)

𝐻2 =( 𝐻1 – F+2P)/S+1


(2.5)

𝐷2 =K
Giá trị tại các ơ trong ma trận của bộ lọc có kích thước (F*F*𝐷1 ) +1 (cộng 1 ở đây
là tham số ngưỡng của filter) sẽ tương ứng là trọng số, các giá trị này của mỗi bộ lọc
khơng đổi trong q trình dịch chuyển trên toàn bộ bức ảnh đầu vào.
Đây cũng là tính chất quan trọng (dùng chung bộ trọng số – shared weights) làm
giảm thêm số tham số cần học trong q trình huấn luyện mạng. Từ đó tổng số tham số
cần học cho q trình sử dụng tích chập là (F*F*𝐷1 )*K +K (ở đây cộng thêm K tham số
ngưỡng của K filter).

15


W
P

Kernel
Giá trị ở feature map

Hình 2.16: Các thành phần của lớp tích chập.
Trong hình trên là ví dụ cụ thể, trong đó đầu vào là ảnh có kích thước (32*32*3) ở
đây 𝑊1 = 𝐻1 =32 và 𝐷1 =3 là chỉ giá trị của kênh màu RGB. Giả sử ta tiến hành sử dụng
6 bộ lọc (K=6) trong đó mỗi bộ lọc có kích thước (5*5*3) F=5 với bước dịch chuyển
S=1 và P=0. Tương ứng với mỗi bộ lọc sẽ cho một feature map khác nhau ở kết quả đầu
ra trong đó: kích thước feature map là 𝑊2 = 𝐻2 = (𝑊1 – F)/1 +1 =28. Mỗi neural trong
một feature map sẽ có số tham số là (F*F*𝐷1 ) = 5*5*3 +1. Nếu khơng sử dụng tính chất
shared weights thì số tham số cần học trong tất cả feature map trong cả 6 bộ lọc là:
(28*28*6) * (5*5*3 +1) mặc dù đã nhỏ hơn nhiều so với việc không sử dụng tích chập

nhưng con số vẫn lớn hơn so với (F*F*𝐷1 )K + K = 5*5*3*6 +6 tham số khi dùng chung
bộ trọng số.
16


Hình 2.17: Cách tính tham số của lớp tích chập.
Như vậy sử dụng tích chập có những ưu điểm sau:
 Giảm số lượng tham số: Ở ANNs truyền thống, các neural ở lớp trước sẽ kết nối
tới tất cả các neural ở lớp sau (full connected) gây nên tình trạng quá nhiều tham số cần
học. Đây là nguyên nhân chính gây nên tình trạng overfiting cũng như làm tăng thời gian
huấn luyện. Với việc sử dụng tích chập trong đó cho phép chia sẻ trọng số liên kết (shared
weights), cũng như thay vì sử dụng full connected sẽ sử dụng local receptive fields giúp
giảm tham số.
 Các tham số trong q trình sử dụng tích chập hay giá trị của các bộ lọc – kernel
sẽ được học trong quá trình huấn luyện. Như giới thiệu ở phần trên các thông tin này biểu
thị thơng tin giúp rút trích ra được các đặc trưng như góc, cạnh, đóm màu trong ảnh …
như vậy việc sử dụng tích chập sẽ giúp xây dựng mơ hình tự học ra đặc trưng.
2.2.2.2 Lớp tổng hợp rút gọn (Pooling layer)
Tầng pooling (hay còn gọi subsampling hoặc downsample) là một trong những thành
phần tính tốn chính trong cấu trúc CNN. Xét về mặt toán học pooling thực chất là quá

17


trình tính tốn trên ma trận trong đó mục tiêu sau khi tính tốn là giảm kích thước ma trận
nhưng vẫn làm nổi bật lên được đặc trưng có trong ma trận đầu vào. Trong CNN toán tử
pooling được thực hiện độc lập trên mỗi kênh màu của ma trận ảnh đầu vào.
Có nhiều tốn tử pooling như Sum-Pooling, Max Pooling, L2 Pooling nhưng Max
Pooling thường được sử dụng. Về mặt ý nghĩa thì Max Pooling xác định vị trí cho tín hiệu
mạnh nhất khi áp dụng một loại bộ lọc. Điều này cũng tương tự như là một bộ lọc phát

hiện ví trị đối tượng bằng bộ lọc trong bài toán phát hiện đối tượng trong ảnh.
Về mặt lý thuyết với ma trận đầu vào có kích thước 𝑊1 = 𝐻1 * 𝐷1 và thực hiện toán tử
pooling trên ma trận con của ma trận đầu vào có kích thước F*F với bước nhảy S pixel thì
ta được ma trận đầu ra 𝑊2 *𝐻2 *𝐷2 trong đó:
𝑊2 = ( 𝑊1 – F)/S+1

(2.7)

𝐻2 = (𝐻1 – F)/S+1

(2.8)

𝐷2 = 𝐷1

(2.9)

Hình 2.18: Cách tính tham số của lớp pooling.
Hình trên là ví dụ về sử dụng tốn tử pooling. Trong đó bên trái là cách thức tầng
pooling xử lý đối với một đầu vào là kết quả của nhiều bộ lọc (k=64), kích thước của đầu

18


×