Künstliche Intelligenz (KI)
11.10.2018
App-Power mit Künstlicher Intelligenz
1. Teil: „KI-Algorithmen im praktischen Einsatz“

KI-Algorithmen im praktischen Einsatz

KI-Apps auf dem SmartphoneKI-Apps auf dem SmartphoneKI-Apps auf dem Smartphone
fullvector / Shutterstock.com
Entwickler können intelligente Funktionen recht einfach in eigene Anwendungen einbauen. Die Implementierung erfolgt über APIs zu cloudbasierten KI-Diensten.
Algorithmen für Künstliche Intelligenz (KI) sind in aller Munde. Man programmiert diese jedoch üblicherweise nicht selber, sondern sie werden als Services über die Cloud zur Verfügung gestellt. Beeindruckende Angebote kommen beispielsweise von Google und Microsoft. Entwickler können die APIs recht einfach in ihre eigenen Webapplikationen und Apps für mobile Geräte einbauen.
Der Artikel gibt einen Überblick, welche Möglichkeiten cloudbasierte KI-Dienste schon heute bieten. Dabei geht es insbesondere darum, welche Probleme man damit lösen oder vielmehr besser
lösen kann.

Wie intelligent ist KI?

Das Thema KI nimmt in der IT-Welt einen immer breiteren Raum ein. Völlig neu sind die Ideen dazu nicht, aber die technischen Entwicklungen der letzten Jahre haben die Möglichkeiten deutlich erweitert. Gerade in der Verbindung mit Mobile Computing und Cloud wird KI sehr oft betont. Es hat sich gewissermaßen ein neues Erfolgstripple gebildet, das antritt, um bekannte und neue Probleme auf eine ganz andere Art und Weise anzugehen. Kurz gesagt: KI greift in zunehmendem Maß in unseren Alltag ein.
Bevor wir uns mit einzelnen Services beschäftigen, unternehmen wir einen kleinen Exkurs und fassen den aktuellen Stand zum Thema Künstliche Intelligenz zusammen. Das Ziel von KI ist es, unter Einsatz von Techniken wie maschinellem Lernen intelligentes Verhalten zu automatisieren oder anders gesagt, intelligentes Verhalten von der Welt des Menschen auf die Welt der Maschinen zu übertragen. In unserem Fall in Software. Apps und Webseiten sollen durch Nutzung von KI-Diensten neue und intelligente Fähigkeiten erhalten. Im Gegensatz zu klassischen Algorithmen geht es dabei nicht darum, als Programmierer alle Abläufe vorzugeben. Vielmehr sollen die Systeme in der Lage sein, eigenständig zu lernen und damit auch bisher unbekannte Probleme zu lösen. Im Mittelpunkt steht dabei der Versuch, menschenähnliche Entscheidungsstrukturen anhand von Algorithmen nachzubauen.
Um Science-Fiction zu bemühen: Das Ziel ist es, denkende Maschinen zu erschaffen. Das ist jedoch nur dann möglich, wenn das menschliche Denken selbst ausreichend erforscht und verstanden wird. Deshalb ist das Forschungsgebiet von KI eng mit anderen Wissenschaften wie Psychologie, Neurologie, Mathematik, Logik, Kommunikationswissenschaft, Philosophie und Linguistik verbunden.
Zum ersten Mal wurde der Begriff Artificial Intelligence von John McCarthy, einem Assistenzprofessor für Mathematik am Dartmouth College, verwendet. Damals, im Jahr 1955, stellte er zusammen mit Marvin Minsky (Harvard University), Nathaniel Rochester (IBM) und Claude Shannon (Bell) einen Antrag auf Förderung der Forschung im Bereich KI bei der Rockefeller-Stiftung. Die Durchführung des Dartmouth Summer Research Project on Artificial Intelligence 1956 gilt als die Geburtsstunde des akademischen Fachgebiets KI.
Am Thema KI wird also schon lange gearbeitet. Mit der stetigen Verfügbarkeit von schnellem Internet ist es jedoch nun möglich, KI-Dienste einer breiten Anwenderschicht als Ser­vices zur Verfügung zu stellen. Ein einzelner Entwickler hat nämlich kaum die Zeit, sich so weit in die Materie einzuarbeiten, dass er umfassende Algorithmen für die KI selbst erstellen kann. Die Lösung besteht in der Nutzung von Cloud-Diensten.
Typische – heute schon funktionierende – Anwendungsgebiete einer KI sind die Bild-, Video- und Sprachanalyse mit all ihren Ausprägungen und Einsatzgebieten. Ein Ziel von Goo­gle ist es beispielsweise, mit Hilfe von KI „ein individuelles Google für jedermann“ zur Verfügung zu stellen. Die Software Google Home soll dem Nutzer helfen, sich nicht nur im Web, sondern auch im privaten digitalen Universum von Daten, Fotos, Videos und Terminen zurechtzufinden. Das soll auf natürliche Weise erfolgen, als ob einem ein Helfer beziehungsweise Freund zur Seite steht und einen gezielt unterstützt. Goo­gle Home soll dabei immer mehr über seinen Nutzer lernen und ihn dadurch bei der Verwaltung seiner privaten Daten immer besser unterstützen.
Nicht nur Google, auch die anderen Giganten der IT-Branche setzen mehr und mehr auf KI. In eine ähnliche Richtung gehen etwa die Forschungen und Anwendungen für  digitale Assistenten wie Siri (Apple), Alexa (Amazon) und Cortana (Microsoft).
KI ist nicht gleich KI. Zur Klassifizierung teilt man diese danach ein, wie gut es gelingt, durch Algorithmen die gesamte Bandbreite der menschlichen Intelligenz nachzubilden. Wir befinden uns heute an der Schnittstelle zwischen schwacher und hybrider KI. Ernsthafte und alltagstaugliche Lösungen können damit bereits realisiert werden.
2. Teil: „KI für den Alltag“

KI für den Alltag

Lange Zeit war KI also der Forschung vorbehalten beziehungsweise an das Vorhandensein von Ressourcen zur Entwicklung (Kenntnisse) und Bereitstellung (Rechentechnik) gebunden, weswegen KI im Alltag noch nicht oder nur vereinzelt genutzt werden konnte. Dieses Bild wandelt sich derzeit, weil Anbieter wie Amazon, IBM, Goo­gle oder Microsoft KI-Dienste bereitstellen – meist in Form von cloudbasierten Angeboten – und eine breite Nutzung möglich machen. Über definierte APIs kann man diese Dienste nutzen und für eigene Zwecke in eine App beziehungsweise Webseite einbauen.
  • Architektur einer cloudbasierten KI: Weniger kompliziert als gedacht – hier AutoML Vision von Google.
Und wie muss man sich die Architektur bei der Nutzung einer cloudbasierten KI-API vorstellen? Eigentlich recht einfach. Beispielsweise die KI für die automatische Bilderkennung von Google, Cloud AutoML Vision: Über das User-Interface des angebundenen Fotodienstes können Bilder in die Cloud geladen werden. Danach verschlagwortet der Nutzer sie manuell und trainiert damit automatisch das Modell. Nach der Trainingsphase erkennt AutoML Vision später verwandte Bildelemente selbstständig. Zur Nutzung in der eigenen App oder Webseite wird eine universelle Programmierschnittstelle (Rest API) zur Verfügung gestellt.
Um die Leistungspalette der KI-Anbieter näher kennenzulernen, dienen die einschlägigen Services von Microsoft: Bei den Microsoft Cognitive Services handelt es sich um ein recht breites Angebot unterschiedlicher Cloud-Dienste. Bevor man sich an die Verwendung dieser KI-Funktionen in einer eigenen App oder Webseite begeben kann, sollte man ihre Funktionsweise grundsätzlich verstehen.
Zunächst einmal teilen die Microsoft Cognitive Services ihr KI-Angebot in fünf Bereiche ein: Bildanalyse, Spracheingabe, Sprache, Einblicke/Wissen und Suche.
Die Beschäftigung mit einigen beispielhaften Funktionen aus diesen Bereichen verschafft einen Eindruck von der Funktionsweise und der Leistungsfähigkeit der Dienste. Und es wird ersichtlich, wie leicht die APIs für die Programmierpraxis nutzbar sind – das ist wichtig, damit man später über das bloße Experimentieren hinauskommt.

Bildanalyse – Maschinelles Sehen

Ein Bild wird dabei auf seine Inhalte untersucht und beispielsweise mit Schlagwörtern versehen. Oder man kann Bilder mit nicht jugendfreien Inhalten oder anzüglichen Elementen identifizieren sowie Eigenschaften wie Format, Größe oder die bestimmenden Vorder- und Hintergrundfarben.
Die API für Maschinelles Sehen kann man direkt auf der Webseite von Microsoft ausprobieren. Laden Sie ein Bild hoch oder geben Sie dessen Link über eine URL an.
  • Automatische Bildanalyse: Mit Hilfe der API Maschinelles Sehen wird das Bild einer Demonstration verschlagwortet.
Im Beispiel ist ein Bild von einer Demonstration zu sehen. Die identifizierten Tags – in englischer Sprache und ein Vorschlag für die Bildbeschreibung – sind im rechten Teil zu sehen. Wo könnte diese API angewendet werden? Überall dort, wo Bildanalyse als Massengeschäft durchgeführt werden muss. Sind unzählige Bilder in einer Datenbank mit Schlagwörtern zu versehen, kann dies mit Hilfe des Dienstes erfolgen.
Ein anderer Anwendungsfall: Der Betreiber eines Internetforums haftet dafür, dass sich die geposteten Inhalte an bestimmte Normen halten und beispielsweise nicht gegen die guten Sitten verstoßen. Eine Vorbewertung des Bildmaterials ist mit dem Maschinellen Sehen möglich. Bilder, die einen Schwellenwert hinsichtlich des Kriteriums „nicht jugendfreier Inhalt“ überschreiten, können gefiltert und vor der Veröffentlichung einer manuellen Prüfung unterzogen werden.
3. Teil: „Gesichtserkennung“

Gesichtserkennung

Der Name der Funktion ist Programm. Es geht um das Erkennen von Gesichtern auf Bildern. Über die API bekommt man die Koordinaten des umgebenden Rechtecks für das identifizierte Gesicht. Bei mehreren Bildern kann man prüfen, ob es sich um dasselbe Gesicht handelt. Dazu wird die statistische Genauigkeit für eine Übereinstimmung zurückgegeben.
  • Gesichtserkennung: Politisch umstritten ist die Möglichkeit, menschliche Gesichter auf Übereinstimmung zu überprüfen.
Dazu ein allgemeiner Hinweis: KI-Dienste beruhen zu weiten Teilen auf statistischen Verfahren. Hypothesen – wie die Übereinstimmung von Gesichtern – werden geprüft und das Ergebnis wird als berechnete Kennzahl im Intervall von 0 bis 1 zurückgegeben. Bei einem Wert von 0 kann man die Hypothese als nicht akzeptiert ansehen. Bei einem Wert von 1 würde die Hypothese als vollständig bestätigt gelten. Beide Werte sind Extremwerte und damit in der Praxis nicht üblich. Daher muss man festlegen, wie man die Höhe des Schwellenwertes bestimmt, um eine Hypothese als bestätigt anzusehen.
Das ist individuell für jeden Anwendungsfall auszutarieren. KI-Dienste können damit auch mal falsch liegen. Um bei dem Beispiel zu bleiben: Die KI Gesichtserkennung kann eine Übereinstimmung von zwei Bildern annehmen und sich letztendlich doch irren. Einem menschlichen Beurteiler kann es jedoch nicht anders ergehen.
Die Gesichtserkennung liefert noch weitere Attribute wie Alter, Emotion, Geschlecht, Haltung, Lächeln und Gesichtsbehaarung im Bild. Laden Sie für einen Test zwei Bilder auf die Webseite und sehen Sie sich die Ergebnisse an.
Falls Sie sich jetzt fragen, wo man diesen KI-Dienst anwenden kann, dann lautet die Antwort: Überall dort, wo eine Identifikation von Gesichtern auf Bildern benötigt wird, beispielsweise bei der Personenidentifikation in der Kriminalistik. Dabei wird das zu untersuchende Bild gegen die Bildressourcen einer Datenbank abgeglichen.

Spracheingabe-API

Diesen KI-Dienst führt Microsoft im Bereich Spracherkennung. Man kann damit Sprache in Text umwandeln. Die API kann so eingerichtet werden, dass sie Folgendes erkennt: Audioeingaben aus dem Mikrofon in Echtzeit, Audioeingaben aus einer anderen Echtzeitaudioquelle oder Audioeingaben aus einer Datei. In allen Fällen ist Echtzeit-Streaming möglich. Dabei werden die Audioinhalte an den Server gesendet und Teilergebnisse zurückgegeben.
Die Anwendungsmöglichkeiten für diese API sind schier unendlich. Ein gesprochener Satz wird in einen Datenstrom umgewandelt. Spracherkennung wird damit für den Alltag nutzbar. Jede App kann davon theoretisch profitieren. Die Art der Mensch-Maschine-Kommunikation wird auf ein neues Niveau gehoben. Gerade für mobile Apps und Webseiten kann die Spracherkennung die Tastatureingabe künftig teilweise oder ganz ersetzen. Ausprobieren kann man das unter dieser Azure-Webseite. Doch wird mich der Computer auch verstehen? Ohne Konfiguration und Übung wird das nicht passieren.
Tabelle:

4. Teil: „Textanalyse“

Textanalyse

Sprachausgabe und Spracherkennung sind bereits hochinteressant. Einen Schritt weiter geht es beim Erkennen von Inhalten in Texten. Damit lassen sich KI-Dienste für noch leistungsfähigere Anwendungen kombinieren. Texte können etwa in einem ersten Schritt über Spracherkennung automatisch generiert werden. In einem zweiten Schritt werden mittels Textanalyse Informationen daraus extrahiert.
  • Textanalyse: Der KI-Algorithmus analysiert eine Textpassage und erkennt dabei die Sprache.
Testen kann man dies unter dieser Azure-Webseite. Kopiert man zum Beispiel eine Passage dieses Artikels in das entsprechende Eingabefeld, kann man die Ergebnisse des KI-Dienstes analysieren. Auf der Webseite werden die Ergebnisse sofort aufbereitet präsentiert. Entwickler, die die API in Apps oder Websites verwenden, bekommen die Ergebnisse in Form eines JSON-Datenaustauschformats geliefert. Diesen Datenstrom muss man dann für die weitere Verarbeitung im eigenen Programm parsen und auswerten.

Bildersuche

Das letzte Beispiel widmet sich der Bildersuche. Mit diesem Teil der Microsoft Cognitive Services wird die Leistung der Suchmaschine Bing für Programmierer und Webentwickler nutzbar. Eine Bildersuche kann an vielen Stellen in einer App eingebaut werden. Beispielsweise kann man eine App, in die Bilder oder Grafiken in einem Dokument eingefügt werden, um diese Funktion erweitern. Der Nutzer muss nun nicht mehr mühsam Bilder manuell suchen, sondern die App übernimmt diese Funktion automatisch oder unterbreitet Vorschläge.
Die Bilder werden dann etwa anhand des Kontexts ermittelt. Ausprobieren lässt sich diese API wieder auf der Web­seite. Suchen Sie beispielsweise nach Bildern mit den folgenden Attributen: Suchbegriff = "Wohnhaus", Bildtyp = "Clipart" und Lizenz = "Öffentlich". Die Ergebnisse werden nach kurzer Rechenzeit eingeblendet.

Preise

Will man einen KI-Dienst nach dem Herumspielen und Ausprobieren in eigenen Apps oder Webseiten nutzen, stellt sich die Frage nach den Kosten. Die meisten Anbieter stellen ihre cloudbasierten KI-Services für Tests kostenfrei zur Verfügung. Einige bleiben sogar bei produktiver Nutzung gratis, sofern eine bestimmte Anzahl Transaktionen nicht überschritten wird..
Bei den Microsoft Cognitive Services kann unter „Pricing“ für jede API des Dienstes der Preis kalkuliert werden. Der Einstieg beziehungsweise eine moderate Nutzung in einer App sind demnach kostenfrei. Bei intensiver produktiver Verwendung fallen dann gestaffelte Preise an.
Gegenrechnen sollte man, dass die eigene Programmierung eines KI-Dienstes sehr aufwendig wäre. Die technischen Ressourcen, das notwendige Know-how und die erforderliche Zeit dürften in den wenigsten Fällen zur Verfügung stehen oder sich für ein Projekt selten rechnen. So gesehen erscheint die Nutzung cloudbasierter KI auch preislich okay.

Fazit

Der Artikel hat einen Überblick über cloudbasierte KI-Dienste gegeben, die Entwickler in Apps oder Webseiten einsetzen können. Die Schnittstellen scheinen einfach nutzbar, sodass man die Services unkompliziert einbinden kann. Kunstgriffe in der Programmierung sind – zumindest auf den ersten Blick – nicht notwendig.
Die erste Beschäftigung mit der Materie macht Lust auf weiteres Probieren. Irgendwann sollte man dann aber den ersten Service experimentell in die eigene App einbauen. Auch dabei muss man schrittweise vorgehen. Inhaltlich muss geklärt werden, welche Funktionen die cloudbasierte KI übernehmen kann. Ist die Funktionsweise klar, dann muss man sich damit beschäftigen, wie man die API aus der eigenen App anspricht.
Tabelle:


mehr zum Thema