Machine Learning For Developers
Machine Learning has definitely gone mainstream with almost all the major vendors announcing support for Machine Learning platforms, frameworks, libraries and how they have started to use it in their applications. This blog post highlights the key Machine Learning process and the spectrum of Machine Learning platforms that are available today for developers to get started.
The first thing that developers need to understand that Machine Learning techniques are very different from the traditional programming constructs that they use , while developing their applications. It is often remarked in a lighter vein that some vendors pass of multiple if, then, else statements are machine learning in their applications. The diagram shown below depicts a typical Machine Learning process.
The key things to understand in the above process are:
- The first stage is always the data preparation phase. Data could be coming in from various sources and in multiple formats. We need to get it refined and formatted in the way we want it to be analyzed. This could take multiple iterations.
- Once the data is prepared, we apply one or more machine learning algorithms. We use a percentage of the data to seed the candidate model and the rest of the data as test data. Usually one will go through multiple iterations of this process and it is perfectly possible to try out different algorithms and choose one that provides us results that we are satisfied with.
- This Candidate model is then deployed and which is used by Applications via an API to predict results.
The key point to take away from the above process is that the individual iterations around Data Preparation, Model building will keep on happening and we are never finished.
Developers often have the notion that it requires deep Computer Science knowledge to start using Machine Learning in their applications. While there is no substitute for having knowledge about Deep Learning techniques, the vendors are now providing a spectrum of services across Machine Learning so that you do not have to know all the details to employ it in your applications.
All the big vendors provide Machine Learning platforms that you can get started with today. They provide them as APIs (IBM Alchemy APIs, Google Cloud Vision API, Microsoft Oxford API) that you can employ in your applications today or even on-premise solutions where you can build out your own Machine Learning models (Google Tensorflow). The latter would be a case where you would absolutely need to know the details of how machine learning models are built, its algorithms and so on. While the former is just an API call to tap into the powerful machine learning models that they vendors have built in the cloud.
The value in software today is not in telling us what has happened but what is going to happen in the future. Organizations value that information and are expecting it now, given the amount of data that we are capturing on a daily basis. Machine Learning techniques are currently the way forward to achieve that and it is important that all developers begin to understand this and pick up techniques to employ it in their applications.