Open Source is the Future
Businesses may profess to be moving towards adopting Artificial Intelligence but most remain unaware or uninterested. Part of the reason for this lethargy is that proprietary AI systems are still very expensive and very dumb. Having to licence a proprietary system means that the cost of migrating to competing systems are high. If you needed an upgrade, you only had one vendor to turn to. In fact, that’s how open source started, as a revolution against the profits closed source systems extracted with inferior products.
From operating systems to trading platforms, a lot of the modern world is built upon open source software. As a business model, open source can be profitable. Yet, it seems that the newest frontier of technology – Artificial Intelligence – has not been affected by the movement towards open source.
Or has it?
Behind the push towards open source AI has been a non-profit organisation, AI Global. In 2018, AI Global launched the world’s first open AI marketplace. Their aim is to make AI as accessible and as easy to use as downloading an app on a smartphone. Tech giants like Google, Facebook and Amazon are just some of the companies that have embraced the spirit of the marketplace by making their AI open source. They’re betting that proprietary AI will go the same way as proprietary software – extinction.
Artificial Intelligence encompasses many different fields. We’ll be looking at some of the different types of open source AI that is currently available. Today, we are going to be looking at open source AI in two of the biggest areas: Machine Learning Frameworks and Neural Networks and Natural Language Processing.
Machine Learning Frameworks and Neural Networks
The theory behind machine learning rests on the basic concept of pattern recognition and adaptability. The ability of a machine to constantly iterate and improve based upon new data allowed systems to independently adapt. This process results in reliable and repeatable decisions.
The theory is simple to understand, but machine learning has numerous applications beyond just pattern recognition. Fraud detection, personalised recommendations on Netflix and email spam filters are just some of the examples of the practical applications of machine learning.
Artificial neural networks refer to networks in which information is processed in a manner that is similar to our biological brain. With the advances in capabilities in AI, many machine learning systems also incorporate neural networks. The following types of open source AI are in this category.
TensorFlow is one such piece. Developed by Google, TensorFlow is a machine learning framework. Originally, TensorFlow was created to support in-house Artificial Intelligence software. As a framework, TensorFlow has been used in many applications. From discovering new planets to fighting deforestation, TensorFlow can also be found in products such as Dropbox and Google Photos. As one of the major open source AI platforms available, TensorFlow is compatible with many languages including Python, C++, Java, R, Haskell, and R. As an aside, another framework that is worth considering is the Microsoft Cognitive Toolkit.
If you already have your framework available and are looking more into reinforcement learning, Google has another open source project for you. Called Deep Planning Network, or PlaNet, it marked a departure from traditional reinforcement learning. By learning using latent dynamics model, model-based planning and transfer learning, the model-based PlaNet is more efficient than other techniques. Imagine a juggler juggling a ball. To be able to catch the ball, he has to plan how he will throw the ball and catch it. What makes PlaNet exciting is that instead of a policy network, PlaNet chooses actions based on planning. For humans, such a process is easy to do. For machines, not so much.
If you’re looking for something more modular and user-friendly, try Keras. Written in Python, Keras can be used together with TensorFlow and Microsoft Cognitive Toolkit. The core data structure of Keras is a model – a sequence or graph of modules. As described, Keras allows for the easy configuration of existing modules to create new models. As an example of the modularity of Keras, you can see how quick it is to build a simple neural network with TensorFlow here.
Natural Language Processing
While a computer can understand what individual words may mean, we don’t communicate with each other in singular words. Slang, innuendo and sarcasm all fly over the heads of computers. With thousands of years of training behind us, we can easily understand the emotions in words, the values they convey and the context that they are used in. Even within the English language, different countries have different versions of English. Grammatically, Singapore English – Singlish – is different from standard UK English. Colour has the same meaning as color. As humans, you and I are able to account for these differences so that be it in the US, UK or Singapore, we can understand each other’s English. Machines on the other hand, not so much.
Unfortunately, reading between the lines is an important skill for an AI system to have especially if we need them to do tasks such as language translation. With the ever-growing availability of chatbots and virtual human agents, natural language processing is an important field to develop. Like with machine learning frameworks and neural networks, there are open source natural language processing systems available.
While the uses of machine learning frameworks and neural networks are for general uses, natural language processing systems are designed to accomplish only one task. Written in Python, the Natural Language Toolkit, or NLTK, is one system. NLTK has a word and text tokenizer, n-gram and collocations, part-of-speech tagger, tree model and shallow parsing of text and named entity recognition.
Another tool similar to NLTK is the Stanford CoreNLP. Just like NLTK, CoreNLP has many of the same capabilities such as tokenization and part-of-speech tagger. Unlike NLTK, since CoreNLP was originally written in Java, CoreNLP works faster and supports multiple coding languages due to the use of wrappers. Due to its constant maintenance, CoreNLP is more suited to production-ready environments.
Are there other open source AI projects available?
Absolutely. AI is a massive field and machine learning frameworks, neural networks and natural language processing are just some of the subfields. IBM has open sourced its Fabric for Deep Learning (FfDL). Facebook has released Deep Focus, the system used to render realistic focus effects for virtual reality. Amazon has released Neo AI, a system used to speed up the time and effort needed to tune machine learning models. These are just some of the different types of open source Artificial Intelligence systems that are available in the wild.
Commercially, machine learning, neural networks and natural language processing are the major areas in which our lives are the most affected. When we ask Siri a question or request a Google Translation, we are taking advantage of these three areas to get our answer.
Just like ordinary software, the future of AI systems is moving towards making them open source. The complexity and the challenges are such that, no one system or coding language can dominate the ecosystem. One day, we will get to a stage where machines match our intelligence. For now, we’ll just have to train them using these open source AI projects.