SlideShare ist ein Scribd-Unternehmen logo
#WISSENTEILEN
Machine Learning
mit TensorFlow.js
#WISSENTEILEN
@DJCordhose
Head of AI
OPEN KNOWLEDGE
Oliver Zeigermann
Dev
AI & ML
Architecture
MLOps
<
<
<
<
#WISSENTEILEN
Zeit für
Fragen?
Immer!
Teil I
Grundlagen von Machin Learning
Agenda
1. ML Basics
2. Phase 0: Ideenfindung
3. Phase 1: Überprüfung / Konzeption
4. Phase 2: Umsetzung / Eine Anwendung erstellen
5. Phase 3: Verwendung / Betrieb
Agenda
1. ML Basics
2. Phase 0: Ideenfindung
3. Phase 1: Überprüfung / Konzeption
4. Phase 2: Umsetzung / Eine Anwendung erstellen
5. Phase 3: Verwendung / Betrieb
Klassische Entwicklung
OK
tu das
Klassische Entwicklung Machine Learning
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
tu das
finde ein
abstraktes
Konzept
OK
Ich tue
mein
Bestes.
künstliche Intelligenz
starke
KI
schwache KI
echte Nachbildung des
menschlichen Bewusstseins
(bis heute nicht existent)
Maschine, die
menschliches
Verhalten (teilweise)
imitiert
künstliche Intelligenz
starke
KI
schwache KI
Machine
Learning
echte Nachbildung des
menschlichen Bewusstseins
(bis heute nicht existent)
Teilgebiet der künstlichen
Intelligenz: lernt mittels
statistischer Methoden
und kann sich anhand von
Erfahrungen verbessern
Maschine, die
menschliches
Verhalten (teilweise)
imitiert
Teilgebiet des Machine
Learnings: bedient sich
mehrschichtiger neuronaler
Netze zum Lernen/Entscheiden
künstliche Intelligenz
starke
KI
schwache KI
Deep
Learning
Machine
Learning
echte Nachbildung des
menschlichen Bewusstseins
(bis heute nicht existent)
Teilgebiet der künstlichen
Intelligenz: lernt mittels
statistischer Methoden
und kann sich anhand von
Erfahrungen verbessern
Maschine, die
menschliches
Verhalten (teilweise)
imitiert
Machine Learning
• KI ist keine Magie
• KI ist eher "künftig Informatik"
• Machine Learning is die zur Zeit wichtigste Technik im Bereich
KI
• Machine Learning ist eine alternative Art, Software zu
entwickeln
• KI/ML ist Digitalisierung 2.0
Wann ist KI/ML sinnvoll?
• Die Lösung des vorliegenden Problems ist unbekannt oder schwer
zu spezifizieren
• Es liegen Daten mit einer klaren, einfachen Eingabe und bestenfalls
auch passender Ausgabe vor
• Es gibt Muster in der Eingabe, die zur Vorhersage verwendet
werden können
• Die Lösung des Problems kann Fehler oder Unsicherheiten
tolerieren
• 80% Genauigkeit werden selten übertroffen
• Wir sind bereit und in der Lage, in einer initialen Phase Experimente
mit offenem Ausgang durchzuführen
@nsthorat @jsconfeu 2019
TensorFlow.js
• https://www.tensorflow.org/js
• Die API entspricht im wesentlichen der High-Level Keras API
von TensorFlow
https://www.tensorflow.org/js
@nsthorat @jsconfeu 2019
Abstraktionen in TF.js
Unser erstes Programm in TF.js
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
model.compile({loss: 'meanSquaredError', optimizer:
'sgd'});
const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);
await model.fit(xs, ys, {epochs: 100})
model.predict(tf.tensor2d([6], [1, 1])).print();
https://js.tensorflow.org/api/latest/
Wie funktionieren „normale“ Schichten
https://playground.tensorflow.org/
Ideenfindung
Überprüfung/
Konzeption
Umsetzung Verwendung
Der besondere Prozess
in einem KI-Projekt
Agenda
1. ML Basics
2. Phase 0: Ideenfindung
3. Phase 1: Überprüfung / Konzeption
4. Phase 2: Umsetzung / Eine Anwendung erstellen
5. Phase 3: Verwendung / Betrieb
Ideenfindung
Überprüfung/
Konzeption
Umsetzung Verwendung
Phase 0
Ideenfindung
Die Anwendung heute: Bilderkennung
• Was ist auf einem Bild?
• Imitationslernen (aka Supervised Learning)
• Der Maschine werden viele paare von Beispielen gegeben
• Die Hoffnung ist, dass die Maschine darüber auf die Gemeinsamkeit
der Beispiele generalisiert
• Klassifikation: eine oder mehrere Kategorien erkennen
• Ist ein Hund auf dem Bild?
• Regression: eine kontinuierliche Zahl vorhersagen
• Wie viel eines Bergs ist (noch) mit Eis bedeckt
Beispiel: Erkennung von Bauteilen
https://play.google.com/store/apps/details?id=de.geberit.pr
oapp
Das geht natürlich nicht nur für
Drückerplatten
• Welches Kfz-Bauteil hab ich vor mir und was ist darin?
• Welches Haustier hab ich vor mir und was braucht es?
• Welche Pflanze hab ich vor mir
• Vorsicht bei Pilzen
• Was für eine Situation liegt vor bei Personen
• Pflegebedürftige Personen
• Gruppen von Menschen
Die Herangehensweise ist unabhängig von der Domäne
immer dieselbe
Fertige AWS Services
• Typische Objekte erkennen
• Wird Schutzausrüstung getragen?
• Texte aus Bildern extrahieren
• Prominente erkennen
• Erkennung unsicherer Bilder (Gewalt, Nackheit, Drogen)
• Gesichtsvergleich: stellen zwei Bilder dieselbe Person dar?
• Gesichtsanalyse: Lokalisierung von Augen etc, sind Augen offen,
Stimmung
• Gesichtserkennung: ist ein Gesicht in einer Liste von bekannten
Gesichtern?
https://aws.amazon.com/de/rekognition/image-features/
Agenda
1. ML Basics
2. Phase 0: Ideenfindung
3. Phase 1: Überprüfung / Konzeption
4. Phase 2: Umsetzung / Eine Anwendung erstellen
5. Phase 3: Verwendung / Betrieb
Ideenfindung
Überprüfung/
Konzeption
Umsetzung Verwendung
Phase I
Überprüfung / Konzeption
Teachable Machine
https://teachablemachine.withgoogle.com/
• Basiert auf TensorFlow.js
• Grafische Schnittstelle, um schnell einen Eindruck in die
Konzepte von ML zu bekommen
• Tauglich, um schnell eine Idee auszuprobieren
• Erlaubt den export des TF.js Modells und spuckt Code aus, mit
dem man das Modell laden und benutzen kann
• Nutzt eine vordefinierte Modell-Architektur (mehr dazu später)
Umsetzung mit Teachable Machine
https://teachablemachine.withgoogle.com/train/image
Aufgabe 1: Training eines Modells
Sammele Daten, trainieren damit ein Modell und bewerte die
Ergebnisse
• Bleibt gern im Team mit deinem Nachbarn
• Ins WLAN einloggen (wir brauchen Internet)
• Trainiere ein Modell zur Bilderkennung mit Teachable Machine
1. https://teachablemachine.withgoogle.com/train/image
2. Wie viele Klassen?
3. Modell trainieren
4. Modell ausprobieren
5. Bei Bedarf iterieren
• Finde Schwächen und Stärken deines Modells
30 Minuten
Wie funktioniert das?
Deep Learning: Abfolge von Schichten
Faltungen als Basis von Feature-
Erkennung
https://setosa.io/ev/image-kernels/
Deep Learning: Schichten im Live-Betrieb
https://transcranial.github.io/keras-js/#/mnist-cnn
Überblick Architekturen für Bilderkennung
https://towardsdatascience.com/neural-network-
architectures-156e5bad51ba
Agenda
1. ML Basics
2. Phase 0: Ideenfindung
3. Phase 1: Überprüfung / Konzeption
4. Phase 2: Umsetzung / Eine Anwendung erstellen
5. Phase 3: Verwendung / Betrieb
Ideenfindung
Überprüfung/
Konzeption
Umsetzung Verwendung
Phase II
Umsetzung
Einbindung / Interaktion
• Korrektur
• Vorschlag
• Automatisierung
• Arten
• komplett
• teilweise (anhand von Sicherheit der Vorhersage)
• Impact vs Genauigkeit bestimmt, in welchem Maße dies möglich ist
• Erklärbarkeit wichtig
Vertrauen kalibrieren
https://pair.withgoogle.com/worksheet/explainability-trust.pdf
Typisches Deployment eines Machine Learning Services
ML-Service
Model (ML)
Adapter
(Code)
Prediction Request
• Pre-Process
• Route
• Circuit breaker
• Post-Process
• Filter
• Circuit breaker
HTTP-Service
(Flash, FastAPI, …)
TensorFlow ist großzügig im Deployment-
Modell
Aufgabe 2: Eine Anwendung mit dem
Modell erstellen
Überlege wie du dein Modell in eine Anwendung bringen könntest
und lade das passende Modell herunter
• Bleibt gern im Team mit deinem Nachbarn
• Welche Art von UX passt zu deinem Anwendungsbeispiel?
• Welche Genauigkeit solltest du erreichen, damit die Anwendung
sinnvoll ist?
• Wie betreibst du deine Anwendung? Im Frontend oder Backend?
• Welche Architektur-Entscheidung ist jetzt zu treffen?
• Hier reicht die Idee, die Umsetzung ist natürlich aufwändig
10 Minuten
Agenda
1. ML Basics
2. Phase 0: Ideenfindung
3. Phase 1: Überprüfung / Konzeption
4. Phase 2: Umsetzung / Eine Anwendung erstellen
5. Phase 3: Verwendung / Betrieb
Ideenfindung
Überprüfung/
Konzeption
Umsetzung Verwendung
Phase III
Verwendung
Zeit
Qualität
Machine Learning Anwendungen
brauchen Wartung
Zeit
Qualität
Modell Anpassung
Zeit
Qualität
Machine Learning Anwendungen
brauchen Wartung
Drift-Monitoring im Betrieb
Wenn sich die Welt verändert sich,
müssen wir uns mit anpassen
https://docs.seldon.io/projects/alibi-
detect/en/stable/cd/background.html#what-is-drift
Aufgabe 3: Drift
Wie kannst du die Aktualität deines Modells überprüfen?
• Bleibt gern im Team mit deinem Nachbarn
• Ist eine Veränderung deiner Domäne zu erwarten?
• Kannst du nach einer Vorhersage das korrekte Label
bekommen?
• Durch Feedback vom Menschen
• Durch eingetretene Realität
• Mit welcher Verzögerung?
• Wie könnte man so etwas monitoren?
10 Minuten
Zusammenfassung
• Machine Learning kann einen großen Vorteil gegenüber
klassischer Entwicklung haben
• Man kann ein Machine Learning Projekt in Phasen modellieren
• Es müssen viele Dinge so wie oder so ähnlich wie bei einem
klassischen Projekt durchdacht werden
• Das Monitoring erfordert besonderes Augenmerk
Teil II
TensorFlow.js API
Ein Modell von 0 mit der TensorFlow-API
• Dieses Mal konzentrieren wir uns nicht auf die Daten, sondern
auf API von TensorFlow.js
• Wir gehen gemeinsam Schritt für Schritt durch ein TensorFlow
CodeLab
• Wir erarbeiten uns auf dem Weg die Notwendigen Grundlagen
• Am Ende haben wir lauffähigen Code für komplettes Training
und Vorhersage
• Wir brauchen wieder die IDE deiner Wahl
https://js.tensorflow.org/api/latest/
Aufgabe 3: Wir bauen Training und
Vorhersage direkt mit JavaScript
Schritte für das Training
1. Daten laden und für das Training vorbereiten
2. Die Architektur des Modells festlegen
3. Modell trainieren und Qualität bewerten
4. Vorhersagen mit dem Modell machen
https://codelabs.developers.google.com/codelabs/tfjs-training-
regression
Typische ML-Anwendungen
• Bilderkennung
• Ähnlichkeits- und Anomalie-Erkennung
• Text-Klassifikation
• Vorhersage
AI/ML Show-Cases:
Berechnen von Eisflächen
AI/ML Show-Cases:
Qualitätssicherung in der Produktion
AI/ML Show-Cases:
Sales Prediction
https://huggingface.co/facebook/bart-large-mnl
AI/ML Show-Cases:
Kategorisierung von Texten
Was könnt ihr tun für eurer erstes ML
Projekt?
• Machine Learning ist kein Selbstzweck
• Geschäftsnutzen ist immer Ziel
• Oft liegen Schätze aber im verborgenen und warten auf
Entdeckung
• Sensibilität für das Thema schaffen, insbesondere bei
Managern
• Eine Liste sinnvoller Anwendungen kann hilfreich sein
• Die TensorFlow.js API ist relativ einfach
• Die Herausforderung liegt in den dahinter liegenden Konzepten
#WISSENTEILEN
Vielen
Dank!
#WISSENTEILEN
by open knowledge GmbH
@_openKnowledge | @DJCordhose
Oliver Zeigermann, Head of AI

Weitere ähnliche Inhalte

Ähnlich wie Machine Learning mit TensorFlow.js

Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
Sebastian Springer
 
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis NachhaltigkeitUI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
Nico Orschel
 
Beyond Agile - when Freedom grows to Quality and Speed
Beyond Agile - when Freedom grows to Quality and SpeedBeyond Agile - when Freedom grows to Quality and Speed
Beyond Agile - when Freedom grows to Quality and Speed
Sebastian Bernt
 
Technische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte EntwicklungsperformanceTechnische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte Entwicklungsperformance
OPEN KNOWLEDGE GmbH
 
objectiF extrem
objectiF extremobjectiF extrem
objectiF extrem
Olaf Lewitz
 
Mobile Blended Learning mit Mobler Cards
Mobile Blended Learning mit Mobler CardsMobile Blended Learning mit Mobler Cards
Mobile Blended Learning mit Mobler Cards
Christian Glahn
 
OOP 2012 - Udo Pracht - DevOps Einführung und Überblick
OOP 2012 - Udo Pracht - DevOps Einführung und ÜberblickOOP 2012 - Udo Pracht - DevOps Einführung und Überblick
OOP 2012 - Udo Pracht - DevOps Einführung und Überblick
Udo Pracht
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungen
gedoplan
 
Joomla! Overrides - Die zu wenig genutzte Vielfalt
Joomla! Overrides - Die zu wenig genutzte VielfaltJoomla! Overrides - Die zu wenig genutzte Vielfalt
Joomla! Overrides - Die zu wenig genutzte Vielfalt
Sven Schultschik
 
Stay calm & keep shipping - iOS DevCon 2013
Stay calm & keep shipping - iOS DevCon 2013Stay calm & keep shipping - iOS DevCon 2013
Stay calm & keep shipping - iOS DevCon 2013
superflomo
 
DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011
Ulrich Krause
 
XPages From Zero To Hero
XPages From Zero To HeroXPages From Zero To Hero
XPages From Zero To Hero
Christian Güdemann
 
Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI
Florian Bosselmann
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Andreas Wissel
 
DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
DevDay 2016 Keynote - Die Evolution agiler Software EntwicklungDevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
Marc Müller
 
Enterprise JS
Enterprise JS Enterprise JS
Enterprise JS
Oliver Ochs
 
Technologiemanagement Agile Transformationen
Technologiemanagement Agile TransformationenTechnologiemanagement Agile Transformationen
Technologiemanagement Agile Transformationen
Björn Schotte
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
Ulrich Krause
 

Ähnlich wie Machine Learning mit TensorFlow.js (20)

Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
 
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis NachhaltigkeitUI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
 
Beyond Agile - when Freedom grows to Quality and Speed
Beyond Agile - when Freedom grows to Quality and SpeedBeyond Agile - when Freedom grows to Quality and Speed
Beyond Agile - when Freedom grows to Quality and Speed
 
Technische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte EntwicklungsperformanceTechnische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte Entwicklungsperformance
 
objectiF extrem
objectiF extremobjectiF extrem
objectiF extrem
 
Mobile Blended Learning mit Mobler Cards
Mobile Blended Learning mit Mobler CardsMobile Blended Learning mit Mobler Cards
Mobile Blended Learning mit Mobler Cards
 
OOP 2012 - Udo Pracht - DevOps Einführung und Überblick
OOP 2012 - Udo Pracht - DevOps Einführung und ÜberblickOOP 2012 - Udo Pracht - DevOps Einführung und Überblick
OOP 2012 - Udo Pracht - DevOps Einführung und Überblick
 
20110406 activiti april
20110406 activiti april20110406 activiti april
20110406 activiti april
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungen
 
Joomla! Overrides - Die zu wenig genutzte Vielfalt
Joomla! Overrides - Die zu wenig genutzte VielfaltJoomla! Overrides - Die zu wenig genutzte Vielfalt
Joomla! Overrides - Die zu wenig genutzte Vielfalt
 
Stay calm & keep shipping - iOS DevCon 2013
Stay calm & keep shipping - iOS DevCon 2013Stay calm & keep shipping - iOS DevCon 2013
Stay calm & keep shipping - iOS DevCon 2013
 
DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011
 
XPages From Zero To Hero
XPages From Zero To HeroXPages From Zero To Hero
XPages From Zero To Hero
 
Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
 
DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
DevDay 2016 Keynote - Die Evolution agiler Software EntwicklungDevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
 
Enterprise JS
Enterprise JS Enterprise JS
Enterprise JS
 
Technologiemanagement Agile Transformationen
Technologiemanagement Agile TransformationenTechnologiemanagement Agile Transformationen
Technologiemanagement Agile Transformationen
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
 
20110223 activiti
20110223 activiti20110223 activiti
20110223 activiti
 

Mehr von OPEN KNOWLEDGE GmbH

Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AIWarum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
OPEN KNOWLEDGE GmbH
 
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
OPEN KNOWLEDGE GmbH
 
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die CloudFrom Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
OPEN KNOWLEDGE GmbH
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
OPEN KNOWLEDGE GmbH
 
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data ImputationFEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
OPEN KNOWLEDGE GmbH
 
Nie wieder Log-Files!
Nie wieder Log-Files!Nie wieder Log-Files!
Nie wieder Log-Files!
OPEN KNOWLEDGE GmbH
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!
OPEN KNOWLEDGE GmbH
 
From Zero to still Zero: The most beautiful mistakes going into the cloud.
From Zero to still Zero: The most beautiful mistakes going into the cloud. From Zero to still Zero: The most beautiful mistakes going into the cloud.
From Zero to still Zero: The most beautiful mistakes going into the cloud.
OPEN KNOWLEDGE GmbH
 
API Expand Contract
API Expand ContractAPI Expand Contract
API Expand Contract
OPEN KNOWLEDGE GmbH
 
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & CoReady for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
OPEN KNOWLEDGE GmbH
 
Shared Data in verteilten Architekturen
Shared Data in verteilten ArchitekturenShared Data in verteilten Architekturen
Shared Data in verteilten Architekturen
OPEN KNOWLEDGE GmbH
 
KI und Architektur
KI und ArchitekturKI und Architektur
KI und Architektur
OPEN KNOWLEDGE GmbH
 
It's not Rocket Science: Neuronale Netze
It's not Rocket Science: Neuronale NetzeIt's not Rocket Science: Neuronale Netze
It's not Rocket Science: Neuronale Netze
OPEN KNOWLEDGE GmbH
 
Shared Data in verteilten Systemen
Shared Data in verteilten SystemenShared Data in verteilten Systemen
Shared Data in verteilten Systemen
OPEN KNOWLEDGE GmbH
 
Business-Mehrwert durch KI
Business-Mehrwert durch KIBusiness-Mehrwert durch KI
Business-Mehrwert durch KI
OPEN KNOWLEDGE GmbH
 
Mehr Sicherheit durch Automatisierung
Mehr Sicherheit durch AutomatisierungMehr Sicherheit durch Automatisierung
Mehr Sicherheit durch Automatisierung
OPEN KNOWLEDGE GmbH
 
API-Design, Microarchitecture und Testing
API-Design, Microarchitecture und TestingAPI-Design, Microarchitecture und Testing
API-Design, Microarchitecture und Testing
OPEN KNOWLEDGE GmbH
 
Supersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusSupersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: Quarkus
OPEN KNOWLEDGE GmbH
 
Hilfe, ich will meinen Monolithen zurück!
Hilfe, ich will meinen Monolithen zurück!Hilfe, ich will meinen Monolithen zurück!
Hilfe, ich will meinen Monolithen zurück!
OPEN KNOWLEDGE GmbH
 
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
OPEN KNOWLEDGE GmbH
 

Mehr von OPEN KNOWLEDGE GmbH (20)

Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AIWarum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
 
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
 
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die CloudFrom Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data ImputationFEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
 
Nie wieder Log-Files!
Nie wieder Log-Files!Nie wieder Log-Files!
Nie wieder Log-Files!
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!
 
From Zero to still Zero: The most beautiful mistakes going into the cloud.
From Zero to still Zero: The most beautiful mistakes going into the cloud. From Zero to still Zero: The most beautiful mistakes going into the cloud.
From Zero to still Zero: The most beautiful mistakes going into the cloud.
 
API Expand Contract
API Expand ContractAPI Expand Contract
API Expand Contract
 
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & CoReady for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
 
Shared Data in verteilten Architekturen
Shared Data in verteilten ArchitekturenShared Data in verteilten Architekturen
Shared Data in verteilten Architekturen
 
KI und Architektur
KI und ArchitekturKI und Architektur
KI und Architektur
 
It's not Rocket Science: Neuronale Netze
It's not Rocket Science: Neuronale NetzeIt's not Rocket Science: Neuronale Netze
It's not Rocket Science: Neuronale Netze
 
Shared Data in verteilten Systemen
Shared Data in verteilten SystemenShared Data in verteilten Systemen
Shared Data in verteilten Systemen
 
Business-Mehrwert durch KI
Business-Mehrwert durch KIBusiness-Mehrwert durch KI
Business-Mehrwert durch KI
 
Mehr Sicherheit durch Automatisierung
Mehr Sicherheit durch AutomatisierungMehr Sicherheit durch Automatisierung
Mehr Sicherheit durch Automatisierung
 
API-Design, Microarchitecture und Testing
API-Design, Microarchitecture und TestingAPI-Design, Microarchitecture und Testing
API-Design, Microarchitecture und Testing
 
Supersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusSupersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: Quarkus
 
Hilfe, ich will meinen Monolithen zurück!
Hilfe, ich will meinen Monolithen zurück!Hilfe, ich will meinen Monolithen zurück!
Hilfe, ich will meinen Monolithen zurück!
 
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
 

Machine Learning mit TensorFlow.js

  • 2. #WISSENTEILEN @DJCordhose Head of AI OPEN KNOWLEDGE Oliver Zeigermann Dev AI & ML Architecture MLOps < < < <
  • 4. Teil I Grundlagen von Machin Learning
  • 5. Agenda 1. ML Basics 2. Phase 0: Ideenfindung 3. Phase 1: Überprüfung / Konzeption 4. Phase 2: Umsetzung / Eine Anwendung erstellen 5. Phase 3: Verwendung / Betrieb
  • 6. Agenda 1. ML Basics 2. Phase 0: Ideenfindung 3. Phase 1: Überprüfung / Konzeption 4. Phase 2: Umsetzung / Eine Anwendung erstellen 5. Phase 3: Verwendung / Betrieb
  • 8. Klassische Entwicklung Machine Learning - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - tu das finde ein abstraktes Konzept OK Ich tue mein Bestes.
  • 9. künstliche Intelligenz starke KI schwache KI echte Nachbildung des menschlichen Bewusstseins (bis heute nicht existent) Maschine, die menschliches Verhalten (teilweise) imitiert
  • 10. künstliche Intelligenz starke KI schwache KI Machine Learning echte Nachbildung des menschlichen Bewusstseins (bis heute nicht existent) Teilgebiet der künstlichen Intelligenz: lernt mittels statistischer Methoden und kann sich anhand von Erfahrungen verbessern Maschine, die menschliches Verhalten (teilweise) imitiert
  • 11. Teilgebiet des Machine Learnings: bedient sich mehrschichtiger neuronaler Netze zum Lernen/Entscheiden künstliche Intelligenz starke KI schwache KI Deep Learning Machine Learning echte Nachbildung des menschlichen Bewusstseins (bis heute nicht existent) Teilgebiet der künstlichen Intelligenz: lernt mittels statistischer Methoden und kann sich anhand von Erfahrungen verbessern Maschine, die menschliches Verhalten (teilweise) imitiert
  • 12. Machine Learning • KI ist keine Magie • KI ist eher "künftig Informatik" • Machine Learning is die zur Zeit wichtigste Technik im Bereich KI • Machine Learning ist eine alternative Art, Software zu entwickeln • KI/ML ist Digitalisierung 2.0
  • 13. Wann ist KI/ML sinnvoll? • Die Lösung des vorliegenden Problems ist unbekannt oder schwer zu spezifizieren • Es liegen Daten mit einer klaren, einfachen Eingabe und bestenfalls auch passender Ausgabe vor • Es gibt Muster in der Eingabe, die zur Vorhersage verwendet werden können • Die Lösung des Problems kann Fehler oder Unsicherheiten tolerieren • 80% Genauigkeit werden selten übertroffen • Wir sind bereit und in der Lage, in einer initialen Phase Experimente mit offenem Ausgang durchzuführen
  • 15. TensorFlow.js • https://www.tensorflow.org/js • Die API entspricht im wesentlichen der High-Level Keras API von TensorFlow https://www.tensorflow.org/js
  • 17. Unser erstes Programm in TF.js const model = tf.sequential(); model.add(tf.layers.dense({units: 1, inputShape: [1]})); model.compile({loss: 'meanSquaredError', optimizer: 'sgd'}); const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]); const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]); await model.fit(xs, ys, {epochs: 100}) model.predict(tf.tensor2d([6], [1, 1])).print(); https://js.tensorflow.org/api/latest/
  • 18. Wie funktionieren „normale“ Schichten https://playground.tensorflow.org/
  • 20. Agenda 1. ML Basics 2. Phase 0: Ideenfindung 3. Phase 1: Überprüfung / Konzeption 4. Phase 2: Umsetzung / Eine Anwendung erstellen 5. Phase 3: Verwendung / Betrieb
  • 22. Die Anwendung heute: Bilderkennung • Was ist auf einem Bild? • Imitationslernen (aka Supervised Learning) • Der Maschine werden viele paare von Beispielen gegeben • Die Hoffnung ist, dass die Maschine darüber auf die Gemeinsamkeit der Beispiele generalisiert • Klassifikation: eine oder mehrere Kategorien erkennen • Ist ein Hund auf dem Bild? • Regression: eine kontinuierliche Zahl vorhersagen • Wie viel eines Bergs ist (noch) mit Eis bedeckt
  • 23. Beispiel: Erkennung von Bauteilen https://play.google.com/store/apps/details?id=de.geberit.pr oapp
  • 24. Das geht natürlich nicht nur für Drückerplatten • Welches Kfz-Bauteil hab ich vor mir und was ist darin? • Welches Haustier hab ich vor mir und was braucht es? • Welche Pflanze hab ich vor mir • Vorsicht bei Pilzen • Was für eine Situation liegt vor bei Personen • Pflegebedürftige Personen • Gruppen von Menschen Die Herangehensweise ist unabhängig von der Domäne immer dieselbe
  • 25. Fertige AWS Services • Typische Objekte erkennen • Wird Schutzausrüstung getragen? • Texte aus Bildern extrahieren • Prominente erkennen • Erkennung unsicherer Bilder (Gewalt, Nackheit, Drogen) • Gesichtsvergleich: stellen zwei Bilder dieselbe Person dar? • Gesichtsanalyse: Lokalisierung von Augen etc, sind Augen offen, Stimmung • Gesichtserkennung: ist ein Gesicht in einer Liste von bekannten Gesichtern? https://aws.amazon.com/de/rekognition/image-features/
  • 26. Agenda 1. ML Basics 2. Phase 0: Ideenfindung 3. Phase 1: Überprüfung / Konzeption 4. Phase 2: Umsetzung / Eine Anwendung erstellen 5. Phase 3: Verwendung / Betrieb
  • 28. Teachable Machine https://teachablemachine.withgoogle.com/ • Basiert auf TensorFlow.js • Grafische Schnittstelle, um schnell einen Eindruck in die Konzepte von ML zu bekommen • Tauglich, um schnell eine Idee auszuprobieren • Erlaubt den export des TF.js Modells und spuckt Code aus, mit dem man das Modell laden und benutzen kann • Nutzt eine vordefinierte Modell-Architektur (mehr dazu später)
  • 29. Umsetzung mit Teachable Machine https://teachablemachine.withgoogle.com/train/image
  • 30. Aufgabe 1: Training eines Modells Sammele Daten, trainieren damit ein Modell und bewerte die Ergebnisse • Bleibt gern im Team mit deinem Nachbarn • Ins WLAN einloggen (wir brauchen Internet) • Trainiere ein Modell zur Bilderkennung mit Teachable Machine 1. https://teachablemachine.withgoogle.com/train/image 2. Wie viele Klassen? 3. Modell trainieren 4. Modell ausprobieren 5. Bei Bedarf iterieren • Finde Schwächen und Stärken deines Modells 30 Minuten
  • 32. Deep Learning: Abfolge von Schichten
  • 33. Faltungen als Basis von Feature- Erkennung https://setosa.io/ev/image-kernels/
  • 34. Deep Learning: Schichten im Live-Betrieb https://transcranial.github.io/keras-js/#/mnist-cnn
  • 35. Überblick Architekturen für Bilderkennung https://towardsdatascience.com/neural-network- architectures-156e5bad51ba
  • 36. Agenda 1. ML Basics 2. Phase 0: Ideenfindung 3. Phase 1: Überprüfung / Konzeption 4. Phase 2: Umsetzung / Eine Anwendung erstellen 5. Phase 3: Verwendung / Betrieb
  • 38. Einbindung / Interaktion • Korrektur • Vorschlag • Automatisierung • Arten • komplett • teilweise (anhand von Sicherheit der Vorhersage) • Impact vs Genauigkeit bestimmt, in welchem Maße dies möglich ist • Erklärbarkeit wichtig
  • 40. Typisches Deployment eines Machine Learning Services ML-Service Model (ML) Adapter (Code) Prediction Request • Pre-Process • Route • Circuit breaker • Post-Process • Filter • Circuit breaker HTTP-Service (Flash, FastAPI, …)
  • 41. TensorFlow ist großzügig im Deployment- Modell
  • 42. Aufgabe 2: Eine Anwendung mit dem Modell erstellen Überlege wie du dein Modell in eine Anwendung bringen könntest und lade das passende Modell herunter • Bleibt gern im Team mit deinem Nachbarn • Welche Art von UX passt zu deinem Anwendungsbeispiel? • Welche Genauigkeit solltest du erreichen, damit die Anwendung sinnvoll ist? • Wie betreibst du deine Anwendung? Im Frontend oder Backend? • Welche Architektur-Entscheidung ist jetzt zu treffen? • Hier reicht die Idee, die Umsetzung ist natürlich aufwändig 10 Minuten
  • 43. Agenda 1. ML Basics 2. Phase 0: Ideenfindung 3. Phase 1: Überprüfung / Konzeption 4. Phase 2: Umsetzung / Eine Anwendung erstellen 5. Phase 3: Verwendung / Betrieb
  • 48. Wenn sich die Welt verändert sich, müssen wir uns mit anpassen https://docs.seldon.io/projects/alibi- detect/en/stable/cd/background.html#what-is-drift
  • 49. Aufgabe 3: Drift Wie kannst du die Aktualität deines Modells überprüfen? • Bleibt gern im Team mit deinem Nachbarn • Ist eine Veränderung deiner Domäne zu erwarten? • Kannst du nach einer Vorhersage das korrekte Label bekommen? • Durch Feedback vom Menschen • Durch eingetretene Realität • Mit welcher Verzögerung? • Wie könnte man so etwas monitoren? 10 Minuten
  • 50. Zusammenfassung • Machine Learning kann einen großen Vorteil gegenüber klassischer Entwicklung haben • Man kann ein Machine Learning Projekt in Phasen modellieren • Es müssen viele Dinge so wie oder so ähnlich wie bei einem klassischen Projekt durchdacht werden • Das Monitoring erfordert besonderes Augenmerk
  • 52. Ein Modell von 0 mit der TensorFlow-API • Dieses Mal konzentrieren wir uns nicht auf die Daten, sondern auf API von TensorFlow.js • Wir gehen gemeinsam Schritt für Schritt durch ein TensorFlow CodeLab • Wir erarbeiten uns auf dem Weg die Notwendigen Grundlagen • Am Ende haben wir lauffähigen Code für komplettes Training und Vorhersage • Wir brauchen wieder die IDE deiner Wahl https://js.tensorflow.org/api/latest/
  • 53. Aufgabe 3: Wir bauen Training und Vorhersage direkt mit JavaScript Schritte für das Training 1. Daten laden und für das Training vorbereiten 2. Die Architektur des Modells festlegen 3. Modell trainieren und Qualität bewerten 4. Vorhersagen mit dem Modell machen https://codelabs.developers.google.com/codelabs/tfjs-training- regression
  • 54. Typische ML-Anwendungen • Bilderkennung • Ähnlichkeits- und Anomalie-Erkennung • Text-Klassifikation • Vorhersage
  • 59. Was könnt ihr tun für eurer erstes ML Projekt? • Machine Learning ist kein Selbstzweck • Geschäftsnutzen ist immer Ziel • Oft liegen Schätze aber im verborgenen und warten auf Entdeckung • Sensibilität für das Thema schaffen, insbesondere bei Managern • Eine Liste sinnvoller Anwendungen kann hilfreich sein • Die TensorFlow.js API ist relativ einfach • Die Herausforderung liegt in den dahinter liegenden Konzepten
  • 60. #WISSENTEILEN Vielen Dank! #WISSENTEILEN by open knowledge GmbH @_openKnowledge | @DJCordhose Oliver Zeigermann, Head of AI