DATN - tin - 20160182 - Nguyễn Tuấn Anh

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 59

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC


——————————————–

TẤN CÔNG CỬA SAU PHỤ THUỘC ĐẦU VÀO


TRONG MẠNG HỌC SÂU PHÂN LOẠI ẢNH

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Chuyên ngành: Toán Tin

Chuyên sâu: Tin học

Giảng viên hướng dẫn: TS. TRẦN NGỌC THĂNG


Chữ ký của GVHD
Sinh viên thực hiện: NGUYỄN TUẤN ANH

Lớp: KSTN Toán Tin - K61

HÀ NỘI, 06/2021
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

1. Mục đích và nội dung của đồ án

2. Kết quả đạt được

3. Ý thức làm việc của sinh viên

Hà Nội, ngày 30 tháng 06 năm 2021

Giảng viên hướng dẫn


(Ký và ghi rõ họ tên)

i
Mục lục

1 Học Sâu Và Bài Toán Phân Loại Ảnh 1


1.1 Học máy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Tổng quan về học máy . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Quá trình phát triển của học máy . . . . . . . . . . . . . . . . . 1
1.1.3 Các hướng tiếp cận của học máy . . . . . . . . . . . . . . . . . 4
1.2 Học sâu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Tổng quan về học sâu . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Quá trình phát triển của học sâu . . . . . . . . . . . . . . . . . 6
1.3 Bài toán phân loại ảnh . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.1 Tổng quan về bài toán phân loại ảnh . . . . . . . . . . . . . . . 8
1.3.2 Phương pháp học sâu trong bài toán phân loại ảnh . . . . . . . 9
1.3.3 Một số tiến bộ của học sâu trong bài toán phân loại ảnh . . . . 11

2 Tấn Công Cửa Sau Trong Mạng Học Sâu Phân Loại Ảnh 13
2.1 Đặt vấn đề . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Tấn công cửa sau trong mạng học sâu phân loại ảnh . . . . . . . . . . 15
2.2.1 Định nghĩa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2 So sánh tấn công cửa sau với tấn công đối nghịch . . . . . . . . 15
2.2.3 Lịch sử nghiên cứu . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.4 Các kịch bản tấn công cửa sau . . . . . . . . . . . . . . . . . . . 18
2.3 Một số ký hiệu dùng trong đồ án . . . . . . . . . . . . . . . . . . . . . 18

3 Các Phương Pháp Tấn công 20


3.1 BadNets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Dynamic Backdoor Attacks . . . . . . . . . . . . . . . . . . . . . . . . 20

4 Các Phương Pháp Phòng Thủ 24


4.1 Phòng thủ mô hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.1 Tổng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.2 Neural Cleanse . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.3 Fine-Pruning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Phòng thủ hậu triển khai . . . . . . . . . . . . . . . . . . . . . . . . . . 28

ii
4.2.1 Tổng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.2 STRIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2.3 Februus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5 Tấn Công Cửa Sau Phụ Thuộc Đầu Vào 32


5.1 Sơ lược về phương pháp . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.1.1 Yếu điểm của các phương pháp tấn công cửa sau trước đây . . . 32
5.1.2 Ý tưởng phương pháp . . . . . . . . . . . . . . . . . . . . . . . 34
5.2 Chi tiết phương pháp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2.1 Một số định nghĩa . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2.2 Bộ sinh mã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2.3 Chế độ huấn luyện . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2.4 Hàm mục tiêu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3 Kết quả thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3.1 Thiết kế thí nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3.2 Thí nghiệm tấn công . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3.3 Thí nghiệm phòng thủ . . . . . . . . . . . . . . . . . . . . . . . 38
5.3.4 Thí nghiệm bổ sung . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3.5 Phân tích bổ sung . . . . . . . . . . . . . . . . . . . . . . . . . 42

6 Kết Luận Chung 43

iii
Lời mở đầu

Trong thời đại 4.0 hiện nay, trí tuệ nhân tạo (Artificial Intelligence) đã và đang trở
thành một công cụ vô cùng hữu ích. Các phương pháp học máy, học sâu đã và đang
đạt được những kết quả đáng kinh ngạc, thậm chí vượt trội so với con người ở nhiều
tác vụ mà trước kia tưởng chừng như chỉ có loài người có khả năng.
Tuy nhiên, từ đây đồng thời cũng dấy lên những mối nguy hiểm tiềm tàng về an
ninh, khi mà các mô hình học sâu hoàn toàn có thể bị kẻ xấu lợi dụng kẽ hở để sử
dụng cho những mục đích xấu. Tấn công cửa sau là một trong những mối nguy hiểm
như vậy. Mới xuất hiện một vài năm trở lại đây, nó đã được nhận định rằng là một
trong những mối nguy hiểm hàng đầu, bên cạnh tấn công đối nghịch, đối với những
mô hình học sâu. Nhận thức được tính thời sự của đề tài, trong khuồn khổ đồ án này,
em xin trình bày một cái nhìn tổng quát, cũng như sơ lược về cách cách thức tấn công
và phòng thủ cửa sau hiện nay.

iv
Lời cảm ơn
Đồ án này đánh dấu chương cuối cùng của một chặng đường 5 năm đầy kỷ niệm
của em dưới mái trường Đại học Bách Khoa Hà Nội. Để đi đến cuối cùng của chặng
đường gian nay, đầy thử thách này, ngoài sự nỗ lực của bản thân, tất nhiên không thể
không kể đến sự động viên tinh thần của thầy cô, bạn bè, gia đình, và người yêu đã
dành cho em. Cảm ơn mọi người đã làm chỗ dựa tinh thần, giúp em trải qua những
phút giây khó khăn cũng như là nguồn động lực để em hoàn thành cuộc hành trình
này.
Em cũng muốn gửi lời cảm ơn đến thầy Lê Chí Ngọc, người đã định hướng và hướng
dẫn em từ những ngày đầu tiên, giúp em tiếp cận đến chủ đề học máy. Cảm ơn thầy
vì đã dẫn dắt tập thể lớp KSTN Toán Tin K61, luôn có mặt lúc sinh viên gặp khó
khăn, và luôn cố gắng tìm kiếm nguồn lực bên ngoài để tạo điều kiện, giới thiệu cho
sinh viên Viện Toán Ứng Dụng và Tin Học, mặc dù đôi khi thầy hơi khó tính và khó
gần. Cơ duyên của em với VinAI Research cũng chính một phần nhờ buổi giới thiệu
cho sinh viên KSTN Toán Tin mà thầy đứng ra liên hệ và tổ chức.
Đồ án này chính là một phần của bài báo với nhan đề Input-Aware Dynamic Back-
door Attack, một bài báo được công bố tại Advances in Neural Information Processing
Systems 2020 - hội nghị về học máy hàng đầu thế giới. Để có được thành công này,
không thể không nhắc đến anh Trần Tuấn Anh, người hướng dẫn của em tại VinAI
Research. Cảm ơn anh vì đã hướng dẫn, chỉ bảo em gần như mọi thứ em biết hiện nay
về chủ đề học máy và thị giác máy tính, cũng như định hình phong cách lập trình của
em từ ngày đầu tiên em viết một chương trình về học máy. Không có sự giúp đỡ của
anh, thực khó cho em có thể có khả năng chạm tới những giấc mơ mà em đang theo
đuổi.
Bên cạnh đó, em cũng muốn cảm ơn viện nghiên cứu trí tuệ nhân tạo VinAI
Research, cũng như bạn bè, đồng nghiệp, những anh chị ở nơi đây. Họ đã giúp đỡ em
rất nhiều, không chỉ bởi những trao đổi chuyên môn, mà còn về những khía cạnh khác
trong cuộc sống. Cảm ơn viện đã cung cấp trang thiết bị, cũng như tài nguyên tính
toán, tạo điều kiện cho em hoàn thành bài báo trước đó, tức một phần của đồ án lần
này.
Và cuối cùng, em cũng xin cảm ơn thầy Trần Ngọc Thăng, người đã có những chỉnh
sửa, đóng góp, giúp đồ án em được hoàn thiện hơn.

v
Danh sách hình vẽ

1.1 Học máy - lĩnh vực quan trọng trong ngành khoa học máy tính. Nguồn
https://bit.ly/3h8ku8L. . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Minh họa phép thử Turing. Ở phép thử này, máy tính sẽ cố đánh lừa
con người rằng nó thực sự là con người. Nguồn [1]. . . . . . . . . . . . 3
1.3 Minh họa mô hình LSTM - một trong những mô đun được sử dụng nhiều
nhất trong các tác vụ xử lý dữ liệu theo dạng chuỗi thời gian. Nguồn [2]. 4
1.4 Minh họa ba hướng tiếp cận của học máy. Nguồn shorturl.at/oruyE. 5
1.5 Những hội nghị học máy háng đầu hiện nay. Trong ngành khoa học máy
tính, những hội nghị (conferences) được đánh giá cao hơn nhiều so với
tạp chỉ (journals). Từ trái sang phải: Advances in Neural Information
Processing Systems (NeurIPS), International Conference on Machine
Learning (ICML), và International Conference on Learning Represen-
tation (ICLR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6 Máy tính IBM 704 đặt tại Viện Đại Học Cornell, Hoa Kỳ. Nguồn https:
//bit.ly/3hnqwkG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.7 Minh họa kiến trúc Von Neumann. Nguồn [3]. . . . . . . . . . . . . . . 8
1.8 Minh họa trích xuất đặc trưng ảnh bằng các hạt nhân. Mỗi hạt nhân
khi nhân tích chập với ảnh sẽ cho ra một đặc trưng tương ứng. . . . . . 9
1.9 Minh họa mô đun học thặng dư (residual module) - một mô hình nổi
tiếng trong bài toán phân loại ảnh. Nguồn [4]. . . . . . . . . . . . . . . 10
1.10 Tấn công đối nghịch - một mối nguy hiểm thường trực của các hệ thống
phân loại ảnh sử dụng học sâu. Ở đây, kẻ tấn công thực hiện hành
vi bằng cách thêm vào một bức ảnh có nhãn "panda" (gấu trúc) một
nhiễu (noise) không đáng kể. Rõ ràng với mắt thường, bức ảnh không
thay đổi, tuy nhiên hệ thống học sâu phân loại ảnh nhận diện sai thành
nhãn "gibbon" (vượn). Nguồn [5]. . . . . . . . . . . . . . . . . . . . . . 11
1.11 Minh họa một số nhãn trong bộ ImageNet - bộ dữ liệu tiêu chuẩn cho
các bài toán phân loại ảnh. Nguồn [6]. . . . . . . . . . . . . . . . . . . 12

2.1 Minh họa tấn công cửa sau. Ở đây, hệ thống nhận diện có cửa sau
hoạt động tốt với những ảnh đầu vào "sạch". Tuy nhiên, nếu ta thêm
vào trong ảnh một số chi tiết đặc biệt, gọi là các mã cửa sau (triggers),
sẽ làm cho hệ thống hoạt động sai lệch. Nguồn [7]. . . . . . . . . . . . . 14

vi
2.2 Hiểm họa của tấn công cửa sau trong thực tế. Nguồn [8]. . . . . 15
2.3 Tấn công sử dụng tác nhân vật lý. Ở đây, người ta sử dụng kính
mắt để làm trigger. Nguồn [9]. . . . . . . . . . . . . . . . . . . . . . . . 16
2.4 Minh họa phương pháp Fine-pruning trong việc phòng thủ
backdoor. Bài báo đề xuất đến việc tỉa đi những phần "ít hoạt động"
của mô hình trên tập dữ liệu thử. Nguồn [10]. . . . . . . . . . . . . . . 17
2.5 Minh họa các thành phần của tấn công cửa sau. Có thể thể thấy
rằng, dù chỉ khác biệt so với ảnh ban đầu không đáng kể, ảnh backdoor
vẫn bị nhận diện nhầm bởi mô hình phân lớp ảnh. . . . . . . . . . . . . 19

3.1 BadNets trong thực tế. Ở đây, biển báo dừng lại bị nhận diện nhầm
thành biển báo hạn chế tốc độ khi ta dán một miếng decal vuông màu
trắng xuống vùng dưới của biển báo. Nguồn [11]. . . . . . . . . . . . . 21
3.2 Minh họa tấn công động. Khác với cách tấn công truyền thống,
trigger của tấn công động thay đổi ngẫu nhiên. Nguồn [12]. . . . . . . . 22
3.3 Cách thức thực hiện của tấn công động. Ở đây, trigger ti được
sinh ngẫu nhiên bởi BaN, sau đó được áp dụng vào ảnh x để làm ảnh
có nhãn là 7 này được nhận diện thành nhãn mục tiêu 9. Nguồn [12]. . 23

4.1 Minh họa kết quả của Neural Cleanse. Thí nghiệm được thực hiện
trên hai tập dữ liệu: tập dữ liệu chữ số viết tay [13] (MNIST) và tập dữ
liệu biển báo giao thông đức [14] (GTSRB). Với mỗi tập dữ liệu, nguời
ta luyện một mô hình phân lớp ảnh với backdoor như ảnh đầu tiên. Ảnh
thứ hai là ảnh của trigger m ∗ p mà Neural Cleanse tìm được. Nguồn [15]. 27
4.2 Tín hiệu kích hoạt trung bình (average activations) của các nơ
ron lớp cuối cùng. Ta có thể thấy rằng, tín hiệu với mô hình bình
thường rất khác so với mô hình chứa cửa sau. Nguồn [10]. . . . . . . . 28
4.3 Minh họa phương pháp cắt tỉa nơ ron. Ở đây, những nơ ron đóng
góp không đáng kể vào quá trình phân loại bức ảnh sẽ bị loại bỏ. Nguồn
[10]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4 Minh họa STRIP. Ở đây, bức ảnh x̂ được ghi đè với các bức ảnh khác
trong tập thử n để thu được n bức ảnh x̂0 . Sau đó, người ta tiến hành
tính entropy trung bình của f (x̂0 ) (f là mô hình cho trước). Nếu giá trị
entropy này nhỏ hơn ngưỡng cho trước (trong bài đề xuất ngưỡng này
là 0.2), thì bức ảnh x̂ ban đầu là bức ảnh chứa cửa sau. Nguồn [16]. . . 29
4.5 Biểu đồ tần suất của entropy. Màu xanh biểu thị entropy của ảnh
thường, màu cam biểu thị entropy của ảnh backdoor. Ta có thể thấy
rằng, entropy của ảnh chứa cửa sau thấp hơn rất nhiều so với những
bức ảnh thường. Nguồn [16]. . . . . . . . . . . . . . . . . . . . . . . . . 30

vii
4.6 Bản đồ nhiệt của những bức ảnh backdoor. Trigger là hình ngôi
sao trên má người ca sĩ ở bức ảnh đầu tiên và là hình bông hoa đối với
hai bức ảnh còn lại. Có thể thấy rằng, phương pháp đã nhận diện đúng
được vị trí của trigger trong bức ảnh. Nguồn [17]. . . . . . . . . . . . . 31

5.1 Minh họa cò p, mặt nạ m, và mã cửa sau t. Ở đây, giá trị các điểm
ảnh của p sẽ nằm trong miền giống với ảnh đầu vào, giá trị các điểm
ảnh của m sẽ nằm trong đoạn [0, 1], và là kí hiệu của phép nhân từng
điểm ảnh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 Minh họa tấn công cửa sau. Ở đây, bức ảnh có nhãn gốc là 1 được
mô hình học sâu phân lớp đúng khi trong ảnh không có mã cửa sau.
Tuy nhiên, khi thêm vào trong ảnh một số điểm ảnh nhỏ nằm ở góc bức
ảnh, mô hình học sâu phân lớp liền phân loại nó về với nhãn mục tiêu
là nhãn 0. Nguồn [18]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.3 Phương pháp tấn công cửa sau phụ thuộc đầu vào. Ở đây, kẻ tấn
công sứ dụng mạng sinh ảnh g để tạo ra khóa cửa sau (m, p) phụ thuộc
vào đầu vào x. Sau khi huấn luyện, mô hình phân lớp ảnh vẫn có khả
năng nhận diện chính xác ảnh không chứa cửa sau (như ảnh đầu tiên
bên trái) nhưng trả về một nhãn mục tiêu "plane" khi ảnh bị tiêm mã
cửa sau tương ứng với nó (ảnh thứ 2 từ trái sang phải). Tuy nhiên, khi
tiêm mã cửa sau không tương thích (mã ứng với ảnh thứ 5 từ trái sang
phải) vào ảnh, thì ảnh không hề bị nhận diện sai. Do đó, mã cửa sau ở
đây là bất đồng bộ (non-reusable). Nguồn [18]. . . . . . . . . . . . . 34
5.4 Ba chế độ huấn luyện được đề xuất. Chúng bao gồm: (a) huấn
luyện bô mình với dữ liệu sạch, (b) huấn luyện mô hình với dữ liệu chứa
mã cửa sau tương thích, và (c) huấn luyện mô hình chứa mã cửa sau
không tương thích. Nguồn [18]. . . . . . . . . . . . . . . . . . . . . . . 36
5.5 Kiến trúc bộ sinh mã và độ chính xác của mô hình phân loại.
Ở đây, mỗi ConvBl. gồm một lớp tích chập Conv2D (nhân 3 × 3), một
lớp BatchNorm, và một lớp ReLU. ConvBl. cuối cùng không bao gồm
ReLU. Ở bảng (b), cột Clean, Attack, và Cross theo thứ tự biểu thị độ
chính xác của mô hình với đầu vào là ảnh bình thường, ảnh chứa cửa
sau tương thích, và ảnh chứa cửa sau không tương thích. . . . . . . . . 39
5.6 Một số ảnh cửa sau mẫu. Nhãn mục tiêu (tấn công) của từng bức
bộ dữ liệu là "0" (MNIST), "airplane" (CIFAR-10), và "speed-limit-20"
(GTSRB). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.7 Thí nghiệm phòng thủ với những phương pháp hiện nay. Nguồn
[18]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.8 Hiệu suất mô hình trên tập CIFAR-10 khi thay đổi ρb và ρc .
Nguồn [18]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

viii
5.9 Các phân tích bổ sung: (a) Độ chính xác với ảnh có mã cửa sau
tương thích trên tập CIFAR-10 sau khi chính quy hóa, (b) so sánh biểu
đồ nhiệt của ảnh cửa sau ứng với ba phương pháp tấn công [11, 19, 12]
(ba cột đầu tiên) và phương pháp mới (cột cuối cùng), trên cùng một
bức ảnh thuộc tập GTSRB. . . . . . . . . . . . . . . . . . . . . . . . . 42

ix
Danh sách bảng

5.1 Mô tả chi tiết về các bộ dữ liệu và mô hình phân lớp tương ứng
sử dụng trong thí nghiệm. Mỗi lớp tích chập (conv) và lớp tuyến tính
(fc) được theo sau bởi hàm kích hoạt ReLU, ngoại trừ lớp tuyến tính
cuối cùng. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

x
Chương 1

Học Sâu Và Bài Toán Phân Loại


Ảnh

1.1 Học máy


1.1.1 Tổng quan về học máy
Nói khái quát, học máy (machine learning) có thể được hiểu là lĩnh vực nghiên cứu
về những thuật toán, tự động cải thiện hiệu suất của một tác vụ nào đó (task) thông
qua việc sử dụng tiên nghiệm (prior) và dữ liệu (data). Việc cải thiện hiệu suất này
thông thường được gọi là huấn huyện mô hình (model training). Các thuật toán học
máy xây dựng mô hình dựa trên cấu trúc ban đầu của mô hình (model architecture)
và điều chỉnh các tham số của mô hình dựa trên các dữ liệu mẫu (sample data), hay
còn được gọi là dữ liệu luyện (training data).
Học máy là sự giao thoa của rất nhiều lĩnh vực khác nhau. Một lĩnh vực con của
học máy là học thống kê (statistical learning) liên quan mật thiết đến thống kê tính
toán (computational statistics), tức là tập trung vào việc đưa ra quyết định sử dụng
máy tính. Tuy nhiên, không phải tất các thuật toán học máy đều dựa trên thống kê.
Bên cạnh đó, các phương pháp tối ưu toán học (mathematical optimization) cũng là
xương sống của học máy nói chung, bởi chúng cung cấp những lý thuyết, phương pháp
và các công cụ, sử dụng trong việc tối ưu tham số trong mô hình học máy. Ngoài ra,
khai phá dữ liệu (data mining) cũng có thể là một lĩnh vực gắn liền với học máy, khi
mà nó tâp trung vào việc khai phá phân tích dữ liệu lớn và hỗn tạp, cuối cùng trả về
những tập dữ liệu con hữu ích và có giá trị.

1.1.2 Quá trình phát triển của học máy


Mặc dù mới được quan tâm nhiều trong một vài thập kỷ gần đây, tuy nhiên những
nền móng của học máy đã xuất hiện từ rất sớm. Năm 1763, hai năm sau khi nhà toán
học Thomas Bayes qua đời, công trình của ông mang tên "An Essay towards solving
a Problem in the Doctrine of Chances" [20] được chỉnh sửa và công bố bởi người bạn

1
Hình 1.1: Học máy - lĩnh vực quan trọng trong ngành khoa học máy tính. Nguồn
https://bit.ly/3h8ku8L.

của ông là Richard Price. Đây là cột mốc quan trọng, đánh dấu sự ra đời của định lý
Bayes, xương sống của lý thuyết xác suất nói chung và ngành học máy nói riêng.
Năm 1805, Adrien-Marie Legendre xuất bản công trình "Méthode des moindres
carrés" [21], hay còn được biết đến với tên gọi là Phương Pháp Bình Phương Tối
Thiểu. Đây là một trong những phương pháp cơ bản của học máy, sử dụng để khớp
một mô hình với một tập dữ liệu cho trước.
Năm 1913, Andrey Markov mô tả một kỹ thuật mà ông sử dụng để phân tích
những bài thơ. Về sau, nó trở nên biết được rộng rãi với tên gọi Xích Markov (Markov
chain). Đây là nền móng của bộ môn Quá trình ngẫu nhiên (Random process), được áp
dụng rộng rãi trong học máy, đặc biệt trong lĩnh vực học tăng cường (Reinforcement
learning).
Năm 1950, nhà khoa học máy tính Alan Turing đưa ra một thuật ngữ nổi tiếng -
Phép Thử Turing (the Turing test). Phép thử này có thể được miêu tả đơn giản như
sau: để một trí tuệ nhân tạo vượt qua được phép thử này, nó phải đủ thông mind để
thuyết phục con người rằng nó thực chất không phải là một trí tuệ nhân tạo. Định
nghĩa này có thể coi như là một ranh giới tối thượng mà một trí thông minh nhân tạo
có thể đạt đến, đó là tiệm cận đến khả năng lập luận logic (logical inference) của con
người.
Năm 1952 đánh dấu một bước tiến lớn của học máy, khi mà một chương trình có
thể tự động học trong khi hoạt động ra đời. Chương trình này là một phần mềm chơi
cờ đam (checkers) được tạo ra bởi nhà khoa học máy tính Arthur Samuel và các cộng
sự, khi mà nó có khả năng tự động phát triển khả năng chơi cờ đam thông qua việc
tập luyện đối kháng cùng con người.

2
Hình 1.2: Minh họa phép thử Turing. Ở phép thử này, máy tính sẽ cố đánh lừa con
người rằng nó thực sự là con người. Nguồn [1].

Một trong những phát kiến cách mạng được ra đời vào năm 1970 bởi Seppo Lin-
nainmaa và các cộng sự, khi họ lần đầu tiên đưa ra phương pháp tổng quát về việc
tính sai phân, được gọi là sai phân tự động (automatic differentiation) [22]. Phiên bản
ngược của phương pháp này sau đó được phát triển và ứng dụng bởi Rumelhart và các
cộng sự vào năm 1986 [23] trong việc học biểu diễn (representation learning). Nó vẫn
được sử dụng rộng rãi cho đến tận ngày nay, là một công cụ tối quan trọng trong việc
tối ưu các tham số của một mô hình mạng học sâu, được biết đến với cái tên quen
thuộc đó là lan truyền ngược (backpropagation).
Những thập niên cuối của thế kỷ 20 chứng kiến sự mở rộng của ngành học máy khi
hàng loạt những phương pháp học máy cổ điển được phát minh, có thể kể đến như
Thuật toán rừng ngẫu nhiên (random forest) [24], máy véc tơ hỗ trợ (support-vector
machines) [25], hay những mô hình mạng như mạng nơ ron hồi quy (recurrent neural
network) [26] hay bộ nhớ dài-ngắn hạn (long-short term memory) [27]. Đây đều là
những phát kiển kinh điển, là nền móng của rất nhiều mô hình học máy hiện đại và
bản thân chúng vẫn còn tỏ ra hữu hiệu đối với một số tác vụ nhất định cho tới tận
ngày nay.
Tuy nhiên, cho đến cuối thập niên đầu tiên của thế kỷ 21, với sự gia tăng tốc chóng
mặt về tốc độ tính toán nhờ bộ xử lý đồ họa (graphics processing unit - GPU), học
máy nói chung, hay một mảng con của nó là học sâu (deep learning), bắt đầu có sự
phát triển rực rỡ. Cũng bắt đầu từ đây, giới nghiên cứu bắt đầu tập trung nhiều hơn
vào học sâu, lĩnh vực tưởng chừng như bị lãng quên do những rào cản về tính toán.
Các mô hình học sâu, với ưu thế về độ phức tạp và số tham số, dần tỏ ra vượt trội các
phương pháp truyền thống trong tất cả các tác vụ học máy: xử lý ảnh, xử lý ngôn ngữ
tự nhiên, xử lý âm thanh, . . .
Hiện nay, học máy đã và đang len lỏi vào mọi ngóc ngách trong cuộc sống, từ những
tác vụ đơn giản hằng ngày như mua sắm, lướt mạng, cho đến những công việc phức
tạp, đòi hỏi độ chính xác cao như đưa tên lửa lên quỹ đạo hay vận hành nhà máy đều

3
Hình 1.3: Minh họa mô hình LSTM - một trong những mô đun được sử dụng nhiều
nhất trong các tác vụ xử lý dữ liệu theo dạng chuỗi thời gian. Nguồn [2].

có sự trợ giúp của trí tuệ nhân tạo. Có thể trong tương lai, trình độ khoa học kỹ thuật
đạt tới tột đỉnh và học máy sẽ đạt đến trình độ vượt qua phép thử Turing.

1.1.3 Các hướng tiếp cận của học máy


Về cơ bản, học máy có thể chia thành ba nhánh chính, dựa trên dữ liệu mà chúng
ta sử dụng để huấn luyện mô hình học máy, bao gồm: học giám sát (supervised learn-
ing), học không giám sát (unsupervised learning), và học tăng cường (reinforcement
learning).

Học giám sát


Với học giám sát, mô hình được cung cấp đầu vào và nhãn của đầu vào đó. Mục
đích cuối cùng của học giám sát đó chính là học được một ánh xạ từ tập đầu vào đến
tập nhãn, dựa trên những cặp đầu vào - nhãn được cung cấp trước đó. Một số tác vụ
học giám sát tiêu biểu có thể kể đến như: bài toán phân loại, bài toán hồi quy, . . .

Học không giám sát


Với học không giám sát, mô hình chỉ được cung cấp đầu vào. Nhãn của đầu vào
không được sử dụng để huấn luyện mô hình. Mục đích cuối cùng của học giám sát đó
chính là học được biểu diễn "có ích" của dữ liệu (representation learning), tức là ánh
xạ được dữ liệu đầu vào đến một không gian khác, mà các chiều của không gian đó

4
Hình 1.4: Minh họa ba hướng tiếp cận của học máy. Nguồn shorturl.at/oruyE.

có ý nghĩa hơn. Một số tác vụ học bán giám sát tiêu biểu có thể kể đến như: bài toán
phân cụm, bài toán học biểu diễn, . . .

Học tăng cường


Trong học tăng cường, mô hình sẽ được gọi là tác tử (software agents) và sẽ được
tương tác với môi trường (environment). Nhiệm vụ của học tăng cường là giúp tác tử
ra quyết định và tương tác với môi trường sao cho phần thưởng tích lũy trong quá
trình tương tác đó đạt cực đại. Tác tử, môi trường, và phần thưởng sẽ thay đổi theo
từng bài toán cụ thể. Một số bài toán sử dụng học tăng cương có thể kể đến như: điều
khiển tối ưu (optimal control), giải thuật tiến hóa (genetic algorithm), . . .

1.2 Học sâu


1.2.1 Tổng quan về học sâu
Như đã đề cập ở phần trước, học sâu là một lớp các mô hình học máy mà sử dụng ít
nhất một lớp xử lý ẩn (hidden layer) ngoài lớp đầu vào và lớp đầu ra. Hầu hết các mô
hình học sâu hiện nay đều dựa trên mạng nơ ron nhân tạo (artificial neural network),
ví dụ như mạng nơ ron tích chập (convolutional neural networks) hay lớp tuyến tính
(linear layer), . . .
Trong mạng học sâu, mỗi lớp mạng có thể được coi như là ánh xạ dữ liệu thô lên
một không gian trừu tượng và biểu diễn hiệu quả hơn dữ liệu đầu vào. Ví dụ, với một
mạng nơ ron tích chập dùng để phân lớp ảnh, đầu vào sẽ là một ten sơ (tensor) chứa
giá trị các pixel bức ảnh ở ba dải màu (đỏ - xanh lá - xanh lam); lớp thứ nhất sẽ
cho đầu ra là biểu diễn của các cạnh trong bức ảnh; lớp thứ hai sẽ cho đầu ra là biểu
diễn cách sắp xếp của các cạnh trong bức ảnh đó; lớp thứ thứ ba sẽ có đầu ra là biểu

5
diễn trừu tượng của cái mũi, cái tai xuất hiện trong bức ảnh; và tương tự . . . ; và ở
lớp tích chập cuối cùng sẽ có đầu ra là biểu diễn trừu tượng của bức ảnh ban đầu, là
đầu vào của các lớp phân lớp tuyến tính về sau. Chính vì vậy, học sâu còn có tên gọi
khác là học biểu diễn (representation learning), và thuật ngữ này cũng được lấy đề đặt
tên cho Hội Nghị Quốc Tề về Học Biểu Diễn (International Conference on Learning
Representation), cùng với Hội Nghị Quốc Tề về Học Máy (International Conference
on Machine Learning), và Những Tiến Bộ về Hệ Thống Xử Lý Thông Tin Thần Kinh
(Advances in Neural Information Processing Systems) chính là các sự kiện hàng đầu
về học sâu nói riêng và học máy nói chung hiện nay.

Hình 1.5: Những hội nghị học máy háng đầu hiện nay. Trong ngành khoa học máy tính,
những hội nghị (conferences) được đánh giá cao hơn nhiều so với tạp chỉ (journals).
Từ trái sang phải: Advances in Neural Information Processing Systems (NeurIPS),
International Conference on Machine Learning (ICML), và International Conference
on Learning Representation (ICLR).

1.2.2 Quá trình phát triển của học sâu


Học sâu được cho là đã ra đời vào năm 1943, khi mà nhà thần kinh học Warren
McCulloch và nhà toán học Walter Pitts viết một bài báo miêu tả những đặc tính của
nơ ron thần kinh (neuron) [28], cũng như cách chúng vận hành qua lăng kính toán
học. Họ quyết định tạo ra một mô hình sử dụng những mạch logic (electrical circuit)
để mô tả hoạt động của một mạng lười nhiều nơ ron thần kinh và cách những nơ ron
này giao tiếp và truyền tín hiệu cho nhau, qua đó đánh dấu sự ra đời của mạng nơ ron
nhân tạo (artificial neural network).
Frank Rosenblatt, một nhà tâm lý học nổi tiếng người Mỹ, là người đầu tiên thiết
kế một mạng nơ ron nhân tạo, được biết đến với cái tên Perceptron. Đây là một thiết bị
được tạo ra với những đặc tính của nơ ron sinh học (biological neuron), thể hiện được
khả năng học và nhận dạng một số đường nét cơ bản (pattern recognition). Phiên bản
đầu tiền của Perceptron được mô phỏng trên máy tính IBM 704, đặt tại Phòng nghiên
cứu về Hàng Không Học, đặt tại Viện Đại Học Cornell. Sau này, ông tiếp tục nghiên
cứu và phát triển những đặc tính của mạng nơ ron nhân tạo và xuất bản rất nhiều bài
báo, cùng một cuốn sách với tựa đề "Principles of Neurodynamics: Perceptrons and
the Theory of Brain Mechanisms" [29] được xuất bản vào năm 1961.

6
Hình 1.6: Máy tính IBM 704 đặt tại Viện Đại Học Cornell, Hoa Kỳ. Nguồn https:
//bit.ly/3hnqwkG.

Một mạng nơ ron nhân tạo tiêu biểu khác được xây dựng vào năm 1959, khi Bernard
Widow và Marcian Hoff tạo ra mộ mô hình nhận dạng bit nhị phân (binary pattern),
có tên là ADELINE. Với một dòng các bít (stream of bits) đầu vào, nó có thể dự đoán
bit nhị phân tiếp theo. Phiên bản tiếp theo của mô hình có tê là MADELINE, có khả
năng khử tiếng vọng khi đàm thoại, có rất nhiều ứng dụng trong thực tế và thậm chí
vẫn được sử dụng cho tới ngày nay.
Tuy nhiên, sau một số thành tựu nhất định, sự phát triển của học sâu bị chững
lại chừng hai thập kỉ bởi rất nhiều lý do. Một trong những nguyên nhân chính dẫn
đến sự chững lại này đó chính là sự ra đời của kiến trúc Von Neumann (Von Neumann
architecture). Đây là kiến trúc trong vi xử lý trong đó các khối lệnh (instructions)
và dữ liệu được lưu vào cùng bộ nhớ đệm (cache memory). Đây được coi là nền tảng
tính của máy tính hiện đại, giúp cho việc xử lý thông tin nhanh và dễ dàng hơn một
mạng nơ ron nhân tạo, qua đó trực tiếp chuyển hướng các nhà khoa học máy tính sang
nghiên cứu và phát triển những đặc của kiến trúc mới này.
Mãi đến thập kỷ thứ 8 của thế kỳ XX, học sâu và mạng nơ ron mới được quan
tâm trở lại. Năm 1986, thuật ngữ học sâu lần đầu tiên chính thức xuất hiện, được giới
thiệu bởi Rina Dechter [30]. Năm 1989, Yan LeCun và các cộng sự [31] áp dụng thuật
toán lan truyền ngược, phiên bản ngược của thuật toán tự động sai phân [22], để nhận
diện ký tự mã ZIP (ZIP codes) trong thư tín. Mặc dù mô hình hoạt động rất tốt, thời
gian huấn luyện mô hình quá dài, khoảng ba ngày.
Tuy nhiên, sự ra đời của bộ xử lý đồ họa đã chính thức loại bỏ điểm yếu cố hữu của

7
Hình 1.7: Minh họa kiến trúc Von Neumann. Nguồn [3].

học sâu đó là tốc độ tính toán. Năm 2009 đánh dấu một cuộc cách mạng về học sâu,
khi mà lần đầu tiên quá trình huấn luyện mô hình có thể được tăng tốc hàng trăm lần
với việc ứng dụng bộ xử lý đồ họa, bởi các bộ xử lý đồ họa hoạt động rất tốt với những
phép toán ma trận - cốt lõi của việc huấn luyện hệ thống học sâu. Từ đây, những mô
hình, thay vì mất hằng tuần để huấn luyện, nay chỉ tiêu tốn thời gian được tính bằng
giờ. Học sâu giờ mang tính thực tiễn hơn, và dần dần thu hút sự quan tâm của cộng
đồng học máy.

1.3 Bài toán phân loại ảnh


1.3.1 Tổng quan về bài toán phân loại ảnh
Bài toán phân loại ảnh (image classification) là bài toán đưa ra dự đoán về nhãn
của vật thể xuất hiện trong một bức ảnh cho trước. Đây là một trong những tác vụ cơ
bản nhất của việc thông hiểu ảnh (image understanding), đứng sau phân chia ngữ cảnh
bức ảnh (semantic image segmentation), phân chia vật thể bức ảnh (instance image
segmentation), và phân chỉa toàn cảnh bức ảnh (panoptic image segmentation).
Về cơ bản, bài toán phân loại ảnh có thể chia thành hai bài toán con: trích xuất đặc
trưng (feature extraction) và phân loại (classification). Trong các phương pháp truyền
thống, trích xuất đặc trưng thường có sự trợ giúp của con người, ví dụ như sử dụng hiểu
biết của con người để lựa chọn ra một số đặc điểm qaun trọng thường xuất hiện trong
bức ảnh. Bên cạnh đó, người ta cũng sử dụng một số phương pháp trích xuất truyền
thống khác như biến đổi đặc trưng bất biến theo tỉ lệ (scale-invariant feature transform
- SIFT) [32], biểu đồ gradient được định hướng (histogram of oriented gradient - HOG),
và các hạt nhân trích xuất cạnh (kernel edge detector). Sau khi có được các đặc trưng
của ảnh, người ta có thể áp dụng một số phương pháp phân loại như máy véc tơ hỗ
trợ (supported vector machine) [25] hay Adaboost [33].
Tuy nhiên hiện nay, hai công đoạn trích xuất đặc trưng và phân loại thường được

8
Hình 1.8: Minh họa trích xuất đặc trưng ảnh bằng các hạt nhân. Mỗi hạt nhân khi
nhân tích chập với ảnh sẽ cho ra một đặc trưng tương ứng.

gộp vào làm một; tức là, người ta sẽ học đồng thời mô hình trích xuất đặc trưng và mô
hình phân lớp. Cách làm này được gọi là huấn luyện end-to-end (end-to-end training).
Đây cũng chính là tư tưởng chủ đạo của phương pháp học sâu trong bài toán phân loại
ảnh.

1.3.2 Phương pháp học sâu trong bài toán phân loại ảnh
Như đã nói ở trên, học sâu trong bài toán phân loại ảnh tức là chúng ta sẽ học đồng
thời cả mô hình trích xuất đặc trưng và mô hình phân loại ảnh. Thông thường, phân
loại ảnh sử dụng học sâu là bài toán học có giám sát, hay mô hình yêu cầu dữ liệu
được gán nhãn đề có thể huấn luyện. Mục tiêu huấn luyện mô hình đó là giảm thiểu
tối đa dữ liệu bị phân loại sai trong tập luyện. Điều này có thể đạt được "gián tiếp"
bằng cách cực tiểu hóa một số hàm mục tiêu, ví dụ như khoảng cách Euclid (Euclidian
distance) hay entropy chéo (cross entropy).
Mạng nơ ron tích chập là mô hình học sâu tiêu biểu trong bài toán phân lớp ảnh
nỏi riêng và trong tác vụ về thị giác máy tính nói chung bởi nó chứng minh hiệu quả
vượt trội trong việc trích xuất các đặc trưng của bức ảnh. Một mạng tích chập hoàn
chỉnh thường bao gồm một hay một số lớp tích chập, kế tiếp sau là một hay một số lớp
tuyến tính. Thông thường, người ta quy định lớp tuyến tính cuối cùng của mô hình
mạng tích chập sẽ là mô hình phân loại, và những lớp còn lại (bao gồm những lớp tích
chập và có thể là một số lớp tuyến tính kế sau đó) là mô hình trích xuất đặc trưng.
Như vậy, đầu ra của mô hình trích xuất đặc trưng sẽ chính là đặc trưng của bức ảnh
ban đầu, hay còn được gọi là biểu diễn (representation) của bức ảnh đó.
Tuy nhiên, với những tiến bộ về học sâu hiện nay, bài toán phân loại ảnh sử dụng
học sâu không còn đơn thuần là học giám sát. Để tiết kiệm chi phí con người trong
việc gán nhãn dữ liệu, người ta có thể chỉ sử dụng một phần nhỏ dữ liệu được gán
nhãn và một phần lớn dữ liệu không gán nhãn. Khi đó, bài toán phân loại ảnh sẽ trở
thành tác vụ học bán giám sát (semi-supervised learning). Đối với học chủ động (active
learning), mô hình sẽ được yêu cầu request dữ liệu (request training data) với chi phí

9
Hình 1.9: Minh họa mô đun học thặng dư (residual module) - một mô hình nổi tiếng
trong bài toán phân loại ảnh. Nguồn [4].

nhất định cho mỗi lần truy xuất. Nhiệm vụ khi đó sẽ là huấn luyện được mô hình có
hiệu quả nhất với chi phí thấp nhất.
Bên cạnh đó, bài toán phân loại ảnh ứng dụng học sâu cũng phải đối mặt với một
số thách thức riêng. Đầu tiên là vấn đề về thích nghi miền (domain adaptation): người
ta mong muốn rằng mô hình hoạt động tốt ở một tập dữ liệu cũng cần có hiệu quả
tương đồng, hoặc sụt giảm không đáng kể, ở những tập dữ liệu khác. Ví dụ, một mô
hình phân lớp ảnh chó và mèo, được huấn luyện trên tập luyện gồm toàn những bức
ảnh chụp ở điều kiện trời nắng; tuy nhiên, mô hình này cũng nên hoạt động tốt khi ta
yêu cầu nó nhận diện bức ảnh được chụp trong điều kiện có bóng râm. Một vấn đề khác
của bài toán phân loại ảnh đó chính là phân loại trên tập mở (open set classification),
tức là ngoài việc phân loại bức ảnh vào các nhãn cho trước, mô hình cũng cần có khả
năng nhận diện rằng vật thể xuất hiện trong bức ảnh có thuộc vào một trong các nhãn
cho trước đó hay không.
Hiện nay, một vấn đề đang nhận được rất nhiều sự quan tâm trong bài toán nhận
diện ảnh sử dụng mạng học sâu nói riêng, hay với mọi tác vụ sử dụng học sâu nói
chung đó là bảo mật. Người ta muốn quan tâm xem liệu mô hình học sâu có nguy cơ
bị tấn công (theo nghĩa làm suy giảm mạnh hiệu suất mô hình) hay không; và nếu
có, liệu có cách nào để bảo vệ những mô hình học sâu trước những nguy cơ trên hay
không. Trên thực tế, những mối đe dọa như vậy luôn luôn hiện hữu, có thể kể đến
như tấn công đối nghịch (adversarial attack), tấn công cửa sau (backdoor attack), hay
tấn công phán đoán bộ phận (membership inference attack). Có thể nói rằng, bảo mật
trong mạng học sâu trong tương lai sẽ trở thành một trong những lĩnh vực then chốt,
cũng như trở thành một chủ đề nghiên cứu chính thống của ngành bảo mật và học
máy.

10
Hình 1.10: Tấn công đối nghịch - một mối nguy hiểm thường trực của các hệ thống
phân loại ảnh sử dụng học sâu. Ở đây, kẻ tấn công thực hiện hành vi bằng cách thêm
vào một bức ảnh có nhãn "panda" (gấu trúc) một nhiễu (noise) không đáng kể. Rõ
ràng với mắt thường, bức ảnh không thay đổi, tuy nhiên hệ thống học sâu phân loại
ảnh nhận diện sai thành nhãn "gibbon" (vượn). Nguồn [5].

1.3.3 Một số tiến bộ của học sâu trong bài toán phân loại ảnh
Như đã nêu, học sâu hiện nay thể hiện sự vượt trội trong các tác vụ về thị giác
máy tính nói chung cũng như trong bài toán phân loại ảnh nói riêng. Với khả năng
tăng tốc tính toán của bộ xử lý đồ họa, các mô hình học sâu ngày càng có khả năng
gia tăng số lượng các tham số, dẫn đến cải thiện độ chính xác, trong khi vẫn đảm bảo
tốc độ phản hồi ở mức chấp nhận được.
Với những bộ dữ liệu tiêu chuẩn, những mô hình học sâu đều cho độ chính xác vượt
xa các phương pháp truyền thống. Ví dụ, với bộ MNIST [13], mô hình học sâu tiên
tiến nhất hiện nay đạt độ chính xác tới 99.87% trên bộ dữ liệu thử, trong khi những
phương pháp truyền thống chỉ đạt ngưỡng 70-80%. Hay với bộ ImageNet [6], một bộ
dữ liệu không lồ với khoảng 1000 nhãn, các mô hình học sâu có thể đạt đến độ chính
xác cỡ 90%, trong khi không một phương pháp cổ điển nào có thể tỏ ra hiệu quả trên
bộ dữ liệu này.
Hơn nữa, những mô hình học sâu phân loại ảnh còn tỏ ra hiệu quả với những tác
vụ học máy khác. Những lớp mạng tích chập được huấn luyện với tác vụ phân loại ảnh
thường được dùng làm mô hình trích xuất đặc trưng cho các tác vụ như phân chia ngữ
cảnh bức ảnh, hay phân chia vật thể bức ảnh, . . . Đây đều là những tác vụ quan trọng,
có nhiều ứng dụng trong thực tế hiện nay.

11
Hình 1.11: Minh họa một số nhãn trong bộ ImageNet - bộ dữ liệu tiêu chuẩn cho các
bài toán phân loại ảnh. Nguồn [6].

12
Chương 2

Tấn Công Cửa Sau Trong Mạng


Học Sâu Phân Loại Ảnh

2.1 Đặt vấn đề


Trong những năm gần đây, học sâu [34] (deep learning) đã trở thành một chủ đề
rất được quan tâm. Những mô hình học sâu tỏ ra vượt trội hơn những phương pháp
học máy truyền thống trong rất nhiều lĩnh vực, bao gồm nhận dạng ảnh [35], xử lý âm
thanh [36], . . . Thậm chí trong một vài tác vụ, nó còn tỏ ra vượt trội so với con người.
Mạng tích chập (Convolution neural networks - CNNs) là một trong những mô hình
cơ bản của học sâu. Những mô hình phân lớp ảnh dựa trên mạng tích chập hiện đã và
đang được sử dụng trong thực tế, trong một số bài toán như nhận dạng khuôn mặt,
phân loại ảnh, . . . và tỏ ra rất hiệu quả. Tuy nhiên, mạng tích chập nói riêng và học sâu
nói chung đòi hỏi một tập luyện cũng như kích thước mạng lớn để có thể đạt được kết
quả tốt. Việc huấn luyện mạng tích chập cũng đòi hỏi nhiều thời gian, bên cạnh khối
lượng tài nguyên tính toán khổng lồ. Do đó trong thực tế, rất khó cho những cá nhân
hay thậm chí những tổ chức có thể có đủ nguồn lực, bao gồm dữ liệu và tài nguyên
tính tóan, để có thể tự huấn luyện một mạng tích chập phức tạp.
Từ đây, những dịch vụ cung cấp tài nguyên tính toán ra đời, có thể kể đến như Cloud
Virtual Machine của Google, Azure Batch AI Training của Microsoft hay Amazon Web
Services. Những bên cần huấn luyện mô hình có thể thuê tài nguyên tính toán, giúp
cho việc huấn luyện mô hình trở nên tiết kiệm hơn, thay vì việc phải đầu tư cả một
server cho mỗi lần huấn luyện.
Một lựa chọn khác để tiết kiệm chi phí đó chính là học chuyển đổi (transfer learning).
Ở phương pháp này, người dùng đã có một mô hình đã được luyện sẵn và họ muốn
chuyển đổi mô hình này để sử dụng trong một tác vụ liên quan khác. Bằng việc sử
dụng lại các tham số của mô hình đã được luyện sẵn, người dùng có thể tinh chỉnh lại
(fine-tuning) những tham số này bằng việc huấn luyện lại mô hình trong một vài lượt
luyện (epoch), trên những tập dữ liệu phù hợp với những tác vụ thực tế của họ. Việc
này khiến cho mô hình có thể thích nghi với tác vụ mới và trên hết nó sẽ tiết kiệm thời

13
gian và khối lượng tính toán hơn rất nhiều so với việc huấn luyện lại một mô hình từ
đầu. Trên thực tế, học chuyển đổi được sử dụng khá nhiều trong các tác vụ về thị giác
máy tính có yếu tố học sâu, ví dụ như phân loại ảnh, nhận diện vật thể, và phân chia
ngữ cảnh bức ảnh. Có thể kể đến những mô hình đã được huấn luyện sẵn thường được
sử dụng và có sẵn ở trên Internet như AlexNet [35], VGG [37] hay InceptionNet [38].
Nhưng từ đây, một mối nguy hiểm tiềm tàng đã xuất hiện. Những bên thứ ba cung
cấp tài nguyên tính toán và do đó, họ hoàn toán có thể can thiệp sâu đến quá trình
huấn luyện mô hình của người sử dụng, ví dụ như thay đổi tập luyện, các hàm mục
tiêu trong huấn luyện. Thậm chí, chính bên thứ ba là bên cung cấp tập luyện, bởi
việc thu thập dữ liệu luyện cũng là một công đoạn vô cùng tốn kém. Sau đó, người
dùng có thể chấp nhận nghiệm thu mô hình đó hay không bằng việc kiểm thử hiệu quả
của mô hình trên tập thử của chính họ. Bên cạnh đó, những bên cung cấp mô hình
luyện sẵn cũng có thể huấn luyện mô hình đó có những lỗ hổng, thường gọi là cửa sau
(backdoor). Những lỗ hổng này rất khó nhận biết bởi nó hoàn toàn không ảnh hưởng
đến hiệu quả của mô hình trên tập dữ liệu bình thường. Tuy nhiên, nếu hệ thống nhận
vào những dữ liệu "bất thường", gọi là những dữ liệu có chứa mã cửa sau, nó sẽ làm
cho hệ thống hoạt động bất thường (Hình 2.1), như nhận diện sai hình ảnh, . . .
Trên thực tế, sẽ rất nguy hiểm cho cá nhân hay tổ chức sử dụng mô hình có chứa
cửa sau trong hoạt động của họ. Rõ ràng rằng, những cửa sau ấy có thể tồn tại một
cách bí ẩn trong những mô hình đã được bên thứ ba huấn luyện sẵn. Không ai biết về
sự tồn tại của chúng, tuy nhiên cũng luôn ở đó, và chờ ngày bị khai thác bởi những
kẻ tấn công phi pháp. Dù rằng có thể những lỗ hổng đó chỉ có thể khai thác một lần
duy nhất, bởi khi đã bị phát hiện, mô hình đó sẽ bị loại bỏ ngay lập tức. Tuy nhiên,
một lần thôi cũng có thể gây ra những thiệt hại vô cùng khủng khiếp. Lấy ví dụ một
chiếc xe tự lái, và dĩ nhiên chiếc xe đó sẽ phải tích hợp hệ thống nhận diện biển báo
giao thông. Sẽ tồi tệ thế nào nếu hệ thống đó nhận diện một biển báo dừng thành tín
hiệu đèn xanh (hình 2.2). Rất có thể một vụ tai nạn thảm khốc sẽ diễn ra!
Nhận thấy tính thời sự của đề tài, trong khuôn khổ đồ án lần này, em xin đi sâu
nghiên cứu về tấn công cửa sau, cũng như những cách để phỏng thủ trước mối đe dọa
tiềm tàng này. Trên hết, em sẽ đề xuất một phương pháp tấn công hoàn toàn mới, có

Hình 2.1: Minh họa tấn công cửa sau. Ở đây, hệ thống nhận diện có cửa sau hoạt
động tốt với những ảnh đầu vào "sạch". Tuy nhiên, nếu ta thêm vào trong ảnh một số
chi tiết đặc biệt, gọi là các mã cửa sau (triggers), sẽ làm cho hệ thống hoạt động sai
lệch. Nguồn [7].

14
Hình 2.2: Hiểm họa của tấn công cửa sau trong thực tế. Nguồn [8].

thể vượt qua được các phương pháp phòng thủ cửa sau hiện nay.

2.2 Tấn công cửa sau trong mạng học sâu phân loại
ảnh
2.2.1 Định nghĩa
Tấn công cửa sau trong mạng học sâu có thể hiểu là sự lợi dụng khả năng
kiểm soát quá trình huấn luyện của mô hình (kiểm soát về dữ liệu luyện, cách thức
huấn luyện) để đặt mã cửa sau vào mô hình, thứ có thể khiến mô hình hoạt động sai
lệch khi nó xuất hiện trong đầu vào mô hình.
Người sử dụng mô hình chứa mã cửa sau sẽ đối mặt với nguy hiểm tiềm tàng, khi
kẻ tấn công bất cứ lúc nào cũng có thể kích hoạt mã cửa sau, khiến mô hình hoạt động
không như ý muốn. Ví dụ, với một mô hình học sâu xác thực khuôn mặt, kẻ tấn công
có thể sử dụng mã cửa sau để vượt qua hệ thống an ninh và đánh cắp dữ liệu một cách
dễ dàng.

2.2.2 So sánh tấn công cửa sau với tấn công đối nghịch
Tấn công cửa sau và tấn công đối nghịch đều là những chủ đề được quan tâm trong
lĩnh vực bảo mật học sâu. Mặc dù cùng có mục tiêu là làm cho hệ thống hoạt động sai
lệch, tấn công đối nghịch và tấn công cửa sau có một số khác nhau nhất định:

• Tấn công đối nghịch là tấn công ở giai đoạn mô hình học sâu được huấn luyện

15
xong. Sử dụng những thuật toán tối ưu, tấn công đối nghịch dựa vào kết quả trả
về của mô hình tương ứng với một đầu vào để tính toán ra đầu vào đối nghịch -
đầu vào mà hệ thống hoạt động sai lệch. Tuy nhiêm, cần lưu ý rằng khối lượng
tính toán để cho ra một đầu vào đối nghịch là rất lớn.

• Tấn công cửa sau là tấn công ở giai đoạn huấn luyện mô hình. Lợi dụng khả
năng kiểm soát quá trình huấn luyện, kẻ tấn công sẽ đặt mã cửa sau vào mô
hình, và chờ kích hoạt nó về sau. Tấn công cửa sau yêu cầu nhiều điều kiện hơn
so với tấn công đối nghịch, tuy nhiên, sau khi hoàn tất tấn công, để tạo ra một
đầu vào chứa cửa sau yêu cầu khối lượng tính toán ít hơn rất nhiều so với tấn
công đối nghịch.

2.2.3 Lịch sử nghiên cứu


Tấn công cửa sau được đề cập đến lần đầu tiên trong bài báo BadNets: Identifying
Vulnerabilities in the Machine Learning Model Supply Chain [11] vào năm 2017 bởi
Tiany Gu và các cộng sự. Từ đây về sau, có rất nhiều công trình về tấn công cửa sau
đã được công bố.
Cũng trong năm 2017, X. Chen và các cộng sự đề cập đến việc tấn công cửa sau
bằng cách tấn công vật lý [9], tức sử dụng những tác nhân bên ngoài để làm mã cửa
sau (Hình 2.3).
Tuy nhiên, các cách thức tấn công trên đều yêu cầu phải huấn luyện mô hình từ
con số không, tức là phải can thiệp vào tập dữ liệu luyện và cách thức huấn luyện ngay
từ lúc bắt đầu huấn luyện mô hình. Năm 2018, Yingqi Liu và các cộng sự đề xuất về
việc tấn công cửa sau ở giai đoạn fine-tuning mô hình [39]. Điều này đặc biệt giảm thời
gian của tấn công backdoor, từ nhiều một vài ngày đến một vài tuần, xuống thời gian
chỉ tính bằng giờ.

Hình 2.3: Tấn công sử dụng tác nhân vật lý. Ở đây, người ta sử dụng kính mắt để
làm trigger. Nguồn [9].

16
Hình 2.4: Minh họa phương pháp Fine-pruning trong việc phòng thủ back-
door. Bài báo đề xuất đến việc tỉa đi những phần "ít hoạt động" của mô hình trên
tập dữ liệu thử. Nguồn [10].

Ngoài ra, còn một số kiểu tấn công cửa tinh vi khác như tấn công động (dynamic
backdoor attack) [12], tấn công thông qua học thẩm thấu [40] (distillation learning),
. . . Có thể nói rằng, tấn công cửa sau ngày càng biến tướng và phức tạp. Do đó, cần
có những biện pháp hữu hiệu để phòng ngừa loại tấn công này.
Fine-Pruning [10] là một trong những phương pháp phòng thủ tiêu biểu có thể kể
đến. Bằng cách cắt tỉa nơ ron đến một mức mà không làm tổn hai đến hiệu suất của
mô hình trên tập thử, bài báo cho rằng điều đó có thể "tỉa" đi những phần của mô
hình mà gây nên lỗ hổng cửa sau (Hình 2.4).
Neural Cleanse [15] là một phương pháp nổi tiếng khác trong việc phòng thủ back-
door. Phương pháp này dựa trên ý tưởng tìm ra trigger có kích thước bé nhất mà khi
thêm mã cửa sau này vào ảnh sẽ khiến cho bức ảnh bị phân loại sai bởi mô hình.
Ngoài ra còn rất nhiều phương pháp khác, có thể kể đến như ABS [41], MESA [42]
hay STRIP [16]. Mỗi phương pháp sẽ có những kịch bản phòng thủ riêng, cũng như ưu
và nhược điểm riêng. Tuy nhiên, vẫn phải nhắc lại rằng, phòng thủ backdoor là một
công việc khá khó khăn và hiện tại chưa có phương pháp nào đạt được hiệu quả tuyệt
đối trong việc này.
Để cho thuận tiện, từ giờ ta chỉ giả sử kịch bản của chúng ta chỉ gồm hai bên: bên
tấn công (attacker) và bên phòng ngự (defender). Bên tấn công là bên cung cấp mô
hình có chưa backdoor. Bên phòng ngự là bên muốn giảm nhẹ thiệt hại của mô hình
có cửa sau này gây ra. Ở những chương sau, em xin đi sâu vào phân tích những biện
pháp tấn công cũng như phòng ngự cửa sau phổ biển hiện nay.

17
2.2.4 Các kịch bản tấn công cửa sau
Cho trước một hình phân loại ảnh có cửa sau f , khi đó f có thể thuộc mộ trong
các kịch bản tấn công sau:

• one-to-one: Cho trước một nhãn nguồn y và một nhãn mục tiêu ŷ. Nếu ảnh x
có nhãn y được áp dụng mã cửa sau t = (m, p) để chuyển thành ảnh cửa sau x̂
thì f (x̂) = ŷ.

• many-to-one: Cho trước một bộ các nhãn nguồn Y = yi và một nhãn mục tiêu
ŷ. Nếu ảnh x có nhãn thuộc Y được áp dụng mã cửa sau t = (m, p) để chuyển
thành ảnh backdoor x̂ thì f (x̂) = ŷ.

Ngoài ra, còn có một số kịch bản tấn công khác như many-to-many (tập nguồn và
tập mục tiêu gồm nhiều nhãn, sử dụng nhiều mã cửa áu), hay all-to-one (một biển thể
của many-to-one với tập nguồn gồm tất cả các ảnh), . . . Tuy nhiên, trong khuôn khổ
đồ án, chúng ta chỉ xét với kịch bản đơn giản nhất.

2.3 Một số ký hiệu dùng trong đồ án


Để giúp cho người đọc có thể theo dõi đồ án dễ dàng hơn, trong đồ án này, em xin
sử dụng hệ thống ký hiệu như sau:
Gọi x là ảnh đầu vào, y là nhãn của ảnh đó và f là mô hình học sâu phân
lớp ảnh. Ta định nghĩa mã cửa sau (trigger) t là một bộ (m, p) với m gọi là mặt
nạ (mask), p gọi là cò (pattern). Việc áp dụng mã cửa sau t vào ảnh x được thực hiện
như sau:
x̂ = p m + (1 − m) x
Với x̂ được gọi là ảnh chứa mã cửa sau (backdoor input) và là phép nhân từng
điểm ảnh. Gọi ŷ là nhãn mục tiêu. Như vậy, chúng ta mong muốn mô hình f sẽ
họat động tốt trên những ảnh đầu vào x, tuy nhiên hoạt động bất thường với những
ảnh backdoor x̂:
(
f (x) = y
f (x̂) = f (p m + (1 − m) x) = ŷ
Nên nhớ rằng, ảnh chứa cửa sau x̂ chỉ có một chút khác biệt nhỏ so với ảnh ban
đầu x.

18
(a) Ảnh đầu vào (b) Cò (c) Mặt nạ (d) Ảnh chứa cửa
sau

Hình 2.5: Minh họa các thành phần của tấn công cửa sau. Có thể thể thấy rằng,
dù chỉ khác biệt so với ảnh ban đầu không đáng kể, ảnh backdoor vẫn bị nhận diện
nhầm bởi mô hình phân lớp ảnh.

19
Chương 3

Các Phương Pháp Tấn công

3.1 BadNets
BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain
[11] là bài báo đầu tiên nói về tấn công cửa sau. Được giới thiệu lần đầu tiên vào năm
2017 bởi Tiany Gu và các cộng sự, bài báo thực sự đã mở ra một chủ đề nghiên cứu
hoàn toàn mới.
Cách thức tấn công của BadNets dựa trên việc đầu độc dữ liệu luyện. Đây là cách
thức tấn công kiểu mẫu, và gần như tất cả phương pháp phòng thủ cửa sau hiện có
đều giả sử rằng mô hình có cửa sau giống như BadNets. Thuật toán 1 minh họa việc
tấn công theo BadNets, với kịch bản all-to-one. Ngoài ra, BadNets cũng đề xuất nhiều
kịch bản tấn công khác như all-to-all, . . . Tuy nhiên, cách thức thực hiện gần như tương
đồng với kịch bản all-to-one, nên em xin phép không trình bày chi tiết thêm.
Phương pháp tấn công BadNets đạt hiệu suất rất cao, gần như hiệu quả của mô
hình chứa mã cửa sau trên dữ liệu thường tương đồng với mô hình được huấn luyện
bình thường. Tuy nhiên, với dữ liệu cửa sau, mô hình sẽ cho kết quả phân loại về nhãn
mục tiêu ŷ với độ chính xác lên đến gần 100%. Hình 3.1 minh họa việc triển khai một
mô hình chứa cửa sau bị tấn công BadNets trong thực tế.
Ưu điểm của phương pháp tấn công BadNets là đơn giản, có thể triển khai dễ dàng
bởi bên tấn công (bên huấn luyện mô hình). Nhược điểm của phương pháp này cũng
chính là bởi sự đơn giản, hiện nay đã có rất nhiều những phương pháp phòng thủ hữu
hiệu đối với loại tấn công này.
Bên cạnh đó, có rất nhiều bài báo về tấn công cửa sau lấy cảm hứng từ BadNets.
Như [9] đề xuất lấy trigger t = (m, p) với p là cả một bức ảnh, hay trigger với hình
ảnh như là một chiếc kính, . . .

3.2 Dynamic Backdoor Attacks


Tấn công động (dynamic backdoor attacks) là một ý tương tấn công cửa sau mới.
Lần đầu xuất hiện trong bài báo Dynamic Backdoor Attacks Against Machine Learning

20
Algorithm 1: BadNets all-to-one
f là mô hình luyện, S là tập luyện, L là một hàm mất mát (cross entropy, . . . );
ŷ là nhãn mục tiêu; t = (m, p) là trigger định nghĩa trước;
p là tỷ lệ dữ liệu bị đầu độc;
n = |S| ∗ p;
for i = 1, n do
chọn ngẫu nhiên điểm dữ liệu (x, y) trong S;
x̂ = x (1 − m) + p m;
S ←− S ∪ (x̂, ŷ);
end
while f chưa hội tụ do
lấy ngẫu nhiên (x, y) thuộc S;
L = L(f (x), y);
f ←− optimizef (L);
end
return f

Hình 3.1: BadNets trong thực tế. Ở đây, biển báo dừng lại bị nhận diện nhầm thành
biển báo hạn chế tốc độ khi ta dán một miếng decal vuông màu trắng xuống vùng dưới
của biển báo. Nguồn [11].

21
Models [12] vào tháng 3 năm 2020 bởi Ahmed Salem và các cộng sự, phương pháp lần
đầu đề ra một phương pháp tấn công cửa sau mà trong đó, mã cửa sau có cò không
cố định.
Phương pháp này sử dụng một mạng sinh các mã cửa sau, gọi là bộ sinh mã BaN
(Backdoor Generating Network), được lấy cảm hứng từ kiến trúc GANs [43]. Nó được
luyện đồng thời cùng mô hình cần luyện f và nhận đầu vào là một véc tơ được sinh
ngẫu nhiên z. Đồng thời, người ta cũng khởi tạo một bộ M gồm các mặt nạ. Trong
quá trình huấn luyện, cò p sẽ được BAN sinh ngẫu nhiên và một mặt nạ m thuộc M
sẽ được chọn để tạo thành mã cửa sau t = (m, p). Sau đó, mã cửa sau này sẽ được áp
dụng vào một ảnh ngẫu nhiên để tạo thành ảnh chứa mã cửa sau. Sơ đồ hoạt động của
tấn công cửa sau động có thể được minh họa như hình 3.3.

Hình 3.2: Minh họa tấn công động. Khác với cách tấn công truyền thống, trigger
của tấn công động thay đổi ngẫu nhiên. Nguồn [12].

Phương pháp này đặc biệt nguy hiểm bởi nó giả thiết tấn công của nó khác hoàn
toàn so với những phương pháp phòng thủ cửa sau hiện nay. Tuy nhiên, nhược điểm
của nó là chi phí tính toán, bởi bên cạnh việc huấn luyện mạng f , thì đồng thời chúng
ta phải huấn luyện thêm một mạng BaN đi kèm.

22
Hình 3.3: Cách thức thực hiện của tấn công động. Ở đây, trigger ti được sinh
ngẫu nhiên bởi BaN, sau đó được áp dụng vào ảnh x để làm ảnh có nhãn là 7 này được
nhận diện thành nhãn mục tiêu 9. Nguồn [12].

23
Chương 4

Các Phương Pháp Phòng Thủ

Ở chương này, em xin đi sâu phân tích về các phương pháp phòng thủ cửa hiện
nay. Về cơ bản, phòng thủ backdoor được chia thành ba dạng chính:

• Phòng thủ huấn luyện (training defense)

• Phòng thủ mô hình (model defense)

• Phòng thủ hậu triển khai (testing-time defense)

Mỗi dạng phòng thủ này có một kịch bản phòng thủ riêng. Ở dạng thứ nhất - phòng
thủ huấn luyện, bên phòng thủ giả sử rằng họ có quyền truy cập vào tập dữ liệu luyện
của bên tấn công. Từ đó, họ có thể kiểm tra xem liệu rằng trong tập dữ liệu luyện này,
có những mẫu luyện nào bất thường không. Tuy nhiên, trên thực tế điều này là không
khả thi. Rất khó có khả năng bên tấn công rò rỉ bộ dữ liệu luyện của họ, hoặc nếu
có rò rỉ thì họ phải loại bỏ những dữ liệu luyện bất thường đi trước. Vậy nên trong
phạm vi của đồ án lần này, em xin không đi sâu vào kiểu phòng thủ huấn luyện, mà
tập trung vào hai kiểu phòng thủ còn lại.

4.1 Phòng thủ mô hình


4.1.1 Tổng quan
Ở kiểu phòng thủ này, chúng ta giả sử rằng bên phòng thủ nhận được mô hình đã
được huấn luyện sẵn của bên tấn công. Tuy nhiên, mô hình vẫn chưa được triển khai
(deploy) trong thực tế. Nhiệm vụ của bên phòng thủ là nhận diện mô hình có chứa cửa
sau hay không, hoặc giảm nhẹ tác động của cửa sau tới mô hình đó. Ngoài mô hình
được huấn luyện sẵn, bên phòng thủ cũng có quyền truy cập vào tập dữ liệu thử. Nên
nhớ rằng, trong tập dữ liệu thử chỉ có những ảnh đầu vào bình thường, không hề chứa
ảnh backdoor.
Kịch bản này rõ ràng phù hợp với điều kiện thực tế hơn nhiều, bởi trên thực tế, tập
dữ liệu luyện luôn được công khai cho bên sử dụng mô hình để kiểm tra tính hiệu quả

24
(performance) của mô hình đó. Hai phương pháp tiêu biểu của kiểu phòng thủ này đó
chính là Neural Cleanse và Fine-pruning.

4.1.2 Neural Cleanse


Neural Cleanse [15] được giới thiệu lần đầu vào năm 2019 bởi Bolun Wang và các
cộng sự. Đây là biện pháp phòng thủ đầu tiên có thể đưa ra quyết định rằng liệu mô
hình có chưa backdoor hay không.
Ý tưởng của phương pháp này là: nếu một mô hình có chứa backdoor với nhãn mục
tiêu là ŷ thì mã cửa sau tŷ = (mŷ , pŷ ) để với mọi x, f (x (1 − mŷ ) + p m) = ŷ sẽ có
chuẩn của mŷ "nhỏ hơn đáng kể " so với các nhãn khác ŷ.
Với mỗi nhãn mục tiêu ŷ, phương pháp này sẽ tìm ra mã cửa sau tŷ có chuẩn của
mặt nạ mŷ nhỏ nhất sao cho khi áp dụng mã cửa sau này vào ảnh x, với nhãn là y,
thì ảnh này sẽ bị mô hình f phân lớp về nhãn ŷ. Sau khi tìm ra tất cả các mŷ , đặt
M = {mŷ }ŷ=1,k là tập tất cả các mặt nạ ứng với các nhãn ŷ, phương pháp sẽ tính
một giá trị, gọi là chỉ số khả nghi (Anomaly Index), dựa trên Median Absolute
Deviation [44] (MAD), cụ thể như sau:


 med = median({kmŷ k}ŷ=1,k )

mad = median({|kmŷ k − med)|}ŷ=1,k )


 kmin({kmŷ k}ŷ=1,k − med)k
 AnomalyIndex =

mad ∗ ConsistencyConstant

Với ConsistencyConstant là hằng số ổn định. Ở bài báo gốc, ConsistencyConstant


được gán giá trị là 1.4826. Sau khi tính ra được chỉ số khả nghi, nếu giá trị này nhỏ
hơn một ngưỡng (trong bài báo đề nghị ngưỡng này bằng 2), thì mô hình đó không
chứa cửa sau. Còn ngược lại thì mô hình có chứa cửa sau và nhãn ŷ có kmŷ k nhỏ nhất
chính là nhãn mục tiêu.
Về cài đặt, phương pháp sử dụng mô hình mạng nơ ron với các tham số là m và
p và sử dụng lan truyền ngược để cập nhật hai tham số này. Chi tiết thuật toán được
trình bày dưới đây:
Tuy nhiên, phương pháp cũng tồn tại nhiều nhược điểm:
• Thứ nhất: Nếu kích thước của mặt nạ ban đầu lớn, thì kmŷ k thu được bởi
Neural Cleanse cũng sẽ lớn. Và khi đó, phương pháp xác định ngoại lai MAD có
thể hoạt động không tốt, bởi khi đó kmŷ k sẽ gần với những nhãn không phải
là nhãn mục tiêu. Theo bài báo, Neural Cleanse có thể hoạt động hiệu quả với
trigger có kích thước bằng 39% bức ảnh trên bộ MNIST.

• Thứ hai: Không hiệu quả với kiểu tấn công many − to − many, tức tất cả các
nhãn đều là mục tiêu (mỗi nhãn mục tiêu sẽ có một mã cửa sau riêng).

• Thứ ba: Phương pháp này khá bất ổn. Tỉ lệ nhận diện nhầm mô hình cửa sau
khá cao. Đôi khi nó cũng nhận diện mô hình bình thường là mô hình cửa sau.

25
Algorithm 2: Neural Cleanse
f là mô hình cần kiểm tra, S là tập thử, K là tập các nhãn;
M = ∅;
for ŷ thuộc K do
Khởi tạo ngẫu nhiên mŷ , pŷ ;
for (x, y) thuộc S do
x̂ = x (1 − mŷ ) + pŷ mŷ ;
prediction = f (x̂);
Lentropy = crosse ntropy(prediction, ŷ);
Lmask_norm = kmk;
Ltotal = Lentropy + Lmask_norm ;
mŷ ←− optimizemŷ (Ltotal ); p ←− optimizepŷ (Ltotal );
end
M ←− M ∪ {mŷ };
end
med = median({kmk}m∈M );
mad = median({kmk − med}m∈M );
kmin({kmk}m∈M ) − med)k
anomaly_index = ;
mad ∗ 1.4826
if anomaly_index < 2 then
result = T rue;
else
result = F alse
end
return result

26
(a) MNIST (b) GTSRB

Hình 4.1: Minh họa kết quả của Neural Cleanse. Thí nghiệm được thực hiện trên
hai tập dữ liệu: tập dữ liệu chữ số viết tay [13] (MNIST) và tập dữ liệu biển báo giao
thông đức [14] (GTSRB). Với mỗi tập dữ liệu, nguời ta luyện một mô hình phân lớp
ảnh với backdoor như ảnh đầu tiên. Ảnh thứ hai là ảnh của trigger m ∗ p mà Neural
Cleanse tìm được. Nguồn [15].

• Thứ tư: Chi phí tính toán rất lớn.

4.1.3 Fine-Pruning
Fine-pruning [10] là một phương pháp phòng thủ khác được giới thiệu vào năm
2018 bởi Kang Liu và các cộng sự.
Khác với phương pháp Neural Cleanse, Fine-pruning không thể đưa ra khẳng định
rằng liệu mô hình cho trước có cửa sau hay không, mà chỉ đưa ra chiến lược để giảm
thiểu tác động cửa sau tới mô hình.
Ý tưởng của phương pháp này là: trong những mô hình có cửa sau sẽ có những
nơ ron không có tác dụng gì trong việc nhận diện bức ảnh thông thường, thay vào đó
nó chỉ hoạt động khi ảnh đầu vào là bức ảnh cửa sau (Hình 4.2). Như vậy, bằng cách
"cắt tỉa" đi những nơ ron này, tức loại bỏ những nơ ron này ra khỏi mô hình ban đầu,
chúng ta có thể vô hiệu hóa được cửa sau, và mô hình ban đầu sẽ trở thành mô hình
bình thường. Hơn nữa, việc làm này còn giúp giảm kích thước của mô hình, giúp cho
mô hình nhẹ hơn, qua đó tăng tốc tính toán.
Bài báo đề xuất rằng nên cắt tỉa nơ ron ở những lớp cuối cùng của mô hình (lớp
tích chập ngay trước lớp fully connected), bởi những nơ ron này quyết định trực tiếp
đến đầu ra của mô hình đó. Bên cạnh đó, việc cắt tỉa nơ ron chắc chắn sẽ ảnh hưởng
đến độ chính xác của mô hình. Như vậy, việc cắt tỉa nơ ron sẽ phải dừng lại khi hiệu
suất của mô hình giảm xuống dưới một mức nhất định.
Phương pháp này tồn tại một số nhược điểm:

• Thứ nhất: Mỗi mô hình có một cách cắt tỉa khác nhau, phụ thuộc vào lớp cắt tỉa
(tích chập, fully connected, các lớp chuẩn hóa (normalization), . . . ). Hơn nữa, có
những mô hình rất khó cắt tỉa, như những mô hình có nối tắt (skip connection).

• Thứ hai: Trong nhiều trường hợp, việc cắt tỉa nơ ron khiến cho hiệu quả của
mô hình giảm đáng kể.

27
(a) Mô hình bình thường (b) Mô hình backdoor

Hình 4.2: Tín hiệu kích hoạt trung bình (average activations) của các nơ ron
lớp cuối cùng. Ta có thể thấy rằng, tín hiệu với mô hình bình thường rất khác so với
mô hình chứa cửa sau. Nguồn [10].

Hình 4.3: Minh họa phương pháp cắt tỉa nơ ron. Ở đây, những nơ ron đóng góp
không đáng kể vào quá trình phân loại bức ảnh sẽ bị loại bỏ. Nguồn [10].

• Thứ ba: Tốn tại những phương pháp tấn công khiến cho mô hình dù đã cắt tỉa
đến mức tối đa số nơ ron), vẫn không có thể loại bỏ được backdoor.

4.2 Phòng thủ hậu triển khai


4.2.1 Tổng quan
Ở kiểu phòng thủ hậu triển khai, chúng ta giả sử rằng mô hình đã được triển khai
vào hệ thống trong thực tế. Nhiệm vụ của bên phòng thủ đó chính là kiểm tra xem
một bức ảnh cho trước có phải là ảnh chứa mã cửa sau hay không. Ngoài mô hình đã
luyện sẵn và bức ảnh cho trước, người phòng thủ còn có quyền truy cập vào tập dữ

28
Hình 4.4: Minh họa STRIP. Ở đây, bức ảnh x̂ được ghi đè với các bức ảnh khác
trong tập thử n để thu được n bức ảnh x̂0 . Sau đó, người ta tiến hành tính entropy
trung bình của f (x̂0 ) (f là mô hình cho trước). Nếu giá trị entropy này nhỏ hơn ngưỡng
cho trước (trong bài đề xuất ngưỡng này là 0.2), thì bức ảnh x̂ ban đầu là bức ảnh
chứa cửa sau. Nguồn [16].

liệu thử.Như vậy, so với phương pháp phòng thủ mô hình, kịch bản của phương pháp
này nhìn chung dễ dàng hơn. Một số phương pháp tiêu biểu cho kiểu phòng thủ này
có thể kể đến như Februus [17], Neo [7] hay STRIP [16], . . . Trong khuôn khổ đồ án,
em xin đi sâu trình bày về hai phương pháp phổ biển hơn: ST RIP và F ebruus.

4.2.2 STRIP
STRIP [16] là một trong những phương pháp phòng thủ cửa sau khá hiệu quả, được
giới thiệu lần đầu vào năm 2019 bởi Y Gao và các cộng sự. Ý tưởng chính của phương
pháp này là: khi bị các nhiễu động (đè ảnh (superimpose), . . . ), kết quả nhận diện
(logit) của ảnh chứa cửa sau sẽ ít bị thay đổi hơn so với những bức ảnh thông thường.
Chi tiết thuật toán của phương pháp được trình bày dưới đây:

Algorithm 3: STRIP
f là mô hình đã triển khai, S là tập thử;
x̂ là bức ảnh cần kiểm tra; n là số lần chạy thuật toán sum = 0;
for i = 1, n do
Lấy ngẫu nhiên một bức ảnh x thuộc S;
x̂ ←− superimpose(x̂, x); logit = f (x̂);
sum ←− sum − logit ∗ log2 (logit);
end
average_entropy = sum n ;
if average_entropy < 0.2 then
result = T rue
else
result = F alse
end
return result

Ưu điểm của phương pháp này đó chính là thời gian nhận diện khá nhanh so với
các phương pháp khác. Với mỗi bức ảnh, chúng ta chỉ cần inference một số lần nhất

29
Hình 4.5: Biểu đồ tần suất của entropy. Màu xanh biểu thị entropy của ảnh thường,
màu cam biểu thị entropy của ảnh backdoor. Ta có thể thấy rằng, entropy của ảnh
chứa cửa sau thấp hơn rất nhiều so với những bức ảnh thường. Nguồn [16].

định (trong bài báo, giá trị này là 100) để tính giá trị entropy trung bình. Tuy nhiên,
phương pháp tỏ ra không hiệu quả nếu mã cửa sau ở những vị trí gần với đối tượng
cần nhận diện trong bức ảnh.

4.2.3 Februus
Februus [17] là một phương pháp phòng thủ cửa sau được giới thiệu bởi Bao Gia
Doan và các cộng sự vào năm 2019. Đây là một phương pháp dựa trên GradCAM [45],
trong đó nó nhận diện vùng nào tác động đến kết quả phân loại của bức ảnh nhất
(Hình 4.6).
GradCAM visualizer là một ý tưởng không mới, đã có từ năm 2016. Tuy nhiên, nó
tỏ ra khá hữu hiệu trong việc nhận diện vị trí của trigger. Sau khi đã phát hiện được
vị trí chính xác của mã cửa sau, Februus đề nghị một phương pháp để loại bỏ mã cửa
sau ra khỏi bức ảnh, sử dụng mô hình Generative Adversarial Network (GAN) [43].
Tuy nhiên, trong khuôn khổ giới hạn của đồ án, em xin không trình bày phần này.

30
Hình 4.6: Bản đồ nhiệt của những bức ảnh backdoor. Trigger là hình ngôi sao
trên má người ca sĩ ở bức ảnh đầu tiên và là hình bông hoa đối với hai bức ảnh còn
lại. Có thể thấy rằng, phương pháp đã nhận diện đúng được vị trí của trigger trong
bức ảnh. Nguồn [17].

31
Chương 5

Tấn Công Cửa Sau Phụ Thuộc Đầu


Vào

Nội dung trong chương này là một phần của bài báo với tựa đề "Input-Aware
Dynamic Backdoor Attack" [18], được xuất bản tại Advances in Neural Information
Processing Systems năm 2020.

5.1 Sơ lược về phương pháp


5.1.1 Yếu điểm của các phương pháp tấn công cửa sau trước
đây
Trước hết, chúng ta sẽ đề cập đến BadNets [11] - phương pháp tấn công cửa sau
cơ bản. Ở phương pháp này, chúng ta sẽ sử dụng mô hình học sâu f cho tác vụ phân
loại ảnh: f : X → C với X là miền không gian ảnh đầu vào và C = {c1 , c2 , . . . , cM } là
tập gồm M nhãn cần phân loại. Để huấn luyện f , chúng ta có một tập dữ luyện luyện

S = (xi , yi ) | i = 1, N với xi ∈ X là ảnh đầu vào và yi ∈ C là nhãn tương ứng với
ảnh xi .
Một mã cửa sau (backdoor trigger) t = (m, p) bao gồm một mặt nạ m và một cò
p. Để đảm bảo rằng mã cửa sau này khó bị nhận diện khi thêm vào bức ảnh, mặt nạ
m phải có giá trị nhỏ: m  1.
Trong quá trình huấn luyện, dữ liệu luyện ban đầu (x, y) sẽ ngẫu nhiên bị thay thế
bởi dữ liệu luyện độc hại (x̂, c) với xác suất ρ. Ảnh độc x̂ được tạo bởi ảnh ban đầu x
và mã cửa sau t = (m, p) thông qua hàm tiêm nhiễm B:
x̂ = B(x, t) = x (1 − m) + p m (5.1.1)
với là ký hiệu của phép nhân từng điểm ảnh. Nhãn mục tiêu c ∈ C có thể cố định
(tấn công đơn mục tiêu) hoặc là một hàm phụ thuộc vào nhãn ban đầu y. Một mô hình
bị tấn công thành công là mô hình hoạt động tốt với những ảnh "sạch", tuy nhiên nếu
trong ảnh tồn tại mã cửa sau thì lập tức mô hình học sâu sẽ phân loại nó về nhãn mục
tiêu c, bất kể vật thể trong ảnh là gì đi nữa.

32
Hình 5.1: Minh họa cò p, mặt nạ m, và mã cửa sau t. Ở đây, giá trị các điểm ảnh
của p sẽ nằm trong miền giống với ảnh đầu vào, giá trị các điểm ảnh của m sẽ nằm
trong đoạn [0, 1], và là kí hiệu của phép nhân từng điểm ảnh.

Hình 5.2: Minh họa tấn công cửa sau. Ở đây, bức ảnh có nhãn gốc là 1 được mô
hình học sâu phân lớp đúng khi trong ảnh không có mã cửa sau. Tuy nhiên, khi thêm
vào trong ảnh một số điểm ảnh nhỏ nằm ở góc bức ảnh, mô hình học sâu phân lớp liền
phân loại nó về với nhãn mục tiêu là nhãn 0. Nguồn [18].

Sau BadNets, một loạt phương pháp tấn công khác đã được đề xuất. Chen và các
cộng sự [9] đề suất sử dụng tác nhân vật lý (kính) để làm mã cửa sau trong hệ thống
nhận diện khuôn mặt. Liu và các cộng sự [39] đề xuất tiêm nhiễm mã cửa sau vào mô
hình học máy ở lúc điều chỉnh tham số mô hình (fine-tuning) thay vì ở lúc huấn luyện
mô hình. Cách tấn công này giả sử rằng ban đầu những kẻ tấn công đã có sẵn một
mô hình "sạch" f , không chứa mã cửa sau. Bằng cách sử dụng kỹ thuật nghịch đảo
(reverse engineer technique), với một mặt nạ m cho trước, kẻ tấn công có thể tìm ra
cò p phù hợp với m và mô hình ban đầu f . Như vậy, thời gian tiêm nhiễm mã cửa sau
sẽ được giảm đi rất nhiều.
Tuy nhiên, tất cả các phương pháp hiện nay đều có một điểm yếu cố hữu: cửa sau
tĩnh, không liên quan đến nội dung bức ảnh. Tức là mã cửa sau hoạt động với

33
với bức ảnh chứa nội dung bất kỳ, và giá trị các điểm ảnh của mặt nạ và cò không hề
thay đổi. Điều làm suy yếu khả năng tấn công của các phương pháp trên, và là kẽ hỡ
để những người phòng có thể sử dụng để vô hiệu hóa những phương pháp đó.

5.1.2 Ý tưởng phương pháp


Từ nhận xét trên, em đã rút ra kết luận rằng: phương pháp tấn công sẽ mạnh hơn
nếu mặt nạ m và cò p của phương pháp là động, tức là nó phải phù thuộc vào nội
dung bức ảnh, và mặt nạ cũng như là cò không có một giá trị cố định. Như vậy, mặt
nạ và cò phải là một hàm số phụ thuộc vào đầu vào x: m = m(x); p = p(x). Từ đây,
em xin đề xuất ra một phương pháp tấn công cửa sau hoàn toàn mới với tên gọi tấn
công cửa sau phụ thuộc đầu vào (input-aware dynamic backdoor attack).

(m) (m)
(p) (p)

g g

Trigger1 Trigger2

automobile plane automobile plane automobile

Hình 5.3: Phương pháp tấn công cửa sau phụ thuộc đầu vào. Ở đây, kẻ tấn
công sứ dụng mạng sinh ảnh g để tạo ra khóa cửa sau (m, p) phụ thuộc vào đầu vào
x. Sau khi huấn luyện, mô hình phân lớp ảnh vẫn có khả năng nhận diện chính xác
ảnh không chứa cửa sau (như ảnh đầu tiên bên trái) nhưng trả về một nhãn mục tiêu
"plane" khi ảnh bị tiêm mã cửa sau tương ứng với nó (ảnh thứ 2 từ trái sang phải).
Tuy nhiên, khi tiêm mã cửa sau không tương thích (mã ứng với ảnh thứ 5 từ trái sang
phải) vào ảnh, thì ảnh không hề bị nhận diện sai. Do đó, mã cửa sau ở đây là bất
đồng bộ (non-reusable). Nguồn [18].

5.2 Chi tiết phương pháp


5.2.1 Một số định nghĩa
Nhắc lại, một mô hình phân lớp ảnh là một hàm f : X −→ C, trong đó X là không
gian ảnh đầu vào và C = {c1 , c2 , . . . , cM } là một tập gồm M nhãn. Để tối ưu các tham

số của f , ta được cung cấp một tập giữ liệu S = (xi , yi ) | xi ∈ X , yi ∈ C, i = 1, N .
Để tạo cửa sau cho mạng f , ta cần phải tiêm mã cửa sau vào dữ liệu của tập luyện

34
S. Gọi B là hàm tiêm nhiễm, tiêm mã cửa sau t = (m, p) vào ảnh x:

B : X × T −→ X
(x, t) 7−→ B(x, t) = x (1 − m) + p m

Thay vì chỉ sử dụng một mã cửa sau t cố định, em đề nghị sử dụng mã cửa sau phụ
thuộc đầu vào. Để thiết kế phương pháp, trước hết ta có một số định nghĩa sau.

Định nghĩa 5.2.1. Một phương pháp tấn công cửa sau được gọi là phụ thuộc đầu
vào (input-aware) khi và chỉ khi mã cửa sau tương ứng t là một hàm số phụ thuộc vào
đầu vào x. Gọi g là bộ sinh mã, ánh xạ từ ảnh đầu vào đến mã cửa sau tương ứng:

g : X −→ P
x 7−→ g(x) = t

Định nghĩa 5.2.2. Một phương pháp tấn công cửa sau phụ thuộc đầu vào được gọi là
chặt (strict) nếu mã cửa sau được sinh bởi bộ sinh mã g thỏa mãn:
kg(xj )−g(xi )k
• Tính đa dạng (diversity): ∃c > 0 sao cho: kxj −xi k
>  ∀i 6= j

• Tính không trùng lặp (non-reusability): mã cửa sau được sinh từ một ảnh
không có tác dụng khi được tiêm nhiễm lên ảnh khác:

f (B (xi , g (xj ))) = yi ∀i 6= j.

TỪ những định nghĩa trên, ta thấy: cực đại hóa giá trị kg(xkx11)−g(x
−x2 k
2 )k
sẽ giúp g tránh
hiện tượng bão hòa (tức với mọi ảnh đầu vào x, mã cửa sau tương ứng đều tương tự),
giúp Im g ⊂ X đủ lớn. Như vậy, g sẽ có khả năng sinh mã cửa sau đa dạng hơn.
Ở những phần tiếp theo, em sẽ thảo luận về cách thức cài đặt phương pháp tấn
công mới này. Đầu tiên, chúng ta cần thiết kế mô hình của bộ sinh mã g, với kiến trúc
của AE (AutoEncoder) tiêu chuẩn, nhận ảnh x làm đầu vào. Tiếp theo, em sẽ đề xuất
những hàm mục tiêu mới, bên cạnh hàm mục tiêu tiêu chuẩn cho bài toán phân loại
ảnh, để đảm bảo tính đa dạng và tính không trùng lặp của bộ sinh mã.

5.2.2 Bộ sinh mã
Bộ sinh mã g có kiến trúc bao gồm một bộ mã hóa (encoder) và bộ giải mã (decoder)
tiêu chuẩn. Nó nhận một bức ảnh là đầu vào, và sinh ra một mã cửa sau tương ứng.
Sau đó, các mã cửa sau được sinh ra sẽ kết hợp với ảnh đầu vào tương ứng để tạo ảnh
cửa sau, hoặc kết hợp với ảnh đầu vào không tương ứng, sử dụng để huấn luyện tính
không trùng lặp của mã cửa sau.

35
5.2.3 Chế độ huấn luyện
Những phương pháp tấn công cửa sau hiện nay chỉ huấn luyện mô hình ở hai chế
độ:
• Chế độ tiêu chuẩn: mô hình phải phân loại chính xác đối với ảnh đầu vào
không chứa mã cửa sau.

• Chế độ tấn công: cửa sau được kích hoạt, mô hình phải phân loại ảnh đầu vào
chứa mã cửa sau về nhãn mục tiêu.
Để đảm bảo tính không trùng lặp, em đề xuất bổ sung một chế độ huấn luyện mới, gọi
là chế độ chéo. Cho trước một bức ảnh x, em sẽ lựa chọn ngẫu nhiên một bức ảnh
x0 6≡ x, và sử dụng bộ sinh mã sinh ra một mã cửa sau tương ứng với x0 là t0 . Bức ảnh
bị tiêm mã B(x, t0 ) sau đó vẫn được gán với nhãn ban đầu y. Ba chế độ huấn luyện
được miêu tả như Hình 5.4.

f y

f y x
^
x
x
g
x’ t’

(a) Chế độ tiêu (b) Chế độ tấn công (c) Chế độ chéo
chuẩn

Hình 5.4: Ba chế độ huấn luyện được đề xuất. Chúng bao gồm: (a) huấn luyện
bô mình với dữ liệu sạch, (b) huấn luyện mô hình với dữ liệu chứa mã cửa sau tương
thích, và (c) huấn luyện mô hình chứa mã cửa sau không tương thích. Nguồn [18].

Ở bước đánh giá mô hình, chúng ta cũng có ba bài đánh giá tương ứng với những
chế độ trên.

5.2.4 Hàm mục tiêu


Hàm mục tiêu phân loại
Hàm mục tiêu phân loại sẽ được tính dựa trên ba chế độ huấn luyện nêu trên. Trước
hết, chúng ta sẽ lựa chọn xác suất tiêm nhiễm mã cửa sauρb ∈ (0, 1), và xác suất kiểm
tra chéo ρc ∈ (0, 1) sao cho ρb + ρc < 1. Khi đó, với mỗi cặp đầu vào (x, y), chúng ta
chọn ngẫu nhiên chế độ huấn luyện và thực hiện tính hàm mục tiêu phân loại theo chế
độ huấn luyện đó. Sau đó, ta tổng hợp tất cả các hàm mục tiêu phân loại ứng với từng
cặp đầu vào để tạo thành một hàm mục tiêu phân loại cuối cùng:

X  L(f (B(x, G(x))), c) với xác suất ρa
Lcla = L (f (B (x, G (x0 ))) , y) với xác suất ρc (5.2.2)
L(f (x), y) với xác suất 1 − ρa − ρc
0 0

(x,y)∈S,x ∈X ,x 6=x

36
với L là entropy chéo (cross entropy).

Hàm mục tiêu về tính đa dạng


Để cập nhật tham số cho bộ sinh mã g, cùng với hàm mục tiêu phân loại Lcla , ta
cũng cần bổ sung ràng buộc về sự đa dạng (diversity enforcement regularization) Ldiv :

kx − x0 k
Ldiv =
kg(x) − g (x0 )k

Ràng buộc này chính là điều kiện tiên quyết để huấn luyện bộ sinh mã g. Nếu thiếu
hàm mục tiêu này, đầu ra của g sẽ bị bão hòa về một mã cửa sau t = (m, p) duy nhất.
Như vậy, hàm mục tiêu cuối cùng sử dụng trong huấn luyện sẽ là sự kết hợp giữa
Lcla và Ldiv , với trọng số λdiv :

Ltotal = Lcla + λdiv Ldiv

Thuật toán 4 mô tả phương pháp tấn công cửa sau phụ thuộc đầu vào.

Algorithm 4: Tấn công cửa sau phụ thuộc đầu vào chặt
Cho f là mô hình phân lớp ảnh, g là bộ sinh mã;
Cho c là nhãn mục tiêu, bộ dữ liệu luyện S, xác suất tiên nhiễm mã cửa sau ρb , xác
suất kiểm tra chéo ρc ;
khởi tạo ngẫu nhiên tham số của f , g
for Số lần lặp huấn luyện do
for (x, y) in S do
d ←− random(1); (x0 , y 0 ) ←− random_sample(S)
t ←− g(x); t0 ←− g(x0 )
kx−x0 k
Ldiv ←− kg(x)−g(x 0 )k

if d < ρb then
Lcla ←− L(B(x, t), c)
else if d < ρb + ρc then
Lcla ←− L(B(x, t0 ), y)
else
Lcla ←− L(x, y)
end
Ltotal = Lcla + λdiv Ldiv
g ←− optimizeg (Ltotal ); f ←− optimizef (Ltotal )
end
end
return mô hình đã được huấn luyện f , g

37
5.3 Kết quả thực nghiệm
5.3.1 Thiết kế thí nghiệm
Để thuận tiện trong việc đánh giá thí nghiệm và so sánh kết quả, em thực hiện
đánh giá phương pháp trên ba bộ dữ liệu tiêu chuẩn là: MNIST [13], CIFAR-10 [46], và
GTSRB [14]. Chi tiết về các bộ dữ liệu được miêu tả trong bảng 5.1. Với hai bộ dữ liệu
CIFAR-10 và GTSRB, em sử dụng mô hình Pre-activation ResNet-18 [47], dựa trên
đề nghị của Xu và các cộng sự [48]. Đối với mô hình phân loại của bộ dữ liệu MNIST,
em sử dụng mạng nơ ron tích chập tự thiết kế, mô tả ở bảng 5.1. Về kiến trúc của bộ
sinh mã, em sử dụng một mô hình mã hóa-giải mã (Encoder-Decoder) đơn giản, mô
tả ở bảng 5.5a.
Em sử dụng SGD [49] làm thuật toán tối ưu của f , Adam [50] là thuật toán tối
ưu của g với tốc độ học (learning rate) của cả hai bằng 0.01. Tốc độ này sẽ giảm 10
lần với mỗi 100 lần lặp huấn luyện (epoch). Cả f và g được huấn luyện đồng thời. Em
chọn λdiv = 1 và ρb = ρc = 0.1 để thực hiện thí nghiệm.

Bảng 5.1: Mô tả chi tiết về các bộ dữ liệu và mô hình phân lớp tương ứng sử
dụng trong thí nghiệm. Mỗi lớp tích chập (conv) và lớp tuyến tính (fc) được theo
sau bởi hàm kích hoạt ReLU, ngoại trừ lớp tuyến tính cuối cùng.

Tập Loại vật thể #Nhãn Kích thước #Ảnh luyện Kiến trúc mô hình
MNIST Số viết tay 10 28 × 28 × 1 60000 2 conv, 2 fc
CIFAR-10 Vật thể chung 10 32 × 32 × 3 50000 PreActRes18 [47]
GTSRB Biển báo GT 43 32 × 32 × 3 39252 PreActRes18 [47]

5.3.2 Thí nghiệm tấn công


Em thực hiện thí nghiệm với kịch bản tấn công đơn mục tiêu (one-to-one), tức là
nhãn mục tiêu c là duy nhất. Hình ảnh một số ảnh có chứa cửa sau mẫu có thể thấy
ở hình 5.6, và kết quả tấn công có thể thấy ở bảng ??. Với cả ba bộ dữ liệu, xác suất
tấn công thành công đều gần ở mức tuyệt đối ( 100%), tuy nhiên vẫn đạt được kết quả
phân loại state-of-the-art so với mô hình không chứa cửa sau. Hơn nữa, độ chính xác
khi kiểm tra chéo đạt từ 88.16% (CIFAR-10) tới 96.80% (GTSRB), chứng tỏ rằng mã
cửa sau sẽ không có tác dụng đối với ảnh không tương thích.

5.3.3 Thí nghiệm phòng thủ


Ở phân này, em sẽ thử nghiệm phương pháp tấn công mới với một số phương pháp
phòng thủ cửa sau hiện nay, với cả hai loại phòng thủ mô hình và phòng thủ hậu
triển khai.

38
#Kênh
Lớp
MNIST Khác
(ConvB.) x 2, maxpool 16 32
(ConvB.) x 2, maxpool 32 64
(ConvB.) x 2, maxpool - 128
Tập Clean Attack Cross
ConvBl., Upsam., ConvBl. - 128
ConvBl., Upsam., ConvBl. 32 64 MNIST 99.54 99.54 95.25
ConvBl., Upsam., ConvBl. 16 32 CIFAR-10 94.65 99.32 88.16
ConvBl., sigmoid 1 3 GTSRB 99.27 99.84 96.80

(a) Bộ sinh ảnh (b) Thí nghiệm tấn công

Hình 5.5: Kiến trúc bộ sinh mã và độ chính xác của mô hình phân loại. Ở
đây, mỗi ConvBl. gồm một lớp tích chập Conv2D (nhân 3 × 3), một lớp BatchNorm,
và một lớp ReLU. ConvBl. cuối cùng không bao gồm ReLU. Ở bảng (b), cột Clean,
Attack, và Cross theo thứ tự biểu thị độ chính xác của mô hình với đầu vào là ảnh
bình thường, ảnh chứa cửa sau tương thích, và ảnh chứa cửa sau không tương thích.

(a) MNIST (b) CIFAR-10 (c) GTSRB

Hình 5.6: Một số ảnh cửa sau mẫu. Nhãn mục tiêu (tấn công) của từng bức bộ dữ
liệu là "0" (MNIST), "airplane" (CIFAR-10), và "speed-limit-20" (GTSRB).

Phòng thủ mô hình


Ở phần này, em sẽ thử nghiệm phương pháp tấn công mới với một số phương pháp
phòng thủ cửa sau tiêu chuẩn hiện nay, bao gồm Neural Cleanse [15] và Fine-Pruning
[10]. Chúng đại diện cho hai hướng tiếp cận phòng thủ cửa sau hiện nay, bao gồm truy
vết ngược mã cửa sau (pattern optimization) và phân tích nơ ron (neuron analysis).
Phương pháp Neural Cleanse tính toán cò p và mặt nạ m sao cho tiêm nhiễm mã
cửa sau t = (m, p) vào một ảnh bất kỳ sẽ khiến ảnh đó bị nhẫn diện nhầm về nhãn
mục tiêu. Như vậy, bộ dữ liệu có bao nhiên nhãn, thì sẽ có bấy nhiêu bộ (m, p)
tương ứng được tính toán. Sau đó, nó sẽ đánh giá chỉ số khả nghi (Anomaly
Index) và sử dụng ngưỡng τ = 2 để quyết định xem liệu mô hình có chứa cửa sau hay
không. Chi tiết thuật toán em trình bày ở 4.1.2. Có thế thấy trong hình 5.7a, phương
pháp tấn công mới đề xuất có thể vượt qua bài kiểm tra này. Lý do có thể được giải
thích bởi mã cửa sau trong phương pháp tấn công mới đề xuất thay đổi theo từng bức
ảnh, dẫn tới việc không hề có một mã cửa sau chung mà có tác dụng với mọi bức ảnh
đầu vào, hay nó phá bỏ giả thuyết ban đầu của phương pháp Neural Cleanse.
Trong khi đó, phương pháp Fine-Pruning tập trung phân tích xem nơ ron nào trong
mô hình không có tác dụng trong quá trình phân loại ảnh (không chứa cửa sau, thường
sử dụng ảnh của tập thử). Từ đó, phương pháp sẽ dần dần loại bỏ những nơ ron này,

39
MNIST CIFAR-10 GTSRB
clean 100 100 100
6 ours
badnets
Anomaly
4 75 75 75

2 50 50 50 clean
backdoor
25 25 25
0 MNIST CIFAR-10 GTSRB 0 25 50 0 200 400 0 200 400
(a) Neural Cleanse (b) FinePrunning
MNIST CIFAR-10 GTRSB
0.3 0.3 clean
0.2
0.2 0.2
backdoor
0.1 0.1 0.1

0.0 0.0 0.0


3.0 3.5 4.0 2.0 2.5 3.0 7.5 10.0 12.5 15.0
(c) STRIP
Hình 5.7: Thí nghiệm phòng thủ với những phương pháp hiện nay. Nguồn [18].

tại một lớp mạng nhất định trong mô hình, đến khi việc loại bỏ làm ảnh hướng đến
hiệu suất của mô hình trên tập thử thì dừng lại. Chi tiết phương pháp em đã trình
bày ở 4.1.3. Em thử nghiệm phương pháp này với phương pháp tấn công cửa sau phụ
thuộc đầu vào, kết quả được nhìn thấy như ở 5.7b. Có thể thấy rằng, với mọi tập dữ
liệu, độ chính xác của mô hình trên ảnh nhiễm cửa sau đều lớn hơn so với ảnh "sạch",
do đó việc loại bỏ cửa sau bằng phương pháp này không hiệu quả.

Phòng thủ hậu triển khai


Em cũng thử nghiệm phương pháp tấn công mới với STRIP [16], một phương pháp
phân tích biểu diễn của bức ảnh đầu vào bởi mô hình phân loại ảnh. Với mỗi bức ảnh
đầu vào, STRIP sẽ làm nhiều bức ảnh (ghi đè - superimpose) bởi một tập các ảnh
"sạch", và tính toán entropy đầu ra của mô hình dựa trên bức ảnh ghi đè đó. Các
phương pháp tấn công cửa sau truyền thống thường không bị ảnh hưởng bởi nhiễu (do
mã cửa sau hoạt động trên bức ảnh bất kỳ), và do đó entropy của tính toán được rất
thấp. Chi tiết phương pháp được em đề cập đến ở 4.2.2. Tuy nhiên, phương pháp tấn
công mới không xảy ra hiện tượng đó, do mã cửa sau trong bức ảnh sẽ trở nên không
tương thích với bức ảnh bị ghi đè, nên entropy tính toán được sẽ cao. Kết quả của
STRIP được thể hiện ở hình 5.7c.

5.3.4 Thí nghiệm bổ sung


Sự cần thiết của kiểm tra chéo và hàm mục tiêu về tính đa dạng
Để thể hiện sự tương hỗ của những hàm mục tiêu sử dụng trong phương pháp, em
tiến hành huấn luyện mô hình theo phương pháp tấn công trong một số điều kiện nhất
định.
Thiếu kiểm tra chéo. Dù đạt độ chính xác cao đối với ảnh "sạch" và với ảnh
chứa cửa sau, tuy nhiên độ chính xác kiểm tra chéo chỉ đạt ở mức xấp xỉ 10%. Điều này

40
có nghĩa, mã cửa sau được sinh từ một bức ảnh có tác dụng với bức ảnh đầu vào bất
kỳ, và do đó hành vi của mạng phân loại ảnh f sẽ giống hệt với mạng được huấn luyện
bởi các phương pháp tấn công ảnh truyền thống. Em cũng sử dụng Neural Cleanse để
kiểm tra mạng phân loại trong trường hợp này, khi đó chỉ số khả nghi của mô hình lên
tới 9.43, cao hơn hẳn so với ngưỡng τ = 2.
Thiếu hàm mục tiêu về tính đa dạng. Khi đó g sinh mã cửa sau giống nhau
cho mọi đầu vào, và xảy ra sự xung khắc giữa hàm phân loại tấn công và hàm phân
loại kiểm tra chéo. Khi đó việc huấn luyện f không hội tụ, và độ chính xác trên ảnh
"sạch", ảnh chứa cửa sau tương thích và không tương thích bị kẹt ở mức 10%.
Thiếu cả hai. Khi đó mọi đặc tính của phương pháp mới không còn nữa, mô hình
được huấn luyện sẽ có hành vi tương tự mô hình BadNets.

Phân tích về xác suất tấn công ρb và xác suất kiểm tra chéo ρc
Trong thí nghiệm này, em sẽ đánh giá sự ảnh hưởng của hai tham số ρb và ρc tới
hiệu suất của mô hình. Em đã huấn luyện mô hình trên tập dữ liệu CIFAR-10, với các
tham số ρb và ρc thay đổi trong khoảng từ 0.025 cho tới 0.5.
Có thể thấy trong hình 5.8, phương pháp tấn công được đề xuất khá ổn định, với
độ chính xác cao trên cả ba loại dữ liệu (sạch, chứa mã tương thích, và chứa mã không
tương thích). Khi tăng ρc , độ chính xác kiểm tra chéo tăng từ 80% lên tới 93%. Khi
tăng ρb , độ chính xác tấn công tăng lên tới gần 100%, và đáng ngạc nhiên là độ chính
xác kiểm tra chéo cũng tăng theo.

100
95
90
Accuracy (%)

85
80
clean, c = 0.1, change a clean, a = 0.1, change c
75 backdoor, c = 0.1, change a backdoor, a = 0.1, change c
cross, c = 0.1, change a cross, a = 0.1, change c
70 0.1 0.2 0.3 0.4 0.5
Hình 5.8: Hiệu suất mô hình trên tập CIFAR-10 khi thay đổi ρb và ρc . Nguồn
[18].

41
5.3.5 Phân tích bổ sung
Chính quy hóa ảnh đầu vào
Theo [48], tấn công dựa trên nhiễu (perturbation-based attacks) có thể bị vô hiệu
hóa khi ta sử dụng các phương pháp chính quy hóa ảnh đầu vào (image regularization),
như làm mờ ảnh (image smoothing) hay giảm bit màu ảnh (color depth shrinking).
Em thử nghiệm với các phương pháp chính quy trên trên mô hình được huấn luyện
theo phương pháp mới, và theo dõi độ chính xác mô hình đối với ảnh "sạch" và ảnh
có chứa mã cửa sau tương thích. Có thể thấy rằng, mã cửa sau của phương pháp mới
khá ổn định với các phương pháp chính quy hóa.

Làm mờ Giảm bit màu


Phép thử Gốc
k=3 k=5 3 bits 1 bit
Clean 94.65 69.30 35.24 85.81 22.87
Attack 99.32 99.61 99.67 98.76 89.94

(a) Chính quy hóa ảnh đầu vào (b) GradCam

Hình 5.9: Các phân tích bổ sung: (a) Độ chính xác với ảnh có mã cửa sau tương
thích trên tập CIFAR-10 sau khi chính quy hóa, (b) so sánh biểu đồ nhiệt của ảnh cửa
sau ứng với ba phương pháp tấn công [11, 19, 12] (ba cột đầu tiên) và phương pháp
mới (cột cuối cùng), trên cùng một bức ảnh thuộc tập GTSRB.

Biểu đồ nhiệt
Những phương pháp tấn công truyền thống sử dụng mã cửa sau tĩnh, không phụ
thuộc đầu vào, do đó, vị trí của mã cửa sau có thể bị phát hiện các phương pháp
trực quan hóa bản đồ gradient, ví dụ như GradCam [45], như được nêu trong [17]. Em
sẽ minh họa biểu đồ nhiệt của ảnh đầu vào có chứa cửa sau của một só phương pháp
tấn công truyền thống. Vùng màu đỏ là vùng có tính quyết định đến nhãn mà bức ảnh
được phân loại. Có thể thấy rằng, GradCam không thể phát hiện được vị trí mã cửa
sau của phương pháp tấn công mới được đề xuất.

42
Chương 6

Kết Luận Chung

Những nội dung trình bày ở đồ án này bao gồm:

• Phương pháp tấn công cửa sau phụ thuộc đầu vào

• Các thí nghiệm chứng minh tính vượt trội của phương pháp được đề xuất

Đồ án đã đề xuất một phương pháp tấn công cửa sau hoàn toàn mới, vượt trội so
với các phương pháp truyền thống. Không chỉ chứng minh tính hiệu quả trong việc tấn
công, phương pháp mới này còn tỏ ra hữu hiệu khi chống lại các phương pháp phòng
thủ hiện có.
Trong tương lai, em sẽ mở rộng hướng đi bằng cách nghiên cứu về các đặc tính
xung quanh của mô hình phân loại ảnh học sâu chứa cửa sau, mối liên hệ giữa tấn
công cửa sau và tấn công đối nghịch, và mối liên hệ giữa bảo mật trong học sâu với
các lĩnh vực học sâu truyền thống khác.

43
Tài liệu tham khảo

[1] Ayse Pinar Saygin, Ilyas Cicekli, and Varol Akman. Turing test: 50 years later.
Minds and machines, 10(4):463–518, 2000.

[2] Jianpeng Cheng, Li Dong, and Mirella Lapata. Long short-term memory-networks
for machine reading. arXiv preprint arXiv:1601.06733, 2016.

[3] Rudolf Eigenmann and David J Lilja. Von neumann computers. Wiley Encyclo-
pedia of Electrical and Electronics Engineering, 23:387–400, 1998.

[4] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning
for image recognition. In Proceedings of the IEEE conference on computer vision
and pattern recognition, pages 770–778, 2016.

[5] Ian J Goodfellow, Jonathon Shlens, and Christian Szegedy. Explaining and har-
nessing adversarial examples. The International Conference on Learning Repre-
sentations, 2014.

[6] Olga Russakovsky, Jia Deng, Hao Su, Jonathan Krause, Sanjeev Satheesh, Sean
Ma, Zhiheng Huang, Andrej Karpathy, Aditya Khosla, Michael Bernstein, et al.
Imagenet large scale visual recognition challenge. International journal of com-
puter vision, 115(3):211–252, 2015.

[7] Sakshi Udeshi, S. Peng, Gerald Woo, Lionell Loh, Louth Rawshan, and Sudipta
Chattopadhyay. Model agnostic defence against backdoor attacks in machine
learning. ArXiv, abs/1908.02203, 2019.

[8] Marcus Comiter. Attacking artificial intelligence. Belfer Center Paper, Havard
Kenedy School, 2019.

[9] Xinyun Chen, Chang Liu, Bo Li, Kimberly Lu, and Dawn Song. Targeted backdoor
attacks on deep learning systems using data poisoning. CoRR, abs/1712.05526,
2017.

[10] Kang Liu, Brendan Dolan-Gavitt, and Siddharth Garg. Fine-pruning: Defending
against backdooring attacks on deep neural networks. In Research in Attacks,
Intrusions, and Defenses, pages 273–294, 2018.

44
[11] Tianyu Gu, Brendan Dolan-Gavitt, and Siddharth Garg. Badnets: Identifying vul-
nerabilities in the machine learning model supply chain. CoRR, abs/1708.06733,
2017.

[12] Ahmed Salem, Rui Wen, Michael Backes, Shiqing Ma, and Yang Zhang. Dynamic
backdoor attacks against machine learning models. ArXiv, abs/2003.03675, 2020.

[13] Yann LeCun and Corinna Cortes. MNIST handwritten digit database. 2010.

[14] Johannes Stallkamp, Marc Schlipsing, Jan Salmen, and Christian Igel. Man vs.
computer: Benchmarking machine learning algorithms for traffic sign recognition.
Neural networks, 32:323–332, 2012.

[15] B. Wang, Y. Yao, S. Shan, H. Li, B. Viswanath, H. Zheng, and B. Y. Zhao. Neural
cleanse: Identifying and mitigating backdoor attacks in neural networks. In 2019
IEEE Symposium on Security and Privacy (SP), pages 707–723, 2019.

[16] Yansong Gao, Chang Xu, Derui Wang, Shiping Chen, Damith Chinthana Ranas-
inghe, and Surya Nepal. STRIP: A defence against trojan attacks on deep neural
networks. CoRR, abs/1902.06531, 2019.

[17] Bao Gia Doan, Ehsan Abbasnejad, and Damith C. Ranasinghe. Februus: Input
Purification Defense Against Trojan Attacks on Deep Neural Network Systems.
arXiv, Aug 2019.

[18] Tuan Anh Nguyen and Anh Tran. Input-aware dynamic backdoor attack. In
H. Larochelle, M. Ranzato, R. Hadsell, M. F. Balcan, and H. Lin, editors, Advances
in Neural Information Processing Systems, volume 33, pages 3454–3464. Curran
Associates, Inc., 2020.

[19] Yu Ji, Zixin Liu, Xing Hu, Peiqi Wang, and Youhui Zhang. Programmable neural
network trojan for pre-trained feature extractor, 2019.

[20] Thomas Bayes. An essay towards solving a problem in the doctrine of chances.
1763. 8(3):157–171, 1763.

[21] Adrien Marie Legendre. Nouvelles méthodes pour la détermination des orbites des
comètes: avec un supplément contenant divers perfectionnemens de ces méthodes
et leur application aux deux comètes de 1805. Courcier, 1806.

[22] Seppo Linnainmaa. The representation of the cumulative rounding error of an


algorithm as a taylor expansion of the local rounding errors. Master’s Thesis (in
Finnish), Univ. Helsinki, pages 6–7, 1970.

[23] David E Rumelhart, Geoffrey E Hinton, and Ronald J Williams. Learning repre-
sentations by back-propagating errors. nature, 323(6088):533–536, 1986.

45
[24] Tin Kam Ho. Random decision forests. In Proceedings of 3rd international con-
ference on document analysis and recognition, volume 1, pages 278–282. IEEE,
1995.

[25] Corinna Cortes and Vladimir Vapnik. Support vector machine. Machine learning,
20(3):273–297, 1995.

[26] Joon Ki Paik and Aggelos K Katsaggelos. Image restoration using a modified
hopfield network. IEEE Transactions on image processing, 1(1):49–63, 1992.

[27] Sepp Hochreiter and Jürgen Schmidhuber. Long short-term memory. Neural
computation, 9(8):1735–1780, 1997.

[28] Warren S McCulloch and Walter Pitts. A logical calculus of the ideas immanent
in nervous activity. The bulletin of mathematical biophysics, 5(4):115–133, 1943.

[29] Frank Rosenblatt. Principles of neurodynamics. perceptrons and the theory of


brain mechanisms. Technical report, Cornell Aeronautical Lab Inc Buffalo NY,
1961.

[30] Rina Dechter. Learning while searching in constraint-satisfaction problems. 1986.

[31] Yann LeCun, Bernhard Boser, John S Denker, Donnie Henderson, Richard E
Howard, Wayne Hubbard, and Lawrence D Jackel. Backpropagation applied to
handwritten zip code recognition. Neural computation, 1(4):541–551, 1989.

[32] G Lowe. Sift-the scale invariant feature transform. Int. J, 2(91-110):2, 2004.

[33] Yoav Freund, Robert Schapire, and Naoki Abe. A short introduction to boosting.
Journal-Japanese Society For Artificial Intelligence, 14(771-780):1612, 1999.

[34] Ian Goodfellow, Yoshua Bengio, and Aaron Courville. Deep Learning. MIT Press,
2016. http://www.deeplearningbook.org.

[35] Alex Krizhevsky, Ilya Sutskever, and Geoffrey E Hinton. Imagenet classification
with deep convolutional neural networks. In F. Pereira, C. J. C. Burges, L. Bot-
tou, and K. Q. Weinberger, editors, Advances in Neural Information Processing
Systems 25, pages 1097–1105. Curran Associates, Inc., 2012.

[36] H. Purwins, B. Li, T. Virtanen, J. Schlüter, S. Chang, and T. Sainath. Deep


learning for audio signal processing. IEEE Journal of Selected Topics in Signal
Processing, 13(2):206–219, 2019.

[37] Karen Simonyan and Andrew Zisserman. Very deep convolutional networks for
large-scale image recognition. In International Conference on Learning Represen-
tations, 2015.

46
[38] Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jonathon Shlens, and Zbig-
niew Wojna. Rethinking the inception architecture for computer vision. In Pro-
ceedings of IEEE Conference on Computer Vision and Pattern Recognition,, 2016.

[39] Yingqi Liu, Shiqing Ma, Yousra Aafer, Wen-Chuan Lee, Juan Zhai, Weihang
Wang, and Xiangyu Zhang. Trojaning attack on neural networks. In NDSS,
2018.

[40] Yuanshun Yao, Huiying Li, Haitao Zheng, and Ben Y. Zhao. Latent backdoor
attacks on deep neural networks. In Proceedings of the 2019 ACM SIGSAC Con-
ference on Computer and Communications Security, CCS ’19, page 2041–2055,
New York, NY, USA, 2019. Association for Computing Machinery.

[41] Yingqi Liu, Wen-Chuan Lee, Guanhong Tao, Shiqing Ma, Yousra Aafer, and Xi-
angyu Zhang. Abs: Scanning neural networks for back-doors by artificial brain
stimulation. In Proceedings of the 2019 ACM SIGSAC Conference on Computer
and Communications Security, CCS ’19, page 1265–1282, New York, NY, USA,
2019. Association for Computing Machinery.

[42] Ximing Qiao, Yukun Yang, and Hongbing Li. Defending neural backdoors via
generative distribution modeling. In NeurIPS, 2019.

[43] Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley,
Sherjil Ozair, Aaron Courville, and Yoshua Bengio. Generative adversarial nets.
In Z. Ghahramani, M. Welling, C. Cortes, N. D. Lawrence, and K. Q. Weinberger,
editors, Advances in Neural Information Processing Systems 27, pages 2672–2680.
Curran Associates, Inc., 2014.

[44] Christophe Leys, Christophe Ley, Olivier Klein, Philippe Bernard, and Laurent
Licata. Detecting outliers: Do not use standard deviation around the mean, use
absolute deviation around the median. Journal of Experimental Social Psychology,
49:764–766, 07 2013.

[45] Ramprasaath R. Selvaraju, Michael Cogswell, Abhishek Das, Ramakrishna Vedan-


tam, Devi Parikh, and Dhruv Batra. Grad-cam: Visual explanations from deep
networks via gradient-based localization. In The IEEE International Conference
on Computer Vision (ICCV), Oct 2017.

[46] Alex Krizhevsky, Geoffrey Hinton, et al. Learning multiple layers of features from
tiny images. 2009.

[47] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Identity mappings in
deep residual networks. In European conference on computer vision, pages 630–
645. Springer, 2016.

47
[48] Weilin Xu, David Evans, and Yanjun Qi. Feature squeezing: Detecting adversarial
examples in deep neural networks. arXiv preprint arXiv:1704.01155, 2017.

[49] Herbert Robbins and Sutton Monro. A stochastic approximation method. The
annals of mathematical statistics, pages 400–407, 1951.

[50] Diederik P Kingma and Jimmy Ba. Adam: A method for stochastic optimization.
In International Conference on Learning Representations, 2015.

48

You might also like