Friday 7/8:
By the end of the week it was graduation time from Tokyo Tech. It was a daylong seminar ending with a nice ceremony. Everyone presented their SOTSURON project that we had worked on true the whole year and it was actually quite interesting, at least when I understood half of it, which happened mostly in the computer related projects and not so often with the chemistry or biotechnology projects for example.
I had to present my own project also, which was scary enough, but I think it all went well. We were each given 10 minutes to present, and I had decided to make it simple and explain as simple as possible so that most people could understand. I will try and make a short summary here since I haven’t really written much about what I have been doing at school in this blog, feel free to skip it :P
Summary:
———————————————————————————————
First of all, I study Computer Science and the field of Artificial Intelligence. Not like in thinking and self-confidence robots like in science fiction, but like computers doing abstract reasoning and problem solving. This abstract reasoning and problem solving is captured using logical programming, which is a special category of programming languages.
Prolog is on of these languages, one of the first and still one of the most popular ones. Prolog works by creating a knowledge base of the world you are interested in, consisting of relations in that world, and then you run queries over these relations to ask questions about what you are interested in knowing.
Example:
Knowledge Base:
friendof(john,mary)
friendof(mary,pedro)
friendof(mary,tom)
friendof(pedro,tom)
likes(X,Y):-friendof(X,Y)
likes(X,Y):-friendof(X,Z),likes(Z,Y)
Query:
?- likes(john,tom)
Here we have four people.
friendof(john,mary), mean that john is friend of mary
likes(X,Y):-friendof(X,Y) mean that any person X that is friend of a person Y, also likes this person Y.
likes(X,Y):-friendof(X,Z),likes(Z,Y) mean that any person X that is friend of a person Z and that person Z has a person Y that he/she likes, then person X also likes this person Y.
The query asks if john likes tom, can you figure out what the answer must be?
So, now you know logical programming, good job, and now over to the main topic of my project, namely probabilistic logics. The aim of probabilistic logics is to combine logical reasoning (explained above) with probability theory.
It’s a bit generalizing to say for example, that you like all friends of your friends. You might like quite a few of them, since you probably have a similar taste in people, but liking all of them is unlikely. So lets add a probability to the rule, say it’s 70 % chance of you liking a friend of your friend.
You could write this like
0.7: likes(X,Y):-friendof(X,Z),likes(Z,Y)
And then there is a 100% chance of you liking your friend of course, friends are friends right?
1.0: likes(X,Y):-friendof(X,Y)
Also, maybe we are not sure if John is a friend of mary. Maybe we are only 50 % sure.
0.5: friendof(john,mary)
Adding the others…
0.9: friendof(mary,pedro)
1.0: friendof(mary,tom)
0.7: friendof(pedro,tom)
Now the query isn’t only about if john is a friend of tom, but also the probability that john is a friend of tom, knowing all we know. Can you figure it out? Probably not as fast as a computer can.
That’s what my lab in Tokyo Tech is working on, developing a probabilistic logic programming language, called PRISM, that can solve problems like this.
So over to what I was sett to work on in all this. The thing is, there are several probabilistic logics being developed at the time, so PRISM has competition, but also potential allies. One of those is a language called ProbLog. My task was to make a automatic translator from ProbLog to PRISM, to show that PRISM can do the same as ProbLog (just faster and better of course). So mostly syntactical work, and not very difficult, but I did learn a lot even so.
———————————————————————————————
I think I am gone stop here. No need to explain anymore in detail. The project was successful and the presentation went ok. Some of my lab friends, Kojiro and even Yuka showed up for it even though I had asked them not to (but I did give them the time and place after some pressuring so I can only blame my self), and I think I managed to learn people that usually don’t have much to do with programming a little bit about my field, so all in all a success. I do whis I had used more pictures on the slides tough.
PS: John like Tom