Monday, March 25, 2013

Tapping into the “folk knowledge” needed to advance machine learning applications


Tapping into the “folk knowledge” needed to 
advance machine learning applications

Pedro Domingos

Howdy!
             I am going to briefly summarize and express my opinion on the above mentioned article.

             In this article, the author talks about Machine Learning and gives a simplified overview of the field. He introduces the topic of machine learning, talks about different ways it can be achieved and discusses various related issues.

              Machine Learning algorithms automatically figure extract knowledge from the input data. It learns different rules to distinguish between the different data and acts as a classifier when new data is presented to it. Learning in machine learning algorithms is a combination of representation, evaluation and optimization. The classifier has to be represented in a formal language that the computer can handle. This decided what kind of hypotheses the learner can learn, The set of hypotheses that the learner can learn is called hypothesis space. An evaluation function or an objective function is used to distinguish between good and bad classifiers. The optimization process is used to find the classifier with the optimal efficiency. 

             Generalization is the main goal of machine learning algorithms. The "goodness" of a machine learning algorithm depends on how well the classifier obtained can classify new input instances. Using a lot of data or a lot of features can induce noise and result in a bad classifier. When the example data cannot cover all the different variety in the total data, it may produce a bad classifier. This problem is known as overfitting. Bias is a learner's tendency to learn the same wrong thing consistently. Variance is the tendency of the learner to learn random things irrespective of the correct signal. 


Figure 1


Our intuition that works pretty well in a 3- D world may not work at all in high dimensions. Sometimes, data fed to a machine learner has a lot of dimensions and so it is hard to design algorithms for machine learners. There are some theoretical guarantees about machine learning algorithms but they are probabilistic guarantees. A lot of feature engineering goes into machine learning projects and it cannot be automated. So the actual learning part may take a very short time compared to the time that goes into the preprocessing stages. Recently, the focus has shifted from using just one machine learning algorithm to many. Different algorithms are weighted differently and the results are combined based on those weights to get the final output. This results in a very good classifier.

The knowledge presented in the paper about machine learning is very useful. It explains the basics of machine learning in a very lucid manner. Machine learning seems to be the next big thing in the world of computing. 

I used the following sources for this blog post:
[1] Magazine. Communications of the ACM CACM Homepage archive. Volume 55 Issue 10, October 2012. Pages 78-87. ACM New York, NY, USA

Thanks for reading my blog! Have a great and blessed day!

Gig'em!!!



Tuesday, March 19, 2013

Sketch Based Interfaces: Early Processing for Sketch Understanding


Sketch Based Interfaces: Early Processing for Sketch Understanding


Howdy!
            In this blog post, I am going to shortly summarize the above mentioned research paper and express my opinion on it. 

           In the paper, the authors propose a hybrid way to combine knowledge from different areas to recognize a sketch and give the user as much flexibility in drawing as is available while drawing with a pencil and a paper. The process consists of 3 steps: approximation, beautification, and basic recognition. 

         Approximation consists of detecting corners (or vertices) and curves segments of the gesture. For the input gesture, direction graph, curvature graph and speed graph are constructed. For the curvature graph, all the maxima points above the mean value are collected into a set Fd. For the speed graph, all the minima points below 90% of the mean are collected into a set Fs. 
Curvature graph

Speed graph


Now, an iterative algorithm is used to select points from both the sets that have a high confidence value of being a vertex (corner). Once that is done, curve segments are detected using another algorithm. 

Beautification is rendering of the drawing as intended by the user but in a more presentable way. Here is an example from the paper:
Beautification example


Recognition of basic shapes is done using some simple pre- defined rules and procedures. 

The system performs very well and most of the users in the user- study said that they would prefer to use this system to the other ones available at the time.

I find the hybrid approach very interesting. It combines the data available during the gesture making stage with the data available at the end. This can be very useful in drawing sketches in the mechanical and civil engineering domain.

I used the following sources for this blog post:

Thanks for reading my blog! Have a great and blessed day!

Gig'em!!!


Protractor: A Fast and Accurate Gesture Recognizer

Protractor: A Fast and Accurate Gesture Recognizer

Yang Li 
Google Research 
1600 Amphitheatre Parkway 
Mountain View, CA 94043 
yangli@acm.org

Howdy! 
            This blog post is a short summary of the above mentioned paper. It also contains my views on the Protractor system proposed in this paper.

            Protractor is a gesture recognizer that can be easily implemented and customized for different users. It is very fast and the customization doesn't take a very long time either. Protractor uses the idea of nearest neighbors based on the cosine similarity between two gestures.


           The users can create their own gestures and provide samples for them. When the user makes a gesture, that gesture is compared with stored templates and for each stored template, a cosine similarity score is calculated using the following formula:


Due to some orientation adjustment done in the pre- processing step, there is some noise introduced. To overcome this, the input gesture is rotated by an angle as follows:



and 'a' is the dot- product of 'vt' and 'vg'. 

The Protractor system performs almost as good as the $1- algorithm but when the number of distinct gestures increases, the performance of Protractor is less affected than that of $1- algorithm. 

In my opinion, Protractor serves as a very good tool to recognize gestures for systems that are intended for personal use in the sense that every user has their own system. It is very easy to add custom gestures, something that users would prefer to having a fixed set of gestures. 

I used the following sources for this blog post:
[1] Proceeding CHI '10 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. Pages 2169-2172. ACM New York, NY, USA ©2010

Thanks for reading my blog! Have a great and blessed day!

Gig'em!!!