Anhang A: Technik einrichten

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.

Üblicherweise installieren Sie die notwendige Software auf Ihrem Rechner; dies wird hier beschrieben. Alternativ können Sie aber auch einen Web-Dienst nutzen. Dann laufen Ihre Jupyter Notebooks auf dem Server des Anbieters. Wir stellen hier den Dienst von Google vor.

A.1 Anaconda

Anaconda ist eine Softwareumgebung, die das Installieren und Verwalten von Software erleichtert. Bevor wir die konkreten Technologien erklären, daher zunächst den Tipp, die Anaconda-Umgebung zu installieren

Sie haben dort eine grafische Umgebung, um Programme und Pakete zu installieren, den Anaconda-Navigator. In diesem Gesamtpaket sind schon viele Bestandteile enthalten oder werden einfach bei Bedarf nachgeladen.

Anaconda-Oberfläche

Hinter den Kulissen benutzt Anaconda den Paketmanager conda, dan man auch auf der Kommandozeile nutzen kann (z.B. für Installation/Update von Paketen).

A.1.1 Umgebung einrichten

Ich empfehle, nach Installation und Start von Anaconda eine eigene virtuelle Umgebung (Environment) anzulegen, z.B. mit Namen “nndl”, “deep” oder “deep1”. Innerhalb einer solchen virtuellen Umgebung müssen Sie erstmal alle Pakete neu installieren (außer Python). Das hat den Vorteil, dass Sie nach und nach nur das installieren, was Sie brauchen. Sollte Ihre Umgebung irgendwann zu verworren werden, legen Sie einfach eine neue an.

Wählen Sie in der linken Leiste “Environments”:

Anaconda-Oberfläche

Jetzt können Sie einen Namen für die Umgebung wählen (verzichten Sie auf Leerzeichen und Umlaute). Hier müssen Sie auch die Python-Version wählen, die installiert wird. Ich empfehle, entweder die aktuellste Version zu nehmen oder die vorletzte Version. Tatsächlich wähle ich eher die vorletzte Version, weil manchmal Pakete nicht kompatibel zur neuesten Version sind.

Anaconda-Oberfläche

Jetzt können Sie mit Anaconda Pakete innerhalb Ihrer Umgebung installieren. Anaconda sorgt dafür, dass Abhängigkeiten aufgelöst werden. Das heißt, wenn für Paket A auch ein Paket B benötigt wird, wird B automatisch mitinstalliert.

Installieren Sie TensorFlow, indem Sie zunächst den Filter auf “Not installed” umstellen:

Anaconda-Oberfläche

Anschließend suchen Sie nach tensorflow, machen dort ein Häkchen und wählen “Apply”.

Anaconda-Oberfläche

Anaconda zeigt Ihnen alle Abhängigkeiten an, d.h. diese Pakete werden zusätzlich zu TensorFlow installiert. Auch hier wählen Sie “Apply”.

Anaconda-Oberfläche

Sie sehen als Ergebnis das Paket unter “Installed”:

Anaconda-Oberfläche

Installieren Sie anschließend “seaborn”. Das ist ein Grafik-/Diagrammpaket, bei dem auch andere Pakete wie “matplotlib” mitinstalliert werden.

Anaconda-Oberfläche

Installieren Sie zudem noch Paket “scikit-learn”. Mit dieser Konfiguration sollten Sie erst einmal gerüstet sein.

A.1.2 Umgebung per Terminal

Auf der Kommandozeile legen Sie eine neue Umgebung mit dem Namen “deep1” so an (Sie können natürlich einen anderen Namen wählen):

conda create -n deep1 python=3.7

Die Umgebung muss anschließend aktiviert werden, damit sich die weiteren Aktionen auf diese Umgebung beziehen:

conda activate deep1

Der Name “deep1” sollte jetzt vor dem Prompt auftauchen.

Hier ein Artikel dazu: Setup a Python Environment for Machine Learning and Deep Learning

A.1.3 Jupyter-Notebook installieren und starten

Wenn Sie Ihre Umgebung eingerichtet haben, können Sie wieder in den Reiter “Home” wechseln. Achten Sie darauf, dass Ihre Umgebung (hier “deep1”) ausgewählt ist. Suchen Sie die Kachel “Jupyter Notebook” und wählen Sie “Install”.

Anaconda-Oberfläche

Jetzt können Sie Jupyter-Notebook starten. Es wird automatisch ein Browserfenster geöffnet, normalerweise unter der Adresse “localhost:8888”. Dort sehen Sie ein Verzeichnis und können Jupyter-Notebooks öffnen oder neu anlegen.

Anaconda-Oberfläche

A.2 Python

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).

Stellen Sie sicher, dass Python 3.7 oder höher installiert ist. Öffnen Sie ein Terminal (Shell, Konsole) und führen Sie aus:

python --version

Unter Windows öffnen Sie ein Terminal mit WIN+R und dann “cmd”. Auf einem Mac mit CMD+Leertaste und dann “Terminal.app”.

IDE

Sie können Python innerhalb der Jupyter-Notebooks lernen. Sie können natürlich auch eine separate IDE wie Visual Studio Code (VS Code) oder PyCharm für die Python-Teile verwenden.

Bibliotheken

Für Python gibt es eine Reihe von Bibliotheken, die für unsere Zwecke notwendig sind. Zunächst mal eher allgemeine Bibliotheken:

  • NumPy (Numerical Python): Vektor- und Matrizenrechnung (bzw. allgemein Tensoren)
  • Pandas: Verwaltung und Management von Tabellen und seriellen Daten
  • Matplotlib: Darstellung von Diagrammen, Graphen und Bildern
  • Seaborn: Etwas schönere Darstellung von Diagrammen etc.

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:

  • Scikit-learn: Machine-Learning-Methoden wie lineare Regression oder logistische Regression, sowie Datensätze wie MNIST oder Iris.
  • TensorFlow (Keras ist enthalten): Keras ist eine Bibliothek speziell für neuronale Netze und Deep Learning. Enthält ebenfalls Datensätze wie MNIST, FashionMNIST, CIFAR-10 und CIFAR-100.

In letzter Zeit ist die Bibliothek PyTorch als Konkurrenz zu TensorFlow/Keras stark im Kommen, aber in dieser Vorlesung bleiben wir bei Keras.

Pakete installieren

Wenn Sie Anaconda verwenden, können Sie im Anaconda-Navigator in der entsprechenden Umgebung Pakete installieren.

Im Terminal können Sie das Programm pip verwenden:

pip install PAKETNAME

Wenn Sie Anaconda verwenden, aber dennoch im Terminal arbeiten wollen, können Sie auch dies verwenden:

conda install PAKETNAME

Achten Sie darauf, dass Sie in der richtigen Umgebung sind. Wechseln Sie im Zweifelsfall in die richtige Umgebung mit

conda activate UMGEBUNGSNAME

A.3 Jupyter-Notebooks

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.

Jupyter-Notebook

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).

A.4 Nutzung der GPU

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. Dies ist nur unter Windows- und Linux-Rechnern möglich, da Apple keine NVIDIA-Karten verbaut.

Dieses Video ist eventuell hilfreich:

Bei Mac-Rechnern gibt es teils eigene Herausforderungen, um z.B. den neuen M1-Chip auszunutzen. Eventuell helfen die Videos von Prof. Heaton, zum Beispiel dies hier:

Da sich hier die Infos ständig ändern, recherchieren Sie bitte selbst und tauschen Sie gegebenenfalls Ihre Infos mit Ihren Kommiliton:innen aus.

A.5 Nutzung eines Webdienstes (Google Colab)

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