Wednesday, October 29, 2008

Sad

Well the exchange rate has continued rising, making me really regret trading when I did.

The next month is going to be extremely busy/stressful for me:
  • I will have a series of midterms over the next few weeks.
  • I have to send out grad school applications. This includes finalizing my list of schools, filling out applications, and writing numerous essays.
  • I am part of a team for the ACM programming competition. UBC has three teams (UBC^, UBC*, and UBC+). I am part of UBC* (UBC^ is the best team). There is a regional competition hosted by UBC on November 15th. We will have up to 10 hours of practice every week until the regionals. The world finals will be in Sweden in 2009.
  • I have two big papers due in Psychology and Philosophy.
  • All of my exams are packed in between December 3rd through 10th.
  • I have other commitments like my part time job as a TA, assignments, meetings, etc...
:'(

Saturday, October 18, 2008

Fail

Update

Since my last post about the exchange rate, the US to Canadian dollar rate has been skyrocketing upward. I exchanged money at exactly the wrong time. I won't feel too bad about it though since I had no choice but to exchange in order to pay for tuition. Luckily I only exchanged enough to pay for tuition and left the rest in US dollars. A few days ago I converted the rest of my money:
Hopefully this time the exchange rate won't significantly increase immediately after my trade. Predicting exchange rate fluctuations is frustratingly difficult.

In other news, there have been two separate incidents happen to my bike since it was almost stolen. A few weeks ago the bike was knocked over and the disc brake was severely bent (I had to replace the unit). Since the disc is a fairly solid piece of metal, it must have been deliberately stepped on in order to bend it. This morning I found that the mudguard had been stolen and the seat was also adjusted to a lower position (I am not quite sure why the thief would feel compelled to adjust the level of the seat).

Friday, October 10, 2008

Anathem and GEB

Earlier this week I ordered two books online. I received the books today in a surprisingly quick display of international delivery. Behold:
Neal Stephenson's Anathem and Douglas Hofstadter's Gödel, Escher, Bach: an Eternal Golden Braid. I have very high expectations for both books. I just flipped a coin (really!) and it looks like I will be reading Anathem first. Given the length/density of the books, it should take me quite a while to get through them.

Thursday, October 09, 2008

Smiley Value Decomposition

For an assignment in my machine learning course I performed principal components analysis (PCA) using singular value decomposition (SVD) on some smiley faces:
Reducing the dimensionality of a data matrix of smiley vectors allows us to visualize smiley face features in two dimensions. Yay!

Saturday, October 04, 2008

Exchange Rate

This is a graph of the U.S. dollar to Canadian dollar exchange rate for the last three months:
The red "X" is when I exchanged a lot of money. D'oh!

Friday, September 05, 2008

Somebody tried to steal my bike!

I found my bike tipped over this morning and there was a big cut made into my bike lock. I am glad I invested in a decent quality lock! Bike theft is a pretty big problem at UBC. The cut made it entirely through the outer plastic layer of the lock and partially through the metal interior. I think I will buy another (even more secure) lock since another theft attempt at the weakened part of the lock might make it all the through. There was never a theft attempt on my old bike during my last four years at UBC. This was probably due to the fact that I bought that bike for $20 (significantly cheaper than my current bike). However, some of the accessories were stolen from my old bike (cyclocomputer and portable bike pump). Some of my friends have had pieces of their bikes stolen (a wheel, a seat, etc) and at least four people I know had their entire bike stolen.

Saturday, August 30, 2008

GRE

I took the GRE this morning. It started with two writing sections. My essays weren't spectacular, but the topics were interesting so at least I had something to write about. The next section was the math section. I did really well on this and finished just barely on time. I switched the answer for my last question with less than 5 seconds to spare! Next was a verbal section which went about as well as could be expected (English is not one of my strong points). I thought that would be the end of the exam but was surprised when another math section started. My practice tests only had one math section so I was annoyed that the test wasn't finished. This second math section went terrible since by then I was getting tired. I was working way too slow and still had 7 questions remaining with only one minute left. I had to randomly guess for the last few questions. I was surprised to see in the end that my scores were 800 in math and 600 in English. I am really lucky that the second math section must not have been scored. Apparently they put in an extra unmarked experimental section. I will have to wait for the scores to be sent to me before I get the marks for the essays.

Tuesday, August 26, 2008

Internship Finished

I finished my internship at Microsoft last Friday. It has been a great summer. Almost every weekend there was some Microsoft event taking place. I took part in two puzzle events. One of them was non-stop for 36 hours and really well organized (our team came in third)! A few weeks ago I went cave exploring at Ape Cave Lava Tube near Mount St. Helens. Two days ago (my birthday) I saw Dark Knight at IMAX - incredible movie.

On August 30th I will be taking the GRE. I haven't done much studying for it yet, so I plan on studying for the next few days. Over the next semester I will start applying for grad schools. I have decided where I will be applying for six out of my nine applications:

- Carnegie Mellon
- MIT
- Stanford
- UBC
- Waterloo
- University of Toronto
- ?
- ?
- ?

The other three will most likely come from this list. I will be applying to AI programs. I am currently planning to focus on learning about pattern recognition. Since I eventually plan on doing industry research, hopefully I can get research internships over the next few summers.

Saturday, May 31, 2008

Summer

I have been working for Microsoft for almost a month now. So far it has been a great experience. The company has a ton of amazing benefits and it has been really interesting learning about their software development practices. I am working on a product called Office Live Workspace. There have been a lot of fun intern events such as a poker night, video games, movies, and a trip to the zoo. I have also attended a few research/tech talks on campus. We get all the free drinks we want here and also occasional free food (if you know where to look).

There are a lot of things to see and do around Seattle. A few weeks ago I went to the Pacific Science Center. I think its better than the one in Vancouver. I saw Speed Racer at IMAX. It was pretty dissapointing, but I wasn't too surprised based on its score at IMDB. Yesterday I went to see a Cirque Du Soleil show called Corteo. It was an excellent production, but I liked the Mystère show I saw in Las Vegas better.


I got a new bike earlier this month. There are supposed to be some really nice bike trails in this area, so I plan on exploring a few of them over the summer.

Here is a photo album I will be uploading pictures to over the summer.

Netflix Prize

One of my summer projects will be working on the Netflix prize. It is a competition to write a program to predict user ratings of movies. We are provided with a huge dataset of actual user ratings from the Netflix database. We are also provided with a test set of <user, movie> tuples for which we need to predict ratings. After submitting the predictions Netflix returns the root mean squared error (RMSE) for a subset of the test set. Netflix already has the actual ratings for the test set, which is how they score the predictions. The three submissions I have made so far have gotten the following RMSE:

1.0533
0.9992
0.9844

Netflix's own algorithm (Cinematch) gets a RMSE of 0.9525. In order to win the competition and get the one million dollar prize a team must have a submission with a RMSE below 0.8572. The best team currently has a score of 0.8643. The three submissions I have made so far just use basic statistics for the predictions. I have three main ideas on how to approach the problem - two of them involve clustering algorithms and one of them uses temporal neural networks.

Sunday, May 11, 2008

Temporal Patterns

I have finished implementing a neural network framework for detecting temporal patterns. I made a small demo of it using a single bit input. In theory the framework should scale well to much larger problems with many inputs. It is capable of detecting both spatial and temporal patterns and making predictions of what the next input will be. The framework can be used for a huge variety of applications and problems. I tried testing it for part-of-speech tagging but the results were disappointing. Due to the huge number of neurons/inputs I had to use, the network was taking several seconds to process each input. Since the network needs to be trained on huge corpora consisting of thousands of words, it would take a really long time before it can make accurate predictions. A good property of neural networks is that they are highly parrellelizable so that all of the neurons can be processing information at the same time. On a single CPU my computer processes information for one neuron at a time. Given the right hardware, neural networks can have a constant upper bound on computational time. This means that an arbitrary number of neurons/inputs could be added to the network without affecting the processing time.

Friday, May 09, 2008

First Publication!

A paper I have been working on about AIspace has been accepted for publication at the AAAI 2008 AI Education Colloquium. I will be headed to Chicago on July 13th!

Knoll, B., Kisyński, J., Carenini, G., Conati, C., Mackworth, A., Poole, D. 2008. AIspace: Interactive Tools for Learning Artificial Intelligence. In Proceedings of the AAAI 2008 AI Education Workshop. BibTeX

Friday, April 25, 2008

RoboCup Simulator

Here is a short video of what the simulator I made for the RoboCup soccer competition looks like:

[link]

The low quality video is due to the fact that I recorded my monitor using a digital camera. I tried a variety of screencast software (ffmpeg, vlc, xvidcap, istanbul, and vnc2swf) but none of them could capture at decent quality/framerate. I think its time to upgrade my computer (this one is now four years old).

In the video the red team has been assigned the "offensive" strategy and the blue team has been assigned the "dibs" strategy. I haven't implemented all of the RoboCup rules yet (e.g. the ball always gets reset to the center when it goes out of bounds). You can learn more about the AI by reading a report I wrote for one of my classes.

Thursday, February 28, 2008

Meet Jon Arbuckle

Apparently an unfunny comic strip can be made hilarious with some minor modifications. Above we see Garfield minus Garfield. The comic strips below are referred to as Realfield. Making a strip out of random Garfield panels can also lead to some amusing results.

Friday, February 22, 2008

Patterns

The universe is chaotic. Within the chaos there are patterns. These patterns are due to emergent properties of relatively simple rules underlying the unimaginably complex interactions of matter. Patterns can be found almost anywhere in nature, from the organization of stars and galaxies to the symmetry of ice crystals in a snowflake. This phenomenon is not unique to nature; incredibly complex patterns can be observed by applying very simple rules such as in the Mandelbrot set or in cellular automata. These emergent properties are also responsible for the origin of life on Earth and the evolution which guides it.

M74 Spiral Galaxy

Life is a striking example of the organization of matter. When suitable chemical and physical conditions arose in early Earth, organic compounds eventually organized themselves into a form allowing self-replication. Natural selection takes advantage of patterns in an organism's environment to gradually optimize its suitability for a particular environment. This process has lead to the huge variety and complexity of life forms seen today. The process of evolution has also created patterns within its creations, such as the fractals seen in Romanesco broccoli. Intelligent biological systems have evolved to actively recognize and exploit the patterns in their environment in order to gain an evolutionary advantage. Learning from the success of biological cognition may help in the pursuit of creating truly intelligent machines.

Aloe Polyphylla

A crucial step in designing an intelligent machine is understanding the fundamental ways in which patterns are organized in nature. The ability to accurately predict and complete patterns allows a system to act intelligently in its environment. In order to make predictions about patterns a machine needs to be capable of learning from past experiences and recognizing both spatial and temporal patterns. Almost all current neural network techniques are only capable of detecting spatial patterns and cannot detect patterns through time. The fact that the human brain is capable of intelligence provides proof that intelligence is possible given limited computational resources, giving hope that computational intelligence may be achieved in the near future.

Wednesday, February 20, 2008

Terror

This morning I woke up in an extremely unpleasant way. While I was still blissfully asleep I heard some scratching sounds coming from somewhere close to my head. I groggily opened my eyes to see a squirrel staring down at me from the windowsill directly above my bed. In horror I made some loud noises and quick movements with my arms in the squirrel's direction. This successfully got the squirrel to flee out of the window.