Showing posts with label machine learning. Show all posts
Showing posts with label machine learning. Show all posts

Thursday, March 07, 2013

Generative models vs Conditional models

When to choose one model strategy against the other:

  • Computational speed: Conditional or Discriminative models need to observe all data to be optimally trained. So they fit poorly as far as computational efficiency is concerned. Usually Generative models learn each data instance in isolation, so they run faster.
  • Complex business domain where Classes are inter-dependent: Since Conditional models observe all data they learn inter-dependency of Classes. Here Conditional models fit better.
  • Evolving business domain where new Classes appear: Since each model is trained in isolation, Generative models fit better. In Discriminative models the whole system needs to get retrained.
  • Missing data: Generative models consider relationship among variables equally, so in the case of missing data they degrade gracefully. Conditional models must be trained for the missing data.
  • Corrupt data: Generative models can detect corrupt data and user can accordingly take corrective measures. Conditional models perform poorly.
  • Quality of Inference: Better and quality algorithms like EM of Generative models outperform likes of Gradient descent of Conditional models.
  • Feature selection: Conditional models ignore the features which don't contribute to the end result. Generative models can't distinguish between useful and useless features.
  • Computational resources: As Conditional models are highly specialized and focus on specific features, they are better at resource utilization.
  • Dealing with Test data: Since Testing is all about evaluating conditional likelihood, it is intuitive to realize that Conditional models fit better as they would have already optimized better on Training data.
However, these two approaches can be mixed based on various needs.

Friday, January 18, 2013

The "regular" program is just a subset of overfitted hypothesis

In our "regular" programming scene the programmer knows all combinations of input/output and the program is "deterministic". If the programmer forgets about a combination, it leads to a bug. :)

If the input/output dataset is known exhaustively and is free of noise then this learner overfits/memorizes all instances. This can be seen as "deterministic" use-cases, which I mentioned above. In other words if you think like a tester and are aware of all input/output instances then you don't need to write code explicitly.

Of course, I am not talking about the efficiency of such an outcome here. ;)

Friday, January 11, 2013

Opinions and Judgement

In machine learning terminology,
opinions = {hypotheses}.
judgement = Hypothesis which overfits the given dataset.

Before you accept the above hypothesis please grind it in your personal Bayes machine.

;)

Thursday, November 08, 2012

One of the best basic Machine Learning MOOC

Watch out for this course on Coursera. This is one of the best introductory courses on Machine Learning I have ever come across.

https://www.coursera.org/course/machlearning

Tuesday, July 03, 2012

Online learning vs Batch learning

Any machine learning application should eventually be really open to online learning strategy. Once they have learnt enough with offline batch learning strategies and ready to be used, then they should be reconfigured to switch to online approach.