Wenn ich an der explorativen Datenanalyse arbeite und Algorithmen entwickle, verbringe ich den größten Teil meiner Zeit mit Visualisieren, Schreiben von Code, Ausführen eines kleinen Datensatzes und Wiederholen. Bei den Daten handelt es sich in der Regel um Computer-Vision- / Sensor-Fusion-Daten, und Algorithmen sind sehr visuell (z. B. Objekterkennung und -verfolgung usw.), und die Standardalgorithmen funktionieren in diesem Zusammenhang nicht. Ich finde, dass dies viele Iterationen erfordert (zum Beispiel, um den Typ des Algorithmus einzuwählen oder die Parameter im Algorithmus abzustimmen, oder um eine korrekte Visualisierung zu erzielen), und auch die Laufzeiten selbst bei einem kleinen Datensatz sind ziemlich lang Alles in allem dauert es eine Weile.
Wie kann die Algorithmusentwicklung selbst beschleunigt und skalierbarer gemacht werden?
Einige spezifische Herausforderungen:
Wie kann die Anzahl der Iterationen reduziert werden? (Vor allem, wenn es nicht einfach ist, einen Algorithmus zu finden, geschweige denn seine Besonderheiten zu beschreiben, ohne verschiedene Versionen auszuprobieren und ihr Verhalten zu untersuchen.)
Wie kann ich während der Entwicklung auf größeren Datensätzen arbeiten? (Oft wird von einem kleinen zu einem großen Datensatz gewechselt, wenn eine Reihe neuer Verhaltensweisen und Probleme auftreten.)
Wie können Algorithmusparameter schneller eingestellt werden?
Wie können Tools für maschinelles Lernen auf die Algorithmusentwicklung selbst angewendet werden? (Anstatt den Algorithmus beispielsweise von Hand zu schreiben, schreiben Sie einige einfache Bausteine und kombinieren Sie sie auf eine Weise, die Sie aus dem Problem usw. gelernt haben.)