Die Arbeit will herausfinden, ob künstliche neuronale Netze im Bereich der Bedarfsplanung von Großgastronomien erfolgreich eingesetzt werden können, um durch Überproduktion entstandene Lebensmittelabfälle zu reduzieren. Dabei liegt der Fokus auf künstlichen neuronalen Feed-Forward-Netzen, die zur Prognose der zukünftig verkauften Essensmengen verwendet werden. Dieses Vorhaben soll am Beispiel der Mensa der Universität Ulm umgesetzt werden, da hierfür ein repräsentativer Datensatz als Basis für die empirische Analyse zur Verfügung gestellt wurde.
Dazu wird die folgende Forschungsfrage beantwortet: Können tiefe Feed-Forward-Netze bei der Bedarfsplanung von Großgastronomien erfolgreich eingesetzt werden, um Lebensmittelabfälle zu reduzieren?
Die Arbeit gliedert sich in fünf Themenbereiche. In Kapitel 2 wird der theoretische Rahmen der Arbeit dargelegt. Dabei wird zunächst erklärt, wie maschinelles Lernen in künstlichen neuronalen Netzen funktioniert. Im weiteren Verlauf werden die mathematischen Grundlagen, mögliche Optimierungsverfahren und die verschiedenen Parameter eines künstlichen
neuronalen Netzes vorgestellt. Im dritten Kapitel wird dann erläutert, wie der Datensatz erstellt wurde und welche Eingabevariablen für die empirische Analyse verwendet wurden. Das Kapitel konzentriert sich außerdem auf die Architektur der verwendeten Netze und Datenaufbereitungsmethoden. In Kapitel 4 werden dann die erzielten Ergebnisse vorgestellt. Anschließend wird im fünften Kapitel eine Diskussion der erzielten Ergebnisse vorgenommen. Im letzten Kapitel wir dann die Forschungsfrage beantwortet. Zudem wird das Ergebnis zusammengefasst und ein Ausblick auf Erweiterungen der Arbeit gegeben.
Inhaltsverzeichnis
1 Einleitung
1.1 Lebensmittelverschwendung in Deutschland
1.2 Künstliche Intelligenz auf dem Vormarsch
1.3 Ziele & Aufbau der Arbeit
2 Theorie
2.1 Maschinelles Lernen
2.2 Künstliche neuronale Netze
2.3 Tiefe Feed-Forward-Netze
2.3.1 Definition und Topologie
2.3.2 Feature Engineering
2.3.3 Aktivierungsfunktionen in Feed-Forward-Netzen
2.4 Optimierung eines Feed-Forward-Netzes
2.4.1 Gängige Fehlerfunktionen
2.4.2 Initialisierung der Gewichte
2.4.3 Gradientenverfahren
2.4.4 Der Backpropagation-Algorithmus
3 Datensatz und Methodik
3.1 Plausibilität der ausgewählten Features
3.2 Vorgehensweise
4 Ergebnisse
4.1 Subset 1, Tagesmengen in t=-1y und t=-1d
4.2 Subset 2, Tagesmengen in t=-2y und t=-1y
4.3 Subset 3, ohne die Tagesmenge in t=-14d
4.4 Subset 4, ohne die Tagesmengen der vergangenen Jahre
4.5 Subset 5, ohne die Tagesmenge in t=-2y (I)
4.6 Subset 6, ohne die Tagesmenge in t=-2y (II)
5 Diskussion
5.1 Anwendbarkeit der Ergebnisse
5.2 Kritische Würdigung des Ergebnisses
6 Zusammenfassung und Ausblick
Literaturverzeichnis
Abbildungsverzeichnis
1.1 Bereiche der Außer-Haus-Verpflegung
2.1 Modell eines künstlichen Neurons mit drei Eingabe-Neuronen
2.2 Modell einesdreischichtigen Feed-Forward-Netzes mit drei Eingabe-Neuronen, zwei verdeckten Neuronen und einem Ausgabeneuron
2.3 Eigene Darstellung eines tiefen Feed-Forward-Netzes
2.4 Feature Engineering, eingeordnet in den Gesamtprozess des maschinellen Lernens
2.5 One-Hot-Encoding anhand eines eigenen Beispiels
2.6 Dummy-Coding anhand eines eigenen Beispiels
2.7 Graph der Heaviside-Funktion
2.8 Graph der Sigmoid-Funktion
2.9 Graph des Tangens hyperbolicus
2.10 Graph der ReLu-Funktion
2.11 Optimierung eines künstlichen neuronalen Netzes
2.12 Ableitung der Sigmoid-Funktion und des Tangens hyperbolicus
2.13 Suche des globalen Minimas der Funktion f (x) = x2 mit dem Gradientenverfahren
2.14 Visualisierung der Berechnung einer partiellen Ableitung mit dem Backpropagation Algorithmus
Abbildungsverzeichnis
3.1 Angewendeter Prozess zur Findung des finalen Modells
4.1 Ergebnis der Analyse von Subset 1
4.2 Histogramm der Analyse von Subset 1
4.3 Ergebnis der Analyse von Subset 2
4.4 Histogramm der Analyse von Subset 2
4.5 Ergebnis der Analyse von Subset 3
4.6 Histogramm der Analyse von Subset 3
4.7 Ergebnis der Analyse von Subset 4
4.8 Histogramm der Analyse von Subset 4
4.9 Ergebnis der Analyse von Subset 5
4.10 Histogramm der Analyse von Subset 5
4.11 Ergebnis der Analyse von Subset 6
4.12 Histogramm der Analyse von Subset 6
5.1 Histogramm der Abweichungen der Sollmengen im Testzeitraum des Sub sets 2
1 Einleitung
1.1 Lebensmittelverschwendung in Deutschland
Pro Sekunde gelangen in Deutschland entlang der Wertschöpfungskette rund 313 Kilogramm Nahrungsmittel in den Müll. Diese Zahl geht aus einer Studie des World Wide Fund For Nature (WWF) aus dem Jahr 2015 hervor.1 Interessant ist hierbei: Je näher das Produkt zum Endverbraucher gelangt, desto höher ist die Verschwendung. Ernte- und Prozessverluste haben hierbei einen Anteil von 28%. Der aggregierte Anteil des Handels mit den Groß- und Endverbrauchern liegt bei insgesamt 72%. Knapp 73% dieser Verluste stellen genusstaugliche Lebensmittel dar, deren Verwendung ohne Bedenken möglich wäre. Die für die Produktion dieser Lebensmittel eingesetzten Ressourcen stehen sowohl aus ökonomischer als auch aus ökologischer Sicht einem Nullertrag gegenüber. Das finanzielle Ausmaß verdeutlicht sich in einer Studie der Universität Stuttgart, die im Jahr 2012 erschienen ist und im Auftrag des Bundesverbraucherministeriums erstellt wurde. Den Schätzungen zufolge belaufen sich die Kosten der Lebensmittelverschwendung in privaten Haushalten allein in Deutschland auf bis zu 21,6 Mrd. Euro pro Jahr.2 Bei ca. 80,52 Millionen Einwohnern im Jahr 2012 bedeutet dies, dass der durchschnittliche Deutsche im Laufe seines Lebens Lebensmittel im Wert von rund 23.000 Euro wegwirft.3
Wie bereits erwähnt, leidet auch die Umwelt enorm unter diesem Missstand. Die Präsidentin des Umweltbundesamtes, Maria Krautzberger, fasste die Situation in ihrer Rede auf der Weltausstellung EXPO 2015 in Mailand zusammen:
„Allein in Deutschland machen Lebensmittelverluste ungefähr 4 Prozent der nationalen Treibhausgasemissionen aus. Weltweit verursachen LebensmittelVerluste Treibhausgasemissionen in Höhe von mehr als drei Gigatonnen - wäre dieser Bereich ein Land, wäre er der drittgrößte Emittent von Treibhausgasen nach den USA und China” 4
Der Handlungsbedarf ist also enorm und betrifft neben den privaten Haushalten auch den Handel und die Großverbraucher. Denn bereits im Jahr 2015 waren bis zu 90% der Lebensmittelabfälle im Groß- und Einzelhandel vermeidbar. Bei den Großverbrauchern belief sich die Zahl immerhin auf 70%.5 Dieser Bereich wird auch allgemein als AußerHaus-Verpflegung bezeichnet und teilt sich folgendermaßen auf:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1.1: Bereiche der Außer-Haus-Verpflegung gem. Paulus/Dossinger 1988, S.229-257
Die Außer-Haus-Verpflegung ist laut der Bundesvereinigung der Deutschen Ernährungsindustrie der zweitwichtigste Absatzkanal der Ernährungsindustrie. Des Weiteren ergab eine Analyse der npdgroup Deutschland GmbH, dass die Verbraucher in Deutschland im Jahr 2016 75,8 Mrd. Euro im Bereich der Außer-Haus-Verpflegung ausgegeben haben. Dabei ist besonders interessant, dass der am stärksten wachsende Bereich bezüglich des Umsatzes sowohl im Jahr 2015 als auch im Jahr 2016 die Arbeits- und Ausbildungsplatzverpflegung war.6 Doch diese zunächst positive Entwicklung vergrößert gleichzeitig das Problem der immer größer werdenden Lebensmittelverschwendung. Hierbei stellt sich natürlich die Frage, an welchen Stellen der Versorgungskette die Probleme am größten sind. Eine Umfrage von Gemeinschaftsverpflegungsbetrieben im Jahr 2013 auf der Messe INTERNOGRA ergab, dass die Problematik zu 63% durch Restbestände entsteht, die zwar zubereitet wurden, jedoch nicht mehr ausgegeben werden können.7 Äußerst bemerkenswert ist zudem, dass laut den Befragten (73%) die wirksamste Methode gegen Lebensmittelverschwendung eine „exakte Planung der Essensmengen auf Grundlage von Erfahrungen aus der Vergangenheit” ist.8 Groß angelegte Untersuchungen gibt es auf diesem Gebiet noch nicht. Jedoch ist einer weiteren Studie ein ähnliches Muster erkennbar: In der Untersuchung wurden in 393 Außer-Haus-Verpflegungsbetrieben Abfallmessungen durchgeführt und auch hier war der Großteil der vermeidbaren Lebensmittelabfälle auf eine Überproduktion zurückzuführen.9 Dabei ist zunächst unklar, weshalb innerhalb dieser Betriebe oftmals zu viel produziert wird. Ein Grund hierfür könnte eine mangelnde Kompetenz in Bezug auf die statistische Auswertung von Daten sein. Denn aus Daten lassen sich bekannterweise Muster extrahieren, die Informationen über wichtige Zusammenhänge enthalten. Dabei war ein persönliches Gespräch mit dem Geschäftsführer eines Unternehmens, das Bedarfsplanungen für Großgastronomien als Dienstleistung anbietet, sehr hilfreich: Aus den Analysen des Unternehmens ergab sich, dass die verwendeten Methoden, die zur Ermittlung der zukünftigen Absatzmengen einer Kantine eingesetzt werden, oftmals sehr einfach sind. Zudem hätten einige der Entscheider angegeben, dass sie bei der Bedarfsplanung sehr grob und eher „nach Gefühl" entscheiden.
1.2 Künstliche Intelligenz auf dem Vormarsch
Durch die nahezu exponentiell wachsenden Datenmengen10, die weltweit Tag für Tag entstehen, haben Algorithmen aus dem Bereich des maschinellen Lernens zuletzt immer mehr an Popularität gewonnen. Des Weiteren hat sich die Leistung von Computern, gemessen an den Gleitkommaoperationen pro Sekunde, zwischen 1956 und 2015 um den Faktor eine Billion erhöht.11 Darüber hinaus ist es mittlerweile sogar möglich, Teile der Rechenleistung von Supercomputern für einen beliebigen Zeitraum bei diversen Providern wie Amazon via Internet zu mieten. Dies hat dazu beigetragen, dass rechenintensive Optimierungsverfahren zum Trainieren von beispielsweise künstlichen neuronalen Netzen plötzlich kostengünstig anwendbar wurden. So haben künstliche Intelligenzen bereits heute vielfältig Anwendung wie etwa in der Diagnostik von Krankheiten, der IT-Sicherheit, Logistik oder Finanzwesen gefunden. In Dubai plant die Polizei bis 2030 damit, 25% der Belegschaft durch intelligente Roboter zu stellen.12 Dabei muss erwähnt werden, dass der Begriff künstliche Intelligenz an manchen Stellen irreführend wirken kann. Grundsätzlich teilt man eine künstliche Intelligenz in einen der zwei Bereiche ein: stark oder schwach. Eine starke künstliche Intelligenz ist hierbei eine Maschine, die dem Menschen in Bezug auf seine intellektuellen Fähigkeiten gleicht oder sogar überlegen ist. Eine schwache künstliche Intelligenz hingegen ist auf die Bewältigung einer spezifischen Aufgabe ausgelegt. Dies kann etwa das Erkennen von Schrift oder Sprache sein. Dabei müssen dem System zum Erlernen einer bestimmten Fähigkeit, wie beispielsweise der Klassifikation von Verkehrsschildern, lediglich eine Reihe von Eingaben und dem damit verbundenen Ergebnis mitgeteilt werden. Die Regeln, um diese Zusammenhänge zu erkennen und zu lernen, werden dabei vom System selbst erkannt.
1.3 Ziele & Aufbau der Arbeit
Die Arbeit will herausfinden, ob künstliche neuronale Netze im Bereich der Bedarfsplanung von Großgastronomien erfolgreich eingesetzt werden können, um durch Überproduktion entstandene Lebensmittelabfälle zu reduzieren. Dabei liegt der Fokus auf künstlichen neuronalen Feed-Forward-Netzen, die zur Prognose der zukünftig verkauften Essensmengen verwendet werden. Dieses Vorhaben soll am Beispiel der Mensa der Universität Ulm umgesetzt werden, da hierfür ein repräsentativer Datensatz als Basis für die empirische Analyse zur Verfügung gestellt wurde. Dazu wird die folgende Forschungsfrage beantwortet:
- Können tiefe Feed-Forward-Netze bei der Bedarfsplanung von Großgastronomien erfolgreich eingesetzt werden, um Lebensmittelabfälle zu reduzieren?
Die Arbeit gliedert sich in fünf Themenbereiche. In Kapitel 2 wird der theoretische Rahmen der Arbeit dargelegt. Dabei wird zunächst erklärt, wie maschinelles Lernen in künstlichen neuronalen Netzen funktioniert. Im weiteren Verlauf werden die mathematischen Grundlagen, mögliche Optimierungsverfahren und die verschiedenen Parameter eines künstlichen neuronalen Netzes vorgestellt. Im dritten Kapitel wird dann erläutert, wie der Datensatz erstellt wurde und welche Eingabevariablen für die empirische Analyse verwendet wurden. Das Kapitel konzentriert sich außerdem auf die Architektur der verwendeten Netze und Datenaufbereitungsmethoden. In Kapitel 4 werden dann die erzielten Ergebnisse vorgestellt. Anschließend wird im fünften Kapitel eine Diskussion der erzielten Ergebnisse vorgenommen. Im letzten Kapitel wir dann die Forschungsfrage beantwortet. Zudem wird das Ergebnis zusammengefasst und ein Ausblick auf Erweiterungen der Arbeit gegeben.
2 Theorie
2.1 Maschinelles Lernen
Wie eingangs erwähnt, ist eine schwache künstliche Intelligenz dazu in der Lage, die ihr zur Verfügung gestellten Daten so zu verarbeiten, dass sie zukünftige Entscheidungen besser treffen kann als zuvor. Dieser Prozess wird u.a. auch als maschinelles Lernen definiert.1 Damit ist hauptsächlich das fehlergesteuerte Anpassen von Parametern in einem bestehenden Modell gemeint. Aus neurobiologischer Sicht bedeutet Lernen jedoch, dass zwischen einzelnen Neuronen im menschlichen Cortex neue Verbindungen entstehen.2 Auch wenn die Definitionen des menschlichen und maschinellen Lernens nicht exakt übereinstimmen - das Ergebnis ist in beiden Fällen dasselbe: Fähigkeiten werden auf Basis von Erfahrungen neu gelernt bzw. verbessert. Existiert für das Lernen im Modell ein sog. Lehrersignal, welches die richtige Entscheidung für eine Eingabe vorgibt, so spricht man von beaufsichtigtem maschinellen Lernen (engl. Supervised Learning). Neben dem beaufsichtigtem Lernen existiert auch noch das unbeaufsichtigte Lernen (engl. Unsupervised Learning). 3 Im Rahmen dieser Arbeit wird jedoch nur auf das beaufsichtigte Lernen eingegangen. Mathematisch bedeutet beaufsichtigtes Lernen, eine reelle Funktion f: X ! Y mit f (x) = y, wobei x e X und y 2 Y, zu finden, sodass ein vorher definierter Fehlerterm wie z.B. n x [f (xi) — yi]2 mit n = |X| möglichst minimal wird. X und Y repräsentieren hierbei den Datensatz, von dessen Informationen gelernt werden soll. Jedes x e X stellt hierbei eine spezifische Ausprägung der jeweiligen Eingabemerkmale dar und ist einem bestimmten Ergebnis y e Y zugeordnet. Die Grundidee des beaufsichtigten Lernens kann an einem einfachen Beispiel noch besser verstanden werden: Angenommen man hat einen Vektor K e R^, in dem Werte von Entfernungen in der Einheit Kilometer enthalten sind und einen Vektor M e R^, der die zugehörigen Werte in der Einheit Meilen enthält. Nun will man eine Funktion g: R + ! R + finden, mit der man für ein beliebiges x e R + die jeweilige Entfernung in Meilen approximieren kann. Da man weiß, dass die Umwandlung mit einer linearen Funktion der Form g(x) = ax, mit a e R +, beschrieben werden kann, kann man zunächst einen zufälligen Wert für a annehmen und diesen Wert solange verändern, bis der Fehlerterm n 12n= 1 [g(Ki) - Mi]2 beliebig nahe 0 ist. Dabei hätte man mit einem geeigneten Optimierungsverfahren wie dem Gradientenverfahren bereits nach wenigen Iterationen eine Lösung für a, die sehr nahe dem tatsächlichen Wert von ca. 0,621371 liegt.13 In der realen Welt überwiegen jedoch oft Probleme, die meist eine nichtlineare Komponente enthalten und bei denen man vorher oft nicht weiß, welche Form die gesuchte Funktion eigentlich haben muss. Für derartige Probleme können u.a. künstliche neuronale Netze eingesetzt werden, auf die im folgenden Unterkapitel eingegangen wird.
2.2 Künstliche neuronale Netze
Die Anfänge maschinellen Lernens und künstlicher neuronaler Netze gehen auf die Arbeit von McCulloch & Pitts aus dem Jahr 1943 zurück.14 Sie wollten einen theoretischen Rahmen für die Modellierung von menschlichen Neuronen erstellen und stellten die These auf, dass es selbst mit einfachen künstlichen neuronalen Netzen theoretisch möglich ist, jede stetige und logische oder arithmetische Funktion zu approximieren.15 Diese Funktionalität wurde einige Jahrzehnte später zwar in Frage gestellt, 1989 allerdings endgültig bewiesen.16 Diese herausragende Eigenschaft ist offensichtlich auch der Grund, weshalb künstliche neuronale Netze im Bereich des beaufsichtigten maschinellen Lernens so viel Anwendung gefunden haben. Egal ob in selbstfahrenden Autos, selbstfliegenden Drohnen oder auch Systemen, die zur Erkennung von Sprache eingesetzt werden - künstliche neuronale Netze finden zahlreich Anwendung in der Lösung alltäglicher Probleme.17 Zum besseren Verständnis von künstlichen neuronalen Netzen wird zunächst das Modell eines künstlichen Neurons erklärt, welches u.a. Hauptbestandteil eines künstlichen neuronalen Netzes ist. In Abbildung 2.1 ist ein künstliches Neuron mit drei sog. Eingabe-Neuronen schematisch dargestellt:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.1: Modell eines künstlichen Neurons mit drei Eingabe-Neuronen (vgl. Brett Lantz, 2013, S. 208 11)
Wie in Abbildung 2.1 erkennbar, werden die Werte x 1,x 2 und x 3 dem Neuron als Eingabe präsentiert. Dabei sind die jeweiligen Eingabe-Neuronen unterschiedlich relevant in Bezug auf die Aktivität des Neurons. Diese Relation wird mit Hilfe der sog. Gewichte, hier w 1,w 2 und w3, dargestellt. Der Term ^2 3 =1 x, * w , wird im weiteren Schritt in die Funktion f eingesetzt, um die Ausgabe y des Neurons zu erhalten.18 Zum besseren Verständnis kann man sich folgendes Beispiel vorstellen: Man möchte den Benzinverbrauch eines Autos pro 100 Kilometer mit Hilfe des dargestellten Neurons berechnen. Als Eingabe hat man einen dreidimensionalen Vektor X e R!, wobei x 1:= Durchschnittsgeschwindigkeit, x 2:= Anzahl der Pferdestärken des Autos, x 3:= Reifendruck bei Start in Kilopascal. Natürlich haben die drei Parameter eine unterschiedliche Relevanz im Hinblick auf den durchschnittlichen Benzinverbrauch pro 100 Kilometer. Nimmt man an, dass x x den größten Einfluss hat und x 3 den kleinsten, so muss gelten: w x > w 2 > w 3. Würde man einen linearen Zusammenhang zwischen X und der Ausgabe Y vermuten, so könnte man für f die Identitätsfunktion id: R ! R, id(x) = x verwenden. D.h. das Neuron kann wie folgt als Funktion g dargestellt werden: g: R6 ! R + mit g(x x,x 2,x 3; w x ,w 2 ,w 3 ) = i^E3 =1 x i * wi). Über die Aktivierungsfunktion f ist ein künstliches neuronales Netz dazu in der Lage, Nichtlinearitäten innerhalb der Daten abzubilden.19 Später in Kapitel 2.3.3 werden verschiedene Aktivierungsfunktionen sowie ihre Vor- und Nachteile behandelt. Ein künstliches neuronales Netz besteht nun aus vielen künstlichen Neuronen, verteilt auf mehrere sog. Schichten. Dabei hat jedes vorwärtsgerichtete künstliche neuronale Netz eine Ein- und Ausgabeschicht. Zwischen diesen beiden Schichten können nun beliebig viele sog. verdeckte Schichten liegen. Die Verwendung mehrerer verdeckter Schichten ermöglicht hierbei die Modellierung von komplexeren Zusammenhängen innerhalb der Daten.20 Zur Veranschaulichung soll folgende Abbildung dienen:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.2: Modell eines 3-2-1-Netzes (vgl. Brett Lantz, 2013, S. 213) 11
Bevor das künstliche neuronale Netz in der Lage ist, von den gesehenen Daten zu lernen, muss man diese in geeigneter Form aufbereiten und evtl. um neue Attribute erweitern. Dieser Prozess der Datentransformation, auch als Feature Engineering bezeichnet, ist später maßgeblich für das erfolgreiche Lernen des künstlichen neuronalen Netzes verantwortlich.21 Aufgrund der außerordentlichen Relevanz dieses Prozesses, wird er in Kapitel 2.3.2 separat behandelt. Bei dem eingeführten künstlichen neuronalen Netz wurde davon ausgegangen, dass Informationen lediglich von der Eingabe in Richtung der Ausgabe gesendet werden können. Jedoch ist es auch möglich, dass die Ausgabe eines Neurons, welches näher zur Ausgabeschicht liegt, als Eingabe für ein Neuron, welches näher zur Eingabeschicht liegt oder als Eingabe für sich selbst verwendet werden kann. In diesem Fall spricht man von sog. rekurrenten neuronalen Netzen.22 Im Rahmen dieser Arbeit werden jedoch nur tiefe Feed-Forward-Netze behandelt und verwendet. Das Wort „tief" bezieht sich hierbei auf die Anzahl der verdeckten Schichten, die zur Modellierung komplexerer Zusammenhänge verwendet werden. Bei einem tiefen Feed-Forward-Netz verwendet man mindestens zwei verdeckte Schichten.23 Innerhalb dieser Schichten kann ein Neuron jedoch nur mit nachfolgenden Neuronen verbunden sein. Sind alle Neuronen einer vorgelagerten Schicht mit den Neuronen der nachfolgenden Schicht verbunden, so spricht man auch von vollverknüpften Schichten. Dies ist jedoch nicht zwangsweise notwendig.24 Hat man nun definiert, wie viele Schichten und Neuronen das künstliche neuronale Netz haben soll und welche Aktivierungsfunktionen verwendet werden, so folgt der wichtigste Schritt: das Einlernen. Dies bedeutet im Kontext eines künstlichen neuronalen Netzes, dass die Gewichte der Neuronen auf Basis der Trainingsdaten so festgelegt werden, dass auch für neue Eingaben eine korrekte Ausgabe erzeugt wird.25 Im weiteren Verlauf der Arbeit wird für dieses Vorhaben der notwendige mathematische Rahmen eingeführt.
2.3 Tiefe Feed-Forward-Netze
2.3.1 Definition und Topologie
Wie bereits erwähnt, kann ein künstliches neuronales Netz über die folgenden Bestandteile charakterisiert werden:
1. Anzahl der verdeckten Schichten
2. Anzahl der Neuronen in der jeweiligen Schicht
3. Verwendete Aktivierungs- und Propagierungsfunktionen
4. Gewichte zwischen den einzelnen Neuronen und Schwellwerten
5. Richtung des Informationsflusses
Im vorherigen Modell wurde als Propagierungsfunktion der Eingaben die gewichtete Summe verwendet. D.h. die Gewichte der Verbindungen wurden mit den jeweiligen Werten der Neuronen multipliziert. Dies wird im weiteren Verlauf der Arbeit ebenfalls angenommen. Zudem wird davon ausgegangen, dass für jedes Neuron innerhalb der verdeckten Schichten eine gleiche Aktivierungsfunktion f gewählt wird. Für die Ausgabeschicht kann zusätzlich eine separate Aktivierungsfunktion g gewählt werden. Sehr oft wird jedoch f = g angenommen.26 Des Weiteren sollen im Modell alle Neuronen einer vorgelagerten Schicht nur mit allen Neuronen der nachfolgenden Schicht verbunden sein (vollverknüpfte Schichten). Wie in einem tiefen Feed-Forward-Netz üblich, können Neuronen ihre Ausgaben lediglich in Richtung der Ausgabeschicht weitergeben.27 Aus Darstellungsgründen wird außerdem folgende Notation eingeführt:
Abbildung in dieser Leseprobe nicht enthalten
Sei nun und für den Rest der Arbeit L:= Die Anzahl der Schichten inkl. Ein- und Ausgabeschicht, l k:= Die Anzahl der Neuronen in Schicht k mit k e [L], f:= Die globale Aktivierungsfunktion der verdeckten Schichten, g:= Die Aktivierungsfunktion der Ausgabeschicht und wj ' n := Das Gewicht der Verbindung zwischen dem j -ten Neuron aus Schicht n und dem i-ten Neuron aus Schicht m, wobei n e [L] \ {1},m e [L - 1], n > m, i e {0} U [ l m ] und j e [ l n ]. Außerdem sei X i der Wert des i-ten Neurons der Eingabeschicht. Die Ausgabe des j -ten Neurons der Schicht n wird im Weiteren als o j bezeichnet. Dann gilt:28
Abbildung in dieser Leseprobe nicht enthalten
Der Term bias jn steht hierbei für den sog. Schwellwert des Neurons j aus Schicht n. Angelehnt an das menschliche Neuron, bei dem um Störsignale zu filtern, die eingehenden Signale so lange akkumuliert werden bis ein gewisser Schwellwert erreicht ist, führt man beim künstlichen Neuron einen Bias-Term ein.29 Dies gelingt im Modell, indem man zu jeder Schicht (bis auf die Ausgabeschicht) ein zusätzliches Neuron mit Wert 1 hinzufügt und den Bias-Term über das Gewicht zum jeweiligen Neuron steuert. Es gilt also:
Abbildung in dieser Leseprobe nicht enthalten
Dieses Vorgehen ist später im Hinblick auf das Trainieren des künstlichen neuronalen Netzes vorteilhaft, da man den Bias-Term parallel zu den Gewichten anpassen kann.30 In Bezug auf die Flexibilität des Modells trägt der Bias-Term dazu bei, dass die Aktivierungsfunktion nicht nur gestreckt, sondern auch verschoben werden kann. Außerdem wurde in Gleichung 2.2 bewusst eine rekursive Definition der Ausgabe eines künstlichen Neurons gewählt. Denn anhand dieser lässt sich bereits der verkettete Charakter eines künstlichen neuronalen Netzes erkennen. Genau von dieser Beschaffenheit lässt sich später beim Einlernen des künstlichen neuronalen Netzes Gebrauch machen. Auf Basis der getroffenen Annahmen und Definitionen lässt sich nun ein allgemeineres Schaubild als in Abbildung 2.2 für ein tiefes Feed-Forward-Netz errichten:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.3: Eigene Darstellung eines tiefen Feed-Forward-Netzes
2.3.2 Feature Engineering
Der Begriff Feature wird allgemein als numerische Repräsentation von Rohdaten definiert. Dabei ist der Begriff Feature strikt vom Begriff Merkmal zu trennen.31 Als Beispiel kann ein Datensatz herangezogen werden, welcher das jeweilige Geschlecht einer Person enthält. Das Geschlecht wäre hierbei ein Merkmal. Die Merkmalsausprägung, nämlich männlich oder weiblich, ist jedoch in einem Format, welches einem künstlichen neuronalen Netz nicht präsentiert werden kann. Es muss also zusätzlich ein Prozess stattfinden, der ein Merkmal in ein Feature transformiert, um die vollständige Information des Merkmals als numerischen Wert dem künstlichen neuronalen Netz verfügbar zu machen. Genau dieser Prozess wird als Feature Engineering bezeichnet.32 Innerhalb der Wertschöpfungskette einer Datenanalyse ist der Prozess wie folgt einzuordnen:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.4: Feature Engineering, eingeordnet in den Gesamtprozess des maschinellen Lernens (Zheng & Casari, Feature Engineering for Machine Learning (2018), S. 4 18)
Wie relevant Feature Engineering in Bezug auf die Praxis maschinellen Lernens ist, wird sehr gut in einem Zitat von Andrew Ng, einer Koryphäe auf diesem Gebiet, ersichtlich:
„Coming up with features is difficult, time-consuming, requires expert knowledge. Applied Machine Learning is basically feature engineering”33
Da Feature Engineering auch im Rahmen dieser Arbeit praktiziert wurde, werden die verwendeten Techniken im Rahmen dieses Kapitels in starker Anlehnung an Zheng & Casari (2018) vorgestellt.
Kategoriale Merkmale
Der Begriff kategoriales Merkmal bezieht sich auf Merkmale, die in Kategorien bzw. Klassen einteilbar sind.34 Dabei wird zusätzlich zwischen ordinalskalierten und nominalskalierten Merkmalen unterschieden. Zwischen ordinalskalierten Merkmalen besteht eine Rangfolge, d.h. man kann eine Aussage über deren Unterschied treffen. Als Beispiel kann eine Schulnote herangezogen werden: Der Unterschied zwischen der Note ausreichend und der Note sehr gut ist größer als der Unterschied zwischen der Note ausreichend und gut. Bei nominalskalierten Merkmalen hingegen, ist die Bildung einer Reihenfolge nicht möglich, da sie alle gleich unterschiedlich sind. Als Beispiel kann hier die Einteilung eines Sportlers in eine Sportart dienen. Ein Fußballspieler und ein Handballspieler sind genauso verschieden wie ein Fußballspieler und ein Basketballspieler. Daher muss bei der Transformation von kategorialen Merkmalen in Features immer zuerst untersucht werden, ob sie ordinal- oder nominalskaliert sind, um im Anschluss die passende Methode zu verwenden. Um ein kategoriales Merkmal in ein Feature zu transformieren, können u.a. folgende Methoden angewandt werden:35
1. One-Hot-Encoding
Als Kategorie wird im Folgenden die jeweilige Ausprägung eins kategorialen Merkmals bezeichnet. Das Merkmal Geschlecht hat bspw. zwei Kategorien, nämlich männlich und weiblich. Der Begriff Instanz bezieht sich auf eine Beobachtung innerhalb des Datensatzes, in diesem Kontext also auf eine bestimmte Person. Sei nun S M:= Die Menge der Kategorien eines Merkmals M, n = \ S M | und s, e S M , i 2 [n] eine spezifische Kategorie. Außerdem gilt, dass eine Instanz lediglich einer Kategorie angehören kann. Dann bedeutet One-Hot-Encoding, die Kategorien s x bis s n in neue Features e x bis e n zu transformieren, wobei gilt:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.5: One-Hot-Encoding anhand eines eigenen Beispiels
Abbildung in dieser Leseprobe nicht enthalten
2. Dummy-Coding
Ähnlich zum One-Hot-Encoding werden hierbei auf Basis der Kategorien eines Merkmals neue Features abgeleitet, deren Wert entweder 0 oder 1 sein kann. Jedoch entstehen bei dieser Methode lediglich n - 1 neue Features, da eine der n Kategorien als Nullvektor präsentiert wird.36 Will man also wieder das Merkmal bzgl. der Menge S M und dessen Kategorien s x bis s n in neue Features transformieren, so gilt hierbei:
Abbildung in dieser Leseprobe nicht enthalten
Zur Veranschaulichung soll wieder folgendes Beispiel dienen:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.6: Dummy-Coding anhand eines eigenen Beispiels
2.3.3 Aktivierungsfunktionen in Feed-Forward-Netzen
1. Die Heaviside-Funktion
Bedient man sich nun wiederholt am Vorbild des menschlichen Neurons, so werden eingehende Impulse nur dann weitergegeben, wenn ein bestimmter Schwellwert erreicht wird. Ist dies der Fall, so spricht man von einem feuernden Neuron. Um diese Beschaffenheit mathematisch zu modellieren, kann man die sog. Heaviside-Funktion verwenden.28 Soll das künstliche Neuron Signale weitergeben, sobald das Produkt aus Eingabe und Gewicht einen definierten Schwellwert (hier 0) erreicht hat, so ist die Heaviside-Funktion wie folgt definiert:
Abbildung in dieser Leseprobe nicht enthalten
Der große Nachteil dieser Funktion ist, dass der Wert der Ableitung an allen Stellen x = 0 genau 0 ist. Dies macht das Einlernen unmöglich, da keine Gewichtsänderung stattfinden kann.29 Es wird also eine Funktion benötigt, die in Bezug auf Monotonie und Beschränktheit von ähnlicher Beschaffenheit wie die Heaviside-Funktion ist und abgeleitet möglichst selten 0 wird. Eine weit verbreitete und auch im Rahmen dieser Arbeit angewendete Funktion ist die sog. Sigmoid-Funktion (auch Fermi-Funktion).
2. Die Sigmoid-Funktion
Der große Vorteil der Sigmoid-Funktion gegenüber der Heaviside-Funktion ist, dass sie überall differenzierbar ist, denn dadurch kann beim Einlernen des künstlichen neuronalen Netzes der Backpropagation-Algorithmus verwendet werden. Definiert ist die Funktion wie folgt:
Abbildung in dieser Leseprobe nicht enthalten
Des Weiteren liegt die Ausgabe der Sigmoid-Funktion im Bereich des Intervalls [0,1]. Dadurch bietet die Funktion dem Modell mehr Flexibilität im Gegensatz zur Heaviside- Funktion, die entweder 0 oder 1 als Ausgabe verwendet. Zusätzlich ist die Funktion nichtlinear, wodurch dem künstlichen neuronalen Netz die Möglichkeit gegeben wird, nichtlineare Relationen zwischen Eingabe und Ausgabe zu modellieren.30 Auch ist die Funktion streng monoton steigend. Diese Eigenschaft passt ebenfalls sehr gut zum menschlichen Vorbild eines Neurons.
3. Der Tangens hyperbolicus
Diese Funktion ist sehr ähnlich zur Sigmoid-Funktion, bildet allerdings auf das Inter vall [-1,1] ab. Der Tangens hyperbolicus ist wie folgt definiert:
Abbildung in dieser Leseprobe nicht enthalten
Wie den Gleichungen 2.6 und 2.7 zu entnehmen ist, ist der tank eine Art Streckung und Verschiebung der Sigmoid-Funktion, denn es gilt: tanh ( x ) = 1 — 2 * sigmoid (2 x ).
4. Die ReLu-Funktion
Die Rectified-Linear-Unit -Funktion ist ebenfalls eine oft verwendete Aktivierungsfunktion innerhalb eines künstlichen neuronalen Netzes. Definiert ist die Funktion wie folgt:
Abbildung in dieser Leseprobe nicht enthalten
Obwohl die ReLu-Funktion in x = 0 nicht differenzierbar ist, eignet sie sich dennoch sehr gut, da die Ableitung sehr schnell berechnet werden kann. Damit bei der Optimierung mit dem Backpropagation-Algorithmus kein Fehler auftritt, nimmt man oft einen künstlichen Ableitungswert in x = 0 von 0 an.31
2.4 Optimierung eines Feed-Forward-Netzes
Betrachtet man erneut die eingangs gewählte Definition des maschinellen Lernens, so funktioniert überwachtes Lernen in einem künstlichen neuronalen Netz durch das iterative Ändern der gewählten Parameter aus Kapitel 2.3.1, unter Berücksichtigung eines Ausgabefehlers. Die in diesem Kapitel vorgestellten Methoden beziehen sich jedoch lediglich auf die Änderung der Gewichte zwischen den einzelnen Neuronen und Schwellwerten. Die Anzahl der verdeckten Schichten und Neuronen innerhalb einer verdeckten Schicht wurden in der empirischen Analyse methodisch gleich, jedoch manuell optimiert. Daher werden diese nicht als dynamische Parameter im Rahmen der Optimierung angesehen. Auch wurden die verwendeten Neuronenfunktionen als statisch angesehen, da diese Veränderungen nicht gängig sind und auch nicht dem biologischen Vorbild entsprechen.32 Wieder wurde angenommen, dass die künstlichen Neuronen ihre Ausgabe lediglich in Richtung der Ausgabeschicht weitergeben. Schematisch kann der Optimierungsprozess dann anhand des folgenden Schaubilds für eine vorher definierte Fehlertoleranz e dargestellt werden:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.11: Eigene Darstellung der Optimierung eines künstlichen neuronalen Netzes auf Basis von Kriesel (2007), S. 56 15
[...]
1 vgl. Noleppa & Cartsburg, Das Grosse Wegschmeissen (2015) 1
2 vgl. Kranert et al., Ermittlung der weggeworfenen Lebensmittelmengen [...] (2012) 2
3 Eigene Berechnung bei einem Realzins von 0,78% p.a. und einer Dauer von 65 Jahren
4 vgl. Umweltbundesamt, Lebensmittelabfälle verursachen 4 Prozent der deutschen Treibhausgasemissionen (2015) 3
5 vgl. Noleppa & Cartsburg, Das Grosse Wegschmeissen (2015) 1
6 vgl. BVE, Wachsende Umsätze im deutschen Außer-Haus-Markt (2017) 4
7 vgl. Von Borstel et al., Ein Drittel landet in der Tonne (2017) 5
8 vgl. Von Borstel et al., Ein Drittel landet in der Tonne, S.11 (2017) 5
9 vgl. Von Borstel et al., Ein Drittel landet in der Tonne (2017) 5
10 vgl. Statista GmbH, Volume of data/information created worldwide from 2005 to 2025 (2019) 6
11 vgl. Experts Exchange, Processing power compared (2019) 7
12 vgl. Breslin, Meet The Terrifying New Robot Cop That's Patrolling Dubai (2017) 8
13 Eigene Berechnung
14 vgl. Yadav et al., An Introduction to Neural Network Methods for Differential Equations (2015) 12
15 vgl. McCulloch & Pitts, A logical calculus of the ideas immanent in nervous activity (1943) 13
16 vgl. Hornik et al., Multilayer Feedforward Networks are Universal Approximators (1989) 14
17 vgl. Brett Lantz, Machine Learning with R (2013) 11
18 vgl. Brett Lantz, Machine Learning with R (2013) 11
19 vgl. Kriesel, Ein kleiner Überblick über Neuronale Netze (2007) 15
20 vgl. Brett Lantz, Machine Learning with R (2013) 11
21 vgl. Bengio et al. (2013), Representation Learning: A Review and New Perspectives 16
22 vgl. Kriesel, Ein kleiner Überblick über Neuronale Netze (2007) 15
23 vgl. Kriesel, Ein kleiner Überblick über Neuronale Netze (2007) 15
24 vgl. Kriesel, Ein kleiner Überblick über Neuronale Netze (2007) 15
25 vgl. Kriesel, Ein kleiner Überblick über Neuronale Netze (2007) 15
26 vgl. Kriesel, Ein kleiner Überblick über Neuronale Netze (2007) 15
27 vgl. Kriesel, Ein kleiner Überblick über Neuronale Netze (2007) 15
28 vgl. Hastie et al., The Elements of Statistical Learning (2009) 17
29 vgl. Brett Lantz, Machine Learning with R (2013) 11
30 vgl. Kriesel, Ein kleiner Überblick über Neuronale Netze (2007) 15
31 vgl. Zheng & Casari, Feature Engineering for Machine Learning (2018) 18
32 vgl. Zheng & Casari, Feature Engineering for Machine Learning (2018) 18
33 Andrew Ng - Machine Learning via Large-scale Brain Simulations 19
34 vgl. Zheng & Casari, Feature Engineering for Machine Learning (2018) 18
35 vgl. Zheng & Casari, Feature Engineering for Machine Learning (2018) 18
36 vgl. Zheng & Casari, Feature Engineering for Machine Learning (2018) 18
-
-
-
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X.