AMMI Introduction to Deep Learning 8.4. Optimizing inputs Fran - - PowerPoint PPT Presentation

ammi introduction to deep learning 8 4 optimizing inputs
SMART_READER_LITE
LIVE PREVIEW

AMMI Introduction to Deep Learning 8.4. Optimizing inputs Fran - - PowerPoint PPT Presentation

AMMI Introduction to Deep Learning 8.4. Optimizing inputs Fran cois Fleuret https://fleuret.org/ammi-2018/ Thu Sep 6 16:00:44 CAT 2018 COLE POLYTECHNIQUE FDRALE DE LAUSANNE Maximum response samples Fran cois Fleuret AMMI


slide-1
SLIDE 1

AMMI – Introduction to Deep Learning 8.4. Optimizing inputs

Fran¸ cois Fleuret https://fleuret.org/ammi-2018/ Thu Sep 6 16:00:44 CAT 2018

ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE

slide-2
SLIDE 2

Maximum response samples

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 1 / 25

slide-3
SLIDE 3

Another approach to get an intuition of the information actually encoded in the weights of a convnet consists of optimizing from scratch a sample to maximize the activation f of a chosen unit, or the sum over an activation map.

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 2 / 25

slide-4
SLIDE 4

Doing so generates images with high frequencies, which tend to activate units a

  • lot. For instance these images maximize the responses of the units “bathtub”

and “lipstick” respectively (yes, this is strange, we will come back to it).

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 3 / 25

slide-5
SLIDE 5

Since f is trained in a discriminative manner, there is no reason that a sample maximizing its response would be “realistic”.

Class 0 Class 1

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 4 / 25

slide-6
SLIDE 6

Since f is trained in a discriminative manner, there is no reason that a sample maximizing its response would be “realistic”.

Class 0 Class 1 f

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 4 / 25

slide-7
SLIDE 7

Since f is trained in a discriminative manner, there is no reason that a sample maximizing its response would be “realistic”.

Class 0 Class 1 f

ˆ x

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 4 / 25

slide-8
SLIDE 8

Since f is trained in a discriminative manner, there is no reason that a sample maximizing its response would be “realistic”.

Class 0 Class 1 p −h

We can mitigate this by adding a penalty h corresponding to a “realistic” prior and compute in the end argmax

x

f (x; w) − h(x)

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 4 / 25

slide-9
SLIDE 9

Since f is trained in a discriminative manner, there is no reason that a sample maximizing its response would be “realistic”.

Class 0 Class 1 f − h

We can mitigate this by adding a penalty h corresponding to a “realistic” prior and compute in the end argmax

x

f (x; w) − h(x)

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 4 / 25

slide-10
SLIDE 10

Since f is trained in a discriminative manner, there is no reason that a sample maximizing its response would be “realistic”.

Class 0 Class 1 f − h

ˆ x We can mitigate this by adding a penalty h corresponding to a “realistic” prior and compute in the end argmax

x

f (x; w) − h(x)

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 4 / 25

slide-11
SLIDE 11

Since f is trained in a discriminative manner, there is no reason that a sample maximizing its response would be “realistic”.

Class 0 Class 1 f − h

ˆ x We can mitigate this by adding a penalty h corresponding to a “realistic” prior and compute in the end argmax

x

f (x; w) − h(x) by iterating a standard gradient update: xk+1 = xk − η∇|x(h(xk) − f (xk; w)).

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 4 / 25

slide-12
SLIDE 12

A reasonable h penalizes too much energy in the high frequencies by integrating edge amplitude at multiple scales.

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 5 / 25

slide-13
SLIDE 13

This can be formalized as a penalty function h of the form h(x) =

  • s≥0

δs(x) − g ⊛ δs(x)2 where g is a Gaussian kernel, and δ is a downscale-by-two operator.

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 6 / 25

slide-14
SLIDE 14

h(x) =

  • s≥0

δs(x) − g ⊛ δs(x)2 We process channels as separate images, and sum across channels in the end.

class MultiScaleEdgeEnergy(nn.Module): def __init__(self): super(MultiScaleEdgeEnergy, self).__init__() k = torch.exp(- torch.tensor([[-2., -1., 0., 1., 2.]])**2 / 2) k = (k.t() @ k).view(1, 1, 5, 5) self.register_buffer(’gaussian_5x5’, k / k.sum()) def forward(self, x): u = x.view(-1, 1, x.size(2), x.size(3)) result = 0.0 while min(u.size(2), u.size(3)) > 5: blurry = F.conv2d(u, self.gaussian_5x5, padding = 2) result += (u - blurry).view(u.size(0), -1).pow(2).sum(1) u = F.avg_pool2d(u, kernel_size = 2, padding = 1) result = result.view(x.size(0), -1).sum(1) return result

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 7 / 25

slide-15
SLIDE 15

Then, the optimization of the image per se is straightforward:

model = models.vgg16(pretrained = True) model.eval() edge_energy = MultiScaleEdgeEnergy() input = torch.empty(1, 3, 224, 224).normal_(0, 0.01) input.requires_grad_()

  • ptimizer = optim.Adam([input], lr = 1e-1)

for k in range(250):

  • utput = model(input)

score = edge_energy(input) - output[0, 700] # paper towel

  • ptimizer.zero_grad()

score.backward()

  • ptimizer.step()

result = input.data result = 0.5 + 0.1 * (result - result.mean()) / result.std() torchvision.utils.save_image(result, ’result.png’)

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 8 / 25

slide-16
SLIDE 16

Then, the optimization of the image per se is straightforward:

model = models.vgg16(pretrained = True) model.eval() edge_energy = MultiScaleEdgeEnergy() input = torch.empty(1, 3, 224, 224).normal_(0, 0.01) input.requires_grad_()

  • ptimizer = optim.Adam([input], lr = 1e-1)

for k in range(250):

  • utput = model(input)

score = edge_energy(input) - output[0, 700] # paper towel

  • ptimizer.zero_grad()

score.backward()

  • ptimizer.step()

result = input.data result = 0.5 + 0.1 * (result - result.mean()) / result.std() torchvision.utils.save_image(result, ’result.png’)

(take a second to think about the beauty of autograd)

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 8 / 25

slide-17
SLIDE 17

VGG16, maximizing a channel of the 4th convolution layer

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 9 / 25

slide-18
SLIDE 18

VGG16, maximizing a channel of the 7th convolution layer

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 10 / 25

slide-19
SLIDE 19

VGG16, maximizing a unit of the 10th convolution layer

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 11 / 25

slide-20
SLIDE 20

VGG16, maximizing a unit of the 13th (and last) convolution layer

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 12 / 25

slide-21
SLIDE 21

VGG16, maximizing a unit of the output layer

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 13 / 25

slide-22
SLIDE 22

VGG16, maximizing a unit of the output layer “King crab”

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 13 / 25

slide-23
SLIDE 23

VGG16, maximizing a unit of the output layer “King crab” “Samoyed” (that’s a fluffy dog)

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 13 / 25

slide-24
SLIDE 24

VGG16, maximizing a unit of the output layer

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 14 / 25

slide-25
SLIDE 25

VGG16, maximizing a unit of the output layer “Hourglass”

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 14 / 25

slide-26
SLIDE 26

VGG16, maximizing a unit of the output layer “Hourglass” “Paper towel”

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 14 / 25

slide-27
SLIDE 27

VGG16, maximizing a unit of the output layer

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 15 / 25

slide-28
SLIDE 28

VGG16, maximizing a unit of the output layer “Ping-pong ball”

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 15 / 25

slide-29
SLIDE 29

VGG16, maximizing a unit of the output layer “Ping-pong ball” “Steel arch bridge”

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 15 / 25

slide-30
SLIDE 30

VGG16, maximizing a unit of the output layer

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 16 / 25

slide-31
SLIDE 31

VGG16, maximizing a unit of the output layer “Sunglass”

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 16 / 25

slide-32
SLIDE 32

VGG16, maximizing a unit of the output layer “Sunglass” “Geyser”

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 16 / 25

slide-33
SLIDE 33

These results show that the parameters of a network trained for classification carry enough information to generate identifiable large-scale structures. Although the training is discriminative, the resulting model has strong generative capabilities. It also gives an intuition of the accuracy and shortcomings of the resulting global compositional model.

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 17 / 25

slide-34
SLIDE 34

Adversarial examples

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 18 / 25

slide-35
SLIDE 35

In spite of their good predictive capabilities, deep neural networks are quite sensitive to adversarial inputs, that is to inputs crafted to make them behave incorrectly (Szegedy et al., 2014).

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 19 / 25

slide-36
SLIDE 36

In spite of their good predictive capabilities, deep neural networks are quite sensitive to adversarial inputs, that is to inputs crafted to make them behave incorrectly (Szegedy et al., 2014). The simplest strategy to exhibit such behavior is to optimize the input to maximize the loss.

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 19 / 25

slide-37
SLIDE 37

Let x be an image, y its proper label, f (x; w) the network’s prediction, and ℒ the cross-entropy loss. We can construct an adversarial example by maximizing the loss. To do so, we iterate a “gradient ascent” step: xk+1 = xk + η∇|xℒ(f (xk; w), y). After a few iterations, this procedure will reach a sample ˇ x whose class is not y.

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 20 / 25

slide-38
SLIDE 38

Let x be an image, y its proper label, f (x; w) the network’s prediction, and ℒ the cross-entropy loss. We can construct an adversarial example by maximizing the loss. To do so, we iterate a “gradient ascent” step: xk+1 = xk + η∇|xℒ(f (xk; w), y). After a few iterations, this procedure will reach a sample ˇ x whose class is not y. The counter-intuitive result is that the resulting miss-classified images are indistinguishable from the original ones to a human eye.

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 20 / 25

slide-39
SLIDE 39

model = torchvision.models.alexnet(pretrained = True) target = model(input).max(1)[1].view(-1) cross_entropy = nn.CrossEntropyLoss()

  • ptimizer = optim.SGD([input], lr = 1e-1)

nb_steps = 15 for k in range(nb_steps):

  • utput = model(input)

loss = - cross_entropy(output, target)

  • ptimizer.zero_grad()

loss.backward()

  • ptimizer.step()

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 21 / 25

slide-40
SLIDE 40

Original Adversarial Differences (magnified)

x−ˇ x x

1.02% 0.27%

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 22 / 25

slide-41
SLIDE 41

Predicted classes

  • Nb. iterations

Image #1 Image #2 Weimaraner desktop computer 1 Weimaraner desktop computer 2 Labrador retriever desktop computer 3 Labrador retriever desktop computer 4 Labrador retriever desktop computer 5 brush kangaroo desktop computer 6 brush kangaroo desktop computer 7 sundial desktop computer 8 sundial desktop computer 9 sundial desktop computer 10 sundial desktop computer 11 sundial desktop computer 12 sundial desktop computer 13 sundial desktop computer 14 sundial desk

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 23 / 25

slide-42
SLIDE 42

Another counter-intuitive result is that if we sample 1, 000 images on the sphere centered on x of radius 2x − ˇ x, we do not observe any change of label. x ˇ x

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 24 / 25

slide-43
SLIDE 43

Adversarial images can be pushed one step further by optimizing images from scratch with genetic optimization to maximize the network’s response (Nguyen et al., 2015)

Fran¸ cois Fleuret AMMI – Introduction to Deep Learning / 8.4. Optimizing inputs 25 / 25

slide-44
SLIDE 44

The end

slide-45
SLIDE 45

References

  • A. M. Nguyen, J. Yosinski, and J. Clune. Deep neural networks are easily fooled: High

confidence predictions for unrecognizable images. In Conference on Computer Vision and Pattern Recognition (CVPR), 2015.

  • C. Szegedy, W. Zaremba, I. Sutskever, J. Bruna, D. Erhan, I. Goodfellow, and R. Fergus.

Intriguing properties of neural networks. In International Conference on Learning Representations (ICLR), 2014.