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

Phân tích cảm xúc để đánh giá chất lượng sản phẩm dựa trên nhận xét của người sử dụng mô hình học sâu

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 (2.95 MB, 56 trang )

UBND TỈNH BÌNH DƯƠNG
TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT

TƠ VĂN DUY

PHÂN TÍCH CẢM XÚC ĐỂ ĐÁNH GIÁ CHẤT
LƯỢNG SẢN PHẨM DỰA TRÊN NHẬN XÉT CỦA
NGƯỜI DÙNG SỬ DỤNG MƠ HÌNH HỌC SÂU

LUẬN VĂN THẠC SỸ
CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN
MÃ SỐ: 8480104

BÌNH DƯƠNG – 2019


UBND TỈNH BÌNH DƯƠNG
TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT

TƠ VĂN DUY

PHÂN TÍCH CẢM XÚC ĐỂ ĐÁNH GIÁ CHẤT
LƯỢNG SẢN PHẨM DỰA TRÊN NHẬN XÉT CỦA
NGƯỜI DÙNG SỬ DỤNG MƠ HÌNH HỌC SÂU

LUẬN VĂN THẠC SỸ
CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN
MÃ SỐ: 8480104

NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS. TS. QUẢN THÀNH THƠ



BÌNH DƯƠNG – 2019


Lời Cam Đoạn
Tôi xin cam đoan rằng, luận văn "Phân tích cảm xúc để đánh giá chất lượng sản phẩm
dựa trên nhận xét của người dùng sử dụng mơ hình học sâu" là cơng trình nghiên cứu của
tơi dưới sự hướng dẫn của thầy PGS.TS. Quản Thành Thơ, xuất phát từ nhu cầu thực tiễn
và nguyện vọng tìm hiểu của bản thân.
Ngoại trừ kết quả tham khảo từ các công trình khác đã ghi rõ trong luận văn, các nội
dung trình bày trong luận văn này là kết quả nghiên cứu do chính tơi thực hiện và kết quả
của luận văn chưa từng công bố trước đây dưới bất kỳ hình thức nào.
Bình Dương, tháng 02 năm 2019
Tác giả

Tơ Văn Duy


Lời Cảm Ơn
Qua thời gian học tập và rèn luyện tại trường Đại học Thủ Dầu Một, được sự chỉ bảo
và giảng dạy nhiệt tình của q thầy cơ, đặc biệt là quý thầy cô khoa Khoa Kỹ thuật Công nghệ đã truyền đạt cho tôi những kiến thức về lý thuyết và thực hành trong suốt thời
gian học ở trường. Cùng với sự nỗ lực của bản thân, tôi đã hồn thành luận văn của mình.
Từ những kết quả đạt được này, tôi xin chân thành cám ơn quý thầy cô trường Đại
học Thủ Dầu Một, đã truyền đạt cho tơi những kiến thức bổ ích trong thời gian qua. Đặc
biệt, là PGS.TS. Quản Thành Thơ đã tận tình hướng dẫn tơi hồn thành tốt báo cáo luận
văn thạc sỹ này. Do kiến thức cịn hạn hẹp nên khơng tránh khỏi những thiếu sót trong
cách diễn đạt và trình bày. Chúng rất mong nhận được sự đóng góp ý kiến của quý thầy
cô để báo cáo luận văn đạt được kết quả tốt nhất.
Tơi xin kính chúc q thầy cô và các bạn thật nhiều sức khỏe, niềm vui và luôn thành
công trong công việc và cuộc sống.



Tóm tắt luận văn
Với tốc độ phát triển của cơng nghệ và Internet hiện nay, khi mà lượng dữ liệu bùng
nổ trên khắp thế giới thì đó là một nguồn tài ngun vơ tận để chúng ta có thể khai thác
và tận dụng. Trong đó lượng dữ liệu về đánh giá, nhận xét trên các trang web thương mại
điện là vơ cùng lớn. Từ đó xuất hiện theo một nhu cầu cấp thiết là làm sao có thể khai phá
và trích xuất thơng tin được từ lượng dữ liệu trên một cách hiệu quả và hợp lý. Nhu cầu
trên xuất phát từ mong muốn hiểu rõ thị trường của các doanh nghiệp hoặc các nhà sản
xuất.
Trong những năm ngần đây, mơ hình học sâu (Deep Learning) nổi lên như một
phương pháp hiệu quả để giải quyết các bài toán thuộc các lĩnh vực nhận diện hình ảnh,
nhận diện giọng nói, xử lý ngôn ngữ tự nhiên... Điểm đặc biệt của Deep Learning là tính
chính xác dựa vào lượng dữ liệu, lượng dữ liệu có thể có kích thước khổng lồ mà không
bị hạn chế. Với sự ra đời của ngày càng nhiều các thiết bị có khả năng tính tốn mạnh mẽ,
cộng với lượng dữ liệu dồi dào, các mô hình Deep Learning hứa hẹn sẽ ngày càng phát
triển, trở thành nhân tố chính cho cuộc cách mạng 4.0 ngày nay.
Trong báo cáo luận văn này, tôi sẽ đề xuất một mơ hình giải quyết bài tốn trích xuất
khía cạnh và phân tích cảm xúc trong văn bản (mà ở đây là các đánh giá, nhận xét của
khách hàng đối với sản phẩm trên các trang thương mại điện tử). Tơi sẽ trình bày về kiến
thức nền tảng của Deep Learning, các áp dụng Deep Learning vào bài toán phân loại văn
bản. Từ các kiến thức trên và tham khảo từ các cơng trình liên quan trên thế giới, mơ hình
mà tơi đề xuất cụ thể là sự kết hợp giữa mạng nơ-ron tích chập nhiều lớp (Convolutional
Neural Network - CNN) và mạng nơ-ron hồi quy bộ nhớ ngắn-dài (LSTM), để giải quyết
bài tốn được đặt ra. Sau đó tơi đã thực hiện một hệ thống nhằm thu thập các đánh giá,
nhận xét của khách hàng trên trang thương mại điện tử thegioididong.com để đưa vào mơ
hình đề xuất của tôi. Cuối cùng tôi sử dụng những thông tin đã được trích xuất để trực
quan hóa trên giao diện website.

1



Mục Lục
TĨM TẮT LUẬN VĂN .................................................................................................... 1
DANH SÁCH HÌNH VẼ ................................................................................................... 4
DANH SÁCH BẢNG ......................................................................................................... 6
DANH SACH CÁC CỤM TỪ VIẾT TẮT ...................................................................... 7
CHƯƠNG 1. GIỚI THIỆU............................................................................................... 8
1.1 ĐẶT VẤN ĐỀ ................................................................................................................ 8
1.2 MỤC TIÊU VÀ PHẠM VI NGHIÊN CỨU ........................................................................... 8
1.3 TỔNG QUAN VỀ BÁO CÁO ............................................................................................ 9
CHƯƠNG 2. KIẾN THỨC NỀN TẢNG ....................................................................... 10
2.1 MẠNG NƠ-RON NHÂN TẠO (ARTIFICIAL NEURAL NETWORK - ANN) ...................... 10
2.1.1 Giới thiệu ........................................................................................................... 10
2.1.2 Cơ sở tốn học ................................................................................................... 11
2.1.3 Các hàm kích hoạt thường dùng ........................................................................ 12
2.1.4 Hàm chi phí mất mát.......................................................................................... 14
2.1.5 Các kĩ thuật xử lý với mạng nơ-ron ................................................................... 15
2.2 MẠNG NƠ-RON TÍCH CHẬP (CONVOLUTIONAL NEURAL NETWORK-CNN) .............. 18
2.2.1 Giới thiệu ........................................................................................................... 18
2.2.2 Các thành phần cấu trúc cơ bản trong mạng CNN ........................................... 19
2.2.2.1 Lớp tích chập ............................................................................................... 20
2.2.2.2 Lớp Pooling ................................................................................................. 23
2.2.2.3 Lớp kết nối đầy đủ (Fully-connected-FC)................................................... 24
2.2.3 Lớp tích chập đối với ma trận 1D...................................................................... 25
2.3 MẠNG NƠ-RON HỒI QUY BỘ NHỚ NGẮN DÀI(LONG SHORT TERM MEMORY- LSTM)
........................................................................................................................................ 25
2.3.1 Giới thiệu ........................................................................................................... 25
2.3.2 Cấu trúc bên trong mạng LSTM ........................................................................ 26
2.3.2 Bidirectional LSTM (BiLSTM) .......................................................................... 28

2.4 MƠ HÌNH WORD2VEC ............................................................................................... 29
2.4.1 Khái niệm vector từ............................................................................................ 29
2.4.2 Lý luận với vector từ .......................................................................................... 30
2.4.3 Huấn luyện vector từ.......................................................................................... 32
CHƯƠNG 3. CÁC CƠNG TRÌNH LIÊN QUAN ........................................................ 35
3.1 MƠ HÌNH CNN Ở CẤP ĐỘ KÍ TỰ ĐỂ PHÂN LOẠI VĂN BẢN CỦA XIANG ZHANG VÀ
CỘNG SỰ.......................................................................................................................... 35
3.2 MƠ HÌNH CNN RẤT SÂU ĐỂ PHÂN LOẠI VĂN BẢN CỦA ALEXIS CONNEAU VÀ CÁC
CỘNG SỰ.......................................................................................................................... 36
3.3 MƠ HÌNH CNN ĐỂ PHÂN LOẠI CÂU CỦA YOON KIM ................................................. 38
CHƯƠNG 4: MƠ HÌNH ĐỀ XUẤT VÀ THỰC NGHIỆM ........................................ 39
4.1 MƠ HÌNH ĐỀ XUẤT .................................................................................................... 39
4.1.1 Tạo sự liên kết thơng tin giữa các từ ................................................................. 40
4.1.2 Trích xuất đặc trưng .......................................................................................... 40
4.1.3 Chọn ra các đặc trưng tốt nhất sau khi tích chập ............................................. 40
2


4.2 ĐÁNH GIÁ THỰC NGHIỆM TRÊN TẬP DỮ LIỆU BENCHMARK ...................................... 41
4.2.1 Tiền huấn luyện vector từ .................................................................................. 41
4.2.2 Tập dữ liệu Benchmark thực nghiệm ................................................................. 41
4.2.3 Tiền xử lý dữ liệu thực nghiệm .......................................................................... 41
4.2.4 Các thiết lập trong quá trình huấn luyên thực nghiệm ...................................... 42
4.2.5 Kết quả thực nghiệm .......................................................................................... 42
4.3 ÁP DỤNG MƠ HÌNH VÀO TẬP DỮ LIỆU THỰC .............................................................. 43
4.3.1 Nguồn dữ liệu thực ............................................................................................ 43
4.3.2 Q trình xử lý dữ liệu và trích xuất đặc trưng từng khía canh ........................ 43
4.3.3 Kết quả thực nghiệm trên tập dữ liệu thực ........................................................ 44
4.4 TRỰC QUAN LÊN HỆ THỐNG WEBSITE ....................................................................... 45
4.4.1 Kiến trúc hệ thống tổng qt ............................................................................. 45

4.4.2 Bộ crawler.......................................................................................................... 46
4.4.3 Mơ hình mạng nơ-ron ........................................................................................ 46
4.4.4 Database lưu trữ ................................................................................................ 46
4.4.5 Hệ thống website thống kê ................................................................................. 47
CHƯƠNG 5: CÔNG NGHỆ SỬ DỤNG ....................................................................... 48
5.1 NGƠN NGỮ LẬP TRÌNH .............................................................................................. 48
5.1.1 Python ............................................................................................................... 48
5.1.2 Javascript ........................................................................................................... 48
5.2 CÁC FRAMEWORK VÀ LIBRARY ................................................................................ 48
5.2.1 TensorFlow ........................................................................................................ 48
5.2.2 Keras .................................................................................................................. 48
5.2.3 Flask................................................................................................................... 49
5.3 CÔNG CỤ VÀ THIẾT BỊ ............................................................................................... 50
5.3.1 Jupyter Notebook ............................................................................................... 50
5.3.2 Chíp xử lý ........................................................................................................... 50
CHƯƠNG 6: TỔNG KẾT .............................................................................................. 51
6.1 KẾT QUẢ ĐẠT ĐƯỢC .................................................................................................. 51
6.2 TỒN TẠI VÀ HẠN CHẾ ................................................................................................ 51
6.3 CẢI TIẾN TRONG TƯƠNG LAI ..................................................................................... 51
THAM KHẢO.................................................................................................................. 52

3


Danh sách hình vẽ
Hình 2.1: Mạng nơ-ron nhân tạo với 2 lớp ẩn ................................................................10
Hình 2.2: Đồ thị của hàm tanh ........................................................................................13
Hình 2.3: Đồ thị của hàm hard tanh ...............................................................................13
Hình 2.4: Đồ thị của hàm sigmoid ..................................................................................13
Hình 2.5: Đồ thị của hàm ReLU .....................................................................................14

Hình 2.6: Hình mơ tả kỹ thuật Early Stopping ...............................................................16
Hình 2.7. Minh họa kỹ thuật dropout. Nửa bên trái là mạng nơ-ron đầy đủ còn bên phải
là sau khi áp dụng dropout ..............................................................................................17
Hình 2.8: Trực quan hóa cách tổ chức nơ-ron của CNN ................................................19
Hình 2.9: Minh họa một mạng CNN đơn giản ...............................................................20
Hình 2.10: Một minh họa khác về tính chất kết nối cục bộ trong CL, mỗi nơ-ron chỉ
nhận input là một số nơ-ron ở lớp dưới ..........................................................................21
Hình 2.11: Trực quan hóa cấu trúc khơng gian trong layer CONV ...............................22
Hình 2.12: Layer max-pooling xen kẽ giữa các layer CONV A và B ...........................24
Hình 2.13: Minh họa lớp tích chập 1D và max-pooling .................................................25
Hình 2.14: Các Module lặp của mạng RNN chứa 1 lớp ................................................26
Hình 2.15: Các Module lặp của mạng LSTM chứa 4 lớp ..............................................26
Hình 2.16: Cell state của LSTM giống như một băng truyền ........................................26
Hình 2.17: Cổng trạng thái LSTM .................................................................................27
Hình 2.18: Cổng forget trong mạng LSTM ....................................................................27
Hình 2.19: Cổng input trong mạng LSTM .....................................................................28
Hình 2.20: Cổng candidate trong mạng LSTM ..............................................................28
Hình 2.21: Cổng output trong mạng LSTM ...................................................................28
Hình 2.22: BiLSTM là sự kết hợp của forward LSTM và backward LSTM .................29
Hình 2.23: Ví dụ về một dạng biểu diễn của vector từ ..................................................29
Hình 2.24: Ví dụ biểu diễn word2vec ............................................................................30
Hình 2.25: Minh họa mối quan hệ giới tính của từ ........................................................30
Hình 2.26: Một ví dụ khác về quan hệ số nhiều số ít của từ ..........................................31
Hình 2.27: Biểu diễn của các vector từ ..........................................................................31
Hình 2.28: Kết quả của phép tính KING - MAN + WOMAN .......................................31
4


Hình 2.29: Từ trọng tâm và ngữ cảnh của nó .................................................................32
Hình 2.30: Quá trình huấn luyện bằng CBOW ..............................................................32

Hình 2.31: Việc nhân vector input với ma trận trọng số W1 tương đương việc chọn hàng
tương ứng trong ma trận ấy ............................................................................................33
Hình 2.32: Quá trình huấn luyện bằng skip-gram ..........................................................34
Hình 3.1: Mơ hình kiến trúc đề xuất bởi Xiang Zhang và cộng sự ................................36
Hình 3.2: Mơ hình kiến trúc đề xuất bởi Alexis Conneau và các cộng sự .....................37
Hình 3.3: Mơ hình kiến trúc đề xuất bởi Yoon Kim ......................................................38
Hình 4.1. Cấu trúc mơ hình do tơi đề xuất .....................................................................39
Hình 4.2: Ví dụ các bài đánh giá về sản phẩm iPhone Xs Max .....................................43
Hình 4.3: Một số ví dụ khi sử dụng kết quả huấn luyện để phân tích cảm xúc cho một số
đánh giá mới ...................................................................................................................45
Hình 4.4: Sơ đồ cấu trúc hệ thống ..................................................................................45
Hình 4.5: Mơ tả về bảng dữ liệu lưu các đánh giá đã được phân tích cảm xúc .............46
Hình 4.6: Chức năng phân tích cảm xúc trực tiếp khi nhập văn bản vào .......................47
Hình 4.7: Báo cáo thơng kê của từng sản phẩm .............................................................47
Hình 5.1: Một đoạn code sử dụng keras cho mơ hình của tơi ........................................49
Hình 5.2: Ví dụ về trực quan mảng 1 chiều trên Jupyter Notebook ...............................50

5


Danh sách bảng
Bảng 1.1: Tổng quan các chương của báo cáo ...............................................................9
Bảng 4.1: Chi tiết tham số của các lơp trong kiến trúc mơ hình mà tơi đề xuất ............39
Bảng 4.2: Thống kê về các tập dữ liệu mà tôi sử dụng ..................................................41
Bảng 4.3: Tóp 10 mơ hình theo tỷ lệ lỗi (theo phần trăm) bao gồm mơ hình tơi đề
xuất và các mơ hình khác lấy từ các nghiên cứu của các nhóm tác giả đã cơng bố .......42
Bảng 4.4: Số liệu cụ thể về các khía cạnh trong tập dữ liệu ..........................................43
Bảng 4.5: Kết quả phân tích cảm xúc của 1 lần huấn luyện ...........................................44

6



Danh sach các cụm từ viết tắt
1. ANN Artificial Neural Network.
2. BiLSTM Bidirectional Long Short Term Memory
3. CBOW Continuous Bag of Words.
4. CL Convolutional Layer.
5. CNN Convolutional Neural Network.
6. FC Fully-connected.
7. MLP Multilayer Perceptron.
8. NLP Natural Language Processing.
9. LSTM Long Short Term Memory
10. PL Pooling Layer.
11. ReLU Rectified Linear Unit.
12. RNN Recurrent Neural Network.

7


Chương 1. Giới thiệu
1.1 Đặt vấn đề
Ngày nay, dữ liệu đang bùng nổ trên khắp thế giới, đặc biệt là trên Internet, thì đó là
một nguồn tài ngun vơ tận để chúng ta có thể khai thác và tận dụng. Trong đó lượng dữ
liệu về đánh giá, nhận xét về các sản phẩm trên các trang web thương mại điện tử, mạng
xã hội là rất lớn. Kèm theo đó xuất hiện một nhu cầu là làm sao có thể tổng hợp những
đánh giá, nhận xét trên lại để thống kê được mức độ hài lòng của người dùng về các sản
phẩm. Nhu cầu trên xuất phát từ mong muốn tham khảo thị trường của các cá nhân, tổ
chức khi họ đang quan tâm một sản phẩm nào đó. Hoặc đến từ các nhà sản xuất khi họ
muốn khảo sát phản ứng của thị trường đối với sản phẩm của họ. Trước đây để thực hiện
được những vấn đề này, mọi người thường phải sử dụng những cách khá thủ công, tốn

nhiều thời gian và nhân lực vì lượng dữ liệu phải xử lý là rất lớn. Do đó họ khơng thể
nhanh chóng đưa ra những quyết định phù hợp thị trường hiện tại. Vì vậy việc áp dụng
những thành tựu khoa học hiện đại có vai trị quan trọng để tiết kiệm công sức của mọi
người trong việc tổng hợp và thống kê lượng dữ liệu về đánh giá, nhận xét ấy.
Vì những lý do nêu trên, đề tài này tiến hành nghiên cứu và hiện thực những kĩ thuật
giúp ta có thể tự động thu thập những dữ liệu về đánh giá, nhận xét từ các trang thương
mại điện tử như Lazada, TGDD, FPT... và xây dựng những một mơ hình học sâu (Deep
Learning) về xử lý ngơn ngữ tự nhiên để phân tích cảm xúc của con người trong các dữ
liệu trên. Đồng thời từ những phân tích ấy, người dùng có nhận biết được phản ứng của
người dùng về sản phẩm một cách trực quan (visualize) và nhanh chóng (real-time) và
chính xác hơn.

1.2 Mục tiêu và phạm vi nghiên cứu
• Xây dựng crawler để tự động thu thập dữ liệu (đánh giá, bình luận ...) từ các trang

web thương mại điện tử như www.thegioididong.com, www.lazada.vn ... Dữ liệu sẽ được
đưa vào cơ sở dữ liệu để lưu trữ.
• Đề xuất một mơ hình Deep Learning ứng dụng vào việc phân loại văn bản

(classification), trích xuất khía cạnh (aspect extraction) và phân tích cảm xúc (sentiment
analysis).
• Xây dựng một hệ thống sử dụng các mơ hình được huấn luyện sẵn ở trên để phân

loại và phân tích cảm xúc cho các dữ liệu mới được crawl từ crawler. Kết quả được lưu
vào database, và trực quan hoá lên website.

8


1.3 Tổng quan về báo cáo

Chương
Chương 1

Nội dung
Giới thiệu chung về nội dung của đề tài và tổng quan về báo cáo.

Chương 2

Tơi sẽ trình bày về các lý thuyết nền tảng cần có để giải quyết bài tốn
phân tích cảm xúc. Trong chương này tơi trình bày các kiến thức căn bản
của Deep Learning, thế nào là Artificial Neural Network (mạng nơron
nhân tạo - ANN), cách thức hoạt động và ưu nhươc điểm của nó. Theo
sau đó là biến thể phức tạp hơn của ANN là CNN (Convolutional Neural
Network - Mạng neron tích chập) và LSTM (Long Short Term Memory –
mạng nơ-ron hồi quy bộ nhớ ngắn-dài). Ngoài ra trong phần này cịn
trình bày một phương pháp chuyển đổi từ một từ sang một vector được
sử dụng phổ biến trong các mơ hình xử lý ngơn ngữ tự nhiên là
word2vec. Đây là một trong những chương quan trọng nhất trong báo
cáo này.
Một số cơng trình liên quan nổi tiếng về phân tích cảm xúc trong văn bản
ứng dụng kỹ thuật Deep Learning sẽ được trình bày trong chương này.

Chương 3
Chương 4

Chương 5

Chương 6

Trong chương này tơi trình bày về một mơ hình mà tơi đề xuất. Thực

hiện thí nghiệm đánh giá mơ hình này trên nhiều tập dữ liệu và đạt được
kết quả khá tốt so với các phương pháp hiện đại khác. Trực quan hóa lên
website.
Tơi sẽ giới thiệu các cơng nghệ được tơi sử dụng để hồn thành đề tài
này bao gồm các ngơn ngữ lập trình, các framework, library và các công
cụ liên quan.
Tổng kết và nêu ra những điểm còn tồn tại của đề tài cũng như hướng cải
tiến trong tương lai.
Bảng 1.1: Tổng quan các chương của báo cáo

9


Chương 2. Kiến thức nền tảng
2.1 Mạng nơ-ron nhân tạo (Artificial Neural Network - ANN)
2.1.1 Giới thiệu
Mạng nơ-ron nhân tạo hay thường được gọi ngắn gọn là mạng nơ-ron được giới thiệu
năm 1943 bởi Warren McCulloch và Walter Pits là một mơ hình xử lý thơng tin được mơ
phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật, bao gồm số lượng lớn các
nơ-ron được gắn kết để xử lý thông tin. Trong mạng nơ-ron nhân tạo, mỗi nơ-ron là một đơn
vị tính tốn có đầu vào và đầu ra là các đại lượng vô hướng. Mỗi đầu vào có một trọng số tương
ứng với nó. Nơ-ron nhân mỗi đầu vào của nó với trọng số tương ứng, cộng tất cả đầu vào lại, áp
dụng một hàm phi tuyến tính để cho ra kết quả ở đầu ra. Các nơ-ron được kết nối với nhau, thành
lập một mạng lưới: đầu ra của nơ-ron này có thể được truyền cho đầu vào của một hay nhiều nơron khác. Nếu các trọng số được thiết lập chính xác, một mạng nơ-ron có thể tính tốn xấp xỉ nhiều
hàm tốn học phức tạp.

Hình 2.1: Mạng nơ-ron nhân tạo với 2 lớp ẩn
Kiến trúc chung của một ANN gồm 3 thành phần đó là đầu vào (input layer), tầng
ẩn (hidden layer) và đầu ra (output layer). Trong hình 1, minh họa một mạng nơ-ron cơ
bản với 2 tầng ẩn. Mỗi vòng tròn là một nơ-ron, các mũi tên đi vào là các đầu vào và các

mũi tên đi ra là các kết quả đầu ra của nơ-ron đó. Các nơ-ron được sắp xếp thành các tầng,
biểu diễn luồng thông tin đi qua mạng. Tầng dưới cùng khơng có bất kỳ mũi tên đi vào,
và là đầu vào của mạng. Tương tự, tầng trên cùng khơng có bất kỳ mũi tên đi ra, và là đầu
ra của mạng. Các tầng khác được gọi là tầng "ẩn". Ký hiệu ∫ bên trong các nơ-ron biểu
diễn hàm phi tuyến tính (hàm kích hoạt) sigmoid = (1/(1 + e−x)) được áp dụng vào giá trị
10


của nơ-ron trước khi cho ra đầu ra. Mỗi nơ-ron đều kết nối tới tất cả các nơ-ron ở tầng
tiếp theo - vì vậy nên được gọi là tầng "kết nối đầy đủ".
Giá trị của mỗi tầng trong mạng nơ-ron có thể được xem là một vector. Trong hình
1, tầng đầu vào là một vector 4 chiều (x), và tầng trên nó là một vector 6 chiều (h1). Tầng
fully-connected có thể được xem là một phép biến đổi tuyến tính một vector từ 4 chiều
thành 6 chiều. Một tầng fully-connected hiện thực một phép nhân ma trận: h = xW, trong
đó trọng số của kết nối từ nơ-ron thứ i của tầng trước nó tới nơ-ron thứ j của nó là Wij. Giá
trị của h sau đó được biến đổi bằng một hàm phi tuyến tính g và truyền cho tầng tiếp theo.
2.1.2 Cơ sở toán học
Mạng nơ-ron đơn giản nhất là perceptron, chỉ bao gồm một hàm tuyến tính của đầu
vào:
𝑁𝑁𝑃𝑒𝑟𝑐𝑒𝑝𝑡𝑟𝑜𝑛 (𝑥) = 𝑥𝑊 + 𝑏
𝑥 ∈ 𝑅𝑑𝑖𝑛 , 𝑊 ∈ 𝑅𝑑𝑖𝑛×𝑑𝑜𝑢𝑡 , 𝑏 ∈ 𝑅𝑑𝑜𝑢𝑡
W là ma trận trọng số, và b là bias. Để loại bỏ tính chất tuyến tính, một tầng "ẩn" phi
tuyến tính được tạo ra đó gọi là Multi Layer Perceptron (MLP) (trong hình 1 có 2 tầng
như vậy). Một mạng nơ-ron một tầng có dạng:
𝑁𝑁𝑀𝐿𝑃1 = 𝑔(𝑥𝑊 1 + 𝑏1 )𝑊 2 + 𝑏2
𝑥 ∈ 𝑅𝑑𝑖𝑛 , 𝑊 1 ∈ 𝑅 𝑑𝑖𝑛×𝑑1 ,

∈ 𝑅 𝑑𝑜𝑢𝑡

Trong công thức trên, xW1 + b1 thể hiện sự biến đổi tuyến tính từ đầu vào x từ không

gian din chiều sang không gian d1 chiều. g được áp dụng trên mỗi chiều trong d1 chiều và
ma trận W2 cùng với bias b2 được sử dụng để biến đổi kết quả thành vector có d2 chiều.
Hàm phi tuyến tính g có vai trị hết sức quan trọng trong mạng để biểu diễn những hàm
phức tạp. Nếu khơng có hàm g, mạng nơ-ron chỉ có thể biểu diễn sự biến đổi tuyến tính
của đầu vào.
Chúng ta cũng có thể kết hợp giữa biến đổi tuyến tính và biến đổi phi tuyến tính, kết
quả là một MLP 2 tầng (mạng ở hình 1 thuộc dạng này):
𝑁𝑁𝑀𝐿𝑃2 = (𝑔2 (𝑔1 (𝑥𝑊 1 + 𝑏1 )𝑊 2 + 𝑏2 ))𝑊 3
Công thức trên có thể được viết lại rõ ràng hơn bằng cách sử dụng các biến trung
gian:
𝑁𝑁𝑀𝐿𝑃2 = 𝑦
ℎ1 = 𝑔1 (𝑥𝑊 1 + 𝑏1 )
ℎ2 = 𝑔2 (ℎ1 𝑊 2 + 𝑏2 )
𝑦 = ℎ2 𝑊 3

11


Các vector có được từ kết quả của các phép biến đổi tuyến tính được gọi là một tầng.
Kết quả của phép biến đổi ở ngoài cùng được gọi là tầng đầu ra và kết quả của các phép
biến đổi còn lại được gọi là tầng "ẩn" (hidden). Mỗi tầng "ẩn" đều có một activation phi
tuyến tính theo sau. Trong một số trường hợp, ví dụ như tầng cuối cùng của mạng ở hình
1, vector bias bị gán bằng 0.
Các tầng có được từ kết quả của phép biến đổi tuyến tính cịn được gọi là kết nối đầy
đủ (fully-connected) hoặc affine. Khi mô tả một mạng nơ-ron phải nêu rõ chiều của các
tầng lẫn đầu vào của nó. Một tầng luôn nhận một vector din chiều làm đầu vào, và biến đổi
nó thành vector có dout chiều. Chiều của một tầng được quy ước bằng với chiều đầu ra của
tầng đó. Với một tầng kết nối đẩy đủ l(x) = xW + b với đầu vào và đầu ra có chiều lần
lượt là din và dout thì chiều của x là 1 × din, của W là din × dout và của b là 1 × dout.
Đầu ra của mạng nơ-ron là một vector có dout chiều. Trong trường hợp dout = 1, đầu

ra của mạng là một đại lượng vô hướng. Những mạng như thế thường được dùng để hồi
quy bằng giá trị của đầu ra, hoặc là phân loại nhị phân bằng dấu của đầu ra. Còn các mạng
có dout = k > 1 có thể được dùng để phân loại với k lớp, bằng cách gán mỗi chiều cho một
lớp rồi tìm chiều với giá trị lớn nhất. Tương tự, nếu vector đầu ra có tất cả các phần tử là
dương và tổng của chúng bằng 1 thì nó có thể xem là sự phân bố xác suất trên các lớp
(đầu ra có dạng này là kết quả của việc áp dụng biến đổi softmax ở tầng đầu ra, sẽ được
nói đến ở phần sau).
Các ma trận và bias sử dụng trong các phép biến đổi tuyến tính gọi là các tham số
của mạng. Tập hợp tất cả các tham số thường được ký hiệu là θ. Các tham số được kết
hợp với đầu vào để xác định đầu ra của mạng. Các giải thuật huấn luyện có nhiệm vụ chọn
các giá trị của tham số sao cho kết quả tiên đốn của mạng là chính xác.
Trong nhiều trường hợp, vector kết quả của tầng đầu ra cũng bị biến đổi. Một biến
đổi thường được sử dụng là softmax:
𝑒 𝑥𝑖
𝑆𝑜𝑓𝑡𝑚𝑎𝑥 (𝑥𝑖 ) = 𝐾
, 𝑖 = 1, … , 𝑘.
∑𝑘=1 𝑒 𝑥𝑘
Kết quả là một vector chứa các số nguyên dương có tổng là 1, thể hiện phân bố xác
suất rời rạc trên k kết quả có thể xảy ra.
Biến đổi softmax thường được sử dụng khi chúng ta muốn mơ hình một sự phân bố
xác xuất trên tập các kết quả có thể xảy ra. Để đạt hiệu quả, nó thường được sử dụng kết
hợp với một mục tiêu huấn luyện dạng xác suất (probabilistic training objective) như là
cross-entropy. Khi biến đổi softmax được áp dụng cho đầu ra của mạng mà khơng có tầng
ẩn nào, kết quả của nó là mơ hình hồi quy logistic đa thức nổi tiếng, hay còn được gọi là
bộ phân loại maximum-entropy.
2.1.3 Các hàm kích hoạt thường dùng
Có rất nhiều dạng hàm phi tuyến tính có thể sử dụng cho các tầng ẩn. Hiện tại khơng
có lý thuyết nào về việc sử dụng hàm phi tuyến tính nào trong trường hợp nào, và cách
chọn hàm phi tuyến tính thích hợp cho một tác vụ cụ thể trong thực nghiệm. Trong số các
hàm phi tuyến tính, các hàm sau được sử dụng nhiều nhất: sigmoid, tanh, hard tanh, và

rectified linear unit (ReLU).
12


• Tanh
𝑒 2𝑥 −1

Hàm tanh có cơng thức tanh(𝑥) = 2𝑥 , nó có dạng chữ S, biến đổi giá trị x vào
𝑒 +1
miền [-1, 1].

Hình 2.2: Đồ thị của hàm tanh
• Hard tanh
Hàm hard tanh là một biến thể của hàm tanh để đơn giản hóa việc tính tốn và dễ
dàng để đạo hàm hơn:
−1 𝑥 < −1
ℎ𝑎𝑟𝑑𝑡𝑎𝑛ℎ(𝑥) = { 1 𝑥 > 1
𝑥 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒

Hình 2.3: Đồ thị của hàm hard tanh
• Sigmoid
1

Hàm sigmoid có cơng thức 𝜎(𝑥) =
, nó có dạng chữ S, biến đổi giá trị x vào
1+𝑒 −𝑥
miền [0, 1].

Hình 2.4: Đồ thị của hàm sigmoid
13



• ReLU
Hàm ReLU[1], là một hàm phi tuyến tính đơn giản để sử dụng và cho kết quả rất tốt
trong thực nghiệm. Hàm ReLU sẽ biến mỗi giá trị x < 0 thành 0. Mặc dù đơn giản
nhưng ReLU lại hiệu quả với nhiều tác vụ, đặc biệt là khi kết hợp với kỹ thuật dropout
regularization. Hàm ReLU có cơng thức dạng:
𝑅𝑒𝐿𝑈(𝑥) = {

0 𝑥<0
𝑥 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒

Hình 2.5: Đồ thị của hàm ReLU
2.1.4 Hàm chi phí mất mát
Cũng giống như khi huấn luyện một bộ phân loại tuyến tính, khi huấn luyện một mạng
nơ-ron ta cũng phải định nghĩa một loss function L(𝑦̂ ,y), thể hiện mất mát của việc tiên
đoán 𝑦̂ khi kết quả chính xác là y. Mục tiêu của việc huấn luận là giảm thiểu tối đa mất
mát của tất cả các mẫu huấn luyện khác nhau. Hàm L(𝑦̂ ,y) cho ra một điểm số (vô hướng)
cho đầu ra của mạng 𝑦̂ với kết quả mong muốn là y. Mất mát luôn luôn dương và chỉ
bằng 0 trong trường hợp đầu ra của mạng là chính xác.
Các tham số của mạng (ma trận Wi, bias bi) được chỉnh sửa để tối thiểu hóa mất mát
trên tồn tập huấn luyện (thơng thường thì tổng các mất mát của các mẫu huấn luyện khác
nhau sẽ được tối thiểu hóa).
Mất mát có thể là một hàm bất kỳ chiếu hai vector thành một đại lượng vơ hướng. Vì
mục đích tối ưu hóa trong thực tế của việc huấn luyện, hàm mất mát thường được giới hạn
trong các hàm thuận lợi cho việc tính gradient. Các hàm mất mát thơng dụng là: hinge
loss (nhị phân), hinge loss (đa lớp), log loss, categorical cross-entropy loss, ranking loss
• Hinge (binary)
Trong bài tốn phân loại nhị phân, đầu ra của mạng là một đại lượng vơ hướng 𝑦̂ và
kết quả chính xác là y thuộc tập +1, -1. Phép phân loại được cho là chính xác nếu y · 𝑦̂ >

0, nghĩa là y và 𝑦̂ cùng dấu. Hinge loss, còn được gọi là margin loss hay SVM loss, được
định nghĩa là:
𝐿ℎ𝑖𝑛𝑔𝑒(𝑏𝑖𝑛𝑎𝑟𝑦) (𝑦̂, 𝑦) = max(0,1 − 𝑦̂. 𝑦)
Mất mát bằng 0 khi y và 𝑦̂ cùng dấu và |𝑦̂| ≥ 1. Ngược lại, mất mát là tuyến tính.
14


• Hinge (multiclass)
Crammer và Singer đã mở rộng hinge loss cho trường hợp đa lớp. Với 𝑦̂ = 𝑦̂1 ,...,𝑦̂𝑛 là
đầu ra của mạng và y là one-hot vector đại diện cho lớp chính xác của đầu vào. Quy tắc
phân loại là chọn ra lớp với điểm số cao nhất:
𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑖𝑜𝑛 = 𝑎𝑟𝑔max 𝑦̂
𝑖

Với 𝑡 = 𝑎𝑟𝑔𝑚𝑎𝑥𝑖 (𝒚𝒊 ) là lớp chính xác và 𝑘 = 𝑎𝑟𝑔𝑚𝑎𝑥𝑖≠𝑘 (𝑦̂𝑖 ) là lớp có điểm số
cao nhất mà 𝑘 ≠ 𝑡. Hinge loss với đa lớp được định nghĩa:
̂, 𝒚) = 𝑚𝑎𝑥(0,1 − (𝒚
̂𝒕 − 𝒚
̂𝒌 ))
𝐿ℎ𝑖𝑛𝑔𝑒(𝑚𝑢𝑙𝑡𝑖𝑐𝑙𝑎𝑠𝑠) (𝒚
Hinge loss cố gắng để cho điểm lớp chính xác cao hơn các lớp khác với lề (margin)
là 1. Trong cả hai trường hợp nhị phân và đa lớp, hinge loss đều được sử dụng với tầng
đầu ra tuyến tính. Hinge loss hữu dụng khi cần một quy tắc quyết định nghiêm ngặt và
tránh mơ hình kết quả theo dạng xác
• Log loss
Log loss là một biến thể thơng dụng của hinge loss và có thể được xem là một dạng
"soft" của hinge loss với lề là vô cực.
̂𝒕 − 𝒚
̂𝒌 )))
𝐿log(𝑏𝑖𝑛𝑎𝑟𝑦) (𝑦̂, 𝒚) = 𝑚𝑎𝑥(0,1 + 𝑒𝑥𝑝(−𝒚

• Categorical cross-entropy loss
Categorical cross-entropy loss (hay cịn được gọi là negative log likelihood) được sử
dụng khi chúng ta mong muốn kết quả là sự biểu diễn xác suất của điểm số.
Với y là one-hot vector đại diện cho lớp chính xác của đầu vào và 𝑦̂ = 𝑦̂1 ,...,𝑦̂𝑛 là đầu
ra của mạng được biến đổi bởi hàm activation softmax và biểu diễn xác suất đầu vào thuộc
̂𝒊 = 𝑃(𝑦 = 𝑖 | 𝒙) . Categorical cross entropy loss đo sự khác nhau giữa sự phân
class i: 𝒚
bố của nhãn chính xác y và sự phân bố của nhãn được đoán bởi mạng 𝑦̂:
̂𝒊 )
𝐿𝑐𝑟𝑜𝑠𝑠−𝑒𝑛𝑡𝑟𝑜𝑝𝑦 (𝑦̂, 𝒚) = − ∑ 𝑦𝑖 log(𝒚
𝑖

Cross entropy loss được sử dụng rất nhiều trong mạng nơ-ron, nó khơng chỉ tiên đốn
lớp tốt nhất cho đầu vào mà còn cung cấp phân bố xác suất trên tất cả các lớp. Khi sử
dụng cross entropy loss, mặc định hiểu rằng đầu ra của mạng đã sử dụng biến đổi softmax.
2.1.5 Các kĩ thuật xử lý với mạng nơ-ron
Cũng giống như các phương pháp học máy khác, mạng nơ-ron nhân tạo cũng rất dễ bị
overfitting. Overfitting là hiện tượng khi mà một mơ hình có khả năng đạt kết quả cực kỳ
tốt với tập dữ liệu huấn luyện, tuy nhiên lại xử lý không hiệu quả với các dữ liệu mà mơ
hình chưa từng gặp qua. Một số kỹ thuật phổ biến để tránh overfitting như là Early
Stopping, 𝑙2 regularization, Dropout

15


• Early Stopping
Trong nhiều bài toán Machine Learning, chúng ta cần sử dụng các thuật tốn lặp để
tìm ra nghiệm, ví dụ như Gradient Descent. Nhìn chung, hàm mất mát giảm dần khi số
vòng lặp tăng lên. Early stopping tức dừng thuật toán trước khi hàm mất mát đạt giá trị
quá nhỏ, giúp tránh overfitting

Một kỹ thuật thường được sử dụng là tách từ training set ra một tập validation set như
trên. Sau một hoặc một số vòng lặp, ta tính cả train error và validation error, đến
khi validation error có chiều hướng tăng lên thì dừng lại, và quay lại sử dụng mơ hình
tương ứng với điểm và validation error đạt giá trị nhỏ. Ở hình 6, đường màu xanh là train
error, đường màu đỏ là validation error. Trục x là số lượng vòng lặp, trục y là error. Mơ
hình được xác định tại vịng lặp mà validation error đạt giá trị nhỏ nhất

Hình 2.6: Hình mơ tả kỹ thuật Early Stopping
• 𝑳𝟐 Regularization
Ý tưởng ở đây là ta sẽ thêm một khái niệm vào hàm mất mát J, hàm mất mát tổng sẽ
trở thành:
𝐿

𝐽𝑅 = 𝐽 + 𝜆 ∑‖𝑊 (𝑖) ‖𝐹
𝑖=1

Trong công thức trên, ‖𝑊 (𝑖) ‖𝐹 là chuẩn Frobenius của ma trận W(i) (ma trận trọng số
thứ ı của mang) và λ là hyperparameter điều khiển độ tương gian giữa regularization với
hàm mất mát ban đầu. Mục đích của chúng ta là cực tiểu hàm JR, regularization sẽ ngăn
chặn các trọng số trở nên quá lớn khi tối ưu trên hàm mất mát ban đầu. Nhờ tính chất bậc
hai của chuẩn Frobenius (tính tổng bình phương tất cả các phần tử của ma trận), L2
regularization giảm độ linh hoạt của mơ hình, do đó cũng giảm hiện tượng overfitting.
Việc chọn giá trị chính xác cho λ rất quan trọng, và phải được chọn thơng qua q
trình tinh chỉnh hyperparameter. λ quá cao dẫn tới việc các trọng số được gán gần với 0,
và mơ hình sẽ khơng học được gì có ý nghĩa từ q trình huấn luyện, đạt độ chính xác
trong huấn luyện, kiểm chứng và kiểm thử. Với λ q thấp, mơ hình sẽ rơi vào trường hợp
overfitting.
Ngồi L2 regularization thì cịn có các loại regularization khác cũng được sử dụng
với độ phổ biến ít hơn, ví dụ như L1 regularization (cộng tổng trị đối tất cả các phần tử
của ma trận trọng số).

16


• Dropout
Dropout là một kỹ thuật mạnh mẽ dùng cho regularization, được giới thiệu bởi
Srivastava và các cộng sự[4]. Ý tưởng này đơn giản nhưng lại cực kỳ hiêụ quả - trong quá
trình huấn luyện, ta sẽ loại bỏ ngẫu nhiên với xác xuất (1−p) một tập con của các nơ-ron
trong mỗi bước tiến/lùi. Tuy nhiên trong quá trình kiểm thử, ta giữ ngun mạng nơ-ron
đầy đủ để tính tốn ra kết quả tiên đoán. Kết quả của việc này là mạng nơ-ron sẽ học được
nhiều thơng tin có ý nghĩa hơn từ dữ liệu huấn luyện, giảm hiện tượng overfit và thường
đạt hiệu suất cao hơn. Một ý kiến giải thích một cách trực quan lí do kĩ thuật này đạt được
hiệu quả cho rằng việc dropout thực hiện là huấn luyện nhiều mạng nơ-ron nhỏ hơn và
lấy giá trị trung bình kết quả tiên đốn của chúng. Trong thực tế, cách áp dụng dropout là
lấy đầu ra h của mỗi tầng, sau đó giữ lại số nơ-ron với tỷ lệ p, các nơ-ron còn lại được gán
bằng 0. Trong q trình lan truyền ngược, chỉ có các nơ-ron được giữ lại mới được sử
dụng để tính tốn gradient. Cuối cùng, trong quá trình kiểm thử, ta giữ lại tất cả nơ-ron ở
bước tiến để cho ra kết quả tiên đốn.

Hình 2.7. Minh họa kỹ thuật dropout. Nửa bên trái là mạng nơ-ron đầy đủ còn bên
phải là sau khi áp dụng dropout
• Batch Normalization
Ý tưởng của Batch Normalization[9] là thêm một công đoạn (operation) ngay trước
activation function cho mỗi layer. Operation đó có nhiệm vụ chuẩn hóa (normalizing) và
zero-centering các inputs (mean của inputs sẽ là 0). Kết quả sau đó sẽ được scaling và
shifting sử dụng hai parameters cho mỗi layer. Cơng thực của thuật tốn được thể hiện
như sau:
𝑚𝑏

1
∑ 𝑥 (𝑖)

𝜇𝐵 =
𝑚𝐵
𝑖=1

𝑚𝑏

𝜎𝐵2 =

1
∑(𝑥 (𝑖) − 𝜇𝐵 )2
𝑚𝐵
𝑖=1

𝑥̂ (𝑖) = (𝑥 (𝑖) − 𝜇𝐵 )/(√𝜎𝐵2 + 𝜖)
17


𝑧 (𝑖) = 𝛾𝑥̂ (𝑖) + 𝛽
Trong đó:
- 𝜇𝐵 là giá trị kỳ vọng thực nghiệm được tính tốn trên mini-batch B
- 𝜎𝐵 là độ lệch chuẩn thực nghiệm cũng được tính tốn trên mini-batch B
- 𝑚𝐵 là số lượng mẫu trong mini-batch B
- 𝑥̂ (𝑖) là giá trị của input thứ i trong mini-batch sau khi đã được chuẩn hóa và zerocentered
- 𝛾 là biến mở rộng (scaling parameter) của tầng
- 𝛽 là shifting factor hay offset của tầng
- 𝜖 là smoothing factor dùng để tránh việc chia cho 0, thường có giá trị rất nhỏ
- 𝑧 (𝑖) là đầu ra của Batch Normalization operation Chung quy lại, mỗi Batch-Norm
layer sẽ có 4 parameter cần phải học: 𝛾 (scale), 𝛽 (shift), 𝜇 (mean) và 𝜎 (standard
deviation). Ngoài giúp giảm overfitting, Batch Normalization còn giúp giảm thiểu hiện
tượng Vanishing/Exploding gradients và sự phụ thuộc vào quá trình khợ tạo tham số

(weight initialization).

2.2 Mạng nơ-ron tích chập (Convolutional Neural Network-CNN)
2.2.1 Giới thiệu
Mạng nơ-ron tích chập (CNN) là một cách tổ chức khác của mạng nơ-ron được dùng
trong thị giác máy tính. Tương tự như mạng ANN, CNN cũng được tạo thành từ từ các
nơ-ron được sắp xếp thành từng tầng, có các trọng số và bias có thể học được. Mỗi nơron nhận vào một vài input, thực hiện các phép tích chập và có thể theo sau với một phép
chuyển đổi phi tuyến tính. Tồn bộ mạng vẫn sẽ biểu diễn một hàm thể hiện điểm số phân
loại vào các lớp: từ các pixel thơ của hình ảnh tạo ra điểm số của một lớp phân loại xác
định. Ngoài ra mạng cũng có loss function (ví dụ: Softmax) nằm trên tầng cuối cùng
(fully-connected) và tất cả những lý thuyết nhằm nâng cao chất lượng học của ANN đều
có thể áp dụng được với CNN.
Tuy nhiên, khác với ANN, ở CNN, các nơ-ron ở tầng trên chỉ kết nối với một số nơron ở tầng dưới (receptive field) thay vì kết nối với tất cả. Vì đặc trưng của các mạng nơron trong xử lý hình ảnh là input đầu vào là các pixel của hình ảnh nên việc kết nối tất cả
các nơ-ron tầng trên tới tầng dưới sẽ dẫn đến bùng nổ tham số. Hơn nữa, việc quá nhiều
trọng số sẽ dễ gây ra tình trạng overfitting. Một điểm khác nữa của CNN là việc tổ chức
các nơ-ron. Do hình ảnh có các đặc trưng kích thước là width, height, channel nên các nơron cũng sẽ được tổ chức một cách tương tự thành một khối 3D.

18


Hình 2.8: Trực quan hóa cách tổ chức nơ-ron của CNN
2.2.2 Các thành phần cấu trúc cơ bản trong mạng CNN
Một mạng CNN đơn giản được cấu thành bởi một chuỗi các layer (lớp/tầng) liền kề
nhau, kết quả của layer trước sẽ là đầu vào cho layer sau. Có ba loại layer chính để xây
dựng nên kiến trúc của CNN: Convolutional Layer, Pooling Layer và Fully-Connected
Layer (hoàn toàn giống với FC Layer trong ANN).
Input dữ liệu đi qua mạng nơ-ron sẽ trải qua các lớp CONV và POOL để trích xuất
các đặc trưng. Thông thường các lớp convolution và pool sẽ xếp xen kẽ với nhau. Lớp
cuối cùng sẽ là lớp FC, nơi mà output sẽ có kích thước là 1 × 1 × channel với channel là
số lớp cần phải phân loại.

Để dễ hiểu và trước khi đi vào chi tiết từng layer, ta sẽ đi qua một ví dụ về kiến trúc
đơn giản nhất của CNN. Xét một bức hình đầu vào có kích thước là 32 × 32 × 3 và ta
muốn phân loại bức hình này vào một trong 10 thể loại khác nhau. Các layer trong CNN
được xếp như sau: [INPUT – CONV(RELU) - POOL - FC].
1. INPUT [32 × 32 × 3]: layer này có nhiệm vụ truyền những giá trị pixel thơ của bức

hình, trong giả thiết ở trường hợp này là một bức hình có chiều ngang là 32, chiều
cao là 32 và có độ sâu là 3 tương ứng với 3 kênh màu R,G,B.
2. CONV: layer này sẽ tính tốn giá trị output cho các nơ-ron được kết nối đến một

phần của input, mỗi phép tính tốn sẽ thực hiện phép tích chập giữa bản thân trọng
số của nơ-ron và phần nhỏ mà nó kết nối đến input. Sau đó áp một hàm kích hoạt
(activation function) lên từng phần tử nhằm mục đích phi tuyến tính hóa các trọng
số Kết quả của layer có thể có kích thước là 32 × 32 × 12 nếu ta quyết định sử dụng
12 filter (bộ lọc).
3. POOL: layer này sẽ nhận đầu ra của layer trước và thực hiện thao tác thu giảm

mẫu (downsampling) theo kích thước khơng gian (chiều ngang, chiều cao), kích
thước kết quả sẽ là 16 × 16 × 12.
4. FC: tương tự như ANN, layer sẽ tính tốn điểm số của mỗi lớp phân loại, kết quả

có kích thước 1 × 1 × 10, với 10 là số lượng lớp phân loại ứng với 10 thể loại ảnh

19


cần phân loại. Và hoàn toàn giống như ANN, mỗi nơ-ron trong layer này đều kết
nối đầy đủ với các nơ-ron trong layer trước.
Bằng cách này, theo từng layer một, CNN biến đổi bức hình gốc từ những giá trị pixel
thô thành điểm số để phân loại cho từng lớp. Chú ý rằng một vài layer có chứa tham số

và một vài layer thì khơng. Ví dụ như layer CONV và FC là hai layer chứa tham số (trọng
số và bias của các nơ-ron). Và mặt khác thì hai layer RELU và POOL là những layer hiện
thực những hàm cố định, chỉ cần giá trị đầu vào của layer trước. Những tham số của layer
CONV/FC sẽ được học bằng gradient descent để cho điểm số phân loại cho từng lớp nhất
quán với nhãn của mỗi hình trong tập huấn luyện.

Hình 2.9: Minh họa một mạng CNN đơn giản
2.2.2.1 Lớp tích chập
Lớp tích chập-Convolutionnal Layer (CL) là layer cốt lõi trong mạng CNN cũng là
đơn vị thực hiện tính tốn nhiều nhất.
• Xét CL ở khía cạnh khơng có mạng nơ-ron: Các tham số của CL bao gồm một tập

các filter (bộ lọc) có thể học được. Mỗi filter có kích thước không gian nhỏ (theo chiều
ngang, chiều cao), nhưng mở rộng theo hết độ sâu của input. Ví dụ một filter thơng thường
trên layer đầu tiên của CNN có kích thước 5×5×3 (5 pixel mỗi chiều ngang và cao, và 3
bởi vì bức hình có độ sâu là 3, số channel màu). Trong quá trình xử lý, filter này sẽ thực
hiện dịch chuyển (chính xác hơn là tích chập) lần lượt trên dữ liệu input (ở đây là bức
hình) và thực hiện phép tích vơ hướng giữa giá trị các tham số của filter và giá trị input.
Khi ta dịch chuyển một filter lên hết bề mặt của input, thì ứng với mỗi vị trí trên input ta
sẽ có được một giá trị từ phép tích vơ hướng đại diện cho filter đó. Tập hợp các giá trị đó
ta sẽ tạo ra được một ánh xạ 2 chiều thể hiện kết quả của filter đó đối với mỗi vị trí trên
khơng gian input. Ta gọi ánh xạ đó là activation map cho một filter. Mà CL bao gồm một
tập hợp các filter khác nhau (giả sử ta có 12 filter), và mỗi filter sẽ tạo ra một activation
map 2 chiều riêng biệt. Ta sẽ chồng những activation map này lên nhau theo chiều sâu và
tạo ra output volume.
• Xét khía cạnh có mạng nơ-ron: Mỗi phần tử trong output volume ở trên đều có thể

được xem là output của một nơ-ron mà chỉ kết nối tới một vùng nhỏ của input và chia sẻ
tham số (share parameters) với tất cả các nơ-ron xung quanh nó trong cùng mặt phẳng (vì
các kết quả này đều được tạo ra bởi cùng một filter). Vậy mỗi filter tương ứng activation

map rút trích 1 đặc điểm nhất định từ input thông qua nơ-ron. Số lượng filter áp dụng lên
20


input sẽ tạo ra 1 lớp các đặc điểm khác nhau được rút trích từ input, tạo nên độ sâu (deep)
trong CNN. Ví dụ, với CL đầu tiên nhận input là một bức ảnh thì các filter khác nhau trên
độ sâu sẽ rút trích các đặc điểm cơ bản như: cạnh, màu sắc, hình dạng, ...
• Tính chất kết nối cục bộ: Khi phải xử lý với input có số chiều lớn như hình ảnh thì

việc kết nối một nơ-ron tới tất cả các nơ-ron ở layer trước là việc khơng thực tế. Thay vào
đó, ta sẽ kết nối mỗi nơ-ron tới chỉ một vùng không gian cục bộ của input volume. Phạm
vi không gian của dạng kết nối này là một hyperparameter (tham số mặc định) được gọi
là receptive field của nơ-ron (tương đương với kích thước của filter). Số lượng kết nối
theo chiều sâu luôn luôn bằng với độ sâu của input volume. Ta có thể thấy rõ sự bất đối
xứng trong việc đối xử với chiều không gian ngang (chiều rộng và chiều cao) và chiều
sâu. Số lượng kết nối được giới hạn cục bộ ở chiều khơng gian ngang nhưng ln đầy đủ
ở chiều sâu.

Hình 2.10: Một minh họa khác về tính chất kết nối cục bộ trong CL, mỗi nơ-ron chỉ
nhận input là một số nơ-ron ở lớp dưới
• Cấu trúc trong khơng gian: Ta đã tìm hiểu về cách mỗi nơ-ron trong CL kết nối tới

input volume, nhưng ta vẫn chưa biết được có bao nhiêu nơ-ron tồn tại trong output
volume hay cấu trúc của nó như thế nào. Có ba hyperparameter điều khiển kích thước của
output volume: depth (độ sâu), stride (bước nhảy) và zeropadding (viền).
1. Đầu tiên là tham số depth của output volume, nó tương ứng với số lượng filter mà

ta muốn sử dụng, mỗi filter sẽ trích xuất một đặc trưng khác nhau của input. Ví dụ,
nếu layer CONV đầu tiên nhận input đầu vào là một bức hình thơ thì các nơ-ron
khác nhau dọc theo chiều sâu có thể trích xuất sự hiện diện của những cạnh có

hướng, những đốm màu sắc, ... trong một vùng nhất định của input. Ta đặt tên cho
21


×