Domains and Applications
Machine Learning/AI is “pattern recognition”. Spot a statistical high-dimensional pattern and make value judgements based upon the pattern. Some of the places it is used today:
- Optimizing a process or problem
- Decision trees (like automated phone systems)
- Natural Language Processing
- Speech-to-speech translation
- Computer vision, image recognition, facial recognition
- Video automatic content recognition
- Gesture control
- Virtual personal assistants (see Conversational UI)
- Robotics and automation
- Recommendation engines
- Context aware computing
It will be applied to everything. Some emerging spaces are: music, images and video, architecture, structural engineering, art, medicine, biology research.
Driving Forces, Important Enablers
In 2014, machine learning hit a tipping point, becoming “good enough” for many new domains, with the advent of “deep learning”: an approach to neural nets that uses much larger datasets and multiple neural net layers.
This was followed by the open-sourcing of many production deep learning systems, followed by the open-sourcing of infrastructure and datasets for training them.
- When everyone trains their AI on same open datasets, what gets missed?
- As ML permeates more services, networked ML agents will have interesting failure cascades. What happens when financial markets, subway systems, and ordering a pizza are all prone to “flash crash”?
Deep Learning is very broadly applicable, and we’ve barely scratched the use-cases.
- How to build an AI startup
- The idea maze for AI startups
- Strategic Futures for AI
- Untapped opportunities in AI
- 2016 competitive map
- Oct 2016 The Commoditization of AI
- Jul 2016 Four Future Scenarios for AI
- Sep 2016 AI and the Future of Design
- Jun 2016 OpenAI report on Generative Models
Overviews and Tutorials
- Visual Intro to Machine Learning. Conceptual overview with great animations.
- Machine Learning is Fun
- Neural Networks and Deep Learning. A free online book that goes over the principles of Neural nets and deep learning. A good entry-level but mathy intro.
- Demystifying Deep Reinforcement Learning
- TensorFlow for Poets
- TensorFlow Tutorials
- Bare bottom simplest example of machine learning in TensorFlow
- Information Theory, Inference, and Learning Algorithms, David MacKay. Free online. A good book for the curious.
- Machine Learning: Hands-On for Developers and Technical Professionals, Wiley. A good book for programmers.
- A long book list
- Distill.pub: a very approachable ML publication.
Frameworks and Toolkits
- TensorFlow (Google. Written in Go.)
- Caffe (Berkeley Vision and Learning Center)
- Torch (Lua)
- Paddle (Baidu. Distributed Deep Learning.)
- Theano (Python. Deep Learning.)
- Keras (Python. Neural Nets.)
- Leaf (Rust. Can run on GPU or CPU)
Datasets and Training Resources
- OpenAI Gym: “A toolkit for developing and comparing reinforcement learning algorithms.”
- Google’s Open Images Dataset
- OpenAI on infrastructure for deep learning
Types of Machine Learning
Lots of Deep Learning is based on matrix multiplication (or “Tensors”).
- Supervised (inductive) machine learning
- Emails are labeled as spam and not spam by user.
- Most mature, most widely used
- Give examples of desired result
- Data is everywhere, but labeling the data needs to be done by humans.
- Clustering… common in marketing
- Unsupervised learning
- You group emails into good and bad, and hopefully that correlates against spam and not spam. This is very hard.
- Harder, less to work with, harder to tell what a good result is
- Semi-supervised learning
- Some are labeled as spam, some as not spam, and some are unlabeled.
- Often you can’t afford to label all the data, but you can label some of it. Start there and bootstrap.
- Could say this is how most people learn most things.
- Reinforcement learning
- Ambitious. AI looks forward to this. Hardest.
- A real agent in the real world.
- Rewards from sequence of actions.
- In a way, a kind of semi-supervised learning. But it’s sequential.
- Scoring what you’ve learned back against what you did in the past.
- Least used.
Given examples of a function
f(x) for new example
I have to guess what previously unseen examples are. If your problem is…
- Discrete f(x): classification
- Continuous f(x): regression
- f(x) = probability(x): probability estimation
Regression is what most statistitions do for a living. Discrete things tends to be what compsci people are interested in.
- Supervised learning
- Decision tree induction
- Rule induction
- Instance-based learning
- Bayesian learning
- Neural networks
- Support vector machines
- Model ensembles
- Learning theory (encompasses above. Recurring problems like overfitting, etc)
- Unsupervised learning
- Dimensionality reduction
- 2 ways data can be big: “I have lots of examples”, or “I know a lot about these people”.
- I might have 100s of 1000s of variables. Super-high-dimensional data.