We’ve all been told that “you can’t teach an old dog new tricks,” but any competent dog trainer will tell you that most old dogs can indeed be taught new tricks, when properly motivated and rewarded. For a real teaching challenge, try teaching a computer to reliably identify a Chesterfield couch (or any couch, for that matter) in a photograph.
For all the hype lately about artificial intelligence, deep learning, and the myriad other associated buzzwords, setting up a machine learning system to do even a simple (to a human) task is a phenomenally difficult undertaking. You need a lot of expertise, computing power, data, and time, all of which means: money. Designing, teaching, and deploying a reliable machine learning system is quite out of reach of all but the most deep-pocketed organizations.
Let’s have a look at each of these requirements:
Although artificial intelligence research has been going on for several decades, the most promising developments have occurred only in the last few years. Machine learning is still quite in its infancy, and much basic R&D work must be done before we will have anything approaching “do-it-yourself” machine learning tools.
The ability of a machine to learn anything depends strongly on the accuracy of its underlying mathematical model, and developing a good mathematical model requires advanced understanding of arcane topics in linear algebra and calculus, among others. Much of the existing body of knowledge exists only in academic research papers. In short, you need Ph.D.-level expertise to understand it, let alone pull it off.
Data (or lack thereof)
To teach humans, even young children, to identify a Chesterfield couch, you need to show them only a few photographs of Chesterfield couches (and some couches that are not Chesterfields, for comparison). You can then turn them loose and they will reliably locate Chesterfields like crazy. Humans have an innate capability for abstraction that computers simply don’t have. It takes thousands of photos of Chesterfields to teach a computer to pick one out in a crowd. And the “training” Chesterfields need to be all different sizes, colors, and viewing angles.
So how do you get that many pictures of Chesterfield couches? If you do a Google or Bing search, you might turn up a few dozen—not nearly enough. In fact, there probably is no existing database of Chesterfield photos that is large enough to do the job. You would have to build it yourself, which is an expensive and time-consuming proposition.
Computing Power and Time
Although computer processors are more powerful than ever, teaching a machine learning system requires dedicated, specially configured server machines (preferably many such machines, working in parallel). This means acquiring and setting up the hardware in your own data center, buying time on a supercomputer, or using cloud-based computing resources, such as Amazon Web Services or Microsoft Azure. None of these options is cheap, and the learning process can take days or weeks. And if you’re not getting good results, the underlying model may need to be tweaked, and then the learning cycle starts all over again.
The good news is, once the system has gone through its learning phase and you are confident in its reliability, actually operating it on a day-to-day basis to perform its assigned task (such as answering “yes” or “no” when asked if a given photo contains a Chesterfield couch) requires significantly less computing muscle and storage space.
Better Days Ahead?
So unless you’re Google or the U.S. National Security Agency, you probably don’t have the resources to build a machine learning system from scratch. There are commercial machine learning engines you can leverage, such as the Google Photos Cloud Vision API, but their applications are fairly limited at present. If you want something more specialized, you may need to bite the bullet and launch a full custom machine learning project. Bring your checkbook.
Or just wait a few years. The pace of research shows no signs of slowing, and we can be fairly certain that commercial software development frameworks will become available that hide much of the complex mathematics and give developers easy-to-use tools for building, optimizing, teaching, and testing machine learning models. To borrow a phrase from the early Apple Macintosh advertising, it could become “machine learning for the rest of us.”