A few years ago Marc Andreessen famously proclaimed “Software is eating the world.” I have to think he was speaking figuratively, but with the rapid ascent of machine learning one has to wonder. Science fiction writers and movie producers have often envisioned a dystopian future, but perhaps more troubling are real life warnings from Stephen Hawking and Elon Musk. Most people take a positive view, though, and it’s hard to argue against the potential benefits of now seemingly inevitable applications such as self driving cars. Reasonable people can take either side of the argument, but it is impossible to argue that progress will stop: like most technology, it may have unforeseen benefits and consequences but its advance is inexorable.
So whether you want to learn more about the state of machine learning, how it works, or simply wish to be better versed when greeting our future robot overlords, read on!
There are a few different terms that get bandied about in articles about this topic: machine learning, artificial, deep learning, etc. They all mean something slightly different, but I generally use deep learning since it makes me look the smartest. Here in Silicon Valley, looking smart is almost as important as having “hacker” in your job title. So now that that’s settled, what is deep learning?
First and foremost, it’s an excellent marketing term! Computer scientists are generally terrible at naming things, so when we get something right, people perk up (see also: cloud computing).
As a CEO, what sounds better “deep learning” or “back office ERP systems”? As a journalist would you rather write about “deep learning” or “software automation”? As a student, would you rather study “deep learning” or “artificial multi-layer neural networks”? You get the point.
And by the way, the last example was a trick question, deep learning is an umbrella term for various types of multi-layer artificial neural networks. But whereas the latter term evokes feelings of a post Thanksgiving, eyes glazed over torpor, the former gets you a front page article in the New York Times.
Style and Substance
While deep learning is a great marketing term, it’s also delivering amazing results. For example, in the field of computer vision, there is an annual competition where top universities and research labs all try to outperform each other. Deep learning techniques were first used by the University of Toronto in 2012. How’d they do? Well, as you probably guessed they won. But they not only won, they were 70 percent better than anything else. As a comparison, when Usain Bolt famously blew away the field in the 100m dash, he won by an incredible two tenths of a second. That’s only 2% better than second place.
True Artificial Intelligence
But it’s not just the results that make deep learning groundbreaking. Deep learning approaches things in a fundamentally different manner.
Previous state-of-the-art algorithms heavily relied on “feature engineering.” Essentially, researchers developed an incredibly deep understanding of the problem at hand and teased out the key characteristics need to solve it. Then the algorithm would simply learn how to best balance or “optimize” these characteristics.
On the other hand, deep learning simply says, “Back off, humans! Just give me all the data and let me do my jam.” The algorithms actually manage to do the feature extraction part of the process as well as the “optimization” part all on its own.
Think about this for a moment. Usually the clever parts of algorithms are discovered by people and computers are used to mechanically calculate things many times faster than we possibly could. But deep learning directly consumes raw data and independently reasons about how to best frame the problem and solve it.
This is a real step forward towards “true” AI. Consider where the intelligence lies in each approach. Sure, the previous optimization algorithms may be clever, but the real magic in the process was in humans reasoning about the data and extracting the right properties. With deep learning, this entire process is done without human intervention. This is much closer to what most would consider human thought.
Computers Playing Games
This transfer of responsibility makes it much easier and quicker to address many different problems. In software, one of the most important steps in solving any problem is modeling it correctly. Sometimes, this is really easy. Take chess as an example:
While we humans see this as a single image, computers need a numerical representation. Here it’s easy. There are 64 squares on a chessboard, and six types of pieces. We can use a list of 64 numbers to represent a particular board set up. Each number will simply identify the piece in that square.
This is elegant in its simplicity. And indeed, chess has been a popular target for computers. Many students (myself included) program a very simple chess playing algorithm as part of an introductory computer science course. At the other end of the spectrum, researchers have built optimized algorithms capable of beating the best players in the world without deep learning techniques. This is bread and butter for pre deep learning algorithms, a pretty simple modeling “space” and a huge search “space” where computers can win by simply evaluating more scenarios than humans can.
Now consider a very different game, Super Mario World. Take a look at the screen capture. How would we go about modeling this? While I get the warm fuzzies thinking about all the hours I played this game as a kid, thinking about how to model this for a computer gives me a headache. Mario and his friends can be anywhere on the screen, how do we even represent where Mario is? He’s not a single point or shape, he’s this blobby thing.
Maybe we’d have to preprocess an image to extract out Mario, turtles, blocks, etc and assign them some area on the screen. Not impossible, but it’s definitely not as clear as playing chess. With deep learning, we don’t have to worry so much about input representation. Instead at each frame, we can simply feed in the image into the algorithm at every frame. We also define the possible actions (left, right, jump, etc.) and a goal (win the stage). This is much clearer, and indeed someone has done something very similar.
This isn’t to say that pre deep learning algorithms couldn’t perform well on Super Mario World or that it would be a harder problem for them than chess. It’s just to illustrate the different way problems are approached by the different techniques, and how using deep learning makes seemingly complex challenges easier to solve.
How it Will Affect You
There is no question that whoever you are, your life will be, well, deeply impacted by deep learning. The relative ease of applying these algorithms and their wide applicability make this a certainty.
This is already happening in the virtual world with products such as google translate and image search. But it’s clear deep learning will soon encroach on the physical world as well. The aforementioned self driving car technology will almost certainly utilize deep learning.
In the workplace, no profession will be left untouched. As a marketer, deep learning may be able fully utilize big data to optimize how to best spend your budget. As an educator, deep learning could tailor customized assignments for each student (mind bendingly, by learning how students best learn).
The truly revolutionary aspect of deep learning is that since these algorithms reason, they are not limited to replacing repetitive, manual labor oriented tasks; they can replace jobs we typically think must be performed by a highly experienced, educated human being.
How it Will Affect Us
So what about feedly? Machine learning and content centric apps have a long history together, probably starting way back with Greg Linden’s Findory site in 2004. The results have been decidedly mixed. The quandary is that machine learning approaches need user data to improve, but in today’s world users demand great experiences right off the bat.
This is a hard problem, one that’s still not clear how to solve. Indeed, machine learning is probably not the complete answer here: a hybrid approach combining social, machine learning, and explicitly stated user preferences may prove to be the best approach.
Further downstream in the user experience, things look a lot better. A main area of focus in deep learning is “natural language processing” (NLP), essentially improving computer’s understanding of human text and speech. Great strides forward have been made in recent years, and more seem to be on the way.
These techniques could be used to understand the content of an article, and the types of articles a particular user likes. More interestingly, they could also be used to learn the depth of a user’s knowledge. The system should be able to learn that I have only a surface understanding of politics and recommend introductory articles while also knowing I have a more in depth understanding of machine learning and recommend more advanced material. This should create a much richer user experience.
To be frank, when I first started educating myself about machine learning it was mostly out of geeky curiosity. The algorithms were fascinating, but I wasn’t that convinced they would ever be good enough to use in my day job. My opinion has been completely turned around. The flexibility and expressiveness of these models is astounding, and would seem to be capable of modeling aspects of the most complex machine ever created, the human brain.
To date we haven’t done much machine learning work at feedly (recently we’ve been busy building out our team collaboration offering), but we are fully convinced of its potential and plan to invest more resources in the future.
Don’t Stop Here
Edwin, our CEO, loves to say “Never Stop Learning.” In that vein, here are some more resources about this topic:
- Humans Need Not Apply – A terrific youtube video done by CGP Grey (in feedly) that dives deeper into the potential societal impacts deep learning may have, and what we must start thinking about in order to best adapt.
- A feedly search (pro and team users only) is full of great content on recent deep learning happenings.
- Andrej Karpathy’s blog (in feedly) is a great resource to learn more about the actual algorithms (some coding skills required). He’s teaching a class right now so it’s not so active, he still seems to be tweeting though.
- WildML (in feedly) is another great blog that is more technical and in depth.
- Finally if you happen to remember any math at all from high school or college and want to learn more about the nuts and bolts of machine learning, Andrew Ng’s Coursera course is starting up again. He is an amazing lecturer and makes the material very accessible. If you can still calculate a post dinner tip without pulling out the calculator app on your phone, you should be fine.
Congratulations, you made it to the end! Now when deep learning comes up at dinner parties, you should be able to blow people’s minds with a few incisive comments. If you flop on your face, feel free to leave a comment to let us know why. Comments are also a great way to determine if your recently built AI bot can pass the Turing Test. I’ll answer all comers and we hope to dive deeper into this topic in future blog posts.