Adversarial Attacks
Các cuộc tấn công đối kháng tạo ra những thay đổi nhỏ, thường không thể nhận thấy, trên đầu vào khiến model AI dự đoán sai với độ tin cậy cao. Cách FGSM hoạt động, các loại tấn công và biện pháp phòng vệ.
Tấn công đối kháng là hành vi cố ý thao túng đầu vào của model học máy (ML) để model tạo ra đầu ra sai, thường với độ tin cậy cao. Trong thị giác máy tính, đầu vào bị thao túng, gọi là mẫu đối kháng, có thể chỉ khác ảnh gốc ở những chi tiết nhỏ đến mức con người không nhận ra; tuy nhiên, một bộ phân loại từng nhận diện gấu trúc lại báo kết quả là vượn cáo. Các nhà nghiên cứu mô tả hiện tượng này trong mạng nơ-ron sâu ở bài báo năm 2013 "Những đặc tính đáng chú ý của mạng nơ-ron"; điểm yếu tương tự cũng xuất hiện trong nhận dạng giọng nói, phát hiện mã độc và mô hình ngôn ngữ lớn (LLM). Tấn công đối kháng đặc biệt quan trọng ở những nơi quyết định của model kích hoạt một hành động, chẳng hạn như phanh xe, mở khóa cửa hoặc phê duyệt giao dịch.
Cách hoạt động của mẫu đối kháng#
Hàm mất mát của một model đã huấn luyện đo mức độ dự đoán sai trên đầu vào. Thông thường, lan truyền ngược tính gradient của hàm mất mát theo các trọng số; kẻ tấn công tính gradient theo các pixel đầu vào rồi thay đổi pixel theo hướng làm tăng hàm mất mát. Trong bài báo năm 2014 "Giải thích và khai thác mẫu đối kháng", Ian Goodfellow và cộng sự cho rằng nguyên nhân là hành vi gần tuyến tính của mạng nơ-ron trong không gian nhiều chiều: thay đổi một phần nhỏ mức xám trên mỗi pixel, khi cộng dồn qua hàng trăm nghìn pixel, sẽ tạo ra thay đổi lớn ở đầu ra. Phương pháp Fast Gradient Sign (FGSM) của họ thực hiện một bước có kích thước cố định theo dấu của gradient đầu vào; một bước 0.007 đã biến dự đoán "gấu trúc" với độ tin cậy 57,7% thành dự đoán "vượn cáo" với độ tin cậy 99,3%. Projected Gradient Descent (PGD) lặp lại các bước nhỏ hơn trong khi giới hạn tổng thay đổi trong một ngân sách định trước, tạo thành một cuộc tấn công mạnh hơn.
Tấn công FGSM lên bộ phân loại ResNet-18 của TorchVision chỉ cần một lượt lan truyền ngược:
import torch
import torch.nn.functional as F
from torchvision.io import decode_image
from torchvision.models import ResNet18_Weights, resnet18
from torchvision.transforms import v2
weights = ResNet18_Weights.DEFAULT
model = resnet18(weights=weights).eval()
torch.hub.download_url_to_file("https://ultralytics.com/images/bus.jpg", "bus.jpg")
# Keep pixels in [0, 1] and normalize inside each forward pass, so the attack edits real pixel values
image = v2.Compose([v2.Resize(256), v2.CenterCrop(224), v2.ToDtype(torch.float32, scale=True)])(decode_image("bus.jpg"))
normalize = v2.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
x = image.unsqueeze(0).requires_grad_(True)
logits = model(normalize(x))
# FGSM: move every pixel by one intensity level (1/255) in the direction that increases the loss
F.cross_entropy(logits, logits.argmax(1)).backward()
x_adv = (x + x.grad.sign() / 255).clamp(0, 1)
for name, batch in [("clean", x), ("adversarial", x_adv)]:
probs = model(normalize(batch)).softmax(1)
print(f"{name}: {weights.meta['categories'][probs.argmax()]} ({probs.max():.2f})")Ảnh nguyên bản được phân loại là minibus (0.83), còn ảnh bị tấn công được phân loại là police van (0.94): thay đổi mỗi pixel tối đa một trong 255 mức cường độ khiến model tin vào một nhãn mới sai nhiều hơn mức model tin vào nhãn ban đầu.
Các loại tấn công#
Các cuộc tấn công được phân loại theo thời điểm kẻ tấn công hành động, thông tin họ biết về model và mục tiêu của họ. Tấn công không định hướng tìm cách tạo ra bất kỳ đầu ra sai nào; tấn công có định hướng ép model đưa ra một kết quả cụ thể, chẳng hạn khiến biển báo dừng bị đọc thành biển giới hạn tốc độ. Tấn công số sửa trực tiếp dữ liệu đầu vào, còn tấn công vật lý thay đổi vật thể thực bằng nhãn dán, miếng dán hoặc hoa văn in có thể chống chịu thay đổi về góc nhìn, khoảng cách và ánh sáng. Hệ thống phân loại học máy đối kháng của NIST nhóm các cuộc tấn công theo giai đoạn vòng đời ML mà chúng nhắm đến:
Các cuộc tấn công chuyển giao hiệu quả vì ví dụ đối kháng được tạo nhằm vào một model thường đánh lừa được các model khác được huấn luyện cho cùng tác vụ; do đó, kẻ tấn công có thể huấn luyện một model thay thế, tấn công model đó ở chế độ hộp trắng rồi dùng kết quả để tấn công một hệ thống mà họ không thể kiểm tra.
Rủi ro trong thế giới thực#
- Xe tự hành: Trong bài "Các cuộc tấn công vật lý ngoài đời thực mạnh mẽ nhằm vào model học sâu", các miếng dán đen trắng trên biển báo dừng ngoài đời thực đã gây phân loại sai có chủ đích ở 100% ảnh trong phòng thí nghiệm và 84.8% khung hình video ghi lại từ một chiếc xe đang di chuyển.
- Phát hiện người: Một miếng vá in có kích thước khoảng 40 cm vuông, được giữ trước cơ thể, đã làm giảm đáng kể độ chính xác của bộ phát hiện người YOLOv2 mà nó được tối ưu hóa để đánh lừa. Những miếng vá như vậy đe dọa các hệ thống báo động kích hoạt khi phát hiện người, chẳng hạn như hệ thống báo động an ninh Ultralytics, gửi email cảnh báo khi YOLO26 phát hiện một số lượng đối tượng nhất định trong khung hình; miếng vá làm triệt tiêu khả năng phát hiện người cũng sẽ ngăn cảnh báo được gửi đi.
- Nhận diện khuôn mặt: Các nhà nghiên cứu đã in gọng kính có họa tiết đối kháng, giúp người đeo tránh bị hệ thống nhận diện khuôn mặt phát hiện hoặc bị nhận dạng thành một người cụ thể khác.
- Model ngôn ngữ: Hậu tố đối kháng được tối ưu hóa tự động — các chuỗi token được nối vào yêu cầu — khiến chatbot được căn chỉnh tuân theo các yêu cầu độc hại; các hậu tố được tối ưu hóa trên model mở cũng chuyển giao hiệu quả sang model thương mại. Các cuộc tấn công viết thủ công nhằm vào LLM thường được gọi là bẻ khóa và chèn prompt.
Tấn công đối kháng và các thuật ngữ liên quan#
- Đầu độc dữ liệu: Làm hỏng dữ liệu huấn luyện để model đã huấn luyện hoạt động sai, thường chỉ với các đầu vào chứa một trigger ẩn. Theo nghĩa hẹp, ví dụ đối kháng không tác động đến model mà thao túng đầu vào trong quá trình suy luận.
- Tấn công suy luận thành viên: Nhằm trích xuất thông tin — cụ thể là xác định một bản ghi có nằm trong tập huấn luyện hay không — thay vì khiến model tạo ra kết quả sai.
- Mạng đối sinh (GAN): Dùng từ “đối kháng” để chỉ hai mạng được huấn luyện đối đầu với nhau; đây là một phương pháp huấn luyện không có kẻ tấn công.
- Đội đỏ AI: Hoạt động tấn công hệ thống của chính mình trước khi phát hành, trong đó có sử dụng các cuộc tấn công đối kháng cùng nhiều kỹ thuật khác.
Biện pháp phòng vệ#
Huấn luyện đối kháng, được chính thức hóa bằng PGD trong bài "Hướng tới các model học sâu có khả năng chống chịu tấn công đối kháng", tạo các cuộc tấn công trong quá trình huấn luyện và điều chỉnh model để phân loại chúng chính xác; đây vẫn là biện pháp phòng vệ thực nghiệm đáng tin cậy nhất, nhưng tiêu tốn lượng tính toán gấp vài lần huấn luyện thông thường và làm giảm độ chính xác trên các đầu vào sạch. Các biện pháp phòng vệ có chứng nhận như làm trơn ngẫu nhiên chứng minh rằng không nhiễu loạn nào trong một bán kính nhất định có thể làm thay đổi dự đoán, dù chỉ áp dụng được với bán kính nhỏ. Các biện pháp tiền xử lý đầu vào hoặc che giấu gradient có thành tích kém: bài "Gradient bị làm rối tạo cảm giác an toàn giả" đã xem xét chín biện pháp phòng vệ được công bố tại ICLR 2018, phát hiện bảy biện pháp dựa vào gradient bị làm rối, đồng thời hoàn toàn vượt qua sáu biện pháp và vượt qua một phần biện pháp thứ bảy.










