¿Qué herramienta es mejor para aprender una red neuronal AI, C ++ o MATLAB?

Nada supera a Matlab y es simplicidad. Sin dependencias rotas, sin gestión de versiones y con la mínima experiencia en programación requerida. La sintaxis de Matlab mateix es la más concisa que existe. Hay excelentes bibliotecas preparadas para todo y no necesita hacer nada especial para que funcionen. Instalar y está listo para ser utilizado.

Sin embargo, Matlab es muy costoso y, a menudo, su uso es prohibitivo en entornos de producción. Si puede pagar el costo, continúe con Matlab.

C ++ es el otro extremo. Tiene una de las sintaxis más detalladas y se requieren demasiados caracteres especiales (#;} …) para que coincida con su ego. Además, después de algunas iteraciones, eventualmente terminaría con un infierno de dependencia y enlaces faltantes a las bibliotecas requeridas. Además, los requisitos de compilación se suman a los gastos generales. Todas estas son distracciones innecesarias mientras se aprende un concepto como AI o ML. Tenga en cuenta que esto no quita nada de C ++. En mi opinión, es el lenguaje más omnipresente jamás diseñado. Puede escribir un núcleo del sistema operativo y también escribir la interfaz de usuario de escritorio con esto. El punto es que no es un buen lenguaje para experimentar y aprender nuevos conceptos.

En mi opinión, Python es el lenguaje de nido que proporciona una buena compensación entre estos dos extremos. Es tan abierto como C ++ e interpretado como matlab. La sintaxis es concisa y tiene un buen soporte para la gestión de dependencias (pip, conda). Pero aún se le requerirá que siga instalando y actualizando las API que cambian constantemente. Además, con python, puede crear una interfaz de usuario y una capa web para pocos usuarios. Esto ayuda a mostrar los resultados de manera elegante sin ninguna herramienta externa. Jupyter es una opción para experimentar la codificación directamente dentro del navegador.

Resumen: Para la tarea específica de Aprendizaje ML e IA, use matlab si la opción es solo entre C ++ y Matlab. Elija python si tiene más opciones.

C ++ es un lenguaje sucio para codificar (¡uf!). Es poderoso cuando necesita control sobre la administración de memoria, pero ¿por qué ponerse en esa posición cuando no lo necesita? Pero si eres un programador de C ++ competente, ¡te felicito! Tengo envidia.

Dicho esto, cuando se aprende sobre las redes neuronales, primero se quiere entender la teoría detrás de ellas. Manténgase alejado de la programación inicialmente y lea / vea un puñado de tutoriales. Después de eso, realmente no importará en qué idioma usas para jugar.

Matlab, sin embargo, no es de uso gratuito. Y muchos de los buenos marcos de redes neuronales (Tensorflow, Caffe, Keras, scikit) no son directamente compatibles con él. Existen complementos, pero necesita desarrolladores adicionales para mantenerlos actualizados constantemente. Y es en estos marcos en los que realmente quieres quedarte atrapado. ¡Además, Matlab puede ser muy lento! Pero ciertamente es más fácil de usar que C ++. Por lo tanto, hay que tener en cuenta las compensaciones.

Personalmente prefiero Python sobre C ++ y Matlab. Si conoces C ++, entonces aprender Python es muy fácil. Vale la pena invertir el tiempo para aprenderlo porque se están lanzando muchas nuevas tecnologías / bibliotecas / marcos predominantemente con soporte de Python. Hay excepciones, por supuesto, pero esta es la tendencia hoy en día, en mi humilde opinión.

Matlab obviamente, C ++ es genial pero necesitas codificar mucho, por otro lado, matlab te dará el soporte de biblioteca que necesitas