Machine-Learning / AI Entwicklung

Software mit Machine-Learning und künstlicher Intelligenz in Zürich realisieren

Selbstlernende, intelligente Algorithmen revolutionieren ganze Industrien und sind massgebend für den Erfolg aller grossen Tech-Unternehmen verantwortlich. PolygonSoftware entwickelt für Ihr Unternehmen Machine-Learning Algorithmen.

Was ist "Machine Learning" / "Künstliche Intelligenz"

Unter dem Begriff Machine Learning versteht man Algorithmen, die selbstständig einen Sachverhalt lernen und neues Wissen produzieren können. Im Kontrast zu einem traditionellen Algorithmus, bei welchem der Entwickler dem Computer genaue Schritt-für-Schritt Anweisungen gibt, wie der Computer das dargelegte Problem lösen soll, wird einem auf Machine-Learning basiertem Algorithmus nicht erklärt, wie das zugrunde legende Problem gelöst werden soll. Der Machine-Learning Algorithmus ist also selber dafür zuständig, die richtigen Schritte zu finden, welche das ihm dargelegte Problem lösen können. Er findet daher nicht nur die Lösung, sondern auch den Weg, wie man zu dieser Lösung kommt, komplett autonom.

Von Künstlicher Intelligenz spricht man, wenn ein (meist auf Machine-Learning basierter Algorithmus) selbst komplexe Aufgaben lösen kann, welche beinahe menschliche Intelligenz voraussetzen. So spricht man beispielsweise von einer künstlichen Intelligenz, wenn ein Machine-Learning Algorithmus Bilder von Gegenständen schneller, zuverlässiger und fehlerfreier identifizieren kann als ein Mensch. In einigen Feldern ist uns Menschen die Künstliche Intelligenz sogar schon überlegen, beispielsweise im Erkennen von Tieren auf Bildern.

Wieso ist "Machine Learning" / "Künstliche Intelligenz" so im Trend?

Vor der Ära des Machine-Learnings konnten Probleme nur mit dem Computer gelöst werden, wenn die Programmierer das zu Grunde liegende Problem so gut verstehen konnten, dass sie dem Computer die zur Lösung notwendigen Schritte einprogrammieren konnten. Gegenüber dem Menschen hatte der Computer dabei hauptsächlich den Vorteil, dass er die Rechenschritte immens schneller abwickeln konnte als ein Mensch und dabei keine Fehler machte. Mit schneller werdenden Computern wurde die Limitation von Computer-Programmen jedoch zunehmend nicht mehr die Geschwindigkeit, mit welcher die Rechenschritte ausgeführt werden können, sondern das Wissen darüber, welche Schritte überhaupt zum Ziel führen. Konnten die Engineers nicht herausfinden, welche Schritte zur Lösung führen oder wussten sie nicht einmal, wie die Lösung aussehen könnte, so war die Entwicklung eines Algorithmus zur Problemlösung unmöglich.

Mit Machine-Learning konnte diese Hürde jedoch überwunden werden. Durch die clevere Programmierung von Machine-Learning Algorithmen können Entwickler einem Program zeigen, wie das Problem und die dazu gehörende Lösung aussieht und der Algorithmus findet die Schritte die zum Erreichen dieser Lösung notwendig sind selber. Das führt dazu, dass der Algorithmus auch für ähnliche Probleme, für welche die Lösung noch unbekannt ist, die gelernte Lösungsschritte anwenden und so zum korrekten Resultat finden kann. Der Algorithmus ist also imstande, einen Sachverhalt zu lernen, zu verstehen und das gelernte für die Lösung bisher ungelöster Probleme zu adaptieren.

Welche Arten von "Machine-Learning" Algorithmen gibt es?

Grundsätzlich unterscheidet man zwischen zwei Arten von Algorithmen: Supervised und Unsupervised. In den folgenden Abschnitten werden die beiden Arten aufgeführt und deren Unterschiede erklärt.

Supervised Machine-Learning: Zeige Problem und Resultat, Lerne die Lösungsschritte

Lernt ein Machine-Learning Algorithmus, indem man ihm hunderte male ein Problem und die dazugehörige Lösung zeigt, so spricht man von einem Supervised-Learning-Algorithmus. Indem der Algorithmus Problem-und-Lösung sieht, versucht er Wege zu finden, wie man vom Problem auf die Lösung schliessen kann. Indem der Algorithmus jedoch die Lösung bereits sieht kann er seine eigene Präzision einschätzen und seinen Lösungsweg anpassen, um bessere Resultate zu erzielen. Damit diese Art von selbständigem Lernen funktioniert ist es wichtig, dass man dem Computer wiederholt Problem-und-Lösung vorzeigen kann, damit der Algorithmus eine Evolution durchlaufen kann. Damit ein Supervised Machine-Learning Projekt funktionieren kann, ist ein grosser und sauberer Datensatz notwendig, auf welchem der Algorithmus trainiert werden kann. Ein Beispiel für ein Supervised Machine-Learning Algorithmus wäre beispielsweise die Schätzung eines Hauspreises anhand von Hausdaten.

Der Machine-Learning Algorithmus soll anhand von Hausdaten X auf den Verkaufspreis Y schliessen können. Die Hausdaten umfassen dabei den Standort, die Anzahl der Zimmer, das Stockwerk und vieles mehr. Als zugrunde liegender Datensatz könnten beispielsweise alle Hausinserate von Immobilienplatformen wie "ImmoScout24" oder "Homegate" verwendet werden. Um den Algorithmus zu trainieren zeigt man ihm für jedes Inserat die Hausdaten X und den Verkaufspreis Y. Der Algorithmus lernt dabei, wie er von den Hausdaten auf den Preis schliessen kann. Ist der Algorithmus fertig trainiert hat er im Inneren die Regeln gelernt, wie sich ein Hauspreis aus den Hausdaten zusammensetzt. Jetzt kann der Algorithmus verwendet werden, um selbstständig auf ein neues Hausinerat einen Preis zu setzen: Der Algorithmus wendet die gelernten Schritte auf das neue Inserat an und generiert dadurch einen Hauspreis. Der Algorithmus ist somit in der Lage, eine Hauspreisschätzung für neue Inserate abzugeben.

Unsupervised Machine-Learning: Zeige die Daten, finde interessante Muster und Zusammenhänge darin

Die zweite Kategorie von Machine-Learning Algorithmen sind die Unsupervised-Learning-Algorithmen. Man wendet diese Art von Algorithmen auf Datensätze an, in welchen man Zusammenhänge vermutet, diese jedoch noch nicht klar sind. Ziel des Algorithmus ist es daher, die Daten zu analysieren und Regelmässigkeiten, Auffälligeiten oder Muster zu entdecken. Man gibt dem Algorithmus dabei ein klar definiertes Ziel, jedoch gibt man ihm nicht vor, wie die Lösung aussieht oder wie er gar zu dieser Lösung kommt. Ein einfaches Beispiel dafür ist die Erkennung von Anomalien: Man gibt dem Algorithmus die Datensätze und gibt im das Ziel, Auffälligkeiten in diesem Datensatz zu finden ohne aber dem Algorithmus zu sagen welche Datenpunkte auffällig sind. Das Resultat, also wie diese Anomalien aussehen und welche Datenpunkte Anomalien enthalten, wird ihm verschwiegen, genauso wie der Lösungsweg, wie er diese Anomalien finden kann. Anomalie Detection wird in verschiedenen Industrien eingesetzt, sowohl zur Qualitätskontrolle wie auch zur Aufspürung illegaler Aktivitäten im Bankenwesen, indem untypische Transaktionen auf einem Bankkonto identifiziert werden können.

Ein Beispiel für einen Unsupervised Algorithmus zur Erkennung von Anomalien kann daher einfach anhand von Qualitätssicherung betrachtet werden: Am Ende einer Produktionsstätte für Keramiktassen wird von jeder Tasse ein Bild von allen Seiten aufgenommen. Ein Anomalie-Erkennungsalgorithmus soll für jede Tasse bestimmen, ob sie eine Beschädigung aufweist und dadurch die auf die Produktqualität schliessen. Um diesen Algorithmus zu trainieren zeigt man ihm tausende Fotos von einwandfrei produzierten Tassen. Der Algorithmus lernt dadurch die Charakteristika einer Tasse zu erkennen: Glatte Oberflächen, runde Kanten, geschwungene Formen. Ist der Algorithmus genug trainiert identifiziert er diese Eigenschaften bei jeder neuen Tasse, die vom der Produktionband läuft. Wird jedoch eine bisher unbekannte Eigenschaft identifiziert, wie beispielsweise eine durch einen Riss entstandene gerade, dunkle Linie in der Oberfläche, so ist eine Anomalie erkannt und es kann Alarm gegeben werden. Das Interessante dabei ist, dass der Algorithmus vorher nie eine solche Anomalie gesehen hat und ihm auch nicht beigebracht wurde, dass ein Oberflächenriss eine Anomalie ist.

Was sind Künstliche Neurale Netzwerke (Artificial Neural Network, ANN)

Der Begriff Neurales Netzwerk beschreibt eine Art von Supervised Machine Learning Algorithmen, welche die Lernfähigkeit des Menschlichen Gehirns simulieren. Es werden Erkentnisse aus der Neurobiologie sowie der Psychologie verwendet, um die biologische Lernfähigkeit des Menschen in Computeralgorithmen zu übertragen. Das damit entstandene Research-Gebiet nennt sich Neuroinformatik. Durch die Programmierung künstlicher Synapsen können Gehirnähnliche Strukturen im Computer programmiert werden, welche unglaublich komplexe Sachverhalte lernen können. Neurale Netzwerke brauchen dabei eine riesige Datenmenge um sich zu trainieren und viel Computer-Power um dieses Training durchzuführen. Der Vorteil der Neuralen Netzwerke liegt dabei in der Vielfalt der Sachverhalte, welche sie lernen können. Ein Neurales Netzwerk kann lernen, handgeschriebene Ziffern zu identifizieren, kann aber auch in derselben Form lernen, einen Hauspreis zu schätzen.

Durch die Vielfalt der Anwendungsmöglichkeiten von Neuralen Netzwerken, sowie durch deren Zuverlässigkeit und Präzision, sind sie zu einem Go-To Mittel für viele Machine-Learning Anwendungen geworden. Neurale Netzwerke gibt es dabei in vielen verschiedenen Ausprägungen, welche für verschiedene Anwendungen interessant sind. So spricht man beispielsweise von Deep Neural Networks wenn ein komplexes Netzwerk mit vielen Neuronenebenen simuliert wird, oder von Convolutional Neural Networks wenn das Neurale Netzwerk die visuelle Lernfähigkeit des menschlichen Gehirns simuliert.

Wenn Machine-Learning Algorithmen selber lernen - wozu braucht es dann noch die Entwickler?

Machine-Learning Algorithmen sind intelligent, aber sie sind keine General Intelligence. Das heisst, es gibt momentan noch nicht einen einzelnen Machine-Learning Algortihmus, welcher für jedes Problem eingesetzt werden kann. Vielmehr gibt es eine Vielzahl von Algorithmen und Architekturen, welche sich in verschiedenen Anwendungsgebieten bewährt haben. Der Machine-Learning Entwickler hat dabei folgende Challenges zu bewältigen:

1.) Daten erhebung (Data-Mining)

Die Basis eines Machine-Learning Projektes sind die Daten. Je nach Komplexität des Problemes und Wahl des Algorithmus sind Millionen an Datensätzen nötig, um dem Machine-Learning Algorithmus genug Futter zum Lernen zu geben. Die erste Challenge für einen Entwickler ist es daher, die richtigen Daten zusammen zu tragen und richtig abzulegen. Dieser Prozess ist auch als Data Mining bekannt. Die Datenerhebung muss sicherstellen, dass der Machine-Learning Algorithmus alle wichtigen Informationen in eine für ihn richtigen Form zur Verfügung hat. Beim Beispiel der Hausdaten ist es beispielsweise wohl nicht genug, dem Algorithmus den Längegrad/Breitengrad der Immobilie zu vermitteln. Der Hauspreis korreliert meistens nicht mit der effektiven Lage, sondern oft mit der Gemeinde - oder noch spezifischer mit dem Steuerfuss der Gemeinde. Vielleicht ist auch die Entfernung einer Immobilie zu wichtigen Orten wie Schulhaus, Einkaufszentrum oder Bahnhof entscheidend. All diese Informationen sollten also bei einem Stelleninserat anhand des Längengrades/Breitengrades generiert und dem Machine-Learning Algorithmus zur Entscheidungsfindung bereitgestellt werden.

2.) Daten bereinigen

Damit der Machine-Learning Algorithmus nicht von unnützen, fehlerhaften oder gar fehlenden Daten verwirrt wird, ist es ein essentieller Schritt, die vorhandenen Daten zu analysieren und zu bereinigen. Je nach Datensatz können fehlende Informationen, beipsielsweise das Stockwerk im Haus, durch generierte Daten ersetzt werden. Da bei vielen Daten aus der realen Welt oft Teilinformationen fehlen ist es wichtig, dass diese Informationslücken geschlossen werden können. Diesen Prozess nennt man Data Cleaning.

3.) Machine-Learning Algorithmus Auswählen

Es gibt verschiedenste Machine-Learning Algorithmen, welche für ähnliche Probleme ausgewählt werden könne. Entscheidend dabei ist es für den Entwickler, den vielversprechendsten Algorithmus auszuwählen, welcher mit der vorhandenen Datenlage und der zur Verfügung stehenden Trainingszeit die vielversprechendesten Resultate generieren kann. Dieser Schritt benötigt viel Wissen über die verschiedenen Machine-Learning Modelle und deren Vor-und Nachteile.

4.) Hyper-Parameter einstellen

Das schwierigste am Machine-Learning ist das richtige Einstellen der Hyper-Parameter. Als Hyper-Parameter bezeichnet man dabei eine Einstellung, welche man am Machine-Learning Modell vornehmen kann, welche den Algorithmus verändert. Man kann sich das vorstellen wie beim Backofen wo man die Temperatur und Belüftung einstellen kann. So kann man mit dem gleichen Backofen verschiedene Gerichte zubereiten z.B. ein Brotbacken, einen Auflauf wärmen etc. Je nachdem wie diese Einstellungen gewählt sind geht der Backvorgang schneller oder es entstehen Probleme z.b. wenn das Brot verbrennt. Je nach Machine-Leaning Modell gibt es dutzende solcher Hyperparameter. Im Falle des Neuralen Netzwerkes muss man sich beispielsweise dafür entscheiden, wie viele Neuronen simuliert werden sollten und welche Aktivierungsfunktion verwendet werden soll. Dieser Schritt erfordert beim Machine-Learning Experten ein sehr tiefes Know-How über die Hyperparameter, wie sie die Lernrate des Algorithmus beeinflussen und wie deren Kombination für das zugrunde liegende Problem optimal ist.

5.) Machine-Learning Algorithmus Trainieren

Sind die Hyperparameter eingestellt wird der eingestellte Machine-Learning Algorithmus mit den zugrunde liegenden Daten trainiert. Das Training kann je nach Datenmenge, Komplexität des Algorithmus und Computerpower von Minuten bishin zu Wochen dauern. Während des Trainings beobachtet der Machine-Learning Experte den Trainingsfortschritt des Modelles und entscheidet, ob die Lernrate des Modelles erfolgsversprechend aussieht und ob das Modell genug generalisiert.

6.) Bewertung und Analyse des generierten Modelles

Ein Machine-Learning Algorithmus kann auf verschiedene Metriken analysiert werden. Je nach Anwendungsfall ist es entscheidend, dass der Algorithmus > XX% der Probleme mit XX% Sicherheit in einer Genauigkeit von XX% gelöst werden können. Die Metriken, anhand welchen man den Erfolg des Algorithmus bewertet, sind dabei je nach Problemstellung und Sachverhalt unterschiedlich. Konnte das generierte Modell den Anforderungen nicht standhalten, wird das Modell und dessen Resultate analysiert um darauf zu schliessen, wie es verbessert werden kann.

7.) Repetition: Machine-Learning Algorithmus verbessern

Nur in den wenigsten Fällen ist das ersttrainierte Modell bereits erfolgsversprechend. Die Entwicklung eines Machine-Learning Algorithmus ist ein inkrementeller Prozess, denn die genaue Funktionsweise eines Machine-Learning basierten Algorithmus ist oft eine Blackbox. Trifft der Algorithmus falsche Entscheidungen können die internen Strukturen des Modells nur beschränkt analysiert werden um herauszufinden, woher die Limitierung stammt. Es liegt daher am Machine-Learning-Experten, die Entscheidung zu treffen, wie das Modell verbessert werden kann. Dabei kann auf jegliche der vorherigen Schritte zurückgegriffen werden: Möglicherweise müssen neue Daten erfasst, die Daten besser bereinigt, die Hyperparameter anders eingestellt oder das Modell anders trainiert werden. Es ist dabei üblich, diese Repetition mehrere Male durchzuführen bis das optimale Ergebnis erreicht wird.

8.) Einbindung des Modelles

Das Resultat des bis hierhin beschriebenen Prozesses ist ein Machine-Learning-Modell, welches anhand des gelernten Problemes ein zuverlässiges Ergebnis produziert. Um dieses Modell nun in den effektiven Prozess einzubinden ist es nötig, dass alle Schritte die zur Datenbereinigung und Datenaufbearbeitung nötig waren, auch im Endprozess vorgenommen werden. Ist das Machine-Learning Modell in den Prozess eingebunden bietet es einen zuverlässigen und effizienten Mehrwert in ihrer Wertschöpfungskette.

Wir Machine-Learning / AI Experten aus der Schweiz

Die Mitarbeiter von PolygonSoftware forschen an der Universität Zürich und an der ETH Zürich an den neusten Erkenntnissen aus den Bereichen Machine-Learning und Künstliche Intelligenz:

  • Unser Wissen im Bereich der AI ist brandaktuell aus dem 2020 neu eröffneten Masterstudiengang Künstliche Intelligenz an der Universität Zürich

  • Wir haben Industrieerfahrung in der Entwicklung von Deep Neural Networks und dem Machine-Learning Prozess

  • Wir begleiten Ihr Unternehmen von der Planung bis hin zur Integration von Machine-Learning Modellen

  • Neben Wissen im Bereich des Machine-Learning sind wir auch Experten im Feld der Data-Science und Computer-Vision

Benefits intelligent image

Kontaktieren Sie Uns

Wir möchten unseren Kundinnen und Kunden einen vorteilhaften Kundenservice bieten und sie mit höchster Professionalität bei der Software Entwicklung unterstützen.

Office Glattpark
PolygonSolutions GmbH
Thurgauerstrasse 117
8152 Opfikon/Glattbrugg

E-Mail
Telefon
+41 76 281 85 82

Amode Skincare
fhconnect
Bambus Software
innova
CFO Forum Schweiz
swissVR
Omida
Cheezy
Facilitysoft
Tracktics
Bambus EDV Consulting
Coinpaper.io
Fahrschule Querbeet
Nachhilfe Lotusacademy
Santenatur
Käch Schüsslerwissen
Service Management Forum Schweiz
Tiershiatsu Schule ME
Swiss Society of Food Science and Technology
Amode Skincare
fhconnect
Bambus Software
innova
CFO Forum Schweiz
swissVR
Omida
Cheezy
Facilitysoft
Tracktics
Bambus EDV Consulting
Coinpaper.io
Fahrschule Querbeet
Nachhilfe Lotusacademy
Santenatur
Käch Schüsslerwissen
Service Management Forum Schweiz
Tiershiatsu Schule ME
Swiss Society of Food Science and Technology
swiss made software

Möchten Sie demnächst von uns zurück gerufen werden? Schreiben Sie uns bitte Ihre Telefonnummer auf und wir melden uns!