Collaborating Authors

Downscaling Attack and Defense: Turning What You See Back Into What You Get Artificial Intelligence

The resizing of images, which is typically a required part of preprocessing for computer vision systems, is vulnerable to attack. Images can be created such that the image is completely different at machine-vision scales than at other scales and the default settings for some common computer vision and machine learning systems are vulnerable. We show that defenses exist and are trivial to administer provided that defenders are aware of the threat. These attacks and defenses help to establish the role of input sanitization in machine learning.

Feature Scaling Data with Scikit-Learn for Machine Learning in Python


Preprocessing data is an often overlooked key step in Machine Learning. In fact - it's as important as the shiny model you want to fit with it. You can have the best model crafted for any sort of problem - if you feed it garbage, it'll spew out garbage. It's worth noting that "garbage" doesn't refer to random data. It's a harsh label we attach to any data that doesn't allow the model to do its best - some more so than other.

Simple Black-Box Adversarial Perturbations for Deep Networks Machine Learning

Deep neural networks are powerful and popular learning models that achieve state-of-the-art pattern recognition performance on many computer vision, speech, and language processing tasks. However, these networks have also been shown susceptible to carefully crafted adversarial perturbations which force misclassification of the inputs. Adversarial examples enable adversaries to subvert the expected system behavior leading to undesired consequences and could pose a security risk when these systems are deployed in the real world. In this work, we focus on deep convolutional neural networks and demonstrate that adversaries can easily craft adversarial examples even without any internal knowledge of the target network. Our attacks treat the network as an oracle (black-box) and only assume that the output of the network can be observed on the probed inputs. Our first attack is based on a simple idea of adding perturbation to a randomly selected single pixel or a small set of them. We then improve the effectiveness of this attack by carefully constructing a small set of pixels to perturb by using the idea of greedy local-search. Our proposed attacks also naturally extend to a stronger notion of misclassification. Our extensive experimental results illustrate that even these elementary attacks can reveal a deep neural network's vulnerabilities. The simplicity and effectiveness of our proposed schemes mean that they could serve as a litmus test for designing robust networks.



How simple is it to cause a deep neural network to misclassify an image if we are only allowed to modify the color of one pixel and only see the prediction probability? Turns out it is very simple. In many cases, we can even cause the network to return any answer we want.

Scaling Machine Learning - Part 1: Naive approach


Yet another level is distributed computing. It means multiple machines cooperating as single system to reach common goal. Distributed computing is not always the solution, it is actually often misused for problems that could be solved more efficiently on a single machine. It also introduces many new complexities that may not be necessary, including having to worry about concurrency, time, order, message delivery, network latency, consistency, failures or deployment. Companies including Baidu or Google reportedly use optimized single machine implementations or high performance computing utilising GPUs on single machine or supercomputers for machine learning and other expensive algorithms, but TensorFlow or Spark are prime examples of distributed systems used for this puprose.