exploring area

Category: ai

ML Course finished

Yesterday night I finished Stanford’s Machile Learning Course. The last two lessons did not include any coding exercise, but the Photo OCR lesson was invaluable: the description of a real problem with the introduction of the pipeline, an engineering concept uncommon in academic world, was a surprise. Also, the cost related questions in the test were fairly basic, but useful to understand how research decisions modify research costs.


Finally, to Prof. Ng: a big thanks from Barcelona. It was great to go back to university and to find such a wonderful teacher.

About the needed time to follow a university course

One of the big advantages of being in a distance learning course is time management becomes much easier. The big hassle of assisting to a physical class is having to follow teacher’s schedule and his teaching speed. This synchronous learning disappears completely with distance learning: not only I’m free to assists to the class at whatever time of the day I like, also I’m the one setting the pace to the course. I am the one who can ignore theoretical lessons to go directly to the exercises or programming assignments.

This is extremely important if the pupil has previous experience. It is a torture for a pupil to go through a class in which he already knows the content (because of previous classes or professional experience) and the current educational system is not flexible enough to allow pupils to pass courses without being formally evaluated.

And as well as some pupils need a fast track procedure that allows them to reduce the time needed to get a degree, the university needs a defined model for pupils interested in a slower pace because personal or professional issues, so why do universities need to schedule classes around semesters?

Greenspun has some opinions about all of this and I agree with some of them. The current university model is old and does not make sense any longer, but more importantly  the current model is as teacher centred as it was in XI century and it should change to be pupil centred.


The first half of the course is over

We finished the first part of the Stanford ml-class course. Other than the backpropagation programming exercise, the rest have been easy enough for the people with the right programming/algebra skills.

The most interesting part comes next. I never studied SVM in my university years so it will be a new area for me. I expect this will help me to understand how easy is the course for people without previous machine learning skills. I’ll keep you updated.

Also the big news is Stanford has anounced new courses for 2012:

I really like the diversity of the courses (from soft skills like enterpreneurship to math like game theory, including a course about human computer interfaces).

I would like to sign up for the Software Engineering course, but I’ll need to find some extra time for it.


First video lessons finished

I have finished the first two lectures: Introduction and Linear regression with one variable. From the academic side it has been easy. I already learnt it in my Artificial Intelligence courses in the UAB (based on S. Russell i P. Norvig with some additional content) and surprisingly I remember a lot of it.

What really surprised me ware the buttons in the video player to speed up the video to x1.2 or x1.5. When I first discovered it I though it was crazy to speed up a training video, but after trying it I discovered I can follow the class at x1.2 without any problem, and I will start with x1.5 shortly.

I’m even staring to think it helps me to be more focused on the lesson.


The Machine Learning Stanford course

I have started the Machine Learning course provided by Stanford engineering. I’ll be posting my experiences in this blog in the following weeks. I have decided to enrol in this course because of three reasons:

During my university years I was really into AI, and at that time Machine Learning was not as present as it is today (we did a great neural network course, and of course Bayes and decision trees) but the curricula was centred around classic AI, so this is a good opportunity to learn new techniques and have a good time.

Secondly, this will be my first academic non classroom based course. I’ve gone through different corporate distance learning, but never a university course and I’m highly interested in checking how it works.

Finally, I want to see how university courses work in the states. During my university years we (students and teachers) used to think our computing courses were not as good as the ones taught in the American universities. I want to see if we were right.

So, expect during the following weeks to start reading about my experiences. And if some one from Barcelona wants to meet to do some exercises, please send me an email.

Getting into Prolog, again

I’ve been getting into with Prolog lately. I had not programmed prolog since university but I wanted to play with expert systems, and Prolog was even better than lisp for prototyping.

So, because all the Prolog papers I was reviewing were referencing Programming in Prolog by W. F. Clocksin and C. S. Mellish I bought an older (and cheap) edition to re-read. I was surprised how good the book is for learning to program in Prolog.

You can use the wonderful Learn Prolog Now! as a free introduction text, but Clocksin and Mellish chapters on grammar rules, debugging and laying out programs makes the book priceless.

And if you want to use prolog for ‘practical matters’ I strongly recommend Jan Wielemaker Ph. D. disertation: Logic programming for knowledge-intensive interactive applications. You’ll find a good overview about using Prolog outside the logic course: Web, multi-threaded, RDFs, literate programming, interfacing with object-oriented systems and interfacing with C for creating data storages.

Finally, If you come from the functional programming world, download Scrap Your Boilerplate—Prologically! a Prolog version of the Scrap Your Boilerplate set of papers. It is a great addition for learning Prolog if your background is functional.

Finding communities in social networks

Lately, I’ve been interested in how social networks may help software to identify common user traits so the application adapts to users’ need.

Software should be able to apply per user customization properties between common members of users’ groups. These communities should be discovered by the application using existing relationships among the users. The relationship should be an integral part of the application, set by the users (via internal application messaging, internal address book, subscription to mailing lists/interest groups…) or the application administrators (hierarchical definitions, ACLs…). From the set of communities the application should extract  customization properties and recommend the common ones to the rest of the community.

Two documents have been useful:

  1. Social networks that matter: Twitter under the microscope
    is an introductory paper about choosing the right metric for identifying communities in Twitter, but easily applicable to other social networks.  Conclusion for Twitter: Number of followers is not a good metric, @friends are.

  2. Discovering Communities in Linear Time: a Physics Approach is a much more interesting paper. It proposes using Kirchhoff’s laws to find communities in linear time (without the need of edge cutting). The algorithm has some drawbacks (Usha Nandini Raghavan, Reka Albert, Soundar Kumara propose an alternative), but the approach is interesting because allows to identify communities without identifying hierarchical structures.

For more social network papers, HP Labs has an interesting set of them.

Oh! I also work for an HP company, but I have no relationship to the HP Labs papers.

Qitab is the first ITA project

As a follow up of my previous post:

Qitab is the final name of the project ITA will use to publish its lisp code.

The first project in Qitab is POIU a replacement for ASDF that will compile each of your ASDF systems in parallel.

Also, ITA published XCVB, a compillation tool for SBCL. Zach wrote a post about it in May.

ITA Software will release code

ITA Software, Inc, will start distributing code the the Free Software world. They created a project in site to start adding projects during 2009.

ITA is known in lisp world for being a proud user of lisp in software development world, and contributing to existing lisp projects (from SBCL to slime). They’re also vocal about lisp use in today’s most complex problems (low fare search engine is one of their business) so they’re widely respected.

They will be publishing generally purpose libraries and utilities. No Airline Industry code will be published.

Additional information will be found in the devel and announce mailing lists.

Update: ITA has changed the project name, more information in the following post.

Tabbloid: Print your RSS feeds to paper

Boingboing feed in PDF

From the always great The Next Web I discovered a nice, simple and straightforward tool (no registering required) to transform a set of rss into a pdf for paper reading: Tabbloid from HP.

I find this technology incredibly interesting: not only because I created something like that some years ago to compose Pubmed information for doctors and discovered how hard can be to develop a pagination system, but also because automatic pagination was one of the fields were AI technology was useful.

After a quick trial with boingboing‘s feed some issues should be addressed by HP:

  • Resulting pdfs are huge. It seems they’re strategy for images is not optimized.
  • The resulting design is not as attractive as I expected: bullet points are horrible, some hanging chapter headers and the two columns format is not the most aesthetically presentation around

But anyway, it is a good start and I hope they improve the paginating algorithm (the core of the application) shortly. Also, it seems a good solution for people who commute using mass transport without a laptop/iPhone.

Oh!! As you probably know I currently work with HP, but I’m in no way related to Tabloid’s team.

© 2018

Theme by Anders NorenUp ↑