Crédito de la foto: biblioteca dlib C ++ en http://dlib.net/ml_guide.svg
La lista exhaustiva de métodos de aprendizaje automático es demasiado grande para mencionarla. Las cosas importantes a tener en cuenta al comienzo del diseño de una solución a cualquier problema (no voy a decir, si planea hacer alguna regresión, no considere algoritmos de clasificación y cosas tan obvias):
- ¿Cuáles son algunos problemas no resueltos en la conversión de texto a imagen?
- ¿Qué algoritmos de visión por computadora se pueden usar para aumentar la claridad de una imagen?
- ¿Cuál es la mejor manera de controlar la temperatura de la CPU y la GPU en Windows 7?
- ¿Qué es el autómata pushdown?
- ¿Cuáles son algunos buenos ejemplos de problemas computacionales que naturalmente caen en NPSPACE?
(1) Los datos son lo primero … no el algoritmo: además del ‘teorema de no almuerzo gratis’, el enfoque es realmente impulsado por los datos, es decir, ningún método de ML realmente va a resolver ‘completamente’ cualquier problema serio del mundo real, por lo que la idea es diseñar un enfoque que resuelva la mayoría de los puntos importantes y proporcione la inferencia más útil sobre los datos para que las mejores elecciones se realicen con mayor frecuencia.
(2) compensación: bastante obvio, cualquier enfoque es una compensación entre la precisión y los recursos de procesamiento. Con recursos infinitos de tiempo y potencia computacional, puede resolver completamente cualquier problema y es completamente inútil. (Nota personal: ¿hay algún problema que no se pueda resolver con recursos infinitos, algo más allá de NP difícil ?!)
(3) Ruido: siempre ahí, siempre limitativo
(4) Tuberías y cuellos de botella: las implementaciones de aprendizaje automático suelen ser una tubería de múltiples módulos que se disputan los datos. En función de los datos y los objetivos de aprendizaje deseados, seleccione algoritmos para cada uno de estos módulos que funcionen bien juntos y entre sí.
(5) Escalado: construya un prototipo rápidamente y pruebe el subconjunto de datos y si las cosas parecen prometedoras, siga adelante, de lo contrario intente otra cosa. La razón de esto es que los datos casi nunca son lo que crees que son. Los descriptores de características en realidad no proporcionan lo que están diseñados para proporcionar, y en consecuencia un algoritmo de aprendizaje automático dado, que parece apropiado en teoría, funcionará muy mal en los datos reales. Es una buena idea probar diferentes algoritmos de ML relacionados y ver cómo funcionan con escalabilidad y otras métricas como precisión, robustez, costo computacional, estabilidad, etc. y luego avanzar con el algoritmo que mejor se adapte a los datos.