
Ich heiße Alexandra Tsareva. Meine Kollegen und ich arbeiten an Projekten im Bereich Computer Vision im Machine Learning Center von Jet Infosystems. Ich möchte unsere Erfahrungen bei der Entwicklung und Umsetzung von Projekten im Bereich Computer Vision teilen.
In diesem Artikel werde ich darüber sprechen, wie der Arbeitsprozess eines Datasetisten an einem Projekt nicht aus "spiritueller" und in der Tat aus datensignistischer Sicht aussieht, sondern eher aus organisatorischer Sicht. Und ich hoffe, dass diesem Beitrag noch einige folgen und eine kleine Serie schreiben können.
Ich werde gleich zwei wichtige Punkte ansprechen:
- Diese Schritte gelten für fast jedes Datensatzprojekt. Einige Momente werden jedoch durch den Hype-Effekt um CV, den Ruhm der "Silberkugel" in der Bildverarbeitung und den Wunsch des Kunden verursacht, "es mit dem neuronalen Netzwerk zu haben".
- , , — , - . , , ( , ..) , — - .
: ?
Wenn ein Kunde entscheidet, dass er Datasetisten und künstliche Intelligenz benötigt, die ihm helfen, muss er zunächst verstehen, welches Problem er lösen wird. In dieser Phase fungiert ein Datensigner als Daten- "Psychoanalytiker" und fragt detailliert nach Daten, externen Einschränkungen aus geschäftlicher Sicht und Problemen, die man in einer idealen Welt lösen möchte. Der Kunde weiß oft schon alles über die zukünftige Aufgabe - Sie müssen ihm nur helfen, dieses Wissen zu verstehen und zu formalisieren (seine interne Datenwelt zu verstehen und manchmal - und sich mit ihren Besonderheiten abzufinden).
Natürlich ist Computer Vision ein sehr interessanter Bereich, es gibt immer etwas zu zählen und mit Ihren Händen zu tun. All dies ist jedoch ziemlich teuer - sowohl in Bezug auf die Entwicklungsstunden als auch in Bezug auf die Kosten für Spezialisten und die von ihnen benötigte Ausrüstung. Wir können nicht anders, als uns zu fragen, ob die optimale Lösung des Problems wirklich einen Lebenslauf erfordert. Vielleicht gibt es andere maschinelle Lernwerkzeuge, die besser geeignet sind und das Problem mit einer kürzeren Entwicklungszeit und einer höheren Genauigkeit besser lösen können?
Ich zeige Ihnen die Idee anhand eines einfachen Beispiels. Ein Einzelhändler wollte die CCTV-Bilderkennung implementieren, um zu verfolgen, wie viele Personen an der Kasse anstehen. Es scheint eine naheliegende Aufgabe zu sein - es gibt ein Videoarchiv, es gibt sogar vorab trainierte neuronale Netze - "Zähler". Unterschreibe den Zeitplan, mach es.
Aus einem Gespräch mit einem Einzelhändler erfährt der Dateinter jedoch, dass die Aufgabe nicht mit der Belastung des Kassierers zu einem bestimmten Zeitpunkt zusammenhängt. Die globale Aufgabe besteht nicht darin, unnötige Mitarbeiter zum Ersetzen aufzurufen, sondern gleichzeitig Warteschlangen zu vermeiden. Der Einzelhändler verfügt über eine große Datenbank, in der die Anzahl der Kunden angegeben ist, die das Geschäft besucht haben (wenn Sie gesehen haben, wie sich die Verkäufer am Ausgang des Geschäfts über die Rahmen gebeugt haben, haben Sie die einfachste Implementierung eines solchen Schalters gesehen), Daten zu Einkäufen an der Kasse ... Und tatsächlich ist die Aufgabe nicht Zählen Sie die Personen in der Warteschlange, prognostizieren Sie die Arbeitsbelastung der Kassierer und optimieren Sie ihren Arbeitsplan.
Sie können es natürlich lösen, indem Sie Personen in archivierten Videos zählen. Tabellarische Daten werden jedoch normalerweise tiefer gespeichert und sind einfacher zu verarbeiten. Es ist fair, eine Alternative anzubieten - vielleicht hat der Kunde nur davon gehört, dass der Lebenslauf wow ist.
In der ersten Phase stellen wir sicher, dass das Problem, das der Kunde lösen möchte, wirklich ein Bildverarbeitungsproblem ist und dass diese Technologie am besten zur Lösung geeignet ist.
Schritt zwei: Wie werden wir das CV-Problem lösen und den Erfolg der Lösung bewerten?
Die zweite Stufe ist die Formulierung eines mathematischen Problems, die Wahl der Metriken.
Gibt es bekannte Lösungen, neuronale Netze, die dieses Problem lösen können? Vielleicht sogar ein Boxprodukt? Wenn die Aufgabe neu ist - gibt es vielleicht Veröffentlichungen, auf die wir uns verlassen und die erreichbare Qualität vorläufig abschätzen können?
In dieser Phase diskutieren wir die Metriken zur Lösung des Problems aus Sicht unserer Arbeit als Datenwissenschaftler und aus Sicht des Kunden im Kontext der Lösung eines Geschäftsproblems.
Die Arbeit mit Daten beginnt manchmal gleichzeitig mit der Vereinbarung der Lösung und der Metriken. Der Einfachheit halber werden wir sie jedoch in einem separaten Schritt herausgreifen.
Schritt drei: Erforschen und verstehen Sie unsere Daten
Es ist sehr wichtig zu beurteilen, ob wir über genügend Daten verfügen, um die anstehende Aufgabe zu lösen. Natürlich werden kleine Datensätze bereits in der Phase der Einstellung abgelehnt, aber beim Kennenlernen des Geschäftsproblems können neue Nuancen entstehen. Die Situationen sind anders: Wir können 1000 Bilder haben, von denen nur 10 zur erforderlichen Klasse gehören, und keine geheimen Bildverarbeitungstechnologien helfen uns.
Vielleicht werden wir sofort verstehen, dass es nicht schwierig ist, den vorhandenen Datensatz zu verbessern - Mitarbeiter zu bitten, mehr Objekte zu fotografieren, als routinemäßig gefilmt werden, um zusätzliche Daten durch Outsourcing oder offene Datensätze zu sammeln.
Gleichzeitig werden Mängel beim zukünftigen Modelllernen festgestellt, und viele von ihnen können uns zu dem Schritt zurückführen, in dem wir die grundlegende Lösbarkeit des Problems erneut diskutieren. Das häufigste Beispiel ist eine geringe Datenvielfalt oder eine Unterrepräsentation einer der Klassen. Es ist möglich, mit verschiedenen Augmentationstechniken um die Steigerung der Vielfalt zu konkurrieren, aber dies ermöglicht es uns nicht immer, ein Modell für die reale Welt vorzubereiten. Wenn es uns jedoch so erscheint, als könnten wir die Schwierigkeiten in den Daten bewältigen, kommt der vierte Schritt zur Rettung.
Schritt vier: Entwicklung eines Prototypmodells
In dieser Phase handelt es sich nicht um ein Modell, das zur Implementierung bereit ist, sondern um einen Prototyp, der uns und dem Kunden die Frage beantwortet, ob es sich lohnt, weiter in diese Richtung zu arbeiten, ob das mögliche Ergebnis den Erwartungen entspricht (unserem und vor allem dem Kunden). Nachdem wir mit den Daten gearbeitet haben, beginnen wir mit der Entwicklung eines Pilotmodells und bewerten dessen Qualität. Einige offensichtliche Dinge: In diesem Stadium wird das Modell anhand eines verzögerten Datensatzes validiert. Die beiden Hauptoptionen sind die Bilder, die wir beiseite legen, oder die Bilder, die unser Kunde während der Arbeit an dem Projekt eingegeben hat.
Die Arbeitszeit für das Projekt in der Pilotphase für die Entwicklung eines Prototyps beträgt mindestens einen Monat. Während dieser Zeit kann der Kunde in den meisten Fällen Daten zum Testen sammeln. Dies ist ein guter Test für Datasetisten, um festzustellen, wie ernst sie die Lösung des Problems nehmen: Wenn wir Daten verwenden, die wir noch nie gesehen haben, prüfen wir, wie unser Modell verallgemeinert werden kann und ob es zu den Antworten auf den Validierungsdatensatz passt (was natürlich auch zurückgestellt wird. Aber es ist zu spät, um herauszufinden, dass sich seitdem in der realen Welt alles geändert hat. Es wäre ziemlich schade.
Andererseits können wir zum Zeitpunkt des Empfangs des zurückgestellten Datensatzes herausfinden, inwieweit die Objekte, die in den Interessenbereich des Projektkunden fallen (und dies gilt auch für interne Kunden), stabil sind und der Stichprobe entsprechen, die für die Schulung und Validierung des Modells verwendet wurde. Schließlich ist eine solche Situation durchaus möglich: Computer Vision wird als großes Projekt zur Digitalisierung von allem und jedem implementiert, und gleichzeitig finden wichtige Änderungen in der Datenquelle statt (z. B. wurde der Hauptförderer vollständig neu aufgebaut und die daraus resultierenden Bilder haben sich grundlegend geändert).
Die Analyse der Pilotergebnisse hilft bei der Entscheidung über die Zukunft des Projekts. Es kann sich herausstellen, dass der Kunde sehr hohe Anforderungen an die Genauigkeit stellt: Beispielsweise müssen 99% der Antworten korrekt sein, und in den vorherigen Schritten schien es uns, dass dies grundsätzlich erreichbar war. Aber beim Piloten haben wir eine Genauigkeit von 93% erreicht und können natürlich keinen garantierten Gewinn von 6% versprechen. Es ist logisch, die Optionen für die Entwicklung des Projekts mit den verfügbaren Pilotergebnissen mit dem Kunden zu besprechen - über das Sammeln zusätzlicher Daten, das Reduzieren der erforderlichen Metrik oder sogar das Einfrieren des Projekts bis zu neuen Durchbrüchen im Lebenslaufbereich.
Die ersten vier Schritte können mit dem folgenden Diagramm dargestellt werden:
Sie brauchen viel weniger Zeit als die eigentliche Entwicklung. Trotzdem wird der zukünftige Erfolg des Projekts festgelegt - wie sehr es die Erwartungen des Kunden erfüllen und sein Problem wirklich lösen wird.
Schritt fünf: den Rest erledigen;)
Das gesamte Projekt, von der Konzeptbestätigung bis zur implementierten Lösung, sieht ungefähr so aus:

Der Plan und die Bedingungen für die Projektentwicklung sind ungefähr. In realen Projekten treten immer unterschiedliche Nuancen auf, da die Daten für jeden unterschiedlich sind, mit unterschiedlicher Geschwindigkeit erfasst werden und die Phase der Einführung von Computer Vision im Unternehmen selbst sehr unterschiedlich sein kann, je nachdem, mit was die Integration geplant ist, wer sie durchführt usw. .P. Schließlich ist es eine Sache, wenn es darum geht, ein Identifikationssystem für Mitarbeiter zu installieren, die das Büro betreten, das auf Aufzeichnungen von Überwachungskameras über einen langen Zeitraum basiert: Wir können sofort mit ihnen arbeiten. Es ist eine andere Sache, wenn wir eine unbedeutende Anzahl von Beispielbildern haben, mit denen wir einen Proof of Concept erstellen werden - wir werden prüfen, ob das Problem im Prinzip gelöst werden kann und wie lange es dauern wird, einen vollständigen Datensatz zu sammeln, wissen wir nicht.
Daher zeigt die Folie sehr ungefähre Zeitpläne für ein abstraktes Projekt im luftleeren Raum, aber ich denke, es ist nützlich zu wissen, dass der gesamte Zyklus vom Proof of Concept bis zur Implementierung und Implementierung etwa ein Jahr dauert. Diese Begriffe können sowohl für komplexe Aufgaben zunehmen als auch abnehmen, wenn die Lösung „out of the box“ vorzuziehen ist oder das Problem bekannt ist und keine Forschungsarbeit erfordert.