Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Du möchtest wissen, was hinter künstlicher Intelligenz und neuronalen Netzen steckt und deine eigenen selbstlernenden Programme schreiben?
In diesem Buch erfährst du mit anschaulichen Erklärungen und vielen Bildern, wie KI funktioniert und wie du neuronale Netze ganz einfach selbst programmieren kannst. Dafür brauchst du keine Vorkenntnisse. Alle notwendigen mathematischen Konzepte werden von Grund auf und sehr anschaulich erklärt. Ganz nebenbei erhältst du eine Einführung in die Programmiersprache Python.
In jedem Kapitel erwarten dich spannende Projekte von ersten kleinen Programmen wie einem selbstlernenden Währungsrechner bis hin zu praxistauglicher Bilderkennung.
Denkaufgaben und Programmierübungen mit Lösungen zum Download helfen dir, dein Wissen zu testen und zu vertiefen. So lernst du Schritt für Schritt, wie du mit einfachen Programmiertechniken deine eigenen künstlichen neuronalen Netze entwickelst und trainierst.
Aus dem InhaltSie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 269
Veröffentlichungsjahr: 2023
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Michael Weigend
Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
ISBN 978-3-7475-0654-7 1. Auflage 2023
www.mitp.de E-Mail: [email protected] Telefon: +49 7953 / 7189 - 079 Telefax: +49 7953 / 7189 - 082
© 2023 mitp Verlags GmbH & Co. KG
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Dieses E-Book verwendet das EPUB-Format und ist optimiert für die Nutzung mit Apple Books auf dem iPad von Apple. Bei der Verwendung von anderen Readern kann es zu Darstellungsproblemen kommen.
Der Verlag räumt Ihnen mit dem Kauf des E-Books das Recht ein, die Inhalte im Rahmen des geltenden Urheberrechts zu nutzen. Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.
Der Verlag schützt seine E-Books vor Missbrauch des Urheberrechts durch ein digitales Rechtemanagement. Bei Kauf im Webshop des Verlages werden die E-Books mit einem nicht sichtbaren digitalen Wasserzeichen individuell pro Nutzer signiert. Bei Kauf in anderen E-Book-Webshops erfolgt die Signatur durch die Shopbetreiber. Angaben zu diesem DRM finden Sie auf den Seiten der jeweiligen Anbieter.
Lektorat: Janina Bahlmann, Nicole Winkel Fachkorrektorat: Margareta Schlüter Sprachkorrektorat: Jürgen Benvenuti Covergestaltung und Coverbild: Christian Kalkert Illustrationen: Michael Weigend Icons: © fotohansel \ stock.adobe.com Satz: III-satz, Kiel, www.drei-satz.deelectronic publication: III-satz, Kiel, www.drei-satz.de
Künstliche Intelligenz (KI) und Machine Learning sind Themen, über die heute viel geredet wird. Die Grundlagen dieser neuen Technik verstehen nur wenige. Sie sind auch nicht ganz einfach. Um eine Vorstellung davon zu bekommen, wie KI funktioniert, musst du dich auf einige neue Denkweisen einlassen.
Dieses Buch folgt der pädagogischen Idee des Konstruktionismus: Baue etwas und lerne dabei! Von Anfang an wirst du ermuntert, selbst zu programmieren. Du kannst die Programmtexte aus dem Buch abschreiben. Das geht, denn sie sind nicht sehr lang. Du kannst die Programme aber auch von der Webpräsenz des mitp-Verlags herunterladen. Besuche die Adresse https://www.mitp.de/0652, wähle die Registerkarte Downloads und klicke auf den Link Programmbeispiele. Nach dem Entpacken hast du für jedes Kapitel ein Verzeichnis mit den Programmen, die im Buch erklärt werden. Im Downloadbereich findest du auch die Lösungen zu allen Aufgaben in diesem Buch.
Ein Programmbeispiel ist ein guter Ausgangspunkt für eine eigene Entwicklung. Es funktioniert, so wie es ist. Du kannst es genau kopieren, aber du kannst es auch abwandeln. Am besten änderst du so viel wie möglich und machst so das Beispiel zu deinem eigenen Projekt. Ändere die Variablennamen. Füge weitere Features in dein Programm ein. Schreibe neue Texte für die Ausgaben des Programms. Experimentiere! Mache Fehler! Am meisten lernt man aus den eigenen Fehlern. Wenn deine eigene Programmversion nicht laufen will, hast du immer noch das Beispiel. Achte auf die Unterschiede zu deinem Projekt. Dann wirst du sicher die Stelle finden, an der es hakt.
Dieses Buch ist gleichzeitig eine Einführung in Python. Es werden keine Programmiervorkenntnisse erwartet. Wenn du schon programmieren kannst, werden dir vielleicht einige Besonderheiten auffallen. Ich habe versucht, mit möglichst wenigen Programmierkonzepten auszukommen und viele Sachen weggelassen, die in anderen Programmierbüchern vorkommen. Es gibt z.B. keine objektorientierte Programmierung. Wir verwenden zwar Objekte, aber wir werden keine Klassen definieren. Andererseits lernst du einige spezielle Module kennen, die nicht unbedingt zum Standard gehören. Wir werden z.B. mit dem sehr schnellen Modul NumPy arbeiten, Diagramme von Funktionen mit Matplotlib erstellen, und mit PIL und OpenCV Bilder bearbeiten. Keine Angst: Das meiste ist einfache Python-Programmierung.
Alle Projekte drehen sich um künstliche Intelligenz, maschinelles Lernen und neuronale Netze. Du entwickelst einfache Chatbots, lernfähige Programme, die mit Hilfe symbolischer oder subsymbolischer KI Dinge erkennen können, und schließlich Programme, die Livebilder deiner Kamera auswerten und Gesten erkennen können. Zum Training deiner selbst programmierten neuronalen Netze verwendest du freie Datensätze aus dem Internet und Bildmaterial, das du eigenhändig erstellt hast.
Das Ziel ist es, durch aktives Programmieren ein Gefühl für die Grundprinzipien und Möglichkeiten der neuen Technik zu gewinnen. Die mathematischen Passagen in diesem Buch sind möglicherweise echte Herausforderungen. Aber oft ist es so, dass man die Formeln besser versteht, wenn man sieht, dass sie wirklich funktionieren.
Viel Erfolg bei deinem Ausflug in die Welt der künstlichen Intelligenz!
Michael Weigend
Das erste Kapitel gibt dir einen leicht verständlichen Einstieg in die Welt der KI. Du gewinnst einen Überblick über Formen des Machine Learnings und erfährst, welche Rolle künstliche neuronale Netze hierbei spielen. Ganz nebenbei lernst du die Grundlagen der Programmiersprache Python.
Der Begriff »Künstliche Intelligenz« (KI) ist gar nicht so neu, wie man vielleicht glauben mag. Tatsächlich hat man die ersten funktionierenden Computer in den 1960er-Jahren gerne als »denkende Maschinen« oder »Elektronengehirne« bezeichnet. Heute würde man diese Vorstellung belächeln. Die damaligen Computer konnten zwar schon große Datenmengen zur Buchhaltung und Verwaltung verarbeiten, aber sie konnten nicht im Entferntesten selbstständig denken wie ein Mensch. Inzwischen ist viel Zeit vergangen. Heute gibt es tatsächlich digitale Systeme, die Autos steuern, Musik komponieren und Aufsätze schreiben können. Und es gibt ernst gemeinte Warnungen, dass künstliche Intelligenzen den Menschen überflügeln und ihm gefährlich werden könnten.
»Künstliche Intelligenz« umfasst ein weites Gebiet der Digitaltechnik. Man unterscheidet grob zwischen symbolischer KI und subsymbolischer KI:
Bei symbolischer KI wird das intelligente Verhalten durch klare Regeln bestimmt, die jeder Mensch nachvollziehen kann. Beispiele sind konventionelle Chatbots, mit denen man einfache Gespräche führen kann, und Programme, die auf der Grundlage von vorgegebenen Merkmalen Objekte erkennen können.
Bei subsymbolischer KI erlernt das System durch viele Beobachtungen intelligente Verhaltensweisen, etwa die Fähigkeit, Buchstaben zu erkennen. Jedoch ist das Wissen, das das Verhalten bestimmt, für Menschen nicht nachvollziehbar. Das System ist wie eine »Black Box«. Das Innere bleibt verborgen und rätselhaft. Diese Art von Intelligenzerwerb nennt man »Machine Learning« oder auf Deutsch »maschinelles Lernen«.
In diesem Buch geht es vor allem um die Programmierung künstlicher neuronaler Netze. Sie gehören zum zweiten Typ, der subsymbolischen KI. Um besser zu verstehen, was den Unterschied ausmacht, werden wir uns zunächst mit zwei Beispielen symbolischer KI beschäftigen. Du wirst in diesem Kapitel einen Chatbot und ein lernfähiges Programm, das Personen erkennen kann, entwickeln.
Im Jahr 1950 beschrieb der englische Wissenschaftler Alan Turing in seinem Artikel »Computing Machinery and Intelligence« eine Methode, mit der man – seiner Meinung nach – beweisen kann, ob eine Maschine intelligent ist und denken kann wie ein Mensch. Er nannte sie »imitation game«; inzwischen ist sie als »Turing-Test« in die Geschichte eingegangen. Die Grundidee des Turing-Tests ist, dass sich Intelligenz im Gespräch zeigt. Ein Mensch (der Befrager) unterhält sich über geschriebenen Text mit zwei Gesprächspartnern A und B. Der eine Partner ist ein Computer, der andere ein Mensch. Wenn der Befrager aufgrund der Antworten seiner Gesprächspartner Mensch und Computer nicht unterscheiden kann, zeigt der Computer Intelligenz.
1966 entwickelte der deutsch-amerikanische Informatiker Joseph Weizenbaum am MIT (Massachusetts Institute of Technology) in den USA das erste Computerprogramm, das in Ansätzen den Turing-Test bestehen konnte. Das Programm heißt Eliza und wurde rasch weltberühmt. Eliza verhält sich wie eine Gesprächstherapeutin. Du kannst dich mit ihr unterhalten und sie versucht, dich zum Reden zu bringen.
Im Internet findest du einige Online-Versionen von Eliza, zum Beispiel auf der Webpräsenz von Medical Artificial Intelligence, http://www.med-ai.com/models/eliza.html.de.
Ein Dialog mit Eliza kann z.B. so verlaufen:
Eliza funktioniert so: Bei jeder Benutzereingabe prüft das Programm, ob bestimmte Wörter wie z.B. hass vorkommen, und gibt dann eine Antwort, die irgendwie dazu passt. So hat man das Gefühl, von Eliza verstanden zu werden. Im folgenden Projekt kannst du diese Idee selbst umsetzen (Abschnitt 1.4). Bevor es an das Programmieren geht, musst du allerdings noch einige Dinge vorbereiten.
Für dieses Projekt benötigst du keinerlei Vorkenntnisse, aber auf deinem Computer muss die Programmiersprache Python installiert sein. Der Kasten gibt dir einige Hinweise, was zu tun ist.
Python installieren
Die Programmiersprache Python ist leicht zu erlernen und dennoch sehr mächtig. Viele Apps, die du aus deinem Alltag kennst, sind in Python geschrieben, z.B. Routenplaner, Gesichtserkennung oder Wettervorhersagen. Python ist kostenlos und kann einfach von der Webpräsenz der Python Software Foundation heruntergeladen werden. Besuche die Webseite https://www.python.org/, klicke auf Downloads, und wähle die aktuelle Python-Version, die zu deinem Betriebssystem passt.
Unter Microsoft Windows lädst du eine ausführbare Datei (Name endet auf.exe) herunter, die du durch Doppelklick startest.
Auf einem Mac läuft die Installation genauso, mit dem kleinen Unterschied, dass der Name der heruntergeladenen Datei auf .pkg endet.
Auf Linux-Rechnern ist Python meist schon vorinstalliert. Die neuste Version kannst du auf den meisten Linux-Systemen mit folgendem Befehl installieren:
Wenn du Python installiert hast, befindet sich auf deinem Computer neben der eigentlichen Programmiersprache auch eine Entwicklungsumgebung namens IDLE. Die Abkürzung steht für Integrated Development and Learning Environment. Mit einer Entwicklungsumgebung kann man Programmtexte erstellen und testen. Außer IDLE gibt es auch viele andere Entwicklungsumgebungen für Python. Dieses Buch bezieht sich aber ausschließlich auf IDLE.
Richte mit dem Dateimanager (bei Windows also im Explorer) einen Projektordner ein, in dem du alle deine Programme zu diesem Buch speicherst. Dieser Ordner könnte z.B. Python-Programme heißen. Ich empfehle dir, in diesem übergeordneten Verzeichnis für jedes Kapitel des Buchs ein eigenes Verzeichnis anzulegen (Kapitel_1, Kapitel_2, …). Verwende besser nicht die Ordner mit den fertigen Programmbeispielen, die du von der Webseite des mitp-Verlags heruntergeladen hast. Die Originaldateien bleiben dann unverändert. Das kann vor allem bei der Suche nach Fehlern in den eigenen Programmversionen helfen. Wenn dein eigenes Programm nicht läuft, kannst du in der Downloadversion nachsehen, was da anders ist.
Starte die Entwicklungsumgebung IDLE. Unter Windows gibst du in das Suchfeld am unteren Bildschirmrand idle ein und doppelklickst dann das Programmicon.
Auf dem Mac öffnest du ein Spotlight-Suchfenster, gibst idle ein und wählst dann die IDLE-App. Unter Linux gibst du auf der Kommandozeile den Befehl idle3 ein.
Es öffnet sich das Fenster der IDLE-Shell. Klicke in der Menüleiste oben links auf File. Klicke dann im Pulldown-Menü auf den Befehl New File.
Nun öffnet sich das Editor-Fenster. Hier schreibst du deinen Programmtext.
Speichere als Erstes den noch leeren Programmtext in deinem Projektordner ab. Wähle als Dateinamen eliza.py.
Du bist soweit. Beginnen wir mit dem Programmieren.
