Al trabajar en el análisis exploratorio de datos y desarrollar algoritmos, encuentro que la mayor parte de mi tiempo lo paso en un ciclo de visualización, escritura de código, ejecución en pequeños conjuntos de datos, repetición. Los datos que tengo tienden a ser del tipo de fusión de visión por computadora / sensor, y los algoritmos tienen mucha visión (por ejemplo, detección y seguimiento de objetos, etc.), y los algoritmos estándar no funcionan en este contexto. Me parece que esto requiere muchas iteraciones (por ejemplo, para marcar el tipo de algoritmo o ajustar los parámetros en el algoritmo, o para obtener una visualización correcta) y también los tiempos de ejecución incluso en un pequeño conjunto de datos son bastante largos, por lo que todo junto lleva un tiempo.
¿Cómo se puede acelerar el desarrollo del algoritmo y hacerlo más escalable?
Algunos desafíos específicos:
¿Cómo se puede reducir el número de iteraciones? (Esp., Cuando qué tipo de algoritmo, y mucho menos los detalles del mismo, no parece ser fácilmente previsible sin probar diferentes versiones y examinar su comportamiento)
¿Cómo ejecutar conjuntos de datos más grandes durante el desarrollo? (A menudo, pasar de un conjunto de datos pequeño a uno grande es cuando se ven un montón de nuevos comportamientos y nuevos problemas)
¿Cómo se pueden ajustar los parámetros del algoritmo más rápido?
¿Cómo aplicar herramientas de tipo aprendizaje automático para el desarrollo de algoritmos en sí? (Por ejemplo, en lugar de escribir el algoritmo a mano, escriba algunos bloques de construcción simples y combínelos de una manera aprendida del problema, etc.)