Deep Learning
[D] Discussion on Pytorch vs TensorFlow • r/MachineLearning
When I started looking at frameworks the main ones were Torch, Caffe and Theano. I ruled out Caffe for lack of flexibility and found Torch had the right level of abstraction for me (e.g. Switched to PyTorch not because of Python (was happy enough with Lua) but primarily because it made dynamic stuff (e.g. In general I like how quickly I can whip up even complex architectures in PyTorch, and no need to wait for compilation. I've seen it in use at Facebook, Microsoft and Twitter (so there are big companies using it, with more listed at the bottom of the website).
Learning to Trade with Reinforcement Learning
The academic Deep Learning research community has largely stayed away from the financial markets. Maybe that's because the finance industry has a bad reputation, the problem doesn't seem interesting from a research perspective, or because data is difficult and expensive to obtain. In this post, I'm going to argue that training Reinforcement Learning agents to trade in the financial (and cryptocurrency) markets can be an extremely interesting research problem. I believe that it has not received enough attention from the research community but has the potential to push the state-of-the art of many related fields. It is quite similar to training agents for multiplayer games such as DotA, and many of the same research problems carry over. Knowing virtually nothing about trading, I have spent the past few months working on a project in this field. This is not a "price prediction using Deep Learning" post. So, if you're looking for example code and models you may be disappointed. Instead, I want to talk on a more high level about why learning to trade using Machine Learning is difficult, what some of the challenges are, and where I think Reinforcement Learning fits in. If there's enough interest in this area I may follow up with another post that includes concrete examples. I expect most readers to have no background in trading, just like I didn't, so I will start out with covering some of the basics. I'm by no means an expert, so please let me know in the comments so if you find mistakes. I will use cryptocurrencies as a running example in this post, but the same concepts apply to most of the financial markets. The reason to use cryptocurrencies is that data is free, public, and easily accessible. Anyone can sign up to trade. The barriers to trading in the financial markets are a little higher, and data can be expensive.
DeepMind partners with VA to identify risks during hospital stays
The Department of Veterans Affairs has announced a research partnership with Alphabet subsidiary DeepMind that will tackle issues concerning patient deterioration during hospital care. Using a dataset comprised of 700,000 historical, de-personalized health records, the machine learning platform will help the VA identify risk factors for deterioration while predicting its onset. "Medicine is more than treating patients' problems," VA Secretary David J. Shulkin said in a statement. "Clinicians need to be able to identify risks to help prevent disease. This collaboration is an opportunity to advance the quality of care for our nation's veterans by predicting deterioration and applying interventions early."
Autoencoder based image compression: can the learning be quantization independent?
Dumas, Thierry, Roumy, Aline, Guillemot, Christine
Notably, the discrete cosine transform (DCT) is the most commonly used for two reasons: (i) it is image-independent, implying that the DCT does not need to be transmitted, (ii) it approaches the optimal orthogonal transform in terms of rate-distortion, assuming that natural images can be modeled by zero-mean Gaussian-Markov processes with high correlation [1]. Deep autoencoders have been shown as promising tools for finding alternative transforms [2, 3, 4]. Autoencoders learn the encoder-decoder nonlinear transform from natural images. In the best image compression algorithms based on autoencoders [5, 6, 7], one transform is learned per ratedistortion point at a given quantization step size. Then, the quantization step size remains unchanged at test time so that the training and test conditions are identical. By contrast, image coding standards implement adaptive quantizations [8, 9]. Should the quantization be imposed during the training? To answer this, we propose an approach where the transform and the quantization are learned jointly.
Is Generator Conditioning Causally Related to GAN Performance?
Odena, Augustus, Buckman, Jacob, Olsson, Catherine, Brown, Tom B., Olah, Christopher, Raffel, Colin, Goodfellow, Ian
Recent work (Pennington et al, 2017) suggests that controlling the entire distribution of Jacobian singular values is an important design consideration in deep learning. Motivated by this, we study the distribution of singular values of the Jacobian of the generator in Generative Adversarial Networks (GANs). We find that this Jacobian generally becomes ill-conditioned at the beginning of training. Moreover, we find that the average (with z from p(z)) conditioning of the generator is highly predictive of two other ad-hoc metrics for measuring the 'quality' of trained GANs: the Inception Score and the Frechet Inception Distance (FID). We test the hypothesis that this relationship is causal by proposing a 'regularization' technique (called Jacobian Clamping) that softly penalizes the condition number of the generator Jacobian. Jacobian Clamping improves the mean Inception Score and the mean FID for GANs trained on several datasets. It also greatly reduces inter-run variance of the aforementioned scores, addressing (at least partially) one of the main criticisms of GANs.
Sensitivity and Generalization in Neural Networks: an Empirical Study
Novak, Roman, Bahri, Yasaman, Abolafia, Daniel A., Pennington, Jeffrey, Sohl-Dickstein, Jascha
In practice it is often found that large over-parameterized neural networks generalize better than their smaller counterparts, an observation that appears to conflict with classical notions of function complexity, which typically favor smaller models. In this work, we investigate this tension between complexity and generalization through an extensive empirical exploration of two natural metrics of complexity related to sensitivity to input perturbations. Our experiments survey thousands of models with various fully-connected architectures, optimizers, and other hyper-parameters, as well as four different image classification datasets. We find that trained neural networks are more robust to input perturbations in the vicinity of the training data manifold, as measured by the norm of the input-output Jacobian of the network, and that it correlates well with generalization. We further establish that factors associated with poor generalization $-$ such as full-batch training or using random labels $-$ correspond to lower robustness, while factors associated with good generalization $-$ such as data augmentation and ReLU non-linearities $-$ give rise to more robust functions. Finally, we demonstrate how the input-output Jacobian norm can be predictive of generalization at the level of individual test points.
Adversarial vulnerability for any classifier
Fawzi, Alhussein, Fawzi, Hamza, Fawzi, Omar
In fact, very small and often imperceptible perturbations of the data samples are sufficient to fool state-of-the-art classifiers and result in incorrect classification. This discovery of the surprising vulnerability of classifiers to perturbations has led to a large body of work that attempts to design robust classifiers. However, advances in designing robust classifiers have been accompanied with stronger perturbation schemes that easily defeat such defenses [CW17, RB17]. In fact, there is, to this date, no successful and scalable strategy to defend against adversarial perturbations. This leads to the following natural question: Is it possible to design robust classifiers against adversarial perturbations? Our main result is to prove that if the data distribution is defined by a smooth generative model with a sufficiently large latent space, then no classifier can be robust to adversarial noise.
Training wide residual networks for deployment using a single bit for each weight
For fast and energy-efficient deployment of trained deep neural networks on resource-constrained embedded hardware, each learned weight parameter should ideally be represented and stored using a single bit. Error-rates usually increase when this requirement is imposed. Here, we report large improvements in error rates on multiple datasets, for deep convolutional neural networks deployed with 1-bit-per-weight. Using wide residual networks as our main baseline, our approach simplifies existing methods that binarize weights by applying the sign function in training; we apply scaling factors for each layer with constant unlearned values equal to the layer-specific standard deviations used for initialization. For CIFAR-10, CIFAR-100 and ImageNet, and models with 1-bit-per-weight requiring less than 10 MB of parameter memory, we achieve error rates of 3.9%, 18.5% and 26.0% / 8.5% (Top-1 / Top-5) respectively. We also considered MNIST, SVHN and ImageNet32, achieving 1-bit-per-weight test results of 0.27%, 1.9%, and 41.3% / 19.1% respectively. For CIFAR, our error rates halve previously reported values, and are within about 1% of our error-rates for the same network with full-precision weights. For networks that overfit, we also show significant improvements in error rate by not learning batch normalization scale and offset parameters. This applies to both full precision and 1-bit-per-weight networks. Using a warm-restart learning-rate schedule, we found that training for 1-bit-per-weight is just as fast as full-precision networks, with better accuracy than standard schedules, and achieved about 98%-99% of peak performance in just 62 training epochs for CIFAR-10/100. For full training code and trained models in MATLAB, Keras and PyTorch see https://github.com/McDonnell-Lab/1-bit-per-weight/ .
Solving Linear Inverse Problems Using GAN Priors: An Algorithm with Provable Guarantees
In recent works, both sparsity-based methods as well as learning-based methods have proven to be successful in solving several challenging linear inverse problems. However, sparsity priors for natural signals and images suffer from poor discriminative capability, while learning-based methods seldom provide concrete theoretical guarantees. In this work, we advocate the idea of replacing hand-crafted priors, such as sparsity, with a Generative Adversarial Network (GAN) to solve linear inverse problems such as compressive sensing. In particular, we propose a projected gradient descent (PGD) algorithm for effective use of GAN priors for linear inverse problems, and also provide theoretical guarantees on the rate of convergence of this algorithm. Moreover, we show empirically that our algorithm demonstrates superior performance over an existing method of leveraging GANs for compressive sensing.