¿Puedo crear un programa de aprendizaje automático en otro idioma que no sea un flujo de tensor o scikit-learn?

Comencemos definiendo qué son Tensor Flow, SciKit-Learn y machine learning. Los dos primeros son bibliotecas para el lenguaje de programación Python. Hay muchas otras bibliotecas disponibles para Python, por ejemplo, NumPy, PyGTK, Pandas, etc. La mayoría de los lenguajes de programación tienen soporte incorporado para tareas comunes. Para tareas menos comunes, las bibliotecas están disponibles para su uso. SciKit-Learn y Tensor Flow son bibliotecas de aprendizaje automático especialmente diseñadas. Ambos están escritos en el lenguaje de programación Python.

El aprendizaje automático, por otro lado, es un campo de la informática donde se enseña a una computadora a aprender algo sin ser programada explícitamente para ello. Esta parte es un poco difícil de entender. Considere un programa que encuentre la distancia más corta desde el punto A al punto B. Es probable que cualquier programa de este tipo utilice un algoritmo que tenga una lista definida de pasos que resulten en el cálculo de la ruta más corta. Con este algoritmo, se garantiza que el programa encontrará la ruta más corta posible, suponiendo que exista una ruta. Esta es una forma de programación explícita. Estos algoritmos están tradicionalmente relacionados con el rendimiento, es decir, ¿qué tan rápido se ejecuta este algoritmo o cuánta memoria requiere este algoritmo?

Los algoritmos de aprendizaje automático utilizan datos para inferir patrones en los datos. Estos algoritmos no tienen un conjunto definido de pasos que pueda seguir, sino que utilizan una combinación de estadísticas y álgebra lineal para trazar límites de decisión en un conjunto de datos. Usando esta técnica, aprende la entrada y la salida objetivo. La calidad de este aprendizaje depende del algoritmo de aprendizaje y de los datos utilizados. Los algoritmos de aprendizaje automático generalmente se juzgan por su precisión. Si bien el rendimiento es definitivamente una preocupación, la precisión, la precisión y el recuerdo suelen ser más importantes.

Ahora que hemos definido qué es el aprendizaje automático, podemos responder qué es un programa de aprendizaje automático. Bueno, ese es simplemente un programa que utiliza un algoritmo de aprendizaje automático, acepta cierta entrada de datos y genera una clase objetivo, una decisión o algún valor.

Para responder a su pregunta ahora, sí, puede crear programas de aprendizaje automático utilizando bibliotecas que no sean SciKit-Learn y TensorFlow. Por ejemplo, Caffe2 es un marco de aprendizaje automático, aunque más especialmente diseñado para el aprendizaje profundo. También puede crear programas de aprendizaje automático utilizando lenguajes que no sean Python. En teoría, se puede usar cualquier lenguaje de programación. Una alternativa adecuada es MATLAB.

Hay una razón por la cual Python y otras bibliotecas comúnmente conocidas se usan para el aprendizaje automático. Este campo es altamente experimental. Por lo tanto, vale la pena fallar temprano . El tiempo dedicado a un algoritmo defectuoso es el tiempo perdido. Python, MATLAB y sus bibliotecas permiten prototipos rápidos y resultados rápidos para obtener resultados experimentales preliminares. La compensación aquí es el rendimiento, ya que estos lenguajes no están diseñados para la informática de alto rendimiento. Una vez que un algoritmo experimental es prototipo y validado, generalmente se transfieren a otros lenguajes de alto rendimiento como C ++.

Hay infinitas posibilidades para escribir / crear un programa de aprendizaje automático en cualquier idioma que no sea Python.

Específicamente, TensorFlow [1] y es la biblioteca hermana, Theano [2] – son dos de las bibliotecas más destacadas del aprendizaje automático diseñadas para optimizar operaciones pesadas de cómputo, como las convoluciones. Estas bibliotecas también amplían el cálculo para poder realizar en GPU. Su funcionalidad principal está programada en C ++ con las carpetas de Python . Además, el último en pie es el TensorFlow de Google, ya que Yoshua Bengio declaró el 28 de septiembre que MILA dejará de mantener y avanzar a Theano [3].

Volviendo a la pregunta principal, otros lenguajes destacados son MatLab [4] y R [5]. Ambos son bien conocidos y tienen foros muy activos y una base de usuarios de Stack OverFlow [6] [7] . Al final del día, las bibliotecas de MatLab también están escritas en C (MEX C – Marco de trabajo de MatLab).

Python ha mostrado una promesa infinita y casi ha ganado la carrera debido a que es un lenguaje original y no está regulado. Hay muchas bibliotecas disponibles en Python que están construidas sobre TenserFlow y Theano, exhiben Caffe y Keras. Scikit-learn se basa en NumPy, que optimiza las operaciones basadas en matrices.

Resumiendo, el Programa de Aprendizaje Automático es una clase de programa de computadora que puede aprender patrones usando aprendizaje supervisado, no supervisado o reforzado. Se puede usar cualquier lenguaje para desarrollar / codificar un algoritmo de aprendizaje automático hasta que se puedan implementar todas las lógicas fundamentales .

Notas al pie

[1] TensorFlow

[2] Bienvenido – Documentación de Theano 0.9.0

[3] Grupos de Google

[4] MATLAB – MathWorks

[5] El proyecto R para computación estadística

[6] Preguntas más recientes sobre ‘matlab’

[7] Preguntas más recientes sobre ‘r’

Los programas de aprendizaje automático representan soluciones de aprendizaje automático (a menudo escritas en lenguajes matemáticos) en código (lenguajes entendibles por máquina).

En la práctica, la mayoría de los lenguajes de programación pueden hacer el trabajo, algunos lenguajes específicos, por ejemplo, un lenguaje solo puede procesar textos, pueden no ser capaces de hacerlo fácilmente. Escribí “en la práctica” porque teóricamente todos los lenguajes de programación son equivalentes.

Desde que se inventaron las soluciones de aprendizaje automático, se escribieron en varios idiomas. Puede encontrarlos en línea fácilmente.

Para mostrarle lo fácil que es escribir un programa de aprendizaje automático en diferentes idiomas, aquí hay uno escrito por mí en Java si me atrevo a llamarlo un programa de aprendizaje automático. Ha implementado la regresión lineal, la regresión logística y la red neuronal y planeo agregar una red neuronal convolucional este año. 🙂

CarlFYZ / MachineLearning

Scikit Learn y Tensor Flow son bibliotecas de aprendizaje automático para Python.

Aquí hay una lista con descripciones de algunos otros.