Updates dieser Seite:
Unsere Übungsaufgaben benötigen eine Softwareumgebung, damit Sie Aufgaben bearbeiten und so die Inhalte vertiefend verstehen und praktisch anwenden können. Allgemein verwenden wir die Programmiersprache Python für diese Veranstaltung. Ein weiteres wichtiges Tool sind Jupyter-Notebooks. Wichtigstes erstes Ziel für Sie ist es, eine Umgebung für Jupyter-Notebooks auf Ihrem Rechner herzustellen. Dazu wird Anaconda empfohlen.
Alle Programmierteile werden mit der Programmiersprache Python durchgeführt. Wir nutzen Python innerhalb der Jupyter-Notebooks (diese wurden im Python-Kontext entwickelt, daher das "py" in Jupyter). Oft ist Python schon im Betriebssystem enthalten. Warten Sie noch bis zum Abschnitt Anaconda, bevor Sie Python auf Ihrem Rechner suchen.
Sie können natürlich auch eine IDE wie Visual Studio Code (VS Code) oder PyCharm für die Python-Teile verwenden. Ich empfehle aber dennoch, sich mit Jupyter-Notebooks vertraut zu machen, da diese mittlerweile im Bereich ML omnipräsent sind.
Für Python gibt es eine Reihe von Bibliotheken, die für unsere Zwecke notwendig sind. Zunächst mal eher allgemeine Bibliotheken:
Spezifisch für Machine Learning sind die folgenden Bibliotheken, die sowohl Methoden als auch Datensätze für typische ML-Aufgaben (z.B. Bilderkennung) beinhalten:
Viele der Übungsaufgaben werden wir mit Hilfe von Jupyter-Notebooks durchführen. Ein Jupyter-Notebook ist ein interaktives Dokument, das man im Browser öffnet und dort lesen und bearbeiten kann. Die Besonderheit dieses Dokuments ist, dass es sowohl Textteile als auch Codeteile enthalten kann und dass man diese ändern kann. Codeteile kann man zudem ausführen, so dass die Ausgabe direkt im Dokument erscheint. Daher sind Jupyter-Notebooks ein sehr nützliches Tool, um sowohl Code auszuprobieren als auch den Code und allgemeine Einsichten zu dokumentieren.
Jedes Übungsblatt ist ein Jupyter-Notebook, d.h. Sie können direkt im Übungsblatt Ihren Code hineinschreiben und ausführen sowie Notizen hineinschreiben.
Wenn Sie noch nie von Jupyter gehört haben, schauen Sie sich die ersten Minuten des folgenden Videos an, um einen ersten Eindruck zu bekommen:
https://www.youtube.com/watch?v=1S4Cgtkxqhs&ab_channel=Prof.Dr.JensDittrich%2CBigDataAnalytics
Wie schon erwähnt, arbeiten wir innerhalb der Jupyter-Notebooks mit der Programmiersprache Python. Jupyter-Notebooks können auch andere Programmiersprachen bedienen. Dazu muss man den entsprechenden Kernel austauschen. Eine andere, oft verwendete Sprache im Bereich Machine Learning ist R (auch aus der Statistik bekannt).
Ich empfehle, die Anaconda-Umgebung zu installieren: https://docs.anaconda.com/anaconda/install.
Anaconda enthält Jupyter Notebook und viele der notwendigen Python-Bibliotheken. Zum Start von Jupyter Notebook kann man die grafische Oberfläche Anaconda-Navigator verwenden. Intern benutzt Anaconda den Paketmanager conda, dan man auch auf der Kommandozeile nutzen kann (z.B. für Installation/Update von Paketen).
Abgesehen von obigen Link, schauen Sie für Ihr jeweiliges Betriebssystem (Win, Mac, Linux) nach aktuellen Tutorials, z.B. auf YouTube.
Nehmen Sie sich die Liste der oben angegebenen Bibliotheken vor und stellen Sie sicher, dass die entsprechenden Bibliotheken installiert sind. Ansonsten werden Sie in Ihrem jeweiligen Notebook darauf hingewiesen, dass etwas fehlt.
Es wird empfohlen, nach der Installation von Anaconda/Conda eine eigene Environment anzulegen (z.B. mit Namen "nndl"). Das ist nicht unbedingt notwendig, kann aber nützlich sein, wenn Sie später weitere Umgebungen anlegen möchten.
Hier ein Artikel dazu: Setup a Python Environment for Machine Learning and Deep Learning
Das Training von neuronalen Netzen ist sehr zeitintensiv, d.h. es kann auch mal ein paar Stunden oder einen ganzen Tag dauern. Wenn Sie einen Rechner mit NVIDIA-Grafikkarte (= GPU) haben, können Sie probieren, die GPU zu aktivieren. Das geht leider nicht automatisch und Sie müssen ein bisschen recherchieren und ausprobieren.
Bei Mac-Rechnern gibt es teils eigene Herausforderungen, um z.B. den neuen M1-Chip auszunutzen.
Da sich hier die Infos ständig ändern, recherchieren Sie bitte selbst und tauschen Sie gegebenenfalls Ihre Infos mit Ihren Kommiliton:innen aus.
Wenn Sie Probleme mit der Installation der Software haben oder Ihr Rechner sehr langsam ist, können Sie auch web-basiert arbeiten. Google bietet hier den Dienst Google Colab an, wo Sie Jupyter Notebooks unter Ihrem Google-Konto laufen lassen können. Colab ist voll integriert mit Google Drive (ähnlich wie die Googledocs). Es gibt auch weitere Web-Dienstleister. So bietet z.B. die Plattform Kaggle auch die Möglichkeit, Jupyter-Notebooks auf ihren Servern zu erstellen und laufen zu lassen.
Ich empfehle auf jeden Fall, zunächst eine eigene Umgebung auf dem eigenen Rechner zum Laufen zu bekommen (s.o.). Google Colab können Sie dann zusätzlich ausprobieren und vielleicht auch die Performance vergleichen.
Zu Google Colab gibt es zahlreiche Tutorials, z.B. https://www.youtube.com/watch?v=RLYoEyIHL6A&ab_channel=CodewithDogaOzgon