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