Do you have to be a "genius" to work on machine learning?
You may notice that the term "machine learning" has appeared more frequently on news in recent years. So what's it actually about? And do we have to be really talented to understand the idea or even implement it?
Why machine learning has become popular?
Roughly speaking, a machine learning algorithm is an algorithm that can learn from data. If we put it in a more formal way:
A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P ---- Mitchell (1997)
A computer cannot learn from nothing. We must feed the algorithm data so that it can find some patterns and learn from them. Where do most of the data come from? The answer is obvious ---- the Internet. We do everything on the Internet every day. We may buy a book on Amazon, we pay for bills using PayPal and we share fun stories with others on Steem. Machine learning has become more popular in the recent decades partly due to the advances in theoretical researches and computer infrastructure, and also partly because of the exponentially increased amounts of accessible data.
When data were scarce in the past, training a machine learning model and fine-tuning the parameters could be a hard job and seemed to be a game of experts only. But things are different now. We've got much more data and doing machine learning with millions of data are much easier.
(Image: http://innovation.wfp.org/blog/unlocking-artificial-intelligence-beat-hunger)
Why on earth should I learn this stuff?
Whether you know programming or not, or whether you are good at maths or not, should be reasons to stop you from getting exposed to machine learning and related ideas. For "getting exposed" to, I don't mean that you have to go through the finest technical details of the machine learning algorithms. What I want to express is that familiarizing yourself with machine learning basics does good to you and the society as a whole.
I'm not exaggerating the fact because most modern technologies that you are using are, to some extent, based on machine learning models. Contributing to the machine learning development (or more broadly, the AI community) does not mean that you have to do the programming or build some world-shocking models from scratch, giving constructive opinions is often a way to let the whole community know how and in what direction they can further improve. Having a high-level understanding of machine learning is sufficient for you to look at those frontier technology in a completely different perspective and you may even be able to voice out insightful ideas for the entire AI community to grow.
(Image: https://www.linkedin.com/pulse/future-mankind-artificial-intelligence-machine-learning-amitabh-sinha)
I'm interested in this field but I'm not a genius, am I really able to read those fancy maths?
That's often the thought that deters you from knowing more about machine learning. I heard of this term when I was in my high school and I related to something like robotics and hard programming stuff and I dared not to even start reading anything about it. I realized that I am completely WRONG when I started reading some books about this field. First, you DON'T need to be a genius (at least I'm not). From a high-level point of view, most machine learning models, including the so-called deep learning or artificial neural network models, are just models which iteratively update the parameters to minimize the prediction error based on the data used for "training" the model. This is just analogous to how we learn, isn't it? We learn from experience and correct our thoughts to minimize the chances that we make faults. Yet, with simple ideas backing up, the predictive power of modern learning models is unexpectedly awesome!
I'm serious in this but how should I start?
I'm not qualified as a machine learning expert and so I'm just sharing my experience of how I've learnt it from scratch.
Programming is necessary!
Programming is easy to learn nowadays, because of the many online learning platforms. If you do not have programming background, learning languages like C++ or Java can be a hard time for you. But learning Python and R will be much easier because of their simpler syntax. I was not used to programming a lot and I started to enroll in the courses on Udemy, an online education platform, to learn Python. In my opinion, courses by Jose Portilla are really great to learn the applications of machine learning in Python or R and the rates are very reasonable. Of course, if you don't want to pay, there are still lots of free resources online, like the machine learning courses taught by Dr Andrew Ng on Coursera.
Theory is important!
To me, theories are equally important as applications. It's meaningless if you build a model but understand nothing about it. I personally did go through classical textbooks and here are some of my recommendations:
Deep Learning by Ian Goodfellow, Yoshua Bengio and AAron Courville. I really love this book because of its thorough discussion in deep learning, from the history to the modern research areas. It also contains reviews of basic mathematics concept necessary to understand the materials in the book.
Elements of Statistical Learning by Trevor Hastie, Robert Tibshirani and Jerome Friedman. This book talks about various machine learning models and theories in an easily understandable way.
I believe reading the 2 books above can provide you with foundations of all the skeleton of modern machine learning models.
Start your own projects now!
In my opinion, the applications of machine learning are way under-explored. What's more notable is the health sector, where machine learning technologies can indeed help solve a lot medical issues but seem not to be very widely applied (at least in Asia but of course everyone has a different definition of "widely applied").
You do not need to develop world-shocking models. You can start small. Everyone must have some kind of projects in mind. Some may want to build a predictive model for gambling or trading in the stock market. Others may want to build a mini chatbot or do some translation work for your mother language. Think less and work on it! More importantly, share those great things to others. Don't be the one who will be fouled by the AI revolution, be the one who makes it happen.
I write articles on machine learning, applied statistics, maths and economics to the best of my knowledge. If you like my posts, please upvote, resteem and follow me @manfredcml!
如果喜歡小弟的文章,可以upvote, resteem或follow @manfredcml支持!
English articles 英語文章:
Be a smart gambler! #1 - Gambler's fallacy
Let's play a game #1 - Prisoner's Dilemma
Paradox is fun! #1 - Boy or Girl?
No solution! #1 - Prime numbers
Everyday Tech Series
Bilingual articles 雙語文章:
Welcome to the world of mahjong! 歡迎來到麻雀教室! #1
No solution! #2 - P vs NP Problem / 無解 #2 - P vs NP問題
Paradox is fun! #2 - Will you switch the door? 趣味悖論 #2 - 你會換另一道門嗎?
Join us on #steemSTEM
Thank you for this article, that we have advertised on our chat channel.
The steemSTEM project is a community-supported project aiming to increase the quality and the visibility of STEM (STEM is the acronym for Science, Technology, Engineering and Mathematics) articles on Steemit.
Thanks for your support! Will definitely contribute more STEM-related articles to the community
Thank your for your reply. I am interested in learning mechine learning also. It's nice to read your post.
Machine learning is really fun and there're always new things coming out! Hope you will find it interesting : )
Good post. I am slowly self-learning machine learning (I was not formally taught it) and programming (R, Python).
The O'Reilly books for R, Python and data science are good too.
I used to do a bunch of Datacamp courses but I think the cost is getting kinda steep for me. Books seem to be priced nearly the same as their $38/mth (CAD) plan.
I'm sure that you'll get lots of fun when studying machine learning. I have heard of the O'Reilly series on programming but haven't really read the books so can't give my comments. To me, watching videos to learn programming is more effective since the tutor will go through line by line to explain. Reading programming books makes you sleepy sometime. Youtube has lots of free good courses, especially those courses of MIT and Stanford.
Thanks for your sharing! I have read some of your articles and find them very useful for me as a beginner to learn about these statistical applications and theories. Please keep up and share!
Thanks for reading my posts! I always hope to share simple but beautiful facts to buddies who don't really have the technical background and please continue to support : )
I recently started to learn ML to satisfy my own curiosity (and also to understand what is going on behind something that is often used as a black box. I am following an online course from Caltech, by Prof. Y. Abu-Mostafa. And there is no surprise, as you said, trying it by ourself is the key to understanding ;)
Hope that you enjoy doing ML : ) Ya, there are plenty of great online courses. There is a course about machine learning offered by MIT, taught by Prof Patrick Winston, available on Youtube which is
I will have a look in the next months. I have not enough time to dedicate to one single course, so that I prefer avoiding following two simultaneously.
Thanks for the recommendation! :)
What a fantastic article brother!
I´m from Brazil, i don´t know NOTHING about programming, but i decided to study it from scratch, in order to be able, one day, to program my own artificial intelligence construct, some of the great guys that i respect in technology are all self-learners, like Bill Gates, Mark Zuckerberg, Steve Job and Vitalik Buterin, from Ethereum.
There is indeed nothing that can limit me how far i can go in this Age of Free Information for those that want it.
Thank you so much!