By now, every software developer can list off at least two majorly dangerous artificial intelligence projects from the fantasy world of Hollywood. While HAL and Skynet are renowned for using their digital intelligences to further their nefarious plans for murder, in reality, AI is a lot less dangerous. For the most part, AI in the modern application is all about improving application performance over time, not about usurping a space ship or starting a nuclear war.
Here, then, are five ways to bring AI into your application. We promise that none of these suggestions will result in humanity being wiped out.
Mahout is so named for the fellow who tends the elephant. It’s an Indian word, and it’s fairly apt to the goals of the project. However, right now, Mahout is still in its infancy: The current release is version 0.6. But Mahout is likely to become the most compelling machine-learning choice over the long term because it is built on top of Hadoop.
And Hadoop, as we all know, allows you to store humongous amounts of data for analysis. Of course, machine learning is all about having a big data set to learn from, and you really can’t get much bigger than Hadoop is capable of hosting.
Given a few petabytes of information, a Mahout application could crunch down its algorithms and hone them to a razor’s edge. For now, those algorithms will best be used to do similarity assessment; users who liked this might also like that. But as Mahout matures and begins to include more-complex algorithms, there’s no reason why enterprises won’t be able to optimize their Hadoop data on the fly via a Mahout application.
While the Hadoop folks have all the fun of running servers, installing packages, writing MapReduce jobs, and generally behaving like IT ops folks, BigML has created an alternative to on-premise AI. BigML is, essentially, machine learning as a service. You upload your data, then begin constructing AI on top of it that can learn from that data set.
That means developers just have to stop by bigml.com/developers, generate an API key, and in a few minutes, they’re able to work with BigML via its RESTful API.
The overall goal at BigML is to make machine learning easy and beautiful. We can safely say that because it has removed the hardware from the equation, and it’s certainly made things a lot easier already.
Stanford’s Introduction to AI classes
Sure, you think you’ve got to be in the Valley to go to class at Stanford. But that’s just not true anymore. Last fall, Stanford hosted its first online AI courses, and they were all full before they began. While there is not yet word on when the next batch of online classes will fire up, no matter when it happens, this is probably the most powerful way to learn about AI available to you.
This is not just some online course like the University of Phoenix would offer. This is a full-on expert-driven curriculum, taught by two of the biggest brains in AI: Sebastian Thrun and Peter Norvig.
So, you’ve taken the intro course thanks to hours of waiting to sign up, and a ruthless dedication to submitting your online application before anyone else. Now what?
Stanford’s AI classes go a lot deeper than just introductions. Through a secondary site designed to expand the available online courses, Stanford has branched out into teaching all manner of computer science topics with an AI bent. Already at Udacity are classes on building a search engine, on building a self-driving car, and on Web-application engineering. All in all, you really can’t go wrong with free classes from Stanford, no matter the topic.
Opera Solutions has the data scientists you need. They’ll just rent them to you on a consulting basis. It’s a sad truth that data scientists and analysts are in high demand, and they aren’t exactly growing on trees. Instead of going out and building a center of AI and analytic excellence, perhaps your best bet is to bring in consultants to code up your needed business intelligence workflows.
Opera Solutions is essentially an analytics and machine-learning consulting firm. But its philosophy is not just about computers figuring everything out on their own.
Jacob Spoelstra, head of R&D at Opera Solutions, said, “If you look at the development of artificial intelligence and the way people have gone, there’s often been this case of man versus machine. The data got more complex, and the machines got smaller, and more and more decisions are made by machines. It’s our belief that what we see in the future is man plus machine. The fact is that you always need to inject a human intelligence, ingenuity and originality into the process. In doing so, you improve both man and machine.
“This is like a chess computer, where a moderately good player plus a chess computer will beat the best player. The way we see this is in any solution you want to bring the human into the loop. The machine helps to make the human more efficient by prioritizing, and allowing the human to make that final decision.”
Machine-learning libraries for Python, with a focus on the ease of use Python is known for. From the PyBrain site:
PyBrain is a modular Machine Learning Library for Python. Its goal is to offer flexible, easy-to-use, yet still powerful algorithms for Machine Learning Tasks, and a variety of predefined environments to test and compare your algorithms.
PyBrain is short for Python-Based Reinforcement Learning, Artificial Intelligence and Neural Network Library. In fact, we came up with the name first and later reverse-engineered this quite descriptive “Backronym.”
While there are a few machine learning libraries out there, PyBrain aims to be a very easy-to-use modular library that can be used by entry-level students, but still offers the flexibility and algorithms for state-of-the-art research. We are constantly working on more and faster algorithms, developing new environments and improving usability.
PyBrain, as its written-out name already suggests, contains algorithms for neural networks, for reinforcement learning (and the combination of the two), for unsupervised learning, and evolution. Since most of the current problems deal with continuous state and action spaces, function approximators (like neural networks) must be used to cope with the large dimensionality. Our library is built around neural networks in the kernel and all of the training methods accept a neural network as the to-be-trained instance. This makes PyBrain a powerful tool for real-life tasks.