© sommthink/shutterstock.com, © cash1994/shutterstock.com, © S&S Media
Teil 6: AI mit Python

Wissbegierige Maschinen


Die Realisierung von KI-Systemen ist die Paradeanwendung von Python. Die vergleichsweise einfache Syntax, gepaart mit der simplen Bibliothekseinbindung prädestiniert die Sprache geradezu als „Klempnerwerkzeug“ für Algorithmen.

Die Anzahl an Bibliotheken ist im Fall der künstlichen Intelligenz noch größer als in anderen Wissensbereichen. Aus dieser Fülle wählen wir zuerst NumPy – der Begriff steht für Numerical Python. Es handelt sich dabei um eine Bibliothek, die auf nichtsymbolische Berechnungen spezialisiert ist.

Experimente mit NumPy

Im KI-Bereich setzt man zwar gern auf die Web-App Jupyter Notebooks, wir wollen hier aber mit konventionellen Werkzeugen arbeiten. Starten Sie also Visual Studio 2019, und erstellen Sie eine neue Applikation auf Basis der Vorlage Python-Anwendung. Da Visual Studio bei Python-Projekten nicht automatisch von einem ML-Anwendungsfall ausgeht, müssen wir NumPy von Hand laden. Hierzu erweitern wir den Ordner Python-Umgebungen und klicken die fett hervorgehobene Runtime rechts an. Im daraufhin erscheinenden Kontextmenü entscheiden wir uns für die Option Python-Pakete verwalten. Führen Sie danach pip install numpy aus, um die Bibliothek zu beschaffen. Dabei müssen Sie der Aktivierung der Administratorrechte zustimmen.

Ein neuronales Netz arbeitet grundsätzlich nach dem in Abbildung 1 gezeigten Schema. Die Eingabedaten werden vom System verbunden, um danach einen oder mehrere Vorhersagewerte zu ermitteln.

hanna_python6_1.tif_fmt1.jpgAbb. 1: Neuronale Netzwerke sind im Grunde genommen schlicht

Wie so oft steckt der Teufel auch hier im Detail. Die Ermittlung der Gewichtswerte, die in den nach dem menschlichen Gehirn benannten Neuronen gespeichert sind, ist eine Wissenschaft für sich. Im Moment gehen wir dem durch folgendes Codebeispiel aus dem Weg:

import numpy as np weights = np.array([0.1, 0.2, 0]) def neuro_func (input, weight): return input.dot(weight) # Hat Rado, Nimmt Steroide, Intelligenzquotient input = np.array((1,1,200)) print(neuro_func(input, weights))

Die einfachste Version eines neuronalen Netzwerks besteht aus zwei Arrays. Wir haben erstens das Gewichtsarray, zweitens das Eingabearray. Das Gewichtsarray legt dabei fest, wie stark sich die einzelnen Eingaben des Eingabearrays auf das finale Ergebnis auswirken. In unserem Fall wirken sich die ersten beiden Attribute mit der Stärke 0,1 bzw. 0,2 aus, während das dritte Attribut für das Endergebnis ohne Belang ist. Das können Sie überprüfen, indem Sie das Programm mit verschiedenen Werten für den Intelligenzquotienten ausführen – die ausgegebene Zahl bleibt in diesen Fällen konstant.

Insbesondere bei trainierten neuronalen Netzwerken ist die hier verwendete Vorgehensweise mit von null bis N laufenden Eingabewerten suboptimal. In der Praxis normalisiert man die Ergebnisse so gut wie immer auf den Wertebereich von 0 bis 1, was sowohl beim Training als auch beim Hantieren mit dem fertigen neuronalen Netzwerk zu Erleichterungen führt.

Zur Vertiefung der Kenntnisse im Bereich neuronaler Netze könnten Sie hier Lern- oder Feedbackverfahren realisieren. Bei mitp ist mit „Neuronale Netze und Deep Learning kapieren“ ein Lehrbuch erschienen, das in diesem Bereich empfehlenswert ist [1]. Das bei O’Reilly erschienene Buch „AI for Game Developers“ zeigt eine kurze Implementation in C und ist empfehlenswert für alle mit Interesse an numerischen Problemen [2].

Quickstart mit Microsoft

An dieser Stelle wollen wir die Physik Physik sein lassen und fortgeschrittene Probleme angehen: Sie sind insofern heikel, als ihre Parametrierung meist umfangreiche Beispieldatensätze voraussetzt. Microsoft bot mit den Visual Studio Tools for AI einige Zeit eine entsprechende Erweiterung an, die aber seit VS 2017 nicht mehr gepflegt wird. Im Interesse der Bequemlichkeit wollen wir trotzdem mit den unter [3] bereitstehenden Beispielen experimentieren – laden Sie ein vollständiges Archiv herunter und extrahieren Sie es danach an einen bequem zugänglichen Ort im Dateisystem. Unter samples-for-ai-master\examples\tensorflow\ findet sich dann eine .sln-Datei, die sich mit Visual Studio 2017 direkt laden lässt. Wer unter Visual Studio 2019 arbeitet, kann allerdings auch von Hand .py-Code erhalten – Microsoft legt die Testdatensätze nicht bei, die Beispiele laden sich stattdessen während der Initialisierung aus dem Internet herunter.

Bei komplizierteren KI-Systemen gilt im Allgemeinen, dass die Qualität der Trainingsdatensätze fast wichtiger ist als der verwendete Algorithmus. ...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang