Machine Learning, Deep Learning, KI

Unsere Machine Learning Ingenieure haben sich auf die maschinelle Bilderkennung und Spracherkennung mit Big Data und Deep Learning spezialisiert. Neben einer Nummernschilderkennung bieten wir eine Container-Erkennung an, die außer der Container ID das MAXGROSS, TARE, Payload und CUB.CAP. erkennt und ihrer Datenbank zur Verfügung stellt. Außerdem entwickeln wir für unterschiedliche Applikationen, je nach Kundenwunsch.

Machine Learning ist ein Teilbereich der künstlichen Intelligenz. Mithilfe des maschinellen Lernens werden IT-Systeme in die Lage versetzt, auf Basis vorhandener Datenbestände und Algorithmen Muster und Gesetzmäßigkeiten zu erkennen und Lösungen zu entwickeln. Es wird quasi künstliches Wissen aus Erfahrungen generiert.

Maschinelles Lernen ist ein großes Studienfeld, das sich mit vielen verwandten Bereichen wie der künstlichen Intelligenz überschneidet und Ideen aus diesen erbt. Es gibt 14 verschiedene Arten des Lernens und seiner Schwierigkeiten, auf die der Artikel von machinelearningmastery.com schön darauf eingeht.

Beim Machine Learning wird unterteilt in

Lernprobleme

1. Überwachtes Lernen
2. Unbeaufsichtigtes Lernen
3. Bestärkendes Lernen

Hybride Lernprobleme

4. Halbüberwachtes Lernen
5. Selbstüberwachtes Lernen
6. Multi-Instanz-Lernen

Statistische Inferenz

7. Induktives Lernen
8. Deduktive Folgerung
9. Transduktives Lernen

Lerntechniken

10. Multitasking-Lernen
11. Aktives Lernen
12. Online lernen
13. Lernen übertragen
14. Ensemble-Lernen

Machine Learning Modellentwicklung

Die fünf Hauptansätze für die Machine Learning Modellentwicklung sind laut Bericht des AI-Marktforschungs- und Beratungsunternehmen Cognilytica ML Plattformen, ML Werkzeuge, Datenwissenschaftliche Notebooks, Cloud-basiertes ML als Service, Analyse-Plattformen. Das Gebiet des maschinellen Lernens und der Datenwissenschaft ist nicht neu, da Wissenschaftler, Forscher und Datenwissenschaftler daran schon jahrzehntelang geforscht haben.
Forbes geht in dem verlinkten Artikel näher auf Machine Learning ein und beschreibt die ML Toolkits. Die Toolkits für maschinelles Lernen sind sehr beliebt und viele sind Open Source.

Einige Toolkits konzentrieren sich auf bestimmte Algorithmen und Anwendungen für maschinelles Lernen, insbesondere Keras, Tensorflow und PyTorch, die sich auf Deep-Learning-Modelle konzentrieren, während andere wie Apache Mahout und scikit-learn eine Reihe von Algorithmen und Werkzeugen für maschinelles Lernen bereitstellen. Viele der Toolkits für maschinelles Lernen werden durch Entwicklungsressourcen großer Technologieunternehmen unterstützt. Facebook unterstützt beispielsweise PyTorch, Google unterstützt Keras und TensorFlow, Amazon unterstützt MXNet, Microsoft unterstützt CNTK Toolkit und andere werden von Unternehmen wie IBM, Baidu, Apple, Netflix und anderen unterstützt.

Machine Learning Bibliothek

Eine Bibliothek, die von unseren Entwicklern gerne eingesetzt wird ist neben TensorFlow Sonnet. Sonnet ist eine Bibliothek, die auf TensorFlow 2 aufbaut und einfache, zusammensetzbare Abstraktionen für die Forschung zum maschinellen Lernen bietet. Sonnet wurde von Forschern von DeepMind entworfen und gebaut. Es kann verwendet werden, um neuronale Netze für viele verschiedene Zwecke aufzubauen.

Im asiatischen Strategiespiel Go hat das Programm AlphaGo der Google-Tochter DeepMind den stärksten menschlichen Profispieler besiegt. Eine neue Version hat das Spiel jetzt ohne menschliches Vorwissen gelernt und spielt noch stärker. Weitere interessante Produkte dieser Firma sind AlphaStar, AlphaFold und MuZero.

Ein weiteres sehr interessantes Unternehmen ist OpenAI, das sich mit der Erforschung von künstlicher Intelligenz beschäftigt. Eines ihrer Projekte ist GPT-2, das englischsprachige Texte selbständig vervollständigen kann und deren Texte nicht von menschlichen Texten unterschieden werden können. GPT-3 ist eine Weiterentwicklung und das erste kommerzielle Produkt von OpenAI. Es besteht aus 175 Milliarden Parametern.

Programmiersprache Machine Learning

Die für Machine Learning meist verwendete Sprache ist Python. Auch wir entwickeln mit Python und schreiben dann für die Produktion nach C++ oder Rust um. Der Grund dafür ist, dass C++ und Rust eine sehr gute Performance bieten. Der Geschwindigkeitsunterschied kommt dadurch zustande, da die eine Programmiersprache interpretiert ist, die anderen Sprachen kompiliert. IT-Talents geht schön auf den Unterschied ein.

C++ wird übersetzt, indem der Quellcode über einen Compiler ausgeführt wird. Dies führt zu sehr effizientem, übersetztem Code, der beliebig oft ausgeführt werden kann. Der Overhead für die Übersetzung entsteht nur einmal, wenn die Quelle kompiliert wird; danach muss das Programm nur geladen und ausgeführt werden. Interpretierte Sprachen müssen dagegen bei jeder Ausführung des Programms geparst, interpretiert und ausgeführt werden, wodurch sich der Aufwand für die Ausführung des Programms erheblich erhöht.

Aus diesem Grund sind interpretierte Programme in der Regel weniger effizient als kompilierte Programme. Anbei ein Vergleich von Go, einer kompilierten Sprache, entwickelt von Google, mit Python. C++ und Rust bieten eine noch bessere Performance und schlagen bei der Geschwindigkeit Golang, da diese keinen Garbage-Collector haben. Bei rechenintensiven Aufgaben macht es also Sinn, auf eine der beiden Sprachen zurückzugreifen. Auch die von Apple oder TensorFlow angepriesene Sprache Swift kann, wie die Ergebnisse schön zeigen, bei der Performance leider nicht mithalten. C++ und Rust sind deutlich schneller als Swift.

Hardware Machine Learning

Für Machine Learning wird sehr viel Rechenleistung benötigt. Autos verfügen aufgrund self-driving über sehr leistungsstarke Chips. Der kürzlich vorgestellte Nio Et7 bietet dank des Prozessors Orin SoCs von Nvidia 1016 TeraFLOPS, eine wirklich sehr gute Performance. Dies ist ein beachtlicher Wert, wenn man als Vergleich die Google TPU v3 mit 420 TeraFLOPS nimmt. Der Hersteller Nvidia bietet sogenannte Tensor-Recheneinheiten, die sich sehr gut für KI-Training eignen. Sehr attraktiv ist auch das KI-Training in der Cloud. Firmen wie AWS bieten beispielsweise attraktive Lösungen dazu an. Der Vorteil dabei ist immer mit neuester Technik arbeiten zu können und nur dann zu bezahlen, wann die Hardware wirklich benötigt wird.

Softwareentwicklung Machine Learning, Deep Learning
Menü