When you want to get started with machine learning, you might quickly find yourself overwhelmed with the sheer amount of different platforms out there that offer various services and possibilities.
In this article, I’ll introduce you to a few interesting (and free!) machine learning platforms for various applications so that you can quickly get started. Note that this is only a small selection of platforms, and the main purpose of the article is to give you an overview so that you can start doing your own research more effectively.
Types of Machine Learning
Before I start with the platform list, let’s take a quick look at what machine learning is. I recommend that you take a look at this article if you’re completely unfamiliar with the topic.
There are many different classifications and types of learning problems and techniques. However, the three most commonly used terms in this context are the three learning problems:
- Supervised Learning
- Unsupervised Learning
- Reinforcement Learning
Supervised learning tries to find a suitable output function by observing pairs of input data and expected output values. This method requires a large and good set of examples that can be used for the learning process, as well as a teacher that supervises the agent.
Unsupervised learning tries to find patterns in input data without the observation and reinforcement of a teacher.
With reinforcement learning, the agent learns by getting positive or negative feedback. Let’s suppose the agent is a self-driving car. A car accident, for example, can be massive negative feedback. However, it’s up to the agent to decide which actions prior to the feedback led to the result.
Besides these three forms, there are many more learning problems and techniques, for example, semi-supervised learning and inductive learning.
The TensorFlow platform was created by the Google Brain team and it is free to use and open-source. It bundles different machine-learning and deep-learning models to make it easy to get started.
TensorFlow provides a full Python API, as well as limited C support. It allows users to create dataflow graphs that describe how information moves through a graph. A graph is nothing more than a series of processing nodes in a neural network. The edges between those nodes are multidimensional data arrays, also called tensors in this context.
Tensorflow can use CPUs and GPUs for calculations, as well as dedicated TPUs, which I introduced in A Look at Edge Computing and AI HATs and Shields.
Because the project is open-source and maintained by Google, you can be sure to find a lot of information about it. However, the platform is said to be complicated to learn and to use.
Accord .NET is a machine learning framework that comes with audio and image processing libraries. It’s written in C# and can only be used in combination with other .NET languages. Besides deep learning and other classification applications, the framework can also be used for image and audio-detection and filtering, clustering, different types of regressions, and much more.
The installation process is simple, and the framework comes with a lot of different examples and good documentation to get you started quickly. You can also use it for commercial applications. However, one downside is that the framework only supports .NET languages, which includes Unity, a popular video game engine.
Now that we have Python, C, and .NET covered, it’s time to look at a framework that Java developers can use for machine learning. Eclipse DeepLearning4J (DL4J) is the first commercial-grade open-source deep-learning library written for Java.
It supports various forms of neural networks, and different CPUs and GPUs can be used for distributed calculations. However, it can also be used for various edge-computing applications.
The best thing about this platform, in my opinion, is the fantastic documentation. It’s incredibly accessible, especially for beginners, and it explains everything that you need to know to get started with AI in general and the framework itself.
Furthermore, this platform will assist users with filtering and organizing input data in a way that makes it usable with a neural network. These steps are also covered in the official documentation.
As the last overview, I want to quickly mention OpenML, which is not a machine learning platform on its own. However, it’s a community and database where you can share and acquire large data-sets and results of various experiments for your machine learning applications for free. You can read all about it in the project’s official documentation.
Tell Us What You Think!
What do you think of this list? Are there other free machine learning platforms you've had success with? Let us know in the comments below.