¿Qué tan difícil es competir en competencias de Kaggle sin usar bibliotecas de aprendizaje profundo como Theano, Caffe o Torch?

Un marco para la competencia de Kaggle debe incluir algunos componentes:

  1. Extracción de características
  2. Preprocesamiento de funciones
  3. Selección de características
  4. Partición de conjunto de datos para capacitación y validación local
  5. Selección de modelo
  6. Selección de hiperparámetro modelo
  7. Conjunto de modelo
  8. Preparación de la presentación

Arriba están los pasos que pueden ser automatizados o semiautomatizados. Las personas con estilo académico prefieren examinar los conjuntos de datos con cuidado, por lo que puede agregar 2.5 Visualización de datos, que probablemente no esté automatizada. Los pasos 5 y 6 implican que tiene una evaluación automatizada.

Oficialmente / Scentitically no se confirma que un marco generalizado reutilizable pueda implementarse o existir alguna vez. Puede encontrar en el foro de Kaggle que este es a veces el tema que los científicos se preguntan entre sí. Los principales competidores como Owen niegan que usen dichos marcos (aunque owen trabaja para una empresa llamada ‘Data Robot’). Algunos de mis amigos no creen que Owen no tenga un marco automatizado porque siempre saltó tarde a las competencias y presentó muchos menos resultados antes de llegar a una posición de liderazgo. Creo que al menos reutilizar el código de una competencia a otra es muy posible y bueno para la eficiencia.

Si por marco se refiere solo a las bibliotecas de aprendizaje automático, generalmente lleva tiempo reinventar las ruedas, pero si solo usa código abierto, debe tener información sobre el conjunto de datos para vencer a los demás. Todo sentido común. Esto pone de manifiesto el hecho de que las competiciones de minería de datos requieren una combinación de habilidades, no solo de aprendizaje automático. Puedo pensar en algunos rasgos que poseen los competidores fuertes:

  1. Estar muy organizado en la preparación de datos y documentación.
  2. Fuerte habilidad de codificación
  3. Amplio conocimiento en aprendizaje automático y estadística.
  4. Experiencia en varios tipos de problemas y conocimiento de dominios de los principales dominios, como publicidad, recomendación, procesamiento de imágenes, etc.
  5. Ser sensible al conjunto de datos e incluso a la fuga de datos
  6. Ser creativo en la extracción de características
  7. Conocimiento profundo de algunos algoritmos, por ejemplo al menos uno para clasificación y otro para regresión
  8. Ser rico o de alguna manera tiene acceso a buenos hardwares o incluso sistemas distribuidos para manejar grandes conjuntos de datos sin problemas.

Nadie realmente sobresale en todo lo anterior, por lo tanto, debemos tener un marco que se adapte a las habilidades de nuestro equipo, personalizar las partes con las que estamos más familiarizados y optimizarlo, aprovechar el código abierto cuando nos falta cierta fuerza. El equipo “3 idiotas” es bastante bueno en la implementación de solucionadores, sus soluciones ganadoras para algunos concursos de clics publicitarios fueron máquinas de factorización de campo, escribieron su propio solucionador y finalmente lo obtuvieron de fuente abierta. También escriben su propio árbol de aumento de gradiente, aunque existen herramientas como xgboost y es difícil de superar. Hay personas que simplemente enumeran todas las buenas bibliotecas de código abierto y las ensamblan. Su rendimiento también es muy bueno. También puede encontrar científicos de datos que siempre usan xgboost tanto para la regresión como para la clasificación, y pasaron la mayor parte de su tiempo buscando en los datos y optimizando el preprocesamiento, y obtuvieron un alto puntaje entre todos los usuarios. Además, hay personas que confiesan que no conocen mucho el aprendizaje automático, pero que de alguna manera se unen con jugadores fuertes y ganaron algunos bonos.

Mis conclusiones son que

  1. Un marco es más que una biblioteca de aprendizaje automático
  2. Un marco debe adaptarse a la fuerza de su equipo

Su pregunta parece referirse a “cualquier” competencia de Kaggle. En ese caso, la respuesta no es difícil en absoluto. Simplemente porque la mayoría de las competencias de Kaggle no requieren ningún conocimiento de aprendizaje profundo. Por lo general, solo el reconocimiento de imágenes y algunas otras excepciones se basan en gran medida en el aprendizaje profundo.

Theano no es una biblioteca de “aprendizaje profundo”. Es una biblioteca para hacer cosas matemáticas más rápido. No creo que la velocidad sea importante para ganar una competencia de Kaggle, por lo que probablemente no sea tan necesario.