Tôi xin cam đoan “Nghiên cứu một số mô hình mạng học sâu và ứng dụng trong bài toán dự báo điểm tốt nghiệp của sinh viên trường Cao đẳng Cơ khí Nông nghiệp” là công trình nghiên cứu khoa
Trang 1LỜI CAM ĐOAN
Tên tôi là: Phùng Thị Minh Phương
Sinh ngày: 27/06/1991
Là học viên lớp cao học : 18M-CT52 Trường Đại học Mở Hà Nội
Nơi công tác: Trường Cao đẳng Cơ Khí Nông Nghiệp – Vĩnh Phúc
Tôi xin cam đoạn :
1 Tôi xin cam đoan “Nghiên cứu một số mô hình mạng học sâu và ứng dụng trong bài toán dự báo điểm tốt nghiệp của sinh viên trường Cao đẳng Cơ khí Nông nghiệp” là công trình nghiên cứu khoa học của tôi dưới sự hướng dẫn khoa
học trực tiếp của PGS.TS Nguyễn Long Giang Các nội dung nghiên cứu , kết quả nghiên cứu được trình bày trong luận văn hoàn toàn là trung thực , không vi phạm bất cứ điều gì trong luật sở hữu trí tuệ và pháp luật của Việt Nam
2 Mọi tham khảo dùng trong khóa luận đều được trích dẫn rõ ràng tên tác giả , tên công trình, thời gian, địa điểm công bố
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm
Hà Nội , ngày 21 tháng 2 năm 2021
Học viên thực hiện
Phùng Thị Minh Phương
Trang 2LỜI CẢM ƠN
Lời cảm ơn trân trọng đầu tiên, tôi muốn dành tới các thầy, cô giáo Trường Đại học Mở Hà Nội cùng các thầy, cô giáo Viện Hàn lâm Khoa học và Công nghệ Việt Nam đã tận tình giảng dạy và truyền đạt kiến thức trong suốt khóa học cao học vừa qua Đặc biệt tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất của mình tới thầy PGS.TS Nguyễn Long Giang, đã tận tình dìu dắt và hướng dẫn tôi trong suốt quá trình làm luận văn, sự chỉ bảo và định hướng của thầy giúp tôi tự tin nghiên cứu những vấn đề mới và giải quyết bài toán một cách khoa học Tôi xin chân thành cảm ơn các thầy, cô giảng viên khoa Công nghệ Thông Tin Trường Đại học Mở Hà Nội đã tạo điều kiện thuận lợi cho tôi trong quá trình học tập, nghiên cứu Cuối cùng , tôi xin cảm ơn tập thể lớp Công nghệ thông tin khóa 18 đã cổ vũ, khích lệ và chia sẻ kinh nghiệm bản thân giúp luận văn của tôi ngày một hoàn thiện Mặc dù đã cố gắng rất nhiều nhưng chắc chắn trong quá trình học tập cũng như làm luận văn không khỏi những thiếu sót Tôi rất mong nhận được sự thông cảm và chỉ bảo tận tình của các thầy cô và các bạn
Tôi xin chân thành cảm ơn!
Hà Nội, ngày 21 tháng 02 năm 2021
Phùng Thị Minh Phương
Trang 4MỤC LỤC
Trang
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iv
DANH MỤC CÁC KÝ HIỆU, CÁC VIẾT TẮT vi
DANH MỤC BẢNG vii
DANH MỤC CÁC HÌNH viii
MỞ ĐẦU 1
1 Đặt vấn đề 1
2 Mục tiêu nghiên cứu 2
3 Mục đích nghiên cứu 2
4 Đối tượng và phạm vi nghiên cứu 2
5 Phương pháp nghiên cứu và phương pháp luận 2
CHƯƠNG 1 : GIỚI THIỆU TỔNG QUAN VỀ HỌC MÁY VÀ HỌC SÂU 4
1.1 Giới thiệu về học máy 4
1.1.1 Khái niệm học máy 4
1.1.2 Các phương pháp học máy 5
1.1.3 Ứng dụng của học máy 7
1.2 Tổng quan về mạng học sâu (Deep Learning) 7
1.2.1 Khái niệm học sâu 7
1.2.2 Học sâu với bộ não người 8
1.2.3 Học sâu dựa trên mạng Neural nhân tạo 9
CHƯƠNG 2 : MỘT SỐ MÔ HÌNH HỌC SÂU ĐƯỢC SỬ DỤNG CHO BÀI TOÁN DỰ BÁO 17
2.1 Tổng quan về bài toán dự báo 17
2.1.1 Các bước giải quyết bài toán dự báo 17
2.1.2 Các tiêu chuẩn đánh giá 19
2.1.3 Mô hình trong bài toán dự báo 23
2.1.4 Kỹ thuật xây dựng đ ặc trưng 25
2.2 Giới thiệu về mạng Neural 28
Trang 52.3 Mạng Neural hồi quy 31
2.3.1 Mô hình mạng neural hồi quy 31
2.3.2 Phân lo ại bài toán mạng neural hồi quy 33
2.3.3 Mô hình mạng lan truyền ngược liên hồi – BPTT 34
2.3.4 Mô hình mạng bộ nhớ dài ngắn LSTM 37
2.4 Mạng Neural tích chập 44
2.4.1 Ý tưởng mạng neural tích chập 44
2.4.2 Cấu trúc cơ bản của mạng Neural tích chập 44
Kết luận chương 46
CHƯƠNG 3 : ỨNG DỤNG MÔ HÌNH MẠNG HỌC SÂU CHO BÀI TOÁN DỰ BÁO ĐIỂM TỐT NGHIỆP CHO SINH VIÊN TRƯỜNG CAO ĐẲNG CƠ KHÍ NÔNG NGHIỆP 47
3.1 Tổng quan bài toán 47
3.1.2 Bài toán dự báo tỉ lệ sinh viên tốt nghiệp đúng tiến độ đào tạo 47
3.1.1 Sự cần thiết của việc dự báo điểm tốt nghiệp 50
3.2 Ứng dụng mô hình mạng học sâu trong bài toán dự báo điểm tốt nghiệp trường Cao Đẳng Cơ Khí Nông Nghiệp 51
3.2.1 Lựa cho mô hình mạng học sâu sử dụng cho bài toán dự báo 51
3.2.2 Xây dựng mô hình hệ thống 52
3.2.2 Phương pháp dự báo kết quả học tập của sinh viên 54
3.2.3 Mô hình dự báo kết quả học tập của sinh viên 54
3.2.4 Huấn luyện mô hình dự báo điểm 56
3.2.5 Cài đặt và thử nghiệm bài toán 58
3.3 Kết quả thử nghiệm 61
3.3.1 Kết quả thử nghiệm 62
3.3.2 Đánh giá hiệu suất các mô hình 63
Kết luận chương 67
KẾT LUẬN VÀ KHUYẾN NGHỊ 68
TÀI LIỆU THAM KHẢO 69
PHỤ LỤC 71
Trang 6DANH MỤC CÁC KÝ HIỆU, CÁC VIẾT TẮT
1 AI Artificial Intelligence Trí tuệ nhân tạo
4 ANN Artificial Neural Network Mạng Neural nhân tạo
5 RNN Recurrent Neural Network Mạng Neural hồi quy
8 BPTT Backpropagation Through
Time
Mô hình mạnh lan truyền ngược liên hồi
9 NLP Natural Language Processing Xử lý ngôn ngữ tự nhiên
10 MSE Mean squared error Sai số bình phương trung
Trang 7DANH MỤC BẢNG
Trang
Bảng 3.1: Dữ liệu mẫu học phần Quản trị mạng 53
Bảng 3.2: Dữ liệu mẫu học phần Bảo trì hệ thống mạng 53
Bảng 3.3 Chi tiết bộ dữ liệu tại Cao Đăng Cơ Khí Nông Nghiệp 54
Bàng 3.4 : Các thƣ viện hỗ trợ 58
Bảng 3.5 Thời gian huấn luyện các mô hình mạng 61
Bảng 3.6: Bảng kết quả huấn luyện học phần Quản trị mạng với Linux 61
Bảng 3.7: Bảng kết quả huấn luyện học phần Bảo trì hệ thống mạng 61
Bảng phụ lục 1: Danh sách hệ thống phần mềm 66
Bảng phụ lục 2: Danh sách hệ thống phần cứng 66
Trang 8DANH MỤC CÁC HÌNH
Trang
Hình 1.1 Các phương pháp học máy 5
Hình 1.2 Sơ đồ mô tả học máy có hướng dẫn 6
Hình 1.3 Mối quan hệ giữa AI – ML – DL 8
Hình 1.4 Tế bào thần kinh sinh học(trái) và neural trong mạng neural 10
Hình 1.5: Mạng neural nông 11
Hình 1.6: Mạng neural sâu 13
Hình 1.7 Kiến trúc mạng học sâu 14
Hình 2.1 Cấu trúc một neural 22
Hình 2.2 Cấu trúc chung của một mạng neural 23
Hình 2.3 : Mô hình trong các bài toán Machine learning 25
Hình 2.4 Mô hình RNN 30
Hình 2.5: Một số bài toán RNN 32
Hình 2.6: Mô hình mạng neural lan truyền ngược liên hồi 33
Hình 2.7: Quá trình truyền ngược trên chuỗi dữ liệu 34
Hình 2.8: Biểu đồ tanh và đạo hàm 35
Hình 2.9: Các module lặp lại trong một nút mạng RNN tiêu chuẩn 38
Hình 2.10: Sự lặp lại kiến trúc module trong mạng LSTM chứa 4 tầng ẩn (3 sigmoid và 1 tanh) tương tác 39
Hình 2.11: Ký hiệu trong LSTM 39
Hình 2.12: Trạng thái của tế bào 40
Hình 2.13: Cổng sàng lọc thông tin 40
Hình 2.14: Dữ liệu được truyền qua cổng quên 41
Hình 2.15: Dữ liệu được truyền qua cổng đầu vào 41
Hình 2.16: Dữ liệu được lan truyền qua thanh trạng thái 42
Trang 9Hình 2.17: Dữ liệu hội tụ ở đầu ra sau khi đi qua các cổng 43
Hình 2.18: Cấu trúc cơ bản của một mạng Neural tích chập 45
Hình 3.1: Tổng quan mô hình dự báo điểm của học phần thay thế Đồ án/khóa luận tốt nghiệp 49
Hình 3.2 : Mô hình mạng học sâu cho học phần: Quản trị mạng với Linux 56
Hình 3.3: Mô hình mạng học sâu cho học phần: Bảo trì hệ thống mạng 57
Hình 3.4: Lưu đồ mô hình mạng BPTT 59
Hình 3.5 : Lưu đồ mô hình mạng LSTM 60
Hình 3.6: Biểu đồ dự báo điểm học phần Quản trị mạng với Linux sử dụng các mô hình dự báo LSTM 63
Hình 3.7: Biểu đồ dự báo điểm học phần Quản trị mạng với Linux sử dụng các mô hình dự báo BPTT 63
Hình 3.8: Biểu đồ dự báo điểm học phần Bảo trì hệ thống mạng sử dụng các mô hình dự báo LSTM 64
Hình 3.9: Biểu đồ dự báo điểm học phần Bảo trì hệ thống mạng sử dụng các mô hình dự báo BPTT 64
Trang 10MỞ ĐẦU
1 Đặt vấn đề
Trong những năm gần đây, công nghệ thông tin phát triển mạnh mẽ ứng dụng trong nhiều lĩnh vực quan trọng của đời sống, kinh tế, xã hội đã làm lượng dữ liệu thu thập và lưu trữ ở các hệ thống thông tin tăng lên một cách nhanh chóng Trước tình hình đó, việc khai thác chọn lọc những dữ liệu có ích từ lượng thông tin khổng lồ đó sẽ quyết định chất lượng của mọi hoạt động Mặt khác, các dữ liệu sẽ được dự báo giúp việc đưa ra quyết định phương hướng trong tương lai một cách chính xác và hiệu quả hơn
Hiện nay trên thế giới, trí tuệ nhân tạo đã nhận được rất nhiều sự chú ý, ai ai cũng đều nói về nó Và trong lĩnh vực trí tuệ nhân tạo, học máy có lẽ là lĩnh vực được nói đến nhiều nhất Machine learning - học máy là chương trình chạy trên một mạng thần kinh nhân tạo, có khả năng huấn luyện máy tính "học" từ một lượng lớn
dữ liệu được cung cấp để giải quyết những vấn đề cụ thể Để học máy hiệu quả, chính xác hơn, Deep Learning (học sâu) đã ra đời Deep learning sẽ giúp robot học nhanh, kỹ và áp dụng chính xác hơn
Vì những lý do đó, nhiều bài toán dự báo được các chuyên gia đã tin tưởng
và sử dụng các hệ thống thông minh khác nhau, trong đó có mạng học sâu Deep Learning
Tính cấp thiết của đề tài
Với số lượng lớn học sinh, sinh viên đang theo học việc thực hiện công tác phân tích, đánh giá hiệu quả học tập của sinh viên trong trường Cao đẳng Cơ Khí Nông Nghiệp gặp rất nhiều khó khăn Từ dữ liệu về lý lịch sinh viên, kết quả học tập của sinh viên vậy làm thế nào để có thể thu thập được các thông tin có ích, hỗ trợ cho việc ra quyết định chẳng hạn như: Dự đoán được những học sinh, sinh viên
sẽ thôi học hoặc bị buộc thôi học để từ đó có tác động kịp thời giảm số trường hợp thôi học xuống mức thấp nhất; Dự đoán số lượng trúng tuyển từ hồ sơ đăng ký vào;
dự đoán lượng thí sinh nguyện vọng một, nguyện vọng hai; Dự đoán chất lượng
Trang 11sinh viên từ điểm đầu vào và các thông tin lý lịch; Tìm mối tương quan các môn học cơ bản (Toán, Vật lý, Hóa Học, Tiếng Anh ) với các môn học chuyên ngành của sinh viên; Tìm ra nhóm sinh viên bị tụt dốc trong học tập …
Nhận thấy được tầm quan trọng và thực tế đó, được sự gợi ý của thầy hướng
dẫn và nhận thấy tính thiết thực của vấn đề em chọn đề tài: “Nghiên cứu một số mô hình mạng học sâu và ứng dụng trong bài toán dự báo điểm tốt nghiệp của sinh viên trường Cao đẳng Cơ Khí Nông Nghiệp” làm khoá luận tốt nghiệp cho luận
văn tốt nghiệp của mình
2 Mục tiêu nghiên cứu
Nghiên cứu mô hình mạng học sâu giải quyết bài toán dự báo viên tốt nghiệp
đúng tiến độ trong các cơ sở giáo dục
3 Mục đích nghiên cứu
- Nghiên cứu cơ sở lý thuyết về học máy nói chung và học sâu nói riêng, phân tích sự phát triển của học máy với việc triển khai các giải thuật toán học sâu, phân tích hiện trạng xu hướng sử dụng thuật toán học sâu cho những vấn đề đã được giải quyết và các vấn đề còn đang nghiên cứu
- Tìm hiểu mô hình mạng học sâu
- Nghiên cứu đánh giá, lựa chọn mô hình nhằm giải quyết bài toán dự báo đào tạo trong giáo dục và phân tích điểm mạnh điểm yếu của các mô hình
4 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu là lớp bài toán khảo sát, đánh giá, thống kê sử dụng
mạng học sâu và các mô hình học sâu dự báo
- Phạm vi nghiên cứu là lý thuyết ứng dụng mạng học sâu cho bài toán dự
báo điểm trường Cao đẳng Cơ Khí Nông Nghiệp
5 Phương pháp nghiên cứu và phương pháp luận
5.1 Phương pháp nghiên cứu
Trang 12- Thu thập số liệu thực tế để thử nghiệm trên mô hình
- Cài đặt, chạy thử nghiệm mô hình mạng học sâu cải tiến trên các bộ dữ liệu mẫu và dữ liệu thực nhằm chứng minh tính hiệu quả của mô hình đề xuất
5.2 Phương pháp luận
- Về mặt lý thuyết: Phương pháp phân tích, tổng hợp và mô hình hóa lý thuyết từ đó xây dựng cơ sở lý thuyết cho luận văn
- Về thực nghiệm: Phương pháp quan sát khoa học, phân tích và tổng kết
kinh nghiệm từ đó xây dựng ứng dụng thực nghiệm cho luận văn
Trang 13CHƯƠNG 1 : GIỚI THIỆU TỔNG QUAN VỀ HỌC MÁY
VÀ HỌC SÂU
1.1 Giới thiệu về học máy
1.1.1 Khái niệm học máy
Trong những năm gần đây, công nghệ thông tin phát triển mạnh mẽ với thành tựu
là AI được ứng dụng vào nhiều lĩnh vực quan trọng của đời sống, kinh tế, xã hội, Như nhận dạng giọng nói, nhận dạng chữ viết, dự đoán kết quả, điều khiển tự động, Nó được coi là xu hướng công nghệ thế giới và nhiều người cho rằng đó là cuộc cách mạng công nghiệp lần thứ 4
Chính vì vậy, việc tìm hiểu AI có lẽ cũng là nhu cầu thiết yếu trong bối cảnh hiện tại AI là các kỹ thuật giúp cho máy tính thực hiện được những công việc của con người chúng ta Trong lĩnh vực AI có một nhánh nghiên cứu về khả năng tự học
của máy tính được gọi là học máy (machine learning) Hiện nay không có 1 định
nghĩa chính thức nào về học máy cả nhưng nổi bật rõ ràng nhất như sau:
- Theo Arthur Samuel (1959): Học máy là ngành học cung cấp cho máy tính khả năng học hỏi mà không cần được lập trình một cách tường minh
- Học máy (Machine learning) là một lĩnh vực của trí tuệ nhân tạo liên quan
đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống “học”
tự động từ dữ liệu để giải quyết những vấn đề cụ thể: Học từ dữ liệu để trích
lọc ra các tri thức (khai phá dữ liệu); Học từ dữ liệu trong quá khứ để dự báo
dữ liệu trong tương lai (dự báo)
- Machine learning là chương trình chạy trên một mạng thần kinh nhân tạo, có khả năng huấn luyện máy tính “học” từ một lượng lớn dữ liệu được cung cấp
để giải quyết những vấn đề cụ thể
Hệ thống Machine Learning được tạo thành từ 3 thành phần chính:
Mô hình (Model): hệ thống đưa ra dự đoán hoặc nhận dạng
Trang 14 Tham số (Parameters): tín hiệu hoặc nhân tố được Model sử dụng để đưa ra quyết định
Learner: hệ thống điều chỉnh lại parameters và tiếp đó là model bằng cách so sánh sự khác biệt giữa dự đoán và kết quả thực tế
1.1.2 Các phương pháp học máy
Học máy được phân thành những phương pháp sau đây:
Hình 1.1: Các phương pháp học máy Học có giám sát hay học có thầy (supervised learning): Trong giai đoạn học (huấn luyện), thuật toán học xây dựng hàm đích (hàm dự báo, phân loại) dựa trên
các tập mẫu cùng với nhãn phân loại tương ứng (tập dữ liệu huấn luyện) Trong giai đoạn dự báo (phân loại), từ tập mẫu không có nhãn phân loại (tập dữ liệu kiểm tra),
hàm đích đưa ra nhãn phân loại (dự báo) của các mẫu này Quá trình học được biểu
diễn bằng sơ đồ sau:
Học máy (Machine Learning)
Học có giám sát
(Supervised
learning)
Học không có giám sát (Unspervised learning)
Học tăng cường (Reinforcement learning)
Trang 15Hình 1.2: Sơ đồ mô tả học máy có hướng dẫn
Tìm kiếm trong không gian giả thuyết một giả thuyết phù hợp (khớp) nhất với dữ liệu huấn luyện là bản chất của việc học
Các chủ đề nghiên cứu (hay các công cụ) trong học có thầy bao gồm:
- Học cây quyết định ứng dụng trong phân loại và dự đoán
- Học mạng Neural nhân tạo ứng dụng trong phân loại và dự đoán
- Học phân lớp Bayes đơn giản
- Học máy Vector hỗ trợ SVM (Suppor Vector Machines)
- Học phân lớp sử dụng công cụ lý thuyết tập thô (rough set theory)
Học không có giám sát hay học không có thầy (unsupervised learning):
Là phương pháp học chỉ dựa trên các tập mẫu mà không có nhãn phân loại đi kèm Các đặc trưng, các mối tương quan của các mẫu học được hệ thống học tự khám phá một cách tự động
Các chủ đề nghiên cứu (hay các công cụ) trong học không có thầy bao gồm:
Học phân cụm (Clustering), thuật toán phân cụm K-means
Học luật kết hợp (Association Rule Learning)
Học dựa trên ví dụ: Phương pháp k-láng giềng gần nhất (k-Nearest Neighbors, kNN)
Học mạng Neural nhân tạo
Mẫu huấn luyện
(có nhãn)
Thuật toán học máy
Hàm đích (dự báo, phân loại)
Mẫu kiểm tra (không nhãn)
Mẫu kiểm tra (không nhãn)
Trang 161.1.3 Ứng dụng của học máy
Có rất nhiều ứng dụng thực tế khác nhau của học máy trong nhiều lĩnh vực, sau đây là một số ứng dụng điển hình:
Nhận dạng: Nhận dạng ký tự, phát hiện và nhận dạng mặt người, nhận dạng tiếng nói
Y khoa: Chuẩn đoán y tế, dự đoán người bệnh dựa trên triệu chứng quan sát được Ứng dụng trong tin sinh học như phân tích gen, phân tích chuỗi DNA,…
Kinh doanh: Phân loại khách hàng, dự đoán chỉ số thị trường chứng khoán, giá cả tiêu dùng…
Đào tạo: Dịch tự động, …
1.2 Tổng quan về mạng học sâu (Deep Learning)
1.2.1 Khái niệm học sâu
Mạng học sâu cũng được bắt nguồn từ nền tảng mạng neural nhân tạo và phát triển như “một lĩnh vực nghiên cứu mới của học máy”, với các mạng lưới có khả năng "học" mà không bị giám sát từ dữ liệu không có cấu trúc hoặc không được gắn nhãn Học sâu tập trung vào các vấn đề hẹp hơn về một tập hợp các công cụ, kỹ thuật máy học và áp dụng chúng để giải quyết các vấn đề cần đòi hỏi về tư duy
Người ta có thể hiểu rằng trí tuệ nhân tạo được hiểu đơn giản là được cấu
thành từ các lớp xếp chồng lên nhau, trong đó mạng thần kinh nhân tạo nằm ở dưới đáy, machine learning nằm ở tầng tiếp theo và Deep Learning nằm ở tầng trên cùng
Deep Learning là một phương pháp của Học máy(Machine learning) Nó
cho phép chúng ta huấn luyện một AI có thể dự đoán được các đầu ra dựa vào một tập các đầu vào Cả hai phương pháp có giám sát và không giám sát đều có thể sử dụng để huấn luyện
Deep Learning là máy sử dụng các lớp khác nhau để đào sâu hơn về việc
học các đặc điểm của dữ liệu, được huấn luyện ở nhiều cấp độ tương ứng với các
Trang 17mức độ trừu tượng khác nhau của lớp dữ liệu hình thành một hệ thống các tính năng phân cấp từ thấp đến cao
Hình 1.3: Mối quan hệ giữa AI – ML – DL
Là một phạm trù nhỏ của Machine learning, Deep learning tập trung giải quyết các vấn đề liên quan đến mạng thần kinh nhân tạo nhằm nâng cấp các công nghệ như nhận diện giọng nói, tầm nhìn máy tính và xử lý ngôn ngữ tự nhiên Deep learning đang trở thành một trong những lĩnh vực hot nhất trong khoa học máy tính Chỉ trong vài năm, Deep learning đã thúc đẩy tiến bộ trong đa dạng các lĩnh vực như nhận thức sự vật (object perception), dịch tự động (machine translation), nhận diện giọng nói, … Đó là những vấn đề từng rất khó khăn với các nhà nghiên cứu trí tuệ nhân tạo
1.2.2 Học sâu với bộ não người
Trong nỗ lực tạo ra các hệ thống học tương tự như cách con người học, kiến trúc cơ bản cho việc học sâu được lấy cảm hứng từ cấu trúc của bộ não con người
Vì lý do này, khá nhiều thuật ngữ cơ bản trong học sâu có thể được ánh xạ trở lại thần kinh học Tương tự như cách các tế bào thần kinh hình thành các khối xây
Trang 18dựng cơ bản của não, kiến trúc học sâu chứa một đơn vị tính toán cho phép mô hình hóa các hàm phi tuyến được gọi là perceptron
Sự kỳ diệu của học sâu bắt đầu với perceptron khiêm tốn Tương tự như cách
"neural" trong não người truyền các xung điện trong hệ thống thần kinh của chúng
ta, tế bào cảm thụ nhận một danh sách các tín hiệu đầu vào và chuyển chúng thành tín hiệu đầu ra
Perceptron nhằm mục đích hiểu được biểu diễn dữ liệu bằng cách xếp chồng nhiều lớp lại với nhau, trong đó mỗi lớp chịu trách nhiệm hiểu một số phần của đầu vào Một lớp có thể được coi là một tập hợp các đơn vị tính toán học cách phát hiện
sự xuất hiện lặp lại của các giá trị
Mỗi lớp perceptron chịu trách nhiệm giải thích một mẫu cụ thể trong dữ liệu Một mạng lưới các perceptron này bắt chước cách các neural trong não tạo thành một mạng lưới, vì vậy kiến trúc được gọi là mạng neural (hay mạng neural nhân tạo)
1.2.3 Học sâu dựa trên mạng Neural nhân tạo
Trong công nghệ thông tin, mạng Neural nhân tạo là một hệ thống các
chương trình và cấu trúc dữ liệu mô phỏng cách vận hành của não người Các mạng neural này được xây dựng và phát triển như bộ não người, các neural được kết nối với nhau Bản thân từng neural này chỉ trả lời được những câu hỏi hết sức cơ bản chứ không hề thông minh, nhưng khi được gộp chung với nhau thì chúng lại có sức mạnh xử lý được cả những tác vụ khó Và điều quan trọng ở đây là bằng những thuật toán phù hợp, chúng ta có thể dạy và huấn luyện được chúng
Theo các giáo sư LeCun, Bengio và Hinton, “Học sâu (Deep learning) cho phép các mô hình tính toán gồm nhiều tầng xử lý để học biểu diễn dữ liệu với nhiều mức trừu tượng khác nhau”
Trang 19Hình 1.4: Tế bào thần kinh sinh học(trái) và neural trong mạng neural
Thật vậy, trong bộ não người, tế bào thần kinh là đơn vị tính toán cơ bản Phần bên trái của Hình 1.4 mô tả một tế bào thần kinh sinh học, bao gồm các thành phần chính là thân tế bào (cell body), trục (axon), sợ nhánh (dendrite) và khớp (synapse) hay “axon terminals” như trong hình Bộ não người chứa khoảng 86 tỉ tế bào thần kinh 1014-1015 khớp thần kinh Các khớp có vai trò nối một tế bào thần kinh này với các tế bào thần kinh khác thông qua các sợi nhánh
Mỗi neural sinh học có 3 phần cơ bản:
- Các nhánh vào cây (dendrites)
- Thân tế bào (cell body)
- Sợi trục ra (axon)
Các nhánh hình cây truyền tín hiệu vào đến thân tế bào Thân tế bào tổng hợp, xử lý cho tín hiệu đi ra từ thân tế bào này sang neural khác Điểm liên kết giữa sợi trục của neural này với nhánh hình cây của neural khác gọi là synapse Liên kết giữa các neural này và độ nhạy của mỗi synapse được xác định bởi quá trình hóa học phức tạp
Trang 20Vậy neural sinh học hoạt động theo cách thức sau: nhận tín hiệu đầu vào, xử
lý các tín hiệu này và cho ra một tín hiệu output Tín hiệu output này sau đó được truyền đi làm tín hiệu đầu vào cho các neural khác
Dựa trên những hiểu biết về neural sinh học mà con người đã xây dựng neural nhân tạo với hy vọng tạo nên một mô hình có sức mạnh như bộ não
Phần bên phải của Hình 1.4 mô tả một tế bào thần kinh nhân tạo Thân tế bào thần kinh nhân tạo, từ đây sẽ gọi tắt là neural, gồm có phần tính tổng có trọng số (weighted sum) các đầu vào và hàm kích hoạt (activation function) f chuyển đổi kết quả tổng tính được thành đầu vào cho các neural khác
Mạng neural nông
Ở dạng cơ bản nhất, mạng neural chứa ba lớp: lớp đầu vào, lớp ẩn và lớp đầu
ra Như thể hiện trong hình sau, một mạng chỉ có một lớp ẩn được gọi là mạng nơron nông
Hình 1.5: Mạng neural nông
Trang 21Các tính toán được thảo luận trong các phần trước xảy ra cho tất cả các nơron trong mạng nơron bao gồm cả lớp đầu ra và một lần truyền như vậy được gọi
là truyền chuyển tiếp Sau khi hoàn thành một lần chuyển tiếp, lớp đầu ra phải so sánh kết quả của nó với các nhãn chân thực trên mặt đất thực tế và điều chỉnh trọng
số dựa trên sự khác biệt giữa giá trị trung thực mặt đất và các giá trị dự đoán Quá trình này là một quá trình truyền ngược qua mạng neural và được gọi là quá trình lan truyền ngược Quá trình này được thể hiện như sau:
- Mạng hoạt động để giảm thiểu một hàm mục tiêu, ví dụ, lỗi phát sinh trên tất cả các điểm trong mẫu dữ liệu
- Tại lớp đầu ra, mạng phải tính toán tổng sai số (chênh lệch giữa giá trị thực
tế và giá trị dự đoán) cho tất cả các điểm dữ liệu và lấy đạo hàm của nó đối với trọng số ở lớp đó Đạo hàm của hàm lỗi đối với trọng số được gọi là gradient của lớp đó
- Trọng số cho lớp đó sau đó được cập nhật dựa trên gradient Bản cập nhật này có thể là bản thân gradient hoặc một yếu tố của nó Yếu tố này được gọi là tỷ lệ học tập và nó kiểm soát mức độ lớn của các bước bạn thực hiện để thay đổi trọng lượng của mình
- Quá trình sau đó được lặp lại cho một lớp trước đó và tiếp tục cho đến khi đạt được lớp đầu tiên
- Trong quá trình này, các giá trị của gradient từ các lớp trước đó có thể được
sử dụng lại, giúp tính toán gradient hiệu quả
Trang 22Kết quả của một lần truyền chuyển tiếp và lan truyền ngược là sự thay đổi trọng số của các lớp mạng và đưa hệ thống tiến gần hơn đến việc mô hình hóa tập
dữ liệu được cung cấp cho nó Bởi vì quá trình này sử dụng gradient để giảm thiểu lỗi tổng thể, quá trình hội tụ các tham số của mạng neural đến mức tối ưu được gọi
là gradient descent
Mạng neural sâu
Mạng neural sâu chỉ đơn giản là một mạng neural nông có nhiều hơn một lớp
ẩn Mỗi neural trong lớp ẩn được kết nối với nhiều neural khác Mỗi mũi tên có một thuộc tính trọng lượng gắn liền với nó, điều này kiểm soát mức độ ảnh hưởng của kích hoạt tế bào thần kinh đó đến những người khác gắn liền với nó
Hình 1.6: Mạng neural sâu
Từ „sâu‟ trong học sâu được gán cho những lớp ẩn sâu này và bắt nguồn từ hiệu quả của nó Việc chọn số lớp ẩn phụ thuộc vào bản chất của vấn đề và kích thước của tập dữ liệu Hình trên cho thấy một mạng nơron sâu với hai lớp ẩn
Trang 231.2.3 Cách thức hoạt động của mạng học sâu
Hình 1.7: Kiến trúc mạng học sâu
Học sâu (Deep Learning) là một tập con của lĩnh vực học máy, mạng học sâu
sử dụng các lớp của mạng neural nhân tạo để thực hiện quá trình học máy Các mạng neural này được xây dựng và phát triển như bộ não con người, các nút neural được kết nối với nhau
Học sâu là máy tính sử dụng các lớp khác nhau để đi sâu hơn việc học các đặc trưng, đặc điểm của các dữ liệu được đưa vào Dữ liệu được huấn luyện ở nhiều cấp độ tương ứng với nhiều mức độ khác nhau của lớp dữ liệu hình thành một hệ thống phân cấp từ thấp đến cao Độ sâu của mô hình được thể hiện bằng số lớp có trong mô hình
Trong mạng neural nhân tạo (Neural Networks) gồm 3 loại tầng: tầng ẩn (hidden layer), tầng vào (input), tầng ra (output) Deep learning chính là Neural netwoks với nhiều Hidden layers
Dựa vào nguyên tắc hoạt động của mạng neural Cách thức hoạt động của mạng học sâu sẽ lần lượt trải qua các bước: Với dữ liệu đưa vào đầu tiên, luồng dữ
Trang 24liệu sẽ được truyền qua nhiều lớp của đơn vị xử lý phi tuyến tính để chuyển đổi và trích chọn đặc trưng đến lớp cuối cùng Mỗi lớp này sẽ lấy đầu ra của lớp trước đó
để sử dụng làm giá trị đầu vào của lớp tiếp theo Mỗi lớp này sẽ lấy đầu ra của lớp trước đó để sử dụng làm giá trị đầu vào
Ví dụ để giải quyết bài toán dự đoán giá đất, lớp đầu tiên của mạng neural sẽ
xử lý dữ liệu đầu vào thô, ví dụ như là số lượng giao dịch và chuyển nó sang lớp tiếp theo làm đầu ra Lớp thứ hai xử lý thông tin của lớp trước bằng cách thêm thông tin bổ sung như thời gian của người dùng và chuyển qua kết quả Lớp kế tiếp lấy thông tin của lớp thứ hai và thêm dữ liệu thô như tiềm năng phát triển và làm cho mẫu của máy trở nên chính xác hơn
Điều này tiếp tục trên tất cả các cấp của mạng neural Các thuật toán trong quá trình giải quyết vấn đề của mạng học sâu có thể phát triển và làm cho mẫu của máy trở nên chính xác hơn Điều này tiếp tục trên tất cả các cấp của mạng neural Các thuật toán trong quá trình giải quyết vấn đề của mạng học sâu có thể là học không giám sát hoặc học có giám sát, căn cứ vào việc học đa lớp các đặc trưng hoặc
sự biểu diễn của dữ liệu
Tại đây, “ các đặc trưng cấp cao hơn thu được từ các đặc trưng cấp thấp hơn
để tạo thành một biểu diễn theo thứ bậc ”[16]
Ví dụ với quá trình học của con người: Trải qua mỗi cấp họ, người học sẽ tập trung tìm hiểu các khái niệm và định nghĩa cụ thể hơn, đồng thời họ sử dụng các kiến thức đã từng học ở cấp dưới để từ đó đi sâu hơn vào việc nghiên cứu, phân tích các khái niệm trừu tượng Quá trình xây dựng và trình bày dữ liệu này được gọi là trích xuất tính năng Với khả năng trích xuất tính năng tự động đó, các mạng lưới thần kinh sâu đã tạo nên một kiến trúc phức tạp của học sâu Nhưng trong học máy, tác vụ này được thực hiện khi truy xuất các thuật toán cụ thể Phương pháp huấn luyện một mạng neural: luôn một mang neural nhân tạo, ta sẽ tìm ra một tập các tham số
Trang 25Kết luận chương 1
Trong chương 1, luận văn đã trình bày các nội dung tổng quan về mạng học
sâu Từ đó thấy được hiệu quả của việc áp dụng mạng học sâu trong các bài toán
hiện nay Đồng thời chỉ được hướng đi rõ ràng của luận văn trong việc sử dụng
mạng học sâu cho các bài toán dự báo dựa vào các dữ liệu cũ đã học được
Trang 26CHƯƠNG 2 : MỘT SỐ MÔ HÌNH HỌC SÂU ĐƯỢC SỬ
DỤNG CHO BÀI TOÁN DỰ BÁO
2.1 Tổng quan về bài toán dự báo
Dự báo là một bài toán rất phức tạp, cả về số lượng dữ liệu cần cũng như độ chính xác của dữ liệu dự báo [1] Ý tưởng chính của bài toán dự báo là cung cấp một tập dữ liệu mẫu cho máy tính (chẳng hạn như một tập hợp các số liệu ), sau đó
kỳ vọng rằng thông qua các thuật toán, các mô hình được cài đặt mà máy tính có thể tìm ra đáp án cho các câu hỏi, bài toán chưa được trả lời trong tương lai
Một bài toán dự báo dữ liệu có sử dụng mạng neural có thể được coi như một dạng của bài toán xử lý dữ liệu nói chung Để dự báo một bài toán, thông thường chúng ta sẽ xây dựng một tập dữ liệu chuẩn để làm tập dữ liệu huấn luyện Từ đó, chúng ta thực hiện các hướng dẫn để máy tính "học" thông qua các mô hình và thuật toán mà chúng ta đã chỉ định Các tham số được tạo ra từ tập dữ liệu huấn luyện sẽ được sử dụng để xác minh tính phù hợp của mô hình trên tập dữ liệu thử nghiệm
2.1.1 Các bước giải quyết bài toán dự báo
Kết quả của bài toán dự báo phụ thuộc vào rất nhiều các yếu tố như dữ liệu, thuật toán, sai số, Vì thế bài toán thành công, chúng ta cần xác định được các công việc thực hiện để giải quyết bài toán
Những bước chính cần được thực hiện khi thiết kế mô hình mạng neural cho bài toán dự báo là:
- Bước 1: Lựa chọn các biến
- Bước 2: Thu thập dữ liệu
- Bước 3: Tiền xử lý dữ liệu
- Bước 4: Phân chia dữ liệu thành các tập: huấn luyện, kiểm tra, thẩm định
- Bước 5: Xác định cấu trúc mạng
- Bước 6: Xác định tiêu chuẩn đánh giá
- Bước 7: Huấn luyện mạng
Trang 27- Bước 8: Thực thi trong thực tế
Bài toán dự báo có thành công hay không, có đưa ra kết quả tốt hay không phụ thuộc rất nhiều vào các yếu tố như dữ liệu, thuật toán huấn luyện, sai số, Vì vậy, việc xác định các công việc cần thực hiện để giải quyết bài toán dự báo là rất cần thiết
Khi thực hiện thiết kế mô hình mạng neural sử dụng cho bài toán dự báo, chúng ta cần thực hiện các bước chính sau:
- Bước 1: Lựa chọn các biến
- Bước 2: Thu thập dữ liệu
- Bước 3: Tiền xử lý dữ liệu
Hệ thống thực hiện việc phân tích và chuyển đổi các giá trị đầu vào và đầu ra của mạng để giảm thiểu nhiều, nhấn mạnh các đặc điểm quan trọng, phát hiện xu hướng và cân bằng việc phân phối dữ liệu
- Bước 4: “Phân chia dữ liệu thành các tập: huấn luyện, kiểm tra,thẩm định”
Thông thường, tập huấn luyện sẽ là tập lớn nhất dùng để huấn luyện mạng Tập kiểm tra dùng để kiểm tra độ tổng quát của mạng sau huấn luyện và chiếm 10
% đến 30 % tập dữ liệu huấn luyện Tập kiểm định có kích thước được cân bằng giữa việc cần có đủ số mẫu để có thể kiểm tra mạng đã huấn luyện và việc cần đủ các mẫu còn lại cho cả pha huấn luyện và kiểm tra
- Bước 5: “Xác định cấu trúc mạng”
Là một bước đóng vai trò quan trọng khi quá trình thực thi Xác định cấu trúc mạng là việc xác định sự liên kết giữa các neural và ngoài ra còn xác định số lớp ẩn,
số neural trong các lớp ẩn , số neural đầu ra và cả các hàm chuyển
- Bước 6: “ Xác định tiêu chuẩn đánh giá (hàm lỗi )
Mục đích của bước 6 để xác định được khả năng hoạt động của mạng trước
và sau khi huấn luyện
- Bước 7:“Huấn luyện mạng”
Trang 28Huấn luyện mạng cũng là một bước quan trọng trong quá trình thực thi, nó học dữ liệu bằng cách truyền tuần tự các mẫu cùng với các giá trị mong muốn Mục đích là tìm một tập hợp các trọng số cung cấp cho chúng ta giá trị nhỏ nhất toàn cục của chỉ số hiệu năng hoặc hàm lỗi
- Bước 8: “Thực thi trong thực tế”
Trong quá trình thực hiện, nếu kết quả không tốt thì cần lựa chọn lại các biến
và huấn luyện lại Do vậy, không nhất thiết phải theo đúng thứ tự các bước mà có thể quay lại các bước trước để xây dựng mô hình đảm bảo kết quả đầu ra
2.1.2 Các tiêu chuẩn đánh giá
Tiêu chuẩn đánh giá là để xác định được mô hình có thực sự đem lại hiệu quả không Việc đánh giá khả năng giữa các mô hình cần sử dụng các tiêu chuẩn chung và các mô hình đó cũng cần dùng chung tập dữ liệu kiểm thử
Một số tiêu chuẩn phổ biến hiện nay như: Precision, MSE, F1, Recall, Accuracy, Đối với bài toán dự báo, luận văn sẽ lựa chọn giới thiệu về các tiêu chuẩn đánh giá là MSE, RMSE R2 và Accuracy
a Tiêu chuẩn Mean squared error(MSE)
Mean squared error (MSE - Sai số bình phương trung bình) của một phép ước lượng là “trung bình của bình phương các sai số”, chính là “sự chênh lệch giữa các giá trị được mô hình dự đoán và giá trị thực tế”[17] Nguyên nhân gây ra sự chênh lệch này có thể do ngẫu nhiên hay do phép ước lượng không lường trước được việc thông tin có khả năng đưa ra được một ước tính đúng hơn
Nếu Ŷ là vector của n giá trị dự đoán, và Y là vector của các giá trị thực tế ứng với đầu vào của hàm số phát ra dự báo thì MSE của phép dự báo có thể được ước lượng theo công thức:
(2.1)
Trang 29MSE phù hợp với việc đánh giá chất lượng của các bài toán dự đoán (như là một hàm ánh xạ dữ liệu đầu vào tùy ý với một mẫu giá trị của một biến ngẫu nhiên) hoặc một công cụ ước tính (như trong một hàm toán học ánh xạ một mẫu dữ liệu với một ước tính của một tham số của tổng thể từ đó dữ liệu được lấy mẫu)
b Root Mean Square Error - RMSE
Root Mean Square Error (RMSE – Sai số trung bình bình phương gốc) là thước đo mức độ phân tán các giá trị dự đoán từ các giá trị thực tế RMSE thường được sử dụng trong các bài toán dự báo, phân tích hồi quy, khí hậu học để xác minh kết quả thí nghiệm RMSE cho thấy mức độ hiệu quả của mô hình, RMSE càng nhỏ thì sai số càng bé, độ tin cậy của mô hình càng cao
Lấy căn bậc 2 của MSR cho ra RMSE, vì vậy ta có công thức của RMSE như sau:
Khi đánh giá hiệu quả của một mô hình trong bài toán cụ thể, giá trị RMSE
và MSE cao thể hiện mô hình chưa thực sự ổn định
c Tiêu chuẩn R Square
R Square hay còn được gọi là R2/R bình phương hoặc hệ số xác định (Coefficient of detemination) là một trong những giá trị có ý nghĩa lớn và quan trọng trong trong phương pháp hồi quy tuyến tính Trong thống kê, dữ liệu đầu ra hoặc kết quả cho sự thay đổi đang được nghiên cứu được gọi là các biến phụ thuộc,
dữ liệu đầu vào hoặc nguyên nhân tạo ra sự thay đổi được gọi là biến độc lập (hay còn gọi là biến hồi quy) Với mỗi cuộc nghiên cứu, bất kỳ biến nào mà được thao tác cũng có thể được gọi là một biến độc lập Các mô hình và thử nghiệm được tiến hành để kiểm tra những tác động của các biến độc lập lên các biến phụ thuộc
(2.2)
Trang 30- Phần biến thiên do hồi quy
- Phần biến thiên không do hồi quy (hay còn gọi là phần dư)
1 biến độc lập (hay còn gọi là phương trình hồi quy đơn biến) thì R2 chính là “bình phương của hệ số tương quan r giữa hai biến đó”
Hệ số tương quan R hay còn được gọi là multiple r (multiple regression) gắn liền mật thiết với R2, cho nên ta cần lưu ý đến hệ số này khi thực hiện tính ESS Multiple R cho phép kiểm tra xem có thể thêm các biến vào mô hình hay không, đồng thời, nó cũng có khả năng loại bỏ ảnh hưởng của một số biến nhất định
Hệ số R2 có thể cho ta thấy:
- Mức độ phù hợp của mô hình với dữ liệu (hoặc biến)
Ví dụ:
(2.3)
Trang 31Nếu R2 = 0,7 thì mức độ phù hợp của mô hình hồi quy tuyến tính với dữ liệu
ở mức 70%, còn 30% còn lại phụ thuộc cách thu thập dữ liệu, hoặc do sai số đo lường, ngoài ra có thể do có biến độc lập khác giải thích cho biến phụ thuộc mà chưa có trong mô hình nghiên cứu,…
- Mô hình sẽ phù hợp với bài toán cần giải quyết ở mức bao nhiêu:
Theo các nhà nghiên cứu, mô hình được coi là phù hợp khi R2>50% Tuy nhiên, với một số trường hợp như giá chứng khoán, giá cổ phiếu, giá vàng, … sẽ có
sự biến động lớn, các mô hình này đều không bắt buộc phải có R2>50% vì rất khó
để dự đoán giá nếu chỉ dựa vào các biến độc lập như GDP, ROE, ROA, …
- Với R2 càng cao thì mối quan hệ giữa biến độc lập và biến phụ thuộc càng chặt chẽ, đồng thời mô hình có khả năng ổn định càng cao
d Accuracy
Trong phép đo của một tập hợp, Accuracy (độ chính xác) là độ gần của các
phép đo với một giá trị cụ thể Có thể hiểu đơn giản rằng, Accuracy “tính tỉ lệ giữa
số điểm được dự đoán đúng và tổng số điểm trong một tập dữ liệu kiểm thử” [15]
Ví dụ:
Với bài toán gồm 3 lớp dữ liệu được ký hiệu là a, b, c Trong thực tế thì các lớp có thể được ký hiệu bất kỳ, không bắt buộc là chữ hoặc bắt đầu từ a Giả sử ta xét 10 điểm dữ liệu trong tập kiểm thử với các ký hiệu thực tế được biểu diễn bằng y_dung = [a, a, a, a, b, b, b, c, c, c] Giả thuyết rằng bộ phân lớp mà ta đang cần đánh giá dự đoán ký hiệu cho các điểm này là y_dudoan = [a, b, a, a, b, b, a, c, b, c] Đối với ví dụ này, ta thấy rằng trong tổng số 10 điểm thì có 7 điểm dữ liệu được dự đoán đúng Vì vậy Accuracy/R2 của mô hình là 0.7 (hay 70%)
Độ chính xác Accuracy thường thích hợp với các bài toán mà các lớp dữ liệu
có kích thước tương đối giống nhau, độ chính xác thấp sẽ gây ra sự khác biệt giữa kết quả mô hình dự đoán và giá trị trong thực tế
Trang 322.1.3 Mô hình trong bài toán dự báo
Hình 2.3: Mô hình trong các bài toán Machine learning
Phần lớn các mô hình machine learning có thể được minh hoạ trong Hình 2.3 Có hai bước (phase) lớn trong mỗi bài toán machine learning là bước huấn luyện (training phase) và bước kiểm thử (test phase) [2] Bước huấn luyện sẽ chỉ dùng dữ liệu huấn luyện, bước kiểm thử sẽ chỉ dùng dữ liệu trong tập kiểm thử
Bước 1: Pha huấn luyện (Tranning phase)
Có hai khối có nền màu lục cần được thiết kế:
Khối Trích chọn đặc trưng (Feature Extraction), có nhiệm vụ tạo ra một
vector đặc trưng cho mỗi điểm dữ liệu đầu vào Vector đặc trưng này thường có kích thước như nhau, bất kể dữ liệu đầu vào có kích thước như thế nào
Đầu vào của khối Trích chọn đặc trưng có thể là các yếu tố sau:
- Dữ liệu huấn luyện đầu vào ở trạng thái thô (raw training input): Dữ liệu
thô bao gồm tất cả các thông tin ta biết về dữ liệu Ví dụ: dữ liệu thô của một ảnh là giá trị của từng pixel; của một văn bản là từng từ, từng câu; của một file âm thanh là một đoạn tín hiệu; với bài toán dự báo thời tiết, dữ liệu thô là thông tin về hướng gió, nhiệt độ, độ ẩm, Dữ liệu thô này thường không ở dạng vector và không có số
Trang 33chiều như nhau Thậm chí có thể có số chiều như nhau nhưng số chiều quá lớn, chẳng hạn một bức ảnh màu pixel sẽ có số pixel là đã là (ảnh màu thường có ba channel: red, green, blue – RGB) Đây là một con số quá lớn, không lợi cho lưu trữ và tính toán
- Dữ liệu huấn luyện đầu ra: Trong các bài toán unsupervised learning, ta
không biết output nên hiển nhiên sẽ không có giá trị này Trong các bài toán supervised learning, có khi dữ liệu này cũng không được sử dụng Ví dụ, nếu raw input đã có cùng số chiều rồi nhưng số chiều quá lớn, ta muốn giảm số chiều của nó thì cách đơn giản nhất là chiếu vector đó xuống một không gian có số chiều nhỏ hơn bằng cách lấy một ma trận ngẫu nhiên nhân với nó vào bên trái Ma trận này thường
là ma trận béo, tức có số hàng ít hơn số cột, để đảm bảo số chiều thu được nhỏ hơn
số chiều ban đầu Việc làm này mặc dù làm mất đi thông tin, trong nhiều trường hợp vẫn mang lại hiệu quả vì đã giảm được lượng tính toán ở phần sau Đôi khi ma trận chiếu không phải là ngẫu nhiên mà có thể được học dựa trên toàn bộ dữ liệu thô ban đầu Trong nhiều trường hợp khác, dữ liệu output của tập huấn luyện cũng được
sử dụng để tạo ra bộ trích chọn đặc trưng Trong bài toán classification, việc giữ lại nhiều thông tin không quan trọng bằng việc giữ lại các thông tin có ích cho bài toán
Ví dụ, giả sử dữ liệu thô là các hình vuông và hình tam giác có màu đỏ và xanh Trong bài toán phân loại đa giác, nếu các nhãn là tam giác và vuông, ta không quan tâm tới màu sắc mà chỉ quan tâm tới số cạnh của đa giác Ngược lại, trong bài toán phân loại màu, các nhãn là xanh và đỏ, ta không quan tâm tới số cạnh mà chỉ quan tâm đến màu sắc
- Các thông tin biết trước của dữ liệu: Ngoài dữ liệu huấn luyện, các thông
tin biết trước ngoài lề cũng có tác dụng trong việc xây dựng bộ trích chọn đặc trưng Chẳng hạn, có thể dùng các bộ lọc để giảm nhiễu nếu dữ liệu là âm thanh, hoặc dùng các bộ dò cạnh để tìm ra cạnh của các vật thể trong dữ liệu ảnh Nếu dữ liệu là ảnh các tế bào và ta cần đưa ảnh về kích thước nhỏ hơn, ta cần lưu ý về độ phân giải của tế bảo ảnh trong kích thước mới Ta cần xây dựng một bộ trích chọn đặc trưng phù hợp với từng loại dữ liệu [3]
Trang 34Sau khi các tham số mô hình của bộ feature extraction được thiết kế, dữ liệu thô ban đầu được đưa qua và tạo ra các vector đặc trưng tương ứng được gọi là đặc
trưng đã trích xuất (Extracted feature) Những đặc trưng này sẽ được đưa vào huấn
luyện các thuật toán machine learning chính như phân loại, phân cụm, hồi quy, trong khối màu lục phía sau
Bước 2: Pha kiểm tra (Testing phase)
Khi có dữ liệu thô mới, ta sử dụng bộ trích chọn đặc trưng đã tìm được ở trên
để tạo ra vector đặc trưng ứng với dữ liệu thô đó Vector đặc trưng này được đưa vào thuật toán chính đã tìm được để đưa ra quyết định
Đối với các bài toán sử dụng mạng học sâu cũng trải qua các bước như trên tuy nhiên đối với một số thuật toán cao cấp hơn, việc xây dựng bộ trích chọn đặc trưng và các thuật toán chính (classification, clustering, .) có thể được thực hiện cùng lúc với nhau thay vì từng bước như trên Các mô hình đó có tên gọi chung là end-to-end Với sự phát triển của deep learning trong những năm gần đây, người ta cho rằng các hệ thống end-to-end (từ đầu đến cuối) mang lại kết quả tốt hơn nhờ vào việc hai khối phía trên được huấn luyện cùng nhau, bổ trợ lẫn nhau cùng hướng tới mục đích cuối cùng Thực tế cho thấy, các phương pháp state-of-the-art (các phương pháp hiệu quả nhất) thường là các mô hình end-to-end
2.1.4 Kỹ thuật xây dựng đặc trưng
Mỗi điểm dữ liệu trong các bài toán machine learning thường được biểu diễn bằng một vector được gọi là vector đặc trưng (feature vector) Hơn nữa, trong cùng một bài toán, các feature vector của tất cả các điểm thường có kích thước như nhau Điều này là cần thiết vì các phép toán trong mô hình (cộng, nhân ma trận, vector) yêu cầu đầu vào có cùng kích thước [2] Khi đó, toàn bộ dữ liệu có thể được lưu trong một ma trận mà mỗi hàng hoặc mỗi cột là feature vector của một điểm dữ liệu Tuy nhiên, trên thực tế, dữ liệu thường ở dạng thô (raw data) với kích thước khác nhau Hoặc thậm chí khi kích thước của các điểm là như nhau, việc lựa chọn,
Trang 35tính toán đặc trưng nào phù hợp cho mỗi bài toán là nhiệm vụ quan trọng trước tiên cần được giải quyết
Với các bài toán thị giác máy tính (computer vision), các bức ảnh thường là các ma trận hoặc tensor với kích thước khác nhau Trong bài toán nhận dạng vật thể trong ảnh, đôi khi ta cần làm thêm một bước nữa là xác định vị trí vật thể (object detection), tức là tìm các khung chứa vật thể cần dự đoán [2] Ví dụ, trong bài toán nhận dạng khuôn mặt, ta cần tìm được vị trí các khuôn mặt trong ảnh và cắt ra các khuôn mặt đó trước khi làm các bước tiếp theo Ngay cả khi đã xác định được các khung chứa các khuôn mặt, ta vẫn phải làm rất nhiều việc vì hình ảnh của khuôn mặt còn phụ thuộc vào góc chụp, ánh sáng, … và rất nhiều yếu tố khác nữa
Các bài toán xử lý ngôn ngữ tự nhiên (natural language processing–NLP) cũng có khó khăn tương tự khi độ dài của các văn bản là khác nhau, thậm chí có những từ rất hiếm gặp hoặc không có trong từ điển [2] Cũng có khi thêm một vài từ vào văn bản mà nội dung của văn bản không đổi hoặc hoàn toàn mang nghĩa ngược lại Hoặc cùng là một câu nói nhưng tốc độ, âm giọng của mỗi người là khác nhau, tại các thời điểm khác nhau là khác nhau
Khi làm việc với các bài toán deep learning trong thực tế, chúng ta hầu như chỉ nhận được dữ liệu thô chưa qua chỉnh sửa, sàng lọc Ngoài ra, còn phải tìm cách loại bỏ những dữ liệu nhiễu và để đưa dữ liệu thô với kích thước hay số chiều khác nhau về cùng một chuẩn (cùng là các vector hoặc ma trận) Dữ liệu sau khi làm sạch phải đảm bảo toàn vẹn được những thông tin đặc trưng của dữ liệu thô Không những thế, tùy vào từng bài toán, ta cần thiết kế những phép biến đổi để có những đặc trưng phù hợp Quá trình quan trọng này được gọi là trích chọn đặc trưng (feature engineering hay feature extraction) và nó trải qua 3 bước chính: Lấy dữ liệu thô, lựa chọn đặc trưng và giảm chiều dữ liệu
Bước 1: Lấy dữ liệu thô
Xét một bài toán phân loại các bức ảnh xám mà mỗi bức ảnh đã có kích thước cố định là pixel Cách đơn giản nhất để tạo ra vector đặc trưng cho bức
Trang 36ảnh này là kéo dài ma trận các pixel thành một vector có phần tử, hay đặc trưng Khi đó, giá trị mỗi đặc trưng sẽ là một giá trị của một pixel trong bức ảnh ban
đầu, thứ tự không quan trọng Kỹ thuật này còn được gọi là vector hoá (vectorization)
Việc làm đơn giản này đã làm mất thông tin về không gian (spatial information) giữa các điểm ảnh vì các pixel gần nhau theo phương ngang trong bức ảnh ban đầu có thể không còn gần nhau trong vector đặc trưng mới nữa Tuy nhiên, trong nhiều trường hợp, kỹ thuật này vẫn mang lại kết quả khả quan
Bước 2: Lựa chọn đặc trưng
Giả sử rằng các điểm dữ liệu có số đặc trưng khác nhau (do kích thước dữ liệu khác nhau hay do một số đặc trưng mà điểm dữ liệu này có nhưng điểm dữ liệu kia lại không thu thập được), và số lượng đặc trưng là cực lớn Chúng ta cần chọn ra một số lượng nhỏ hơn các đặc trưng phù hợp với bài toán
Bước 3: Giảm chiều dữ liệu
Một phương pháp khác thường được dùng là làm giảm số chiều dữ liệu (dimensionality reduction) để giảm bộ nhớ và khối lượng tính toán Việc giảm số chiều này có thể được thực hiện bằng nhiều cách, trong đó chiếu ngẫu nhiên (random projection) là cách đơn giản nhất Trong phương pháp này, một ma trận chiếu (projection matrix) ngẫu nhiên được chọn, thường là một ma trận béo (Số cột nhiều hơn số hàng), để nhân vào bên trái của từng vector đặc trưng ban đầu để được các vector đặc trưng có số chiều thấp hơn Cụ thể, giả sử vector đặc trưng ban đầu
là , nếu ta chọn một ma trận chiếu với , vector mới
có số chiều nhỏ hơn số chiều của vector ban đầu
Việc chọn một ma trận chiếu ngẫu nhiên đôi khi mang lại kết quả tệ không mong muốn vì thông tin có thể bị mất đi quá nhiều Một phương pháp được sử dụng nhiều để tối thiểu lượng thông tin mất đi có tên là principal component analysis [8].Tuy nhiên Feature engineering không nhất thiết phải làm giảm số chiều dữ liệu,
đôi khi vector đặc trưng có thể có có kích thước lớn hơn dữ liệu thô ban đầu
Trang 372.2 Giới thiệu về mạng Neural
Mạng neural nhân tạo - Artificial Neural Network (ANN) gọi tắt là mạng neural, mạng neural network Đây là một mô hình xử lý thông tin mô phỏng theo cách thức xử lý thông tin của các hệ neural sinh học Nó bao gồm một lượng lớn các phần tử (phần tử xử lý hay neural) kết nối với nhau thông qua các kiên kết (gọi là trọng số liên kết) làm việc như một hệ thống nhất để giải quyết vấn đề nào đó ANN giống như con người, được học bởi kinh nghiệm, lưu kinh nghiệm hiểu biết và sử dụng trong những tình huống phù hợp
ANN được giới thiệu vào năm 1943 bởi nhà thần kinh học Warren McCulloch và nhà logic học Walter Pits Họ đã tiến hành xây dựng một mạng Neural đơn giản bằng các mạch điện Kết quả củ các mô hình này là các hàm logic đơn giản Chẳng hạn như “a OR b” hay “a AND b” Tuy nhiên, với hạn chế kỹ thuật trong thời gian này chưa cho phép họ nghiên cứu được nhiều
Những năm gần đây mô phỏng ANN không chỉ dừng lại ở việc nghiên cứu lý thuyết Việc ứng dụng mạng Neural ngày càng hoàn thiện hơn Các nghiên cứu ứng dụng đã được thực hiện trong nhiều ngành như: điện, điện tử, kỹ thuật chế tạo, y học, quân sự, và mới nhất là các nghiên cứu ứng dụng trong các bài toán dự báo
Hiện tại ở Việt Nam, việc nghiên cứu và ứng dụng ANN vào bài toán dự báo
mới chỉ bắt đầu trong vài năm gần đây
Cấu trúc và hoạt động của mạng Neural
Cấu trúc của mạng Neural Mạng neural nhân tạo có chức năng tương tự như chức năng đơn giản nhất của các neural sinh học Đó là tích lũy (ghi nhớ) những tri thức được học về các sự vật đã biết, phân biệt chúng mỗi khi gặp lại Chức năng được hình thành thông qua một chuỗi liên tiếp các quá trình xử lý thông tin của các neural trong mạng Dựa vào
mô phỏng neural sinh học, neural nhân tạo cũng thực hiện nhiệm vụ của mình thông qua các thao tác nhận đầu vào từ các neural trước, xử lý đầu vào bằng cách nhân mỗi đầu vào này với trọng số liên kết tương ứng và tính tổng các tích thu được rồi
Trang 38đưa ra một hàm truyền Sau đó gửi kết quả cho các neural tiếp theo hoặc đưa ra output Cứ như vậy, các neural này hoạt động phối hợp nhau tạp thành hoạt động chính của mạng neural [4]
Quy trình xử lý thông tin của một neural qua cấu trúc thể hiện ở hình 2.1
Hình 2.1: Cấu trúc một neural
xi: các tín hiệu input f(.) : hàm hoạt động
wkp: trọng số của từng input yk: kết xuất của Neurol Trong hình vẽ trên:
(x1,x2, xp) với p≥ 1: là các tín hiệu đầu vào của neural Các tín hiệu
này có thể là đầu ra của neural trước đó hoặc đầu vào ban đầu của mạng và thường được đưa vào dưới dạng một vector p chiều
wk1,wk2, wkp là tạo các trọng số liên kết của từng neural k với p đầu vào tương ứng với (x1,x2, xp) Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học của mạng
là hàm tổng trên một neural, dùng dể tính tổng các giá trị kích hoạt trên neural đó Thông thường, đây là tổng các tích giữa đầu vào và trọng số liên kết tương ứng của neural
Trang 39 uk là tổng các giá trị kích hoạt lên neural thứ k, giá trị này là đầu ra của hàm tổng
f(.) là hàm truyền, còn gọi là hàm kích hoạt (activation function) Hàm truyền được dùng để giới hạn vi đầu ra của mỗi neural Đối số của hàm lá giá trị hàm tổng và ngưỡng bk Thông thường, phạm vi đầu ra của mỗi neural được giới hạn trong đoạn [0,1] hoặc [1,-1] Như vậy miền giá trị của các hàm kích hoạt cũng
là một trong hai giai đoạn trên
yk là tín hiệu đầu ra của neural thứ k, mỗi neural thường có một đầu ra và tối đa là một đầu ra Giá trị yk được tính theo công thức
yk = f(uk + bk) với uk =
Như vật, sau quá trình xử lý của neural trên tập các tín hiệu đầu vào, ta sẽ thu được một tin hiệu đầu ra duy nhất
Hoạt động của mạng neural
Một mạng neural có thể có nhiều lớp/tầng mạng và ít nhất có một lớp gọi là lớp đầu ra Mỗi lớp có thể có một hoặc nhiều neural Cấu trúc tổng quát của mạng neural thể hiện trong hình 2.2 dưới đây
Hình 2.2: Cấu trúc chung của một mạng neural
Mạng neural với cấu trúc như hình trên có thể mô tả như sau:
Trang 40 Đầu vào của mạng vector có kích thước p: ( x1, x2 , ,xp) và đầu ra là vector a1, a2, ., aq có kích thước q Trong bài toán phân loại mẫu, kích thước đầu ra của mạng chính là số lớp cần phân loại
Lớp ẩn đầu tiên là lớp H1, sau đó đến lớp ẩn thứ hai H2, tiếp tục như vậy đến lớp ẩn cuối cùng rồi lớp đầu ra O
Các neural trong lớp có cấu trúc như trên hình 2.1 liên kết giữa các neural giữa các lớp có thể là liên kết đầy đủ mỗi neural thuộc lớp sau liên kết với tất cả các neural ở lớp trước nó) hoặc liên kết chọn lọc (mỗi neural thuộc lớp sau liên kết với tất cả neural ở lớp trước đó)
Đầu ra của lớp trước chính là đầu vào của lớp ngay sau nó
Hàm truyền tại các neural không nhất thiết giống nhau
Với cấu trúc như vậy, hoạt động của mạng neural diễn ra như sau: Đầu tiên vector đầu vào được lan truyền qua lớp H1 Tại lớp này, mỗi neural nhận vector đầu vào rồi xử lý (tính tổng trọng số của các đầu vào rồi cho qua hàm truyền) và cho ra kết quả tương ứng Đầu ra của lớp H1 chính là đầu vào của lớp H2, do đó sau khi lớp
H1 cho kết quả ở đầu ra của mình thì lớp H2 nhận được đầu vào và tiếp tục quá trình
xử lý Cứ như vậy cho đến khi thu được đầu ra lớp sau O Đầu này chính là đầu ra cuối cùng của mạng
2.3 Mạng Neural hồi quy
Mạng neural hồi quy (RNN – Recurrent Neural Nettwork) là mô hình có nhiều ưu điểm trong lĩnh vực xử lý ngôn ngữ tự nhiên Vì thế mà nó trở thành mô hình Deep learning được biết đến nhiều nhất trong thời gian gần đây
2.3.1 Mô hình mạng neural hồi quy
Mô hình mạng neural hồi quy khác với các mô hình mạng neural truyền thống: thông tin đầu vào (input) hoàn toàn độc lập với thông tin đầu ra (output), RNN chứa