Skip to main content

Machine Learning: Black Magic to Science : A gentle introduction to Machine Learning




What is it all about?
Machine learning is a method of data analysis that automates analytical model building. Using algorithms that iteratively learn from data, machine learning allows computers to find hidden insights without being explicitly programmed where to look. Essentially, it is a method of teaching computers to make and improve predictions based on some data.
Artificial intelligence is a state of machine when it can take decisions just like a human. The hypothesis is basic, machines take information and ‘learn’ for themselves. Machine learning is a subset of AI.


In the previous decade, machine learning has given us self-driving automobiles, common-sense discourse acknowledgment, and an enhanced comprehension of the human genome. Machine learning is so unavoidable today that you most likely utilize it many times each day without knowing it.
This blog has been divided into three parts written by me, Shivansh Beoharand Shashwat Srivastava respectively:
  1. The Road Most Taken
  2. Matlab vs Python
  3. Project and Implementation

1. The Road Most Taken
So here you are, eager to get into this fascinating world. Before taking a step forward, lets make one thing clear. Machine Learning is not some black magic that the media portrays it to be, it’s just plain old mathematics (but very elegant). Given below are the steps which most people take, but feel free to forge your own path!
  1. Choose Programming Language: There is a wide variety of languages you can choose from like Matlab, Java, C++, Scala etc. You can also look into python3. It is a beginner friendly language with a great community to support it. It also contains great libraries for scientific computation like scipy, numpy, pandas etc. R also seems to be a very good choice. Whichever language you choose, try to get a firm grasp over it first.
  2. Basics Maths Knowledge: As it has been stated earlier, maths is one of the cornerstones of Machine Learning. Therefore it is very important to know the core concepts of Linear Algebra, Calculus and Probability & Statistics. Learning these concepts doesn’t mean you have to acquire a god level command over them. Just be aware of them at a practical level. That is all Machine Learning asks of you.
  3. Learn the Necessary Libraries: While it is possible to write ML algorithms from scratch, it possesses some problems. First, it will not be as efficient as a heavily engineered library for the same task (say, matrix multiplication), second, it will be very time consuming to make such a library! So the best way is to learn the libraries specialised for data analysis. Taking python as an example, try to learn numpy, pandas and matplotlib (or seaborn). These three libraries will give you the power to write ML algos efficiently by, quickly organising datasets, using vectorised implementations of matrix operations and then displaying them in a satisfying plot. If you have followed so far…great! It’s time to get into core Machine learning.
  4. Choose a Machine Learning Course: Best places to start learning would be MOOCs offered by Coursera, edX or Udacity. The safest path would be to take the legendary Machine Learning course by Andrew Ng but feel free to diverge. Udacity also offers a great course by Peter Norvig and Sebastian Thrun called Intro to Artificial Intelligence.
  5. Choose a Deep Learning Course: Deep Learning is a subset of Machine Learning and it is one of the driving force for the resurgence of A.I in the present days. It is here that you’ll deal with Neural Networks, Natural Language Processing and all the other hot topics that you hear today! For DL two MOOCs outshine others and it is up to you which one you prefer. If you want a rigorous theoretical (yet enjoyable) experience go with courses by deeplearning.ai or if you are more into practical application (a more, learn as you code) experience go with courses by fast.ai or take both!


2. Matlab Vs Python

Well there is no “best language” for machine learning. Machine Learning is math, if you are well-versed with the concepts you can sail with ease in any language. Although these two languages have their own strengths and weaknesses, for learning purpose it really doesn’t matter much.



Advantages of MATLAB:
  • Pre-installed packages: No hassles of installing additional packages as in python.
  • Standard tool for teaching: Some major universities uses Matlab as the programming language for teaching. Even Andrew Ng’s course as mentioned above uses Matlab/Octave for teaching.
  • Extensive toolkit: If you are a research scholar, Matlab is the better programming language as it contains all the required toolkit for an avid learner.
Disadvantages of MATLAB:
  • Expensive: It requires the user to buy a licence, which may be an additional expenditure for students.
  • Steep learning curve: It lacks open source atmosphere, cross-conversion of code in Matlab is difficult and requires deep knowledge of Matlab for solving errors
Advantages of Python:
  • Extensive libraries: Python has one of the best support libraries, all of them are open source. It provides large standard libraries that include the areas like string operations, Internet, web service tools, operating system interfaces and protocols. These libraries make it easy to write compact codes for large operations.
  • Large user-base: It is used everywhere, if you learn python for ML, you will be learning a language which can be used elsewhere too and vice versa.
  • Strong integration support: You can directly call functions through C, C++, Java etc.
  • IPython notebook: It makes a nice interactive data analysis tool which is heavily used in tutorials and presentation.
Disadvantages of Python:
  • Slow in speed: Python runs on an interpreter, which is slower than compiler based languages like C, But that is unless you don’t call in C functions.
  • Lacks mobile support: There are not many mobile application in Python and that is due to lack of mobile libraries in python, its an unexplored area for Python.

3. Projects and Implementation
Just knowing lots of stuff and gathering knowledge from several different sources is not enough, if one wants to have proper grip on topic making projects is of utmost important.
So after choosing course,language and learning all the stuffs everything should not come to halt because we are having no idea of how to or from where to do projects.
The following are some beginner friendly projects that you can try!
1. Predict Stock Prices
First, you have many types of data that you can choose from. You can find prices, fundamentals, global macroeconomic indicators, volatility indices, etc… the list goes on and on.Second, the data can be very granular. You can easily get time series data by day (or even minute) for each company, which allows you tothink creatively about trading strategies.
Finally, the financial markets generally have short feedback cycles. Therefore, you can quickly validate your predictions on new data.
Some examples of beginner-friendly machine learning projects you could try include…
  • Quantitative value investing… Predict 6-month price movements based fundamental indicators from companies’ quarterly reports.
  • Forecasting… Build time series models, or even recurrent neural networks, on the delta between implied and actual volatility.
  • Statistical arbitrage… Find similar stocks based on their price movements and other factors and look for periods when their prices diverge.
Tutorials
Python: sklearn for Investing — YouTube video series on applying machine learning to investing.
R: Quantitative Trading with R — Detailed class notes for quantitative finance with R.
Data Sources
2. Teach a Neural Network to Read Handwriting
Whenever a person starts learning anything in AI usually the first idea that strikes is handwriting scanner/checker.


The MNIST Handwritten Digit Classification Challenge is the classic entry point. Image data is generally harder to work with than “flat” relational data. The MNIST data is beginner-friendly and is small enough to fit on one computer.Handwriting recognition will challenge you, but it doesn’t need high computational http://power.To start, we recommend with the first chapter in the tutorial below. It will teach you how to build a neural network from scratch that solves the MNIST challenge with high accuracy.
Tutorial
Neural Networks and Deep Learning (Online Book) — Chapter 1 walks through how to write a neural network from scratch in Python to classify digits from MNIST. The author also gives a very good explanation of the intuition behind neural networks.
Data Sources
  • MNIST — MNIST is a modified subset of two datasets collected by the U.S. National Institute of Standards and Technology. It contains 70,000 labeled images of handwritten digits.
3. Gesture keyboard




It is gesture keyboard which uses ML algorithm and arduino with some of its modules( you should have basic idea of how to use arduino-uno ).
The Gesture Keyboard is a gadget that makes an interpretation of signals into letters. It’s made by an Arduino Pro Micro, a HC-06 module for bluetooth comunication and a MPU-6050 accelerometer. It sends the information to a PC that, with a Machine Learning calculation, makes an interpretation of the movement readings into characters. The library itself is composed in Python and utilizations the Scikit-learn library for the SVM calculation. This is a decent venture additionally for learners and can be acknowledged with an Arduino like uno, nano, micro and mega.
link: Gesture Keyboard using ML & Arduino
(*Here is a course on udemy which you can allude to on the off chance that you need a greater amount of assets to manage ventures identified with machine learning Projects in machine learning : beginner to professional : Link)

Conclusion
In the end we would like to conclude by saying that this, by no means is this the definitive entry point to ML. Like any field of study you can approach it in your own way. However, we do hope this blog has shed some light into the world of machine learning by giving you a rough road-map ahead.
Thank you and have a happy time learning!

Source : https://medium.com/nybles/introduction-to-machine-learning-bbe8d555da67
Author : Vishal Pani

Comments

Popular posts from this blog

What is Blockchain Technology?

A  Blockchain , initially  Block chain , is a developing rundown of records called blocks, which are connected utilizing cryptography. Blockchains which are decipherable by people in general are broadly utilized by cryptocurencies. Private blockchains have been proposed for business utilize. Here, is a short story which will make you comfortable with the  Blockchain Technology . Mario and Luigi Mario needs to send $100 to his brother, Luigi, because Luigi being Luigi, he got into some debts at the other end of the world. Mario walks into the bank and says “I’d like to send $100 to Luigi”. The Cashier says “Account card please”, “ID please”, ”signature” and “done”. In this centralized situation, the bank is the *central* expert over Mario's and Luigi's cash. Both Mario and Luigi trust the bank to exchange the sum, and trust the numbers appeared on their bank account statements. They trust the bank in-spite of the way that all the bank needs to do is change

Android Livedata and MutableLiveData

Open Event Android   Android Livedata and MutableLiveData December 14, 2018 Problem Suppose that we need to perform actions in light of changes in lifecycle status of Android Component. Some of the time you may wanna observe certain qualities being changed over the setup change. We all faced these problems somewhere down the road, trying a lot of different patterns MVP, MVVM, and others. But to implement these patterns is also a big problem for beginners. Solution The good news is that with the Android Architecture Component and more precisely with the lifecycle LiveData and ViewModel , we can easily overcome these problems. LiveData LiveData is an observable data holder. It is also a lifecycle aware. By lifecycle aware I mean, it can only be observed in the context of a lifecycle, more precisely in the context of an Activity or Fragment lifecycle. By passing the reference of an Activity or Fragment , it can understand whether

Why use Snackbar instead of Toasts?

Open Event Android   Why use Snackbar instead of Toasts? January 14, 2019 Problem Toasts are kind of deprecated as any user who has disabled notifications for an app won't be able to see toast as well. The Open Event Android App was using toast for displaying information. So the task is to completely remove toasts and use snackbar instead. Solution Why Snackbar? Snackbars provide lightweight feedback about an operation. They show a brief message at the bottom of the screen on mobile and lower left on larger devices. Snackbars appear above all other elements on screen and only one can be displayed at a time.They automatically disappear after a timeout or after user interaction elsewhere on the screen, particularly after interactions that summon a new surface or activity. Snackbars can be swiped off screen. The Difference Snackbar Contain a single line of text directly related to the operation performed. They may contain a text action,