Emanuel Mistretta Lukas Schönbächler Neuronale Netze & OCR Emanuel Mistretta Lukas Schönbächler
Agenda Was sind neuronale Netze? Modelle für ANN Lernverfahren Neuronales Netz - Schritt für Schritt Neuronales Netz Veranschaulicht Anwendungsgebiete Anwendungsgebiet Schrifterkennung / OCR Demo OCR
Was sind neuronale Netze? Model unseres Gehirnes und Nervensystem Gebilde aus verknüpften Knotenpunkten Stark parallelisiertes Gebilde. Nicht wie Computer -> Seriell Kann wie das menschliche Gehirn “Lernen” Simples Prinzip -> Komplexes Verhalten Verschiedene Modelle, Angehensweisen
Was sind neuronale Netze? Neuronen zeigen Synapsen zeigen Input zeigen nur ganz kurz anschneiden
Modelle für Neuronale Netze Feedforward Unidirektionaler Datenfluss 1- Mehrschichtige Node-Layer
Modelle für Neuronale Netze Recurrent Bidirektionaler Datenfluss 1- Mehrschichtige Node-Layer Zyklisch Kann dadurch Gedächtnis simulieren
Verschiedene Lernverfahren Überwachtes Lernen (Supervised Learning) “Lehrer” kennt für jeden Input richtigen Output Unüberwachtes Lernen (Unsupervised Learning) Es gibt kein richtig oder falsch für Outputs. Daten werde z.B zu einem Cluster gefasst. Netz erkennt “Ähnlichkeiten”. Bestärkendes Lernen (Reinforcement Learning) System lern z.B selbst ein Spiel zu spielen. Es kennt lediglich den Score und Game Over. Es führt nun Aktionen aus und optimiert diese um den Score zu erhöhen.
Neuronales Netz - Schritt für Schritt Jede Synapse /Verbindung hat eine Gewichtung. ABER Wie entscheidet C was es als Input nehmen soll? A oder B?
Neuronales Netz - Schritt für Schritt Jede Node hat Funktion um “wichtigkeits” Wert von Input zu rechnen. Normalerweise nimmt Node den Durschnitt der Inputs als Wert f(x) wird Transfer-Funktion genannt
Neuronales Netz - Schritt für Schritt ? ? Wie wird aber das Gewicht ermittelt?
Neuronales Netz - Schritt für Schritt Gewichte werden randomisiert verteilt 0.5 0.5 0.4 0.8 0.2 0.6 0.2 Jede Node hat Funktion um “wichtigkeits” Wert von Input zu rechnen. Normalerweise nimmt Node den Durschnitt der Inputs als Wert f(x) wird Transfer-Funktion genannt
Neuronales Netz - Schritt für Schritt Backpropagation
Neuronales Netz - Schritt für Schritt Für den Input wird jeweil der erwartete Output (Node E) berechnet
Neuronales Netz - Schritt für Schritt Nun werden die berechneten Werte dem erwarteten Wert abgezogen. Diese Differenz heisst Fehler.
Neuronales Netz - Schritt für Schritt Nun werden die berechneten Werte dem erwarteten Wert abgezogen. Diese Differenz heisst Fehler. Zur Veranschaulichung wurden Zahlen verwendet. 35 23 12
Neuronales Netz - Schritt für Schritt Über die Funktion f(x)* werden die neuen Gewichtungen berechnet. *f(x) basiert auf: Alte Gewichtung, Node Input, Error und Lern-Rate
Neuronales Netz - Schritt für Schritt Nun wird nochmals mit den neuen Gewichten berechnet. Der Error wird evaluiert und die Backpropagation findet wieder statt. Dieser Prozess wird wiederholt bis die Fehlerquote minimal ist bzw. der berechnete Wert dem erwarteten Wert gleicht.
Neuronales Netz - Schritt für Schritt Dieses Verfahren benötigt viel Zeit. Lösung: Mehr Nodes Lern-Rate anpassen
Neuronales Netzwerk Veranschaulicht
Anwendungsgebiete Texterkennung Bilderkennung Klassifizierung Schrifterkennung (Optical Character Recognition / OCR) Bilderkennung Klassifizierung Stimmerkennung KI für Spiele Medizinische Diagnostik Sprachübersetzung (Google Translate)
Anwendungsgebiet Bilderkennung
Anwendungsgebiet Bilderkennung
Anwendungsgebiet Bilderkennung
Anwendungsgebiet Bilderkennung
Anwendungsgebiet Bilderkennung
Anwendungsgebiet Bilderkennung
Anwendungsgebiet Bilderkennung
Demo OCR (Optical Character Recognition) Kurze Erklärung wie das Funktioniert -> evtl. an Tafel
Fazit Daten müssen entsprechend vorbereitet sein Netzwerk kann je nach Algorithmus nur erkennen was trainiert wurde Kann sehr langsam sein Interessante Projekte Braucht viel Rechenpower In kommenden Jahren mehr und mehr im medizinischen und finanziellen Umfeld Riesiges Themengebiet mit einem grossen Anwendungspektrum
Quellen http://ischlag.github.io/2015/12/28/a-simple-backprop-explanation/ https://en.wikipedia.org/wiki/Artificial_neural_network http://playground.tensorflow.org https://www.youtube.com/watch?v=5_h13nDa6_E https://www.codeproject.com/Articles/11285/Neural-Network-OCR http://www.aosabook.org/en/500L/optical-character-recognition-ocr.html https://www.youtube.com/watch?v=5_h13nDa6_E&t=152s https://www.youtube.com/watch?v=qv6UVOQ0F44 https://www.cnet.com/news/google-translate-machine-learning-neural-networks/