DeepLearN Development

artificial intelligence made in germany

Mehr erfahren

Wir entwickeln angepasste, individuelle Lösungen der künstlichen Intelligenz für Ihr Unternehmen!

Was ist eigentlich künstliche Intelligenz? Künstlicher Intelligenz oder artificial intelligence (eng.) ist ein Oberbegriff für verschiedene Ansätze. Zum einen existiert die symbolverarbeitende künstliche Intelligenz, zum anderen die nicht-symbolische. Bei der symbolverarbeitenden künstlichen Intelligenz ist sowohl das Wissen als auch die Regeln, die zum Lösen der Aufgabe benötigt werden, explizit (durch den Entwickler) vorgegeben. Beim nicht-symbolischen Ansatz werden das Wissen und die Regeln antrainiert und somit nicht explizit festgelegt. Wir behandeln im Weiteren nur noch den nicht-symbolischen Ansatz, genauer gesagt eine Teilmenge davon: die neuronalen Netzwerke.

Neuronalen Netzwerke werden verwendet, wenn die Lösung eines Problems eine gewisse kognitive Leistung erfordert, also der Lösungsvorgang nicht mit einem Algorithmus (definierte Abfolge von Problemlösungsschritten) beschrieben werden kann. Dann muss ein neuronales Netz mit Beispielen trainiert werden, so dass es in der Lage ist das Problem mit Hilfe von Erfahrungswissen zu lösen.

Wie sind neuronale Netzwerke aufgebaut?

Neuronalen Netze sind dem menschlichen Gehirn nachempfunden. Die kleinste Einheit eines neuronalen Netzwerks ist das Neuron. Mehrere Neuronen werden zu einer Schicht zusammengefasst (eng. layers). Ein neuronales Netz besteht aus mehreren Schichten, wobei die Neuronen mit denen der nachfolgenden Schicht verbunden sind (ggf. auch mit anderen). So werden die Informationen über die verschiedenen Schichten durch das Netzwerk geleitet.

Die erste Schicht wird als input layer bezeichnet. Hier wird definiert, in welchem Format die Informationen in das neuronale Netz aufgenommen werden. Handelt es sich beispielsweise um ein bildverarbeitendes Netzwerk, so ist die Anzahl der Neuronen der Input-Schicht von dem Format der zu verarbeitenden Bilder abhängig. Werden zum Beispiel farbige Bilder mit einer Höhe und Breite von 224 Pixel einer Channel-Tiefe von 3 (RGB) verarbeitet, dann umfasste die erste Schicht 224*224*3 = 150528 Neuronen.

Die Schichten zwischen Input- und Output-Schicht werden hidden layers genannt. Ein modernes neuronales Netzwerk umfasst zwischen 16 und über 100 Schichten. Außerdem gibt es Schichten mit verschiedenen Eigenschaften. Die Kombination der verschiedenartigen Schichten entscheidet über die Architektur das neuronalen Netzwerks.

Wie kommt das neuronale Netz jetzt zu seinem Endergebnis? Bleiben wir bei dem bildverarbeitenden Netzwerk. Sollen zum Beispiel Bilder klassifiziert werden (eng. image classification), dann entspricht die Anzahl der Neuronen in der letzten Schicht (eng. output layer) der Anzahl der Klassen. Ist unser Netzwerk beispielsweise darauf ausgelegt Fußbälle von Tennis- und Golfbällen zu unterscheiden, dann umfasst die letzte Schicht nur noch drei Neuronen, wobei jedem Neuron eine Klasse zugeordnet ist. Das Neuron, das am stärksten aktiviert wird, bestimmt das Endergebnis.

Wie lernen neuronale Netzwerke?

Wie bereits beschrieben sind die Neuronen über die Schichten hinweg miteinander verbunden. Das heißt, dass jedes Neuron die Aktivierung von mehreren Neuronen der vorhergehenden Schicht als Input entgegennimmt. Dieser Input wird nun mit einem veränderlichen Parameter, dem Gewicht, multipliziert. Für alle Input-Sträge wird ein eigenes separates Gewicht gespeichert. Die gewichteten Inputs werden anschließend aufsummiert. Anschließend wird noch ein neuronspezifischer Wert (Bias) hinzuaddiert. Diese Summe entspricht dann der Aktivierung des Neurons und wird dementsprechend wieder an die Neuronen der nächsten Schicht weitergeleitet, die dann diesen Wert wieder als Input entgegennehmen.

Die Aktivierung der letzten Schicht (berechnetes Ergebnis) wird in der Trainingsphase mit dem (bekannten) tatsächlichen Ergebnis verglichen. Über die Differenz zwischen berechnetem und tatsächlichem Ergebnis wird der Fehler berechnet. Dieser Fehler wird über die Schichten zurückgemeldet (eng. backpropagation). Anhand dieser Rückmeldung werden die Parameter (Gewichte, Bias) der Neuronen angepasst. Dabei werden Neuronen, die einen größeren Teil zum Fehler beigetragen haben stärker verändert. So werden nach und nach die Parameter optimiert, der Fehler minimiert sich und die berechneten Ergebnisse stimmen immer mehr mit dem tatsächlichem Ergebnis überein. Die konkrete Ausprägung der Gewichte und Bias aller Neuronen repräsentiert somit das Erfahrungswissen des neuronalen Netzes.

Was wir anbieten

Was wir anbieten

Bilderkennung, -klassifizierung und Objekterkennung (Computer Vision)

Texterkennung und -klassifizierung (Natural Language Processing)

Benutzerindividuelle Produktempfehlungen (Collaborativ Filtering)

Regressionsanalysen

Computer Vision

Computer Vision oder maschinelles Sehen ist ein Teilgebiet der künstlichen Intelligenz, das sich mit dem Erkennen von Bildinhalten befasst. Dabei wird ein neuronales Netzwerk darauf trainiert bestimmte Objekte in dem Bild zu erkennen und zu klassifizieren. Es können auch bestimmte Eigenschaften der Objekte, wie die Farbe, Größe oder Position im Bild ermittelt werden. Dabei kann zum einen unterschieden werden, ob sich auf dem Bild ein einziges Objekt befindet, das klassifiziert werden soll oder mehrere Objekte, die zum Beispiel mit Bounding Boxes (rechteckige Makierungsboxen) separat erkannt werden sollen. Außerdem kann zwischen einer Image Classification und einer Image Regression unterschieden werden. Bei der Image Classification wird jedem Objekt eine bestimmte Klasse zugeordnert, wie z. B. "Golfball", "Handtasche" oder "Fahrzeug". Bei der Image Regression hingegen handelt es sich um eine bestimmte Eigenschaft mit kontinuierlichen Werten in einer bestimmten Rangfolge, die dem Objekt zugeordnert werden, wie zum Bespiel das Alter einer Person auf einem Foto.

Computer Vision kann somit Menschen bei der Erledigung von Aufgabe unterstützen, die auf der menschlichen Auswertung von Bildern basieren. Zum Beispiel können beim Einstellen von neuen Artikeln in einem Online-Shop diese bereits anhand der Produktfotografien erkannt und im Formular dementspechende Eingabe vorausgewählt werden. Nachdem ein Mensch diese überprüft hat kann der Artikel eingestellt werden. Somit wird die Effizienz deutlich erhöht, da die Angaben nicht mehr selbst eingegeben, sondern nur noch überprüft werden müssen. Ein weiterer Anwendungsfall ist zum Beispiel die Unterstützung beim Erkennen von Befunden auf Röntgen- oder CT-Bildern in der Medizin. Hier kann die künstliche Intelligenz typische Auffälligkeiten hervorheben, so dass diese von einem Arzt schneller erkannt werden. Neuronale Netzwerke auf dem aktuellen Stand der Technik erreichen bereits Resultate, die mit der Auswertung professioneller Radiologen vergleichbar sind.

Natural Language Processing

Bei Natural Language Processing handelt es sich um die maschinelle Verarbeitung natürlicher Sprachen durch einen Computer. Dies umfasst sowohl textbasierte als auch gesprochene Sprache. Es sollen nicht nur einzelne Wörte erkannt werden, sondern ein Verständnis für die Textzusammenhänge und konkreten Sachverhalten entwickelt werden, also die Bedeutung der Textinhalte verstanden werden.

Typische Anwendungfälle sind z. B. sprachgesteuerte Assistenten, automatische Übersetzungen oder das Zusammenfassen von längeren Texten.

Außerdem können Texte klassifiziert werden (z. B. nach Thematik) oder der Textinhalt im Hinblick auf bestimmte Eigenschaften untersucht werden. So können zum Beispiel Produktreviews analysiert werden um festzustellen, ob es sich um eine tendenziell positive oder negative Bewertung handelt oder es können Fake-Bewertungen oder Spam-Mails erkannt werden. Auch kann beispielsweise die emotionale Stimmung des Verfassers bzw. Sprechers eingeordnet werden.

Collaborativ Filtering

Beim kollaborativen Filtern sollen die Interessen und Vorlieben eines Nutzer vorhergesagt werden, um ihm geeignete Produkte vorzuschlagen. Anhand der Vorlieben einer größeren Benutzergruppe, die Ähnlichkeiten zu einem individuellen Nutzer aufweist, werden Rückschlüsse auf die Interessen des jeweiligen Nutzers gezogen. Es wird davon ausgegangen, dass Übereinstimmungen bei der Bewertungen bestimmter Produkte auch die Übereinstimmung bei anderen Produkten zur Folge haben. Vereinfacht gesagt: Wenn die Nutzer A und B bereits die Produkte 1, 2 und 3 positiv bewertet oder gekauft haben und Nutzer A das Produkt 4 positiv bewertet, dann besteht eine erhöhte Wahrscheinlichkeit, dass auch Nutzer B an dem Produkt 4 Interesse hat. Auf der anderen Seite lässt sich auch über die Ähnlichkeit eines Produktes zur einem anderen Produkt die Attraktivität für einen bestimmten Nutzer ermitteln.

Beim kollaborativen Filtern werden also Ähnlichkeiten, entweder nutzer- oder produktseitig ermittelt, um dem Nutzer so geeignete Produkte vorzuschlagen. Besonders bei einem großen Sortiment, das der Nutzer aufgrund des Umfangs nicht mehr überblicken kann, ist kollaboratives Filtern eine gute Ergänzung zur manuellen Suche. Außerdem kann das Verfahren zur Gestaltung individueller Werbekampagnen verwendet werden um so bessere Ergebnisse zur erreichen.

Regressionsanalysen

Die Regressionsanalyse ist ein statistisches Analyseverfahren, bei dem der Zusammenhang zwischen einer abhängigen und einer oder mehrerer unabhängigen Variablen untersucht wird. So kann die Beziehung zwischen den Variablen quantitativ beschrieben werden oder eine Prognose für die abhängige Variable erstellt werden. Die zu analysierenden Daten enthalten sowohl die unabhängigen Variablen als auch die abhängige Variable. Das Ziel ist eine mathematische Funktion zu finden, die für konkrete Ausprägungen der unabhängigen Variable als Input die abhängige Variable als Output liefert (vorausgesetzt es besteht überhaupt ein Zusammenhang).

Im einfachsten Fall, mit einer unabhängigen Variable x und einer abhängigen Variable y, wird eine Gerade y = m * x + t gesucht, so dass die Summe der Abstände aller Datenpunkte (xi/yi) zur Gerade minimal wird (z. B. Methode der kleinsten Quadrate). Es werden also die passenden Parameter m und t der Ausgleichsgerade gesucht.

Lange wurden dafür Machine Learing Algorithmen wie Random Forest verwendet, die auch nicht-lineare Zusammenhänge ermitteln können. Erst seit kurzem werden auch neuronale Netze zur Lösung derartiger Aufgabestellungen verwendet. Auch diese können aufgrund des Universal approximation theorem nicht-lineare Zusammenhänge erkennen.

Typische Anwendungsfälle für Regressionsanalysen sind Prognosen für die Entwicklung von bestimmten Größen wie beispielsweise Umsätze oder Absatzmengen.

Deep Learning - Anwendungsbeispiele

Es folgt eine kleine Auswahl an exemplarischen Anwendungen, die auf neuronalen Netzen basieren.

Interessiert? Einfach Kontakt aufnehmen.

Angebotserstellung Anruf durch Kundenbetreuung

PyTorch

PyTorch

Tensorflow

Tensorflow

fastai

fastai

Keras

Keras

OpenCV

OpenCV

scikit-learn

scikit-learn