Meine künstliche Intelligenz.

Meine künstliche Intelligenz.

Katze oder nicht Katze - das ist hier die Frage.

Letztes Jahr wurden die Cognitive Services im Rahmen der BUILD-Konferenz vorgestellt: verschiedenste APIs, die künstliche Intelligenz und Machine Learning nützen, um unseren Apps das Sehen, Hören, Sprechen und Verstehen zu erlauben. Auch heuer war wieder ein guter Teil der BUILD-Keynote den Neuerungen auf diesem Sektor gewidmet.

Die Cognitive Services sind wahrlich ein gutes Beispiel für gelungene Developer Experience. Zunächst faszinieren die technischen Möglichkeiten: Nur einen REST-Aufruf entfernt bietet sich dem Entwickler eine Welt voller Möglichkeiten, die einen unweigerlich begeistern muss. Foto machen, uploaden und das Gesicht wird identifiziert, das Alter bestimmt und Emotionen werden erkannt. Kostenpunkt: 0,001 Euro pro Abfrage, 30.000 Transaktionen pro Monat gratis.

Mindestens genauso wichtig: der absolute Fokus auf rasches Ausprobieren. Die Website der Cognitive Services ermöglicht fast überall ein Testen mit Demodaten – und es fällt schwer, sich loszureißen, wenn man die ersten Services einmal kennengelernt hat.

Anpassbarkeit

Viele der Services sind besonders deshalb attraktiv, weil sie bereits „angelernt“ sind: Die Computer Vision API nimmt jedes beliebige Foto entgegen und erkennt beispielsweise Personen, Tiere, Großstädte und Gegenstände aufgrund unzähliger Testdaten. Wir müssen nichts bereitstellen, keine Modelle trainieren, es funktioniert einfach.

Wie schon bisher gibt es aber auch Services, die sich für den eigenen Anwendungsfall spezifisch anpassen lassen und einen individuellen Endpunkt zur Verfügung stellen. So war beispielsweise LUIS (Language Understanding Intelligent Service - siehe dazu diesen blog) dafür optimiert, zuvor eingelernte Sätze zu verstehen und auch in abgewandelter Form wiederzuerkennen. Nicht alle Sätze, sondern eben speziell angelernte Sätze für die eigene Domäne.

Drei der vier neuen Services, die nun auf der BUILD vorgestellt wurden, tragen das Wort Custom im Namen und zeigen damit, wohin die Reise geht.

Custom Vision Service

Das Custom Vision Service ist wie LUIS für Bilder: Über die API oder das webbasierte Portal lädt man Beispielbilder hoch und vergibt Tags. Anschließend lässt man das Service trainieren und erhält einen REST-Endpunkt, dem neue Bilder zur Analyse übergeben werden können. Das Ergebnis ist eine Einschätzung, mit welchem Prozentsatz der Tag mit dem Bild übereinstimmt.

Wie gut funktioniert das in der Praxis?

Vor einiger Zeit haben wir uns für eine Software aus dem Therapiebereich mit der automatisierten Erkennung des „Tangram“-Spiels beschäftigt. Mit Hilfe von sieben geometrischen Formen (fünf Dreiecke, ein Quadrat, ein Parallelogramm) müssen vorgegebene Bilder gelegt werden, nahezu die gesamte Tierwelt ist als Tangramvorlage verfügbar.

Image Upload

Es war damals eine große technische Herausforderung, diese Erkennung zu implementieren. In vielen Manntagen wurden von hochqualifizierten Softwareentwicklern komplizierte Algorithmen entworfen und verschiedenste Lösungsansätze versucht. Vielleicht würden wir heute anders an die Sache herangehen, beispielsweise so:

  1. Im ersten Schritt erstellt man ein Projekt auf www.customvision.at und fügt Fotos hinzu. In meinem Fall habe ich mit mehreren Hunde- und Katzentangrams begonnen und diese auf verschiedenen Untergründen und aus verschiedenen Winkeln fotografiert.
    Die Bilder müssen manuell getagt werden, pro Tag sind mindestens fünf Bilder notwendig. In der Dokumentation ist teilweise noch von 30 Bildern die Rede – je mehr, desto besser. Anschließend startet man den ersten Trainingslauf und nach wenigen Sekunden ist das Tangram-Erkennungsservice testbereit.

    ![Teile](/blog/images/2017-08-katze/02-teile.png)
    
  2. Nach der ersten Euphorie („Meine Katze wird erkannt!“) folgte sogleich die Ernüchterung: Selbst die lieblos am Tisch verstreuten Tangram-Teile wurden als Katze erkannt. Eigentlich war alles Katze.
    Offenbar hatte das Service etwas Falsches gelernt, das kommt in den besten Familien vor (siehe dazu auch den kuriosen, angeblichen Versuch des Pentagon, feindliche Panzer mit neuronalen Netzwerken zu erkennen: [Neural Network Follies](https://neil.fraser.name/
    writing/tank/)).

    ![Katze](/blog/images/2017-08-katze/03-katze.png)
    

    Also nächster Durchgang: Bilder von zufällig angeordneten Tangramteilen hochladen und als „Tangramteile“ klassifizieren. Nicht Hund, nicht Katze. Und siehe da, die Erkennungsrate ging rasch nach oben, die Bilder wurden nun zuverlässig identifiziert.

  3. Nach demselben Schema können neue Fotos und Tags angelegt werden, das Service wird schrittweise verbessert. In einer eigenen „Performance“-Ansicht lässt sich überprüfen, ob die Erkennungsrate im Vergleich zur Vorgängerversion verbessert wurde.

    Iterations

  4. Natürlich ist das gezeigte Szenario noch nicht perfekt. Katzen-Tangrams erkennt es zum Beispiel auch dann, wenn ein Teil fehlt. Das ist im Sinne einer intelligenten Bilderkennung vielleicht erwünscht, im Fall von Tangrams jedoch falsch. Aber es zeigt: Mit Möglichkeiten wie dem Custom Vision Service können manche Problemstellungen
    auf eine komplett andere Art wie bisher gelöst werden, Machine Learning und künstliche Intelligenz stehen nun jedem Entwickler zur Verfügung.

    Anstatt Algorithmen zu entwickeln vertraut man einer Black Box, die mit erstaunlich wenig Testdaten in kürzester Zeit bereits verblüffende Erkennungsraten erzielen kann. Und mit der zugehörigen Weboberfläche ist das Erstellen dieser ausgeklügelten Logik selbst für Nicht-Entwickler eine machbare Aufgabe.
    

Weitere Neuheiten

Neben dem Custom Vision Service wurde auf der BUILD auch das Custom Decision Service vorgestellt. Dahinter verbirgt sich ein – etwas missverständlich benannter – Zusammenschluss mehrerer existierender Cognitive Services, um personalisierte Inhalte anbieten zu können. Öffnet ein Benutzer auf Ihrer Website einen Artikel, wird durch Text- und Bild-Analyse der Inhalt untersucht und dieses Profil genützt, um andere Inhalte empfehlen zu können.

Außerdem ist die Bing Custom Search als Preview-Version verfügbar. Sie bietet die Möglichkeit, unter einem individuellen Service-Endpoint auf eine für die eigenen Bedürfnisse optimierte Bing-Suche zuzugreifen.

Das vierte Service trägt den Namen Video Indexer und verspricht die Analyse von Video-Inhalten. Wer ist zu sehen? Was wurde gesprochen? Wo war besonders viel Emotion im Bild? Spannend ist das für sämtliche Medien sowie Videoplattformen.
Und für das Kürzen des nächsten Sommerurlaubsfilms – Ihre Freunde werden’s Ihnen danken.