Como desarrollador web junior sin una sólida base matemática, ¿qué enfoques debo tomar para dominar el aprendizaje automático y aplicarlo al mundo empresarial? Acabo de empezar a estudiar la “Introducción al álgebra lineal” de Gilbert Strang.

Puede aplicar el aprendizaje automático (ML) al mundo de los negocios seleccionando una biblioteca como TensorFlow (TF) desde el principio, todo lo que necesita es una idea del producto.

Para usar TF no necesita el conocimiento profundo sobre ML o aprendizaje profundo (DL), puede tratar los modelos ML como solo cajas negras y luego centrarse en:

  • Recopilar los datos correctos en grandes cantidades.
  • Limpieza de los datos.
  • Optimización de hiperparámetros que se puede realizar mediante búsqueda aleatoria.
  • Evaluación de modelos ML.
  • Despliegue de modelos de producción.
  • Supervisión del rendimiento del modelo ML de producción en manos de usuarios reales.
  • Actualización de los modelos de producción.

Entonces, si desea obtener rápidamente un producto de ML mínimo viable, no se preocupe demasiado por dominar las teorías de ML. En unos minutos con TF, puede construir una red neuronal convolucional (CNN) y luego entrenarla en menos de una hora en miles de imágenes y luego tendrá un sistema de reconocimiento de imágenes.


Sin embargo, tratar los modelos ML como cajas negras como sus límites. Es rápido si quiere un producto lo más rápido posible, pero no hay novedad. Casi cualquier persona puede recoger el tren TF e implementar un modelo ML. Todo lo que necesita es simplemente poder llamar a los métodos correctos de API (interfaz de programación de aplicaciones) desde TF y un desarrollador web típico sabe cómo llamar a las bibliotecas.

Si desea agregar un toque único a sus productos de ML, debe comenzar con los requisitos previos y luego pasar a técnicas más avanzadas para dominar el ML.

Estos son los requisitos previos en orden descendente de importancia.

  • Álgebra lineal
    • Vector.
    • Matrices

El álgebra lineal es muy importante porque muchas operaciones en ML se basan en álgebra lineal y creo que hay muchos buenos materiales sobre álgebra lineal en línea.

  • Estadísticas y probabilidad .
    • Teorema de Bayes.
    • Funciones de densidad de probabilidad.
    • Variables aleatorias.

Muchas veces, la salida de los modelos ML debe estar en forma de probabilidades. Es por eso que tenemos las funciones sigmoide o softmax para calcular estas probabilidades en la salida. Con la probabilidad, es más fácil tomar decisiones y las probabilidades están limitadas entre 0 y 1, por lo que para el reconocimiento de imágenes, una probabilidad de 0.02 podría indicar que un objeto no está allí y una probabilidad de 0.91 puede indicar que un objeto está allí. Por lo tanto, puede tener un umbral de 0.5 para las probabilidades, pero puede ser difícil establecer un umbral para una salida ilimitada.

  • Cálculo
    • Calculo diferencial.
    • Cálculo integral (no tan importante en ML).

El algoritmo de retropropagación se basa en la regla básica de la cadena del cálculo. Muchas veces no tendrá que lidiar con derivados en ML a menos que realmente quiera dominar los principios subyacentes y poder diseñar sus propias funciones novedosas de activación o costo.

  • Optimización numérica .
    • Métodos de primer orden como el descenso de gradiente (GD) o el descenso de gradiente estocástico (SGD).
    • Métodos de optimización de segundo orden, como el método de Newton.

ML se basa principalmente en la teoría de optimización y muchos algoritmos de aprendizaje se basan en el descenso de gradiente por lotes, que es un híbrido entre GD y SGD. Comprender la optimización numérica es muy importante si desea dominar ML.

  • Programacion
    • Pitón
    • Java
    • C / C ++

También es importante ensuciarse implementando algunos modelos de ML. Implementar SGD y backprop desde cero es un ejercicio muy bueno para que tengas ganas de atacar más y más problemas desafiantes.


Normalmente, después de haber cumplido los requisitos previos, es posible que desee comenzar un proyecto paralelo. Cuando lea los requisitos previos, no intente memorizar, está bien olvidarlo porque la fase del proyecto paralelo lo obligará a revisar los conceptos más importantes y, por lo tanto, lo ayudará a consolidar mejor el conocimiento más importante. Leer solo no lo hará mejor, pero leer y practicar lo hará.

Por lo tanto, dedique tiempo a iniciar proyectos paralelos con una complejidad creciente en cada paso del progreso. Más tarde puede abrir el código fuente en GitHub o publicar en Kaggle.

También más tarde

  • Trate de obtener pasantías en empresas que trabajan en ML como: @
    • Google Brain
    • Mente profunda
    • OpenAI
    • Investigación de Microsoft
    • Investigación de AI en Facebook.
  • Para hacer videos tutoriales basados ​​en ML en YouTube.
  • Responda las preguntas de Quora sobre ML.
  • Escribe publicaciones de blog explicando conceptos en ML desde tu perspectiva.

El secreto para dominar es la consistencia durante un período prolongado de tiempo, especialmente si eres un novato completo, deberás asegurarte de estar leyendo y practicando constantemente.

Además, no espere hasta que se sienta muy cómodo con los requisitos previos antes de continuar. Comience con una descripción general de ML y luego siga avanzando, pero revise las cosas importantes en el camino.

Espero que esto ayude.

El mejor consejo que puedo darle es comenzar con explicaciones simples de los temas complejos . No lea un documento de matemáticas sobre un tema del que aún no sabe nada.

Puedo recomendar buscar explicaciones ELI5 del tema antes de sumergirme en las matemáticas.

Repasaría algunas de mis habilidades matemáticas (para empezar, diría Álgebra lineal y Trigonometría , tan pronto como lo necesite, tal vez también cálculo), si desea profundizar en las matemáticas de los algoritmos.

Además, este enlace: los 10 algoritmos que los ingenieros de aprendizaje automático necesitan saber y, por supuesto, mi serie de aprendizaje automático para desarrolladores web (especialmente si conoce Python), aunque soy parcial, podría serle útil 😉

Buena suerte 🙂

El libro de Gil Strang es una excelente matemática aplicada y especialmente en álgebra lineal.

Ian Goodfellow et al escribieron Deep Learning. La primera parte aborda los aspectos más destacados del álgebra lineal necesaria y luego se sumerge en Deep Learning. Es un libro grande y gordo que cubre bastante. Ian está aquí en Quora betimes.

En cuanto al video, recomendaría el curso de Andrej Karpathy.

En cuanto al front end, diría que Keras es el más fácil de manejar.

More Interesting

¿Cómo puede ANN manejar datos de entrada no numéricos?

¿Por qué la traducción automática neuronal a nivel de caracteres es más difícil que la traducción automática neuronal a nivel de palabra?

Al entrenar a un clasificador, ¿cómo trato con clases que tienen números muy diferentes de muestras en el conjunto de entrenamiento? ¿Cómo evito un ajuste excesivo en la clase que tiene la mayor cantidad de muestras?

¿Cómo se determinaría la relevancia de un artículo frente a algunas palabras clave?

Soy candidato a doctorado en una universidad en Irán, tengo experiencias en PNL persa, Spark, Hadoop y aprendizaje profundo. ¿Tengo alguna posibilidad de ingresar a Google?

¿La retropropagación de red neuronal de convolución utiliza un algoritmo en línea o un algoritmo por lotes?

¿Cómo está bien si me resulta difícil recordar todo después de terminar el curso de aprendizaje automático?

¿Cuán verdadera es la frase '95% de los sofisticados algoritmos de 'aprendizaje automático' son lanzados a los datos por alguien que solo tiene la comprensión más superficial de lo que realmente están haciendo '?

¿Cuál es una explicación intuitiva de un ingenuo clasificador de Bayes?

¿Cuál es un buen algoritmo para la extracción de características y la detección de texto escrito a mano?

¿Cómo puedo aprender ciencia de datos?

¿Cuándo debo usar la similitud de coseno? ¿Se puede usar para agrupar?

¿Qué versión de Python debería usar en 2016 en Machine Learning y Data Science, Python 2.7 o Python 3.0+?

¿Cuáles son algunos proyectos interesantes del último año relacionados con el aprendizaje automático?

¿Alguien ha intentado utilizar motores de recomendación y alguna forma de filtrado colaborativo para destacar agujeros en el mercado y producir conceptos para un mayor desarrollo en los productos?