Posted on
research machine learning

  

The structured support vector machine (SVM) is a popular approach to learn the parameters of a structured output model. While various minimization procedures exist to solve the resulting optimization problem, in practice these solvers converge rather slowly. Our recent work at ICML 2013 (joint with Simon Lacoste-Julien, Martin Jaggi and Mark Schmidt) introduces a novel online learning algorithm, the block-coordinate Frank-Wolfe (BCFW) algorithm. It has favorable convergence rates, both in theory and practice. This blog post highlights a few key points of the BCFW algorithm and gives pointers on how to use the Matlab source code in your own project.

Read more Leave a comment


Posted on
website programming grunt jekyll

This website is powered by jekyll, an excellent static website generator. While I like jekyll quite a bit, I found my workflow for generating and minifying the stylesheets quite suboptimal. So far I used a Rakefile for automating these tasks, which I recently replaced in favor of Grunt. This blog post describes my setup.

Read more Leave a comment


Posted on
latex research PhD thesis

  

It's an important step in most graduate students' life: starting to write up the PhD thesis. This article shares a few best practices that I found helpful when I faced that task last year. The tips here might also be helpful for young graduate students, as the thesis writeup is eventually greatly simplified if early on in your career you for example already settle on a naming convention for citations.

I pushed the sources of my thesis to github, removing most of the content and replacing it with placeholders. Feel free to base your thesis writeup on this code.

Read more Leave a comment


Posted on
programming research matlab cluster ETH Zurich

We all know it, Matlab is not the cleanest programming language, yet many of us use it. Probably mostly because Matlab is quite efficient when it comes to prototyping new ideas. Once you convinced yourself that your new idea is working, you normally would like to submit your work to a scientific conference or a journal. But for this you probably need to perform some more extensive experiments. In machine learning you might have to average over different seeds or choose the regularization weight via cross-validation. Running the algorithm for all the different configurations might become quite time consuming. Wouldn't it be great if you could use a cluster for this? This post documents my best practices to run matlab scripts on a cluster and documents a set of scripts, called matluster, that I have developed to simplify this task.

Read more Leave a comment


Posted on
programming research git

I believe it substantially simplifies many aspects of your PhD studies and your research if you organize your files and folders in a smart way. The setup that I'm going to document is probably most useful for Computer Science, and especially Machine Learning, but should also be relevant for related fields. One should also note that there is definitely no ultimate solution to the problem.

Read more Leave a comment


Posted on
programming website jekyll

I migrated this website to Jekyll. I quite like the jekyll approach, simple but effective. For CSS and javascript I use the excellent bootstrap.

Read more Leave a comment


Posted on
programming matlab research

I have found the following script useful for dealing with options in Matlab scripts.

Read more Leave a comment


Posted on
education ETH Zurich

Course summaries I have written as an undergraduate student at ETH Zurich. They were reasonably popular with other students in the following years. Most summaries are in German and they might contain erros. I do not plan to update them.

Read more Leave a comment