Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Khoa học xã hội 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ử...

Tài liệu 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

.PDF
56
1
145

Mô tả:

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 -

Tài liệu liên quan