Making Convolutional Networks Shift-Invariant Again Richard Zhang - - PowerPoint PPT Presentation
Making Convolutional Networks Shift-Invariant Again Richard Zhang - - PowerPoint PPT Presentation
Making Convolutional Networks Shift-Invariant Again Richard Zhang Adobe Research Example classifications P(correct class) P(correct class) not Shift-Invariant Deep Networks are not P(correct class) P(correct class) not Shift-Invariant Deep
Example classifications
P(correct class) P(correct class)
Deep Networks are not not Shift-Invariant
P(correct class) P(correct class)
Deep Networks are not not Shift-Invariant
Azulay and Weiss. Why y do deep convo volutional networks ks generalize ze so so poorly y to sm small image transf sformations? s? In ArXiv, 2018. Engstrom, Tsipras, Schmidt, Madry. Exp xploring the Landsc scape of Spatial Robust stness.
- ss. In ICML, 2019.
P(correct class) P(correct class)
Why is shift-invariance lost?
5
Why is shift-invariance lost?
“Convo volutions are sh shift-equiva variant”
6
Why is shift-invariance lost?
“Convo volutions are sh shift-equiva variant” “Po Poolin ling builds up sh shift-inva variance”
7
Why is shift-invariance lost?
“Convo volutions are sh shift-equiva variant” “Po Poolin ling builds up sh shift-inva variance” …but st striding ignores Nyquist sampling theorem and aliase ses
8
9
Re-examining Max-Pooling
10
Re-examining Max-Pooling
max
11
Re-examining Max-Pooling
max
12
Re-examining Max-Pooling
max
13
Re-examining Max-Pooling
max
14
Re-examining Max-Pooling
max
15
Re-examining Max-Pooling
max
16
Re-examining Max-Pooling
max
17
Re-examining Max-Pooling
max
18
Re-examining Max-Pooling
19
Re-examining Max-Pooling
max
20
Re-examining Max-Pooling
max
21
Re-examining Max-Pooling
max
22
Re-examining Max-Pooling
max
23
Re-examining Max-Pooling
max
24
Re-examining Max-Pooling
max
25
Re-examining Max-Pooling
26
Re-examining Max-Pooling
27
Re-examining Max-Pooling
28
Re-examining Max-Pooling
Max-pooling breaks ks shift-equivariance
Shift-equivariance in VGG
- CIFAR
- VGG network
- 5 max-pools
- Test shift-equivariance condition
- pixels
conv1 pool1 conv2 pool2 conv3 pool3 conv4 pool4 conv5 pool5 classifier softmax 32x32 1x1
Shift-equivariance in VGG
- CIFAR
- VGG network
- 5 max-pools
- Test shift-equivariance condition
- pixels
conv1 pool1 conv2 pool2 conv3 pool3 conv4 pool4 conv5 pool5 classifier softmax 32x32 1x1
Perfect shift-eq. Large deviation from shift-eq.
31
pixels
conv1 v1
pool1 conv2 pool2 conv3 pool3 conv4 pool4 conv5 pool5 classifier softmax
Shift-equivariance, per layer
Perfect shift-eq. Large deviation from shift-eq.
32
pixels
conv1 v1
pool1 conv2 pool2 conv3 pool3 conv4 pool4 conv5 pool5 classifier softmax
Shift-equivariance, per layer
Convolution is shift-equivariant
Perfect shift-eq. Large deviation from shift-eq.
33
pixels conv1
po pool1
conv2 pool2 conv3 pool3 conv4 pool4 conv5 pool5 classifier softmax
Shift-equivariance, per layer
Perfect shift-eq. Large deviation from shift-eq.
34
pixels conv1
po pool1
conv2 pool2 conv3 pool3 conv4 pool4 conv5 pool5 classifier softmax
Shift-equivariance, per layer
Pooling breaks shift-equivariance
pixels conv1 pool1 conv2
po pool2
conv3 pool3 conv4 pool4 conv5 pool5 classifier softmax
Shift-equivariance, per layer
Perfect shift-eq. Large deviation from shift-eq.
pixels conv1 pool1 conv2 pool2 conv3
po pool3
conv4 pool4 conv5 pool5 classifier softmax
Shift-equivariance, per layer
Perfect shift-eq. Large deviation from shift-eq.
Perfect shift-eq. Large deviation from shift-eq.
pixels conv1 pool1 conv2 pool2 conv3 pool3 conv4
po pool4
conv5 pool5 classifier softmax
Shift-equivariance, per layer
Perfect shift-eq. Large deviation from shift-eq.
pixels conv1 pool1 conv2 pool2 conv3 pool3 conv4
po pool4
conv5 pool5 classifier softmax
Shift-equivariance, per layer
Nyquist theorem ignored when pooling; aliasi sing breaks shift-equivariance
Alternative downsampling methods
- Blur+subsample
- Antialiasi
sing in signal processing; image processing; graphics
- Max-pooling
- Performs better in deep learning applications [Scherer 2010]
39
Alternative downsampling methods
- Blur+subsample
- Antialiasi
sing in signal processing; image processing; graphics
- Max-pooling
- Performs better in deep learning applications [Scherer 2010]
40
Alternative downsampling methods
- Blur+subsample
- Antialiasi
sing in signal processing; image processing; graphics
- Max-pooling
- Performs better in deep learning applications [Scherer 2010]
41
Reconcile antialiasing with max-pooling
heavy vy aliasi sing
max( x( )
Baseline
(MaxPool)
max( x( )
heavy vy aliasi sing
max( x( )
Baseline
(MaxPool)
max( x( )
heavy vy aliasi sing
max( x( )
Baseline
(MaxPool) (1) Max x (dense se eva valuation)
no aliasi sing
max( x( ) max( x( ) max( x( )
heavy vy aliasi sing
max( x( )
Baseline
(MaxPool) (1) Max x (dense se eva valuation)
no aliasi sing
max( x( )
(2) Subsa sampling
heavy vy aliasi sing
max( x( ) max( x( )
heavy vy aliasi sing
max( x( )
Baseline
(MaxPool) (1) Max x (dense se eva valuation)
no aliasi sing
max( x( )
(2) Subsa sampling
heavy vy aliasi sing
max( x( ) max( x( )
heavy vy aliasi sing
max( x( )
Baseline
(MaxPool) (1) Max x (dense se eva valuation)
no aliasi sing
max( x( )
(2) Subsa sampling
heavy vy aliasi sing
max( x( ) max( x( )
(1) Max x (dense se eva valuation)
no aliasi sing
max( x( ) max( x( )
Anti-aliased
(MaxBlurPool)
heavy vy aliasi sing
max( x( )
Baseline
(MaxPool) (1) Max x (dense se eva valuation)
no aliasi sing
max( x( )
(2) Subsa sampling
heavy vy aliasi sing
max( x( ) max( x( )
(1) Max x (dense se eva valuation) (2 (2) ) Anti Anti-aliasi sing filter filter
no aliasi sing no aliasi sing
max( x( ) max( x( ) Bl Blur
Anti-aliased
(MaxBlurPool)
heavy vy aliasi sing
max( x( )
Baseline
(MaxPool) (1) Max x (dense se eva valuation)
no aliasi sing
max( x( )
(2) Subsa sampling
heavy vy aliasi sing
max( x( ) max( x( )
(1) Max x (dense se eva valuation) (2 (2) ) Anti-aliasi sing filter
no aliasi sing no aliasi sing
max( x( )
(3) Subsa sampling
reduced aliasi sing
max( x( ) Bl Blur
Anti-aliased
(MaxBlurPool)
heavy vy aliasi sing
max( x( )
Baseline
(MaxPool) (1) Max x (dense se eva valuation)
no aliasi sing
max( x( )
(2) Subsa sampling
heavy vy aliasi sing
max( x( ) max( x( )
(1) Max x (dense se eva valuation) (2 (2) ) Anti-aliasi sing filter
no aliasi sing no aliasi sing
max( x( )
(3) Subsa sampling
reduced aliasi sing
Bl Blur
Anti-aliased
(MaxBlurPool)
max( x( )
Evaluated together as “BlurPool”
Antialiasing any downsampling layer
- Max Pool
- VGG, Alexnet
- Strided Convolution
- Resnet, MobileNetv2
- Average Pool
- DenseNet
51
Antialiasing any downsampling layer
- Max Pool
- VGG, Alexnet
- Strided Convolution
- Resnet, MobileNetv2
- Average Pool
- DenseNet
52
Antialiasing any downsampling layer
- Max Pool
- VGG, Alexnet
- Strided Convolution
- Resnet, MobileNetv2
- Average Pool
- DenseNet
53
ImageNet
Shift-invariance
ImageNet
Shift-invariance Accuracy
ImageNet
Shift-invariance Accuracy
ImageNet
Shift-invariance Accuracy
Baseline
ImageNet
Shift-invariance Accuracy
Baseline Antialiased
ImageNet
Shift-invariance Accuracy
Baseline Antialiased
ImageNet
Shift-invariance Accuracy
Baseline Antialiased
Antialiasing also improves accur accuracy acy
Discussion
Striding aliases(stride=2) Add antialiasing filter
+ Improved shift-equivariance + Improved accuracy
Additionally
+ Improved stability to other perturbations + Improved robustness
61
Striding aliases(stride=2) Add antialiasing filter
+ Improved shift-equivariance + Improved accuracy
Additionally
+ Improved stability to other perturbations + Improved robustness
62
Discussion
Striding aliases(stride=2) Add antialiasing filter
+ Improved shift-equivariance + Improved accuracy
Additionally
+ Improved stability to other perturbations + Improved robustness
63
Discussion
Striding aliases(stride=2) Add antialiasing filter
+ Improved shift-equivariance + Improved accuracy
Additionally
+ Improved stability to other perturbations + Improved robustness
64
Discussion
Striding aliases(stride=2) Add antialiasing filter
+ Improved shift-equivariance + Improved accuracy
Additionally
+ Improved stability to other perturbations + Improved robustness
65
Discussion
Striding aliases(stride=2) Add antialiasing filter
+ Improved shift-equivariance + Improved accuracy
Additionally
+ Improved stability to other perturbations + Improved robustness
66
Discussion
Striding aliases(stride=2) Add antialiasing filter
+ Improved shift-equivariance + Improved accuracy
Additionally
+ Improved stability to other perturbations + Improved robustness
67
Discussion
Antialiasing code, pretrained models
https://richzhang.github.io/antialiased-cnns/
Striding aliases(stride=2) Add antialiasing filter
+ Improved shift-equivariance + Improved accuracy
Additionally
+ Improved stability to other perturbations + Improved robustness
68