We at EisenVault have been exploring Machine Learning of late. We have some features in the works – more about that in a later post. All this exploration has led us to some useful resources for learning and practicing machine learning concepts. This article talks about these resources, hoping that readers will find it useful in their own quest for Artificial Intelligence.
Most machine learning work today is done using Python as the main programming language. This is the language of choice at Google and is known for its parallel processing capabilities. There are a large number of libraries that simplify otherwise complex coding tasks to just a couple of lines of code.
If you have little or no coding experience, the below course is a good gentle starting point: https://www.coursera.org/specializations/python However this focuses more on the basics of coding, rather than machine learning concepts.
If you have experience coding in other languages (or just want a refresher on python) the below course from Google is pretty good: https://developers.google.com/edu/python/ This is the course that new coders who join Google have to complete internally.
Learning the Concepts & Practice of Machine Learning
Stanford University’s Freemium Course on Coursera: The below course by Andrew Ng is the industry standard introduction to Machine Learning. www.coursera.org/learn/machine-learning/
This is a great course for anyone who is looking to get started with machine learning algorithms. The course is taught with Octave which is one of the best tools for prototyping machine learning algorithms. The teacher explains the fundamentals well and its solid programming exercises complement the theory giving you the opportunity to see the theory in live implementation.
However, the course approaches machine learning more from a mathematical/engineering standpoint, whereas in the business world, machine learning has a statistical perspective as well which is not covered in this course. Overall, the course offers a great introduction for prototyping machine learning algorithms and is more suitable for experienced programmers and people who like algebra.
Udemy’s: “Machine Learning A-Z™: Hands-On Python & R In Data Science” This course is one of the highest rated courses on Udemy with over 100,000 student enrolments. We find that the course is pretty exhaustive in its scope. Unlike most machine learning courses, you only need some high school mathematics to get started with it as you learn the advanced mathematical concepts along the way. The course teaches machine learning concepts with real word data and also provides you with downloadable coding templates which make it easier to learn the syntax.
However, as the course teaches you both Python and R simultaneously. In order to pass the course, you have to become adept at both Python and R. This is not good news for students who only wish to learn one language and earn a certificate. Despite the fact the course is easy to follow along with, beginners to programming may face certain problems as the course gives no introduction to the elementary syntax of the two languages even though the course is also targeted towards those who have no experience with programming.
Overall, We would still highly recommend this course to anyone wishing to learn Data Science as its pros far outweigh its cons.
Practical Deep Learning For Coders: http://course.fast.ai This is a free course (using YouTube for hosting lecture videos) run by one of the leading names in AI – Jeremy Howard. This is a code intensive course and assumes you know Python and are comfortable with managing virtual machines (in Linux). It is a great way to get your hands dirty and write some real machine learning code. But you do need access to GPUs that are capable of handling deep learning tasks – such as the ones provided by AWS or Microsoft Azure (covered below).
Other Great Tools
Microsoft Azure’s GPU Enabled Virtual Machines (N Series) See this link for details on various kinds of virtual machines offered by Microsoft Azure and their pricing: https://azure.microsoft.com/en-in/pricing/details/virtual-machines/series/
Currently Azure offers N Series VMs in some limited data centers (US Mainly). These use NVidia GPUs and are capable of running CUDA based libraries like TensorFlow or Theano (on Keras). These are pretty expensive – INR 44,000 per month upwards. But very useful for quickly executing machine learning code (especially if you are using the fast.ai course mentioned above).
This article details how to setup the Azure VMs for deep learning: https://medium.com/@abhikprince/setting-up-an-azure-vm-for-deep-learning-bb76b453272b
Google Cloud Vision Google’s Vision API (https://cloud.google.com/vision/) has a pretty useful and inexpensive API. It does fairly accurate image categorisation and OCR. It is pretty quick too.
What is next for us?
We are looking at building our own Deep Learning capable servers that we wish to host on-premises, given the cost of cloud GPUs and the data sensitivity issues around using public APIs. Will write more about this when the servers are ready.
In the meanwhile, please do comment on this post with your own favourite tools and websites that have helped you in exploring Machine Learning.