Hay muy pocas buenas razones para aprender C ++ en general y menos excusas para aprenderlo para Machine Learning.
C ++ en la mayoría de los casos no ofrece ningún beneficio de rendimiento en lo que respecta a un programador promedio (y definitivamente no es para principiantes):
Encontramos que en lo que respecta al rendimiento, C ++ gana por un amplio margen. Sin embargo, también requirió los esfuerzos de ajuste más extensos, muchos de los cuales se realizaron a un nivel de sofisticación que no estaría disponible para el programador promedio
- ¿Dónde puedo encontrar algunas empresas que trabajen con técnicas de aprendizaje automático y minería de datos, en el campo biomédico?
- ¿Qué conocimientos de matemática / estadística y CS debo dominar (no matemático / stat / CS, pero graduado en ingeniería) para carrera / investigación en aprendizaje automático?
- ¿Existe una relación entre el aprendizaje automático y los procesos estocásticos?
- Si uno está tratando de construir un codificador automático para el conjunto de datos MNIST, ¿debería normalizar los datos sin procesar?
- ¿Cómo se entrenan las redes estocásticas generativas?
https://days2011.scala-lang.org/…
Y tiene una curva de aprendizaje extremadamente empinada por sí misma. Aún más, configurar una cadena de herramientas completa, todas las bibliotecas y dependencias no es una tarea fácil en los sistemas Linux y es extremadamente difícil hacerlo bien en las máquinas con Windows.
Por otro lado, Python se ha convertido en una opción casi de facto para el trabajo e investigación de Machine Learning.
Es extremadamente fácil aprender y usar el lenguaje. Es muy fácil configurar todas las dependencias que necesita. Básicamente, puedes comenzar a correr con Python.
También tiene una enorme cantidad de bibliotecas que están listas para usar con fines de aprendizaje automático y análisis de datos:
- NumPy – NumPy
- SciPy.org – SciPy.org
- scikit-learn: aprendizaje automático en Python
- Guía del usuario de PyMC
- Biblioteca de análisis de datos de Python
- Dask – dask
- gensim: modelado de temas para humanos
- Jupyter y el futuro de IPython
Cuando compara el ecosistema disponible con el desarrollador de Python y el que está disponible para el desarrollador de C ++, ni siquiera es divertido.
Pero te preocupa el rendimiento. Adivina qué. La mayoría de estos proyectos que he mencionado anteriormente usan código C altamente optimizado o bibliotecas que dependen de proyectos como BLAS o LAPACK: proporcionan primitivas de manipulación matemática extremadamente optimizadas, y es REALMENTE difícil hacerlo mejor que eso.
TLDR: Definitivamente, Python. NO C ++.
EDITAR:
Olvidé:
- TensorFlow
- Bienvenido – Documentación de Theano 0.9.0
- Documentación de Keras