Skip to content

Instantly share code, notes, and snippets.

@karlnapf
Last active November 20, 2017 14:26
Show Gist options
  • Save karlnapf/b24fa3d69aafaa282806 to your computer and use it in GitHub Desktop.
Save karlnapf/b24fa3d69aafaa282806 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html>
<head>
<title>Shogun 4.0</title>
</head>
<body>
<p>
The Shogun team just released <a href="http://www.shogun-toolbox.org/new/41" target="_blank">version 4.0</a> of their community driven Machine Learning toolbox.
This release most of all features the work of our 8 <a href="https://www.google-melange.com/gsoc/homepage/google/gsoc2014" target="_blank">Google Summer of Code 2014</a> students, so this blog post is dedicated to them -- you guys rock.
This also brings an end to yet another very active year of Shogun:
we organised a <a href="http://herrstrathmann.de/9-uncategorised/118-shogun-workshop-2014.html" target="_blank">second workshop in Berlin</a>, and I presented Shogun in to the public in <a href="http://www.meetup.com/London-Machine-Learning-Meetup/events/175316522/" target="_blank">London</a>, <a href="http://herrstrathmann.de/shogun-blog/119-shogun-in-nyc.html" target="_blank">New York</a> and <a href="http://herrstrathmann.de/shogun-blog/117-shogun-at-europython-2014.html" target="_blank">Berlin</a>.
</p>
<p>
For the 4th time, Shogun participated in Google's wonderful program which more than anything boosted the team's size and motivation.
What else makes people spend sleepless nights hunting bugs for the sake of Machine Learning for everyone?
This year was the first time that I organised our participation.
This ranged from writing the application last second, harrassing potential mentors until they say 'yes', to making up overly ambitious projects to scare students away, and ending up mentoring too many students on my own.
Jokes aside, this was a very challenging (in particular time-wise) but also a very rewarding experience that definitely sharpened my project organisation skills.
As in the previous year, I tried to fuse my scientific life and Shogun's GSoC participation -- kernel methods and variational learning is something I touch on a daily basis at <a href="http://www.gatsby.ucl.ac.uk/" target="_blank">Gatsby</a>.
Many mentors were approached after having met them at scientific Machine Learning conferences, and being exposed to ML on for some years now, it is also easier to help students implement and write about popular ML algorithms.
<br>
Here is a list.
(Note that all projects come with really nice IPython notebooks -- something that we continued to insist on from last year.)
</p>
<p>
Fundamental ML algorithms by Parijat Mazumdar (parijat). Mentor: Fernando
Shogun needs more standard ML algorithms. Parijat implemented some of those: random forests, kernel density estimation and more.
Parijat's code quality is amazing and together with Fernando's superb mentoring skills (his first time mentoring), this project is likely to have been very sustainable.
<br>
<a href="http://www.shogun-toolbox.org/static/notebook/current/DecisionTrees.html" target="_blank">Notebook random forest</a>, <a href="http://www.shogun-toolbox.org/static/notebook/current/KernelDensity.html" target="_blank">notebook KDE</a>.
</p>
<p>
Kernel testing and feature selection by Rahul De (lambday). Mentor: <a href="http://www.stats.ox.ac.uk/~sejdinov/" target="_blank">Dino Sejdinovic</a>, <a href="http://herrstrathmann.de/" target="_blank">Heiko</a>
Previous year's student lambday continued to rock.
First, he massively extended my <a href="http://herrstrathmann.de/google-summer-of-code-blog" target="_blank">2012 project on kernel hypothesis testing</a> to Big Data land.
Dino, who was one of the invited speakers in the Shogun workshop last summer, and I are actually working on a journal article where we will use this code.
Second, he extended the framework to perform feature selection via dependence measures.
Third, he initiated and guided development of a framework for unifying <a href="https://github.com/shogun-toolbox/shogun/wiki/README_linalg" target="_blank">Shogun's linear algebra</a> operations.
This for example can be used to change existing algorithms from CPU to GPU with a compile switch -- useful also for our deep learning project.
</p>
<p>
Variational Inference for Gaussian Processes by Wu Lin (yorkerlin). Mentor: <a href="http://herrstrathmann.de/" target="_blank">Heiko</a>, <a href="http://www.cs.ubc.ca/~emtiyaz/" target="_blank">Emtiyaz Khan</a>
In our third GSoC project on GPs, Wu took a couple of state-of-the-art approximate variational inference methods developed by Emiyaz, and put them into Shogun's framework.
The result of this very involved and technical project is that we now have large-scale classification using GPs.
Emtiyaz also was a speaker at our <a href="http://herrstrathmann.de/9-uncategorised/118-shogun-workshop-2014.html" target="_blank">workshop</a>.
<br>
<a href="http://www.shogun-toolbox.org/static/notebook/current/variational_classifier.html" target="_blank">Notebook</a>
</p>
<p>
Shogun missionary by Saurabh. Mentor: <a href="http://herrstrathmann.de/" target="_blank">Heiko</a>
The idea of this project was to showcase Shogun's abilities -- sometimes we definitely need to work on.
Saurabh wrote a couple of Notebooks that are essentially ML tutorials using Shogun.
If you want to know about <a href="http://www.shogun-toolbox.org/static/notebook/current/Introduction.html" target="_blank">ML basics</a>, <a href="http://www.shogun-toolbox.org/static/notebook/current/Regression.html" target="_blank">regression</a>, classification, <a href="http://www.shogun-toolbox.org/static/notebook/current/xval_modelselection.html" target="_blank">model-selection</a>, <a href="http://www.shogun-toolbox.org/static/notebook/current/SupportVectorMachines.html" target="_blank">SVMs</a>, <a href="http://www.shogun-toolbox.org/static/notebook/current/multiclass_reduction.html" target="_blank">multiclass</a>, <a href="http://www.shogun-toolbox.org/static/notebook/current/MKL.html" target="_blank">multiple kernel learning</a> this was for you.
He also extended our web-demo framework to for example include <a href="http://demos.shogun-toolbox.org/regression/gp/" target="_blank">model-selection for GPs</a>.
</p>
<p>
OpenCV integration by Kislay. Mentor: Kevin
Kislay, after writing a very cool <a href="http://www.shogun-toolbox.org/static/notebook/current/pca_notebook.html" target="_blank">notebook on PCA</a> for his application, wrote data-structures to bridge between Shogun and OpenCV. The project was supervised by Kevin, who is also one of our former GSoC students
This makes it possible to use the too libraries together in a neat way.
See for example a <a href="http://www.shogun-toolbox.org/static/notebook/current/Sudoku_recognizer.html" target="_blank">notebook on recognising Sudokus</a>.
</p>
<p>
Deep learning by Khaled Nasr. Mentor: Theofanis, Sergey
The hype is on! After <a href="http://blog.mikiobraun.de/2013/12/mark-zuckerberg-nips.html" target="_blank">NIPS</a>, <a href="https://www.facebook.com/yann.lecun/posts/10151728212367143" target="_blank">Facebook</a>, <a href="http://deeplearning.net/2014/01/27/google-acquires-deep-mind/" target="_blank">GoogleDeepmind</a>, Shogun now also joined ;)
Khaled did a very good job in coding up the standard ones, and was involved in generalising Shogun's <a href="https://github.com/shogun-toolbox/shogun/wiki/README_linalg" target="_blank">linear algebra</a> on the fly with lambday.
This is a project that is likely to have a second part.
Check his superb notebooks on <a href="http://www.shogun-toolbox.org/static/notebook/current/neuralnets_digits.html" target="_blank">deep belief neural networks, convolutional networks</a>, <a href="http://www.shogun-toolbox.org/static/notebook/current/autoencoders.html" target="_blank">autoencoders</a>, <a href="http://www.shogun-toolbox.org/static/notebook/current/rbms_dbns.html" target="_blank">restricted Boltzman machines</a>
</p>
<p>
SO Learning with Approximate Inference by Jiaolong. Mentor: hushell, Thoralf
This was another project that was (co-)mentored by a former GSoC student.
With the help his mentors, Jialong implemented various approximate inference methods for structured output (SO) models.
Check out his <a href="http://www.shogun-toolbox.org/static/notebook/current/Binary_Denoising.html" target="_blank">notebook</a>.
</p>
<p>
Large-Scale Multi-Label Classification by Abinash. Mentor: Thoralf
Another project involving our structured output expert Thoralf as mentor.
Abinash implemented large-scale multilabel learning -- beating <a href="http://scikit-learn.org/stable/" target="_blank">scikit learn</a>'s implementation both in runtime and accuracy.
The last experiment is described in this <a href="http://www.shogun-toolbox.org/static/notebook/current/multilabel_structured_prediction.html" target="_blank">notebook</a>.
</p>
<p>
Finally, we sent two of our delegates (Thoralf and Fernando) to the 10th year jubilee mentor summit in California in late October.
Really cool: I got lucky and won Google's lottery on some extra places, so I could also join.
The summit once again was overly colourful, bursting with creative minds who have the most diverse set of opinions and approaches, but who are all united by their excitement about open-source.
The beauty of this community to me really lies in the people who do work purely driven by their interest on *the thing itself*, independent of competitive and in particular commercial interests -- sometimes almost to an extend that is beyond any form of compromise.
A wonderful illustration of this was when at the mentor summit, during the reception in the Tech museum in San Jose:
Google's speaker Patrick Pichette (don't quote me on this) who is the boss of Chris DiBona, who himself organises the GSoC, searched to inspire the audience to "think BIG" and to "change the lifes of GSoC students".
Guest speaker Linus Torvalds 10 minutes later then contemplates that he could not be a GSoC mentor as he would scare people away and that the best way to get involved in open-source is to "start small" -- a sentence after which XXX left the room.
Funny enough: in GSoC, this community is then hugged by a super capitalistic American internet company -- and gladly lets it happen: we all love GSoC and Shogun certainly would not be where it is without it.
I also want to mention the day Google rented a whole theme park for us nerds -- which made Fernando try a roller-coaster for the first time after being pushed by MLPack maintainer Ryan and myself. After being horrified at first, he even started to talk about C++ the second or third time.
</p>
<p>
As you would expect from attending such geeky meetings, Thoralf, Fernado, and I also spent quite some time hacking Shogun,
discussing ideas until late night (of course getting emotional about them :) ).
I managed to take a picture of Fernando falling asleep while hacking Shogun's modular interfaces.
Some of those ideas are collected on <a href="https://github.com/shogun-toolbox/shogun/wiki/GSoC-2014-results" target="_blank">our wiki</a>.
<ul>
<li>Improve usability</li>
<li>Making Shoun more modular and slim</li>
<li>Improving Shogun's efficiency</li>
</ul>
Some of those ideas are also part of our theme for our GSoC 2015 application and our <a href="https://github.com/shogun-toolbox/shogun/wiki/Roadmap-Shogun-2015-hack" target="_blank">planned Hackathon</a>.
We have come to a point where we seriously need to focus on application and stability rather than adding more and more cutting-edge algorithms -- Shogun's almost 15 year old framework needs a face lift.
GSoC students will see that this years project ideas will focus on cleaning up the toolbox and implement ML applications.
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment