[B5'] Shake-Shake Regularization and Shake-Drop Regularization for Deep Residual Network

    Khi overfit xảy ra, một trong các biện pháp hiệu quả là tăng cường lượng data học (train data). Các phương pháp phổ biến hiện nay bao gồm Data augmentation, Adversarial traning thực hiện thêm dữ liệu với Input đầu vào hoặc 1 phương pháp gần đây là Label smoothing và MixCut thực hiện cả augmentation cho Label. Từ ý tưởng này, Xavier Gastaldi đã nghĩ ra kỹ thuật ứng dụng augmentation với các internal representation (hay có thể hiểu là feature space) với Shake-shake regularization áp dụng với họ kiến trúc nhà ResNet. Hãy cùng tìm hiểu nhé!

1. Shake-Shake Regularization

    Kiến trúc mạng ResNet nhánh thông thường

    xi+1=xi+F(xi,(Wi(1))+F(xi,Wi(2))x_{i+1} = x_i + \mathcal{F}(x_i, \mathcal(\mathcal{W_i^{(1)}}) + \mathcal{F}(x_i, \mathcal{W_i^{(2)}})

    trong đó xix_i là input, xi+1x_{i+1} là output
F\mathcal{F} là hàm Residual Aggregated Transformations
Wi(1)W_i^{(1)}Wi(2)W_i^{(2)} lần lượt là các weight với các khối residual tương ứng

    

    Shake-Shake regularization sẽ có thêm 1 tham số scaling coefficient α\alpha

    xi+1=xi+αiF(xi,(Wi(1))+(1α)F(xi,Wi(2))x_{i+1} = x_i + \alpha_i\mathcal{F}(x_i, \mathcal(W_i^{(1)}) + (1-\alpha)\mathcal{F}(x_i, W_i^{(2)})

    trong đó αi\alpha_i sẽ là biến ngẫu nhiêu theo uniform distribution (0, 1)

    Note: Với tập test, α\alpha = 0.5 sẽ cho kết quả như một lớp Dropout(0.5) thông thường

    Tham số α\alpha được thay đổi với các giá trị ngẫu nhiên theo distribution trước khi thực hiện lượt backward pass tiếp theo. Từ đó tạo kết quả ngẫu nhiên giữa các lần backward pass và forward pass trong quá trình traning, làm giảm khả năng học thuộc dữ liệu của model. Tác giả cũng đề cập có thể hiểu đây là 1 dạng của gradient augmentation.

2. Phân tích kết quả

    Khi training, tác giả có đề xuất 1 số mode để thử nghiệm
Shake: random tất cả coefficient (random α\alpha) trước khi forward pass
Even: scaling coefficient đặt bằng 0.5 trước forward pass
Keep: trong quá trình backward pass, scaling coefficient giữ nguyên với forward pass

    Mức độ áp dụng:
Cấp độ Batch: giá trị scaling coefficient trong mỗi batch giống nhau
Cấp độ Image: giá trị scaling coefficient khác nhau trong mỗi điểm dữ liệu (ảnh)

Kết quả trên tập CIFAR10

    

Kết quả trên tập CIFAR100

    

    Nhìn chung với mô hình shake với forward và shake với backward cho kết quả tốt nhất trên tập CIFAR10 với Error rate thấp hơn khá nhiều (chỉ 2.86). Có lẽ vì lý do này nên tác giả đặt tên là Shake-Shake (Forward - Backward)

So sánh với các SOTA khác

     Với Shake-Shake regularization, model có error rate thấp hơn khá nhiều so với các mô hình trước đó.

3. Shake-Drop Regularization

    Shake-Shake regularization tuy có kết quả rất tốt nhưng vẫn tồn tại 1 số điểm yếu

  • được thiết kế cho mạng ResNet cấu trúc 3 nhánh (ResNeXt)
  • nguyên nhân thực sự về độ hiệu quả chưa được làm rõ

    Yoshihiro Yamada và các đồng nghiệp đã áp dụng một phương pháp để nâng cấp khả năng ứng dụng của Shake-Shake
Cụ thể, nhóm nghiên cứu đã thêm RandomDrop (hay ResDrop) vào trong mạng. RandomDrop có thể hiểu là dạng đơn giản của Dropout, tuy nhiên RandomDrop thực hiện drop layer thay vì các node như Dropout

    Kiến trúc mạng Resnet:

    xi+1=G(x)=x+F(x)x_{i+1} = G(x) = x + \mathcal{F(x)}

    Random Drop:

    G(x)={x+blF(x) in train forwardx+blF(x) in train backwardx+E[bl]F(x) in test G(x) = \begin{cases} x + b_l \mathcal{F(x)} & \text{ in train forward}\\ x + b_l \mathcal{F(x)} &\text{ in train backward}\\ x + E[b_l] \mathcal{F(x)} &\text{ in test} \end{cases}

    trong đó bl{0,1}b_l \in \{0,1\} là biến ngẫu nhiên Bernoulli với xác suất P(bl=1)=E[bl]=plP(b_l = 1) = E[b_l] = p_l
pl=1lL(1pl)p_l = 1 - \frac{l}{L}(1 - p_l) được chọn với plp_l = 0.5

    Phương pháp tác giả đề xuất ShakeDrop:

    G(x)={x+(bl+αblα)F(x) in train forwardx+(bl+βblβ)F(x) in train backwardx+E[bl+αblα]F(x) in test G(x) = \begin{cases} x + (b_l + \alpha - b_l \alpha) \mathcal{F(x)} & \text{ in train forward}\\ x + (b_l +\beta - b_l\beta) \mathcal{F(x)} &\text{ in train backward}\\ x + E[b_l + \alpha - b_l \alpha] \mathcal{F(x)} &\text{ in test} \end{cases}

    

    

    Phương pháp regularization cho mạng ResNet. a) và b) là các phương pháp được sử dụng trước đây như Shake-Shake và RandomDrop
c) là phương pháp regularization đơn giản 1 nhánh với đạo hàm của d)
“Conv” thể hiện lớp convolution; E[x] là giá trị expected của x; với α,β\alpha, \beta, và blb_l là tham số coefficients ngẫu nhiên

4. Thí nghiệm

    

    

    Theo thí nghiệm, ShakeDrop phù hợp nhất với PyramidNet khi thu được error rate 3.08 trên tập CIFAR-10 và 14.96 trên tập CIFAR-100. ShakeDrop cũng cho kết quả tốt hơn khi cùng áp dụng với mô hình 3 nhánh ResNeXt.

5. Kết luận

    ShakeDrop là phương pháp stochastic regularization có thể được ứng dụng cho mạng ResNet nhằm hạn chế quá trình overfit. Qua các thí nghiệm, tác giả đã chứng minh được ShakeDrop có performance tốt hơn các phương pháp trước đó (Shake-Shake và RandomDrop). Các bạn có thể tham khảo paper gốc ShakeDrop để có thể xem thêm kết quả thí nghiệm của tác giả trên các mạng ResNeXt, Wide-ResNet, PyramidNet với các layer khác nhau trên các tập dữ liệu ImageNet, COCO mà mình chưa đề cập trong bài Viblo này.

    Cảm ơn các bạn đã đọc bài!

Reference

  1. Shake-Shake regularization
  2. ShakeDrop Regularization for Deep Residual Learning
  3. RandomDrop
  4. Review: Shake-Shake Regularization (Image Classification)
  5. Shake-Shake regularization with Interactive Code [ Manual Back Prop with TF ]

Nguồn: Viblo

Bình luận
Vui lòng đăng nhập để bình luận
Một số bài viết liên quan