Minds Mastering Machines (m3) 2018 Recap

Over the last three days I visited the m3 conference in Cologne. m3 stands for Minds Mastering Machines and the core topics of this conference are machine learning and data science as a whole. The first day consisted of workshops while the next two days were filled with interesting talks about a whole variety of topics. There were very beginner-friendly introductions and some more advanced showcases. However I would say that this years program was geared towards beginners. I think that this was a good decision because the topic as a whole is very new and can be intimidating for people that are foreign to this field. I met a lot of people and most of them were visionary or progressive forces in their company that needed some arguments to get more time and funding to realise first machine learning projects. I would recommend everyone to visit the next m3 (there is also a version in London that takes place in October).

Sadly I could not see every talk since there were three parallel tracks. I will summarize the talks I saw in the upcoming chapters.

Day 1 - Workshop

On the first day I visited the workshop titled Machine Learning in the context of industry 4.0. It was held by two researches of the RWTH Aachen. They introduced the problems of using machine learning inside a production facility. A first big step is getting data about the existing processes. This is currently one of the biggest problems to tackle. A good and consistent data model from the shop floor to the ERP system is key for having a good data infrastructure. To realise this data modelling they introduced OCP UA. With OPC UA you can describe your machines down to the smallest part and it also supports inheritance. This is very powerful because you can reuse a lot of stuff. We had some time to play with a OCP UI modeling tool however the time ran out fairly quickly. It takes a lot of time to do a proper data modelling of your machines or even the whole facility. But if you manage to have such a model and your machines deliver their data into it you can leverage all this data much much better. It is key to transform you Big Data into Smart Data. A lot of times people seem to think that having a lot of data is enough. That however is wrong. You need to have structured or smart data to efficiently use machine learning.

 Transform your data into Smart Data to leverage better decisions. One possible tool could be OPC UA.

Transform your data into Smart Data to leverage better decisions. One possible tool could be OPC UA.

In the second part of the workshop I felt really at home. We build on our machine example for before and got a dataset to work on in Rapidminer. This is a tool that I always like to recommend because it makes the data analysis very straightforward and easy. You can plug and play machine learning elements like models or feature engineering and draw lines between them. This was very fun but I did not learn a lot of new stuff. I think for people that hadn't used such a tool before it must have been eye opening. The only negative aspect was the time that ran out too soon.

 The Rapidminer Process we created in the m3 workshop.

The Rapidminer Process we created in the m3 workshop.

Day 2 - Conference Part 1

My second day was the first day for a lot of people since the workshop groups were relatively small compared to the whole group. I think I heard someone say that there were around 230 people overall at the conference. This was a good size since it was very easy to get in touch with the people who held the talks. On the first day I visited the keynote and six talks. Since there were 3 parallel tracks I missed 12. I guess that is always a problem when you visit a conference.

Keynote - Moralising machines

The very first talk was the keynote by Oliver Bendel, a professor for Business Informatics from the FHNW in Switzerland. This talk was not technical and he presented his journey over the last years where he researched and talked a lot about moral in digital systems. He created several bots with interesting ideas (the GOODBOT, the LIEBOT and the BESTBOT) and even a vacuum cleaner that is very animal friendly and stops and shoos ladybirds aways instead of driving over them. I think it was a very good way to start the conference by putting these thoughts into the peoples minds that even if we can it does not mean that we should do something. Maybe there is another way.

 Concept art for the LADYBIRD an animal friendly vacuum cleaner.

Concept art for the LADYBIRD an animal friendly vacuum cleaner.

Explaining ML Models with LIME

The first talk after the keynote was called Explaining Machine Learning: How can we create trust in our complex models?. It was held by Shirin Glander. The talk explained the background of the LIME algorithm and showed some examples. I wrote a blog post about LIME a while ago. You can learn more about it there. In short, the algorithm treats your machine learning model as a black box, permutates the input and observes the output. This leads to conclusions about the importance of the features. Personally I had read about LIME before so I did not mind but I think this talk should have been placed later in the conference. Nevertheless I think it was very good. To get a general idea about how it works you can watch the following video:

Machine Learning Overview

This talk by Boris Adryan was about the very basics of machine learning. I knew that I most likely would not learn something new but I was very interested in how he would explain these basic concepts. He introduced linear regression, decision trees, classification and even SVMs. I don't know how he managed to do that in such a short time. Practice, i guess. 

 The machine learning pipeline from the talk "Machine Learing Overview" by Boris Adryan.

The machine learning pipeline from the talk "Machine Learing Overview" by Boris Adryan.

It's all about the Framework - a comparison of the most popular OPensource ML Frameworks

The next talk I visited was by Sara Bertram and Fabian Bormann from the IAV GmbH. It was presented as a comparison of the most popular ml framework. However it focused solely on the deep learning frameworks we all know: Keras, Tensorflow, CNTK, Caffe (2) and PyTorch. The talk was very superficial and mostly stated some facts about each framework. Most of it can be found on Wikipedia, too. However it was nice to have the information all in one place. They added some statistics about the activity of the surrounding communities for each framework and it became obvious how far ahead tensorflow is in this aspect. They also talked about their own experiences with the frameworks which lead directly into the next talk.

 The most active machine learning framework community is without a doubt tensorflow. The CNTK numbers could be a bit low since the Microsoft Dev Channels were ignored.

The most active machine learning framework community is without a doubt tensorflow. The CNTK numbers could be a bit low since the Microsoft Dev Channels were ignored.

Introduction to Tensorflow

Fabian Bormann went on to hold another talk about tensorflow. The talk focussed heavily on his implementation of a GAN (Generative Adversarial Network) to create paintings. It was interesting for me to see how he tackles a new problem and some of his slides will be of good use for me. 

 A GAN can be used to create new art using neural nets. The generator creates images and the discriminator decides if the image is real or not.

A GAN can be used to create new art using neural nets. The generator creates images and the discriminator decides if the image is real or not.

MAChine Learning on unknown Terrain - using Spotifys 'Discover Weekly' as an Example

The second to last talk of the first day was a showcase of some research that Nico Kreiling did on the Discover Weekly algorithm from Spotify. He talked about the difficulties that arise if you want to recommend a new song to people but you do not have any previous interactions with it. Existing songs can be recommended relatively easy: just look at users that share a large percentage of songs they like. This is called collaborative filtering and is used by a whole lot of websites.

 Collaborative filtering: create a matrix of artists and users and fill the empty fields. If there is a very high value then the artists should be recommended to the user.

Collaborative filtering: create a matrix of artists and users and fill the empty fields. If there is a very high value then the artists should be recommended to the user.

However there is the cold-start-problem. What do we do about artists that no user has ever listened to before? The answer is: analyse the waves of the songs with image recognition. This part of the talk was truly incredible. They also used the word2vec technique using the playlists of the users. The playlist can be seen as the sentence and each song as the word. Overall one of my favourite talks of the conference.

KI meets creativity - why every company needs a artificial muse

This talk was held by Klaas Bollhöfer and it was something special and different compared to the other talks. He basically urged us to leave behind all this talk about which ml algorithm is the best and finally start being creative with the technology. I don't know the exact quote but he said something along the lines of "the data scientist in two years is what we call a HTML programmer today". From my point of view this is a very brave prediction but i guess that was his goal. He spent a lot of his time showcasing a project with Roman Lipski called UNFINISHED. They created an artificial muse for the painter which created pictures for him and he could give feedback if these pictures inspired him. This feedback would then be used to retrain the network. The technology behind this is the aforementioned GAN. They are currently working on transforming this technology from the art world to the business world. It was really interesting to get a glimpse of what can be done with machine learning if you open yourself up to experimenting a lot. He said that this project took at least two years to finally work and it took a long time until Roman Lipski started to trust his artificial muse. It was a great talk to end the first conference day and gave me a lot things to think about on the train ride home.

 Why stop at creative AI? Why not getting inspired by AI?

Why stop at creative AI? Why not getting inspired by AI?

Day 3 - Conference Part 2

The Keynote of the second day was after lunch so we stared directly with the first talks.

Scaling of Deep Learning Frameworks using Kubernetes

I was highly anticipating the talk of Sebastian Jäger because this topic is something I want to get into but I somehow always get repelled by the big cloud providers. I think it is very hard to know what services to use and how. He described how they build a cloud infrastructure with Kubernetes and also provided some snippets of his Helm scripts. This gave me a lot of insight on how I could try to distribute my tensorflow models. All in all one of the most helpful talks for me at the conference.

 Helm can be used to spawn workers in the Kubernetes cluster. Docker images provide the workers with the program logic.

Helm can be used to spawn workers in the Kubernetes cluster. Docker images provide the workers with the program logic.

Create algorithms with simulated evolution

The next talk was something totally different. I had already heard about and implemented evolutionary algorithms at university and was fascinated by them. Therefore I was looking forward to some nice experiments. Heiko Spindler presented his work on an algorithm that created a totally new program based on some constraints. The genes available for the evolution were programming statements (MOVE, GOTO, SET, NOP, IF ... GOTO) and their parameters. Based on random initialization and the constraint of having at most 30 lines he created populations of random programs that had to solve the following problem: mark every cell green cell until your energy runs out. The agent controlled by the program got energy from marking green cells and lost energy from moving. The fitness function was then calculated by the percentage of the marked green fields and the remaining energy. This way he could create totally random programs that solved his problem. As I was hoping this was very fascinating. Applying this to the weights of a neural network could be a very effective way of creating very good deep learning networks.

 An example program created by an evolutionary algorithm

An example program created by an evolutionary algorithm

How good is my Machine Learning Model?

This talk had a misleading title. It should have been called How good is my machine learning project? Oliver Zeigermann looked at the test provided by Google and applied it to his own projects. I hadn't heard about the test before and was excited to learn about it. It aims to score your machine learning project in production. There are four categories with 7 questions each. You get one point if you are doing the thing manually and two points if you have an automated solution. The overall score is the lowest score of the four categories. What I like about the test is that it raises a lot of good questions that get otherwise overlooked easily. I think this could be translated into a check list for new ml projects. I was very happy that I learned about the test in this talk. You can find the complete talk here.

Keynote: Between Hype and Reality - Deep Learning and AI demystified

This keybote by Marcel Tilly from Microsoft aimed to get the people back on earth after they were dreaming about AI for the last two days. There is this famous saying in Germany: "if you have a hammer everyhing looks like a nail". And it seems as if the IT industries current hammer is deep learning. Most of the time people come to me with new ideas about how to use AI I have to answer: "I think we can solve that by using classic rule-based programming". The keynote was used to remind everyone about the fact that Machine Learning is a) nothing new and b) just another tool in our toolbox. 

Data with missing features

Stanimir Dragiev and Sascha Effenberger from Zalando held a very interesting presentation about fraud detection on the popular fashion online shop. They focused on the problem of missing or getting new features and how to handle the problems that arise with that. You do not want to lose the information of the old data that does not have the new feature and you also do not want to throw away too much data that has some missing data. What are the strategies that helped them solving this problem? This was a great talk with a lot of insight. I highly recommend checking out some of Zalandos talks. They seem to have a great research department. 

Successfully applied AI using the example of warehouse logistics at zalando

The next talk was by folks from Zalando, too: Calvin Seward and Christian Bracher. They showed us how they improved the time that a worker needs to complete an order in the workhouse. But the talk was much more than that. They showed us some guidelines on how to overcome the resistant forces inside the company when it comes to new technologies and ideas. The core idea is to start with a very small KPI and improve that. This builds trust on every level and you can build on that. Trying to disrupt the company to soon can lead to a lot of troubles. 

 This was one of the problems that Zalando had to solve to improve their warehouse.

This was one of the problems that Zalando had to solve to improve their warehouse.

Data Science Lifecycle - Continuous Learning

The last talk of the conference was by Stephan Reimann from IBM and was a highlight for me. As I mentioned before I do not know much about the big cloud platforms and do not have a DevOps background. Stephan showed us how to deploy a Flask app on the IBM cloud and provided a tutorial. This is exactly what I need since my soccerstatsbot is a flask app and I want to put on onto one of the platforms. I hope with the help of the tutorial I can finally manage to do that.

Conclusion

The m3 conference was a hit. Nearly every talk was very exciting and interesting. I learned a lot and I think I have to process a lot of the things I learned for a long time. My goal now is to apply some of the techniques until m3 2019. Especially everything around putting a machine learning model into production and professionally monitoring it will be my focus. To everyone who thought about going and didn't: do it next year. It won't disappoint you.