Ich habe eine konzeptionelle Frage bezüglich eines Software-Prozess/Architektur-Setups für maschinelles Lernen. Ich habe eine Web-App und versuche, einige maschinelle Lernalgorithmen zu integrieren, die wie die Gesichtserkennung von Facebook funktionieren (außer bei Objekten im Allgemeinen). So wird das Modell besser bei der Klassifizierung spezifischen Bilder in meinen Dienst hochgeladen (wie fb kann bestimmte Personen usw. klassifizieren).Spezialisierung des Bildklassifizierungsmodells mit Benutzerbildmarkierung
Die grobe Skizze ist:
event: User uploads image; image attempts to be classified
if failure: draw a bounding box on object in image; return image
interaction: user tags object in box; send image back to server with tag
????: somehow this new image/label pair will fine tune the image classifier
ich Hilfe mit dem letzten Schritt muß. Typischerweise hat ein Programmierer beim Transferlernen oder -training eine große Datenbank voller Bilder. In meinem Fall habe ich ein vortrainiertes Modell (google's inception-v3), aber meine Optimierungsdatenbank ist nicht vorhanden, bis ein Benutzer mit dem Hochladen von Inhalten beginnt.
Also wie könnte ich diese Tagging-Methode verwenden, um eine spezialisierte Datenbank zu erstellen? Ich bin sicher, dass FB auf dieses Problem gestoßen ist und es gelöst hat, aber ich kann ihre Lösung finden. Nach einigem Nachdenken (und nicht schlüssig Forschung), ist die einzige Strategien, die ich denken kann entweder an:
A) stockpile tagged images and do a big batch train
B) somehow incrementally input a few tagged images as they get
uploaded, and slowly over days/weeks, specialize the image classifier.
Im Idealfall würde Ich mag Option A vermeiden, aber ich bin nicht sicher, wie realistisch B ist, noch wenn es andere Möglichkeiten, um diese Aufgabe zu erfüllen. Vielen Dank!
Versuchen Sie, einen Lernenden für jeden oder einen Lerner pro Benutzer zu spezialisieren? In jedem Fall, was ist falsch daran, die neuen etikettierten Bilder zu nehmen und einige Iterationen stochastischen Gradientenabfalls (oder eine andere einfache Methode) im Netzwerk auszuführen, wie sie kommen? Siehe [Online-Lernen] (https://en.wikipedia.org/wiki/Online_machine_learning). – user3658307
Ja, ein Lerner für das ganze System. Okay, Online-Lernen scheint die Strategie zu sein, die es mir erlaubt, das Modell mit begrenzten, dynamischen Daten "sequenziell" zu aktualisieren. –