Sunday, November 25, 2007 11:03 AM
JeffB
Latest News
I have been away from the blog since school started. Life always gets more hectic. This quarter I am taking three course, compiler construction, pattern recognition and machine learning, and an AI class in animats.
The compiler course is the most demanding of the three because the projects are very time consuming, but very instructive. The textbook is
Modern Compiler Implementation in Java.
The project we are doing is building a compiler that translates a subset of the java langauge into MIPS assembly code. This is done in several phases or passes, from syntax and typechecking to building several forms of Intermediate Representations to performing register allocation and finally instruction selection. The subset includes inheritance and enough of the java features to make these projects challenging. I would recommend anyone to take a compiler course because a compiler is a large scale project and one of the more studied software problems. As such many areas of computer science come together in a compiler. In particular, register allocators use graph coloring algorithms and fix point calculations are used for things like liveness analysis.
The pattern recognition course is the most interesting. In todays world we have access to massive amounts of data on the internet and in database systems. Pattern recognition and machine learning are critical to mining this data for useful information. The course I am taking focuses on Vision in particular but most of the techniques are more broadly applicable. Some of the main topics that I hope to expand on more in my next article are Bayesian Decision Theory, different representations, and dimension reduction techniques from PCA, MDS, and Local Linear Embedding, to various discriminative techniques such as ADABoost and Fisher Linear Discriminant. I have to say that these topics resonate with me coming from a Physics background, originally. I appreaciate some of the mathematic concepts with these techniques, such as trying to find the intrinsic dimensionality of the data or concepts of manifolds. In addition we spend a lot of time dealing with entropy and other statistical concepts similar to what finds in Statistical Mechanics.
In my next article, I will delve into some of the specifics of the techniques listed above. I hope to detail the compiler construction in more detail and also to give more details on some of the Pattern recognition methodologies.