- CUDA
CUDA is a parallel computing platform and application programming interface model created by Nvidia. It allows software developers and software engineers to use a CUDA-enabled graphics processing unit for general purpose processing – an approach termed GPGPU. The CUDA platform is a software layer that gives direct access to the GPU's virtual instruction set and parallel computational elements, for the execution of compute kernels. You can accelerate deep learning and other compute-intensive apps by taking advantage of CUDA and the parallel processing power of GPUs - Boltzmann machine
- GAN (Generative Adversarial Network), invented by Ian Goodfellow
GANs are a way of doing generative modeling where you have a lot of training data and you'd like to learn to produce more examples that resemble the training data, but they're imaginary. They've never been seen exactly in that form before. - sparse coding
- deep belief networks
- rectified linear units
- batch normalization
- Write good code and put it on Github. If you have an interesting project that solves a problem that someone working at the top level wanted to solve, once they find your Github repository, they'll find you and ask you to come work there.
- OpenAI
- Writing papers and putting them on arXiv can also be good. A lot of time, it's harder to reach the point where you have something polished enough to really be a new academic contribution to the scientific literature, but you can often get to the point of having a useful software product much earlier.
- arXiv: arXiv is a free distribution service and an open-access archive for 1,922,358 scholarly articles in the fields of physics, mathematics, computer science, quantitative biology, quantitative finance, statistics, electrical engineering and systems science, and economics. Materials on this site are not peer-reviewed by arXiv. https://arxiv.org/
- Andrew Ng.: Read the books, practice the materials and post on Github and maybe on arXiv.
- Ian Goodfellow: If you learned by reading a book, it's really important to also work on a project at the same time. To either choose some way of applying machine learning to an area that you are really interested in. Like if you're a field biologist and you want to get into deep learning, maybe you could use it to identify birds. Or if you don't have an idea for how you'd like to use machine learning in your own life, you could pick something like making a Street view house numbers classifier, where all the data sets are set up to make it very straightforward for you. And that way, you get to exercise all of the basic skills while you read the book or while you watch Coursera videos that explains the concepts to you.
- I (Ian) think Adversarial examples are the beginning of a new field that I call machine learning security. In the past, we've seen computer security issues where attackers could fool a computer into running the wrong code. That's called application level security. And there's been attacks where people can fool a computer into believing that messages on a network come from somebody that is not really who they say they are. That's called network level security. Now, we're starting to see that you can also fool machine learning algorithms into doing things they shouldn't, even if the program running the machine learning algorithm is running the correct code, even if the program running the machine learning algorithm knows who all the messages on the network really came from. It's important to build security into a new technology near the start of its development.
<end>