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 quý 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 đã hoà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 hoà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 quý 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 nguyên 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 toá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 toá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 toá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ở toá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 Quá 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 quát ............................................................................. 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 nguyên 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 toá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 để hoà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 toá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 toán xấp xỉ nhiều
hàm toá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 đoá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 toá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 toà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 toá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 đoá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 toá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 quá
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ừ quá 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 λ quá thấp, mô hình sẽ rơi vào trường hợp
overfitting.
Ngoà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
- Xem thêm -