Cómo empezar con el aprendizaje profundo de Python Zhihu
Aprender por uno mismo el aprendizaje profundo es un proceso largo y arduo. Necesitará una sólida formación en álgebra lineal y cálculo, buenas habilidades de programación en Python y una sólida comprensión de la ciencia de datos, el aprendizaje automático y la ingeniería de datos. Aun así, puede llevar más de un año de estudio y práctica antes de que puedas comenzar a aplicar el aprendizaje profundo a problemas del mundo real y posiblemente conseguir un trabajo como ingeniero de aprendizaje profundo. Sin embargo, saber por dónde empezar puede ser de gran ayuda para suavizar la curva de aprendizaje. Si tuviera que volver a aprender el aprendizaje profundo en Python, comenzaría con el aprendizaje profundo de Grokking de Andrew Trask. La mayoría de los libros sobre aprendizaje profundo requieren conocimientos básicos de conceptos y algoritmos de aprendizaje automático. El libro de Trask le enseña los conceptos básicos del aprendizaje profundo sin ningún requisito previo más allá de las habilidades básicas de matemáticas y programación. Este libro no lo convertirá en un mago del aprendizaje profundo (ni afirma tal cosa), pero lo colocará en un camino que hará que le resulte más fácil aprender de libros y cursos más avanzados. Construyendo neuronas artificiales en Python
La mayoría de los libros de aprendizaje profundo se basan en alguna biblioteca popular de Python, como TensorFlow, PyTorch o Keras. Por el contrario, Grokking Deep Learning le enseña aprendizaje profundo creando contenido desde cero, línea por línea.
"Uso del aprendizaje profundo"
Primero debes desarrollar una neurona artificial, que es el elemento más básico del aprendizaje profundo. Trask le explica los conceptos básicos de las transformaciones lineales, los cálculos principales realizados por neuronas artificiales. Luego, las neuronas artificiales se implementan utilizando código Python ordinario sin utilizar bibliotecas especiales.
Esta no es la forma más eficiente de realizar aprendizaje profundo, ya que Python tiene muchas bibliotecas que aprovechan la tarjeta gráfica de la computadora y la potencia de procesamiento paralelo de la CPU para acelerar los cálculos. Pero escribir todo en Python simple es excelente para aprender los entresijos del aprendizaje profundo.
En el aprendizaje profundo de Grokking, su primera neurona artificial toma solo una entrada, la multiplica por un peso aleatorio y hace una predicción. Luego se mide el error de predicción y se aplica el método de descenso de gradiente para ajustar los pesos de las neuronas en la dirección correcta. Con una sola neurona, una sola entrada y una sola salida, resulta muy fácil comprender e implementar este concepto. Aumentará gradualmente la complejidad del modelo, utilizará múltiples dimensiones de entrada, predecirá múltiples salidas, aplicará el aprendizaje por lotes, ajustará la tasa de aprendizaje y más.
Implementarás cada concepto nuevo agregando y modificando gradualmente el código Python escrito en los capítulos anteriores, creando gradualmente una lista de funciones para hacer predicciones, calcular errores, aplicar correcciones y más. Cuando pasa de cálculos escalares a cálculos vectoriales, pasa de las operaciones ordinarias de Python a Numpy, una biblioteca que es particularmente buena en computación paralela y muy popular en las comunidades de aprendizaje automático y aprendizaje profundo.
Redes Neuronales Profundas en Python
Con estos componentes básicos de neuronas artificiales, puedes comenzar a crear redes neuronales profundas, que es básicamente donde se combinan varias capas de neuronas artificiales. El resultado obtenido cuando se apilan juntos.
Cuando cree una red neuronal profunda, aprenderá sobre las funciones de activación y las aplicará para romper la linealidad de las capas apiladas y crear resultados de clasificación. Nuevamente, implementará todo usted mismo con la ayuda de las funciones de Numpy. También aprenderá a calcular gradientes y propagar errores a través de capas para propagar correcciones a través de diferentes neuronas.
A medida que se familiarice con los conceptos básicos del aprendizaje profundo, aprenderá e implementará conceptos más avanzados. Este libro presenta algunas técnicas de regularización populares, como la parada y salida anticipadas. También obtendrá sus propias versiones de redes neuronales convolucionales (CNN) y redes neuronales recurrentes (RNN).
Al final del libro, tendrá todo empaquetado en una biblioteca completa de aprendizaje profundo de Python, creando sus propias clases de jerarquía, funciones de activación y arquitecturas de redes neuronales (en esta sección, aprenderá sobre orientación a objetos). Se requieren habilidades de programación). Si ha utilizado otras bibliotecas de Python como Keras y PyTorch, la arquitectura resultante le resultará muy familiar. Si no tiene una, le resultará más fácil adaptarse a estas bibliotecas en el futuro.
A lo largo del libro, Chaske te recuerda que la práctica hace la perfección; te anima a escribir tus propias redes neuronales con cuidado, en lugar de copiar y pegar nada.
El código base es un poco problemático
No todo en el aprendizaje profundo de Grokking es perfecto. En un artículo anterior dije que una de las principales cosas que define un buen libro es el código base. Chaske podría haberlo hecho mejor en este sentido.
En la biblioteca de aprendizaje profundo Grokking de GitHub, cada capítulo tiene archivos enriquecidos de Jupiter Notebook. Jupiter Notebook es una excelente herramienta para aprender el aprendizaje automático y el aprendizaje profundo de Python. Sin embargo, la ventaja de Júpiter es que divide el código en varias unidades pequeñas que pueden ejecutarse y probarse de forma independiente. Algunos cuadernos para el aprendizaje profundo de Grokking se componen de celdas muy grandes que contienen grandes cantidades de código sin comentar.
Esto se vuelve especialmente difícil en capítulos posteriores, a medida que el código se vuelve más largo y complejo, y orientarse en el cuaderno se vuelve muy tedioso. Como cuestión de principio, los códigos de materiales educativos deben dividirse en celdas pequeñas e incluir comentarios en áreas clave.
Además, Trask escribió este código en Python 2.7. Si bien se ha asegurado de que el código también funcione sin problemas en Python 3, contiene técnicas de codificación antiguas que han sido desaprobadas por los desarrolladores de Python (como el uso del paradigma "for i in range(len(array))" en la iteración de matrices).
El panorama más amplio de la inteligencia artificial
Trask ha hecho un gran trabajo al elaborar un libro que puede ser utilizado tanto por pitonistas principiantes como experimentados. Los desarrolladores de aprendizaje profundo llenan los vacíos en su conocimiento.
Pero como dijo Tywin Lannister (y todo ingeniero estará de acuerdo), “Para cada tarea, hay una herramienta, y para cada herramienta, hay una tarea de Aprendizaje Profundo y no hay una varita mágica”. que puede resolver todos los problemas de IA. De hecho, para muchos problemas, los algoritmos de aprendizaje automático más simples, como la regresión lineal y los árboles de decisión, funcionarán tan bien como el aprendizaje profundo, mientras que para otros problemas, las técnicas basadas en reglas, como las expresiones regulares y algunas cláusulas if-else, prevalecerán sobre ambos.
La cuestión es que se necesita un conjunto completo de herramientas y técnicas para resolver problemas de IA. Con suerte, Grokking Deep Learning puede ayudarlo a comenzar con estas herramientas.
¿A dónde vas? Sin duda recomendaría leer un libro detallado sobre aprendizaje profundo en Python, como Deep Learning with PyTorch o Deep Learning with Python. También deberías profundizar tu conocimiento de otros algoritmos y técnicas de aprendizaje automático. Dos de mis libros favoritos son Aprendizaje automático práctico y Aprendizaje automático con Python.
También puedes aprender mucho navegando por foros de aprendizaje automático y aprendizaje profundo, como los subreddits r/MachineLearning y r/deeplearning, el grupo de Facebook AI and Deep Learning, o siguiendo a investigadores de IA en Twitter. Conocimiento.
El mundo de la IA es enorme y se está expandiendo rápidamente, y todavía queda mucho por aprender. Si este es su primer libro sobre aprendizaje profundo, es el comienzo de un viaje asombroso.