# Open Projects and Theses

On this webpage, we collect concepts for BSc/MSc projects or theses, but this list is typically incomplete, since we always have new ideas as time goes by and we do not always update the website right away. If you are interested in any of the projects listed here or other projects related to automated machine learning and deep neural networks, please get in touch with us.
In order to make the selection process of students and topics as effective as possible, we ask potential candidates for projects/theses to send an email to aad-staff@cs.uni-freiburg.de with the following information:

1) Are you a BSc or MSc student? Which term?

2) Which ML-related courses did you take?

3) Which topic was most interesting to you?

4) Can you please attach your transcript of records?

5) Which programming languages are you proficient in?

6) Do you like theory? Or rather solving a concrete problem? Or in between?

7) Which projects have you done so far (in Freiburg and elsewhere)?

8) Which of the topics listed below is the most interesting for you?

If you have questions about a specific project you can also contact the person(s) in charge of the project.

Most of the projects listed here can, in principle, be tackled in a BSc or MSc project or thesis (or even a project followed by a thesis). We encourage doing MSc projects in a group (>2 students). We also strongly recommend doing a MSc project with our group before inquiring about a MSc thesis.

## Joint Architecture and Hyperparameter Search for Deep Neural Networks

Deep learning has celebrated many successes, establishing new state-of-the-art performance in many important domains (e.g., image recognition and speech recognition). However, applying it in practice can be challenging because it requires many crucial design decisions, such as choosing a neural network architecture and its hyperparameters. Recent advances in Automated Machine Learning (AutoML) have led to automated tools that can compete with machine learning experts on supervised learning tasks. However, current AutoML tools do not yet support modern neural networks effectively. One step towards efficient AutoML for Deep Learning is our new Auto-Net tool, which is the main focus of the following possible projects.

### Integration of New Techniques into Auto-Net

So far, Auto-Net only supports fully-connected feed-forward neural networks, but many other possible connectivity patterns are possible, such as ResNets, HighwayNets, or DenseNets. Likewise, Auto-Net includes several optimizers, but does not yet include stochastic gradient descent with warm restarts (SGDR) and the snapshot ensembles this enables. In terms of regularization, Auto-Net includes batch dropout and normalization, but not yet weight normalization and shake-shake regularization. All of these methods have benefits and drawbacks, and it has not yet been studied well which combinations yield good performance. The goal of this project is to extend Auto-Net to support these features and automatically optimize across in the joint space of all their hyperparameters, to find the best combinations for each dataset at hand. (Reading up on and programming these features will also provide you with a solid grounding in the recent deep neural network literature.)

** Requirements **

- Some hands-on experience in deep learning
- [preferable] Practical experience in applying these designs to data sets
- Basic knowledge of hyperparameter optimization
- Strong Python programming skills

** Literature **

- Deep Learning Book
- Towards Automatically-Tuned Neural Networks
- SGDR: Stochastic Gradient Descent with Warm Restarts
- Shake-shake regularization

**Contact:** Marius Lindauer and Frank Hutter

### Extending Auto-Net for Image Classification

An automatically optimized fully-connected feed-forward neural networks (as in Auto-Net) is a nice first step, but for image classification (and many other tasks), convolutional neural networks (ConvNets) yield the best performance. ConvNets add some more classes of layers to the DNN design space, i.e., convolutional layers and pooling layers, which add new constraint hyperparameters to the design space of a DNN. The goal of this project is to extend Auto-Net with a focus on image classification, e.g., adding convolutions.

** Requirements **

- Basics in image classification with ConvNets
- [preferable] Practical experience with ConvNets
- Basics in hyperparameter optimization
- Strong Python programming skills

** Literature **

**Contact:** Marius Lindauer and Frank Hutter

## Deep Reinforcement Learning for learning programs

Deep reinforcement learning is arguably the hottest topic in machine learning, and this set of projects will explore its use for learning and improving programs.

### Improving Deep RL methods for architecture search

This is a core methods project.

** Requirements **

- Solid knowledge of reinforcement learning
- Good knowledge of deep learning and recurrent neural networks
- Strong Python programming skills

** Literature **

**Contact:** Aaron Klein, Stefan Falkner,
Frank Hutter and Joschka BĂ¶decker

### Learning to Design RNA

Applying Deep RL to RNA design.

** Requirements **

- Good understanding of reinforcement learning
- Good understanding of bioinformatics
- Strong Python programming skills

** Literature ** RNA design

** Contact **
Stefan Falkner (concerning the domain; see the contacts for the methods part above)

### Learning to Design Heuristics for SAT Solvers

Applying Deep RL to Heuristic Design.

** Requirements **

- Good understanding of reinforcement learning
- Good understanding of SAT
- Strong Python programming skills

** Literature ** RL for SAT Solvers

** Contact ** Marius Lindauer (concerning the domain; see the contacts for the methods part above)

## BrainLinks-BrainTools Projects

Decoding EEG data is a challenging task and has recently been approached with deep learning. All of the following projects aim to improve an existing decoding pipeline by applying recent state-of-the-art techniques.

** Requirements **

- Understanding of neural networks
- Strong Python programming skills
- Understanding of EEG (optional, but beneficial)

** Literature **

- Paper describing the current approach this project builds on: Deep learning with convolutional neural networks for brain mapping and decoding of movement-related information from the human EEG
- Deep Learning Book

### Recurrent neural networks for decoding motor control data

Currently, our pipeline uses feedforward networks, which naturally do not capture information over time. As EEG data can be considered as a time series, a promising extension is to use recurrent neural networks instead.

### Architecture Search

The current pipeline has been handcrafted and strongly builds on domain expert knowledge. This project aims at exploiting hyperparameter search to automatically design well performing decoders and with that supports and accelerate research.

### Data Augmentation for EEG data

EEG data to train a model is usually scarce as one recording contains less than 1000 samples. One way to overcome this limitation is to do data augmentation by applying transformations to the training data and make the resulting model invariant to these transformations. Well performing transformations, such as rotation and rescaling are known to improve generalization performance for image classification, but for EEG data it is not clear which transformations will work. In this project you will create and evaluate possible transformations for EEG data.

** Contact ** Robin Schirrmeister and Katharina Eggensperger

## Algorithm Configuration

The performance of many algorithms depends on their parameter settings which have to be adjusted based on the set of input instances at hand. For example, the parameters of AI planners have to be changed based on the planning task at hand. Unfortunately, manual parameter tuning is a tedious and error-prone task. Therefore, automated algorithm configuration tools (e.g., our state-of-the-art tool SMAC) can help users by automatically optimizing the parameters of their algorithms.

### SMAC with Bayesian Neural Networks

Our algorithm configuration (AC) tool SMAC currently uses random forests as its internal model to predict the performance of an algorithm on a given instance. Recent advances indicate that Bayesian Neural Networks (BNNs) could be an alternative to random forests worthwhile to investigate in this context as they can handle large amounts of data and dimensions while providing probability estimates. This project will focus on using BNNs for simple AC tasks and evaluate their benefits.

** Requirements **

- Basics in algorithm configuration
- Basic understanding of neural networks
- Strong Python programming skills

** Literature **

- Sequential Model-Based Optimization for General Algorithm Configuration
- Bayesian optimization with robust Bayesian neural networks

** Contact ** Katharina Eggensperger

### SMAC with Unbounded Configuration Spaces

Besides the above mentioned challenge of specifying all constraints in a configuration space, another challenge is to define reasonable bounds for each parameter (e.g, parameter X has to be between 12 and 1847); sometimes even the developers of the algorithm at hand do not know such bounds. However, users have some intuition about these ranges (i.e., prior knowledge) which can be used to guide the search of SMAC. The goal of this project is to add a support of prior knowledge to SMAC.

** Requirements **

- Basics in algorithm configuration
- Strong Python programming skills
- [preferable] you have your own algorithm you want to optimize and it can be used as a running-example in the course of the project

** Literature **

- Sequential Model-Based Optimization for General Algorithm Configuration
- Unbounded Bayesian Optimization via Regularization
- Making a Science of Model Search: Hyperparameter Optimization in Hundreds of Dimensions for Vision Architectures

** Contact ** Marius Lindauer

## Data Mining

### Meta-learning across datasets

When presented with a new classification problem, a key challenge is to identify a classifier and hyperparameter settings that obtain good predictive performance. This problem is known as the Combined Algorithm Selection and Hyperparameter optimization (CASH) problem. Since many classifiers exist, all containing a number of parameters that potentially influence predictive performance, this is a challenging problem. Performing a cross-validation evaluation procedure on all possible combinations of classifiers and parameters (e.g., using a grid search) is typically infeasible and suboptimal. The field of meta-learning attempts to solve this by learning from prior examples. Typically, a set of classifiers is recommended based on the performance on similar datasets. A very successful recent development is Successive Halving, a strategy that tests many algorithms in a fast setting (e.g., on a small amount of data) and by increasing the data, successively removes the less performing algorithms. This project studies how recent meta-learning techniques can be used to improve this strategy.

** Requirements **

- Machine Learning
- Solid programming skills (any language)

** Literature **

- Auto-sklearn paper
- Hyperband paper
- Meta-learning book (available in the lab)

** Contact ** Jan van Rijn and Aaron Klein

### ART Trees: Approximate Ranking Trees

Meta-learning is the field of research that attempts to learn what kind of Machine Learning algorithms work well on what data. A common problem is the Algorithm Selection Problem: given a dataset, which algorithm and hyperparameter settings should be used to model the dataset? One very promising algorithm that has been developed recently builds so-called Approximate Ranking Trees. It uses the Spearman Correlation Coefficient to split the individual trees. Although this algorithm performs very well in practise, the effectiveness of the Spearman Correlation Coefficient is open for debate. In this project, the task is to design an alternative algorithm for constructing Approximate Ranking Trees, and improve upon the current state of the art.

** Requirements **

- Basics in Statistics and Machine Learning
- Strong programming skills (any language)

** Literature ** Pairwise meta-rules for better meta-learning-based algorithm ranking

** Contact ** Jan van Rijn

### Learning Parameter Importance across datasets

Meta-learning is the field of research that attempts to learn what kind of Machine Learning algorithms work well on what data. A common problem is the Algorithm Selection Problem: given a dataset and algorithm, which hyperparameter settings should be used to model the dataset? An obvious follow up question is, which parameters are actually important to optimize. For this several techniques are introduced, for example, fANOVA, Ablation Analysis and Forward Selection. However, all of these techniques work on a single dataset and algorithm combination, giving us mostly information about already modelled datasets, instead of learning something for future analysis. The aim of this project is to do meta-learning on this data: translate the knowledge about parameter importance on historic datasets towards information that can be used on yet unseen datasets.

** Requirements **

- Basics in Machine Learning
- Strong programming skills (any language)

** Literature **

** Contact ** Jan van Rijn

### Mythbusting Data Mining Urban Legends

Data mining researchers and practitioners often refer to many rules of thumb and urban legends such as: 'data preparation is more important than the modeling algorithm used' or 'non linear models typically perform better', however large scale experimental evidence is sometimes lacking. We will leverage OpenML, a repository with over 25000 data sets and close to 1.5 million experimental results to try and bust or prove some of these data mining urban myths.

** Requirements **

- Basics in Machine Learning
- Decent programming skills (any language)

** Literature **

** Contact ** Jan van Rijn

### Massively Collaborative Meta-learning

Meta-learning is the field of research that attempts to learn what kind of Machine Learning algorithms work well on what data. A common problem is the Algorithm Selection Problem: given a dataset, which algorithm and hyperparameter settings should be used to model the dataset? Currently, all meta-learning research is performed on a well constructed set of algorithms and datasets. However, this paradigm is suboptimal, as it makes strong assumptions about the prior knowledge of the users. In this project, we will use OpenML (an online experiment database) to do meta-learning on all datasets that it contains. This involves novel challenges, as the (meta-)data is very sparse and contains datasets from various domains.

** Requirements **

- Basics in Machine Learning
- Strong python programming skills

** Literature **

- Toward a Justification of Meta-learning: Is the No Free Lunch Theorem a Show-stopper?
- OpenML: networked science in machine learning

** Contact ** Jan van Rijn