dlib - A toolkit for making real world machine learning and data analysis applications in C++

Ähnliche Dokumente
Performanzoptimierung, Einsatz und Evaluation des C++ Programms EOS V2 zur Satzendeerkennung

1/19. Kern-Methoden zur Extraktion von Informationen. Sebastian Marius Kirsch Back Close

Linux I II III Res WN/TT NLTK XML XLE I II Weka E. Freitag. 9 XLE Transfer. 10 Weka. Ressourcen-Vorkurs

Maschinelle Sprachverarbeitung Übung

Supervised & Unsupervised Machine Learning

Neural Networks: Architectures and Applications for NLP

Machinelles Lernen. «Eine kleine Einführung» BSI Business Systems Integration AG

Maschinelle Sprachverarbeitung

TensorFlow Open-Source Bibliothek für maschinelles Lernen. Matthias Täschner Seminar Deep Learning WS1718 Abteilung Datenbanken Universität Leipzig

Vorlesung Digitale Bildverarbeitung Sommersemester 2013

SKOPOS Webinar 22. Mai 2018

Sports Data Mining. The Field and Methodology. Sublogo Fachbereich Informatik Prof. Johannes Fürnkranz 1

Deep Learning Prof. Dr. E. Rahm und Mitarbeiter

Named Entity Recognition (NER)

Neural Networks. mit. Tools für Computerlinguist/innen

IMPULSVORTRAG KÜNSTLICHE INTELLIGENZ & HELMHOLTZ

INTELLIGENTE DATENANALYSE IN MATLAB

Digitalisierung im Service Management - Was bringen AI, Chatbots und Co.?

Projektseminar Mobilkommunikation Projektseminar MIKS

INTELLIGENTE DATENANALYSE IN MATLAB. Einführungsveranstaltung

6.2 Feed-Forward Netze

in deutschsprachigen Romanen

Projekt-INF Folie 1

Neuronale Netze. Automatische Hinderniserkennung Paul Fritsche

Learning to Rank Sven Münnich

WENN DER KUNDENSERVICE-DESKTOP MITDENKT

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Niels Landwehr, Jules Rasetaharison, Christoph Sawade, Tobias Scheffer

Raum-zeitliche. in Sensordaten. Mustererkennung. mit Deep Learning. Felix Kunde, Petra Sauer

Artificial Intelligence. Was ist das? Was kann das?

M.Sc. Informatik, Studium angewandte Informatik M.Sc. Ing. Lasertechnik, Studium Laser und Photonik B.Sc. Elektrotechnik, Studium der Elektrotechnik

Informationsextraktion aus Stellenanzeigen

Neue Erkenntnisse aus unstrukturierten Daten gewinnen

Komplexität beherrschen

Frischer Wind für ein bekanntes Thema Klassifikation 4.0

Künstliche Neuronale Netze

Machine Learning. Kurzeinführung Erfahrungen in GIS

Heavy Equipment Demand Prediction with Support Vector Machine Regression Towards a Strategic Equipment Management

Dependenzgrammatik-Parsing

CAS Data Science. Die Datenanalyse spielt für Unternehmen eine immer wichtigere Rolle.

Allgemeines Feedback zu den Ausarbeitungen

Die EnMAP-Box Ziele, Stand der Entwicklung und Ausblick

Anleitung zur Installation von Matlab

Einführungskus MATLAB

Predictive Analytics für Dummies. Click here if your download doesn"t start automatically

Data Science mit Python

Fortgeschrittenes Programmieren mit R. Christoph Beck. Di, 14:00-15:30 (3065)

Learning Phrase Representations using RNN Encoder Decoder for Statistical Machine Translation. Yupeng Guo

Entwicklung einer Entscheidungssystematik für Data- Mining-Verfahren zur Erhöhung der Planungsgüte in der Produktion

Aktuelle Themen für die Masterstudiengänge Wirtschaftsingenieurwesen 1

Studienplan FIW Bachelor Wirtschaftsinformatik 2018ss

Predictive Analytics. Warum datenbasierte Vorhersagen kein Hexenwerk sind. ASQF Automation Day Dr. Stefano Signoriello

FÜR MAKLER DER KONKURRENZ IMMER EINEN SCHRITT VORAUS.

Emotion Recognition of Call Center Conversations Robert Bosch Engineering and Business Solutions Private Limited

Lernen unterschiedlich starker Bewertungsfunktionen aus Schach-Spielprotokollen

Intelligente Systeme

Virtuelle Maschinen. Serbest Hammade / Resh. Do, 13. Dezember 2012

Inhalt. Einleitung... XIII

PDF/A Competence Center Webinars

Question Answering mit Support Vector Machines

8. Mai Humboldt-Universität zu Berlin. LingPipe. Mark Kibanov und Maik Lange. Index. Allgemeine Infos. Features

Kapitel ML: I. I. Einführung. Beispiele für Lernaufgaben Spezifikation von Lernproblemen

Bio-Inspired Credit Risk Analysis

SEMINAR KLASSIFIKATION & CLUSTERING EINFÜHRUNG. Stefan Langer CIS Universität München Wintersemester 2016/17

Herausforderung Data Science Algorithmen und Visualisierungen in kürzester Zeit aber wie? Matthias Makulla, Patric Steffen, Comma Soft AG

Vortrag im Rahmen der Vorlesung Data Warehouse Dozentin: Prof. Dr. Frey-Luxemburger WS 2011/2012. Referent: Florian Kalisch (GR09)

Feature Selection / Preprocessing

(Pro-)Seminar - Data Mining

Anwendungen der KI / SoSe 2018

Towards Dynamic Attack Recognition for SIEM. Stefan Langeder

Neuronale Netze. Christian Böhm.

Was denken denkende Maschinen? WI-Award, Crowne Plaza Zürich, Thilo Stadelmann

WEKA A Machine Learning Interface for Data Mining

SUCHMASCHINEN XAPIAN. Michael Strzempek FH Wiesbaden, 5. Juni 2008

:21 Uhr Modulbeschreibung #1290/1 Seite 1 von 5

MACHINE VISION KLASSIFIKATOREN VORTEILE UND HERAUSFORDERUNGEN AUSGEWÄHLTER METHODEN

Seminar: Maschinelles Lernen und Deep Learning

Schnelles Denken - Maschinelles Lernen mit Apache Spark 2

Entity Search. Michel Manthey Arne Binder 2013

GSTOOL 5.0 Die nächste Generation

Entwicklung einer Anwendung für die Microsoft HoloLens

Der VITERBI-Algorithmus

Watson Services on Bluemix Workshop

Künstliche Intelligenz im Selbstversuch

GeoServer, QGIS Server und MapServer im Vergleich

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Maschinelles Lernen. Tobias Scheffer Michael Brückner

Institut für angewandte Datenanalyse GmbH

Kurze Einführung in Web Data Mining

Machine learning in cognitive systems

Cara Lazara 3, Banja Luka, Bosnien und Herzegowina stefanmisanovic.com - Handy

Text Mining - Übung. Patrick Jähnichen, Antje Schlaf. Institut für Informatik

Neural Networks: Architectures and Applications for NLP

Bewegungsplanung für den vierbeinigen Roboter AMEE. Björn Bettzüche

Praktikum ios-entwicklung

Support Vector Machines und Kernel-Methoden

Virtuelle Mobilität für die Internationalisierung und innovative Hochschuldidaktik in der wissenschaftlichen Weiterbildung

Praktikum ios-entwicklung

Bachelorarbeit im Fach Computerlinguistik Centrum für Informations- und Sprachverarbeitung LMU München Betreuerin: Dr.

Neuronale Netze. Prof. Dr. Rudolf Kruse

Programmieren mit Java

Azure Machine Learning

Transkript:

- A toolkit for making real world machine learning and data analysis applications in C++ Stefan Schweter Masterseminar: Klassifikation und Clustering, Wintersemester 2016/2017, Dozent: Stefan Langer 19122016 Stefan Schweter - A toolkit for making real world machine learning in C++ 1 / 30

Überblick Stefan Schweter - A toolkit for making real world machine learning in C++ 2 / 30

Einführung Stefan Schweter - A toolkit for making real world machine learning in C++ 3 / 30

Stefan Schweter - A toolkit for making real world machine learning in C++ 4 / 30

C++ Bibliothek für maschinelles Lernen Hauptautor: Davis King Entwicklung seit 2002 Intuitive API - Namespace :: Getestet auf MS Windows, Linux, Mac OS X Stefan Schweter - A toolkit for making real world machine learning in C++ 5 / 30

Aktuelle Version 192 Minorrelease alle 2 Monate Boost Software License (GPL kompatibel 1 ) Unterstützung von Office of the Director of National Intelligence (ODNI) und Advanced Research Projects Activity (IARPA) in 2014 1 Siehe https://wwwgnuorg/licenses/license-listdehtml#boost Stefan Schweter - A toolkit for making real world machine learning in C++ 6 / 30

Sehr gute Dokumentation und Beispielprogramme Sehr umfangreiche Testsuite Stefan Schweter - A toolkit for making real world machine learning in C++ 7 / 30

Stefan Schweter - A toolkit for making real world machine learning in C++ 8 / 30

Der (oder auch Truck Number) bezeichnet die Zahl an Projektmitarbeitern, die ausfallen können, ohne das Projekt zu gefährden Stefan Schweter - A toolkit for making real world machine learning in C++ 9 / 30

Faktor 1: Sehr schlecht 46 Prozent von 133 populären Projekte auf GitHub haben einen von 1 2 2 Siehe https://heisede/-2752849 Stefan Schweter - A toolkit for making real world machine learning in C++ 10 / 30

von machine learning Bibliotheken 3 : Projekt Beteiligte Scikit-learn 10 757 Theano 9 270 caffe 4 219 NLTK 2 185 TensorFlow 2 552 Keras 1 313 Torch 1 109 1 47 3 Berechnung siehe https://githubcom/aserg-ufmg/truck-factor Stefan Schweter - A toolkit for making real world machine learning in C++ 11 / 30

Stefan Schweter - A toolkit for making real world machine learning in C++ 12 / 30

Klassifikation: Binäre und Multiklassen Klassifikation mittels Support-Vektor-Maschine (mit diversen Kernel) Clustering k-means Newman Cluster Chinese whispers Regression kernel recursive least squares (KRLS) Support vector regression Deep Learning LeNet (convolutional neural network) Stefan Schweter - A toolkit for making real world machine learning in C++ 13 / 30

Algorithmen aus mehr als 30 wissenschaftlichen Veröffentlichungen implementiert Mehr im Machine learning guide 4 zu finden 4 Siehe http://net/ml_guidesvg Stefan Schweter - A toolkit for making real world machine learning in C++ 14 / 30

Stefan Schweter - A toolkit for making real world machine learning in C++ 15 / 30

Programm zur Informationsextraktion (Named Entity Recognition und Relation extraction) Entwickelt am Massachusetts Institute of Technology (MIT) Verwendet zur Klassifikation Trainierte Modelle für Englisch, Spanisch und Deutsch 5 API für C/C++, Java, MATLAB, Java, Python und R Vergleichbare Ergebnisse 6 für CoNLL 2003 NER shared task zu Systemen wie Stanford NER 5 Siehe https://githubcom/mit-nlp//commit/ f124510782b2054e264f288c65404763fae32b3f 6 Siehe https://githubcom/mit-nlp//wiki/evaluation Stefan Schweter - A toolkit for making real world machine learning in C++ 16 / 30

Demo: Hidden Markov SVM für Namenserkennung Stefan Schweter - A toolkit for making real world machine learning in C++ 17 / 30

Beispiel für Namenserkennung mit Hidden Markov Support Vektor Maschinen 7 7 Siehe http://wwwaaaiorg/papers/icml/2003/icml03-004pdf Stefan Schweter - A toolkit for making real world machine learning in C++ 18 / 30

Stefan Schweter - A toolkit for making real world machine learning in C++ 19 / 30

Dog hipsterizer 8 8 Siehe http://blognet/2016/10/ Stefan Schweter - A toolkit for making real world machine learning in C++ 20 / 30

Stefan Schweter - A toolkit for making real world machine learning in C++ 21 / 30

Erweiterung des am CIS entwickelten Programms zur Satzendeerkennung (EOS) Bisher rein regelbasierte Klassifikation von potentiellen Satzgrenzen Klassifikator soll mittels Support-Vektor-Maschine auf einem großen Korpus für verschiedenen Sprachen trainiert werden Gelernter Klassifikator soll EOS bei der Bewertung von potentiellen Satzgrenzen unterstützen Stefan Schweter - A toolkit for making real world machine learning in C++ 22 / 30

Stefan Schweter - A toolkit for making real world machine learning in C++ 23 / 30

Geschichte EOS ( End of sentence ) wurde seit dem Sommersemester 2009 von mehreren Studenten unter Leitung von Herrn Dr Maximilian Hadersbeck weiterentwickelt: Mitwirkende (Sommersemester 2009): Susanne Peters, Michael Mandl, Daniel Bruder, David Kaumanns und Jonathan Cummings Mitwirkende (Sommersemester 2010): Florian Fink, Susanne Peters, Daniel Bruder, David Kaumanns, Dino Azzano, Estelle Perez und Simon Thum Mitwirkende (Wintersemester 2012/2013): Benno Weck, Jasmin Chebib, Martin Röhrs, Matthias Lindinger, Eamonn Lawlor, Angela Krey und Stefan Schweter Stefan Schweter - A toolkit for making real world machine learning in C++ 24 / 30

Aufbau - Agenten (1) Audhumbla: Markiert potenzielle Satzgrenzen Abbreviation: Abkürzungserkennung via Abkürzungsliste, morphologische Abkürzungserkennung bei unbekannten Abkürzung Cross: Überprüft, ob das Wort nach dem potenziellen Satzende im Text nochmals kleingeschrieben, oder in einer eingebundenen Frequenzliste von häufig kleingeschriebenen Wörtern existiert Trifft eines der beiden Fälle zu, so handelt es sich wahrscheinlich um ein Satzende Stefan Schweter - A toolkit for making real world machine learning in C++ 25 / 30

Aufbau - Agenten (2) Minuscule: Regelbasierter Agent, der überprüft, wie es nach einem potenziellen Satzende im Text weitergeht (zwei Zeilenumbrüche: Satzende, Kleinbuchstabe: Kein Satzende etc) Primus: Überprüft, ob das Wort nach einem potenziellen Satzende in einer Liste von häufigen Satzanfängen steht Regex: Agent kann anhand einer Liste von regulären Ausdrücken potenzielle Satzenden bewerten Auszug: -/(str\)$/i Stefan Schweter - A toolkit for making real world machine learning in C++ 26 / 30

Scoreberechnung Jedes potenzielle Satzende wird von den genannten Agenten bewertet - jeder Agent liefert dafür einen Score zurück, der im Bereich von -127 bis +127 liegt -127 bedeutet: Der Agent vermutet, dass kein Satzende vorliegt +127 bedeutet: Der Agent vermutet, dass ein Satzende vorliegt Nach dem alle Agenten die potenzielle Satzgrenze bewertet haben, werden alle Bewertungen zusammengerechnet Liegt der Wert über einen bestimmten Schwellenwert so liegt ein Satzende vor Stefan Schweter - A toolkit for making real world machine learning in C++ 27 / 30

Demoseite EOS ist unter http://eoscislmude erreichbar Stefan Schweter - A toolkit for making real world machine learning in C++ 28 / 30

API Überblick Die EOS API kann zb per Kommandozeile angesprochen werden: curl -d '{"text":"herr Prof Dr Müller geht heute in die Universität", "language": "de"}' \ apieoscislmude/api/v1 Beispielrückgabe: { } "result" : "Herr Prof Dr Müller geht heute in die Universität</eos>\n" Stefan Schweter - A toolkit for making real world machine learning in C++ 29 / 30

Fragen? Vielen Dank für die Aufmerksamkeit! Folien und Programme sind unter https://gitlabcom/stefan-it/-presentation zu finden Stefan Schweter - A toolkit for making real world machine learning in C++ 30 / 30