Một số phương pháp xác định cuộc gọi làm phiền
- 56 trang
- file .pdf
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
LUẬN VĂN THẠC SĨ
Một số phương pháp xác định
cuộc gọi làm phiền
NGUYỄN VĂN LONG
[email protected]
Ngành Toán Tin
Giảng viên hướng dẫn: TS. Lê Chí Ngọc
Viện: Toán ứng dụng và Tin học Chữ ký của GVHD
HÀ NỘI, 10/2022
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn : Nguyễn Văn Long
Đề tài luận văn: Một số phương pháp xác định cuộc gọi làm phiền
Chuyên ngành: Toán Tin
Mã số SV: 20202826M
Tác giả, Người hướng dẫn khoa học và Hội đồng chấm luận văn
xác nhận tác giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng
ngày 31 tháng 10 năm 2022 với các nội dung sau:
Sửa một số lỗi soạn thảo, câu chữ, công thức tại các trang 17, 22,
24, 26, 28, 30, 31, 33, 36, 37, 42.
Ngày 31 tháng 10 năm 2022
Giáo viên hướng dẫn Tác giả luận văn
CHỦ TỊCH HỘI ĐỒNG
Lời cảm ơn
Tác giả xin gửi lời cảm ơn trân trọng sâu sắc nhất tới người thầy cố
vấn của tác giả, TS. Lê Chí Ngọc - người thầy đã đưa tác giả đến với lĩnh
vực Trí tuệ nhân tạo, người định hướng, trực tiếp hướng dẫn tác giả hết sức
nhiệt tình, chu đáo, luôn động viên về mặt tinh thần để tác giả có thể hoàn
thành luận văn này. Tác giả xin trân trọng cảm ơn tới các thầy cô của Viện
Toán Ứng dụng và Tin học, Phòng đào tạo Bộ phận quản lý đào tạo sau
đại học, Trường Đại học Bách khoa Hà Nội đã tạo mọi điều kiện thuận lợi
để tác giả hoàn thành luận văn này. Đồng thời, tác giả cũng gửi lời cảm ơn
tới công ty Grooo International đã tạo điều kiện để tác giả có đủ cơ sở vật
chất thực hiện việc nghiên cứu, phát triển và ứng dụng mô hình đề xuất vào
thực tế.
Sau cùng, tác giả xin gửi lời cảm ơn tới gia đình, người thân và bạn bè
đã luôn động viên giúp đỡ tác giả trong suốt quá trình thực hiện đề tài. Xin
chân thành cảm ơn mọi người!
Tóm tắt nội dung luận văn
Cuộc gọi làm phiền ngày càng trở nên nghiêm trọng và đã thu hút sự
chú ý đáng kể từ các nhà cung cấp viễn thông do tác hại rất lớn của nó
đối với tài chính và sự trải nghiệm của người dùng. Các hệ thống chống
cuộc gọi làm phiền hiện tại phải đối mặt với hai thách thức lớn: khả năng
mở rộng dữ liệu và hành vi gian lận của những người gọi làm phiền để cố
gắng vượt qua hệ thống. Luận văn này trình bày các giải pháp kỹ thuật để
cố gắng giải quyết thách thức này. Tác giả đề xuất hai phương pháp phát
hiện số điện thoại làm phiền gồm phương pháp sử dụng thuật toán Extreme
Gradient Boosting và phương pháp dựa trên đồ thị sử dụng Graph Neural
Network. Đồng thời, tác giả đề xuất một phương pháp Semi-supervised
learning kết hợp bởi thuật toán Co-train và phương pháp Active learning
để cải thiện hiệu suất phân loại và tối ưu khả năng mở rộng dữ liệu. Triển
khai trên tập dữ liệu được thu thập từ một ứng dụng chặn cuộc gọi làm
phiền có tên là Icaller. Kết quả của việc triển khai thể hiện tính hiệu quả
của phương pháp được đề xuất.
Từ khóa: SPIT, XGBoost, Graph Neural Networks, Semi-Supervised
learning, Co-train, Active learning.
Hà Nội, ngày 11 tháng 10 năm 2022
Giảng viên hướng dẫn Học viên
Kí và ghi rõ họ tên Kí và ghi rõ họ tên
Mục lục
Mở đầu 11
Chương 1: Cơ sở lý thuyết 12
1.1 Máy học . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.1.1 Tổng quan . . . . . . . . . . . . . . . . . . . . . . 12
1.1.2 Phương pháp Học kết hợp . . . . . . . . . . . . . . 13
1.1.3 Phương pháp Học chủ động . . . . . . . . . . . . . 16
1.2 Mạng nơ-ron nhân tạo . . . . . . . . . . . . . . . . . . . . 17
1.2.1 Cấu trúc mạng nơ-ron . . . . . . . . . . . . . . . . 17
1.2.2 Thuật toán lan truyền ngược . . . . . . . . . . . . 19
1.3 Phương pháp dựa trên đồ thị . . . . . . . . . . . . . . . . 21
1.3.1 Đồ thị . . . . . . . . . . . . . . . . . . . . . . . . 21
1.3.2 Nhúng đồ thị . . . . . . . . . . . . . . . . . . . . 22
Chương 2: Mô hình đề xuất 24
2.1 Thuật toán XGBoost . . . . . . . . . . . . . . . . . . . . 24
2.2 Kiến trúc Graph Neural Network . . . . . . . . . . . . . . 28
2.3 Thuật toán Đồng đào tạo . . . . . . . . . . . . . . . . . . 32
2.4 Mô hình kết hợp thuật toán Đồng đào tạo và phương pháp
Học chủ động . . . . . . . . . . . . . . . . . . . . . . . . 34
Chương 3: Cài đặt thực nghiệm và đánh giá 38
3.1 Phân tích thiết kế hệ thống . . . . . . . . . . . . . . . . . 38
3.2 Dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3 Kết quả thực nghiệm . . . . . . . . . . . . . . . . . . . . 46
4
Tổng kết 50
Chỉ mục 51
Tài liệu tham khảo 55
5
Danh sách hình vẽ
1.1 Thuật toán Đóng bao [15]. . . . . . . . . . . . . . . . . . 14
1.2 Thuật toán Tăng cường [15]. . . . . . . . . . . . . . . . . 15
1.3 Thuật toán xếp chồng [15]. . . . . . . . . . . . . . . . . . 15
1.4 Lấy mẫu không chắc chắn sẽ tìm thấy các mẫu gần với ranh
giới quyết định [20]. . . . . . . . . . . . . . . . . . . . . . 16
1.5 Lấy mẫu đa dạng sẽ tìm thấy các mẫu khác biệt tối đa với
các mẫu đào tạo hiện có [20]. . . . . . . . . . . . . . . . . 17
1.6 Nơ-ron nhân tạo . . . . . . . . . . . . . . . . . . . . . . . 18
1.7 Các hàm kích hoạt thường dùng: (a) Hàm Sigmoid; (b)
Hàm ReLU và hàm Softplus; (c) Hàm Tanh [27]. . . . . . 19
1.8 Mạng perceptron nhiều lớp [10]. . . . . . . . . . . . . . . 20
1.9 Hình A. Đồ thị của mạng xã hội Zachary Karate Club; Hình
B. Hình ảnh hai chiều của các nút nhúng được tạo ra từ đồ
thị [34]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1 Thuật toán Gradient Boosting Machine . . . . . . . . . . . 26
2.2 Khám phá vùng lân cận và chia sẻ thông tin giữa các nút
[34]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3 Phương pháp tổng hợp bởi các nút lân cận [34]. . . . . . . 30
2.4 Kiến trúc HybridGNNs . . . . . . . . . . . . . . . . . . . 32
2.5 Thuật toán Đồng đào tạo . . . . . . . . . . . . . . . . . . 33
2.6 Thuật toán Co2AL . . . . . . . . . . . . . . . . . . . . . 37
3.1 Ứng dụng Icaller chặn các cuộc gọi làm phiền . . . . . . . 39
3.2 Lược đồ quan hệ các bảng dữ liệu trong cơ sở dữ liệu Icaller. 40
3.3 Luồng hệ thống phát hiện số điện thoại làm phiền . . . . . 41
3.4 Tỉ lệ các loại mà người dùng đã báo cáo . . . . . . . . . . 42
6
3.5 Phân tích dữ liệu báo cáo . . . . . . . . . . . . . . . . . . 42
3.6 Mẫu dữ liệu nhật ký cuộc gọi . . . . . . . . . . . . . . . . 43
3.7 Số lượng cuộc gọi theo thời điểm . . . . . . . . . . . . . . 44
3.8 Trung bình các cuộc gọi có trong danh bạ của mỗi loại số
điện thoại . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.9 Số lượng cuộc gọi đi và cuộc gọi đến của mỗi loại số điện
thoại . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.10 Độ chính xác phân loại của mỗi thuật toán so sánh thay đổi
khi số lượng các phiên bản huấn luyện được gắn nhãn tăng
lên. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7
Danh sách bảng
3.1 Cấu trúc của bản ghi nhật ký dữ liệu. . . . . . . . . . . . . 43
3.2 Mô tả 15 đặc trưng đầu vào cho mô hình. . . . . . . . . . . 46
3.3 Kết quả của mô hình XGBoost . . . . . . . . . . . . . . . 47
3.4 Kết quả của hai mô hình . . . . . . . . . . . . . . . . . . . 48
8
Bảng ký hiệu và chữ viết tắt
True positive TP
False positive FP
True negative TN
False negative FN
Convolutional Neural Network CNN
Recurrent Neural Network RNN
Long short-term memory LSTM
Graph Neuron Network GNN
Extreme Gradient Boosting XGBoost
Gradient Tree Boosting GTB
Hybrid Graph Neuron Network HybridGNN
9
Mở đầu
Mặc dù là vấn đề lâu đời, nhưng các cuộc gọi quấy rối đặc biệt là các
cuộc gọi lừa đảo vẫn đang gây chú ý trên toàn cầu vì tác động mà chúng
mang lại rất lớn đối với tài chính và sự trải nghiệm của người dùng. Đặc
biệt với sự phát triển nhanh chóng của công nghệ Internet cùng với thời
điểm đại dịch COVID-19 toàn cầu, các cuộc gọi quấy rối và lừa đảo càng
ngày càng gia tăng. Những kẻ lừa đảo cố gắng dụ dỗ mọi người mua thuốc,
vắc-xin giả, kêu gọi đầu tư, cho vay không hợp pháp,.... Những người này
thường nghe có vẻ rất chuyên nghiệp khi họ gọi cho nạn nhân của họ, vì
vậy mọi người rất dễ bị lừa, đặc biệt là khi chúng ta đang ở trong một giai
đoạn dễ bị tổn thương liên quan đến sức khỏe và tài chính như ở trong đại
dịch COVID-19.
Theo dữ liệu năm 2020 của Hiya [9], ước tính chỉ riêng Bắc Mỹ và Tây
Âu đã nhận được khoảng 157 tỷ cuộc gọi rác. Người dùng ở những khu vực
đó đã bị ảnh hưởng trung bình 144 cuộc gọi làm phiền trong năm qua, 38%
của tất cả các cuộc gọi làm phiền dẫn đến tổn thất tiền tệ, với trung bình
là $182.00 cho mỗi cuộc gọi. Ở Việt Nam, vào tháng 7/2020, Bộ TT&TT
yêu cầu các nhà mạng thực hiện các biện pháp ngăn chặn cuộc gọi giả mạo
[33], cuộc gọi rác trên cơ sở quy định của Luật Bảo vệ quyền lợi người
tiêu dùng và Nghị định số 91/2020/NĐ-CP của Thủ tướng Chính phủ. Tính
đến cuối tháng 6 năm 2021, các nhà mạng trong nước đã chặn hơn 181.000
thuê bao phát tán cuộc gọi rác, các nhà cung cấp dịch vụ viễn thông Việt
Nam đã ngăn chặn được hơn 56,65 triệu cuộc gọi giả mạo. Có thể thấy đó
là sự thành công đáng kinh ngạc trong nỗ lực ngăn chặn cuộc gọi làm phiền
ở Việt Nam. Tuy nhiên, thật không may, các doanh nghiệp hợp pháp cần
thực hiện các cuộc gọi đi thường xuyên đến khách hàng tiềm năng dẫn đến
việc họ đang vô tình bị lọc ra hoặc gắn cờ bởi các hệ thống có ý định tốt
10
nhằm bảo vệ người tiêu dùng. Hơn nữa, những kẻ lừa đảo càng ngày càng
tinh vi và họ không ngừng nỗ lực để vượt qua các hệ thống chống cuộc gọi
làm phiền.
Khái niệm cuộc gọi làm phiền dùng để chỉ những cuộc gọi quấy rối,
quảng cáo, lừa đảo, phát tán phần mềm độc hại,... Nói một cách đơn giản,
cuộc gọi làm phiền là loại cuộc gọi không mong muốn xảy ra khi một người
hoặc công ty gọi cho một số lượng người cực kỳ lớn cùng lúc.
Có nhiều giải pháp khác nhau được phát triển trên thị trường để chặn
các cuộc gọi làm phiền. Một số giải pháp phân tích các cuộc gọi làm phiền
khi mọi người gọi cho các nhà cung cấp dịch vụ để phàn nàn về một số số
điện thoại nhất định và sau đó nhà cung cấp dịch vụ chặn các số điện thoại
cụ thể đó. Các giải pháp khác bao gồm danh sách những kẻ gọi làm phiền
đã biết để chặn cuộc gọi. Hiện nay, giải pháp được quan tâm và tiềm năng
nhất đó là ứng dụng Máy học để đào tạo mô hình phát hiện cuộc gọi làm
phiền.
Với mong muốn tạo một mô hình Máy học có khả năng phát hiện và
ngăn chặn những cuộc gọi làm phiền hiệu quả, góp phần bảo vệ và nâng
cao trải nghiệm của người dùng, tôi đề xuất đề tài "Một số phương pháp
xác định cuộc gọi làm phiền" làm đề tài luận văn của mình.
11
Chương 1
Cơ sở lý thuyết
1.1 Máy học
1.1.1 Tổng quan
Máy học (Machine Learning) [14] là một lĩnh vực của trí tuệ nhân tạo
liên quan đến việc nghiên cứu và xây dựng các hệ thống cho phép máy tính
có thể học dựa trên dữ liệu để giải quyết những vấn đề cụ thể.
Ứng dụng của Máy học trong những năm gần đây xuất hiện ở khắp mọi
nơi, từ việc nhận dạng khuôn mặt, vân tay, cử chỉ, tiếng nói đến các hệ
thống quản trị rủi ro tài chính, các mô hình xử lí ảnh y khoa,... Máy học
có thể ứng dụng hầu hết các loại dữ liệu từ cấu trúc (bảng số liệu kinh tế,
số liệu nông nghiệp,...) và cả dữ liệu phi cấu trúc (hình ảnh, văn bản, tín
hiệu âm thanh,...). Các thuật toán Máy học thường được chia thành bốn loại
chính [14] gồm có:
Học có giám sát
Học có giám sát (Supervised learning): thuật toán học nhận một số ví
dụ huấn luyện và nhãn tương ứng để xây dựng một hàm dự đoán đầu ra
mong muốn. Đầu ra của một hàm có thể là một giá trị liên tục, thuật toán
này gọi là Hồi quy (Regression), hay thuật toán Phân loại (Classification)
với đầu ra dùng để dự đoán một nhãn phân loại cho một đối tượng đầu vào.
Để xây dựng mô hình học có giám sát thường phải có sự nỗ lực từ con
người để gán nhãn cho tập dữ liệu.
Học không giám sát
12
Học không giám sát (Unsupervised learning): Không có bất kì nhãn
nào được cung cấp cho thuật toán học, thuật toán sẽ đi tìm cấu trúc bên
trong dữ liệu để thực hiện các nhiệm vụ nhất định, ví du như phân cụm
(Clustering), giảm số chiều của dữ liệu (Dimension reduction), tìm luật kết
hợp (Association),...
Học bán giám sát
Học bán giám sát (Semi-supervised learning): là một lớp kỹ thuật Máy
học sử dụng cả các ví dụ được gắn nhãn và không được gắn nhãn khi huấn
luyện một mô hình. Các ví dụ được gắn nhãn được sử dụng để tìm hiểu các
lớp của dữ liệu và các ví dụ không được gắn nhãn được sử dụng để tinh
chỉnh ranh giới giữa các lớp.
Học tăng cường
Học tăng cường (Reinforcement learning): dữ liệu huấn luyện sẽ được
thuật toán học xây dựng mô hình, mô hình này dùng để dự đoán và nhận
phản hồi từ môi trường từ đó tự động cải thiện mô hình. Một số bài toán
tiêu biểu cho hình thức học tăng cường là là công nghệ xe tự lái, tự động
chơi game,. . .
1.1.2 Phương pháp Học kết hợp
Học kết hợp (Ensemble Learning) [37] là một cách tiếp cận nhằm tìm
kiếm hiệu suất dự đoán tốt hơn cho mô hình Máy học bằng cách kết hợp
các dự đoán từ nhiều bộ phân loại khác nhau. Học kết hợp có thể được coi
là một cách để bù đắp cho các thuật toán học kém bằng cách thực hiện
nhiều tính toán bổ sung. Sự thành công của một hệ thống học kết hợp phụ
thuộc vào sự đa dạng của các bộ phân loại, nếu mỗi bộ phân loại mắc các
lỗi khác nhau, các bộ phân loại sẽ học được nhiều thông tin hơn, sự kết hợp
của các bộ phân loại này có thể làm giảm tổng lỗi và cải thiện mô hình.
Học kết hợp được chia thành ba loại chính gồm:
Đóng bao
Đóng bao (Bagging) [17] là một trong những thuật toán học kết hợp ra
đời sớm nhất, trực quan và đơn giản nhất. Ý tưởng của thuật toán này là
dùng các tập hợp con khác nhau của dữ liệu để huấn luyện. Mỗi tập hợp con
13
dữ liệu được sử dụng để huấn luyện một bộ phân loại khác nhau và cùng
loại thuật toán. Các bộ phân loại riêng lẽ sau đó được kết hợp bằng cách bỏ
phiếu đa số, tức là đối với bất kỳ trường hợp nhất định nào, lớp được chọn
bởi hầu hết các bộ phân loại sẽ là quyết định tổng hợp cuối cùng. Các thuật
toán Đóng bao gồm Bagged Decision Trees [24], Random Subspaces [26],
Random Forest [32],...
Hình 1.1: Thuật toán Đóng bao [15].
Tăng cường
Tăng cường (Boosting) [23] là một thuật toán tương tự như Đóng bao,
thuật toán này cũng tạo ra một nhóm các bộ phân loại bằng cách lấy mẫu
lại dữ liệu, sau đó được kết hợp bằng cách bỏ phiếu đa số. Tuy nhiên, trong
thuật toán Tăng cường, tập dữ liệu huấn luyện cho mỗi bộ phân loại tiếp
theo tập trung vào trường hợp được phân loại sai bởi các bộ phân loại được
huấn luyện trước đó. Thuật toán này xây dựng các bộ phân loại mà mỗi bộ
phân loại sau sẽ học cách sửa chữa lỗi của các bộ phân loại trước tạo thành
một chuỗi các bộ phân loại mà cái sau sẽ tốt hơn cái trước. Các thuật toán
tăng cường có thể kể đến như AdaBoost [22], Gradient Boosting Machine
[12], Stochastic Gradient Boosting [11], XGBoost [31], LightGBM [8],...
14
Hình 1.2: Thuật toán Tăng cường [15].
Xếp chồng
Trong Xếp chồng (Stacking) [6], đầu tiên, tất cả các bộ phân loại khác
được huấn luyện bằng cách sử dụng dữ liệu có sẵn, sau đó một thuật toán
kết hợp được huấn luyện để đưa ra dự đoán cuối cùng bằng cách sử dụng
tất cả các dự đoán của các thuật toán khác làm đầu vào.
[15]
Hình 1.3: Thuật toán xếp chồng [15].
15
1.1.3 Phương pháp Học chủ động
Học chủ động (Active learning) [4] là một phương pháp Máy học tương
tác với người dùng để gán nhãn các mẫu dữ liệu chưa được gán nhãn nhằm
tối ưu hóa chất lượng mô hình dựa trên kiến thức của người gán nhãn.
Thách thức chính của Học chủ động chính là tìm ra truy vấn tối ưu để đưa
cho người dùng gán nhãn. Truy vấn tối ưu là quá trình tìm kiếm những cá
thể mà việc có nhãn của chúng sẽ được nhiều cải tiến nhất trong mô hình
với số lượng truy vấn ít nhất. Hai chiến lược lựa chọn truy vấn gồm:
• Lấy mẫu không chắc chắn (Uncertainty sampling): là tập hợp các
kỹ thuật để xác định các mẫu không được gắn nhãn ở gần ranh giới
quyết định trong mô hình học máy (Hình 1.4). Các mẫu dữ liệu này
được mô hình cho rằng không chắc chắn trong việc dự đoán, hay có
thể nói rằng đây là những mẫu mà mô hình "biết nó không biết".
Hình 1.4: Lấy mẫu không chắc chắn sẽ tìm thấy các mẫu gần với ranh giới
quyết định [20].
• Lấy mẫu đa dạng (Diversity sampling): ý tưởng chính của lấy mẫu
đa dạng chính là xác định đâu là các điểm thiếu sót trong mô hình:
mô hình "không biết rằng nó không biết" hoặc xác định "ẩn số chưa
biết" để khám phá và mở rộng ranh giới quyết định (Hình 1.5)
16
Hình 1.5: Lấy mẫu đa dạng sẽ tìm thấy các mẫu khác biệt tối đa với các
mẫu đào tạo hiện có [20].
1.2 Mạng nơ-ron nhân tạo
1.2.1 Cấu trúc mạng nơ-ron
Mạng nơ-ron nhân tạo (Artificial Neural Network hay Neural network)
là một mô hình tính toán được xây dựng phỏng theo các mạng nơ-ron sinh
học [27]. Các đơn vị cơ bản của mạng là các nơ-ron, một mạng nơ-ron
được cấu thành bởi các nơ-ron đơn lẻ được gọi là các percepton. Các nơ-
ron có thể nhận một loạt đầu vào và trả về đầu ra tương ứng. Hình 1.6 là
một nơ-ron nhân tạo điển hình, trong đó nơ-ron nhận n đầu vào x1 , x2 , ..., xn
với các trọng số tương ứng w1 , w2 , ..., wn và hệ số bias b. Sau đó, tổng trọng
số y = ∑ni=1 wi xi + b chuyển qua một hàm kích hoạt f và nơ-ron trả về kết
quả đầu ra z = f (y). Đầu ra sẽ là đầu vào của nơ-ron tiếp theo. Các nơ-ron
trong mạng kết nối với nhau theo một chiều duy nhất, quá trình này được
gọi là lan truyền tiến (Feedforward).
17
Hình 1.6: Nơ-ron nhân tạo
Hàm kích hoạt (Activation function) thường là một hàm phi tuyến, dùng
để ánh xạ tổng trọng số của đầu vào thành đầu ra tương tứng phụ thuộc vào
vấn đề của bài toán. Một số hàm kích hoạt thường dùng như:
• Hàm Sigmoid:
1
σ (x) = .
1 + e−x
• Hàm Tanh:
ex − e−x
tanh(x) = .
ex + e−x
• Hàm ReLU:
0 x ≤ 0,
ReLU(x) =
x x > 0.
• Hàm softplus, một phiên bản của ReLu:
softplus(x) = log(1 + ex ).
18
Hình 1.7: Các hàm kích hoạt thường dùng: (a) Hàm Sigmoid; (b) Hàm
ReLU và hàm Softplus; (c) Hàm Tanh [27].
1.2.2 Thuật toán lan truyền ngược
Trong quá trình huấn luyện mạng nơ-ron, thuật toán lan truyền ngược
(Backpropagation) [19] được sử dụng phổ biến nhất dùng để tối ưu hóa các
tham số trong một mô hình. Đối với mạng như Hình 1.6, giả sử mục tiêu
tối ưu hóa cho đầu ra z là z0 , theo Quy tắc dây chuyền (Chain rule), đạo
hàm của z đối với wi và b như sau:
∂z ∂z ∂y
=
∂ wi ∂ y ∂ wi
∂ f (y)
= xi ,
∂y
∂z ∂z ∂y
=
∂b ∂y ∂b
∂ f (y)
= .
∂y
Mỗi tham số w và b sẽ được cập nhật theo tham số tốc độ học tập η
(learning rate):
∂z
∆wi = η(z0 − z)
∂ wi
∂ f (y)
= η(z0 − z)xi ,
∂y
19
LUẬN VĂN THẠC SĨ
Một số phương pháp xác định
cuộc gọi làm phiền
NGUYỄN VĂN LONG
[email protected]
Ngành Toán Tin
Giảng viên hướng dẫn: TS. Lê Chí Ngọc
Viện: Toán ứng dụng và Tin học Chữ ký của GVHD
HÀ NỘI, 10/2022
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn : Nguyễn Văn Long
Đề tài luận văn: Một số phương pháp xác định cuộc gọi làm phiền
Chuyên ngành: Toán Tin
Mã số SV: 20202826M
Tác giả, Người hướng dẫn khoa học và Hội đồng chấm luận văn
xác nhận tác giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng
ngày 31 tháng 10 năm 2022 với các nội dung sau:
Sửa một số lỗi soạn thảo, câu chữ, công thức tại các trang 17, 22,
24, 26, 28, 30, 31, 33, 36, 37, 42.
Ngày 31 tháng 10 năm 2022
Giáo viên hướng dẫn Tác giả luận văn
CHỦ TỊCH HỘI ĐỒNG
Lời cảm ơn
Tác giả xin gửi lời cảm ơn trân trọng sâu sắc nhất tới người thầy cố
vấn của tác giả, TS. Lê Chí Ngọc - người thầy đã đưa tác giả đến với lĩnh
vực Trí tuệ nhân tạo, người định hướng, trực tiếp hướng dẫn tác giả hết sức
nhiệt tình, chu đáo, luôn động viên về mặt tinh thần để tác giả có thể hoàn
thành luận văn này. Tác giả xin trân trọng cảm ơn tới các thầy cô của Viện
Toán Ứng dụng và Tin học, Phòng đào tạo Bộ phận quản lý đào tạo sau
đại học, Trường Đại học Bách khoa Hà Nội đã tạo mọi điều kiện thuận lợi
để tác giả hoàn thành luận văn này. Đồng thời, tác giả cũng gửi lời cảm ơn
tới công ty Grooo International đã tạo điều kiện để tác giả có đủ cơ sở vật
chất thực hiện việc nghiên cứu, phát triển và ứng dụng mô hình đề xuất vào
thực tế.
Sau cùng, tác giả xin gửi lời cảm ơn tới gia đình, người thân và bạn bè
đã luôn động viên giúp đỡ tác giả trong suốt quá trình thực hiện đề tài. Xin
chân thành cảm ơn mọi người!
Tóm tắt nội dung luận văn
Cuộc gọi làm phiền ngày càng trở nên nghiêm trọng và đã thu hút sự
chú ý đáng kể từ các nhà cung cấp viễn thông do tác hại rất lớn của nó
đối với tài chính và sự trải nghiệm của người dùng. Các hệ thống chống
cuộc gọi làm phiền hiện tại phải đối mặt với hai thách thức lớn: khả năng
mở rộng dữ liệu và hành vi gian lận của những người gọi làm phiền để cố
gắng vượt qua hệ thống. Luận văn này trình bày các giải pháp kỹ thuật để
cố gắng giải quyết thách thức này. Tác giả đề xuất hai phương pháp phát
hiện số điện thoại làm phiền gồm phương pháp sử dụng thuật toán Extreme
Gradient Boosting và phương pháp dựa trên đồ thị sử dụng Graph Neural
Network. Đồng thời, tác giả đề xuất một phương pháp Semi-supervised
learning kết hợp bởi thuật toán Co-train và phương pháp Active learning
để cải thiện hiệu suất phân loại và tối ưu khả năng mở rộng dữ liệu. Triển
khai trên tập dữ liệu được thu thập từ một ứng dụng chặn cuộc gọi làm
phiền có tên là Icaller. Kết quả của việc triển khai thể hiện tính hiệu quả
của phương pháp được đề xuất.
Từ khóa: SPIT, XGBoost, Graph Neural Networks, Semi-Supervised
learning, Co-train, Active learning.
Hà Nội, ngày 11 tháng 10 năm 2022
Giảng viên hướng dẫn Học viên
Kí và ghi rõ họ tên Kí và ghi rõ họ tên
Mục lục
Mở đầu 11
Chương 1: Cơ sở lý thuyết 12
1.1 Máy học . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.1.1 Tổng quan . . . . . . . . . . . . . . . . . . . . . . 12
1.1.2 Phương pháp Học kết hợp . . . . . . . . . . . . . . 13
1.1.3 Phương pháp Học chủ động . . . . . . . . . . . . . 16
1.2 Mạng nơ-ron nhân tạo . . . . . . . . . . . . . . . . . . . . 17
1.2.1 Cấu trúc mạng nơ-ron . . . . . . . . . . . . . . . . 17
1.2.2 Thuật toán lan truyền ngược . . . . . . . . . . . . 19
1.3 Phương pháp dựa trên đồ thị . . . . . . . . . . . . . . . . 21
1.3.1 Đồ thị . . . . . . . . . . . . . . . . . . . . . . . . 21
1.3.2 Nhúng đồ thị . . . . . . . . . . . . . . . . . . . . 22
Chương 2: Mô hình đề xuất 24
2.1 Thuật toán XGBoost . . . . . . . . . . . . . . . . . . . . 24
2.2 Kiến trúc Graph Neural Network . . . . . . . . . . . . . . 28
2.3 Thuật toán Đồng đào tạo . . . . . . . . . . . . . . . . . . 32
2.4 Mô hình kết hợp thuật toán Đồng đào tạo và phương pháp
Học chủ động . . . . . . . . . . . . . . . . . . . . . . . . 34
Chương 3: Cài đặt thực nghiệm và đánh giá 38
3.1 Phân tích thiết kế hệ thống . . . . . . . . . . . . . . . . . 38
3.2 Dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3 Kết quả thực nghiệm . . . . . . . . . . . . . . . . . . . . 46
4
Tổng kết 50
Chỉ mục 51
Tài liệu tham khảo 55
5
Danh sách hình vẽ
1.1 Thuật toán Đóng bao [15]. . . . . . . . . . . . . . . . . . 14
1.2 Thuật toán Tăng cường [15]. . . . . . . . . . . . . . . . . 15
1.3 Thuật toán xếp chồng [15]. . . . . . . . . . . . . . . . . . 15
1.4 Lấy mẫu không chắc chắn sẽ tìm thấy các mẫu gần với ranh
giới quyết định [20]. . . . . . . . . . . . . . . . . . . . . . 16
1.5 Lấy mẫu đa dạng sẽ tìm thấy các mẫu khác biệt tối đa với
các mẫu đào tạo hiện có [20]. . . . . . . . . . . . . . . . . 17
1.6 Nơ-ron nhân tạo . . . . . . . . . . . . . . . . . . . . . . . 18
1.7 Các hàm kích hoạt thường dùng: (a) Hàm Sigmoid; (b)
Hàm ReLU và hàm Softplus; (c) Hàm Tanh [27]. . . . . . 19
1.8 Mạng perceptron nhiều lớp [10]. . . . . . . . . . . . . . . 20
1.9 Hình A. Đồ thị của mạng xã hội Zachary Karate Club; Hình
B. Hình ảnh hai chiều của các nút nhúng được tạo ra từ đồ
thị [34]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1 Thuật toán Gradient Boosting Machine . . . . . . . . . . . 26
2.2 Khám phá vùng lân cận và chia sẻ thông tin giữa các nút
[34]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3 Phương pháp tổng hợp bởi các nút lân cận [34]. . . . . . . 30
2.4 Kiến trúc HybridGNNs . . . . . . . . . . . . . . . . . . . 32
2.5 Thuật toán Đồng đào tạo . . . . . . . . . . . . . . . . . . 33
2.6 Thuật toán Co2AL . . . . . . . . . . . . . . . . . . . . . 37
3.1 Ứng dụng Icaller chặn các cuộc gọi làm phiền . . . . . . . 39
3.2 Lược đồ quan hệ các bảng dữ liệu trong cơ sở dữ liệu Icaller. 40
3.3 Luồng hệ thống phát hiện số điện thoại làm phiền . . . . . 41
3.4 Tỉ lệ các loại mà người dùng đã báo cáo . . . . . . . . . . 42
6
3.5 Phân tích dữ liệu báo cáo . . . . . . . . . . . . . . . . . . 42
3.6 Mẫu dữ liệu nhật ký cuộc gọi . . . . . . . . . . . . . . . . 43
3.7 Số lượng cuộc gọi theo thời điểm . . . . . . . . . . . . . . 44
3.8 Trung bình các cuộc gọi có trong danh bạ của mỗi loại số
điện thoại . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.9 Số lượng cuộc gọi đi và cuộc gọi đến của mỗi loại số điện
thoại . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.10 Độ chính xác phân loại của mỗi thuật toán so sánh thay đổi
khi số lượng các phiên bản huấn luyện được gắn nhãn tăng
lên. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7
Danh sách bảng
3.1 Cấu trúc của bản ghi nhật ký dữ liệu. . . . . . . . . . . . . 43
3.2 Mô tả 15 đặc trưng đầu vào cho mô hình. . . . . . . . . . . 46
3.3 Kết quả của mô hình XGBoost . . . . . . . . . . . . . . . 47
3.4 Kết quả của hai mô hình . . . . . . . . . . . . . . . . . . . 48
8
Bảng ký hiệu và chữ viết tắt
True positive TP
False positive FP
True negative TN
False negative FN
Convolutional Neural Network CNN
Recurrent Neural Network RNN
Long short-term memory LSTM
Graph Neuron Network GNN
Extreme Gradient Boosting XGBoost
Gradient Tree Boosting GTB
Hybrid Graph Neuron Network HybridGNN
9
Mở đầu
Mặc dù là vấn đề lâu đời, nhưng các cuộc gọi quấy rối đặc biệt là các
cuộc gọi lừa đảo vẫn đang gây chú ý trên toàn cầu vì tác động mà chúng
mang lại rất lớn đối với tài chính và sự trải nghiệm của người dùng. Đặc
biệt với sự phát triển nhanh chóng của công nghệ Internet cùng với thời
điểm đại dịch COVID-19 toàn cầu, các cuộc gọi quấy rối và lừa đảo càng
ngày càng gia tăng. Những kẻ lừa đảo cố gắng dụ dỗ mọi người mua thuốc,
vắc-xin giả, kêu gọi đầu tư, cho vay không hợp pháp,.... Những người này
thường nghe có vẻ rất chuyên nghiệp khi họ gọi cho nạn nhân của họ, vì
vậy mọi người rất dễ bị lừa, đặc biệt là khi chúng ta đang ở trong một giai
đoạn dễ bị tổn thương liên quan đến sức khỏe và tài chính như ở trong đại
dịch COVID-19.
Theo dữ liệu năm 2020 của Hiya [9], ước tính chỉ riêng Bắc Mỹ và Tây
Âu đã nhận được khoảng 157 tỷ cuộc gọi rác. Người dùng ở những khu vực
đó đã bị ảnh hưởng trung bình 144 cuộc gọi làm phiền trong năm qua, 38%
của tất cả các cuộc gọi làm phiền dẫn đến tổn thất tiền tệ, với trung bình
là $182.00 cho mỗi cuộc gọi. Ở Việt Nam, vào tháng 7/2020, Bộ TT&TT
yêu cầu các nhà mạng thực hiện các biện pháp ngăn chặn cuộc gọi giả mạo
[33], cuộc gọi rác trên cơ sở quy định của Luật Bảo vệ quyền lợi người
tiêu dùng và Nghị định số 91/2020/NĐ-CP của Thủ tướng Chính phủ. Tính
đến cuối tháng 6 năm 2021, các nhà mạng trong nước đã chặn hơn 181.000
thuê bao phát tán cuộc gọi rác, các nhà cung cấp dịch vụ viễn thông Việt
Nam đã ngăn chặn được hơn 56,65 triệu cuộc gọi giả mạo. Có thể thấy đó
là sự thành công đáng kinh ngạc trong nỗ lực ngăn chặn cuộc gọi làm phiền
ở Việt Nam. Tuy nhiên, thật không may, các doanh nghiệp hợp pháp cần
thực hiện các cuộc gọi đi thường xuyên đến khách hàng tiềm năng dẫn đến
việc họ đang vô tình bị lọc ra hoặc gắn cờ bởi các hệ thống có ý định tốt
10
nhằm bảo vệ người tiêu dùng. Hơn nữa, những kẻ lừa đảo càng ngày càng
tinh vi và họ không ngừng nỗ lực để vượt qua các hệ thống chống cuộc gọi
làm phiền.
Khái niệm cuộc gọi làm phiền dùng để chỉ những cuộc gọi quấy rối,
quảng cáo, lừa đảo, phát tán phần mềm độc hại,... Nói một cách đơn giản,
cuộc gọi làm phiền là loại cuộc gọi không mong muốn xảy ra khi một người
hoặc công ty gọi cho một số lượng người cực kỳ lớn cùng lúc.
Có nhiều giải pháp khác nhau được phát triển trên thị trường để chặn
các cuộc gọi làm phiền. Một số giải pháp phân tích các cuộc gọi làm phiền
khi mọi người gọi cho các nhà cung cấp dịch vụ để phàn nàn về một số số
điện thoại nhất định và sau đó nhà cung cấp dịch vụ chặn các số điện thoại
cụ thể đó. Các giải pháp khác bao gồm danh sách những kẻ gọi làm phiền
đã biết để chặn cuộc gọi. Hiện nay, giải pháp được quan tâm và tiềm năng
nhất đó là ứng dụng Máy học để đào tạo mô hình phát hiện cuộc gọi làm
phiền.
Với mong muốn tạo một mô hình Máy học có khả năng phát hiện và
ngăn chặn những cuộc gọi làm phiền hiệu quả, góp phần bảo vệ và nâng
cao trải nghiệm của người dùng, tôi đề xuất đề tài "Một số phương pháp
xác định cuộc gọi làm phiền" làm đề tài luận văn của mình.
11
Chương 1
Cơ sở lý thuyết
1.1 Máy học
1.1.1 Tổng quan
Máy học (Machine Learning) [14] là một lĩnh vực của trí tuệ nhân tạo
liên quan đến việc nghiên cứu và xây dựng các hệ thống cho phép máy tính
có thể học dựa trên dữ liệu để giải quyết những vấn đề cụ thể.
Ứng dụng của Máy học trong những năm gần đây xuất hiện ở khắp mọi
nơi, từ việc nhận dạng khuôn mặt, vân tay, cử chỉ, tiếng nói đến các hệ
thống quản trị rủi ro tài chính, các mô hình xử lí ảnh y khoa,... Máy học
có thể ứng dụng hầu hết các loại dữ liệu từ cấu trúc (bảng số liệu kinh tế,
số liệu nông nghiệp,...) và cả dữ liệu phi cấu trúc (hình ảnh, văn bản, tín
hiệu âm thanh,...). Các thuật toán Máy học thường được chia thành bốn loại
chính [14] gồm có:
Học có giám sát
Học có giám sát (Supervised learning): thuật toán học nhận một số ví
dụ huấn luyện và nhãn tương ứng để xây dựng một hàm dự đoán đầu ra
mong muốn. Đầu ra của một hàm có thể là một giá trị liên tục, thuật toán
này gọi là Hồi quy (Regression), hay thuật toán Phân loại (Classification)
với đầu ra dùng để dự đoán một nhãn phân loại cho một đối tượng đầu vào.
Để xây dựng mô hình học có giám sát thường phải có sự nỗ lực từ con
người để gán nhãn cho tập dữ liệu.
Học không giám sát
12
Học không giám sát (Unsupervised learning): Không có bất kì nhãn
nào được cung cấp cho thuật toán học, thuật toán sẽ đi tìm cấu trúc bên
trong dữ liệu để thực hiện các nhiệm vụ nhất định, ví du như phân cụm
(Clustering), giảm số chiều của dữ liệu (Dimension reduction), tìm luật kết
hợp (Association),...
Học bán giám sát
Học bán giám sát (Semi-supervised learning): là một lớp kỹ thuật Máy
học sử dụng cả các ví dụ được gắn nhãn và không được gắn nhãn khi huấn
luyện một mô hình. Các ví dụ được gắn nhãn được sử dụng để tìm hiểu các
lớp của dữ liệu và các ví dụ không được gắn nhãn được sử dụng để tinh
chỉnh ranh giới giữa các lớp.
Học tăng cường
Học tăng cường (Reinforcement learning): dữ liệu huấn luyện sẽ được
thuật toán học xây dựng mô hình, mô hình này dùng để dự đoán và nhận
phản hồi từ môi trường từ đó tự động cải thiện mô hình. Một số bài toán
tiêu biểu cho hình thức học tăng cường là là công nghệ xe tự lái, tự động
chơi game,. . .
1.1.2 Phương pháp Học kết hợp
Học kết hợp (Ensemble Learning) [37] là một cách tiếp cận nhằm tìm
kiếm hiệu suất dự đoán tốt hơn cho mô hình Máy học bằng cách kết hợp
các dự đoán từ nhiều bộ phân loại khác nhau. Học kết hợp có thể được coi
là một cách để bù đắp cho các thuật toán học kém bằng cách thực hiện
nhiều tính toán bổ sung. Sự thành công của một hệ thống học kết hợp phụ
thuộc vào sự đa dạng của các bộ phân loại, nếu mỗi bộ phân loại mắc các
lỗi khác nhau, các bộ phân loại sẽ học được nhiều thông tin hơn, sự kết hợp
của các bộ phân loại này có thể làm giảm tổng lỗi và cải thiện mô hình.
Học kết hợp được chia thành ba loại chính gồm:
Đóng bao
Đóng bao (Bagging) [17] là một trong những thuật toán học kết hợp ra
đời sớm nhất, trực quan và đơn giản nhất. Ý tưởng của thuật toán này là
dùng các tập hợp con khác nhau của dữ liệu để huấn luyện. Mỗi tập hợp con
13
dữ liệu được sử dụng để huấn luyện một bộ phân loại khác nhau và cùng
loại thuật toán. Các bộ phân loại riêng lẽ sau đó được kết hợp bằng cách bỏ
phiếu đa số, tức là đối với bất kỳ trường hợp nhất định nào, lớp được chọn
bởi hầu hết các bộ phân loại sẽ là quyết định tổng hợp cuối cùng. Các thuật
toán Đóng bao gồm Bagged Decision Trees [24], Random Subspaces [26],
Random Forest [32],...
Hình 1.1: Thuật toán Đóng bao [15].
Tăng cường
Tăng cường (Boosting) [23] là một thuật toán tương tự như Đóng bao,
thuật toán này cũng tạo ra một nhóm các bộ phân loại bằng cách lấy mẫu
lại dữ liệu, sau đó được kết hợp bằng cách bỏ phiếu đa số. Tuy nhiên, trong
thuật toán Tăng cường, tập dữ liệu huấn luyện cho mỗi bộ phân loại tiếp
theo tập trung vào trường hợp được phân loại sai bởi các bộ phân loại được
huấn luyện trước đó. Thuật toán này xây dựng các bộ phân loại mà mỗi bộ
phân loại sau sẽ học cách sửa chữa lỗi của các bộ phân loại trước tạo thành
một chuỗi các bộ phân loại mà cái sau sẽ tốt hơn cái trước. Các thuật toán
tăng cường có thể kể đến như AdaBoost [22], Gradient Boosting Machine
[12], Stochastic Gradient Boosting [11], XGBoost [31], LightGBM [8],...
14
Hình 1.2: Thuật toán Tăng cường [15].
Xếp chồng
Trong Xếp chồng (Stacking) [6], đầu tiên, tất cả các bộ phân loại khác
được huấn luyện bằng cách sử dụng dữ liệu có sẵn, sau đó một thuật toán
kết hợp được huấn luyện để đưa ra dự đoán cuối cùng bằng cách sử dụng
tất cả các dự đoán của các thuật toán khác làm đầu vào.
[15]
Hình 1.3: Thuật toán xếp chồng [15].
15
1.1.3 Phương pháp Học chủ động
Học chủ động (Active learning) [4] là một phương pháp Máy học tương
tác với người dùng để gán nhãn các mẫu dữ liệu chưa được gán nhãn nhằm
tối ưu hóa chất lượng mô hình dựa trên kiến thức của người gán nhãn.
Thách thức chính của Học chủ động chính là tìm ra truy vấn tối ưu để đưa
cho người dùng gán nhãn. Truy vấn tối ưu là quá trình tìm kiếm những cá
thể mà việc có nhãn của chúng sẽ được nhiều cải tiến nhất trong mô hình
với số lượng truy vấn ít nhất. Hai chiến lược lựa chọn truy vấn gồm:
• Lấy mẫu không chắc chắn (Uncertainty sampling): là tập hợp các
kỹ thuật để xác định các mẫu không được gắn nhãn ở gần ranh giới
quyết định trong mô hình học máy (Hình 1.4). Các mẫu dữ liệu này
được mô hình cho rằng không chắc chắn trong việc dự đoán, hay có
thể nói rằng đây là những mẫu mà mô hình "biết nó không biết".
Hình 1.4: Lấy mẫu không chắc chắn sẽ tìm thấy các mẫu gần với ranh giới
quyết định [20].
• Lấy mẫu đa dạng (Diversity sampling): ý tưởng chính của lấy mẫu
đa dạng chính là xác định đâu là các điểm thiếu sót trong mô hình:
mô hình "không biết rằng nó không biết" hoặc xác định "ẩn số chưa
biết" để khám phá và mở rộng ranh giới quyết định (Hình 1.5)
16
Hình 1.5: Lấy mẫu đa dạng sẽ tìm thấy các mẫu khác biệt tối đa với các
mẫu đào tạo hiện có [20].
1.2 Mạng nơ-ron nhân tạo
1.2.1 Cấu trúc mạng nơ-ron
Mạng nơ-ron nhân tạo (Artificial Neural Network hay Neural network)
là một mô hình tính toán được xây dựng phỏng theo các mạng nơ-ron sinh
học [27]. Các đơn vị cơ bản của mạng là các nơ-ron, một mạng nơ-ron
được cấu thành bởi các nơ-ron đơn lẻ được gọi là các percepton. Các nơ-
ron có thể nhận một loạt đầu vào và trả về đầu ra tương ứng. Hình 1.6 là
một nơ-ron nhân tạo điển hình, trong đó nơ-ron nhận n đầu vào x1 , x2 , ..., xn
với các trọng số tương ứng w1 , w2 , ..., wn và hệ số bias b. Sau đó, tổng trọng
số y = ∑ni=1 wi xi + b chuyển qua một hàm kích hoạt f và nơ-ron trả về kết
quả đầu ra z = f (y). Đầu ra sẽ là đầu vào của nơ-ron tiếp theo. Các nơ-ron
trong mạng kết nối với nhau theo một chiều duy nhất, quá trình này được
gọi là lan truyền tiến (Feedforward).
17
Hình 1.6: Nơ-ron nhân tạo
Hàm kích hoạt (Activation function) thường là một hàm phi tuyến, dùng
để ánh xạ tổng trọng số của đầu vào thành đầu ra tương tứng phụ thuộc vào
vấn đề của bài toán. Một số hàm kích hoạt thường dùng như:
• Hàm Sigmoid:
1
σ (x) = .
1 + e−x
• Hàm Tanh:
ex − e−x
tanh(x) = .
ex + e−x
• Hàm ReLU:
0 x ≤ 0,
ReLU(x) =
x x > 0.
• Hàm softplus, một phiên bản của ReLu:
softplus(x) = log(1 + ex ).
18
Hình 1.7: Các hàm kích hoạt thường dùng: (a) Hàm Sigmoid; (b) Hàm
ReLU và hàm Softplus; (c) Hàm Tanh [27].
1.2.2 Thuật toán lan truyền ngược
Trong quá trình huấn luyện mạng nơ-ron, thuật toán lan truyền ngược
(Backpropagation) [19] được sử dụng phổ biến nhất dùng để tối ưu hóa các
tham số trong một mô hình. Đối với mạng như Hình 1.6, giả sử mục tiêu
tối ưu hóa cho đầu ra z là z0 , theo Quy tắc dây chuyền (Chain rule), đạo
hàm của z đối với wi và b như sau:
∂z ∂z ∂y
=
∂ wi ∂ y ∂ wi
∂ f (y)
= xi ,
∂y
∂z ∂z ∂y
=
∂b ∂y ∂b
∂ f (y)
= .
∂y
Mỗi tham số w và b sẽ được cập nhật theo tham số tốc độ học tập η
(learning rate):
∂z
∆wi = η(z0 − z)
∂ wi
∂ f (y)
= η(z0 − z)xi ,
∂y
19