- vừa được xem lúc

[B5'] Smooth Adversarial Training

0 0 32

Người đăng: 生きたい

Theo Viblo Asia

Đây là một bài trong series Báo khoa học trong vòng 5 phút.

Nguồn

Được viết bởi Xie et. al, John Hopkins University, trong khi đang intern tại Google. Hiện vẫn là preprint do bị reject tại ICLR 2021.

https://arxiv.org/abs/2006.14536

top 1 method trong 1 task Adversarial Defense trên Papers With Code.

Các bạn có thể đọc qua trước bài này của mình về tấn công và phòng thủ trong học máy để có các khái niệm cơ bản trong mảng này.

Ý tưởng chính

TL;DR:

Sử dụng các hàm kích hoạt mượt (liên tục cả hàm và cả ở đạo hàm bậc nhất) sẽ làm giảm khả năng bị tấn công do chất lượng đạo hàm tốt lên.

  • Vấn đề của adversarial vulnerabilities nằm ở gradient chất lượng thấp — bị gãy tại 0 với ReLU. Vì vậy, tác giả đề xuất sử dụng các hàm kích hoạt mượt thay thế cho ReLU như Parametric Softplus, ELU, GELU, v.v.
    • (Parametric) Softplus: f(x)=1αlog(1+exp(αx))f(x)=\frac{1}{\alpha}\log(1+\exp(\alpha x)), trong đó bản không parametric có α=1\alpha=1, và thí nghiệm sử dụng α=10\alpha=10.
    • Swish: f(x)=xσ(x)f(x)=x\cdot\sigma(x), trong đó σ(x)=11+ex\sigma(x)=\frac{1}{1+e^{-x}} là hàm sigmoid.
    • Gaussian Error Linear Unit (GELU): f(x)=xΦ(x)f(x)=x\cdot\Phi(x), trong đó Φ\Phi là hàm cumulative distribution function (CDF) của phân phối chuẩn tắc (N(0,1)\mathcal{N}(0,1))
    • Exponential Linear Unit (ELU): f(x)=x if x0 else α(exp(x)1)f(x)=x \text{ if }x\ge 0\text{ else }\alpha(\exp(x)-1).

  • Trong thí nghiệm, tác giả sử dụng PGD-AT trong với các hàm kích hoạt kể trên, và cho thấy khi sử dụng SmoothReLU và GELU cao hơn ~10% so với khi sử dụng ReLU và ELU (bị gãy khi α=1\alpha=1).

Cuối cùng, tác giả chọn sử dụng Swish do cho kết quả cao nhất.

Thí nghiệm chứng minh tác dụng của hàm kích hoạt mượt:

  • Trong quá trình PGD-AT, mô hình được huấn luyện với adversarial example thay vì data thật. Tác giả sử dụng PGD-1 (chạy 1 iteration, tương tự với FGSM) trong quá trình training.
  • Tác giả thí nghiệm với việc sử dụng hàm kích hoạt mượt chỉ trong bước backprop, nhưng khi forward pass vẫn sử dụng ReLU. Phương pháp đó được thử với bước sinh dữ liệu adversarial để training (gọi là inner maximization step), và bước huấn luyện mô hình trên dữ liệu đó (outer minimization step), và xem kết quả. Cụ thể, kết quả trở nên tốt hơn khi sử dụng các hàm kích hoạt mượt trong cả 2 bước:

Tuy nhiên, thiết kế mô hình cuối cùng của tác giả sử dụng hàm kích hoạt mượt trong toàn bộ quá trình thay vì chỉ sử dụng trong bước backprop.

Các thí nghiệm khác:

  • Tác giả thử các phương pháp khác để giảm vấn đề adversarial vulnerability:
    • Bước tạo PGD training example kỹ hơn bằng cách sử dụng PGD-2: có tăng adversarial robustness
    • Training lâu hơn: adversarial robustness bị giảm (như paper Robust Overfitting có nói, paper này không cite paper kia)
  • Tác giả sử dụng CELU, phiên bản mượt của ELU, thay thế cho ELU trong quá trình training, do ELU bị gãy khi α=1\alpha=1 (nhưng CELU thì không). Kết quả cho thấy ELU chỉ hoạt động tốt khi α1\alpha\ne 1, còn CELU hoạt động tốt với mọi giá trị của α\alpha.
  • Tác giả thử thay đổi cấu trúc ResNet để xem ảnh hưởng:
    • Tăng độ phức tạp: tăng adversarial robustness
    • Tăng kích cỡ ảnh đầu vào: tăng adversarial robustness
    • Tăng cả 2 cái trên: đương nhiên là tăng adversarial robustness
  • Tác giả sử dụng quá trình training với cả ResNet và EfficientNet, và kết quả tốt lên như dự đoán với cả 2 mô hình.

Nhận xét

  • Đơn giản, dễ chơi, dễ trúng thưởng.
  • Kết quả tốt (duh)
  • Thí nghiệm sử dụng PGD yếu (chỉ sử dụng PGD-1)
  • Hiện tượng robust overfitting đã được phát hiện từ trước tầm 4 tháng, nên có thể literature survey bị hụt.

Hết.

Hãy like và subscribe vì nó miễn phí?

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tấn công và phòng thủ bậc nhất cực mạnh cho các mô hình học máy

tấn công bậc nhất cực mạnh = universal first-order adversary. Update: Bleeding edge của CleverHans đã lên từ 3.1.0 đến 4.

0 0 28

- vừa được xem lúc

[Deep Learning] Key Information Extraction from document using Graph Convolution Network - Bài toán trích rút thông tin từ hóa đơn với Graph Convolution Network

Các nội dung sẽ được đề cập trong bài blog lần này. . Tổng quan về GNN, GCN. Bài toán Key Information Extraction, trích rút thông tin trong văn bản từ ảnh.

0 0 204

- vừa được xem lúc

Trích xuất thông tin bảng biểu cực đơn giản với OpenCV

Trong thời điểm nhà nước đang thúc đẩy mạnh mẽ quá trình chuyển đổi số như hiện nay, Document Understanding nói chung cũng như Table Extraction nói riêng đang trở thành một trong những lĩnh vực được quan tâm phát triển và chú trọng hàng đầu. Vậy Table Extraction là gì? Document Understanding là cái

0 0 214

- vừa được xem lúc

Con đường AI của tôi

Gần đây, khá nhiều bạn nhắn tin hỏi mình những câu hỏi đại loại như: có nên học AI, bắt đầu học AI như nào, làm sao tự học cho đúng, cho nhanh, học không bị nản, lộ trình học AI như nào... Sau nhiều lần trả lời, mình nghĩ rằng nên viết hẳn một bài để trả lời chi tiết hơn, cũng như để các bạn sau này

0 0 137

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 124

- vừa được xem lúc

Break Capcha bằng Deep learning

1. Giới thiệu bài toán.

0 0 33