KI-Modelle und Plattformen

Julien Rebetez, Leiter der Maschinenlernen-Abteilung bei Picterra – Interview-Serie

mm
Unite.AI zu deinen bevorzugten Quellen auf Google hinzufügen

Julien Rebetez ist der Leiter der Software- und Maschinenlernen-Abteilung bei Picterra. Picterra bietet eine geospatial-basierte Cloud-Plattform, die speziell für die Ausbildung von Deep-Learning-Modellen entwickelt wurde, um diese schnell und sicher durchzuführen.

Ohne eine einzige Zeile Code und mit nur wenigen von Menschen erstellten Annotationen erstellen Picterras Benutzer einzigartige, einsatzbereite und verwendbare Deep-Learning-Modelle.

Es automatisiert die Analyse von Satelliten- und Luftbildern, sodass Benutzer Objekte und Muster erkennen können.

Was hat Sie zum Maschinenlernen und zur KI hingezogen?

Ich habe mit der Programmierung begonnen, weil ich Videospiele erstellen wollte und mich für Computergrafik interessierte. Dies führte mich zum Maschinenlernen, das sich an der Schnittstelle zwischen Software-Engineering, Algorithmen und Mathematik befindet und immer noch ein bisschen magisch erscheint, wenn es funktioniert.

 

Sie haben viele Jahre damit verbracht, Maschinenlernen zu verwenden, um Satellitenbilder zu analysieren. Was war Ihr erstes Projekt?

Meine erste Begegnung mit Satellitenbildern war das Terra-i-Projekt (zur Erkennung von Entwaldung) und ich arbeitete daran während meines Studiums. Ich war erstaunt über die Menge an frei verfügbaren Satellitendaten, die von den verschiedenen Weltraumagenturen (NASA, ESA usw.) produziert werden. Sie können täglich oder so kostenlose Bilder der Erde erhalten, was eine großartige Ressource für viele wissenschaftliche Anwendungen ist.

 

Können Sie mehr Details über das “Terra-i”-Projekt mitteilen?

Das Terra-i-Projekt (http://terra-i.org/terra-i.html) wurde von Professor Andrez Perez-Uribe von der HEIG-VD (Schweiz) gestartet und wird jetzt von Louis Reymondin von der CIAT (Kolumbien) geleitet. Die Idee des Projekts ist es, Entwaldung mithilfe frei verfügbarer Satellitenbilder zu erkennen. Zu dieser Zeit arbeiteten wir mit MODIS-Bildern (250m Pixelauflösung), da sie eine einheitliche und vorhersehbare Abdeckung (sowohl räumlich als auch zeitlich) boten. Wir erhielten eine Messung für jeden Pixel alle paar Tage und aus dieser Zeitreihe von Messungen konnten wir versuchen, Anomalien oder Neuigkeiten zu erkennen, wie wir sie manchmal im Maschinenlernen nennen.

Das Projekt war sehr interessant, weil die Menge an Daten eine Herausforderung darstellte und es auch einige Software-Engineering-Anforderungen gab, um es auf mehreren Computern zum Laufen zu bringen. Von der Maschinenlernen-Seite aus verwendeten wir ein Bayesian-Neuronales-Netzwerk (nicht sehr tief zu dieser Zeit), um vorherzusagen, wie die Zeitreihe eines Pixels aussehen sollte. Wenn die Messung nicht mit der Vorhersage übereinstimmte, dann hatten wir eine Anomalie.

Im Rahmen dieses Projekts arbeitete ich auch an der Entfernung von Wolken. Wir verwendeten einen traditionellen Signalverarbeitungsansatz, bei dem Sie eine Zeitreihe von Messungen haben und einige davon völlig falsch sind, weil sie von einer Wolke verdeckt werden. Wir verwendeten einen fourier-basierten Ansatz (HANTS), um die Zeitreihe zu reinigen, bevor wir Anomalien darin erkannten. Eine der Schwierigkeiten bestand darin, dass wir, wenn wir sie zu stark reinigten, auch Anomalien entfernen würden, sodass es viele Experimente gab, um die richtigen Parameter zu finden.

 

Sie haben auch ein Deep-Learning-System für die automatische Klassifizierung von Feldfrüchten aus Luftbildern (Drohnen) von Farmen entwickelt. Was waren die größten Herausforderungen zu dieser Zeit?

Das war mein erstes echtes Erlebnis mit Deep Learning. Zu dieser Zeit waren die größten Herausforderungen eher darin, das Framework zum Laufen zu bringen und ordnungsgemäß eine GPU zu verwenden, als im Maschinenlernen selbst. Wir verwendeten Theano, das einer der Vorfahren von Tensorflow war.

Das Ziel des Projekts war es, den Typ der Feldfrucht in einem Feld zu klassifizieren, aus Drohnenbildern. Wir versuchten einen Ansatz, bei dem das Deep-Learning-Modell Farbhistogramme als Eingaben verwendete, anstatt nur das rohe Bild. Um dies vernünftig schnell zum Laufen zu bringen, musste ich eine benutzerdefinierte Theano-Schicht implementieren, bis hin zu einigen CUDA-Code. Das war eine großartige Lernerfahrung zu dieser Zeit und ein guter Weg, um ein bisschen in die technischen Details des Deep Learning einzutauchen.

 

Sie sind offiziell der Leiter der Software- und Maschinenlernen-Abteilung bei Picterra. Wie würden Sie Ihre täglichen Aktivitäten beschreiben?

Es variiert wirklich, aber ein Großteil davon besteht darin, ein Auge auf die Gesamtbauweise des Systems und des Produkts zu haben und mit den verschiedenen Interessenten zu kommunizieren. Obwohl Maschinenlernen im Kern unseres Geschäfts steht, merkt man schnell, dass die meiste Zeit nicht mit dem Maschinenlernen selbst verbracht wird, sondern mit all den Dingen drumherum: Datenmanagement, Infrastruktur, Benutzeroberfläche, Prototyping, Verständnis der Benutzer usw. Dies ist ziemlich anders als in der Akademie oder in vorherigen Erfahrungen in größeren Unternehmen, wo man sich viel stärker auf ein bestimmtes Problem konzentriert.

Was interessant an Picterra ist, ist, dass wir nicht nur Deep-Learning-Modelle für Benutzer ausführen, sondern es ihnen auch ermöglichen, ihre eigenen Modelle auszubilden. Das unterscheidet uns von vielen anderen Maschinenlernen-Workflows, bei denen das Maschinenlernen-Team ein Modell trainiert und dann in die Produktion veröffentlicht. Was dies bedeutet, ist, dass wir die Trainingsparameter nicht manuell anpassen können, wie man es oft tut. Wir müssen eine Trainingsmethode finden, die für alle unsere Benutzer funktioniert. Dies führte uns dazu, unser “Experimenten-Framework” zu erstellen, das ein großes Repository von Datensätzen ist, die die Trainingsdaten simulieren, die unsere Benutzer auf der Plattform erstellen würden. Wir können dann leicht Änderungen an unserer Trainingsmethodik gegen diese Datensätze testen und bewerten, ob sie helfen oder nicht. Anstatt also ein einzelnes Modell zu bewerten, bewerten wir eher eine Architektur + Trainingsmethodik.

Die andere Herausforderung besteht darin, dass unsere Benutzer keine Maschinenlernen-Praktiker sind, sodass sie nicht unbedingt wissen, was ein Trainingsset ist, was eine Bezeichnung ist und so weiter. Die Erstellung einer Benutzeroberfläche, die es nicht-maschinenlernen-Praktikern ermöglicht, Datensätze zu erstellen und Maschinenlernen-Modelle auszubilden, ist eine ständige Herausforderung und es gibt viel Hin- und Her zwischen den UX- und ML-Teams, um sicherzustellen, dass wir die Benutzer in die richtige Richtung lenken.

 

Einige Ihrer Aufgaben umfassen das Prototyping neuer Ideen und Technologien. Was sind einige der interessanteren Projekte, an denen Sie gearbeitet haben?

Ich denke, das interessanteste Projekt bei Picterra war das Custom-Detector-Prototyp. Vor 1,5 Jahren hatten wir “integrierte” Detektoren auf der Plattform: Detektoren, die wir selbst trainiert und für Benutzer zugänglich gemacht hatten. Zum Beispiel hatten wir einen Gebäude-Detektor, einen Auto-Detektor usw.

Das ist eigentlich der typische Maschinenlernen-Workflow: Sie haben einen Maschinenlernen-Ingenieur, der ein Modell für einen bestimmten Fall entwickelt und dann an die Kunden ausliefert.

Aber wir wollten etwas anderes machen und die Grenzen ein bisschen verschieben. Also sagten wir: “Was, wenn wir es Benutzern ermöglichen, ihre eigenen Modelle direkt auf der Plattform auszubilden?” Es gab einige Herausforderungen, um dies zum Laufen zu bringen: Erstens wollten wir, dass dies nicht mehrere Stunden dauert. Wenn Sie dieses Gefühl der Interaktivität beibehalten möchten, sollte das Training höchstens ein paar Minuten dauern. Zweitens wollten wir nicht Tausende von Annotationen erfordern, was normalerweise für große Deep-Learning-Modelle erforderlich ist.

Also begannen wir mit einem sehr einfachen Modell, führten einige Tests in Jupyter durch und versuchten dann, es in unsere Plattform zu integrieren und den gesamten Workflow zu testen, mit einer grundlegenden Benutzeroberfläche und so weiter. Zunächst funktionierte es nicht sehr gut in den meisten Fällen, aber es gab einige Fälle, in denen es funktionierte. Dies gab uns Hoffnung und wir begannen, die Trainingsmethodik und das Modell zu iterieren. Nach einigen Monaten konnten wir einen Punkt erreichen, an dem es gut funktionierte, und jetzt haben wir unsere Benutzer, die dies ständig verwenden.

Was interessant an diesem Projekt war, war die doppelte Herausforderung, das Training schnell (derzeit einige Minuten) und daher das Modell nicht zu komplex zu halten, aber gleichzeitig komplex genug, um zu funktionieren und die Probleme der Benutzer zu lösen. Darüber hinaus funktioniert es mit wenigen (<100) Bezeichnungen in vielen Fällen.

Wir haben auch viele von Googles “Regeln des Maschinenlernens” angewendet, insbesondere diejenigen, die die Implementierung der gesamten Pipeline und der Metriken vor der Optimierung des Modells betreffen. Dies bringt Sie in den “System-Denken”-Modus, in dem Sie feststellen, dass nicht alle Ihre Probleme vom Kern-Maschinenlernen gehandhabt werden sollten, sondern dass einige davon in die Benutzeroberfläche, einige vor- oder nachverarbeitet werden können und so weiter.

 

Was sind einige der Maschinenlernen-Technologien, die bei Picterra verwendet werden?

In der Produktion verwenden wir derzeit Pytorch, um unsere Modelle auszubilden und auszuführen. Wir verwenden auch Tensorflow von Zeit zu Zeit für bestimmte Modelle, die für Kunden entwickelt wurden. Außerhalb davon ist es ein ziemlich standardmäßiger wissenschaftlicher Python-Stack (numpy, scipy) mit einigen geospatialen Bibliotheken (gdal) hinzugefügt.

 

Können Sie erläutern, wie Picterra im Hintergrund funktioniert, wenn jemand Bilder hochlädt und den neuronalen Netzwerk-Algorithmus trainieren möchte, um Objekte ordnungsgemäß zu annotieren?

Sicher, also zuerst, wenn Sie ein Bild hochladen, verarbeiten wir es und speichern es in einem “Cloud-Optimized-Geotiff”-Format (COG) auf unserem Blobstore (Google Cloud Storage), was es uns ermöglicht, schnell auf Blöcke des Bildes zuzugreifen, ohne das gesamte Bild herunterladen zu müssen. Dies ist ein wichtiger Punkt, da geospatial-basierte Bilder enorm groß sein können: Wir haben Benutzer, die regelmäßig mit 50000×50000-Bildern arbeiten.

Dann, um Ihr Modell zu trainieren, müssen Sie Ihr Trainingsdatenset über unsere Web-Benutzeroberfläche erstellen. Sie tun dies, indem Sie drei Arten von Bereichen definieren:

  1. ‘Trainingsbereiche’, in denen Sie Trainingsbezeichnungen zeichnen
  2. ‘Testbereiche’, in denen das Modell Vorhersagen treffen lässt, um einige Ergebnisse zu visualisieren
  3. ‘Genauigkeitsbereich’, in dem Sie Bezeichnungen zeichnen, die jedoch nicht für das Training, sondern nur für die Bewertung verwendet werden

Sobald Sie dieses Datenset erstellt haben, können Sie einfach auf “Trainieren” klicken und wir trainieren einen Detektor für Sie. Was als Nächstes passiert, ist, dass wir einen Trainingsauftrag in die Warteschlange einstellen, einen unserer GPU-Arbeiter starten (neue GPU-Arbeiter werden automatisch gestartet, wenn es viele gleichzeitige Aufträge gibt), Ihr Modell trainieren, die Gewichte im Blobstore speichern und schließlich im “Testbereich” vorhersagen, um es in der Benutzeroberfläche anzuzeigen. Von dort aus können Sie Ihr Modell iterieren. Typischerweise werden Sie einige Fehler im “Testbereich” erkennen und “Trainingsbereiche” hinzufügen, um dem Modell zu helfen, sich zu verbessern.

Sobald Sie mit dem Score Ihres Modells zufrieden sind, können Sie es im großen Maßstab ausführen. Aus der Sicht des Benutzers ist dies wirklich einfach: Klicken Sie einfach auf “Erkennen” neben dem Bild, auf dem Sie es ausführen möchten. Aber es ist ein bisschen komplizierter unter der Haube, wenn das Bild groß ist. Um es zu beschleunigen, Fehler zu handhaben und zu vermeiden, dass Erkennungen mehrere Stunden dauern, teilen wir große Erkennungen in Rasterzellen auf und führen einen unabhängigen Erkennungsauftrag für jede Zelle aus. Dies ermöglicht es uns, sehr große Erkennungen durchzuführen. Zum Beispiel hatte ein Kunde eine Erkennung über ganz Dänemark auf 25cm-Bildern durchgeführt, was im Bereich von Terabyte an Daten lag – für ein einzelnes Projekt. Wir haben ein ähnliches Projekt in diesem Medium-Beitrag abgedeckt.

 

Gibt es noch etwas, das Sie über Picterra teilen möchten?

Ich denke, was großartig an Picterra ist, ist, dass es ein einzigartiges Produkt ist, das an der Schnittstelle zwischen Maschinenlernen und Geospatial steht. Was uns von anderen Unternehmen unterscheidet, die geospatial-basierte Daten verarbeiten, ist, dass wir unseren Benutzern eine Selbstbedienungsplattform zur Verfügung stellen. Sie können leicht Orte finden, Muster analysieren und Objekte auf Erdbeobachtungsbildern erkennen und zählen. Ohne Maschinenlernen wäre dies unmöglich, aber unsere Benutzer benötigen nicht einmal grundlegende Programmierkenntnisse – die Plattform erledigt die Arbeit auf der Grundlage von wenigen von Menschen erstellten Annotationen. Für diejenigen, die tiefer in die Kernkonzepte des Maschinenlernens im geospatialen Bereich eintauchen möchten, haben wir einen umfassenden Online-Kurs gestartet.

Was auch erwähnenswert ist, ist, dass die möglichen Anwendungen von Picterra endlos sind – Detektoren, die auf der Plattform entwickelt wurden, wurden in Stadtverwaltung, Präzisionslandwirtschaft, Forstwirtschaft, humanitärer Hilfe und Katastrophenrisikomanagement, Landwirtschaft usw. eingesetzt, um nur einige der häufigsten Anwendungen zu nennen. Wir werden jeden Tag von dem überrascht, was unsere Benutzer mit unserer Plattform versuchen. Sie können es ausprobieren und uns auf sozialen Medien mitteilen, wie es funktioniert hat.

Vielen Dank für das großartige Interview und für das Teilen, wie leistungsfähig Picterra ist. Leser, die mehr erfahren möchten, sollten die Picterra-Website besuchen.

Antoine ist ein visionärer Leiter und Gründungspartner von Unite.AI, getrieben von einer unerschütterlichen Leidenschaft für die Gestaltung und Förderung der Zukunft von KI und Robotik. Als Serienunternehmer glaubt er, dass KI für die Gesellschaft so disruptiv sein wird wie Elektrizität, und er wird oft dabei erwischt, wie er über das Potenzial disruptiver Technologien und AGI schwärmt.

Als Futurist ist er darauf bedacht, zu erforschen, wie diese Innovationen unsere Welt prägen werden. Darüber hinaus ist er der Gründer von Securities.io, einer Plattform, die sich auf Investitionen in bahnbrechende Technologien konzentriert, die die Zukunft neu definieren und ganze Branchen umgestalten.