Machine Learning Programs are far simpler than Computer Graphics Programming

Currently, I am preparing an Analytics course, which includes the following content 

  • Analysis/Synthesis Thinking Model 
  • Pragmatic Statistics
  • Machine Learning and it's associated Lingo
  • Software tools, platforms and vendors
  • Case Studies from different domains

 

While "researching" for the material for Machine Learning, I was bit disturbed by the fact that, whichever machine learning topic I approach through R or scikit-learn, it reduces to some statistical method,which I have come across in the past. I skimmed through all the books I am having on the subject, Searched Web, downloaded course materials and so on, the saga was the same. 
I took a step back and began to look at the topic without the "framing" which people subject you to like "Machine learning is domain of Stat/Math grads from Ivy league colleges","You cannot become a Data Scientist, if you are a Programmer","Machine Learning....uhhh.......you need to be math geek","How come a programmer become a Machine Learning expert?" etc. The epiphany I have had was at it's core Machine Learning is intermediate stat and mathematics, which most of us have learned, if we have had a 10+2 education. 
Now, my thesis is 

  • You can use Machine Learning tools, if you know 10th standard math/stat
  • You can write Tools,if you have got 11th standard math maturity
  • If you have got 12the standard math competance, you can modify standard algorithms

Only place where you require heady math is to invent new algorithms or prove the mathematical basis of your algorithm. As an engineer, you can ignore it. That is to become a researcher, you need to have understanding of Mathematics, or more specifically Mathematical Statistics. Andrew Ng's course on Machine Learning is catering to ML researchers and to do Machine learning at the workplace, that is the worst course one can take. I know lot of guys, who have undergone the ordeal of Andrew's course and feels incompetent when it comes to Machine Learning. Things like Partial Derivaties, Gradient Ascent/Descent, Linear Combinations etc., gives nightmare to most programmers.
A functional approach towards machine learning through GNU R, scikit-learn, Apache Mahout/Spark Mlib etc. is a pragmatic way to get into the subject of Machine Learning. Once you play with lots of data and these tools, you will have enough competence to understand some of t he hairy math behind these algorithms. Refer to Mathematical literature only after you have familiarized with your Lingo. 
A List of some Machine Learning and their underlying principles are given below

  • Rule Based Classification - A Data Set with known Out parameter + If/else logic
  • Decision Tree Induction - Splitting the Data Set based on Attributes until you reach so called pure nodes, where all the records do have the same target parameter
  • Linear Regression - an  Algebraic  formula in the case of Single Linear Regression and Basic Matrix Math operations for Multiple Linear Regression
  • Naive Bayes - Elementary Conditional Probability and Notion of Independence. We all learn it during our intermediate studies
  • Logistic Regression - Elementary Probability/Odds calculation and exponential/logarithms
  • Clustering - Notion of Metric/distance computation. Centroids, and Hierarchical Decomposition 
  • Apriori/Frequent Patterns - Sub set computation,Correlation and Frequency Analysis
  • Recommendation - Some familiarity with Eigen Value Matrix Decomposition and a cursory familiarity with Singular Value Decomposition (NumPy/SciPy can help you here)
  • Dimenstionality Reduction - EVD and SVD
  • Nueral Networks - Linear Combination,Error Minimization, Feedback loop, Iterative methods,Activation functions, some ideas about Decision trees and graphs.

I have studied Computer Graphics Programming extensively in my younger days and the math I encountered there is enough to have deep understanding of these topics. Even then, It took me lot of time to understand that Machine Learning is far simpler than that, if you step back a bit. The outside "pressure" keeps us not being sane. 
All of these tools can be classified into 

  • Hilbert Space Methods ( Most Metric based Algorithm falls into this category)
  • Statistical Methods 
  • Deep Learning ( Nueral Networks)

The personal path which I have undertaken was "topsy-turvey", as I thought Machine Learning is a difficult subject. I was "framed" into believing so by the people who induced me into the subject. IMHO, I can teach above stuff in a week's time, if you and I are inside a room for that amount of time. Of course, we need to apply these model to gain deep expertise. Familiarity with data and tools are the key ingredients of your success.
I call the above method, "Josh Kaufman" method  (Twenty Hour Method) and most people suggest a "Malcom Gladwell" (10,000 hr)  method.  Think about it. Contact me, if you want more details.

Padmanabhan Krishnaswamy

An aspiring violinist working in IT industry

5 年

Nicely written.

回复
Joshua Jeyaseelan Albert

Solution Architect at QBrainX

8 年

I personally not into MT, but i appreciate your writing skills and language used, on top of technical things. Good to see fellow Indian writes at this high level (both technical and writings).

回复
Padmanabhan Krishnaswamy

An aspiring violinist working in IT industry

8 年

next level of incompetence?

回复
Ashok Vishnu

Senior Technical Architect | Enterprise Architect | TOGAF Certified | Cloud Solutions Expert | Performance Optimization Specialist

8 年

Great post Praseed, I do miss our chats.

回复

要查看或添加评论,请登录

Praseed Pai K.T.的更多文章

  • How Russel arrived at Barber Paradox?

    How Russel arrived at Barber Paradox?

    (This was published in the blog, "Analysis Leads to Paralysis" in the year 2013) I was explaining Barber paradox to a…

    5 条评论
  • Encumbrance in Object Oriented Design

    Encumbrance in Object Oriented Design

    (This was Posted in my Blog, "Analysis leads to Paralysis" in the year 2010) Encumbrance is a legal term which has been…

  • I think, Claude Shannon was dead right.!

    I think, Claude Shannon was dead right.!

    (This is a slightly modified version of an article which I wrote in my blog, "Analysis Leads to Paralysis", in the…

    1 条评论
  • Check whether a number is Fibonacci number or not?

    Check whether a number is Fibonacci number or not?

    Sunday, May 25, 2014 (This was a Blog Entry Published in the Year 2014 in "Analysis leads to Paralysis") I just happen…

  • Why Indian Philosophy is "superior" to modern Western Philosophy?

    Why Indian Philosophy is "superior" to modern Western Philosophy?

    The Celebrated French Philosopher, Rene Descartes, is allegedly the father of Modern Western Philosophy by saying, the…

  • Joseph Goebbels and Software Design!

    Joseph Goebbels and Software Design!

    (The following text was published as a Blog entry in "Analysis Leads To Paralysis", a Blog which I used to write…

    1 条评论
  • An Instance of a Logical Fallacy

    An Instance of a Logical Fallacy

    I collaborate with different individuals on multiple disciplines. Often, I propose my collaborators to venture into…

    1 条评论
  • Do you posses the temperament of a "Software Architect"?

    Do you posses the temperament of a "Software Architect"?

    Being a person who has got exposure to "mundane" Business Application development to Computer Aided Design (CAD)…

    6 条评论
  • Do you want to learn about Compiler Construction. that too very Fast?

    Do you want to learn about Compiler Construction. that too very Fast?

    When I started my computer programming career, back in the year circa 1993, I chanced upon a book written by Allen…

    4 条评论
  • Prime Obsession of the World?

    Prime Obsession of the World?

    Over a period of time , I have observed a curious phenomena, which I have also been a victim. It is search for an…

    11 条评论

社区洞察

其他会员也浏览了