¿Es Haskell una buena opción para los problemas de aprendizaje automático? ¿Por qué? ¿O por qué no?

Haskell no está tan bien desarrollado para las tareas de ML como algo que parece ser Python o R al principio. En particular, Haskell aún no tiene enormes bibliotecas para la manipulación de matrices y vectores (aunque hmatrix acaba de obtener la licencia BSD3 recientemente, por lo que ahora tiene mucho espacio para mejorar). La escritura estática también tiene un poco de tensión con las técnicas comunes de modelado de datos, como los marcos de datos.

Dicho esto, Haskell es un lenguaje tremendo para la programación de alto nivel y si estás dispuesto a esforzarte un poco, obtendrás grandes recompensas.

Un gran ejemplo de esto son las increíbles abstracciones de transmisión disponibles en Haskell. Si puede describir su problema como un problema de transmisión de ML, entonces puede expresarlo de manera poderosa y segura utilizando las bibliotecas Haskell que ya existen en la actualidad.

Entonces, diría que Haskell tendrá mucha aceleración, lenguaje de alta velocidad para ML. Si puede permitirse poner un poco de esfuerzo, obtendrá grandes recompensas. Si solo necesita resolver un problema y luego salir, estará mejor trabajando en Python, Matlab o R.

Creo que Haskell es razonablemente adecuado para el aprendizaje automático. Es un lenguaje expresivo de muy alto nivel que aún logra ser razonablemente rápido: ambas grandes cualidades para las aplicaciones de aprendizaje automático.

Eche un vistazo a este documento sobre HLearn que habla sobre por qué Haskell es una buena opción para el aprendizaje automático. Esta biblioteca intenta ser más accesible para las personas que no son expertas en aprendizaje automático explotando la estructura algebraica de los modelos de aprendizaje. Esto encaja muy bien con Haskell: las estructuras algebraicas y el razonamiento son muy idiomáticos y se encuentran ampliamente tanto en la biblioteca estándar como en el código práctico.

Si, absolutamente. No sé acerca de su nivel de soporte de biblioteca, pero Haskell es excelente por las razones dadas en la respuesta de Tikhon Jelvis a esta pregunta.

El paralelismo solo se volverá más importante en ML, ya que la Ley de Moore de un solo procesador llega a su fin (si aún no lo ha hecho). Los programas imperativos son difíciles de paralelizar, pero los algoritmos funcionales sin estado son triviales para paralelizar. Por supuesto, en el mundo real, es bastante raro que un algoritmo puramente sin estado haga el trabajo; Lo mejor de Haskell es la forma en que puede usar la información en tiempo de compilación para administrar el estado. Hay todo tipo de optimizaciones de rendimiento que los compiladores pueden hacer si saben que una determinada sección de código no tiene estado.

Haskell tiene el beneficio adicional de ser un lenguaje de alto nivel, lo que significa que no hay mucha complejidad incidental en la forma de escribir un algoritmo complejo y posiblemente novedoso.

¿Estás escribiendo tu propio método o llamando a alguien más?

La belleza de scikit-learn, milk, nltk, convnet.js, etc., es que las personas que realmente no saben lo que están haciendo pueden importar una biblioteca y obtener un resultado lo suficientemente bueno de todos modos, luego seguir adelante con la vida.

Dicho esto, mientras tengas álgebra lineal, puedes hacer una regresión.

More Interesting

Cómo obtener un antivirus gratuito para Chrome

¿Cuál es la mejor solución para una actualización congelada de Windows?

¿Cuál es la mejor manera de crear una política de firewall para una gran empresa, que sea lo suficientemente segura y no requiera demasiado mantenimiento?

¿Cómo pueden los fabricantes de discos duros demostrar que sus productos están a salvo de ataques de malware?

¿Cómo se originó la piratería informática?

Cómo detectar y eliminar virus manualmente de mi PC sin ningún antivirus

¿Cuál es el mejor anti-spyware para Windows (2017)?

En criptografía, ¿cuál es una definición intuitiva para la seguridad semántica?

¿Por qué el intercambio de dos bloques de texto cifrado adyacentes no afecta el descifrado de bloques subsiguientes encriptados en modo PCBC?

¿Cuáles son algunos de los posibles ataques que pueden llevarse a cabo en un sitio HTTP (sin SSL)?

¿De qué maneras se pueden usar mal varios tipos de información privada?

¿Cuál es el impacto económico del ataque DDoS contra Dyn?

¿Cómo pueden los desarrolladores trabajar para administrar el costo de la autenticación de 2 factores?

Para 2020, se usarán alrededor de 40 mil millones de dispositivos inteligentes. Hay softwares de seguridad para computadoras e incluso teléfonos inteligentes, pero ¿qué pasa con los wearables y otros dispositivos inteligentes?

¿Cuándo veremos una identificación rápida y fácil de personas en línea sin contraseñas tediosas que requieren cambios constantemente?