BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÀ RỊA-VŨNG TÀU
--------------------------------------------
LÊ VIẾT HUẤN
Xây dựng mô hình khuyến cáo khả năng nghỉ học của
sinh viên Trường cao đẳng Kỹ thuật Công nghệ -
Bà Rịa Vũng Tàu
LUẬN VĂN THẠC SĨ
Chuyên ngành: Công nghệ thông tin
Mã số: 8480201
CÁN BỘ HƯỚNG DẪN KHOA HỌC
TS. Phan Ngọc Hoàng
Bà Rịa-Vũng Tàu, tháng 4 năm 2021
MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT ..................................................................... IV
DANH MỤC CÁC BẢNG .................................................................................... V
DANH MỤC CÁC HÌNH .................................................................................... VI
MỞ ĐẦU ................................................................................................................ 1
1. Lý do chọn đề tài ................................................................................................. 1
2. Tính cấp thiết của đề tài ....................................................................................... 1
3. Mục tiêu đề tài ..................................................................................................... 3
4. Nội dung nghiên cứu ........................................................................................... 3
5. Phương pháp luận và phương pháp nghiên cứu .................................................... 3
5.1. Phương pháp luận ............................................................................................. 3
5.2 Phương pháp nghiên cứu ................................................................................... 3
CHƯƠNG I. GIỚI THIỆU TRÍ TUỆ NHÂN TẠO ............................................ 5
1.1. Giới thiệu trí tuệ nhân tạo ................................................................................. 5
1.2. Các lĩnh vực thuộc trí tuệ nhân tạo .................................................................... 6
1.3. Các bài toán sử dụng trong trí tuệ nhân tạo ..................................................... 13
1.3.1. Phân nhóm ................................................................................................... 13
1.3.2. Phân cụm ..................................................................................................... 17
1.3.3. Nhận dạng ................................................................................................... 17
1.4. Thuật toán sử dụng trong hàm......................................................................... 17
CHƯƠNG II. GIỚI THIỆU VỀ MẠNG NƠRON ............................................ 22
2.1. Giới thiệu mạng Nơron ................................................................................... 22
2.1.1. Lịch sử phát triển của mạng Nơron .............................................................. 22
2.1.2. Ứng dụng ..................................................................................................... 23
I
2.1.3. Căn nguyên sinh học của mạng .................................................................... 24
2.2. Nơron nhân tạo ............................................................................................... 25
2.3. Hàm xử lý. ...................................................................................................... 27
2.3.1. Hàm kết hợp. ............................................................................................... 27
2.3.2. Hàm kích hoạt của mạng (hàm chuyển) ....................................................... 27
2.3.2.1. Hàm tuyến tính (Linear function): ............................................................. 27
2.3.2.2. Hàm ranh giới cứng trong mạng (Hard limiter function). .......................... 28
2.3.2.3.Hàm Sigmoid (Sigmoid function) .............................................................. 28
2.3.2.4. Hàm Sigmoid lưỡng cực(Bipolar Sigmoid function) .................................. 29
2.3.2.5. Hàm TanH ................................................................................................ 30
2.3.2.6. Hàm ReLU ............................................................................................... 30
2.3.2.6. Hàm Leaky ReLU ..................................................................................... 31
2.4. Cấu trúc của mạng nơron. ............................................................................... 33
2.4.1. Phương pháp mạng truyền thẳng. ................................................................. 33
2.4.2. Mạng hồi qui ............................................................................................... 34
2.4.3. Luật học ....................................................................................................... 34
2.4.4. Hàm mục tiêu .............................................................................................. 36
2.5 Huấn luyện mạng Nơron .................................................................................. 36
2.5.1. Phương pháp mạng Nơron truyền thẳng ....................................................... 37
2.5.1.1. Các kiến trúc cơ bản ................................................................................. 37
2.5.1.2. Khả năng biểu diễn ................................................................................... 38
2.5.2. Số lớp ẩn ...................................................................................................... 39
2.5.3. Số nơron trong lớp ẩn .................................................................................. 39
2.6. Thuật toán lan truyền ngược (Back-Propagation Algorithm) ........................... 41
II
2.6.1. Phương pháp mô tả thuật toán ...................................................................... 41
2.6.1.1. Chỉ số hiệu năng (performance index) ....................................................... 41
2.6.1.2. Luật xích (Chain Rule) .............................................................................. 42
2.6.1.3. Lan truyền ngược độ nhạy cảm ................................................................. 44
2.6.2. Sử dụng thuật toán lan truyền ngược của mạng ............................................ 46
2.6.3. Một số loại biến thể của thuật toán lan truyền ngược .................................... 49
CHƯƠNG III. ỨNG DỤNG MẠNG NƠRON TRONG VIỆC KHUYẾN CÁO
KHẢ NĂNG NGHỈ HỌC CỦA HỌC SINH, SINH VIÊN ................................ 52
3.1. Các bước thực hiện mô hình . ......................................................................... 52
3.2. Thu thập dữ liệu cho mô hình ......................................................................... 53
3.3. Phân tích, lựa chọn đặc trưng. ......................................................................... 54
3.4. Tiền xử lý dữ liệu cho mô hình. ...................................................................... 57
3.5. Xây dựng mạng Nơron ................................................................................... 59
3.5.1. Cấu trúc mạng Nơron................................................................................... 59
3.5.2. Huấn luyện mạng Nơron cho mô hình.......................................................... 61
3.5.3. Kiểm thử mạng nơron .................................................................................. 64
3.6. Kết quả bài toán khuyến cáo. .......................................................................... 66
CHƯƠNG IV. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................. 67
4.1. Các kết quả đạt được ...................................................................................... 67
4.2. Hướng phát triển tiếp theo .............................................................................. 67
TÀI LIỆU THAM KHẢO ................................................................................... 68
PHỤ LỤC ............................................................................................................. 70
III
DANH MỤC CÁC TỪ VIẾT TẮT
TÊN VIẾT TT TÊN ĐẦY ĐỦ DIỄN GIẢI TẮT
1 GA Genetic Algorithm Giải thuật di truyền
2 ANN Artificial Neural Network Mạng nơron nhân tạo
Mạng nơron nhiều 3 MLP Multi Layer Perceptron lớp
Tỉnh Bà rịa – Vũng 4 BRVT Bà Rịa Vũng Tàu tàu
5 NƠRON Neural Tế bào thần kinh
6 BP Back Propagation Lan truyền nguợc
Multi Feedforward Neural Mạng truyền thẳng 7 MFNN Network nhiều lớp
Bình phương nhỏ 8 LMS Least Mean Square nhất
IV
DANH MỤC CÁC BẢNG
Bảng 3.1: Bảng dữ liệu kết quả học tập rèn luyện ............................................. 55
Bảng 3.2: Bảng điều kiện phân loại học lực ..................................................... 56
Bảng 3.3: Bảng dữ liệu tính chất đặc trưng của mô hình .................................. 57
Bảng 3.4: Dữ liệu mạng nơron với số đầu vào .................................................. 58
Bảng 3.5: Giá trị loss sau mỗi epoch ................................................................ 62
V
DANH MỤC CÁC HÌNH
Hình 1.1:Quan hệ giữa AI, Machine Learning và Deep Learning ........................ 6
Hình 1.2: Dữ liệu được phân chia làm hai tập điểm. ........................................... 9
Hình 1.3: Dữ liệu phức tạp, không được phân chia. .......................................... 10
Hình 1.4: Thuật toán học có giám sát ................................................................ 14
Hình 1.5: MNIST bộ cơ sở dữ liệu của chữ số viết tay ....................................... 15
Hình 1.6: Học không giám sát ........................................................................... 16
Hình 1.7: Học bán giám sát ............................................................................... 16
Hình 1.8: Thuật toán Nơron nhân tạo ................................................................ 18
Hình 1.9: Thuật toán học sâu ............................................................................ 19
Hình 1.10: Thuật toán giảm kích thước ............................................................. 20
Hình 1.11: Thuật toán tổng hợp......................................................................... 21
Hình 2.1: Đơn vị xử lý tín hiệu thứ j. ................................................................. 26
Hình 2.2: Mô hình mạng Nơron nhân tạo .......................................................... 27
Hình 2.3: Hàm tuyến tính d trong mạng (Linear function) ................................. 28
Hình 2.4: Hàm ranh giới cứng e trên x. ............................................................. 28
Hình 2.5: Hàm – Sigmoid .................................................................................. 29
Hình 2.6: Hàm Sigmoid lưỡng cực g(x) ............................................................. 29
Hình 2.7: Hàm TanH ......................................................................................... 30
Hình 2.8: Đồ thị hàm ReLU. .............................................................................. 31
Hình 2.9: Đồ thị hàm Leaky ReLU .................................................................... 32
Hình 2.10: Mô hình Softmax Regression dưới dạng Neural network .................. 33
Hình 2.12: Mạng hồi qui ................................................................................... 34
Hình 2.13: Mô hình học có giám sát j ................................................................ 35
Hình 2.14: Mạng nơron truyền thẳng nhiều lớp k .............................................. 37
Hình 3.1: Các bước chính trong xây dựng mô hình ........................................... 52
Hình 3.2: Mô hình cấu trúc mạng Nơron MLP .................................................. 60
Hình 3.3: Đồ thị thể hiện mức độ học của MLP ................................................. 63
Hình 3.4: Các thông số huấn luyện của mạng.................................................... 64
VI
Hình 3.5: Các thông số kiểm thử của mạng ....................................................... 66
VII
MỞ ĐẦU
XÂY DỰNG MÔ HÌNH KHUYẾN CÁO KHẢ NĂNG NGHỈ HỌC CỦA
SINH VIÊN TRƯỜNG CAO ĐẲNG KỸ THUẬT CÔNG NGHỆ TỈNH BÀ RỊA
VŨNG TÀU
1. Lý do chọn đề tài
Hiện tượng nghỉ học ngày càng phổ biến trong các bạn học sinh, sinh viên năm
nhất của trường Cao Đẳng Kỹ Thuật Công Nghệ tỉnh Bà Rịa Vũng Tàu. Vấn đề này
đang nhận được sự quan tâm đặc biệt của Ban giám hiệu nhà trường và thầy cô giáo.
Qua số liệu khảo sát từ năm 2016-2019 tại trường Cao Đẳng Kỹ Thuật Công
Nghệ tỉnh Bà Rịa Vũng Tàu, đã cho thấy một số khó khăn hiện nay đối với nhà trường
như sau:
Chủ yếu vào thời điểm sau tết nguyên đán hàng năm học sinh, sinh viên nhà
trường thường hay nghỉ học nhiều. Theo số liệu thống kê chưa đầy đủ, từ đầu năm
học 2016-2017 đến nay, toàn trường có gần 458 học sinh, sinh viên bỏ học giữa
chừng, trong đó chủ yếu là học sinh hệ trung cấp 380 em, chiếm tỷ lệ 83% tổng số
học sinh, sinh viên hệ cao đẳng nghề 78 em chiếm tỷ lệ 17%. Một số ngành nghề có
học sinh bỏ học nhiều như: Điện công nghiệp, Công nghệ thông tin…
Một thực tế đã chứng minh rằng việc bỏ học liên quan chặt chẽ đến kết quả học
tập của các bạn sinh viên, đó chính là sự giảm sút về điểm số, sự chán nản trong mỗi
bài học. Nguyên nhân bỏ học đến từ yếu tố khách quan và yếu tố chủ quan của mỗi
bạn học sinh, sinh viên chẳng hạn như: bạn bè rủ rê, lôi kéo, điểm số thấp nên chán
nản, không có kế hoạch học tập rõ ràng…
2. Tính cấp thiết của đề tài
Kết quả của việc nghỉ học của học sinh, sinh viên không chỉ là nỗi lo của ngày
hôm nay mà sẽ còn là gánh nặng đến cộng đồng xã hội mai sau.
1
Việc các em bỏ học sớm của các em sẽ làm tăng thêm lực lượng lao động không
có tay nghề, không được đào tạo, hiệu quả lao động thấp, chưa kể việc các em rất dễ
bị lôi kéo vào các tệ nạn xã hội đang rất phổ biến hiện nay.
Nhằm khắc phục các khó khăn trên, về phía nhà Trường, cũng đã cố gắng nâng
cao chất lượng đào tạo, đổi mới phương pháp giảng dạy cũng như tạo sân chơi lành
mạnh kèm theo đó là các hoạt động ngoại khóa hay các buổi học tập, trao đổi về
phương pháp phân bổ thời gian học tập hợp lý…cho các bạn học sinh, sinh viên,
nhưng kết quả vẫn chưa khả quan.
Để góp phần xác định hiện tượng nghỉ học nhiều tại nhà trường, tôi quyết định
chọn đề tài "Xây dựng mô hình khuyến cáo khả năng nghỉ học của sinh viên Trường
Cao Đẳng Kỹ Thuật Công Nghệ tỉnh Bà Rịa Vũng Tàu " nhằm hỗ trợ công tác tư vấn
định hướng học tập và khuyến cáo đến các bạn học sinh, sinh viên kết quả học tập
của mình từ đó chấn chỉnh lại ý thức học tập và có phương pháp học tập hợp lý để
kết quả học tập ngày càng tốt hơn, đồng thời giúp người học tự định hướng chính xác
hơn về nghề nghiệp phù hợp với mình.
Cùng với phương pháp sử dụng mạng Nơron trong những năm gần đây, được
quan tâm và sử dụng nhiều trong lĩnh vực nhận dạng và phân lớp. Dự đoán trong mô
hình là việc rất quan trọng trong học máy, và trong khai phá dữ liệu, phát hiện trí thức
của hệ thống mạng Nơron.
Kỹ thuật (MLP - Multi Layer Perceptron) trong mạng Nơron được đánh giá là một
trong những công cụ mạnh và phù hợp nhất hiện nay cho những bài toán phân lớp phi
tuyến. Dựa trên kỹ thuật MLP đã có nhiều ứng dụng đã và đang được xây dựng rất
hiệu quả. Các giải pháp phân loại và dự đoán...nếu nắm chắc và xây dựng tốt phương
pháp này sẽ tạo nền tảng giúp chúng ta trong việc phát triển, xây dựng được những
ứng dụng quan trọng trong thực tế. Đặc biệt là các bài toán dự báo, điều khiển, lọc dữ
liệu, xử lý…
Việc xây dựng mô hình dự báo khả năng nghỉ học của các bạn học sinh, sinh viên
năm nhất của trường Cao Đẳng Kỹ Thuật Công Nghệ tỉnh Bà Rịa Vũng Tàu dựa vào
2
các đặc trưng như: điểm số của các môn học, vắng học, kết quả rèn luyện ... trên cơ
sở bài toán phân loại 2 lớp MLP là cần thiết và mang tính khả thi cao.
3. Mục tiêu đề tài
- Nghiên cứu phần bài toán phân lớp quan điểm, cơ sở lý thuyết của phương
pháp máy học, Mạng Nơron.
- Tìm hiểu thuật toán Mạng Nơron.
- Áp dụng kỹ thuật Mạng Nơron cũng như những cải tiến, mở rộng của nó để
xây dựng Mô hình giải quyết bài toán nghỉ học của học sinh, sinh viên năm nhất.
4. Nội dung nghiên cứu
- Phân tích những giải pháp, những ứng dụng công nghệ Mạng Nơron để tạo
ra công cụ dự báo kết quả học tập giúp giảm tỉ lệ bỏ học của sinh viên năm nhất.
- Tổng hợp, thu thập, phân tích, đánh giá các số liệu thực tế của học sinh, sinh
viên trong nhà trường trong khoảng 3 năm trở lại đây.
- Áp dụng kỹ thuật Mạng Nơron cũng như những cải tiến, mở rộng của nó vào
giải quyết bài toán dự báo khả năng nghỉ học của học sinh.
-Viết và cài đặt thuật toán chương trình.
5. Phương pháp luận và phương pháp nghiên cứu
5.1. Phương pháp luận
- Tìm hiểu cơ sở lý thuyết và thuật toán về mô hình MLP phân loại 2 lớp.
- Tìm hiểu lý thuyết cơ sở và sử dụng thuật toán về mạng Nơron.
- Tìm hiểu các lựa chọn đặc trưng, thuật toán phân loại 2 lớp trong việc phân
tích dữ liệu và đưa ra dự báo kết quả học tập của học sinh, sinh viên.
- Tìm hiểu và lựa chọn ngôn ngữ lập trình, công cụ hỗ trợ.
5.2 Phương pháp nghiên cứu
- Xây dựng bộ dữ liệu dự báo cho Mạng Nơron
3
- Xây dựng mô hình dựa trên mạng Nơron thực hiện chương trình dự báo khả
năng nghỉ học của học sinh, sinh viên.
4
CHƯƠNG I.
GIỚI THIỆU TRÍ TUỆ NHÂN TẠO
1.1. Giới thiệu trí tuệ nhân tạo
Trí thông minh của máy tính do con người tạo ra gọi là trí tuệ nhân tạo. Sự ra
đời của chiếc máy tính điện tử đầu tiên, hệ thống máy tính đã được các nhà khoa học
phát triển (gồm cả phần cứng và phần mềm) sao cho nó có khả năng thông minh như
loài người. Mơ ước này vẫn còn xa và chưa thành hiện thực đối với tác giả, tuy vậy
những thành tựu đạt được cũng không hề nhỏ: chúng ta đã nghiên cứu được các hệ
thống (phần mềm chơi cờ vua chạy trên siêu máy tính GeneBlue) có thể thắng được
vua cờ thế giới; chúng ta đã làm tạo ra các phần mềm có thể chứng minh được các
bài toán hình học...v.v. Hay nói theo các cách khác nhau, trong một số trường hợp,
con người thực hiện một số nhiệm vụ và yêu cầu máy tính thực hiện như vậy (tất
nhiên không phải tất cả các lĩnh vực), đó chính là máy tính thông minh của tương lai.
Trí thông minh của máy tính có thể có nhiều cách để làm ra (hay là trí tuệ nhân
tạo), chẳng hạn là tìm hiểu cách bộ não người phát sinh ra trí thông minh như thế nào
rồi ta bắt chước nguyên lý đó, nhưng cũng có nhiều cách khác sử dụng những nguyên
lý khác nhau với cách sản sinh ra trí thông minh của loài người mà vẫn làm ra máy
tính thông minh như con người.
Như vậy, khả năng của máy khi thực hiện các công việc mà con người thường
phải xử lý gọi là trí tuệ nhân tạo; máy thông minh hay máy đó có trí thông minh là
khi kết quả thực hiện của máy tốt hơn hoặc tương đương với con người. Nói theo
nhiều cách khác, máy tính thông minh không phải đánh giá dựa trên nguyên lý máy
tính thực hiện nhiệm vụ đó có giống cách con người thực hiện hay không mà dựa trên
những kết quả đó có giống với con người thực hiện hay không?
Nhiệm vụ con người thường xuyên cần phải thực hiện đó là: giải bài toán ( tìm
kiếm, chứng minh, lập luận), giao tiếp, thể hiện cảm xúc, học, thích nghi với môi
trường xung quanh… v.v, và dựa trên các kết quả thực hiện các nhiệm vụ đó để rút
ra một điều rằng một ai đó có là thông minh hay không. Trí tuệ nhân tạo nhằm cung
cấp các phương pháp để làm ra các nhiệm vụ đó hệ thống có khả năng thực hiện: giao
5
tiếp, học, giải toán..v.v. dù cho cách nó làm có giống như con người hay không mà là
kết quả đạt được hoặc dáng vẻ bên ngoài như con người. [1]
1.2. Các lĩnh vực thuộc trí tuệ nhân tạo
Trong những năm gần đây, AI - Artificial Intelligence (Trí Tuệ Nhân Tạo)
được xem như cuộc cách mạng công nghiệp lần thứ tư nổi lên như một bằng chứng
và cụ thể hơn là Machine Learning (Học Máy). Trí Tuệ Nhân Tạo đã và đang len lỏi
vào tất cả các lĩnh vực trong đời sống mà có thể chúng ta không hề hay biết. Xe tự lái
của Google và Tesla, hệ thống tự nhận diện khuôn mặt trong ảnh của Facebook, trợ
lý ảo Siri của Apple, hệ thống trợ giúp của Amazon, hệ thống tìm kiếm phim của
Netflix, máy chơi cờ vây AlphaGo của Google DeepMind, …, chỉ là một vài trong
rất nhiều những ứng dụng của Machine Learning.
Khi mà khả năng tính toán của các máy tính được nâng lên một tầm cao mới
và lượng dữ liệu khổng lồ được thu thập bởi các hãng công nghệ lớn, Machine
Learning đã tiến thêm một bước dài và một lĩnh vực mới được ra đời gọi là Deep
Learning, Deep Learning đã giúp máy tính thực thi những việc tưởng chừng như
không thể vào 10 năm trước: phân loại cả ngàn vật thể khác nhau trong các bức ảnh,
tự tạo chú thích cho ảnh, bắt chước giọng nói và chữ viết của con người, giao tiếp với
con người, hay thậm chí cả sáng tác văn hay âm nhạc. [2]
Hình 1.1:Quan hệ giữa AI, Machine Learning và Deep Learning
1.2.1. Học máy
6
Trong những năm gần đây Machine Learning đang là một công nghệ gây sốt
trên toàn thế giới. Một trong số nhóm giới học thuật, có rất nhiều bài báo khoa học
về đề tài này mỗi năm. Trong giới công nghiệp, từ các công ty lớn như Facebook,
Google, Microsoft đến các dự án khởi nghiệp của các công ty đều đầu tư vào Machine
Learning. Ứng dụng sử dụng Machine Learning ra đời hàng loạt trên mọi lĩnh vực
của cuộc sống, từ khoa học máy tính đến những ngành ít liên quan hơn như y học,
vật lý, chính trị, hóa học. AlphaGo, với số lượng phần tử còn nhiều hơn số lượng hạt
trong vũ trụ được cỗ máy đánh cờ vây có khả năng tính toán, tối ưu hơn và đưa ra các
nước đi hơn bất kì đại kì thủ nào, là một trong rất nhiều ví dụ lớn lao cho sự vượt trội
của Machine Learning so với các phương pháp cổ điển [3].
Để giới thiệu cụ thể hơn về Machine Learning, dựa vào mối quan hệ của nó
với ba khái niệm sau:
Machine Learning và trí tuệ nhân tạo (Artificial Intelligence hay AI)
Machine Learning cùng với Big Data.
Machine Learning và dự đoán tương lai.
AI, trí tuệ nhân tạo, một cụm từ vừa gần gũi vừa xa lạ với chúng ta. Gần gũi
bởi vì thế giới đang bùng nổ với những công nghệ được dán nhãn AI. Xa lạ bởi vì
một AI thực thụ vẫn còn chưa phổ biến với chúng ta. Theo hiểu biết chung trong giới
hàn lâm, AI là một ngành khoa học được sinh ra với mục đích làm cho máy tính có
khả năng học được trí thông minh. Điều này vẫn chưa rõ ràng vì định nghĩa về trí
thông minh vẫn chưa thống nhất. Một số nhiệm vụ cụ thể hơn được các nhà khoa học
tự định nghĩa, một trong số đó là phần mềm trên máy tính lừa được Turing Test.
Turing Test được tạo ra bởi Alan Turing (1912-1954), một trong những người đặt
nền tảng cho ngành khoa học máy tính thông minh, dùng để phân biệt xem người đối
diện có phải là người hay không [3].
Con người muốn AI thể hiện một mục tiêu. Machine Learning là một công cụ
được kỳ vọng sẽ giúp con người đạt được mục tiêu đó. Và thực tế thì Machine
Learning đã mang con người đi rất xa trên con đường chinh phục AI. Nhưng vẫn còn
một đoạn đường xa hơn rất nhiều cần phải đi. Machine Learning và AI có mối quan
7
hệ bền chặt với nhau nhưng chưa hẳn là trùng khớp vì một bên là phương tiện (AI),
một bên là mục tiêu (Machine Learning). Chinh phục AI mặc dù vẫn là mục đích tối
thượng của Machine Learning, nhưng hiện tại Machine Learning tập trung vào những
mục tiêu ngắn hạn hơn như: Làm cho máy tính có những khả năng nhận thức cơ bản
của con người như nghe, nhìn, hiểu được ngôn ngữ, giải toán, lập trình, …và hỗ trợ
con người trong việc xử lý một khối lượng thông tin khổng lồ mà chúng ta phải đối
mặt hàng ngày, hay còn gọi là Big Data [3].
Big Data thực chất chưa phải là một ngành khoa học chính thống. Đó là một
cụm từ được dân cư mạng tung hô để ám chỉ thời kì bùng nổ của dữ liệu hiện nay.
Big Data nó cũng không khác gì nhiều so với những cụm từ như "cách mạng công
nghiệp", "kỉ nguyên phần mềm". Big Data là một điều tất yếu của việc sử dụng mạng
Internet ngày càng có nhiều kết nối. Với sự ra đời của các mạng xã hội nhưng Twitter,
Instagram, Facebook, có nhu cầu chia sẻ thông của con người tăng trưởng một cách
đáng kể. Nơi được mọi người chia sẻ video và comment về nội dung của video
Youtube cũng có thể được xem là một hệ thống của mạng xã hội. Một số ví dụ điển
hình về quy mô của Big Data:
• Theo con số thông kê khoảng 500 giờ video được upload trên youtube trong
mỗi phút (theo https://www.youtube.com/yt/press/statistics.html)
• Có khoảng hơn 800 triệu người thật sự sử dụng Facebook mỗi ngày, trong
đó 86.8% trong số đó ở ngoài Mỹ và Canada (theo http://newsroom.fb.com/company-
info)
• Nhu cầu tìm kiếm thông tin tăng đi đôi với nhu cầu chia sẻ cũng tăng. Google
phải xử lý 200 tỉ lượt tìm kiếm mỗi tháng, tức là 4,3 tỉ lượt mỗi ngày và 39.000 lượt
mỗi giây (theo http://www.internetlivestats.com/google-search-statistics/).
Và những con số này đang tăng lên theo từng ngày đáng kinh ngạc! [3].
Big Data đây không phải là danh từ duy nhất dẫn đến sự ra đời của từ Bùng
nổ thông tin. Ta biết rằng Big Data xuất hiện nhưng lượng dữ liệu tích tụ kể từ khi
mạng Internet xuất hiện vào cuối thập kỉ trước cũng không phải là nhỏ. Thế nhưng,
lúc đó có một khối dữ liệu khổng lồ và không biết làm gì với chúng ngoài lưu trữ và
8
sao chép. Cho đến một ngày, các nhà khoa học nhận ra rằng trong khối lượng dữ liệu
ấy thực ra chứa một khối lượng thông tin tri thức khổng lồ và cần thiết. Những tri
thức ấy có thể giúp cho ta hiểu thêm về nhiều lĩnh vực khác trong xã hội. Đối với
những danh sách bộ phim yêu thích của một cá nhân phần mềm có thể rút ra được sở
thích của người đó và giới thiệu những bộ phim người ấy chưa từng xem và tương
đối phù hợp với sở thích. Từ danh sách tìm kiếm của cộng đồng mạng phần mềm sẽ
biết được vấn đề đang được quan tâm nhất sẽ tập trung đăng tải nhiều hơn về vấn đề
đó. Big Data chỉ mới bắt đầu từ khi chúng ta hiểu được giá trị của dữ liệu chứa một
lượng lớn thông tin, và có đủ dữ liệu cũng như công nghệ để có thể nghiên cứu chúng
trên một quy mô rộng lớn. Và không có gì bất ngờ khi Machine Learning chính là
thành phần quan trọng của công nghệ đó. Big Data và Machine Learning có quan hệ
mật thiết với nhau nhờ sự gia tăng của khối lượng dữ liệu của Big Data mà Machine
Learning phát triển ngày một lớn, ngược lại giá trị của Big Data phụ thuộc vào kỹ
năng khai thác thông tin tri thức từ dữ liệu của Machine Learning. [3]
Trước kia, khi mạng Internet ra đời Machine Learning đã xuất hiện từ rất lâu.
Machine Learning có những thuật toán đầu tiên là Perceptron được phát minh ra bởi
Frank Rosenblatt vào năm 1957. Nó là một thuật toán rất quan trọng dùng để phân
loại hai khái niệm. Một ví dụ đơn giản là phân loại thư rác (tam giác) và thư bình
thường (vuông). Đối với Perceptron, là việc vẽ một đường thẳng trên mặt phẳng để
phân chia hai tập hợp điểm:
Hình 1.2: Dữ liệu được phân chia làm hai tập điểm.
9
Những email được điểm tam giác và vuông đại diện cho chúng ta đã biết nhãn
trước. Chúng được dùng để huấn luyện để chia hai điểm bằng đường thẳng khi vẽ, ta
nhận được các điểm chưa được dán nhãn, đại diện cho các email cần được phân loại
(điểm tròn). Ta sử dụng để dán nhãn của một hoặc nhiều điểm theo nhãn của các điểm
cùng nửa mặt phẳng với điểm đó.
Quy trình sơ lược phân loại thư được mô tả sau. Trước hết, để chuyển những
email thành cơ sở dữ liệu ta cần một thuật toán. Phần này rất rất quan trọng vì nếu
chúng ta lựa chọn đúng để biểu diễn phù hợp, công việc của perceptron sẽ dễ dàng
hơn rất nhiều. Tiếp theo, perceptron sẽ dựa vào từng điểm để đọc tọa độ và sử dụng
thông tin này để làm cơ sở tham số của đường thẳng cần tìm. Đây là một thuật toán
đơn giản và chúng có rất nhiều vấn đề cần giải quyết và liên quan tới perceptron,
chẳng hạn như điểm cần phân loại nằm ngay trên đường thẳng phân chia trong mô
hình. Sẽ thật khó hơn là với một tập dữ liệu phức tạp hơn khi đường thẳng phân chia
không tồn tại:
Hình 1.3: Dữ liệu phức tạp, không được phân chia.
Lúc này, các loại đường phân chia ta cần "không thẳng". Perceptron là một
thuật toán Supervised Learning: các ví dụ được ta đưa cho máy tính thực hiện hàng
loạt cùng câu trả lời mẫu với mong muốn máy tính sẽ tìm được những điểm cần thiết
để đưa ra dự đoán cho những ví dụ khác chưa có câu trả lời trong tương lai. Ngoài ra,
cũng có rất nhiều những thuật toán Machine Learning không cần câu trả lời cho trước,
10
được gọi là Unsupervised Learning. Trong trường hợp này, máy tính sẽ cần khai thác
ra cấu trúc của một tập dữ liệu ẩn mà không cần câu trả lời mẫu. Một loại Machine
Learning khác được gọi là Reinforcement Learning. Trong dạng này, cũng không hề
có câu trả lời cho trước, mỗi hành động máy tính đều nhận được những phản hồi. Dựa
vào phản hồi tiêu cực hay tích cực mà máy tính sẽ điều chỉnh hoạt động sao cho phù
hợp.
Thống kê có mối quan hệ rất mật thiết đối với Machine Learning (Statistics).
Sự phân bố dữ liệu được Machine Learning sử dụng các mô hình thống kê để "ghi
nhớ" lại. Tuy nhiên, không đơn thuần là ghi nhớ, Machine Learning phải tổng quát
hóa những gì chưa được nhìn thấy và đưa ra khả năng để dự đoán. Có thể hình dung
một mô hình Machine Learning không có khả năng tổng quát như một đứa trẻ đang
bắt đầu học: chỉ trả lời được những câu trả lời mà đáp án nó đã từng được học. Con
người có khả năng tổng quát một cách tự nhiên và kì diệu: chúng ta không thể nhìn
thấy tất cả các khuôn mặt người trên thế giới nhưng chúng ta có thể nhận biết được
một thứ có phải là khuôn mặt người hay không với độ chính xác gần như tuyệt đối.
Machine Learning có khả năng mô phỏng được khả năng tổng quát hóa và suy luận
này của con người một cách tốt nhất.
Khi nói đến Machine Learning là nói đến khả năng "dự đoán": từ việc dự đoán
hành động cần thực hiện trong bước tiếp theo đến dự đoán đoán nhãn phân loại trong
mô hình. Câu hỏi đặt ra là Machine Learning có thể biết trước về tương lai? Có thể
có hoặc có thể không: khi tương lai có mối liên hệ mật thiết với hiện tại thì Machine
Learning có thể dự đoán được tương lai đó là điều hoàn toàn có thể.[3]
1.2.2. Học sâu
Học sâu là (Deep Learning) một chức năng của trí tuệ nhân tạo (AI), bắt chước
hoạt động của bộ não con người trong việc xử lí dữ liệu và tạo ra các mẫu để sử dụng
cho việc ra quyết định.
Học sâu là tập con của học máy trong AI, có 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 đã phát triển cùng với thời đại kĩ thuật số, điều này đã mang lại sự bùng nổ dữ
11
liệu dưới mọi hình thức và từ mọi khu vực trên thế giới. Dữ liệu này, gọi đơn giản là
dữ liệu lớn, được lấy từ các nguồn như phương tiện truyền thông xã hội, công cụ tìm
kiếm trên internet, nền tảng thương mại điện tử hoặc rạp chiếu phim trực tuyến,...
Một trong những kĩ thuật AI phổ biến nhất được sử dụng để xử lí dữ liệu lớn
là học máy. Đây là thuật toán tự thích ứng giúp các phân tích và các mô hình với kiến
thức hoặc dữ liệu mới được thêm vào ngày càng trở nên tốt hơn.
Học sâu, một tập con của học máy, sử dụng các lớp, bậc của mạng nơron nhân tạo để
thực hiện quá trình học máy. Các mạng nơron được xây dựng giống như bộ não của
con người, với các nút rơron được kết nối với nhau như một trang web.
Học sâu không có nghĩa là học máy thêm kiến thức chuyên sâu, nó có nghĩa
là máy sử dụng các lớp khác nhau để học hỏi từ dữ liệu. Độ sâu của mô hình được
biểu thị bằng số lớp trong mô hình.
Trong khi các chương trình truyền thống xây dựng các phân tích dữ liệu theo cách
tuyến tính, thì chức năng phân tầng của các hệ thống học sâu cho phép các máy xử lí
dữ liệu theo cách tiếp cận phi tuyến. [4]
+ Ứng dụng của việc học sâu.
- Nhận dạng được tiếng nói tự động của hàm.
- Nhận dạng được hình ảnh trong thực tế.
- Xử lý và nhận dạng, phân loại ngôn ngữ tự nhiên.
- Tìm hiểu dược phẩm và độc chất.
- Quản lý và kiểm tra các quan hệ khách hàng trong doanh nghiệp.
- Các hệ thống khuyến cáo, cảnh bảo.
- Tin sinh học.
1.2.3. Lập luận, suy diễn tự động
Đối với các khái niệm lập luận (Reasoning) và suy diễn (Reference) được sử
dụng rất phổ biến trong nhiều lĩnh vực AI. Lập luận là suy diễn logic, dùng để chỉ
một quá trình rút ra kết luận từ những giả thiết đã cho (được biểu diễn dưới dạng cơ
sở dữ liệu của tri thức). Như vậy, để thực hiện lập luận người ta cần có các phương
12
thức lưu trữ cơ sở dữ liệu của tri thức với số lượng lớn và các nguyên lý lập luận trên
cơ sở tri thức đó. [5]
1.2.4. Cơ sở biểu diễn tri thức
Muốn hệ thống máy tính có thể lưu trữ và xử lý dữ liệu tri thức thì cần có các
phương pháp biểu diễn tri thức. Các phương pháp biểu diễn dữ liệu tri thức ở đây bao
gồm một hoặc nhiều các ngôn ngữ biểu diễn và các kỹ thuật xử lý dữ liệu tri thức
khác nhau. Một ngôn ngữ biểu diễn dữ liệu tri thức được cho là “tốt” nếu nó có tính
đồng nhất cao và hiệu quả của thuật toán lập luận trên ngôn ngữ đó. Tính đặc trưng
của ngôn ngữ thể hiện trong khả năng biểu diễn trong một phạm vi rộng lớn các thông
tin trong miền ứng dụng. Tính hiệu quả của các thuật toán được đánh giá thể hiện đầu
tư về thời gian và không gian dành cho việc lập luận. Do vậy, hai yếu tố này dường
như không thuận nhau, tức là nếu ngôn ngữ có tính biểu đạt cao thì thuật toán lập luận
trên đó sẽ có độ phức tạp lớn và ngược lại. Vì vậy, một trong những thách thức lớn
trong lĩnh vực AI đó là xây dựng một hệ thống cơ sở dữ liệu về ngôn ngữ để biểu
diễn tri thức, tức là ngôn ngữ có tính thống nhất cao và có thể lập luận hiệu quả.
- Lập kế hoạch và tính toán: về khả năng tính toán và đưa ra các mục đích cần
đạt được đối với các nhiệm vụ, qua đó xác định dãy các hành động cần thiết để thực
hiện để đạt được mục đích đó.
- Xử lý của ngôn ngữ tự nhiên: đó là một nhánh của AI, tập trung vào các ứng
dụng dựa trên ngôn ngữ của con người. Các ứng dụng trong việc nhận dạng chữ viết,
tiếng nói, tìm kiếm thông tin, dịch tự động, …
- Hệ chuyên gia: là cung cấp các hệ thống có khả năng suy luận từ đó đưa ra
những kết luận. Các hệ chuyên gia có thể xử lý một khối lượng thông tin lớn và cung
cấp các kết luận dựa trên những thông tin đó. Có rất nhiều hệ chuyên gia rất nổi tiếng
như các hệ chuyên gia y học MYCIN, đoán nhận các cấu trúc phân tử từ công thức
hóa học DENDRAL…[5]
1.3. Các bài toán sử dụng trong trí tuệ nhân tạo
1.3.1. Phân nhóm
- Xét theo phương thức học, các thuật toán ML được chia làm bốn nhóm, bao
13
gồm “Học có giám sát” (Supervised Learning), “Học không giám sát” (Unsupervised
Learning), “Học bán giám sát” (hay học kết hợp Semi-Supervised-Learning) cùng
với phương pháp “Học tăng cường” (Reinforcement Learning) trong mạng.
- Học có giám sát (Supervised Learning Algorithms).
Học có giám sát hay còn gọi là học có thầy là thuật toán dự đoán nhãn (label)/đầu
ra (output) của một dữ liệu mới dựa trên tập dữ liệu huấn luyện mà trong đó mỗi mẫu
dữ liệu đều đã được gán nhãn như minh hoạ. Khi đó, thông qua một quá trình huấn
luyện, một mô hình sẽ được xây dựng để cho ra các dự đoán và khi các dự đoán bị
sai thì mô hình này sẽ được tinh chỉnh lại. Việc huấn luyện sẽ tiếp tục cho đến khi
mô hình đạt được mức độ chính xác mong muốn trên dữ liệu huấn luyện. Điều này
cũng giống như khi chúng ta đi học trên lớp, ta biết câu trả lời chính xác từ giáo viên
(tập dữ liệu có nhãn) và từ đó ta sẽ sửa chữa nếu làm sai. Học có giám sát là nhóm có
tính phổ biến nhất trong các thuật toán ML. [6]
Các thuật toán sử dụng trong các bài toán.
Hình 1.4: Thuật toán học có giám sát
Một cách toán học, học có giám sát là khi chúng ra có một tập hợp biến đầu vào $
X={x_1,x_2,…,x_N} $ và một tập hợp nhãn tương ứng $ Y={y_1,y_2,…,y_N} $,
trong đó $ x_i$, $y_i $ là các vector. Các cặp dữ liệu biết trước $( x_i, y_i ) \in X
\times Y $ được gọi là tập dữ liệu huấn luyện (training data). Từ tập dữ liệu trong mô
hình huấn luyện này, chúng ta cần tạo ra một hàm số ánh xạ mỗi phần tử từ tập X khi
đó hàm (xấp xỉ) và tương ứng của tập Y:
yi ≈ f(xi), [∀i=1,2,….,N]
14
Trong hàm yi tương ứng với tập Y là xấp xỉ hàm số $f$ tốt nhất sao cho khi có
tập dữ liệu x mới, chúng ta có thể tính toán được một tập hợp nhãn tương ứng của nó
có hàm là $y=f(x)$.
Ví dụ: Trong nhận dạng chữ số viết tay, ta có ảnh của hàng nghìn trường hợp ứng với
mỗi chữ số được viết bởi nhiều người khác nhau. Phương pháp đưa các bức ảnh này
vào một thuật toán và chỉ cho nó biết “chữ số tương ứng với những bức ảnh nào”.
Sau khi thuật toán tạo ra một mô hình, tức là một hàm số nhận đầu vào là một bức
ảnh và cho ra kết quả là một chữ số. Khi nhận được một bức ảnh mới mà mô hình
“chưa từng gặp qua” và nó sẽ dự đoán xem bức ảnh đó tương ứng với chữ số nào.
Hình 1.5: MNIST bộ cơ sở dữ liệu của chữ số viết tay
(Nguồn: Simple Neural Network implementation in Ruby)
- Phương pháp Unsupervised Learning (Học không giám sát).
Trong thuật toán này, không cho biết được outcome hay nhãn mà chỉ có dữ liệu
đầu vào. Trong thuật toán Unsupervised Learning (Học không giám sát) sẽ dựa vào
cấu trúc của dữ liệu để thực hiện một công việc điển hình nào đó, ví dụ như phân
nhóm (Clustering) hoặc giảm số chiều của dữ liệu (Dimension reduction) để thuận
tiện trong việc lưu trữ và tính toán.
Theo phương pháp toán học, Unsupervised Learning chỉ có dữ liệu đầu
vào X mà không biết nhãn Y tương ứng.
15
Những thuật toán loại này được gọi là học không giám sát vì không giống như
học có giám sát, chúng ta không biết câu trả lời chính xác cho mỗi dữ liệu của đầu
vào. Cụm không giám sát được đặt tên cho nghĩa này. [6]
Hình 1.6: Học không giám sát
- Phương pháp Semi-Supervised Learning (Học bán giám sát).
Các bài toán khi có một lượng lớn dữ liệu là X nhưng chỉ một phần trong chúng
được gán nhãn được gọi là Semi - Supervised Learning. Những dạng bài toán thuộc
loại này nằm giữa hai nhóm bài toán được nêu bên trên.
Một ví dụ điển hình của nhóm này là chỉ có một phần hình ảnh hoặc văn bản
được gán nhãn (ví dụ bức ảnh về con người, động vật hoặc các bài văn bản khoa học,
chính trị) và phần lớn các bức ảnh hoặc văn bản khác chưa được gán nhãn và được
thu thập từ internet. Thực tế cho thấy rất nhiều các bài toán Machine Learning thuộc
nhóm này vì dữ liệu thậm chí cần phải có chuyên gia mới có thể gán nhãn được (ảnh
y học hay nghệ thuật chẳng hạn). Ngược lại, dữ liệu chưa có nhãn có thể được thu
thập với chi phí rất thấp từ internet.
Hình 1.7: Học bán giám sát
- Phương pháp Reinforcement Learning (Học Củng Cố)
Reinforcement Learning là các bài toán giúp cho một hệ thống có thể tự xác
định hành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất (Maximizing the
16
Performance). Hiện tại, Reinforcement Learning chủ yếu được áp dụng vào Lý
Thuyết của Trò Chơi (Game Theory), các thuật toán cần xác định các nước đi tiếp
theo để đạt được điểm số cao nhất. [6]
1.3.2. Phân cụm
Một bài toán phân cụm, phân nhóm toàn bộ dữ liệu X thành các nhóm và cụm
nhỏ dựa trên sự liên quan giữa các dữ liệu trong mỗi nhóm. Chẳng hạn như phân
nhóm khách hàng dựa vào độ tuổi, giới tính. Điều này cũng giống như việc ta đưa
cho một đứa trẻ rất nhiều mảnh ghép với các hình dạng và màu sắc khác nhau, có thể
là tam giác, vuông, tròn với màu xanh, đỏ, tím, vàng, sau đó yêu cầu trẻ phân chúng
thành từng nhóm. Mặc dù ta không dạy trẻ mảnh nào tương ứng với hình nào hoặc
màu nào, nhưng nhiều khả năng trẻ vẫn có thể phân loại các mảnh ghép theo màu sắc
hoặc hình dạng.
1.3.3. Nhận dạng
Các dạng bài toán nhận dạng khuôn mặt một người với số nhiều người trong
một bức ảnh đã được phát triển từ rất lâu. Thời gian đầu, facebook sử dụng các thuật
toán nhận dạng này để chỉ ra các khuôn mặt người trong một bức ảnh và yêu cầu
người dùng tag vào tức gán nhãn cho mỗi khuôn mặt. Số lượng khuôn mặt, tên người
với dữ liệu càng lớn, độ chính xác ở những lần tự động tag tiếp theo sẽ càng lớn [6].
1.4. Thuật toán sử dụng trong hàm
Các thuật toán học có giám sát còn được phân ra thành hai loại chính là phân
lớp (Classification) và hồi quy (Regression).
- Phân lớp
Một bài toán được gọi là phân lớp nếu các nhãn của dữ liệu đầu vào được chia
thành một số hữu hạn lớp (miền giá trị là rời rạc). Chẳng hạn như tính năng xác định
xem một email có phải là spam hay không của Gmail; xác định xem hình ảnh của con
vật là chó hay mèo. Hoặc ví dụ nhận dạng ký số viết tay ở trên cũng thuộc bài toán
phân lớp, bao gồm mười lớp ứng với các số từ 0 đến 9. Tương tự cho ví dụ nhận dạng
khuôn mặt với hai lớp là phải và không phải khuôn mặt, …
- Hồi quy
17
Một bài toán được xem là hồi quy nếu nhãn không được chia thành các nhóm
mà là một giá trị thực cụ thể (miền giá trị là liên tục). Hầu hết các bài toán dự báo
(giá cổ phiếu, giá nhà, …) thường được xếp vào bài toán hồi quy. Ví như, nếu một
căn nhà rộng 150 m2, có 7 phòng và cách trung tâm thành phố 10 km sẽ có giá là bao
nhiêu? Lúc này kết quả dự đoán sẽ là một số thực.
Nếu như phát hiện khuôn mặt là bài toán phân lớp thì dự đoán tuổi là bài toán hồi
quy. Tuy nhiên dự đoán tuổi cũng có thể coi là phân lớp nếu ta cho tuổi là một số
nguyên dương N và khi đó ta sẽ có N lớp khác nhau tính từ 1. Một số thuật toán nổi
tiếng thuộc về nhóm học có giám sát như: [7]
Phân lớp: k-Nearest Neighbors, mạng nơron nhân tạo, SVM, …
Hồi quy: Linear Regression, Logistic Regression, …
- Thuật toán mạng Nơron nhân tạo
Hình 1.8: Thuật toán Nơron nhân tạo
Mạng nơron nhân tạo là các mô hình được lấy cảm hứng từ cấu trúc và chức
năng của mạng lưới thần kinh sinh học. Hình 1.8 minh hoạ cho một mạng truyền
thẳng. Nhóm thuật toán này có thể được sử dụng cho bài toán phân lớp và hồi quy
với rất nhiều biến thể khác nhau cho hầu hết các vấn đề. Tuy nhiên, trong bài viết này
chỉ trình bày các thuật toán cổ điển và phổ biến nhất: [7]
Các thuật toán mạng thần kinh nhân tạo phổ biến nhất là:
Perceptron
Back-Propagation
Hopfield Network
Radial Function Network
18
- Thuật toán dạng Deep Learning.
Thực chất Deep Learning là một bản cập nhật hiện đại cho Artificial Neural
Networks nhằm khai thác khả năng tính toán của máy tính, tuy nhiên vì sự phát triển
lớn mạnh của chúng nên mình tách ra thành một nhóm riêng.
Deep Learning quan tâm đến việc xây dựng các mạng thần kinh lớn hơn, phức
tạp hơn nhiều, và làm sao để khai thác hiệu quả các bộ dữ liệu lớn chứa rất ít dữ liệu
đã được gán nhãn. Hình 1.9 minh hoạ cho ý tưởng của Deep Learning.
Hình 1.9: Thuật toán học sâu
Phương pháp Deep Learning là một bản cập nhật hiện đại cho Mạng nơron
nhân tạo.
Các dạng thuật toán Deep Learning phổ biến nhất là:
Deep Boltzmann Machine (DBM).
Deep Belief Networks (DBN).
Convolutional Neural Network (mạng thần kinh CNN).
Stacked Auto-Encoders.
- Thuật toán giảm kích thước trong hàm
Giống như các phương pháp phân cụm, giảm không gian tìm kiếm và khai thác
cấu trúc vốn có trong dữ liệu nhưng theo cách không giám sát hoặc để tóm tắt hay
mô tả dữ liệu sử dụng ít thông tin hơn là mục tiêu của nhóm phương pháp này. Hình
1.10 minh hoạ cho việc giảm chiều dữ liệu.
Điều này có thể hữu ích để trực quan hóa dữ liệu hoặc đơn giản hóa dữ liệu
mà sau đó có thể được sử dụng trong phương pháp học có giám sát. Nhiều trong số
19
các phương pháp này có thể được điều chỉnh để sử dụng trong phân lớp và hồi quy.
[8].
Hình 1.10: Thuật toán giảm kích thước
Một số phương pháp áp dụng để phân loại và hồi quy như:
Principal Component Analysis (PCA Phân tích thành phần chính).
Principal Component Regression (PCR).
Partial Least Squares Regression (Dạng hồi quy).
Sammon Mapping.
Multidimensional Scaling (MDS).
Projection Pursuit.
Linear Discriminant Analysis (LDA).
Mixture Discriminant Analysis (MDA).
Quadratic Discriminant Analysis (QDA).
Flexible Discriminant Analysis (FDA).
- Dạng Thuật toán tập hợp.
Ensemble Methods là những phương pháp kết hợp các mô hình yếu hơn được huấn
luyện độc lập và phần dự đoán của chúng sẽ được kết hợp theo một cách nào đó để
đưa ra dự đoán tổng thể như minh họa ở Hình 1.11 [6]
20
Hình 1.11: Thuật toán tổng hợp
Boosting.
Bootstrapped Aggregation (Bagging).
AdaBoost.
Stacked Generalization (blending).
Gradient Boosting Machines (GBM).
Gradient Boosted Regression Trees (GBRT).
Random Forest.
Một số dạng thuật toán phổ biến như:
21
CHƯƠNG II.
GIỚI THIỆU VỀ MẠNG NƠRON
2.1. Giới thiệu mạng Nơron
2.1.1. Lịch sử phát triển của mạng Nơron
Cuối thế kỷ 19 đầu thế kỷ 20 sự phát triển chủ đạo chỉ bao gồm những công việc
có sự tham gia của cả ba ngành Tâm lý học, Vật lý học, và thần kinh học, bởi các nhà
khoa học như Ernst Mach, Hermann von Hemholtz, Ivan Pavlov. Các công trình
nghiên cứu của họ đã đi sâu vào lý thuyết tổng quát về học, nhìn, lập luận,..và không
đưa ra các mô hình toán học mô tả hoạt động của các nơron.
Mọi chuyện thực sự mới bắt đầu vào những năm 1940 với công trình của Walter
Pitts và Warren McCulloch. Họ chỉ ra rằng về mặt nguyên tắc, mạng của các nơron
nhân tạo có thể tính toán ra bất kỳ một hàm số học hay giá trị logic nào.
Tiếp theo là Donald Hebb, ông đã có nhiều bài phát biểu cho rằng việc thuyết lập
luận cổ điển như (Pavlov) đưa ra là hiện thực bởi do những thuộc tính đặc trưng của
từng nơron riêng biệt, ông cũng đã tìm ra phương pháp học cho các nơron nhân tạo
khác.
Những ứng dụng thực nghiệm đầu tiên của mạng nơron nhân tạo vào cuối năm 50
cùng với việc phát minh ra hệ thống mạng nhận thức và luật học tương ứng bởi Frank
Rosenblatt. Mạng này chúng có khả năng nhận dạng các mẫu. Điều này đã mở ra rất
nhiều những hy vọng cho việc nghiên cứu mạng nơron. Tuy nhiên nó có nhiều hạn
chế là chỉ có thể giải quyết được một số lớp hữu hạn các bài toán.
Cùng thời gian đó, Marcian Hoff và Bernard Widrow đã đưa ra một dạng thuật
toán học mới và sử dụng nó để huấn luyện cho các hệ thống mạng nơron tuyến tính
thích nghi, hệ thống mạng có cấu trúc và chức năng tương tự như mạng của
Rosenblatt. Luật học Widrow – Hoff vẫn còn được sử dụng phổ biến cho đến ngày
nay.
Tuy nhiên cả Rosenblatt và Widrow – Hoff đều vấp phải một vấn đề do Seymour
22
Papert và Marvin Minsky phát hiện ra, đó là các mạng nhận thức nó chỉ có khả năng
giải quyết được các dạng bài toán tuyến tính. Họ đã rất cố gắng cải tiến phương pháp
luật học và mạng để có thể vượt qua được hạn chế này nhưng họ đã không thành công
trong việc cải tiến để có thể huấn luyện được mạng có cấu trúc phức tạp hơn.
Do những kết quả của Minsky Papert nên việc nghiên cứu về hệ thống mạng nơron
gần như bị dừng lại trong suốt một thập kỷ 70 do nguyên nhân là không thể có được
các máy tính có đủ chức năng và mạnh để có thể thực nghiệm.
Mặc dù vậy, Minsky Papert vẫn có một vài phát kiến quan trọng vào những năm
70. Năm 1972, James anderson và Teuvo Kohonen độc lập nhau phát triển một loại
mạng mới có thể hoạt động như một bộ nhớ. Stephen Grossberg cũng rất tích cực
trong việc khảo sát các hệ thống mạng tự tổ chức.
Vào những năm 80, việc nghiên cứu mạng nơron phát triển rất mạnh cùng với sự ra
đời của máy tính để bàn. Có hai khái niệm mới liên quan đến sự kiện này, đó là:
- Việc sử dụng một số phương pháp thống kê này để giải thích hoạt động của một
lớp các hệ thống mạng hồi qui có thể được dùng như một bộ nhớ liên kết trong
công trình nghiên cứu của nhà vật lý học John Hopfield.
- Sự ra đời của thuật toán lan truyền ngược giúp huấn luyện các hệ thống mạng
nhiều lớp được một số nhà khoa học nghiên cứu độc lập tìm ra như: James Mc
Celland, David Rumelhart,….đó cũng là câu trả lời cho Minsky-Papert [9].
2.1.2. Ứng dụng
Trong quá trình hình thành phát triển, hệ thống mạng nơron đã được ứng dụng
trong rất nhiều lĩnh vực chẳng hạn như:
- Tài chính: cho vay, kiểm tra tài sản cầm cố, dự báo giá bất động sản, phân tích
đường tín dụng, đánh giá mức độ hợp tác, phân tích tài chính liên doanh, chương trình
thương mại qua giấy tờ, dự báo tỷ giá tiền tệ.
- Ngân hàng: tính tiền của thẻ tín dụng, bộ đọc séc và các tài liệu.
23
- Giải trí: các hiệu ứng đặc biệt, hoạt hình.
- Bảo hiểm: đã tối ưu hoá được các sản phẩm, đánh giá việc áp dụng chính sách mới
cải tiến hơn.
- Điện tử: Dự đoán sơ đồ mạch điện, cảnh báo mức nhiệt trong quá trình hoạt động
của chíp, điều khiển tiến trình, nhận dạng tiếng nói, mô hình phi tuyến.
- Quốc phòng và an ninh: tìm mục tiêu, xác định vị trí của vũ khí, nhận dạng nét
mặt, các bộ cảm biến thế hệ mới, xử lý ảnh radar…
- Tự động hóa: mô hình dự đoán hoạt động của động cơ, các hệ thống dẫn đường tự
động cho ô tô...
- Hàng không: hệ thống lái tự động, phi công tự động, giả lập đường bay, bộ phát
hiện lỗi.
2.1.3. Căn nguyên sinh học của mạng
Bộ não của con người chứa khoảng 1011 các phần tử liên kết chặt chẽ với nhau
(khoảng 104 liên kết đối với mỗi phần tử) gọi là các nơron. Dưới con mắt của những
người nghiên cứu tin học, một nơron được cấu tạo bởi các thành phần: tế bào hình
cây (dendrite) - tế bào thân (cell body) và sợi trục thần kinh (axon). Tế báo hình cây
có nhiệm vụ mang các tín hiệu điện tới tế bào thân, tế bào thân sẽ thực hiện gộp và
phân ngưỡng các tín hiệu đến. Sợi trục của thần kinh làm nhiệm vụ đưa tín hiệu từ tế
bào thân ra bên ngoài.
Điểm tiếp xúc giữa một sợi trục thần kinh của nơron này và tế bào hình cây của
một nơron khác được gọi là khớp thần kinh (synapse). Sự sắp xếp của các nơron và
mức độ mạnh yếu của các khớp thần kinh được quyết định bởi các quá trình hoá học
rất phức tạp, sẽ thiết lập những chức năng của hệ thống mạng nơron.
Một số ít nơron có sẵn từ khi được sinh ra, cho đến các phần khác được phát triển
thông qua việc học, ở đó có sự thiết lập rất nhiều liên kết mới và loại bỏ các liên kết
24
cũ.
Cấu trúc của mạng nơron sẽ luôn luôn phát triển. Các thay đổi sau này có khả năng
chủ yếu là việc làm tăng hay giảm độ mạnh của các kiểu liên kết thông qua các khớp
của hệ thần kinh hệ thống.
Hệ thống mạng nơron nhân tạo khó tiếp cận đến sự phức tạp của bộ não. Mặc dù
vậy, có hai sự tương quan cơ bản giữa hệ thống mạng nơron nhân tạo và sinh học.
Thứ nhất, cấu trúc khối tạo thành chúng đều là các thiết bị tính toán rất đơn giản, được
liên kết rất chặt chẽ với nhau. Thứ hai, các liên kết giữa các nơron quyết định chức
năng của hệ thống mạng. [10]
Cần chú ý rằng dù cho mạng nơron sinh học hoạt động chậm so với các linh kiện
điện tử (10-3 giây so với 10-9 giây), nhưng bộ não của chúng có khả năng thực hiện
nhiều công việc nhanh hơn nhiều so với các máy tính thông thường. Đó là một phần
do cấu trúc song song của mạng nơron sinh học: toàn bộ hệ thống nơron hoạt động
một cách đồng thời tại một thời điểm. Mạng nơron nhân tạo cũng chia sẻ những đặc
điểm này. Mặc dù hiện nay, các hệ thống mạng nơron chủ yếu được thực nghiệm trên
rất nhiều máy tính số, nhưng cấu trúc song song của chúng khiến chúng ta có thể thấy
cấu trúc phù hợp nhất là thực nghiệm chúng trên hệ thống vi mạch tích hợp lớn, các
thiết bị quang và các bộ xử lý song song [9].
2.2. Nơron nhân tạo
Thông thường một nơron nhân tạo (Hình 2.1), được gọi là nút hay đơn vị xử
lý, nó thực hiện một chức năng: nhận tín hiệu vào từ nguồn bên ngoài hay các đơn vị
phía trước và nó tính tín hiệu ra từ các tín hiệu vào từ đó lan truyền sang các đơn vị
khác.
25
Hình 2.1: Đơn vị xử lý tín hiệu thứ j.
Tại đây:
xi: là các đầu vào của tín hiệu.
wji: các trọng số tương ứng với tín hiệu các đầu vào.
: ngưỡng của nơron mạng thứ j.
aj: tổng đầu vào của tín hiệu nơron thứ j
zj: đầu ra tín hiệu của nơron thứ j.
g(aj): hàm chuyển (hàm kích hoạt).
Một nơron trong mạng có thể có rất nhiều đầu vào (x1, x2...xn) nhưng chỉ có một đầu
ra zj. Đầu vào của một nơron có thể là từ bên ngoài hệ thống mạng, hoặc đầu ra của
một nơron khác, hay là đầu ra của chính nó [9].
Trong mạng nơron có ba kiểu nơron:
Nơron đầu vào, khi hoạt động chúng nhận tín hiệu từ bên ngoài.
Nơron ẩn, hệ thống tín hiệu vào và ra của nó nằm trong mạng.
Nơron đầu ra, gửi tín hiệu ra bên ngoài khi hoạt động.
26
Hình 2.2: Mô hình mạng Nơron nhân tạo
2.3. Hàm xử lý.
2.3.1. Hàm kết hợp.
Hàm kết hợp là sự kết hợp nhiều giá trị đưa vào nơron thông qua các liên kết truyền
tới các nơron khác, xuất ra một giá trị gọi là net Input. Tổng đầu vào nơron j là trọng
số của các đầu ra từ các nơron cộng một thêm ngưỡng :
𝑛 ∑ 𝑤𝑗𝑖𝑥𝑖 𝑖=0
+ 𝜃𝑗
Nếu wji >0 nơron được coi là ở trạng thái kích thích. Nếu wji<0 nơron được coi là ở
trạng thái kiềm chế. [10]
2.3.2. Hàm kích hoạt của mạng (hàm chuyển)
Khi hoạt động hàm kích hoạt thực hiện quá trình biến đổi giá trị đầu vào aj thành
giá trị đầu ra zj được thực hiện bởi hàm kích hoạt zj =g(aj). Với phương pháp như vậy
thì hàm thường bị ép vào một khoảng giá trị xác định. Các hàm kích hoạt thường
xuyên được sử dụng là:
2.3.2.1. Hàm tuyến tính (Linear function):
Các hàm kích hoạt tuyến tính là các phương trình toán học xác định đầu ra của
mạng nơron. Hàm được gắn với mỗi nơron trong mạng và xác định xem nó có nên
27
được kích hoạt hay không, dựa trên việc đầu vào của mỗi nơron có liên quan đến dự
đoán của mô hình không. Các chức năng kích hoạt tuyến tính cũng giúp chuẩn hóa
đầu ra của mỗi nơron trong phạm vi từ 1 đến 0 hoặc từ -1 đến 1.
Một khía cạnh bổ sung của các hàm kích hoạt tuyến tính là chúng phải hiệu quả
về mặt tính toán vì chúng được tính toán trên hàng nghìn hoặc thậm chí hàng triệu
nơron cho mỗi mẫu dữ liệu. Các mạng nơron hiện đại sử dụng một kỹ thuật được gọi
là lan truyền ngược để huấn luyện mô hình, điều này đặt ra sự căng thẳng tính toán
gia tăng lên hàm kích hoạt và hàm đạo hàm của nó. [11]
g(x)=x
Hình 2.3: Hàm tuyến tính d trong mạng (Linear function)
2.3.2.2. Hàm ranh giới cứng trong mạng (Hard limiter function).
Hàm này nhận 2 giá trị là 0 và 1.
𝑔(𝑥) = { 1 𝑖𝑓(𝑥 ≥ 0) 0 𝑖𝑓(𝑥 < 0)
Trong hình sau θ được lựa chọn bằng 0
Hình 2.4: Hàm ranh giới cứng e trên x.
2.3.2.3.Hàm Sigmoid (Sigmoid function)
28
𝑔(𝑥) = 1 1 + 𝑒−𝑥
Hàm này rất thuận lợi khi được sử dụng cho các hệ thống mạng được huấn luyện
bằng thuật toán Lan truyền ngược BP, bởi lẽ nó dễ lấy đạo hàm, do nó có thể giảm
rất nhiều tính toán trong quá trình huấn luyện. Hàm này được ứng dụng cho các bài
toán mà các đầu ra được xác định rơi vào khoảng [0,1].
Hình 2.5: Hàm – Sigmoid
2.3.2.4. Hàm Sigmoid lưỡng cực(Bipolar Sigmoid function)
Hàm này có các tính chất đặc trưng tương tự hàm Sigmoid. Nhưng chúng được
ứng dụng cho các bài toán có đầu ra mong muốn và xác định rơi vào khoảng [-1,1]
𝑔(𝑥) = 1 − 𝑒−𝑥 1 + 𝑒−𝑥
Hình 2.6: Hàm Sigmoid lưỡng cực g(x)
Hàm kích hoạt của các nơron ẩn là rất cần thiết để biểu diễn sự phi tuyến vào trong
hệ thống mạng. Đây là tập hợp của các hàm đồng nhất sẽ là một hàm đồng nhất. Vì
vậy chúng mang tính chất phi tuyến làm cho các mạng nhiều lớp có khả năng biểu
diễn các ánh xạ phi tuyến rất tốt. Tuy nhiên trong phương pháp lan truyền ngược,
hàm phải khả vi và thiết thực nếu hàm được gắn trong một khoảng nào đó. Do vậy
hàm Sigmoid có thể là một lựa chọn phổ biến nhất.
29
Hàm kích hoạt của các nơron đầu ra được lựa chọn sao cho phù hợp với sự phân
phối của các giá trị đích mong muốn. [10]
2.3.2.5. Hàm TanH
Hàm nhận đầu vào là một số thực và chuyển thành một giá trị trong khoảng (-1;
1). Cũng như Sigmoid, hàm Tanh bị bão hoà ở 2 đầu (gradient thay đổi rất ít ở 2 đầu).
Tuy nhiên hàm Tanh lại đối xứng qua 0 nên khắc phục được một nhược điểm của
Sigmoid. [12]
Hàm còn có thể được biểu diễn bằng hàm sigmoid như sau:
Hình 2.7: Hàm TanH
Công thức:
tanh(𝑥) = 𝑒 𝑥 − 𝑒−𝑥 𝑒 𝑥 + 𝑒−𝑥
2.3.2.6. Hàm ReLU
Hàm ReLU đang được sử dụng khá nhiều trong những năm gần đây khi huấn
luyện các mạng nơron. ReLU đơn giản lọc các giá trị < 0. Nhìn vào công thức chúng
ta dễ dàng hiểu được cách hoạt động của nó. Một số ưu điểm khá vượt trội của nó so
với Sigmoid và Tanh:
- Tốc độ hội tụ nhanh hơn hẳn. ReLU có tốc độ hội tụ nhanh gấp 6 lần Tanh
(Krizhevsky et al.). Điều này có thể do ReLU không bị bão hoà ở 2 đầu như Sigmoid
và Tanh.
- Các bước tính toán với tốc độ nhanh. Tanh và Sigmoid sử dụng hàm exp và
30
công thức phức tạp hơn ReLU rất nhiều do vậy sẽ tốn nhiều chi phí hơn để tính toán.
- Tuy nhiên ReLU cũng có một nhược điểm: Với các node có giá trị nhỏ hơn
0, qua ReLU activation sẽ thành 0, hiện tượng đấy gọi là “Dying ReLU”. Nếu các
node bị chuyển thành 0 thì sẽ không có ý nghĩa với bước linear activation ở lớp tiếp
theo và các hệ số tương ứng từ node đấy cũng không được cập nhật với gradient
descent. Đó là lý do Leaky ReLU ra đời.
- Khi Learning rate lớn, các trọng số (weights) có thể thay đổi theo cách làm
tất cả nơron dừng việc cập nhật.
Hình 2.8: Đồ thị hàm ReLU.
Công thức của hàm:
𝑓(𝑥) = 1(𝑥 < 0)(∝ 𝑥) + 1(𝑥 ≥ 0)(𝑥)
Với α là hằng số rất nhỏ. [12]
2.3.2.6. Hàm Leaky ReLU
Leaky ReLU là một cố gắng trong việc loại bỏ "dying ReLU". Thay vì trả về
giá trị 0 với các đầu vào <0 thì Leaky ReLU tạo ra một đường xiên có độ dốc nhỏ
(xem đồ thị). Có nhiều báo cáo về việc hiệu Leaky ReLU có hiệu quả tốt hơn ReLU,
nhưng hiệu quả này vẫn chưa rõ ràng và nhất quán.
Ngoài Leaky ReLU có một biến thể cũng khá nổi tiếng của ReLU là PReLU. PReLU
tương tự Leaky ReLU nhưng cho phép nơron tự động chọn hệ số tốt nhất.
31
Hình 2.9: Đồ thị hàm Leaky ReLU
Công thức hàm:
𝑓(𝑥) = 1(𝑥 < 0)(∝ 𝑥) + 1(𝑥 ≥ 0)(𝑥)
2.3.2.7. Hàm Softmax
Để mô hình chạy tốt cần có một mô hình với xác suất sao cho với mỗi Input x
khi đó ai thể hiện xác suất để input đó rơi vào class i. Vậy để điều kiện cần là
các ai dương và tổng của chúng phải bằng 1. Để thỏa mãn được điều kiện này, chúng
ta cần nhìn vào mọi giá trị zi và dựa trên quan hệ giữa các zi này để tính toán giá trị
𝑇X càng lớn thì xác suất dữ liệu được rơi
của ai. Ngoài các điều kiện ai lớn hơn 0 và có tổng bằng 1, chúng ta sẽ thêm một điều
kiện rất tự nhiên nữa, đó là: giá trị Zj = 𝑊𝑡
vào class i càng cao. Điều kiện cuối này chỉ ra rằng chúng ta đang cần một hàm đồng
biến ở đây.
i.
Chú ý rằng zi có thể nhận các giá trị cả âm và dương. Một hàm số hoạt động tốt đơn
giản có thể biến zi thành một giá trị dương, và hơn nữa đồng biến là hàm exp(zi)= ez
Điều kiện mô hình chạy tốt hơn trong việc tính đạo hàm sau này. Điều kiện cuối cùng,
exp(𝑧𝑖)
tổng các ai bằng 1 có thể được tốt hơn nếu:
∑
exp(𝑧𝑗)
𝐶 𝑗=1
, (I =1,2,3,…,C) 𝑎𝑖 =
Khi thực hiện tính toán đối với hàm số này, tính tất cả các 𝑎𝑖 dựa vào tất cả các zi, thỏa mãn hết điều kiện đã xét: tổng bằng 1 giữ được thứ tự của zi. Hàm số này trong
hệ thống mạng được gọi là Softmax Function. [13]
32
Hình 2.10: Mô hình Softmax Regression dưới dạng Neural network
2.4. Cấu trúc của mạng nơron.
Cấu trúc của mạng nơron được xác định bởi: số lớp, số nơron trên mỗi lớp, và sự
liên kết giữa các nơron. Dựa trên một số cách thức liên kết các nơron mà người ta
chia làm hai loại [14].
2.4.1. Phương pháp mạng truyền thẳng.
Dòng dữ liệu từ nơron đầu vào đến nơron đầu ra chỉ được truyền thẳng. Không có
các liên kết từ nơron đầu ra đến các nơron đầu vào trong cùng một lớp hay của các
lớp trước nó. [14]
33
Hình 2.11: Mạng nơron truyền thẳng nhiều lớp h
2.4.2. Mạng hồi qui
Có chứa các liên kết ngược, nghĩa là các nơron của lớp ra tới nơron của lớp vào
trong cùng một lớp hoặc các lớp trước nó.
Hình 2.12: Mạng hồi qui i
2.4.3. Luật học
Luật học đóng một vai trò không thể thiếu trong hệ thống mạng nơron nó được
dùng để điều chỉnh các trọng số để hệ thống mạng nhận biết được quan hệ giữa đầu
34
vào và đích đến mong muốn. Các nhà khoa học đã có rất nhiều thuật toán đã
được phát minh để tìm ra tập trọng số tối ưu làm bài giải cho các bài toán. Các thuật
toán đó được chia làm hai nhóm chính: học có giám sát và học không có giám sát
[12].
• Học có giám sát: Mạng được huấn luyện dựa trên dữ liệu của các tập ví dụ huấn
luyện (các cặp mẫu đầu vào x và đầu ra mong muốn t). Sự khác nhau giữa đầu ra
mong muốn với đầu ra thực tế được thuật toán sử dụng nhiều để điều chỉnh các trọng
số. Điều này thường được đưa về dạng một bài toán xấp xỉ hàm số, cho dữ liệu huấn
luyện, mục đích là tìm ra hàm f(x) để thoả mãn tất cả các tập mẫu đầu vào [14].
Ra
Hình 2.13: Mô hình học có giám sát j
• Hàm học không có giám sát
Với phương pháp học không có giám sát không có những phản hồi từ môi trường
để chỉ ra rằng đầu ra của mạng là đúng hoặc sai. Mạng sẽ phải khám phá các thông
số đặc trưng, các điều chỉnh, các mối tương quan, hay các lớp trong một tập dữ liệu
vào một cách tự động. Trong thực tế, 1 phần rất lớn các biến thể của học không có
giám sát, các đích và đầu vào giống nhau. Nói cách khác, học không có giám sát luôn
35
luôn thực hiện một hoặc nhiều công việc tương tự như một mạng tự liên hợp, cô đọng
thông tin từ dữ liệu vào.
2.4.4. Hàm mục tiêu
Để huấn luyện một hệ thống mạng và xét xem nó thực hiện tốt đến đâu, ta cần xây
dựng một số hàm mục tiêu để cung cấp các cách đánh giá khả năng của hệ thống.
Việc chọn hàm mục tiêu là rất không thể thiếu bởi vì hàm này thể hiện các mục tiêu
thiết kế và các yếu tố quyết định thuật toán huấn luyện nào có thể được sử dụng. Cần
phải xây dựng được một hàm mục tiêu đo được độ chính xác cái chúng ta muốn không
phải là việc dễ dàng và đơn giản. Trong rất nhiều những hàm cơ bản được sử dụng
𝑄
rộng rãi là hàm tổng bình phương lỗi Sum of Squares error Function.
𝑁 ∑ ∑(𝑡𝑞𝑖 𝑞=1 𝑖=1
𝐸 = − 𝑦𝑞𝑖)2 1 𝑁𝑄
Ở đây:
Q: được xem là số ví dụ trong tập ví dụ huấn luyện N: số đơn vị của đầu ra.
tqi: dùng để chỉ đơn vị đầu ra mong muốn của nơron ra i trên ví dụ thứ q
yqi: là đơn vị đầu ra thực tế của nơron ra i trên ví dụ thứ q [14].
2.5 Huấn luyện mạng Nơron
Khái niệm: Học là quá trình tiếp thu hành vi của các vật theo một cách nào đó
làm cho chúng có khả năng thực hiện tốt hơn trong tương lai. Một hệ thống mạng
nơron được huấn luyện làm cho với một tập các vector đầu vào X, hệ thống mạng đó
có khả năng tạo ra tập các vector đầu ra mong muốn Y của nó. Tập X được sử dụng
cho việc huấn luyện mạng được gọi là tập huấn luyện (training set). Các phần tử x
thuộc X được gọi là các mẫu đã huấn luyện (Training Example). Quá trình huấn luyện
được xem là bản chất là sự thay đổi các trọng số liên kết của mạng. Trong quá trình
này, các trọng số của hệ thống mạng sẽ hội tụ dần tới các giá trị sao cho với mỗi
vector đầu vào x từ tập được huấn luyện, mạng sẽ cho ra nhiều vector đầu ra y như
mong muốn.
36
Chúng ta thường sử dụng một trong ba phương pháp học phổ biến là học không
giám sát (Unsupervised Learning), học có giám sát (Supervised Learning), và học
tăng cường (Reinforcement Learning): [10]
2.5.1. Phương pháp mạng Nơron truyền thẳng
2.5.1.1. Các kiến trúc cơ bản
Kiến trúc mạng truyền thẳng nhiều lớp là kiến trúc chủ yếu của các hệ thống mạng
nơron hiện tại. Có thể có khá nhiều biến đổi nhưng tính chất đặc trưng của kiến trúc
này là cấu trúc và thuật toán học là dễ dàng và nhanh (Masters 1993).
Phương pháp mạng truyền thẳng nhiều lớp bao gồm một lớp vào, một hoặc rất
nhiều lớp ẩn và một lớp ra. Các nơron đầu vào thực chất không phải là nơron theo
đúng nghĩa, bởi vì chúng không thể thực hiện bất kỳ một tính toán nào trên dữ liệu
vào, đơn giản nó chỉ tiếp nhận các dữ liệu vào và chuyển tiếp cho các lớp kế tiếp. Các
nơron ở lớp ẩn và lớp ra mới thực sự thực hiện các tính toán, kết quả được định dạng
bởi hàm kích hoạt của nơron đầu ra.
Hình 2.14: Mạng nơron truyền thẳng nhiều lớp k
Ở đây:
P: được xem là ma trận đầu vào(R hàng, 1 cột).
Wi: đại diện cho ma trận trọng số của các nơron lớp thứ i
bi: tương ứng với ma trận độ lệch của lớp thứ i.
37
ni: là tổng liên kết đầu vào (Net Input).
fi: là hàm kích hoạt của lớp thứ i ai: ma trận đầu ra của lớp thứ i.
⊕: Hàm tính tổng liên kết đầu vào của mạng.
Mỗi một liên kết gắn với một trọng số trong hàm, trọng số này được điều chỉnh
trong quá trình tín hiệu đi qua liên kết đó. Trọng số dương là cách thể hiện trạng thái
kích thích, các trọng số âm là cách thể hiện trạng thái kiềm chế. Mỗi nơron tính toán
mức kích hoạt của chúng bằng cách lấy tổng các đầu vào và đưa đến các hàm kích
hoạt. Khi tất cả các nơron trong một lớp mạng cụ thể đã tính toán xong đầu ra thì lớp
kế tiếp có thể bắt đầu thực hiện, bởi vì đầu ra của lớp hiện tại chính là đầu vào của
lớp kế tiếp. Khi tất cả các nơron của mạng đã thực hiện xong tính toán thì đầu ra của
nơron lớp ra là kết quả của mạng. Tuy nhiên, có thể chưa là kết quả mong muốn, khi
đó ta cần điều chỉnh các trọng số bằng cách áp dụng một thuật toán huấn luyện [10]
Mạng có nhiều lớp có khả năng thực hiện tốt hơn là các mạng chỉ có một lớp,
chẳng hạn như việc sử dụng mạng hai lớp với lớp thứ nhất sử dụng hàm Sigmoid và
lớp thứ hai sử dụng hàm tuyến tính ta có thể áp dụng để xấp xỉ các hàm toán học tốt,
trong khi các mạng chỉ có một lớp thì không thực hiện được khả năng này
Chẳng hạn, đầu ra của lớp thứ 2 là:
a2=f2(n2)=f2(a1*W2+b2) =f2(W2(f1(PW1+b1))+b2)
2.5.1.2. Khả năng biểu diễn
Mạng một lớp có khả năng biểu diễn các hàm tách được tuyến tính, chẳng hạn hàm
logic AND có thể phân chia được bằng một đường thẳng trong khi miền giá trị của
hàm XOR thì không.
Mạng có hai lớp ẩn có được khả năng biểu diễn một đường phân chia tuỳ thích với
một độ chính xác bất kỳ với các hàm kích hoạt phân ngưỡng và có được xấp xỉ bất
kỳ ánh xạ mịn nào với độ chính xác với bất kỳ với các hàm kích hoạt có dạng Sigmoid.
Mạng có một lớp ẩn có thể đạt xấp xỉ tốt bất kỳ một ánh xạ liên tục nào từ một
không gian này sang một không gian khác, chỉ cần cung cấp đủ số nơron trong lớp
38
ẩn.
2.5.2. Số lớp ẩn
Về mặt lý thuyết, các mạng có hai lớp ẩn có thể biểu diễn các hàm với dáng điệu bất
kỳ, nên không có lý do nào sử dụng mạng có nhiều hơn hai lớp ẩn. Người ta đã xác định
được rằng đối với rất nhiều các bài toán cụ thể, chỉ cần sử dụng một lớp ẩn là đủ. Các
bài toán khi sử dụng hai lớp ẩn hiếm khi xảy ra trong thực tế. Việc huấn luyện mạng
thường rất chậm khi sử dụng nhiều lớp ẩn. Bởi lẽ:
Phần lớn các thuật toán huấn luyện hệ thống mạng cho các mạng nơron truyền
thẳng đều dựa trên phương pháp phổ biến là gradient. Các lớp thêm vào sẽ thêm việc
phải lan truyền các lỗi làm cho véc tơ gradient rất không ổn định. Sự thành công của
bất kỳ một thuật toán tối ưu theo phương pháp gradient đều phụ thuộc vào độ không
thay đổi của hướng khi mà các tham số thay đổi.
Số các cực trị địa phương luôn tăng lên rất lớn khi có nhiều lớp ẩn. Đa số các thuật
toán dựa trên phương pháp tối ưu là gradient giúp tìm ra được các cực trị địa phương,
do vậy chúng khó có thể tìm ra cực trị toàn cục. Mặc dù thuật toán sử dụng phương
pháp huấn luyện mạng có thể tìm ra cực trị toàn cục, nhưng xác suất là khá cao chúng
ta sẽ bị tắc trong một cực trị địa phương.
Tuy nhiên, có thể đối với một số bài toán cụ thể, sử dụng một hoặc nhiều lớp ẩn
với số ít nơron thì tốt nhất là sử dụng ít lớp ẩn với số nơron là lớn, đặc biệt đối các
mạng cần phải học được các hàm không liên tục. Xét về mặt tổng thể người ta cho
rằng ban đầu là chỉ cho mạng có duy nhất một lớp ẩn. Nếu dùng một lớp ẩn với một
số lượng lớn các nơron mà không có hiệu quả thì chúng ta nên sử dụng thêm một lớp
ẩn nữa với một số ít các nơron.[10]
2.5.3. Số nơron trong lớp ẩn
Vấn đề quan trọng trong thiết kế một mạng là mỗi tầng cần có bao nhiêu nơron. Số
nơron trong mỗi lớp quá ít có thể dẫn đến việc không thể nhận dạng được tín hiệu
đầy đủ trong một tập dữ liệu có nhiều mối quan hệ, hay thiếu ăn khớp. Sử dụng quá
39
nhiều nơron sẽ tăng thời gian luyện mạng, có lẽ là quá nhiều để luyện khi mà không
thể luyện mạng trong một thời gian hợp lý. Số lượng lớn các nơron có thể dẫn đến
tình trạng quá khớp, trong trường hợp này mạng có quá nhiều thông tin, hoặc lượng
thông tin trong tập ví dụ huấn luyện không đủ các dữ liệu đặc trưng để huấn luyện
mạng.
Số lượng thích hợp các nơron ẩn phụ thuộc vào rất nhiều yếu tố như: số đầu vào, số
đầu ra của mạng, số trường hợp trong tập mẫu, độ nhiễu của dữ liệu đích, độ phức
tạp của hàm lỗi, kiến trúc mạng và thuật toán luyện mạng.
Có rất nhiều luật để lựa chọn số nơron trong các lớp ẩn, chẳng hạn: m∈ [t,n]: giữa
2(𝑡+𝑛)
khoảng kích thước lớp vào, lớp ra
3
𝑚 = ∶ 2 3⁄ : tổng kích thước lớp vào và lớp ra
m < 2t: nhỏ hơn hai lần kích thước lớp vào
𝑚 = √𝑡. 𝑛 : căn bậc hai của tích kích thước lớp vào và lớp ra
Các luật này chỉ được coi như là các lựa chọn thô khi chọn lựa kích thước của các
lớp. Chúng sẽ không phản ánh được thực tế, bởi vì chúng chỉ xem xét đến nhân tố là
kích thước đầu vào, đầu ra mà có thể bỏ qua các nhân tố quan trọng khác như: độ
nhiễu ở các đầu ra mong muốn, số trường hợp đưa vào huấn luyện, kiến trúc của
mạng và thuật toán học, độ phức tạp của hàm lỗi.
Trong phần lớn các trường hợp, không có một cách để có thể dễ dàng xác định
được số tối ưu các đơn vị trong lớp ẩn mà cách tốt nhất là dùng phương pháp Thử -
Sai. Trong thực tế có thể lựa chọn phương pháp Lựa chọn tiến hay Lựa chọn lùi để
xác định số đơn vị trong lớp ẩn.
Lựa chọn đến bước tiếp theo bắt đầu với việc chọn một luật hợp lý cho việc đánh
giá khả năng của mạng. Sau đó, ta chọn một số lượng nhỏ các nơron ẩn, luyện và thử
mạng, ghi lại kết quả của mạng. Tiếp theo tăng một số ít các nơron ẩn, luyện và thử
lại cho đến khi lỗi ít và có thể là chấp nhận được, hoặc không có tiến triển đáng kể so
với trước.
40
Ngược lại, Lựa chọn lùi bắt đầu với một số lớn nơron trong lớp ẩn, sau đó giảm
dần. Quá trình này rất mất thời gian nhưng sẽ giúp ta tìm được số lượng nơron phù
hợp cho lớp ẩn. [10]
2.6. Thuật toán lan truyền ngược (Back-Propagation Algorithm)
Phần này mô tả thuật toán học sử dụng để điều chỉnh hiệu năng của mạng sao cho
mạng có khả năng sinh ra được các kết quả mong muốn.
Hệ thống mạng nơron truyền thẳng có nhiều lớp được huấn luyện bằng phương
pháp học có giám sát. Phương pháp này về căn bản là dựa trên việc yêu cầu mạng
thực hiện những chức năng của nó và sau đó hiển thị kết quả, cùng với kết quả này
với các đầu ra có kết quả tốt để điều chỉnh các tham số của mạng.
Về căn bản, thuật toán lan truyền ngược là dạng tổng quát của thuật toán trung
bình bình phương tối thiếu (Least Means Square - LMS) bởi lẽ nó cùng sử dụng kỹ
thuật giảm theo hướng véctơ gradient nhưng với độ phức tạp của hàm lỗi lớn hơn.
Thuật toán này là thuật toán xấp xỉ để tìm được các điểm mà tại đó hiệu quả của mạng
là tối ưu. Chỉ số tối ưu (Performance Index) thông thường được xác định bởi một hàm
số của ma trận trọng số và các đầu vào nào đó mà trong quá trình yêu cầu bài toán
đưa ra [10].
2.6.1. Phương pháp mô tả thuật toán
Ta sẽ sử dụng dạng tổng quát của mạng nơron truyền thẳng nhiều lớp khi đó đầu ra
của một lớp trở thành đầu vào của lớp kế tiếp:
am+1=fm+1(Wm+1am+bm+1) với m=0,1,. .. M-1
Ở đây M là số lớp trong mạng, các nơron lớp thứ nhất nhận tín hiệu từ bên ngoài:
a0=p đầu ra của lớp cuối cùng là đầu ra của mạng
a=am
2.6.1.1. Chỉ số hiệu năng (performance index)
Phương pháp sử dụng thuật toán lan truyền ngược được sử dụng chỉ số hiệu năng
41
là trung bình, bình phương lỗi của đầu ra so với giá trị đích. Đầu vào của mạng là tập
ví dụ huấn luyện:
{(p1,t1), (p2,t2),. ... (pq,tq)}
ở đây pi là đầu vào và ti là đầu ra đích tương ứng (với i=1,2,. q). Mỗi đầu vào đưa
vào mạng, sau khi tính toán cho đầu ra, đầu ra này được đem so sánh với đầu ra mong
muốn. Thuật toán được điều chỉnh các tham số của hệ thống mạng để tối thiểu trung
bình, bình phương lỗi:
F(x) = E|e2| = E|(t-a)2|
ở đây x là hệ số biến được tạo ra bởi các trọng số và độ lệch, E là ký hiệu kỳ vọng
toán học. Nếu như một hệ thống mạng có rất nhiều đầu ra, ta có thể viết lại phương
trình trên ở dạng ma trận như sau:
𝐹(𝑥) = 𝐸|𝑒𝑇 𝑒| = 𝐸|(𝑡 − 𝑎)𝑇(𝑡 − 𝑎)|
Ký hiệu 𝐹̂(𝑥) là giá trị xấp xỉ của F(x) thì ta có xấp xỉ của trung bình bình phương lỗi
như sau:
𝐹̂(𝑥) = (𝑡(𝑘) − 𝑎(𝑘))𝑇(𝑡(𝑘) − 𝑎(𝑘)) = 𝑒𝑇(𝑘)𝑒(𝑘)
Trong đó kỳ vọng toán học của bình phương lỗi được thay bởi bình phương lỗi tại
bước thứ k.
𝑚(𝑘)−∝
Thuật toán giảm theo hướng cho trung bình bình phương lỗi xấp xỉ là:
𝑚(𝑘 + 1) = 𝑤𝑗𝑖
𝑚 (1)
𝑚(𝑘)−∝
𝑚(𝑘 + 1) = 𝑏𝑗 𝑏𝑗
𝑤𝑗𝑖 𝜕𝐹̂ 𝑤𝑗𝑖
𝜕𝐹̂ 𝑚 (2) 𝑏𝑗
ở đây α là hệ số học. [16]
2.6.1.2. Luật xích (Chain Rule)
Đối với mạng nơron truyền thẳng nhiều lớp, lỗi không chỉ là một hàm của chỉ
các trọng số trong lớp ẩn, do vậy việc tính các đạo hàm từng phần này là không đơn
giản. Vì vậy mà ta phải sử dụng luật xích để tính. Luật này được mô tả như sau:
42
Giả sử ta có f là hàm của biến n, ta muốn đạo hàm của f có liên quan đến một biến w
khác, luật xích này như sau: [5]
= . 𝑑𝑓(𝑛(𝑤)) 𝑑𝑤 𝑑𝑓(𝑛) 𝑑𝑛 𝑑𝑛(𝑤) 𝑑𝑤
𝑚 .
𝑚 =
𝑚 .
Vậy đạo hàm trong (1) và (2) sẽ là:
𝑚 𝜕𝑛𝑗 𝑚 (1′) 𝜕𝑤𝑗𝑖 𝑚 𝜕𝑛𝑗 𝑚 (2′) 𝜕𝑏𝑗
𝜕𝐹̂ 𝑤𝑗𝑖 𝜕𝐹̂ 𝑚 = 𝑏𝑗 𝜕𝐹̂ 𝜕𝑛𝑗 𝜕𝐹̂ 𝜕𝑛𝑗
Trong đó hạng thức thứ hai ở vế phải của phương trình (1’) và (2’) được tính một
cách dễ dàng, bởi vì đầu vào của lớp m của mạng là một hàm của trọng số và độ lệch
𝑚𝑎𝑖
𝑚 𝑚−1 + 𝑏𝑗
𝑆𝑚−1 𝑚 = ∑ 𝑤𝑗𝑖 𝑛𝑗 𝑖=1
trong tầng đó:
𝑚−1;
Do vậy
𝑚
𝑚 𝜕𝑛𝑗 𝑚 = 𝑎𝑖 𝜕𝑤𝑗𝑖
𝑚 𝜕𝑛𝑗 𝜕𝑏𝑗
𝑚 =
= 1
𝜕𝐹̂ 𝑚 là độ nhạy cảm của 𝐹̂ đối với các thay đổi của phần tử thứ j 𝜕𝑛𝑗
Ta ký hiệu 𝑆𝑗
𝑚−1
𝑚𝑎𝑖
𝑚 =
𝑚 .
của đầu vào của mạng tại lớp thứ m. Khi đó ta có:
𝑚 𝜕𝑛𝑗 𝑚 = 𝑆𝑗 𝜕𝑤𝑗𝑖
𝑚
𝑚 .
𝜕𝐹̂ 𝑤𝑗𝑖 𝜕𝐹̂ 𝜕𝑛𝑗
𝑚 𝜕𝑛𝑗 𝑚 = 𝑆𝑗 𝜕𝑏𝑗
𝜕𝐹̂ 𝑚 = 𝑏𝑗 𝜕𝐹̂ 𝜕𝑛𝑗
𝑚−1
Thuật toán giảm theo hướng được biểu diễn như sau:
𝑚(𝑘 + 1) = 𝑤𝑗𝑖
𝑚(𝑘) −∝ 𝑠𝑗
𝑚 ∝𝑖 𝑚
𝑚(𝑘 + 1) = 𝑏𝑗 𝑏𝑗
𝑚(𝑘)−∝ 𝑠𝑗
𝑤𝑗𝑖
Ở dạng ma trận:
𝑊𝑚(𝑘 + 1) = 𝑊𝑚(𝑘) −∝ 𝑠𝑚(𝑎𝑚−1)𝑇 43
𝑏𝑚(𝑘 + 1) = 𝑏𝑚(𝑘) −∝ 𝑠𝑚
Ở đây:
𝑆𝑚 = 𝜕𝐹̂ 𝜕𝑛𝑚 =
[ 𝜕𝐹̂ 𝑚 𝜕𝑛1 𝜕𝐹̂ 𝑚 𝜕𝑛2 .. . 𝜕𝐹̂ 𝑚 ] 𝜕𝑛𝑠𝑚
2.6.1.3. Lan truyền ngược độ nhạy cảm
Phương pháp cần tính toán hết ma trận độ nhạy cảm sm. Để thực hiện điều này
tốt cần sử dụng một trong số rất nhiều ứng dụng khác của luật xích. Quá trình này
cho ta khái niệm về luật “Lan truyền ngược” bởi vì nó luôn mô tả mối quan hệ hồi
qui trong đó độ nhạy cảm sm được tính qua độ nhạy cảm sm+1 của lớp m+1.
𝑚+1
𝑚+1 𝑚
𝑚+1 𝑚 …
Để dẫn đến quan hệ đó, ta sẽ sử dụng ma trận Jacobian:
𝜕𝑛𝑚+1 𝜕𝑛𝑚 =
[ 𝜕𝑛1 𝜕𝑛1 𝑚+1 𝜕𝑛2 𝑚 𝜕𝑛1 . . 𝑚+1 𝜕𝑛𝑠𝑚+1 𝑚 𝜕𝑛1 𝜕𝑛1 𝜕𝑛2 𝑚+1 𝜕𝑛2 𝑚 … 𝜕𝑛2 . . 𝑚+1 𝜕𝑛𝑠𝑚+1 𝑚 … 𝜕𝑛2 𝜕𝑛1 𝑚 𝜕𝑛𝑠𝑚 𝑚+1 𝜕𝑛2 𝑚 𝜕𝑛𝑠𝑚 . . 𝑚+1 𝜕𝑛𝑠𝑚+1 𝑚 ] 𝜕𝑛𝑠𝑚
𝑚+1)
𝑚)
𝑠𝑚 𝜕(∑ 𝑤𝑗𝑖 𝑗=1
Xét thành phần thứ j,i của ma trận trên:
𝑚+1 𝑚 =
𝑚 𝑚+1 𝜕𝑎𝑖 𝑚 = 𝑤𝑗𝑖 𝜕𝑛𝑖
𝑚+1 𝑎𝑓 𝑚(𝑛𝑖 𝑚 𝜕𝑛𝑖
𝑚)
𝑚 + 𝑏𝑗 𝑚+1𝑎𝑗 𝑚 𝜕𝑛𝑖 𝑚+1𝑓 𝑚(𝑛𝑖
= 𝑤𝑗𝑖 𝜕𝑛𝑗 𝜕𝑛𝑖
= 𝑤𝑗𝑖
𝑚)
𝑚) =
Ở đây:
𝑓 𝑚(𝑛𝑖 𝜕𝑓 𝑚(𝑛𝑖 𝑚 𝜕𝑖
44
Như vậy ma trận Jacobian có thể viết lại như sau:
𝑚)
𝑚)
𝜕𝑛𝑚+1 𝜕𝑛𝑚 = 𝑊𝑚+1𝐹𝑚(𝑛𝑚)
𝑓 𝑚(𝑛1 0 . Ở đây: 𝐹𝑚(𝑛𝑚) =
[ 𝑚 )] 0 … 𝑓 𝑚(𝑛2 . . . 0 . . 0 0 0 . . . 𝑓 𝑚(𝑛𝑠𝑚
Bây giờ ta viết lại quan hệ hồi qui cho độ nhạy cảm dưới dạng ma trận:
𝑇 𝜕𝐹̂ 𝜕𝑛𝑚+1 = 𝐹̂ 𝑚(𝑛𝑚)(𝑊𝑚+1)𝑇 𝜕𝐹̂
𝑠𝑚 = 𝜕𝐹̂ 𝜕𝑛𝑚 = ( 𝜕𝑛𝑚+1 𝜕𝑛𝑚 ) 𝜕𝑛𝑚+1
= 𝐹𝑚(𝑛𝑚)(𝑊𝑚+1)𝑇𝑆𝑚+1
Chúng ta có thể quan sát thấy độ nhạy cảm được lan truyền ngược qua mạng từ lớp
cuối cùng trở về lớp đầu tiên khi thực hiện:
𝑆𝑀 → 𝑆𝑀−1 → . .. → 𝑆2 → 𝑆1
Chúng ta thấy rằng ở đây thuật toán lan truyền ngược bị lỗi sử dụng cùng một kỹ
thuật giảm theo hướng như thuật toán LMS. Khó khăn duy nhất là ở chỗ để tính bằng
phương pháp gradient và những ứng dụng ta cần phải lan truyền ngược độ nhạy cảm
từ các lớp về các lớp trước.
Ta cần biết thêm điểm bắt đầu lan truyền ngược, xét độ nhạy cảm sm tại lớp cuối
𝑠𝑀 𝑖=1
𝑚 =
cùng: [10]
𝑚 =
= = −2(𝑡𝑗 − 𝑎𝑗) 𝑆𝑗 𝜕𝐹̂ 𝜕𝑛𝑗 𝜕(𝑡 − 𝑎)𝑇(𝑡 − 𝑎) 𝑚 𝜕𝑛𝑗 𝜕 ∑ (𝑡𝑖 − 𝑎𝑖)2 𝑀 𝜕𝑛𝑗 𝜕𝑎𝑗 𝑀 𝜕𝑛𝑗
𝑀)
𝑀 =
𝑀) 𝑀 = 𝑓 𝑀(𝑛𝑗
Do
𝑀 𝜕𝑎𝑗 𝑀 = 𝜕𝑛𝑗
𝜕𝑎𝑗 𝜕𝑛𝑗 𝜕𝑓 𝑀(𝑛𝑗 𝜕𝑛𝑗
𝑀)
𝑀 = −2(𝑡𝑗 − 𝑎𝑗)𝑓 𝑀(𝑛𝑗 𝑆𝑗 45
Nên ta có thể viết:
Có thể biểu diễn dưới dạng ma trận như sau:
𝑆𝑀 = −2𝐹𝑀(𝑛𝑀)(𝑡 − 𝑎)
Tóm lại, thuật toán lan truyền ngược có thể biểu diễn như sau:
THUẬT TOÁN LAN TRUYỀN NGƯỢC – BACK PRORAGATION
ALGORITHM
Bước 1: Thực hiện lan truyền xuôi class đầu vào qua mạng
𝑎0 = 𝑝
𝑎𝑚+1 = 𝑓 𝑚+1(𝑊𝑚+1𝑎𝑚 + 𝑏𝑚+1) với m=0,1,….M-1
𝑎 = 𝑎𝑀
Bước 2: Lan truyền đọ nhạy cảm (lỗi) ngược lại qua mạng:
𝑆𝑀 = −2𝐹𝑀(𝑛𝑀)(𝑡 − 𝑎)
𝑆𝑚 = 𝐹𝑚(𝑛𝑚)(𝑊𝑚+1)𝑇𝑆𝑚+1 với m = M-1,M-2,….,1
Bước 3: Các trọng số và phương pháp đo độ lệch được cập nhật bởi công thức
sau: 𝑊𝑚(𝑘 + 1) = 𝑊𝑚(𝑘)−∝ 𝑠𝑚(𝑎𝑚−1)𝑇
𝑏𝑚(𝑘 + 1) = 𝑏𝑚(𝑘)−∝ 𝑆𝑚
2.6.2. Sử dụng thuật toán lan truyền ngược của mạng
Sử dụng phương pháp của thuật toán lan truyền ngược như chọn lựa cấu trúc mạng,
sự hội tụ và khả năng khái quát hoá.
Chọn lựa được cấu trúc mạng
Thuật toán lan truyền ngược chúng được sử dụng để đo xấp xỉ bất kỳ một hàm số
học nào nếu như có đủ số nơron trong các lớp ẩn. Mặc dù vậy, phương pháp này chưa
cho một số cụ thể các lớp và số nơron trong mỗi lớp cần sử dụng.
Ví dụ: chúng ta có thể nhìn chi tiết hơn về vấn đề này muốn xấp xỉ hàm số sau [9]:
𝑓(𝑥) = 1 + sin ( 𝑥) 𝑣ớ𝑖 − 2 ≤ 𝑥 ≤ 2 𝑖𝜋 4
Trong đó i nhận được các giá trị cụ thể là 1,2,4 và 8. Khi i tăng thì hàm số chúng ta
46
cần xét sẽ phức tạp hơn rất nhiều do ta sẽ nhận thấy nhiều chu kỳ của hình sin trong
phạm vi [-2,2]. Khi đó, mạng nơron với một số nơron cố định sẽ khó có thể đạt xấp
xỉ được hàm nếu I tăng. Sử dụng ví dụ Function approximation trong thư viện của bộ
Matlab 6.0 (tệp nnd11fa.m). Ở đây mạng sử dụng có một lớp ẩn, một lớp ra, mạng có
một đầu vào và một đầu ra.
Lớp ẩn sử dụng hàm Sigmoid, lớp ra dùng hàm tuyến tính. Số nơron trong lớp ẩn
là 3, kết quả xấp xỉ của mạng trong các trường hợp i=1,2,4,8 như trong các hình dưới
đây.[14]
a, Trường hợp i=1
b,Trường hợp i=2
c, Trường hợp i=4
47
𝒊𝝅
d,Trường hợp i=8
𝟒
Xấp xỉ hàm 𝒇(𝒙) = 𝟏 + 𝒔𝒊𝒏 ( 𝒙) 𝒗ớ𝒊 − 𝟐 ≤ 𝒙 ≤ 𝟐
Chúng ta tăng số nơron trong lớp ẩn lên một mức lớn thì khả năng xấp xỉ hàm
số của mạng sẽ tốt hơn nhiều. Chẳng hạn, khi ta xét trường hợp sử dụng 8 nơron trong
lớp ẩn và i=8 ta có được một kết quả sau:
𝒊𝝅
Trường hợp i=8 và số nơron lớp ẩn là 8
𝟒
Tỉ lệ xấp xỉ hàm𝒇(𝒙) = 𝟏 + 𝒔𝒊𝒏 ( 𝒙) 𝒗ớ𝒊 − 𝟐 ≤ 𝒙 ≤ 𝟐 khi số nơron tăng
Như vậy nếu ta muốn xấp xỉ một hàm số mà có số điểm cần xấp xỉ là lớn thì ta sẽ cần
số nơron lớn hơn trong lớp ẩn.
Sự hội tụ
Trong phần trên có những trường hợp mạng nơron không trả lại kết quả chính xác
dù cho thuật toán lan truyền ngược đã thực hiện tối thiểu hoá trung bình, bình phương
lỗi. Điều đó là do khả năng của mạng bị chặn bởi số nơron trong lớp ẩn. Nhưng cũng
có trường hợp thuật toán lan truyền ngược không thể cho ta các tham số có thể dẫn
đến kết quả tương đối chính xác. Điều này xảy ra là do thời điểm khởi đầu của mạng,
sau khi quá trình huấn luyện, mạng có thể rơi vào điểm cực tiểu toàn cục hoặc rơi vào
điểm cực tiểu địa phương trong đồ thị. [14]
48
Lưu ý rằng trong thuật toán LMS, điểm cực trị toàn cục là luôn luôn tồn tại bởi lẽ
hàm trung bình, bình phương lỗi của thuật toán LMS là hàm bậc hai, do là hàm bậc
hai vì vậy đạo hàm bậc hai của hàm lỗi sẽ là hằng số, vì thế mà độ cong của hàm theo
một hướng cho trước là không thay đổi. Trong khi đó thuật toán lan truyền ngược
được áp dụng cho các mạng nhiều lớp sử dụng các hàm kích hoạt phi tuyến sẽ có rất
nhiều điểm cực trị địa phương và độ cong của hàm lỗi có thể không cố định theo một
chiều hướng cho trước.
Sự tổng quát hoá
Trong rất nhiều các trường hợp, mạng nơron truyền thẳng nhiều lớp được huấn
luyện bởi một hay nhiều số cố định các mẫu xác định sự hoạt động đúng của mạng:
{(𝑝1, 𝑡1), (𝑝2, 𝑡2), … , (𝑝𝑞, 𝑡𝑞)}
ở đây pi là các đầu vào, ti là đầu ra mong muốn tương ứng. Tập ví dụ huấn luyện này
thông thường là thể hiện của số lớn nhất các lớp ví dụ huấn luyện có thể. Một điều
đặc biệt là mạng nơron có khả năng tổng quát hoá từ những cái nó đã học. Dù cho dữ
liệu có nhiễu thì mạng vẫn có khả năng hoạt động tốt.
Để một hệ thống mạng có khả năng tổng quát hoá tốt, nó cần có số tham số ít hơn
số tập dữ liệu có trong tập ví dụ huấn luyện. Trong các mạng nơron, cũng như các bài
toán mô hình hoá, ta thường mong muốn sử dụng một mạng đơn giản nhất mà có thể
cho kết quả tốt trên tập ví dụ huấn luyện.
Một cách khác đó là việc dừng luyện mạng trước khi mạng xảy ra tình trạng khớp
quá. Phương pháp này liên quan đến việc chia tập dữ liệu thu được thành ba tập: tập
ví dụ huấn luyện để tính toán bằng phương pháp gradient và cập nhật các trọng số
của mạng, tập kiểm định được dùng để kiểm tra các điều kiện dừng của mạng và tập
kiểm tra được sử dụng để có thể so sánh khả năng tổng quát hoá của mạng đối với
các bộ tham số của mạng sau các lần huấn luyện.[16]
2.6.3. Một số loại biến thể của thuật toán lan truyền ngược
Một số đặc điểm của thuật toán lan truyền ngược sử dụng kỹ thuật giảm theo
49
hướng. Mạng sử dụng thuật toán này tồn tại những nhược điểm: rơi vào điểm cực tiểu
địa phương đối với mạng nơron truyền thẳng nhiều lớp sử dụng các hàm kích hoạt
phi tuyến. Hơn nữa, khi thực hiện luyện mạng bằng cách đưa từng ví dụ huấn luyện
vào, sau đó thực hiện cập nhật tham số, sẽ làm ảnh hưởng đến quá trình học các ví dụ
khác. Do đó, một phương pháp để tăng tốc độ hội tụ là sử dụng phương pháp học theo
lô (batch training), nghĩa là tất cả các ví dụ huấn luyện được đưa vào mạng, sau đó
mới thực hiện cập nhật các tham số. Bây giờ ta sẽ xem xét một số biến thể của thuật
toán lan truyền ngược sử dụng phương pháp học theo lô nhằm vượt qua các nhược
điểm này.
Sử dụng tham số bước đà trong hàm
Đây là một phương pháp phổ biến như Heuristic dựa trên quan sát kết quả luyện
mạng nhằm làm tăng tốc độ hội tụ của thuật toán lan truyền ngược dựa trên quy tắc
giảm nhanh nhất. Thuật toán lan truyền ngược cập nhật nhiều tham số của mạng bằng
cách cộng thêm vào một lượng thay đổi là:
∆𝑊𝑚(𝑘) = −𝛼𝑠𝑚(𝑎𝑚−1)𝑇
∆𝑏𝑚(𝑘) = −∝ 𝑠𝑚
Khi áp dụng thuật toán lan truyền ngược có sử dụng bước đà, phương trình trên thay
đổi như sau:
∆𝑊𝑚(𝑘) = 𝜇∆𝑊𝑚(𝑘 − 1) − (1 − 𝜇) ∝ 𝑠𝑚(𝑎𝑚−1)𝑇
∆𝑏𝑚(𝑘) = 𝜇∆𝑏𝑚(𝑘 − 1) − (1 − 𝜇) ∝ 𝑠𝑚
Người ta đã chứng tỏ rằng khi sử dụng tham số bước đà thì hệ số học có thể lớn hơn
rất nhiều so với thuật toán lan truyền ngược nguyên thuỷ không sử dụng tham số bước
đà trong khi vẫn giữ được độ tin cậy của thuật toán. Một điểm nữa là khi sử dụng
tham số bước đà thì sự hội tụ của thuật toán sẽ được tăng tốc nếu như thuật toán đang
đi theo một hướng bền vững (chỉ đi xuống trong một khoảng dài).[10]
Sử dụng một hệ số học biến đổi
Trong thực tế, các hàm hiệu năng có dạng biểu diễn hình học là không đồng đều,
có lúc có dạng phẳng (hàm không thay đổi giá trị hoặc thay đổi rất ít) hoặc có dạng
50
phễu (giá trị của hàm thay đổi rất nhanh khi thay đổi tham số đầu vào). Nếu chỉ sử
dụng hệ số học cố định thì có thể sẽ tốn thời gian tại các vùng phẳng. Vì vậy tư tưởng
của thuật toán lan truyền ngược sử dụng hệ số học biến đổi là khi gặp vùng phẳng thì
tăng hệ số học lên và ngược lại khi gặp vùng dạng phếu thì giảm hệ số học đi. Người
ta đã đưa ra rất nhiều phương pháp để thực hiện điều trên, ở đây chỉ nêu ra một cách
biến đổi hệ số học dựa trên hiệu năng của mạng.
Bước 1: Nếu bình phương lỗi trên toàn bộ tập ví dụ huấn luyện tăng một số
phần trăm cho trước γ (thông thường là từ 1% đến 5%) sau một lần cập nhật trọng số,
thì bỏ qua việc cập nhật này, hệ số học được nhân với một số hạngξ nào đó (với
0<ξ<1) và tham số bước đà (nếu có sử dụng) được đặt bằng 0.
Bước 2: Nếu bình phương lỗi giảm sau một lần cập nhật trọng số, thì cập nhật đó
là chấp nhận được và hệ số học được nhân với một số hạng nào đó lớn hơn 1, nếu tham
số bước đà đã được đặt bằng 0 thì đặt lại giá trị lúc đầu.
Bước 3: Nếu bình phương lỗi tăng một lượng nhỏ hơn γ, thì cập nhật trọng số
là chấp nhận được, nhưng hệ số học không thay đổi và nếu tham số bước đà đặt bằng
0 thì đặt lại giá trị lúc đầu.
Các thuật toán heuristic luôn cho ta sự hội tụ nhanh hơn trong một số bài toán, tuy
nhiên chúng có hai nhược điểm chính sau đây:
Thứ nhất, việc sửa đổi thuật toán lan truyền ngược cần có thêm một số tham số,
trong khi trong thuật toán lan truyền ngược nguyên thuỷ chỉ yêu cầu có một tham số
đó là hệ số học. Một số thuật toán sửa đổi cần đến năm hoặc sáu tham số, trong khi
hiệu năng của thuật toán khá nhạy cảm đối với những thay đổi của các tham số này.
Hơn nữa việc chọn lựa các tham số lại độc lập với bài toán đặt ra.
Thứ hai, các thuật toán sửa đổi có thể không hội tụ trong một số bài toán mà thuật
toán lan truyền ngược nguyên thuỷ có thể hội tụ được.
Thấy rằng cả hai nhược điểm nêu trên thường xảy ra khi sử dụng các thuật toán
sửa đổi phức tạp hơn (yêu cầu nhiều tham số hơn). [10]
51
CHƯƠNG III.
ỨNG DỤNG MẠNG NƠRON TRONG VIỆC KHUYẾN CÁO KHẢ NĂNG
NGHỈ HỌC CỦA HỌC SINH, SINH VIÊN
3.1. Các bước thực hiện mô hình .
Thu thập dữ liệu mô hình Số buổi vắng, điểm học kỳ 1,2, số lần cảnh cáo, học phí…
Phân tích lựa chọn đặc trưng
Tiền xử lý dữ liệu
Xây dựng mô hình
Huấn luyện mô hình
Sai
Kiểm tra Thỏa?
Đúng
Sử dụng
Hình 3.1: Các bước chính trong xây dựng mô hình
52
Bước 1: Thu thập dữ liệu cho mô hình.
Dữ liệu được chọn lọc từ những năm học 2017-2018 và 2018-2019 dùng để nghiên
cứu cho mô hình.
Bước 2: Phân tích và lựa chọn đặc trưng.
Xác định kiểu dữ liệu cho mỗi cột, lựa chọn đặc trưng có khả năng tác động tới mô
hình.
Bước 3: Tiền xử lý
Chuyển đổi các kiểu dữ liệu về dạng số.
Ví dụ: Cột sinh viên trong tỉnh, tỉ lệ thôi học, chuyển đổi dữ liệu về trong khoảng
[0,1].
Bước 4: Xây dựng mô hình
Sử dụng thiết kế trực quan mô hình mạng, lựa chọn các tham số mạng như: số lượng
lớp ẩn, số nơron trong mỗi lớp ẩn, lựa chọn hàm kích hoạt.
Bước 5: Huấn luyện
Cho phép người sử dụng đặt các thông số mạng trước khi thực hiện huấn luyện như
hệ số học, số vòng lặp tối đa.
Buớc 6: Đánh giá
Thực hiện kiểm tra trên tập dữ liệu kiểm tra, biểu diễn mức độ lỗi và biểu đồ giữa giá
trị đầu ra của mạng và giá trị đầu ra mong muốn.
Bước 7: Sử dụng
Cho phép người sử dụng nhập các giá trị đầu vào và phần mềm thực hiện tính toán
kết quả trả về.
3.2. Thu thập dữ liệu cho mô hình
Dữ liệu đóng một vai trò rất quan trọng trong các phương pháp sử dụng mạng
Nơron. Chất lượng, tính sẵn có, độ tin cậy và phù hợp của dữ liệu được sử dụng để
phát triển hệ thống giúp cho các giải pháp thành công.
Nhiều mô hình đơn giản cũng có thể đạt được những kết quả tốt được nếu như
dữ liệu được xử lý tốt, phát hiện được các thông tin quan trọng. Trong khi đó, các mô
53
hình tốt có thể sẽ không cho ta các kết quả như mong muốn nếu hệ thống dữ liệu đưa
vào quá phức tạp và rắc rối không đúng mục tiêu.
Các thông tin có thể thu thập tại trường để thực hiện xây dựng mô hình bao
gồm: họ và tên, ngày sinh, nơi sinh, quê quán, ngành học, tổng số các môn học trong
2 học kỳ đầu, điểm tổng kết của từng môn ở 2 học kỳ đầu, tổng số buổi vắng trong
học kỳ 1 và 2, số lần cảnh cáo kỷ luật, nợ học phí từng kỳ, bảo lưu, số môn còn nợ
trong học kỳ, điểm tích lũy toàn khóa, xếp loại rèn luyện của mỗi học sinh, sinh viên.
Dữ liệu thu thập thông tin học sinh, sinh viên của nhà trường được lấy từ năm
2017 đến năm 2019 với tổng số là của 2432 học sinh, sinh viên khóa T18,T19 hệ
trung cấp và CD8, CD9, của hệ cao đẳng thuộc các khoa Điện, Cơ khí, Công nghệ
thông tin, May thời trang và chế biến thực phẩm. Tuy nhiên để làm giảm bớt độ phức
tạp tính toán dữ liệu đầu vào cho mô hình thì dữ liệu phải được lựa chọn.
Lựa chọn dữ liệu cho huấn luyện là khóa học năm 2017-2018, dữ liệu cho tập
kiểm tra là khóa học 2018-2019 được lấy từ phòng đào tạo, phòng công tác học sinh,
sinh viên nên có độ tin cậy rất lớn.
3.3. Phân tích, lựa chọn đặc trưng.
Để xác định được đặc trưng nào có ảnh hưởng đến mô hình dự đoán ta phân
tích từng đặc trưng qua đó lựa chọn các đặc trưng có ảnh hưởng đến kết quả dự đoán,
các đặc trưng khác sẽ bị loại ra.
Dựa vào những thông tin của học sinh, sinh viên ta chia làm 2 nhóm đặc trưng
cơ bản như sau:
+ Nhóm thông tin chung: họ và tên, ngày sinh, nơi sinh, quê quán.
+ Nhóm thông tin ngành học và kết quả học tập.
- Ngành học: việc chọn ngành học là một trong những việc quan trọng đối với
giới trẻ hiện nay không ít những học sinh, sinh viên chọn sai ngành dẫn đến việc nghỉ
học do năng lực, sở thích và những đặc trưng cơ bản của từng ngành mà các em chưa
tìm hiểu kỹ trước khi lựa chọn.
- Tổng số các môn học trong 2 học kỳ đầu: tùy theo từng ngành nghề mà 2
học kỳ đầu có tổng số môn học với số lượng khác nhau.
54
Ví du: học kỳ 1 của ngành công nghệ ô tô là 6 môn, điện công nghiệp 7 môn, công
nghệ thông tin 8 môn, may và thiết kế thời trang 7 môn, chế tạo khuôn mẫu 6 môn.
- Điểm tổng kết của từng môn ở 2 học kỳ đầu: Với tổng số môn học cho từng
kỳ, qua đó mỗi học sinh, sinh viên cũng có số điểm tổng kết cho từng môn học cụ thể
qua bảng kết quả học tập, rèn luyện toàn khóa như hình sau:
Bảng 3.1: Bảng dữ liệu kết quả học tập rèn luyện
- Tổng số buổi vắng trong học kỳ 1 và 2: được thống kê trong học kỳ và dựa
vào từng môn học cụ thể, hiện nay, quy chế đào tạo tín chỉ nhà trường quy định nếu
sinh viên vắng mặt quá 20% số giờ trên lớp sẽ bị cấm dự thi cuối học kỳ và phải nhận
điểm 0 cho môn học đó. Nếu nợ quá nhiều môn thì ảnh hưởng đến tiến độ học tập
của các em, chưa kể các em nản chí, bỏ học.
- Số lần cảnh cáo kỷ luật: học sinh, sinh viên có hành vi phạm nội quy, quy
chế, thì tùy vào tính chất, mức độ và hậu quả của hành vi vi phạm thì sẽ bị nhắc nhở,
phê bình hoặc chịu các hình thức xử lý kỷ luật khác như: khiển trách, cảnh cáo, đình
chỉ có thời hạn, buộc thôi học
- Nợ học phí từng kỳ: theo quy định, học phí đóng từng học kỳ nhưng nhiều
học sinh, sinh viên vẫn nợ học phí nhiều năm dẫn tới việc bị cấm thi các môn học.
- Bảo lưu: học sinh, sinh viên do công việc cá nhân không thể tiếp tục theo
học được nhưng vẫn muốn bảo lưu kết quả học tập để giải quyết việc cá nhân sau đó
55
tiếp tục theo học vào thời gian tới.
- Số môn còn nợ trong học kỳ: là tất cả những môn học có điểm thi hoặc điểm
tổng kết <5, những môn này học sinh, sinh viên phải thi lại hoặc đăng kí học lại để
cải thiện điểm.
- Điểm tích lũy theo kỳ, năm, toàn khóa: là điểm trung bình của tất cả các môn
học được tính theo thang điểm 4, qua đó đánh giá được năng lực học tập của học sinh,
sinh viên qua từng kỳ, năm, toàn khóa.
- Xếp loại rèn luyện: Dùng để đánh giá và phân loại kết quả rèn luyện của học
sinh, sinh viên theo từng học kỳ, từng năm học và toàn khóa học.
Đối với điểm tổng kết các môn trong học kỳ ta sẽ phân loại ra số môn đạt điểm
giỏi, khá, trung bình, yếu dựa vào bảng điều kiện phân loại học lực:
Stt Điểm tổng kết Học lực
1 ĐTK>=8 Giỏi
2 8<ĐTK>=6.5 Khá
3 6.5<ĐTK>=5 Trung bình
4 ĐTK<5 Yếu
Bảng 3.2: Bảng điều kiện phân loại học lực
Ngoài ra còn có các yếu tố khác: Ảnh hưởng của quy chế thi cử, điều kiện
kinh tế xã hội, sức khỏe, tâm lý, sở thích, gia đình, bạn bè có tác động rất ít đến dự
đoán kết quả học tập của sinh viên nên được loại bỏ ra khỏi dữ liệu.
Từ 2 nhóm đặc trưng cơ bản của dữ liệu và dựa vào phân tích những tính chất
của từng đặc trưng ta thấy một số thông tin có ảnh hưởng tới mô hình dự báo khả
năng nghỉ học như: khóa học, quê quán, tổng số môn học kỳ 1,2, điểm tổng kết các
môn học kỳ 1,2 (đã phân loại số môn đạt điểm giỏi, khá, trung bình, yếu), số buổi
vắng học kỳ 1,2, số lần cảnh cáo kỷ luật, số môn nợ học kỳ 1,2, bảo lưu học kỳ 1,2,
thôi học, còn học. Ta có bảng dữ liệu phân bổ như sau:
56
Bảng 3.3: Bảng dữ liệu tính chất đặc trưng của mô hình
3.4. Tiền xử lý dữ liệu cho mô hình.
Tiền xử lý dữ liệu là một bước rất quan trọng trong việc xây dựng mô hình
huấn luyện mạng Nơron. Hầu hết các bộ dữ liệu được sử dụng trong mạng Nơron cần
được xử lý và biến đổi trước khi mạng Nơron có thể được huấn luyện trên những bộ
dữ liệu này.
Ở mô hình này mạng Nơron chỉ xử lý tín hiệu đầu vào tốt nếu như chúng ta
biến đổi dữ liệu ra dạng thập phân nằm trong khoảng [0, 1] cụ thể như sau. Từ bảng
phân tích và lựa chọn đặc trưng cho dữ liệu như Bảng 3.3 ở trên ta tiếp tục biến đổi
thông tin của các đặc trưng như sau:
- Sinh viên trong tỉnh: sinh viên trong tỉnh 0, ngoài tỉnh 1
- Nợ học phí học kỳ 2: học phí chưa hoàn thành 1, hoàn thành 0.
- Số lần cảnh cáo kỷ luật học kỳ 1,2: cảnh cáo 1, không cảnh cáo 0
- Bảo lưu: không bảo lưu 0, bảo lưu 1
- Số môn đạt điểm giỏi: Là tất cả số môn đạt điểm giỏi trong tổng số môn trong
học kỳ.
- Số môn đạt điểm khá: Là tất cả số môn đạt điểm khá trong tổng số môn trong
học kỳ.
57
- Số môn đạt điểm trung bình: Là tất cả số môn đạt điểm trung bình trong tổng
số môn trong học kỳ.
- Số môn đạt điểm yếu: Là tất cả số môn đạt điểm yếu trong tổng số môn trong
học kỳ.
- Tỉ lệ yếu cả năm: bằng tổng số tỉ lệ yếu của học kỳ 1 và học kỳ 2.
Vì số môn đạt điểm giỏi và khá chiếm tỉ lệ rất nhỏ khi ta thực hiện chia lấy giá trị
trung bình nên tỉ lệ giỏi và khá được cộng lại với nhau.
- Tùy theo từng ngành nghề mà số lượng các môn học trong học kỳ cũng khác
nhau, hệ cao đẳng số lượng các môn học nhiều hơn hệ trung cấp.
Ví dụ: Ngành công nghệ ô tô học kỳ 1 năm nhất là 10 môn, điện công nghiệp
7, công nghệ thông tin 9, kế toán doanh nghiệp 8… Đối với hệ ngành công nghệ ô tô
hệ trung cấp là 8 môn, cao đẳng là 10 môn.
Vì vậy để thuận tiện cho việc xây dựng dữ liệu cho mô hình thì đưa về dạng
tỷ lệ để dữ liệu được gom về trong giới hạn từ 0 đến 1.
Bảng 3.4: Dữ liệu mạng nơron với số đầu vào
Trong Bảng 3.4 do tỉ lệ khá, giỏi chiếm tỉ lệ nhỏ nên ở đây ta cộng lại và được
thực hiện như sau:
Tỷ lệ khá, giỏi HK1 = số môn đạt điểm khá HK1 + số môn đạt điểm giỏi HK1 ∑ số môn có trong học kỳ 1
58
Tỷ lệ trung bình học kỳ 1, tỷ lệ yếu học kỳ 1, tỷ lệ khá, giỏi học kỳ 2, tỷ lệ
trung bình học kỳ 2, tỷ lệ yếu học kỳ 2, tỉ lệ yếu cả năm cũng thực hiện tương tự như
công thức trên.
Dữ liệu đầu vào cho việc huấn luyện từ khối dữ liệu ban đầu là 2432 học sinh,
sinh viên thuộc 2 nhóm với rất nhiều thông tin đặc trưng, sau khi tiền xử lý ta đã lựa
chọn ra 12 thông tin đặc trưng có ảnh hưởng lớn tới dự báo của mô hình và loại bỏ
những học sinh, sinh viên không đầy đủ thông tin còn lại 583 học sinh, sinh viên. Và
đây cũng là đầu vào cho việc huấn luyện mô hình khuyến cáo.
3.5. Xây dựng mạng Nơron
3.5.1. Cấu trúc mạng Nơron
Cấu trúc của một mạng nơron nhân tạo gồm 3 thành phần đó là: Input Layer,
Hidden Layer và Output Layer. Trong đó, lớp ẩn (Hidden Layer) gồm các Nơron
nhận dữ liệu Input từ các Nơron ở lớp (Layer) trước đó và chuyển đổi các input này
cho nhiều lớp xử lý tiếp theo.
Đối với bài toán khuyến cáo trên chúng ta lựa chọn cấu trúc mạng nơron như
sau:
Số nơron lớp vào
Trong luận văn lựa chọn 12 Nơron lớp vào tương ứng với 12 đặc trưng của bộ dữ
liệu.
Số nơron lớp ẩn
Để lựa chọn được chính xác số nơron cho lớp ẩn là rất khó vì vậy số nơron lớp ẩn sẽ
được lựa chọn qua thực nghiệm của bài toán.
Qua thực nghiệm bài toán lựa chọn số nơron lớp ẩn bằng 1.5 lần số đầu vào cụ thể là
18 nơron.
Số nơron lớp ra
Bài toán đặt ra là khuyến cáo số lượng học sinh có kết quả học tập thấp dẫn đến khả
năng nghỉ học cao. Do vậy sẽ có 2 đầu ra là: Khuyến cáo hoặc không.
59
+ Mô hình mạng Nơron như sau:
Hình 3.2: Mô hình cấu trúc mạng Nơron MLP
Trong quá trình huấn luyện mạng ta sử dụng một số thuật toán:
model = Sequential()
model.add(Dense(18, input_dim=12, activation='relu'))
model.add(Dense(12, activation='relu'))
model.add(Dense(2, activation='softmax'))
model.summary()
trong đó có một số hàm như:
+ Các hàm kích hoạt trên từng lớp.
Mỗi nơron sẽ nhận tất cả đầu vào từ các nơron ở tầng trước đó và sử dụng một
hàm kích hoạt ReLU để tính toán đầu ra.
𝒁(𝑙+1) = 𝑾(𝑙+1). 𝒂(𝑙)
𝒂(𝑙+1) = 𝑓(𝒛(𝑙+1))
Quá trình suy luận từ tầng vào tới tầng ra của mạng Nơron là quá trình lan
truyền tiến (feedforward), tức là đầu vào các nơron tại 1 tầng đều lấy từ kết quả các
nơron tầng trước đó mà không có quá trình suy luận ngược lại.
Hàm kích hoạt được sử dụng trong lớp vào và lớp ẩn là hàm ReLU, hàm này
rất thuận lợi khi sử dụng cho các mạng huấn luyện bằng thuật toán lan truyền ngược
BP, bởi nó rất dễ lấy đạo hàm.
+ Hàm ReLu
60
Hàm ReLU đang được sử dụng trong mô hình vì những lí do sau:
𝑦 = 𝑓(𝑁𝑒𝑡𝑖) = 1 1 + 𝑒−𝑁𝑒𝑡𝑖
- Trong hàm Relu tốc độ hội tụ nhanh hơn.
- Tính toán nhanh hơn so với các hàm khác
- ReLU giúp cho việc training các Model nhanh hơn rất nhiều
3.5.2. Huấn luyện mạng Nơron cho mô hình.
Sử dụng tập dữ liệu đầu vào sau tiền xử lý như Hình 3.5 cho bài toán nên
phương án giải bài toán sẽ là khuyến cáo dạng hồi quy. Tức là sử dụng dữ liệu của
những năm trước để dự báo cho những năm tiếp theo.
Trong mô hình mạng Nơron với 2 đầu ra nên ta sử dụng một số hàm và công
cụ đo để có độ chính xác như sau:
+ Hàm Softmax
Hàm Softmax được sử dụng ở mô hình nhằm đánh giá xác suất phân loại của dữ
liệu đầu vào. Ngoài ra, hàm Softmax cũng thường được sử dụng để tính toán trọng số
cho dữ liệu.
+ Hàm tối ưu adam
Adam sử dụng là chọn một cách thích nghi một tỷ lệ học tập riêng cho từng
tham số. Các thông số thường nhận được các bản cập nhật nhỏ hơn hoặc ít thường
xuyên hơn sẽ nhận được các bản cập nhật lớn hơn với Adam. Điều này tăng tốc độ
học tập trong trường hợp tỷ lệ học tập phù hợp khác nhau giữa các tham số.
Các lợi ích của thuật toán Adam
- Không khó khăn để triển khai thực hiện cho mô hình
- Dùng để xử lý độ phức tạp hiệu quả
- Ít bộ nhớ yêu cầu.
- Thích hợp với các bài toán có độ biến thiên không ổn định và dữ liệu traning phân
mảnh.
61
- Các siêu tham số được biến thiên một cách hiệu quả và yêu cầu ít điều chỉnh.
+ Hàm mất mát loss:
Hàm loss sẽ chỉ ra mô hình đoán sai bao nhiêu so với giá trị thực tế. Dựa trên
phản hồi, mô hình có thể sửa những lỗi sai trước đó. Quá trình này lặp đi lặp lại cho
đến khi mô hình đạt đến một độ chính xác nhất định.
+ Công cụ đo: metrics
Khi xây dựng mô hình khuyến cáo chúng ta sẽ muốn biết một cách khái quát
tỷ lệ các trường hợp được khuyến cáo đúng trên tổng số các trường hợp là bao nhiêu.
Tỷ lệ đó được gọi là độ chính xác. Độ chính xác giúp ta đánh giá hiệu quả dự báo của
mô hình trên một bộ dữ liệu. Độ chính xác càng cao thì mô hình càng chuẩn xác.
Trong các metrics đánh giá mô hình phân loại thì độ chính xác là metric khá được ưa
chuộng vì nó có công thức tường minh và dễ diễn giải ý nghĩa .
Sau đó khởi tạo các tham số và huấn luyện MLP 200 lần epoch với batch_size
=10. Giá trị loss được lưu sau mỗi 200 epoch. Một số thông tin huấn luyện MLP trong
mô hình như sau.
Bảng 3.5: Giá trị loss sau mỗi epoch
62
Ở đây Learning_rate Epoch 198/200
583/583 [==============================] - 0s 132us/sample - loss: 0.114
6 - acc: 0.9640 được gán bằng 0.9640.
Nhìn vào đồ thị Hình 3.3 cho thấy độ phù hợp của mô hình dự báo có giá trị
huấn luyện là 0.9640, chỉ biến động từ Epoch 1 đến Epoch 20 theo phương thẳng
đứng còn lại từ Epoch 20 đến Epoch 200 là tương đối đều nhau các giá trị này ở mức
tương đối cao, điều này cho thấy kết quả của dự báo mang tính chính xác, cho ra kết
quả có độ tin cậy cao.
Hình 3.3: Đồ thị thể hiện mức độ học của MLP
Với dữ liệu kiểm tra và quan sát trên đồ thị thể hiện mức độ học của MLP, đầu
ra của mạng cũng xấp xỉ đầu ra yêu cầu (tức là đầu ra thực của dữ liệu học). Chúng
ta dễ dàng nhận thấy mạng nơron MLP học khá tốt. Tuy nhiên tại một số điểm vẫn
còn lỗi nhỏ trong mô hình.
+ Precision: trả lời cho câu hỏi trong các trường hợp được dự báo là tốt thì có
bao nhiêu trường hợp là đúng. Và tất nhiên độ chính xác càng cao thì mô hình của
chúng ta càng tốt trong việc khuyến cáo. Precision sẽ cho chúng ta biết mức độ chuẩn
xác của mô hình đối với các mô hình được dự báo là xấu. [17]
Precision = = 𝑇𝑃 total predicted positive 𝑇𝑃 𝑇𝑃 + 𝐹𝑃
63
+ Recall: đo lường tỷ lệ dự báo chính xác các trường hợp positive trên toàn bộ
các mẫu thuộc nhóm positive. Để tính được recall thì chúng ta phải biết trước nhãn
của dữ liệu. Do đó recall có thể được dùng để đánh giá trên tập train và validation vì
chúng ta đã biết trước nhãn. Trên tập test khi dữ liệu được coi như mới hoàn toàn và
chưa biết nhãn thì chúng ta sẽ sử dụng precision. [18]
Recall = = 𝑇𝑃 total actual positive 𝑇𝑃 𝑇𝑃 + 𝐹𝑁
+ F1 score: trung bình điều hòa giữa precision và recall. Do đó nó đại diện hơn
trong việc đánh gía độ chính xác trên đồng thời precision và recall. Nó được sử dụng
để đánh giá hiệu suất của mô hình phân loại hoặc khuyến cáo
F1 = 2 precision−1 + recall−1
Hình 3.4: Kết quả huấn luyện của mạng
Trong Hình 3.4 cho thấy các giá trị mức cảnh báo đối với học sinh, sinh viên
được đưa ra là 96/583 và không cảnh báo là 487/583. Và các công cụ đo như
Accuracy, Precision, Recall, f1-Score đặt mức trong khoảng 85%-96%, đây là mức
tương đối cao với bài toán dự báo.
3.5.3. Kiểm thử mạng nơron
Dữ liệu dùng để kiểm thử là thông tin học sinh, sinh viên của nhà trường được
lấy từ năm 2018 đến năm 2019 với tổng số là của 411 học sinh, sinh viên khóa
T19,T20 hệ trung cấp và CD9, CD10, của hệ cao đẳng thuộc các khoa Điện, Cơ khí,
Công nghệ thông tin, May thời trang và chế biến thực phẩm, đã được chọn lựa.
64
Tập dữ liệu kiểm thử đã qua các bước trích xuất đặc trưng và tiền xử lý giống
như dữ liệu của huấn luyện với 12 Nơron lớp vào và 02 Nơron lớp ra.
Đưa vào mô hình xử lý với giá trị trung bình của các đặc trưng cơ bản bao gồm
411 hàng.
Sau khi Test trên tập với 2 đầu ra.
Sử dụng hàm mất mát Loss để kiểm thử tập dữ liệu với 411 dòng với 156us/sample
mất 0.2060, mạng nơron chạy khá tốt với tỉ lệ lên tới 95.62 %
65
Hình 3.5: Kết quả kiểm thử của mạng
Kết quả kiểm thử của mạng Noron với tập dữ liệu là 411 mẫu đạt mức cảnh báo là
24/411 đạt 0.06% mức không cảnh báo là 387/411 đạt 0.94%. Độ chính xác trong mô
hình đạt mức 96% ngoài ra còn các thông số về hiệu xuất tính trung bình của mô hình
cũng tương đối cao điều đó cho thấy mô hình hoạt động rất tốt.
3.6. Kết quả bài toán khuyến cáo.
Như vậy kết quả dự báo cho bài toán nghỉ học của học sinh, sinh viên nhà trường
sử dụng công cụ là mạng nơron truyền thẳng với thuật toán lan truyền ngược sai số
cho kết quả khuyến cáo chính xác lên tới 95,62% và sai số là chấp nhận được.
+ Qua các kết quả thực nghiệm thu được trong quá trình thử nghiệm trên công
cụ khuyến cáo đã chỉ ra được những điều sau:
- Mạng nơron nhân tạo có tính ứng dụng rất đa dạng với thực tiễn, khá hiệu quả
trong các bài toán khuyến cáo.
- Mức độ chính xác của mô hình phụ thuộc vào rất nhiều thông số, tuy nhiên lại
chưa có một phương pháp nào để xác định được chính xác định tính cũng như định
lượng của các thông số. Ta phải thông qua phương pháp thực nghiệm để xác định giá
trị thông số tối ưu.
- Số liệu của mỗi học sinh, sinh viên có đặc trưng riêng và thông số tối ưu thay
đổi theo mức độ đặc trưng của số liệu.
- Mô hình có thể áp dụng thực tế trong nhà trường.
66
CHƯƠNG IV.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Luận văn nghiên cứu mạng nơron nhân tạo, mô hình mạng nơron truyền thẳng
được huấn luyện với giải thuật lan truyền ngược cho bài toán xây dựng mô hình
khuyến cáo khả năng nghỉ học của sinh viên Trường cao đẳng kỹ thuật công nghệ
tỉnh Bà rịa Vũng tàu
4.1. Các kết quả đạt được
- Luận văn đã nghiên cứu được tổng quan về mạng nơron nhân tạo, đi sâu vào
nghiên cứu mạng hệ thống mạng nơron lan truyền thẳng huấn luyện bằng thuật toán
lan truyền ngược sai số chấp nhận được nhằm đạt tới một kết quả tốt nhất cho bài
toán tối ưu trọng số mạng nơron nhân tạo.
- Luận văn cũng đã xây dựng được phần mềm khuyến cáo khả năng nghỉ học
của sinh viên Trường cao đẳng kỹ thuật công nghệ tỉnh Bà rịa Vũng tàu trong năm
tiếp theo.
4.2. Hướng phát triển tiếp theo
Việc sử dụng MLP và Mạng Nơron nhân tạo trong việc phân tích dữ liệu và
đưa ra dự báo kết quả học tập cho học sinh, sinh viên là một phương pháp hiệu quả,
khách quan và khoa học nhằm nhằm hỗ trợ công tác tư vấn định hướng học tập và
khuyến cáo đến các bạn học sinh, sinh viên kết quả học tập của mình từ đó chấn chỉnh
lại ý thức học tập và có phương pháp học tập hợp lý để kết quả học tập ngày càng tốt
hơn,
Những kết quả thực nghiệm khả quan dựa trên nghiên cứu về ứng dụng mạng
nơron nhân tạo với thuật toán học là lan truyền ngược sai số trong bài toán khuyến
cáo khả năng nghỉ học của sinh viên Trường cao đẳng kỹ thuật công nghệ tỉnh Bà rịa
Vũng tàu trong năm tới cho thấy đây là một mô hình hiệu quả.
Vì vậy, hướng phát triển tiếp theo của luận văn là cải tiến phương pháp dự báo kết
hợp với việc sử dụng thuật toán tối ưu để có kết quả chính xác.
Ngoài ra, có thể sử dụng kết hợp với một số lĩnh vực khác như: logic mờ và giải
thuật di truyền để dự báo kết quả chính xác hơn.
67
TÀI LIỆU THAM KHẢO
[1] https://technicalvnplus.com/article/tri-tue-nhan-tao-ai
[2] https://machineLearningcoban.com/2016/12/26/introduce/
[3] Nguyễn Xuân Khánh. Machine Learning book for Vietnamese, University of
Maryland.
[4]https://vietnambiz.vn/hoc-sau-deep-Learning-la-gi-hoc-sau-va-hoc-may-2020041
0165603552.htm
[5] Phạm Thọ Hoàn, Phạm Thị Anh Lê (2011), Giáo trình Trí tuệ nhân tạo Đại học
sư phạm 1 hà nội.
[6] https://www.phamduytung.com/blog/2019-04-19-deep-Learning-view/#ixzz%2
06f%20%20Qeq16QR
[7] Nordic Coder, (2019). Phân nhóm thuật toán Machine Learning những điều bạn
cần phải biết.
[8] Nguyễn Quang Hoan (2005), Giáo trình mạng nơron nhân tạo, Học viện công
nghệ bưu chính viễn thông.
[9] Nguyễn Quang Hoan (2005), Giáo trình mạng nơron nhân tạo, Học viện công
nghệ bưu chính viễn thông.
[10] Fico Corporation (2009), Understanding Predictive Analytics
[11] https://missinglink.ai/guides/neural-network-concepts/7-types-neural-network-
activa tion-functions-right/.
[12] vũ hữu tiệp, 2018. Machine Learning cơ bản, nhà xuất bản Khoa học và Kỹ thuật.
[13] https://machineLearningcoban.com/2017/02/17/softmax/
68
[14] Robert J. Schallkoff (1997), Artificial Neural Networks, The McGraw – Hill
Companies, Inc 1997.
[15] Đinh Mạnh Tường(2002), Trí tuệ nhân tạo, NXB Khoa học và Kỹ thuật
[16] Nguyễn Đình Thúc (2000), Mạng nơron nhân tạo – phương pháp và ứng dụng,
nhà xuất bản giáo dục.
[17] https://phamdinhkhanh.github.io/2020/08/13/ModelMetric.html#5-recall
[18] http://naebolo.com/gioi-thieu-ve-accuracy-precision-recall-va-f1/
[19] Fico Corporation (2009), Understanding Predictive Analytics.
[20] https://missinglink.ai/guides/neural-network-concepts/7-types-neural-network-
activation-functions-right/.
[21] https://aicurious.io/posts/2019-09-23-cac-ham-kich-hoat-activation-function-
trong-neural-networks/#3-relu
[22] https://machineLearningcoban.com/2017/02/17/softmax/
[23] http://www.rubylab.io/2015/03/18/simple-neural-network-implenentation-in-
ruby/
69
PHỤ LỤC
MỘT SỐ MÃ NGUỒN TRONG MÔ HÌNH
1. Huấn luyện mạng
model = Sequential() model.add(Dense(18, input_dim=12, activation='relu')) model.add(Dense(12, activation='relu')) model.add(Dense(2, activation='softmax')) model.summary()
2. Kiểm thử mạng.
70
71