Live data from Hacker News

Keras reimplementation of "One pixel attack for fooling deep neural networks"

github.com

31–40 of 84 posts

Re: Keras reimplementation of "One pixel attack for fooling deep neural networks"

#31
post #21

I wonder how well capsule networks could deal with this, considering they're more robust than traditional CNNs towards other sorts of adversarial attacks. My guess is that one-pixel changes are going to do very little to alter pose information (though they will still alter the confidence of the feature existing), and so caps nets should be more robust here as well. Does anyone know if my intuition is correct? Link to…

I suspect the same, that this kind of attack won't work on capnets. Note that "test on capnets" is on the list of not-yet-complete milestones.

... We should do this. I learn capnets, you get feather in cap?

Re: Keras reimplementation of "One pixel attack for fooling deep neural networks"

#32
post #16

Does anyone else wonder if their usage of the word "THICC"[1] in their meme, inadvertently comes off as sexist? [1] https://www.urbandictionary.com/define.php?term=Thicc Great work! risky intro picture.

THICC is a meme

Re: Keras reimplementation of "One pixel attack for fooling deep neural networks"

#34
post #3

Earlier quoted context omitted.

I mean, you don't even need a proof of that. The latter is impossible since the range of input/output values is untruncated by construction?

I'm very new to ML, so I understand about 50% of what @eximius and @goldenkey are saying, but definetly not 100%. can anyone explain it in a bit more detail? (im assuming "entropy" is the key concept i need to put on my learning queue.) “approximating a high dimensional function by clamping the entropy of the formula, rather than truncating the range of input/output values” “not poke through the entropically deprived…

The set of all mappings between an input set of N elements to some output set with M elements has M^N elements.

If you wanted to be able to represent in some way any arbitrary mapping for given sets of input and output, then you would need at least log_2(M^N) = N x log_2(M) bits.

In the case of an input set of 32x32 pixel images with 3 bytes per pixel (one for each channel) we have N = 2^8 x 2^8 x 2^8 x 2^5 x 2^5 = 2^34.

In the case of an artificial neural network we have at the last level an output. There will be at least one node with at least one bit of output, so M >= 2. In general, to have anything else but the trivial map that maps every input to the same output, we always have M >= 2.

So, we need at least 2^34 x log_2(2) = 2^34 bits to represent an arbitrary function between the input and the output. That is 2 gibibytes!

Since the models don't need 2 gibibytes, something is going on. The magic here is that we are able to encode subsets of possible mappings very efficiently by using the execution logic of a computer. The compressed representation of the mappings in the restricted subset are the learned weights (the code to evaluate the model is also needed, but that requires less bits than what we save). We are, in a way, compressing functions, not data. Hence the "clamping of entropy of the formula". [0]

The restricion of the set of possible functions will lead to new, interesting phenomena. Think of it as compression artifacts, however not on images or audio, but functions.

To make a model resistant to attacks by someone knowledgeable about these artifacts, I would add noise to the input such that the artifacts are not predictable, hence not practically attackable.

[0] The same basic phenomenon happens with block ciphers in cryptography. A block cipher on one block is just a permutation of the set of all different input blocks. If you have a blocksize of 64 bits, representing an arbitrary permutation would need log_2(2^64 !) bits, where the exclamation mark stands for the factorial. That number is huge, bigger than 2^69. We can't represent arbitrary permutations of blocks of 64 bits. Yet, block ciphers are permutations. What happens here is that once again we find subsets of the possible permutation we can represent efficiently. The compressed representation is the key.

Re: Keras reimplementation of "One pixel attack for fooling deep neural networks"

#35
post #11

Isn't the fact that it's one pixel of a 32*32 image relevant? I'd be more impressed to see a neural network be succesfully attacked by a single (or dozens) of pixels on a full-res image.

There are other concerns of practicality as well, such as dependence on ability to rerun samples through the original network.

Re: Keras reimplementation of "One pixel attack for fooling deep neural networks"

#36

This is really interesting, but points out a key importance in training neural nets, which is to design your dataset and training to maximize generalization. For example, in the case of training a neural network for something that is highly safety critical, like an autonomous vehicle, it's important for vehicle and pedestrian detection to be as generalized as possible. In order to achieve high confidence in all sorts…

Walk around in the city with a giant yellow square costume and observe the mayhem...

Dressing up as traffic signs might become a thing...

Re: Keras reimplementation of "One pixel attack for fooling deep neural networks"

#37
post #28

This is really interesting, but points out a key importance in training neural nets, which is to design your dataset and training to maximize generalization. For example, in the case of training a neural network for something that is highly safety critical, like an autonomous vehicle, it's important for vehicle and pedestrian detection to be as generalized as possible. In order to achieve high confidence in all sorts…

Jumping on top comment (which I completely agree with) to ask: Why wouldn't a K-fold cross validation enable catching this? I'm curious if the attack adds doubt, in that the prediction algorithm is _close_ to truth but gets confused (likelihood of horse slightly less than dog), versus incorrect certitude (the horse is definitely a dog). One could then attach a weighting, perhaps based on max RGB/CYMK vector norm betw…

I don't believe that many people are using K-fold cross validation at all with deep learning, as the computational overhead is massive.

Re: Keras reimplementation of "One pixel attack for fooling deep neural networks"

#38
post #16

Does anyone else wonder if their usage of the word "THICC"[1] in their meme, inadvertently comes off as sexist? [1] https://www.urbandictionary.com/define.php?term=Thicc Great work! risky intro picture.

Urban Dictionary has prominent offensive definitions for most entires; it's not a great source for what you're trying to demonstrate.

Re: Keras reimplementation of "One pixel attack for fooling deep neural networks"

#39

This is really interesting, but points out a key importance in training neural nets, which is to design your dataset and training to maximize generalization. For example, in the case of training a neural network for something that is highly safety critical, like an autonomous vehicle, it's important for vehicle and pedestrian detection to be as generalized as possible. In order to achieve high confidence in all sorts…

There have been some fascinating steps taken towards that direction, e.g. [0] and its related work. There they take the approach of transferring input images back and forth domains (think, a street imaged in summer transferred to its winter manifestation and back or a synthetic GTA image to real-world and back are the examples in [0]). Doing this while simultaneously holding the semantic content of the input unchanged with a GAN-type strategy seems to be a way to coerce the neural net's internal representations to capture what we want them to instead of idiosyncrasies of the dataset.

[0] https://arxiv.org/abs/1711.03213

Re: Keras reimplementation of "One pixel attack for fooling deep neural networks"

#40
post #28

Earlier quoted context omitted.

Jumping on top comment (which I completely agree with) to ask: Why wouldn't a K-fold cross validation enable catching this? I'm curious if the attack adds doubt, in that the prediction algorithm is _close_ to truth but gets confused (likelihood of horse slightly less than dog), versus incorrect certitude (the horse is definitely a dog). One could then attach a weighting, perhaps based on max RGB/CYMK vector norm betw…

I don't believe that many people are using K-fold cross validation at all with deep learning, as the computational overhead is massive.

I must be misspeaking then. I'm not suggesting it run during training, but run the classification algorithm X number of times over an input image with chunks areas removed/suppressed from the data.
Post reply on HN