Starting out in Machine Learning
My motivations, experiences and future plans for a machine learning education.
At the end of my 2018 sabbatical I made a commitment to continue my exploration of new technologies and so late last year I began my machine learning education.
Keen to understand more about this field and it’s potential I was quickly overwhelmed in detail. Machine learning is a very broad topic and it was quite daunting to know where to begin. Do you start with the maths or the code ? Do I need a PhD ?
After a false start, there were three things I learned : Don’t try and learn this fast, start with some good learning material and practice, practice, practice. These are fairly obvious but in my eagerness to progress I lost sight of these study principles.
Artificial Intelligence is everywhere and companies are betting their operating model on it. AI will enrich our lives whilst taking our jobs, it’s the hottest topouric in business and there is already a shortage of skills.
I felt it was time to get a better technical understanding of this field starting with Machine Learning.
Kai-Fu Lee author of AI Superpowers describes the current moment as “the age of implementation”, where the technology starts “spilling out of the lab and into the world.”
Finding the right level of Machine Learning information was difficult, there was either the high level documents which overlay generalised Machine Learning or a detailed explanations which result in a lot of mathematics, long equations and Machine Learning concepts that are hard to understand in isolation.
Why did I want to learn about Machine Learning ?
- I have always had a strong desire for continuous learning and I saw Machine Learning as a new challenge and opportunity for growth.
- To use Machine Learning as a tool that can augment human capabilities, translating theory into practice to solve real problems.
Machine Learning, Data Science and Deep Learning with Python, Udemy
Machine Learning in Python (Data Science and Deep Learning)
New! Updated for Winter 2019 with extra content on feature engineering, regularization techniques, and tuning neural…
I started with this course because I’ve had taken Frank Kane’s courses before and I liked the practical approach. His experience with Amazon and IMDB provides real-world examples where Machine Learning can be applied.
The course doesn’t have academic, deeply mathematical coverage of Machine Learning algorithms, the focus is on a broad practical understanding and it’s the application.
This course will teach you techniques to select and clean your data, supervised and unsupervised Machine Learning algorithms, how to evaluate metrics, deep learning and neural networks.
The course does provide an overview of Python, which was enough, but non-coders should consider a Python course before this. Frank covers almost all topics of which you need to be aware of before diving deep into this field.
Applied Data Science with Python Specialisation, The University of Michigan
Applied Data Science with Python | Coursera
The 5 courses in this University of Michigan specialization introduce learners to data science through the python…
As I was new to Python I took this course to tailor my Python skills towards data science. There are a few Python specialisations but this one drew my attention because it wasn’t tied to a particular platform (IBM/Google/AWS).
This is a five course specialisation that focus on the programming rather than the theory or mathematics.
The course taught me data manipulation and data cleaning techniques, plotting and data representation. Machine Learning, Natural Language processing and social network, graph theory with Python libraries scikit-learn, Natural Language Toolkit (NLTK) and NetworkX.
Each course builds on the other and you will be building on the techniques as you progress though the series. The assignments are peer graded giving you different perspectives on how people approach the same problem.
Machine Learning, Stanford University
Machine Learning | Coursera
Machine learning is the science of getting computers to act without being explicitly programmed. In the past decade…
My motivation for this course was to understand what’s under the hood of Machine Learning and the intuition behind the algorithms. This course is often cited as one of the best introductions on the theory and concepts behind Machine Learning.
It covers supervised learning, unsupervised learning, deep networks and the best practice without overwhelming you with the underlying mathematics.
You don’t need in-depth knowledge of linear algebra or calculus to complete the course, but if you want to study the mathematics this course will provide the foundations for further training.
The programming assignments are done in Octave or Matlab and whilst it would have been better in Python, it was very satisfying to code an actual algorithm and see it work. This level of detail helps you to better understand Python Machine Learning libraries like scikit-learn.
There is a very good community around this course. The forums provide detailed explanations for many of the problems you will encounter and it was the perfect complement to the more practical courses I took.
Do you need mathematics ?
As I was starting out on Machine Learning, my goal was to learn enough mathematics to understand and code the algorithms. I took the approach to learn mathematics on demand, first familiarising myself with the algorithms, then studying the mathematics behind them and finally translating the algorithms to code.
I ended up with an understanding of basic linear algebra and basic calculus and a good balance of theory and practice.
If mathematics is a challenge, start by learning Linear Regression and Logistic Regression algorithms. These will introduce you to the cost/loss function and gradient descent and provide a foundation for other algorithms.
One good tip was to work out the algorithms in Excel, this helped me get over some of the more challenging concepts.
That said, mathematics is only one part of the overall application of Machine Learning, having been in industry for many years, I tend to agree that for practitioners the main prerequisite for Machine Learning is data analysis.
That’s where domain experience domain expertise trumps the mathematics. Being able to identify a problem, selecting objectives and metrics, gathering and cleaning the data forms the greater part of a Machine Learning application.
Initially coding the algorithms is frustrating but keep at it because it really helps reinforce the understanding. If you’re unfamiliar with Python I would recommend starting out with a course that covers pandas for data manipulation and analysis, numpy for multi-dimensional arrays and matrices and matplotlib for data visualisation.
This will give you the foundations to complete the courses mentioned above and start your Python Machine Learning journey.
What’s Next ?
Having acquired a good level of machine learning knowledge, I am continuing with the combined practical and theoretical approach across two new courses, expanding my knowledge into Deep learning.
Deep learning is an approach to machine learning based on artificial neural networks. More on these courses after completion.
Deep Learning by deeplearning.ai | Coursera
Learn Deep Learning from deeplearning.ai. If you want to break into Artificial intelligence (AI), this Specialization…
Having enjoyed Andrew Ng’s Machine Learning I felt confident enough to tackle the theory behind Deep Learning, Neural Networks, Convolutional neural networks, Sequence models and good advice on how to improve your models and structure your Deep Learning projects. The Machine Learning course proved to be a good foundation and I would recommend taking it first.
Fastai practical deep learning for Coders.
Practical Deep Learning for Coders, v3
Welcome! If you're new to all this deep learning stuff, then don't worry-we'll take you through it all step by step…
This course is helping to build my practical experience, focusing on coding the models that are in use today with the fastai Python libraries. It’s introducing me to Kaggle where I can take part in competitions to test my machine learning skills.
After two lessons I had written my own multi-class image classifier on AWS Sagemaker. There is a strong community to help with your challenges and critique your work.
This article was originally published on medium.