Künstliche Intelligenz und neuronale Netze sind Teil eines der interessantesten Themengebiete der modernen Informatik. Jene sind allerdings recht komplex und vor allem im Detail nicht sehr leicht verständlich. In dieser Facharbeit werden künstliche neuronale Netze von Grund auf modelliert und in Python implementiert. Mit diesem Bottom-Up-Ansatz soll das Konzept und die konkrete Funktionsweise jener Strukturen verständlich werden.
Hierbei wird das Konzept eines künstlichen neuronalen Netzwerks erklärt. Zuerst werden die mathematischen Grundlagen erarbeitet und optimiert. Danach werden Feedforward-Netzwerke in Python selbstständig Schritt für Schritt implementiert und mithilfe des Backpropagation-Algorithmus auf 60000 Abbildungen handschriftlich gezeichneter Ziffern trainiert. Es werden hierbei verschiedene Netzwerkstrukturen analysiert. Mit der Bibliothek TensorFlow werden ebenfalls ähnliche Netze erstellt und mit der eigenen Implementierung verglichen.
Diverse Probleme wie Overfitting und Underfitting werden erläutert und diskutiert.Mithilfe eines Programmes wird die Klassifizierung eigener Zeichnungen ermöglicht und demonstriert. Es wird festgestellt, dass es für jedes Problem eine optimale Netzstruktur geben muss, und dass ein komplexeres Netz nicht zwingend mit einer höheren Genauigkeit verbunden sein muss. Die eigene Implementierung unterscheidet sich von der modernen Bibliothek hauptsächlich im Kriterium Geschwindigkeit (Zeitkosten).
Inhaltsverzeichnis
- Motivation und Schwerpunkt
- Motivation
- Schwerpunkt und Ergebnis
- Theoretischer Teil
- Was ist ein neuronales Netz?
- Neuronen
- Künstliche neuronale Netze
- Künstliche Neuronen
- Neuronenschichten
- Feedforward
- Backpropagation
- Vorstellung der Bibliothek TensorFlow
- Anwendungsbeispiel Handschrifterkennung
- Erwartungen
- Praktischer Teil
- Implementierung
- Grundlegende Klassenstrukturen
- Feedforward-Algorithmus
- Backpropagation-Algorithmus
- Analyse
- Verschiedene Netzstrukturen
- Verarbeitung selbstständig erstellter Daten (/Zeichnungen)
- Ergebnisse
- Rechnereigenschaften
- Genauigkeitsverlauf
- Vergleich mit TensorFlow
- Diskussion
- Differenzen zwischen den Strukturen
- Differenzen zwischen eigenem Netz und TensorFlow-Netz
Zielsetzung und Themenschwerpunkte
Diese Facharbeit befasst sich mit der Implementierung und dem Vergleich eigener neuronaler Netze zur Handschrifterkennung. Ziel ist es, ein Feedforward-Netzwerk in Python zu erstellen und mit dem Backpropagation-Algorithmus zu trainieren, um die Fähigkeit zu entwickeln, handschriftlich gezeichnete Ziffern zu erkennen. Die Arbeit analysiert die Auswirkungen verschiedener Netzwerkstrukturen und Lernraten auf die Genauigkeit des Modells und vergleicht die Ergebnisse mit der modernen Bibliothek TensorFlow.
- Konzept und Funktionsweise neuronaler Netze
- Implementierung eines Feedforward-Netzwerks mit Backpropagation
- Trainieren des Netzwerks mit Datensätzen von handschriftlichen Ziffern
- Analyse von verschiedenen Netzwerkstrukturen und Lernraten
- Vergleich der Ergebnisse mit der Bibliothek TensorFlow
Zusammenfassung der Kapitel
Die Arbeit beginnt mit einer Motivation und einer Beschreibung des Schwerpunkts. Im theoretischen Teil werden die grundlegenden Konzepte neuronaler Netze erläutert, einschließlich der Funktionsweise von Neuronen, künstlichen Neuronen, Neuronenschichten und der Backpropagation. Darüber hinaus wird die Bibliothek TensorFlow vorgestellt und die Anwendung von neuronalen Netzen im Bereich der Handschrifterkennung beleuchtet. Der praktische Teil befasst sich mit der Implementierung des eigenen neuronalen Netzes, einschließlich der Beschreibung der Klassenstrukturen, des Feedforward- und Backpropagation-Algorithmus. Die Analyse untersucht verschiedene Netzstrukturen und ihre Auswirkungen auf die Genauigkeit. Die Ergebnisse zeigen den Verlauf der Genauigkeit des Modells und vergleichen die Ergebnisse mit TensorFlow. Abschließend werden die Unterschiede zwischen den verschiedenen Strukturen und zwischen der eigenen Implementierung und TensorFlow diskutiert.
Schlüsselwörter
Neuronale Netze, Feedforward-Netzwerk, Backpropagation, Handschrifterkennung, TensorFlow, Netzstruktur, Lernrate, Genauigkeit, Implementierung, Analyse, Vergleich.
Häufig gestellte Fragen
Was ist ein Feedforward-Netzwerk?
Ein Feedforward-Netzwerk ist eine Struktur, bei der Informationen nur in eine Richtung fließen – vom Eingang über die verborgenen Schichten zum Ausgang, ohne Rückkopplungen.
Wie funktioniert der Backpropagation-Algorithmus?
Backpropagation berechnet den Fehler am Ausgang des Netzwerks und leitet diesen zurück, um die Gewichte der Neuronen so anzupassen, dass der Fehler minimiert wird.
Warum wird TensorFlow zum Vergleich herangezogen?
TensorFlow ist eine führende Bibliothek für maschinelles Lernen. Der Vergleich zeigt, wie effizient eine eigene Implementierung im Hinblick auf Geschwindigkeit und Genauigkeit gegenüber Profi-Tools ist.
Was sind Overfitting und Underfitting?
Overfitting bedeutet, dass das Netz die Trainingsdaten "auswendig lernt", aber bei neuen Daten versagt. Underfitting tritt auf, wenn das Netz zu einfach ist, um die Muster in den Daten überhaupt zu erkennen.
Welche Rolle spielt die Lernrate beim Training?
Die Lernrate bestimmt, wie stark die Gewichte pro Schritt angepasst werden. Eine zu hohe Rate kann das Ziel überspringen, eine zu niedrige Rate macht das Training extrem langsam.
- Arbeit zitieren
- Anonym (Autor:in), 2019, Modellierung, Implementierung und Strukturvergleich eigener neuronaler Netze zur Handschrifterkennung und Vergleich mit modernen Bibliotheken, München, GRIN Verlag, https://www.grin.com/document/900934