This is an old revision of the document!
Table of Contents
Machine Learning through NEEMS
This tutorial gives an overview of the lecture about narrative enabled episode memories (NEEMS) by Sebastian Koralewski.
Nowadays machine learning is applicable for a large variety of cases. This lecture shows how to use the recordings of activities performed by a robot in a kitchen environment to predict a likely course of action, based on the observed data and their probability of success, e.g. setting up a table for breakfast, or cleaning it up afterward.
Setup
The platform of choice is Jupyter Notebook, a handy framework that is ready to launch in any python environment. Please find the repository's README for a setup manual. Within the Jupyter environment, there are explanations on how to solve the tasks at hand. Most of the implementation utilizes the Pandas and sklearn package, which makes analyzing and learning data easily possible.
Some example data is provided with this tutorial in a CSV format. They contain records of robot activities, the so-called NEEMS.
Please follow the link to the jupyter notebook and open the README.md. It contains all relevant information on how to set up and start the notebook on your machine.
In the browser, the filesystem of the repository is shown. Click on the Exercises.ipynb to get to the tutorial. The following figure shows the toolbar of the notebook.
From left to right:
- save the notebook with all your changes to Exercise.ipynb on your machine.
- inserting a cell block won't be necessary for this lecture, since all necessary blocks are already included
- cut, copy and paste can be either done with these buttons or via the usual CTRL shortcuts
- moving cells up and down isn't necessary as well and would potentially break the logical structure of the lecture
- running a code block can either be done with this button or with CTRL-Enter
- interrupting the kernel is useful when a code block takes to long to be executed. You can change your code and re-run the block again. Remember: training a model might take some time, depending on your machines capacity.
- restarting the kernel resets all local variables and definitions from executing the code blocks
- restart & running all code blocks can be helpful when picking up this lecture at a later point, when you have already implemented some of the functionality and don't want to execute every block one by one
- markdown is the default language of choice for writing plain text. You don't need to change this.
- the full palette of commands can be opened with the right-most button. Feel free to investigate further possibilities, but it won't be necessary to complete this lecture.
Hitting the TAB button while coding can be helpful for auto-completion.
Remember to always execute all code blocks from top to bottom, either by executing one by one or via the restart kernel & re-run button. Using the latter won't cause much trouble, since later code-blocks are simply missing some functionality which can be added while you progress through the notebook.
NEEMS Lecture
This lecture is granulated into six consecutive sections. Since the Jupyter Notebook is a python script itself, it is important to do each section in the given order. If you separate the lecture over several sessions, remember to execute the code from previous sections before continuing your work.

