Redes Neurais em IA e Deep Learning - página 32

 

Lección 3: Aprendizaje profundo práctico para codificadores 2022



Lección 3: Aprendizaje profundo práctico para codificadores 2022

Este video proporciona una introducción al aprendizaje profundo práctico para programadores. Cubre los conceptos básicos de la multiplicación de matrices y los gradientes, y demuestra cómo usar un modelo de aprendizaje profundo para predecir la probabilidad de razas de perros y gatos. Este video proporciona una breve introducción al aprendizaje profundo para codificadores, incluida una discusión sobre cómo la multiplicación de matrices puede llevar mucho tiempo para tener una idea intuitiva. La próxima lección se centrará en el procesamiento del lenguaje natural, que se trata de tomar datos de texto y hacer predicciones basadas en su prosa.

  • 00:00:00 Esta lección cubre multiplicaciones y gradientes de matrices, y está pensada para estudiantes más inclinados a las matemáticas. El curso también incluye una "Lección Cero" sobre cómo configurar una caja de Linux desde cero.

  • 00:05:00 El video de esta semana presenta a cinco estudiantes que han creado diferentes proyectos relacionados con el aprendizaje profundo. Un alumno ha creado un detector de Marvel, otro ha creado un juego donde el ordenador siempre pierde, otro ha creado una aplicación para predecir temperaturas medias, otro ha creado un clasificador de movimientos artísticos y, por último, un alumno ha creado un detector de redacción.

  • 00:10:00 Este video cubre el aprendizaje profundo práctico para codificadores, incluido el uso de diferentes plataformas y bibliotecas de aprendizaje profundo. Abarca cómo entrenar un modelo e implementarlo en un entorno de producción.

  • 00:15:00 En esta lección, el estudiante explica cómo funciona el aprendizaje profundo y cómo usar diferentes modelos de aprendizaje profundo. También muestra cómo usar un modelo de aprendizaje profundo para predecir la probabilidad de razas de perros y gatos.

  • 00:20:00 En este video, se demuestra un modelo de aprendizaje profundo. El modelo consta de capas, cada una de las cuales contiene código y parámetros. El modelo es flexible y se puede entrenar para reconocer patrones en los datos.

  • 00:25:00 En esta lección, el instructor muestra cómo crear una función para ajustar un conjunto de datos mediante la aplicación parcial de una función. Luego demuestra cómo trazar la función y cómo ajustar los coeficientes de la función para que se ajuste mejor a los datos.

  • 00:30:00 Este video explica cómo mejorar la capacidad de una computadora para predecir valores usando una función de pérdida. El autor demuestra cómo hacer esto moviendo los controles deslizantes en un modelo gráfico basado en controles deslizantes y verificando la función de pérdida para ver si mejora o empeora. Pytorch puede calcular automáticamente el gradiente por usted, haciendo que el proceso sea rápido y fácil.

  • 00:35:00 En este video, el programador de Pytorch explica cómo usar la función de gradiente para ajustar los coeficientes de una ecuación cuadrática. La función de gradiente devuelve el negativo de la pendiente de la curva a la que se aplica.

  • 00:40:00 Este video explica cómo crear un modelo de aprendizaje profundo usando Pytorch. El modelo se optimiza mediante el descenso de gradiente y los coeficientes finales se determinan mediante la función matemática rectificado_lineal().

  • 00:45:00 En este video, Jeremy explica cómo usar el descenso de gradiente para optimizar los parámetros en modelos de aprendizaje profundo. Esta es la misma técnica que se utiliza para entrenar a los modelos en la vida real.

  • 00:50:00 Este video de YouTube cubre el aprendizaje profundo práctico para codificadores y cómo entrenar modelos para precisión y velocidad. Aconseja comenzar con un modelo preciso y bien ajustado y agregar gradualmente más datos para ver si mejora la precisión.

  • 00:55:00 En este video, el autor explica cómo calcular el gradiente de una función usando derivadas. El autor recomienda multiplicar el gradiente por un número pequeño, llamado tasa de aprendizaje, para evitar saltar demasiado a lo largo del gradiente y divergir.

  • 01:00:00 En esta lección, el instructor muestra cómo hacer la multiplicación de matrices para realizar cálculos de aprendizaje profundo en datos reales. Él proporciona un sitio web que proporciona una manera fácil de hacer esto.

  • 01:05:00 El orador explica cómo usar el aprendizaje profundo para predecir si los pasajeros del Titanic real sobrevivieron o no. Primero eliminan las columnas que no son relevantes para la predicción y luego multiplican cada fila por un coeficiente correspondiente a la variable dependiente. A continuación, crean una columna llamada "¿se embarcaron en Southampton?" y otra columna llamada "¿se embarcaron en Cherburgo?" y convertirlos en variables categóricas binarias. Finalmente, toman el promedio de todos los coeficientes y lo usan para predecir la variable dependiente.

  • 01:10:00 Esta lección explica cómo aplicar el aprendizaje profundo a problemas de codificación usando una regresión lineal. Primero, los datos se normalizan y se transforman en registros para que se distribuyan de manera más uniforme. A continuación, los coeficientes se calculan utilizando una función SumProduct en Excel. Finalmente, el descenso de gradiente se utiliza para optimizar la función de pérdida.

  • 01:15:00 En este video, se crea un modelo de aprendizaje profundo desde cero utilizando Microsoft Excel. El modelo funciona mejor que una regresión al predecir las tasas de supervivencia, pero su ejecución es más lenta y dolorosa. la multiplicación de matrices se utiliza para acelerar el proceso.

  • 01:20:00 Este video proporciona una breve introducción al aprendizaje profundo para codificadores, incluida una discusión sobre cómo la multiplicación de matrices puede llevar mucho tiempo para obtener una sensación intuitiva. La próxima lección se centrará en el procesamiento del lenguaje natural, que se trata de tomar datos de texto y hacer predicciones basadas en su prosa.

  • 01:25:00 Este video proporciona una guía paso a paso sobre cómo usar el aprendizaje profundo para la clasificación en idiomas distintos del inglés.

  • 01:30:00 En este video, el presentador analiza la importancia de los conjuntos de validación y las métricas en el aprendizaje profundo.
 

Lección 4: Aprendizaje profundo práctico para codificadores 2022



Lección 4: Aprendizaje profundo práctico para codificadores 2022

Este video explica cómo construir un modelo de aprendizaje profundo para la competencia Coders 2022. El autor cubre cómo crear un conjunto de validación, cómo usar los datos de la competencia para probar el rendimiento de su modelo y cómo evitar el sobreajuste en la configuración del mundo real. En este video, Jeremy explica cómo usar el coeficiente de correlación de Pearson para medir la relación entre dos variables y cómo usar Pytorch para entrenar un modelo que se comporta como un alumno de fast.ai. También analiza un problema con las predicciones generadas por las técnicas de PNL y cómo se puede resolver utilizando una función sigmoidea.

  • 00:00:00 Este video explica cómo ajustar un modelo de procesamiento de lenguaje natural preentrenado usando una biblioteca diferente a fast.ai.

  • 00:05:00 Este video cubre el algoritmo de aprendizaje profundo práctico para codificadores 2022, ULMFiT. ULMFiT fue un algoritmo de aprendizaje automático que se presentó por primera vez en un curso fast.ai. Posteriormente, el autor convirtió ULMFiT en un artículo académico. Después de capacitarse en las reseñas de películas de Wikipedia e IMDB, el algoritmo pudo predecir el sentimiento de una reseña con una precisión del 70 %.

  • 00:10:00 En esta lección, Jeremy explicó los conceptos básicos del modelo de lenguaje enmascarado de Transformers para el aprendizaje automático. Señaló que este enfoque es más popular que el enfoque ULMFiT y que hay cinco capas en el modelo del transformador. John hizo una pregunta sobre cómo pasar de un modelo que predice la siguiente palabra a un modelo que se puede usar para la clasificación. Jeremy dijo que necesitaría detectores de borde y detectores de gradiente en las primeras capas y que la última capa tendría activaciones para cada categoría que está pronosticando. Dijo que puedes entrenar este modelo agregando gradualmente una nueva matriz aleatoria al final.

  • 00:15:00 La competencia de Kaggle "Competencia de coincidencia de frase a frase de patentes de EE. UU." requiere un modelo que pueda determinar automáticamente qué pares de anclaje y objetivo están hablando de lo mismo. En este video, el presentador sugiere convertir los datos en un problema de clasificación para hacer uso de técnicas de PNL.

  • 00:20:00 Este video explica cómo usar el aprendizaje profundo para la clasificación de manera práctica, trabajando con un conjunto de datos que ya está almacenado en un formato de valores separados por comas (CSV). El video también cubre cómo usar pandas para leer los datos.

  • 00:25:00 Este video cubre el uso de cuatro bibliotecas para el aprendizaje profundo: numpy, matplotlib, pandas y pytorch. El autor recomienda leer "Python for Data Analysis" de Wes McKinney si no está familiarizado con estas bibliotecas. El primer paso para entrenar una red neuronal es tokenizar los datos y el segundo paso es entrenar la red.

  • 00:30:00 En este video, el presentador explica cómo tokenizar un texto en tokens y numerizar los tokens para crear un "conjunto de datos" de Hugging Face. El presentador recomienda usar un modelo previamente entrenado para la tokenización y describe algunos de los diferentes modelos disponibles.

  • 00:35:00 En este video, el presentador explica cómo usar un tokenizador para tokenizar una oración y cómo convertir los tokens en números. El conjunto de datos será el mismo que el conjunto de datos original, pero el conjunto de datos tokenizados será diferente debido al tokenizador.

  • 00:40:00 El video analiza cómo convertir cadenas de texto en números para permitir un aprendizaje profundo y explica que no es necesario seguir un formato establecido, siempre que se proporcione la información. Si un campo es particularmente largo, puede ser útil utilizar un enfoque transformador.

  • 00:45:00 En este video, el autor explica la importancia de tener conjuntos separados de entrenamiento, validación y prueba para el aprendizaje automático. Muestran cómo trazar una regresión polinomial e ilustran la diferencia entre subajuste y sobreajuste.

  • 00:50:00 El video explica cómo crear un buen conjunto de validación para un modelo de aprendizaje profundo y cómo usar los datos de la competencia para probar el rendimiento de su modelo. También analiza cómo evitar el sobreajuste en entornos del mundo real.

  • 00:55:00 En este video, aprendemos sobre el aprendizaje profundo y cómo crear modelos para las competencias de Coders 2022. Aprendemos que un conjunto de validación es un conjunto de imágenes que no se usan para entrenar el modelo, y que un conjunto de prueba es otro conjunto de validación que se usa para medir la precisión. También nos enteramos de que hay dos conjuntos de prueba: el que se muestra en la tabla de clasificación durante la competencia y un segundo conjunto de prueba que no se muestra hasta que finaliza la competencia.

  • 01:00:00 El "coeficiente de correlación de Pearson" es una medida muy utilizada de cuán similares son dos variables. Si sus predicciones son muy similares a los valores reales, el "coeficiente de correlación de Pearson" será alto.

  • 01:05:00 Este video de 1 minuto explica cómo usar el coeficiente de correlación de Pearson para medir la relación entre dos variables. El coeficiente de correlación es una medida de qué tan estrechamente están relacionadas dos variables y puede usarse para evaluar la fuerza de una relación entre dos variables. El coeficiente de correlación se puede visualizar mediante un diagrama de dispersión y puede ser útil para evaluar el conjunto de datos para el que se está utilizando.

  • 01:10:00 En este video, el presentador analiza cómo entrenar correctamente un modelo de aprendizaje profundo. Abarcan temas como la correlación, los valores atípicos y cómo dividir correctamente los datos. Luego muestran cómo entrenar el modelo con un "aprendiz" en fast.ai y cómo usar "tamaño de lote" y "épocas" para controlar cuántas filas se procesan a la vez.

  • 01:15:00 Los transformadores Hugging Face brindan una variedad de tasas de aprendizaje para diferentes tareas y brindan un modelo que es apropiado para clasificar secuencias de un modelo previamente entrenado. También puede identificar valores atípicos en los datos.

  • 01:20:00 En esta lección, el instructor explica cómo usar Pytorch para entrenar un modelo que se comporte como un aprendiz rápido.AI. Señala que, aunque los valores atípicos nunca deben eliminarse, pueden investigarse y, si es necesario, corregirse.

  • 01:25:00 El aprendizaje profundo es una tecnología poderosa que se utiliza en múltiples áreas de aplicación. Es relativamente amigable para principiantes, y el área de procesamiento de lenguaje natural (NLP) es donde se encuentran las mayores oportunidades. Un posible uso de la PNL de aprendizaje profundo es crear prosa apropiada para el contexto de las redes sociales, lo que podría tener implicaciones en la forma en que las personas ven el mundo.

  • 01:30:00 En este video, John explica cómo las técnicas de PNL, como el aprendizaje automático, se pueden usar para generar texto sesgado a favor de un punto de vista particular. El video también analiza un problema con las predicciones generadas por las técnicas de NLP y cómo se puede resolver mediante el uso de una función sigmoidea.
 

Lección 5: Aprendizaje profundo práctico para codificadores 2022



Lección 5: Aprendizaje profundo práctico para codificadores 2022

Este video proporciona un tutorial sobre cómo construir y entrenar un modelo lineal usando aprendizaje profundo. El video comienza discutiendo las operaciones en el lugar, que cambian los valores de las variables dentro de una función dada. A continuación, el video muestra cómo calcular la pérdida para un modelo lineal utilizando un descenso de gradiente hacia atrás. Finalmente, el video proporciona una función que inicializa y actualiza los coeficientes dentro de un modelo lineal. El video concluye demostrando cómo ejecutar la función e imprimir la pérdida. Este video explica cómo calcular la mejor división binaria para una columna dada en un conjunto de datos. Esto es particularmente útil para las competencias de aprendizaje automático, ya que proporciona un modelo de referencia para la comparación.

  • 00:00:00 Esta lección cubre el modelo lineal y la red neuronal desde cero usando Jupyter Notebook. El objetivo es comprender la lógica detrás del código y obtener el resultado esperado.

  • 00:05:00 El video analiza el aprendizaje profundo práctico para los codificadores, cubriendo temas como cómo instalar Kaggle y usar su variable de entorno, cómo leer archivos CSV con pandas y cómo imputar valores faltantes. También cubre conceptos básicos en pandas como el modo y cómo usar métodos y reducciones para poblar marcos de datos.

  • 00:10:00 En esta lección, Jeremy explica cómo imputar valores faltantes en un conjunto de datos usando el método fillna() en pandas. Explica que, en la mayoría de los casos, esta forma "tonta" será lo suficientemente buena y que es importante conocer los conceptos básicos de nuestro conjunto de datos para que los métodos comunes no se expliquen varias veces. Javier pregunta sobre los pros y los contras de descartar campos que no se usan en el modelo.

  • 00:15:00 En esta lección, el instructor introduce el concepto de "variables ficticias" y cómo pueden usarse para representar datos categóricos de una manera más sensata. También muestra cómo describir todas las variables numéricas y no numéricas en los datos.

  • 00:20:00 En este video, el instructor muestra cómo convertir una columna en un marco de datos en un tensor y cómo usar estos tensores para entrenar un modelo lineal y una red neuronal. También muestra cómo usar Pytorch en lugar de Python simple al hacer la multiplicación matricial y por elementos.

  • 00:25:00 En este video, el instructor explica cómo realizar un producto matriz-vector en Python. Proporciona un ejemplo de cómo multiplicar una matriz por un vector y explica que el resultado es interesante porque los matemáticos pueden realizar la misma operación utilizando el álgebra matricial. También explica que comenzar una secuencia pseudoaleatoria es importante para producir resultados reproducibles.

  • 00:30:00 En este video, el autor explica cómo funciona la transmisión y por qué es útil. La transmisión es una técnica que permite multiplicar varios valores entre sí, teniendo en cuenta el tamaño de cada valor. Esto permite que el código sea más conciso y más rápido de ejecutar en la GPU.

  • 00:35:00 Este video explica cómo optimizar los modelos de aprendizaje profundo mediante el cálculo de la pérdida por descenso de gradiente. El autor demuestra cómo hacer esto creando una función para calcular la pérdida y luego importando la función a una sesión de Pytorch.

  • 00:40:00 Este video de YouTube proporciona un tutorial sobre cómo construir y entrenar un modelo lineal usando aprendizaje profundo. El video comienza discutiendo las operaciones en el lugar, que cambian los valores de las variables dentro de una función dada. A continuación, el video muestra cómo calcular la pérdida para un modelo lineal utilizando un descenso de gradiente hacia atrás. Finalmente, el video proporciona una función que inicializa y actualiza los coeficientes dentro de un modelo lineal. El video concluye demostrando cómo ejecutar la función e imprimir la pérdida.

  • 00:45:00 Este video de 1 minuto explica cómo crear una función de precisión para un modelo de aprendizaje profundo que predice quién sobrevivió al Titanic. La función se basa en la función sigmoidea, que es una función matemática que genera asíntotas a uno cuando los números son demasiado grandes o demasiado pequeños.

  • 00:50:00 En este video, John explica cómo optimizar una red neuronal usando una función sigmoidea. También explica cómo manejar las variables dependientes del bloque de categoría usando fast.ai.

  • 00:55:00 En este video, el autor explica cómo construir un modelo desde cero en Python usando Pytorch y cómo enviar el modelo a Kaggle. El autor menciona que el operador "matrix-multiply" significa matriz-multiplicación, pero que Python no viene con una implementación del operador.

  • 01:00:00 En este video, el presentador explica cómo crear una red neuronal usando Pytorch. El primer paso es crear una matriz con las sumas de los coeficientes de la primera columna. Esta matriz luego se multiplica por el vector de datos de entrenamiento. El segundo paso es crear una segunda matriz con las activaciones ocultas. Esta matriz se multiplica luego por los coeficientes de la primera columna. El paso final es centralizar los vectores y entrenar la red neuronal.

  • 01:05:00 En este video, Jeremy explica cómo entrenar una red neuronal usando aprendizaje profundo. Explica que, para entrenar la red, primero necesita calcular los gradientes e inicializar los coeficientes. A continuación, ejecuta update_coeffs(), que resta los coeficientes de los gradientes. Finalmente, entrena la red y compara los resultados con un modelo lineal.

  • 01:10:00 Este video explica cómo inicializar modelos de aprendizaje profundo, cómo actualizar los coeficientes y cómo recorrer todas las capas. También analiza por qué el aprendizaje profundo puede no ser tan efectivo en conjuntos de datos pequeños y cómo obtener buenos resultados con modelos de aprendizaje profundo.

  • 01:15:00 En esta lección, el autor enseña cómo usar un marco de aprendizaje profundo y muestra cómo es mucho más fácil que hacerlo desde cero. El autor también proporciona un tutorial sobre ingeniería de funciones con Pandas.

  • 01:20:00 En este video, el capacitador demuestra cómo usar la biblioteca fastai para recomendar una tasa de aprendizaje para un modelo de aprendizaje profundo. Muestra cómo ejecutar varias épocas y compara las predicciones del modelo con las predicciones de otros dos modelos. Finalmente, demuestra cómo usar la función de conjunto para crear un conjunto de cinco predicciones que se promedian sobre las filas.

  • 01:25:00 En este video, John explica cómo funcionan los bosques aleatorios y por qué son un algoritmo de aprendizaje automático popular. También muestra cómo utilizar un práctico atajo para importar todos los módulos necesarios.

  • 01:30:00 En este video, Pandas explica cómo funciona el aprendizaje profundo y cómo aplicarlo a problemas de codificación. Se introduce el algoritmo de bosque aleatorio y se muestra que esta técnica se puede utilizar para mejorar la precisión de las predicciones realizadas utilizando una variable categórica.

  • 01:35:00 Este resumen de 1 párrafo explica cómo calificar una división binaria utilizando un método simple para sumar puntajes de desviación estándar de los dos grupos de datos. El mejor punto de división se encuentra calculando el índice más pequeño en la lista de puntos de división con el puntaje más bajo.

  • 01:40:00 En esta lección, el instructor explica cómo calcular la mejor división binaria para una columna dada en un conjunto de datos. Esto es particularmente útil para las competencias de aprendizaje automático, ya que proporciona un modelo de referencia para la comparación.
 

Lección 6: Aprendizaje profundo práctico para codificadores 2022



Lección 6: Aprendizaje profundo práctico para codificadores 2022

Este video de YouTube proporciona una guía sobre cómo comenzar con el aprendizaje profundo para programadores. El enfoque principal está en el aprendizaje profundo práctico para codificadores, con consejos sobre cómo configurar una competencia, obtener un conjunto de validación e iterar rápidamente. El video también analiza la importancia de la importancia de las características y los gráficos de dependencia parcial, y cómo crearlos utilizando un modelo de aprendizaje automático.

Este video proporciona una descripción general de cómo usar el aprendizaje profundo para mejorar la precisión de los proyectos de codificación. Explica que los conjuntos de datos a menudo pueden tener una amplia variedad de tamaños de entrada y relaciones de aspecto, lo que dificulta la creación de representaciones precisas con rectángulos. Sugiere usar representaciones cuadradas en su lugar, que se ha encontrado que funcionan bien en la mayoría de los casos.

  • 00:00:00 En esta lección, los autores muestran cómo crear un árbol de decisiones para predecir qué machos sobrevivirán al Titanic.

  • 00:05:00 El video explica cómo crear un clasificador de árboles de decisión con un máximo de cuatro nodos de hoja. El árbol se puede generar automáticamente y se proporciona el código para calcular el coeficiente de Gini. El error absoluto medio del árbol de decisión se calcula en 0,407.

  • 00:10:00 Este video explica cómo crear un árbol de decisión para predecir las clasificaciones de tarifas de pasajeros utilizando datos de una competencia de Kaggle. Los árboles de decisión son eficientes y no requieren preprocesamiento, lo que los convierte en una buena opción para datos tabulares.

  • 00:15:00 La técnica de "embolsado" de Leo Breiman se usa para crear una gran cantidad de modelos imparciales que son mejores que cualquier modelo individual. Esto se hace seleccionando aleatoriamente un subconjunto de datos cada vez que se construye un árbol de decisión y usando esos datos para entrenar el modelo.

  • 00:20:00 En esta lección, aprendimos a crear un Random Forest, un algoritmo de aprendizaje automático que es simple de implementar y que funciona bien en pequeños conjuntos de datos. También mostramos cómo usar gráficas de importancia de características para ayudarnos a determinar qué características son las más importantes en los datos de entrenamiento.

  • 00:25:00 En este video, John cubre los conceptos básicos del aprendizaje profundo, incluido cómo funcionan los bosques aleatorios y por qué aumentar la cantidad de árboles siempre conduce a una mejor tasa de error. Jeremy continúa explicando cómo se pueden usar los bosques aleatorios para predecir los resultados de grandes conjuntos de datos sin necesidad de un conjunto de validación.

  • 00:30:00 El video explica cómo calcular el error Out-of-Bag o OOB, que es una medida de la precisión de las predicciones realizadas sobre datos no utilizados en el entrenamiento de un modelo de aprendizaje automático. Señala que si el error OOB es alto, esto sugiere que el modelo no está prediciendo correctamente los datos.

  • 00:35:00 El video analiza la importancia de la importancia de las características y los gráficos de dependencia parcial, y cómo crearlos usando un modelo de aprendizaje automático.

  • 00:40:00 En este video, Jeremy explica cómo funcionan los modelos Random Forest y cómo interpretar sus gráficas de importancia de características. También menciona que los modelos Random Forest son más confiables que otras técnicas de explicabilidad.

  • 00:45:00 Random Forests es un algoritmo de aprendizaje automático que es particularmente bueno para hacer predicciones. Sin embargo, agregar más árboles hará que el modelo sea más preciso y el sobreajuste no es un problema. Gradient Boosting es un algoritmo de aprendizaje automático que es similar a Random Forests, pero en lugar de ajustar un árbol una y otra vez, ajusta árboles muy pequeños que dan como resultado una pequeña división de datos.

  • 00:50:00 El video explica cómo una máquina de aumento de gradiente (GBM) es más precisa que un bosque aleatorio, pero que puede sobreajustarse con un GBM. El tutorial demuestra cómo elegir una competencia de Kaggle y lograr el primer puesto.

  • 00:55:00 Este video de YouTube brinda una guía sobre cómo comenzar con el aprendizaje profundo para programadores. El enfoque principal está en el aprendizaje profundo práctico para codificadores, con consejos sobre cómo configurar una competencia, obtener un conjunto de validación e iterar rápidamente.

  • 01:00:00 Este video explica cómo usar FastKaggle para entrenar modelos de aprendizaje profundo. Explica que debe tener cuidado al trabajar con imágenes, ya que el tamaño puede cambiar según la relación de aspecto. El video también muestra cómo cambiar el tamaño de las imágenes usando una función llamada "squish".

  • 01:05:00 En este video, el instructor explica cómo usar la biblioteca de IA rápida show_batch() para ver rápidamente cómo se ven los datos para los modelos de aprendizaje automático. Recomienda usar resnet26d para un entrenamiento rápido y preciso.

  • 01:10:00 El video muestra cómo enviar un modelo de aprendizaje profundo a Kaggle en menos de un minuto usando un cargador de datos y un archivo CSV que incluye las predicciones y etiquetas del modelo.

  • 01:15:00 El presentador comparte su estrategia para crear cuadernos públicos en Kaggle, que consiste en duplicar y cambiar el nombre de los cuadernos según sea necesario para mantenerlos organizados. Señala que este enfoque de baja tecnología funciona bien para él y que, por lo general, solo envía un cuaderno a la vez.

  • 01:20:00 El presentador brinda una breve descripción general de los diferentes métodos para el aprendizaje profundo, incluidos los marcos de AutoML y los bosques aleatorios. Recomienda usar un buscador de tasa de aprendizaje para evitar el sobreentrenamiento de los modelos y recomienda usar GPU para el aprendizaje profundo si es posible.

  • 01:25:00 En esta lección, el autor explica cómo acelerar una iteración en una competencia de Kaggle utilizando una arquitectura de red neuronal convolucional (CNN) diferente. También muestra cómo usar una regla general para elegir el tamaño correcto de CNN.

  • 01:30:00 En este video, el presentador analiza cómo mejorar el rendimiento de un modelo de aprendizaje profundo mediante el uso de diferentes técnicas de preprocesamiento, incluido el recorte y el relleno. También señala que Test Time Augmentation (TTA) puede mejorar el rendimiento de un modelo promediando múltiples versiones de una imagen.

  • 01:35:00 En este video, Jeremy analiza cómo mejorar la precisión de un modelo de visión artificial mediante el aprendizaje profundo. Señala que la precisión del modelo se puede mejorar variando las imágenes en las que se entrena y proporciona un ejemplo de cómo hacer esto usando pandas. También explica qué tan rápido funcionan los algoritmos de aprendizaje profundo y cómo usar TTA, o aumento del tiempo de prueba, para acelerar el proceso de capacitación. Finalmente, proporciona un resumen de las preguntas que formularon Víctor y Juan.

  • 01:40:00 En este video, Jeremy explica cómo se puede usar el aprendizaje profundo para mejorar la precisión de los proyectos de codificación. Señala que los conjuntos de datos a menudo pueden tener una amplia variedad de tamaños de entrada y relaciones de aspecto, lo que dificulta la creación de representaciones precisas con rectángulos. Sugiere usar representaciones cuadradas en su lugar, que se ha encontrado que funcionan bien en la mayoría de los casos.
 

Lección 7: Aprendizaje profundo práctico para codificadores 2022



Lección 7: Aprendizaje profundo práctico para codificadores 2022

En la Lección 7 de Aprendizaje profundo práctico para codificadores 2022, Jeremy explica cómo escalar modelos de aprendizaje profundo al reducir la memoria necesaria para modelos más grandes. Demuestra un truco llamado acumulación de gradiente, que consiste en no actualizar los pesos en cada ciclo de cada mini lote, sino hacerlo cada pocas veces, lo que permite usar tamaños de lote más grandes sin necesidad de GPU más grandes. Además, Jeremy analiza la validación cruzada de k-fold y la creación de un modelo de aprendizaje profundo que predice tanto el tipo de arroz como la enfermedad presente en la imagen utilizando una función de pérdida diferente llamada pérdida de entropía cruzada. En general, el video proporciona consejos y trucos prácticos para construir modelos de aprendizaje profundo más complejos.

En este video, el orador explora la creación de sistemas de recomendación utilizando filtrado colaborativo y producto punto en PyTorch. Describe la predicción de multiplicación de matrices de clasificaciones de películas y calcula la función de pérdida, una medida de qué tan bien coinciden las clasificaciones predichas con las clasificaciones reales. Introduce el concepto de incrustaciones, que permite acelerar los multiplicadores de matrices con variables ficticias. Luego, el orador explica cómo agregar sesgo y regularización a la matriz para diferenciar las calificaciones de los usuarios y evitar el sobreajuste. Finalmente, se discute el tema de la búsqueda de hiperparámetros, enfatizando la necesidad de datos granulares para recomendaciones precisas. En general, el video desglosa conceptos complejos de aprendizaje profundo para crear una comprensión práctica para los espectadores.

  • 00:00:00 En esta sección, el instructor presenta un truco simple para ampliar aún más los modelos, que implica reducir la memoria necesaria para modelos más grandes. Cuando se usan modelos más grandes, más parámetros significan que pueden encontrar características más complejas, lo que los hace más precisos. Sin embargo, los modelos más grandes tienen un inconveniente porque sus activaciones o gradientes que deben calcularse consumen mucha memoria de la GPU y, si la memoria disponible es insuficiente, se genera un mensaje de error. El instructor explica cómo sortear este problema y usar un modelo extragrande incluso en la GPU de 16 Gigas de Kaggle.

  • 00:05:00 En esta sección del video, Jeremy analiza los aspectos prácticos de ejecutar modelos de aprendizaje profundo en Kaggle y cómo usar métodos rápidos de hacking para determinar el uso de memoria de los modelos. Demuestra un truco llamado acumulación de gradiente que se puede usar si el modelo falla con un "error de falta de memoria cuda" para evitar la necesidad de comprar una GPU más grande. Al ajustar el tamaño del lote y la cantidad de imágenes, se puede garantizar que el modelo use la cantidad mínima de memoria posible sin afectar las tasas de aprendizaje.

  • 00:10:00 En esta sección, el orador analiza el concepto de acumulación de gradiente, que es la idea de no actualizar los pesos en cada bucle para cada mini-lote, sino hacerlo cada pocas veces. Esto permite utilizar tamaños de lote más grandes sin necesidad de GPU más grandes, ya que el gradiente se puede acumular en varios lotes más pequeños. Los resultados son numéricamente idénticos para las arquitecturas que no usan la normalización por lotes, pero pueden introducir más volatilidad para aquellas que sí lo hacen. En general, la acumulación de gradientes es una idea simple con implicaciones significativas para entrenar modelos más grandes.

  • 00:15:00 En esta sección, Jeremy analiza las preguntas del foro relacionadas con lr_find() y la acumulación de gradientes. Explica que lr_find() utiliza el tamaño de lote de los cargadores de datos y que la acumulación de gradiente permite experimentar con diferentes lotes para encontrar el tamaño óptimo para diferentes arquitecturas. Jeremy recomienda elegir el tamaño de lote más grande que pueda caber en su GPU, pero menciona que no siempre es necesario usar el tamaño de lote más grande. La regla general es dividir el tamaño del lote por dos y dividir la tasa de aprendizaje por dos. Finalmente, Jeremy demuestra cómo usar la acumulación de gradientes en fastai dividiendo el tamaño del lote por el valor de acumulación deseado y pasando la devolución de llamada GradientAccumulation al crear el alumno, lo que le permite entrenar varios modelos en una tarjeta de 16 GB.

  • 00:20:00 En esta sección, el presentador analiza el uso de modelos de transformadores previamente entrenados vit, swinv2 y swin, que tienen tamaños fijos. Para evitar esto, el tamaño final debe ser cuadrado y del tamaño requerido. El presentador utiliza un diccionario de arquitecturas y detalles de preprocesamiento, cambiando la ruta de entrenamiento de nuevo al uso de todas las imágenes y recorriendo cada arquitectura y transformando el tamaño para entrenar cada modelo. La secuencia de comandos de entrenamiento devuelve predicciones de tta, que se agregan a una lista que luego se promedia mediante embolsado para crear una lista de índices para cada enfermedad. Al enviar entradas regularmente, el presentador mejoró sus resultados y pudo asegurar una posición superior en la clasificación.

  • 00:25:00 En esta sección, Jeremy analiza el concepto de validación cruzada de k-fold y cómo es similar a lo que ha hecho con modelos de ensamblaje. Explica que la validación cruzada k-fold es donde los datos se dividen en cinco subconjuntos, y los modelos se entrenan en cada subconjunto con conjuntos de validación que no se superponen, que luego se ensamblan. Si bien podría ser potencialmente mejor que su método, Jeremy prefiere el ensamblaje porque permite agregar y quitar modelos fácilmente. Jeremy también analiza la acumulación de gradientes y cómo no hay inconvenientes reales ni trampas potenciales, y recomienda comprar tarjetas gráficas más baratas con menos memoria en lugar de costosas. Por último, menciona que Nvidia es el único juego en la ciudad para GPU, y las tarjetas RTX de consumo son tan buenas como las costosas tarjetas empresariales.

  • 00:30:00 En esta sección, Jeremy analiza los beneficios de invertir en una GPU para el aprendizaje profundo y reconoce que pueden ser costosos debido a su uso en la computación en la nube. También aborda cómo entrenar un modelo más pequeño para producir las mismas activaciones que uno más grande, que se tratará en la Parte 2. El resto del video se enfoca en construir un modelo que predice tanto la enfermedad como el tipo de arroz de una imagen. , que requiere un cargador de datos con dos variables dependientes. Jeremy explica cómo usar DataBlock para crear un cargador con múltiples variables dependientes y demuestra cómo diferenciar entre categorías de entrada y salida.

  • 00:35:00 En esta sección, el instructor explica cómo crear un modelo de aprendizaje profundo que predice tanto el tipo de arroz como la enfermedad presente en la imagen. Para lograr esto, la función get_y debe tomar una matriz con dos etiquetas diferentes. Uno es el nombre del directorio padre, ya que indica la enfermedad, y el segundo es la variedad. El profesor crea una función que toma la ubicación en el marco de datos del nombre del archivo y devuelve la columna de variedad. Finalmente, crean un modelo que predice 20 cosas: la probabilidad de cada una de las 10 enfermedades y cada una de las 10 variedades. La métrica de tasa de error debe modificarse para manejar tres cosas en lugar de dos para trabajar con el nuevo conjunto de datos.

  • 00:40:00 En esta sección, el orador explica la necesidad de una función de pérdida diferente llamada pérdida de entropía cruzada cuando la variable dependiente es una categoría. Mientras que vision_learner de fastai adivinó y usó la pérdida de entropía cruzada anteriormente, el orador ahora explica cómo funciona en detalle con la ayuda de una hoja de cálculo. Comenzando con el resultado de un modelo con cinco categorías, el orador demuestra cómo convertir los resultados del modelo en probabilidades utilizando la función softmax. Una vez que los resultados son probabilidades, la función de pérdida de entropía cruzada se usa para medir la diferencia entre las probabilidades previstas y las probabilidades reales, y determinar qué tan bien se está desempeñando el modelo.

  • 00:45:00 En esta sección, aprendemos sobre softmax y cómo se usa para predecir una cosa específica de las categorías que se eligen con anticipación. La fórmula utilizada para calcular la pérdida de entropía cruzada implica la multiplicación de las probabilidades y los valores objetivo reales, y luego tomar la suma. El registro de softmax se utiliza para acelerar los cálculos. El resultado es un único valor de probabilidad que luego se suma para cada fila para calcular la pérdida de entropía cruzada.

  • 00:50:00 En esta sección, el instructor explica la función de pérdida de entropía cruzada binaria y cómo usarla con objetivos múltiples. Señala que pytorch tiene dos versiones de funciones de pérdida, una clase y una función, y muestra cómo usarlas. Al crear un modelo de objetivos múltiples, el aprendiz visual requiere veinte resultados, diez prediciendo la enfermedad y diez prediciendo la variedad. El instructor demuestra cómo crear este modelo y luego lo entrena. En general, este modelo es idéntico al modelo anterior excepto por la adición del segundo conjunto de objetivos.

  • 00:55:00 En esta sección, aprendemos cómo un modelo sabe lo que está prediciendo a través de su función de pérdida. Las primeras diez columnas de valores de entrada predicen la probabilidad de enfermedad y las segundas diez representan la probabilidad de variedad. Usando la entropía cruzada, tomamos en cuenta los valores objetivo de la enfermedad y la variedad para crear una función de pérdida basada en la predicción de estos dos valores. La función de pérdida se reduce cuando las primeras diez columnas hacen buenas predicciones de enfermedades y las segundas diez para la variedad, lo que hace que los coeficientes sean mejores para usar cada columna de manera efectiva. Calculamos y rastreamos las tasas de error para las predicciones de enfermedades y variedades a lo largo de la época de entrenamiento. El entrenamiento durante más tiempo con un modelo de múltiples objetivos a veces puede dar como resultado una mejor predicción de la enfermedad que un modelo de un solo objetivo debido a ciertas características que ayudan a reconocer diferentes objetivos.
  • 01:00:00 En esta sección del video, el orador analiza los beneficios de construir modelos que predicen múltiples cosas y alienta a los espectadores a experimentar con modelos en pequeños conjuntos de datos. También presenta el cuaderno Collaborative Filtering Deep Dive, que utiliza un conjunto de datos de clasificaciones de películas para enseñar el concepto de sistemas de recomendación. Explica que este tipo de datos es común en industrias como los sistemas de recomendación y proporciona un ejemplo de tabulación cruzada para comprender mejor el conjunto de datos. Luego, el orador toma un descanso antes de sumergirse en el siguiente cuaderno.

  • 01:05:00 En esta sección, el orador explica cómo llenar los vacíos en un conjunto de datos de filtrado colaborativo. El filtrado colaborativo ayuda a recomendar un producto a un usuario mediante el uso de datos recopilados de muchos usuarios. Para averiguar si a un usuario le puede gustar una película en particular, el orador propone un método para multiplicar los valores correspondientes de las preferencias del usuario y el tipo de película a través del análisis vectorial. Sin embargo, dado que no se nos proporciona ninguna información sobre usuarios o películas, el orador sugiere crear factores latentes para completar los puntos de datos que faltan. Utilizando supuestos factores latentes, el ponente propone utilizar SGD para encontrar la correlación y generar hipótesis.

  • 01:10:00 En esta sección, el video describe cómo usar la multiplicación de matrices para predecir las calificaciones de películas para los usuarios en función de sus calificaciones históricas. El tutorial asigna valores aleatorios para factores latentes para películas y usuarios y realiza el producto escalar para predecir las calificaciones. Luego se calcula una función de pérdida y se realiza la optimización utilizando la herramienta Solucionador de datos. El video demuestra que las calificaciones previstas mejoraron al compararlas con las calificaciones reales después de la optimización. También se introduce la técnica de finalización de matriz y el filtrado colaborativo, donde a los usuarios con gustos similares se les recomiendan películas similares.

  • 01:15:00 En esta sección, el video analiza el uso de filtrado colaborativo y productos punto en PyTorch. El coseno del ángulo entre dos vectores puede aproximarse a la correlación, y son iguales una vez normalizados. Excel se utiliza para explicar los cálculos necesarios en PyTorch. El video también señala que las incrustaciones, a menudo consideradas como una herramienta matemática compleja, en realidad son matrices que se usan para buscar cosas. El video trata de desglosar la jerga confusa para que el aprendizaje profundo sea más fácil de entender para todos.

  • 01:20:00 En esta sección, Jeremy explica cómo usar cargadores de datos de filtrado colaborativo en PyTorch para trabajar con datos de clasificación de películas. Fusiona la tabla de películas con la tabla de calificaciones para obtener la identificación de usuario y el nombre de la película. La función CollabDataLoaders se utiliza para cargar datos desde el marco de datos con columnas de calificación, ID de usuario y título del elemento. Luego, crea factores de usuario y de película utilizando una matriz de números aleatorios, donde su número de columnas es igual al número de factores que desea crear. También menciona que usa una fórmula predeterminada para determinar el número de factores, que se deriva de su intuición y se prueba ajustando una función.

  • 01:25:00 En esta sección, el orador explica que un vector codificado en caliente se puede usar para buscar un número de índice en el vector, que es lo mismo que tomar el producto escalar de un vector codificado en caliente con algo. Luego, las incrustaciones se introducen como un atajo computacional para multiplicar algo por un vector codificado en caliente, lo que permite una aceleración al hacer multiplicadores de matriz con variables ficticias. El orador también presenta la creación de un modelo Pytorch, que es una clase que incluye una superclase llamada Módulo que brinda alguna funcionalidad adicional. El objeto de producto punto se utiliza como ejemplo de cómo crear un modelo, que llama al método dunder init y crea incrustaciones de usuarios por factores y películas por vectores.

  • 01:30:00 En esta sección, el instructor explica cómo usar PyTorch para llamar a un método llamado "forward" para calcular el modelo. El objeto en sí y los datos sobre los que se calcula se pasan a "hacia adelante". Usar el producto escalar y pasar los datos a través de PyTorch es mucho más rápido que usar Excel. Sin embargo, el modelo no funciona bien ya que, por ejemplo, predice valores mayores que el valor más alto posible mientras nadie califica una película por debajo de uno. El instructor soluciona esto mediante el uso de la función sigmoidea para aplastar la predicción en un rango entre cero y 5,5. A pesar de este cambio, la pérdida no mejora considerablemente, pero el instructor introduce una nueva observación de algunos usuarios que tienen calificaciones altas, lo que sugiere que involucrar el sesgo del usuario podría mejorar el modelo.

  • 01:35:00 En esta sección, el orador demuestra cómo agregar sesgo a la matriz utilizada en el modelo de recomendación de películas. Al agregar estos sesgos, es posible diferenciar a los usuarios que tienden a dar calificaciones más bajas o más altas. El orador también analiza cómo evitar el sobreajuste mediante el uso de la disminución del peso o la regularización L2. El orador explica que esto se puede lograr sumando la suma de los pesos al cuadrado a la función de pérdida. En general, la sección proporciona una introducción útil al tema de los sesgos y la regularización en los modelos de aprendizaje profundo.

  • 01:40:00 En esta sección, el video analiza el uso de la disminución del peso como una forma de regularización para evitar el sobreajuste en los modelos de aprendizaje profundo. Al encontrar la combinación correcta de ponderaciones que no sean demasiado altas, pero lo suficientemente altas como para ser útiles en la predicción, el modelo puede obtener el valor más bajo posible de la función de pérdida. El coeficiente de disminución de peso se puede pasar al método de ajuste y los valores predeterminados normalmente están bien para las aplicaciones de visión, pero para el filtrado tabular y colaborativo, los usuarios deben probar algunos múltiplos de 10 para ver qué da el mejor resultado. La regularización se trata de hacer que el modelo no sea más complejo de lo que tiene que ser, con los valores más altos de caída de peso reduciendo el sobreajuste pero también reduciendo la capacidad del modelo para hacer buenas predicciones.

  • 01:45:00 En esta sección, Jeremy y John discuten el tema de la búsqueda de hiperparámetros y cómo se usa a menudo en la construcción de modelos individuales. Sin embargo, no hay más reglas que la regla general de Jeremy cuando se trata de realizar una exploración de hiperparámetros. Ante una pregunta sobre si se pueden construir sistemas de recomendación basados en las calificaciones promedio de la experiencia de los usuarios en lugar del filtrado colaborativo, Jeremy explica que no sería ideal si solo se tiene un historial de compras. En cambio, se necesitan datos granulares, como información demográfica sobre usuarios y metadatos sobre productos, para hacer recomendaciones precisas.
 

Lección 8 - Aprendizaje profundo práctico para codificadores 2022



Lección 8 - Aprendizaje profundo práctico para codificadores 2022

Este video cubre los conceptos básicos del aprendizaje profundo para programadores. Explica cómo crear parámetros para modelos de aprendizaje profundo usando la biblioteca Pytorch, cómo usar PCA para reducir la cantidad de factores en un conjunto de datos y cómo usar una red neuronal para predecir el precio de venta de subasta de equipos industriales pesados.

Este video de YouTube proporciona una descripción general del aprendizaje profundo para programadores. El ponente explica que la tenacidad es importante en este campo, y aconseja que si quieres tener éxito, debes seguir adelante hasta que algo esté terminado. También recomienda ayudar a otros principiantes en forums.fast.ai.

  • 00:00:00 En esta lección, Pytorch se encarga de crear y administrar parámetros para una red neuronal, asegurándose automáticamente de que los coeficientes y pesos se inicialicen de la manera correcta. Esto evita que el usuario tenga que recordar esta información o escribir código para hacerlo.

  • 00:05:00 Este video explica cómo crear parámetros para modelos de aprendizaje profundo utilizando la biblioteca Pytorch. Pytorch inicializará automáticamente estos parámetros en función de una distribución generada aleatoriamente.

  • 00:10:00 Este video muestra cómo construir una capa de incrustación de Pytorch desde cero, usando el mismo código y conceptos que el original. Luego, el video demuestra cómo la capa predice las preferencias de películas al observar las preferencias de películas anteriores.

  • 00:15:00 El video demuestra cómo usar la aplicación de aprendizaje colaborativo fast.ai para predecir qué película le puede gustar a un usuario. La aplicación utiliza factores latentes (películas y factores) para calcular el sesgo de un usuario, que luego se utiliza para predecir qué película le puede gustar al usuario.

  • 00:20:00 Este video explica cómo usar PCA para reducir la cantidad de factores en un conjunto de datos. También cubre el problema de Bootstrapping, que es la cuestión de cómo recomendar nuevos productos a los clientes cuando no tiene un historial previo con ellos.

  • 00:25:00 Este video cubre los conceptos básicos del aprendizaje profundo para codificadores, incluido un modelo secuencial, cómo usar la funcionalidad de Pytorch para crear un modelo fácilmente y cómo adaptar el modelo a un alumno colaborativo. Jona le hace una pregunta al presentador sobre el tema del sesgo en los sistemas de filtrado colaborativo y el presentador brinda una respuesta general sobre el problema.

  • 00:30:00 En este video, Jeremy explica cómo funcionan las incrustaciones en Filtrado colaborativo y NLP, y cómo se pueden usar para interpretar redes neuronales.

  • 00:35:00 En este video, el autor demuestra cómo usar una red neuronal para predecir el precio de venta en subasta de equipos industriales pesados, usando un bosque aleatorio y un aprendizaje tabular. El autor señala que la red neuronal creada con Tabular Learner es casi idéntica a la red neuronal creada manualmente.

  • 00:40:00 Las redes neuronales se pueden considerar como un tipo de algoritmo de aprendizaje automático que toma datos como entrada y los usa para crear predicciones o resultados. Las redes neuronales están compuestas por capas de nodos (llamados neuronas), que están interconectados para crear un gráfico. Las entradas a una red neuronal pueden ser categóricas (por ejemplo, una categoría como automóviles o flores) o continuas (es decir, un número). Las redes neuronales se pueden utilizar para predecir los resultados de diferentes resultados (p. ej., ventas en diferentes tiendas) o para adivinar el contenido de una nueva entrada (p. ej., la ubicación geográfica de un conjunto determinado de puntos de datos).

  • 00:45:00 En este video, aprendemos sobre las convoluciones, que son un tipo de multiplicación de matrices que se usa en las redes neuronales convolucionales. Vemos un ejemplo de esto en acción y luego discutimos cómo crear un detector de borde superior usando redes neuronales convolucionales.

  • 00:50:00 El video explica cómo realizar una convolución, una operación matemática que toma dos matrices de datos y combina sus elementos, produciendo un resultado que suele ser más alto en el lado izquierdo de la matriz que en el lado derecho. Se realiza una convolución en un kernel de 3 por 3, que se repite varias veces para producir una capa de aprendizaje profundo.

  • 00:55:00 El video explica cómo funciona el aprendizaje profundo al mostrar cómo dos filtros, uno para bordes horizontales y otro para bordes verticales, se combinan para crear una única activación para reconocer números. La forma más antigua de hacer esto, que usaba la agrupación máxima, resultó en menos activaciones y, finalmente, quedó una. La forma más nueva, que usa una técnica llamada "Max Pooling con ventanas deslizantes", continúa hasta que se usan todas las activaciones y produce un resultado más preciso.

  • 01:00:00 En este video, el presentador explica cómo se hace el aprendizaje profundo en el siglo XXI. Hoy, el aprendizaje profundo se realiza de manera diferente a como se hacía hace 10 años, y el presentador brinda un ejemplo de cómo funciona este cambio. En lugar de Max Pooling, los algoritmos de aprendizaje profundo ahora usan Stride 2 Convolution. Además, los modelos de aprendizaje profundo ahora usan una única capa densa al final en lugar de una capa Max Pool. Finalmente, el presentador brinda una breve descripción general de cómo fast.ai maneja el entrenamiento y la predicción de aprendizaje profundo.

  • 01:05:00 En este video de YouTube, el autor muestra cómo la convolución es lo mismo que la multiplicación de matrices y cómo calcular una convolución usando los dos métodos. También analiza Dropout, una técnica para reducir el impacto del ruido aleatorio en las redes neuronales.

  • 01:10:00 En esta lección, el autor describe cómo las capas de abandono ayudan a evitar el sobreajuste en las redes neuronales. Cuanto más deserción use, menos bueno será en los datos de entrenamiento, pero mejor debería generalizarse. Esto proviene de un artículo del grupo de Geoffrey Hinton, que fue rechazado de la principal conferencia de redes neuronales, entonces llamada NIPS, ahora llamada NeurIPS.

  • 01:15:00 Este video cubre los conceptos básicos del aprendizaje profundo, incluidos los tipos de redes neuronales y cómo implementarlas. También cubre cómo usar varios métodos de entrenamiento y cómo evaluar el rendimiento de una red neuronal. Finalmente, el video brinda consejos sobre cómo continuar aprendiendo deep learning.

  • 01:20:00 Lucas pregunta cómo mantenerse motivado en el aprendizaje profundo y señala que el campo se está inclinando rápidamente hacia modelos más caros y de gran escala. Se pregunta si aún podría entrenar modelos razonables con una sola GPU en el futuro. En general, este video proporciona una descripción general de cómo mantenerse motivado en el aprendizaje profundo y cómo mantenerse actualizado con las últimas investigaciones.

  • 01:25:00 Este video de YouTube brinda una breve descripción general del aprendizaje profundo y su aplicación práctica a la codificación. El video analiza cómo el éxito del aprendizaje profundo de DawnBench se debió al uso del sentido común y la inteligencia por parte del equipo, y cómo cualquiera puede aplicar el aprendizaje profundo a sus propios dominios de problemas. El video también aborda la importancia de la educación formal en el campo del aprendizaje automático y cómo las sesiones de codificación en vivo ayudan a reforzar el aprendizaje.

  • 01:30:00 Jeremy compartió algunos trucos de productividad, como pasar tiempo aprendiendo algo nuevo todos los días y no esforzarse demasiado.

  • 01:35:00 Este video de YouTube es una lección sobre aprendizaje profundo para programadores, y el orador explica que la tenacidad es importante en este campo. Él aconseja que si quieres tener éxito, debes seguir adelante hasta que algo esté terminado, incluso si no es de la mejor calidad. También recomienda ayudar a otros principiantes en forums.fast.ai.
 

Lección 9: Fundamentos de aprendizaje profundo para difusión estable, 2022



Lección 9: Fundamentos de aprendizaje profundo para difusión estable, 2022

Este video proporciona una introducción al aprendizaje profundo y analiza cómo funcionan los modelos de difusión estables y cómo se pueden aplicar para generar nuevas imágenes. El video incluye una demostración de cómo usar la biblioteca Difusores para crear imágenes que parecen dígitos escritos a mano. También introduce el concepto de difusión estable, que es un método para entrenar Redes Neuronales. La idea básica es modificar las entradas a una red neuronal para cambiar la salida. En este video, el instructor explica cómo crear una red neuronal que podrá identificar correctamente los dígitos escritos a mano a partir de entradas ruidosas. Este video analiza cómo entrenar un modelo de aprendizaje automático mediante un algoritmo de aprendizaje profundo. El modelo se inicializa con un conjunto de variables latentes (que representan los datos) y utiliza un decodificador para comprender los datos sin procesar. A continuación, se utiliza un codificador de texto para crear subtítulos legibles por máquina para los datos. Finalmente, se entrena una U-Net usando los subtítulos como entrada, y los gradientes (la "función de puntaje") se usan para ajustar los niveles de ruido en los datos de entrenamiento.

  • 00:00:00 En esta lección se explica cómo funciona el aprendizaje profundo y cómo aplicarlo a problemas del mundo real. Sin embargo, debido a que es probable que los conceptos y técnicas descritos en esta lección queden obsoletos en un futuro cercano, la mayor parte del video se dedica a enseñar cómo usar la difusión estable, un algoritmo de aprendizaje profundo que seguirá siendo aplicable en 2022.

  • 00:05:00 El curso se está moviendo rápidamente y nuevos documentos han demostrado que el número de pasos necesarios para generar un modelo de difusión estable se ha reducido de mil a cuatro o cincuenta y seis. El curso se centrará en los fundamentos del modelo y su funcionamiento.

  • 00:10:00 El curso proporciona fundamentos de aprendizaje profundo, analiza cómo funcionan los modelos de difusión estable y proporciona recursos para un aprendizaje más profundo. En 2022, las GPU para aprendizaje profundo serán más caras, por lo que es importante tomar nota de las recomendaciones actuales.

  • 00:15:00 Este video de YouTube brinda una breve introducción al aprendizaje profundo y describe los fundamentos de la difusión estable. El autor proporciona un conjunto de cuadernos de Colab, "diffusion-nbs", que se pueden usar para explorar los conceptos básicos del aprendizaje profundo. El video concluye con una recomendación para jugar con el material proporcionado y explorar otros recursos.

  • 00:20:00 En esta lección, se cubren los conceptos básicos del aprendizaje profundo, incluido cómo crear un algoritmo de difusión estable. Luego, se presenta la biblioteca Difusores y cómo guardar una canalización para que otros la usen.

  • 00:25:00 Esta lección analiza los fundamentos del aprendizaje profundo y cómo usar Colab para crear imágenes de alta calidad. Los 51 pasos necesarios para crear una imagen se comparan con los tres o cuatro pasos disponibles a partir de octubre de 2022.

  • 00:30:00 En esta lección, el instructor demuestra cómo crear imágenes utilizando el aprendizaje profundo. Demuestra cómo usar la "escala de guía" para controlar qué tan abstractas son las imágenes.

  • 00:35:00 Este video explica cómo usar un modelo de aprendizaje profundo para generar imágenes que se parecen al dibujo original, usando una técnica llamada difusión estable.

  • 00:40:00 En esta lección, el instructor explica cómo entrenar modelos de aprendizaje automático con el algoritmo de difusión estable. Explican que el algoritmo es útil para generar imágenes similares a los ejemplos que se han proporcionado. El instructor también comparte un ejemplo de cómo se utilizó el algoritmo de difusión estable para generar una imagen de un peluche que es similar al peluche original.

  • 00:45:00 En este video, el instructor presenta el concepto de difusión estable, que es un enfoque matemático equivalente al enfoque tradicional pero conceptualmente más simple. Explica que mediante el uso de una función que puede determinar la probabilidad de que una imagen sea un dígito escrito a mano, puede generar nuevas imágenes que parezcan dígitos escritos a mano.

  • 00:50:00 En este video, un instructor explica cómo calcular el gradiente de probabilidad de que una imagen ingresada sea un dígito escrito a mano, usando aprendizaje profundo.

  • 01:05:00 Este video presenta la idea de difusión estable, que es un método para entrenar redes neuronales. La idea básica es modificar las entradas a una red neuronal para cambiar la salida.

  • 01:10:00 En este video, el instructor explica cómo crear una red neuronal que podrá identificar correctamente los dígitos escritos a mano a partir de entradas ruidosas. Primero discuten cómo crear un conjunto de datos de entrenamiento y luego explican cómo entrenar la red neuronal.

  • 01:15:00 Este video presenta el concepto de aprendizaje profundo y difusión estable, que es una forma de predecir el ruido en una imagen digital. La red neuronal predice el ruido y la función de pérdida es simple: toma la entrada y predice el ruido.

  • 01:20:00 La red neuronal de este video intenta predecir el ruido que se agregó a las entradas. Lo hace restando los bits que cree que son ruido de la entrada. Después de hacer esto varias veces, finalmente obtiene algo que se parece más a un dígito.

  • 01:25:00 En este video, el instructor muestra cómo se puede usar una red neuronal, llamada U-Net, para aproximar una imagen. El problema es que U-Net requiere mucho almacenamiento, lo que puede ser un problema para Google con su gran nube de TPU.

  • 01:30:00 El video explica cómo comprimir una imagen usando aprendizaje profundo. Primero, una imagen se comprime al pasarla por una capa de dos capas convolucionales. Este proceso se repite hasta que la imagen se reduce a una versión de 64x64x4. A continuación, la imagen se guarda como una capa de red neuronal. Finalmente, la Red Neuronal se utiliza para comprimir imágenes de diferentes tamaños.

  • 01:35:00 El video explica cómo se puede usar una función de pérdida para enseñarle a una red neuronal cómo comprimir una imagen, lo que da como resultado un archivo más pequeño. El algoritmo de compresión funciona bien y se puede utilizar para compartir imágenes entre dos personas.

  • 01:40:00 Este video proporciona un tutorial sobre cómo entrenar un modelo de aprendizaje profundo utilizando datos latentes. Las latentes son un tipo especial de datos que no se observan directamente y se utilizan para entrenar un modelo de aprendizaje profundo. Las latentes se crean codificando los píxeles de una imagen mediante una red neuronal. El proceso de codificación crea una representación latente de la imagen. El decodificador usa esta representación latente para generar la imagen original.

  • 01:45:00 Este video explica cómo una red neuronal puede aprender a predecir mejor el ruido aprovechando el hecho de que sabe cuál era la imagen original. Esto es útil porque, cuando se introduce el número 3, por ejemplo, el modelo dirá que el ruido es todo lo que no representa el número 3.

  • 01:50:00 El video explica cómo se pueden usar dos redes neuronales para codificar texto e imágenes. La primera red neuronal se usa para codificar texto y la segunda red neuronal se usa para codificar imágenes. El objetivo es que las dos redes produzcan salidas similares para una entrada dada. La similitud de las salidas está determinada por el producto escalar de las características de la entrada y las características de la salida.

  • 01:55:00 Este video explica cómo crear un codificador de texto CLIP, que es un tipo de modelo de aprendizaje automático que puede producir incrustaciones similares para entradas de texto similares. Esto es importante porque permite el reconocimiento y la síntesis de texto multimodal.

  • 02:00:00 En este video, el instructor explica cómo entrenar un modelo de aprendizaje automático utilizando un algoritmo de aprendizaje profundo. El modelo se inicializa con un conjunto de variables latentes (que representan los datos) y utiliza un decodificador para comprender los datos sin procesar. A continuación, se utiliza un codificador de texto para crear subtítulos legibles por máquina para los datos. Finalmente, se entrena una U-Net usando los subtítulos como entrada, y los gradientes (la "función de puntaje") se usan para ajustar los niveles de ruido en los datos de entrenamiento.

  • 02:05:00 En este video, el autor describe cómo funcionan los algoritmos de aprendizaje profundo y cómo intentan encontrar la mejor suposición para una imagen latente (desconocida). El autor también describe cómo ajustar los parámetros del algoritmo para mejorar los resultados.

  • 02:10:00 El video analiza cómo los solucionadores de ecuaciones diferenciales, como los optimizadores, usan ideas similares a los modelos de aprendizaje profundo. El video analiza cómo la pérdida de percepción y otras funciones de pérdida se pueden usar para mejorar la precisión de los modelos de aprendizaje profundo. El video ofrece un adelanto de la siguiente lección, en la que se explicará el código para una canalización de aprendizaje profundo.

  • 02:15:00 Este video analiza algunas nuevas direcciones de investigación en aprendizaje profundo que probablemente mejoren la estabilidad y la difusión de la tecnología.
 

Desafíos en el aprendizaje profundo (Dr. Razvan Pascanu - DeepMind)



Desafíos en el aprendizaje profundo (Dr. Razvan Pascanu - DeepMind)

El Dr. Razvan Pascanu de DeepMind analiza varios desafíos en el aprendizaje profundo en este video. Destaca la importancia de la adaptabilidad y el cambio de enfoque de las métricas de rendimiento, y sugiere que las limitaciones de los recursos computacionales en los sistemas de aprendizaje profundo en realidad pueden ser beneficiosas. Además, explora los desafíos del aprendizaje continuo y el subcampo del aprendizaje automático relacionado con esto, incluido el impacto del tamaño y la arquitectura en el rendimiento de los modelos de aprendizaje profundo. El Dr. Pascanu también analiza el papel del descenso de gradiente estocástico, la importancia de los sesgos explícitos y el concepto de entrenamiento previo y la adición de sesgos inductivos en los modelos de aprendizaje profundo.

El Dr. Razvan Pascanu de DeepMind analiza el problema del olvido en el aprendizaje profundo y cómo los modelos pueden recuperarse. Si bien aún puede quedar algo de conocimiento después de que ocurre el olvido, es difícil determinar cuánta información se pierde. El Dr. Pascanu menciona cómo los artículos recientes sobre el olvido dirigido se han centrado en la privacidad de los datos, pero se necesita más investigación y enfoque en esta área.

  • 00:00:00 En esta sección, el Dr. Razvan Pascanu analiza sus ideas sobre la importancia de la adaptación en el aprendizaje profundo. A pesar del énfasis en las métricas de rendimiento, Pascanu destaca los efectos limitantes de la optimización continua para esta medida singular. La falta de adaptabilidad en los sistemas fijos frente a cambios impredecibles en el entorno, el enfoque en soluciones únicas para todos, la falta de métricas de rendimiento bien definidas en escenarios más complejos y la ampliación de los sistemas para superar únicamente cuellos de botella como datos limitados y recursos informáticos son algunos de los problemas que provocan la necesidad de un cambio de enfoque hacia la adaptación en el aprendizaje profundo.

  • 00:05:00 En esta sección, el Dr. Razvan Pascanu analiza las limitaciones de centrarse únicamente en el rendimiento en el aprendizaje profundo y sugiere explorar sistemas que puedan adaptarse continuamente al cambio. Destaca los problemas de cobertura y representatividad de los datos cuando se aprende sobre grandes conjuntos de datos, así como el desafío de evaluar la capacidad de generalización fuera de distribución de un sistema. Pascanu sugiere que pensar en la adaptabilidad cambia la perspectiva y puede ayudar a abordar algunos de estos problemas. Cita el argumento de Thomas Griffiths de que la razón por la que no podemos entender ciertos movimientos realizados por AlphaGo es porque tendemos a descomponer los problemas en objetivos secundarios, mientras que al agente solo le importa el rendimiento final. Pascanu concluye que es posible que cambiar de perspectiva no resuelva todos los problemas, pero podría conducir a nuevos conocimientos y enfoques.

  • 00:10:00 En esta sección, el Dr. Pascanu analiza la idea de que las limitaciones pueden ser beneficiosas en los sistemas de aprendizaje profundo. Mientras que los humanos tienen limitaciones cognitivas que dan forma a la forma en que pensamos, los sistemas de aprendizaje automático tienen limitaciones computacionales que dan forma a la forma en que aprenden. Si pensamos en las limitaciones como un obstáculo que debe superarse, es posible que nos perdamos los beneficios de estas limitaciones. Limitar los presupuestos computacionales puede obligar al sistema a encontrar soluciones combinatorias, lo que puede conducir a mejores resultados. El Dr. Pascanu cree que en lugar de centrarnos únicamente en el rendimiento, también debemos tener en cuenta el costo del aprendizaje, el costo de la inferencia y la cantidad de información codificada. Sin embargo, aún quedan desafíos por superar en términos de la relación entre la distribución de datos y los puntos de datos, y el Dr. Pascanu destaca la importancia de explorar diferentes herramientas, como la teoría de categorías, para abordar estos desafíos.

  • 00:15:00 En esta sección, el Dr. Razvan Pascanu-DeepMind analiza por qué el aprendizaje continuo es importante y los deseos de un sistema que pueda aprender continuamente de manera eficiente. Él destaca que hay muchos sabores de aprendizaje continuo, lo que dificulta definir y señalar cada problema específico. Además, la definición de aprendizaje continuo también puede crear contradicciones, y algunos de los problemas se vuelven más visibles según las tareas y los puntos de referencia que se utilicen. El Dr. Pascanu-DeepMind sugiere que una forma de fundamentar el aprendizaje continuo es centrarse en problemas reales como el aprendizaje semisupervisado continuo, que tiene una aplicación práctica, lo que facilita ver si se está progresando. Otra forma es centrarse en el aprendizaje por refuerzo.

  • 00:20:00 En esta sección, el Dr. Razvan Pascanu analiza los desafíos del aprendizaje continuo en el aprendizaje por refuerzo (RL) y las técnicas que se han desarrollado hasta ahora para mitigar este problema. Dado que los datos en RL no son estacionarios, es necesario lidiar con el aprendizaje continuo para que las aproximaciones de funciones funcionen. Se han desarrollado varias técnicas basadas en los métodos de fuerza bruta, como los búferes de reproducción para evitar el olvido catastrófico, la liga de expertos en Starcraft y el juego de ventas en AlphaGo. Sin embargo, estos métodos pueden volverse costosos y siempre existe la necesidad de reducir estos costos. Pascanu presenta un artículo interesante que argumenta que RL y el aprendizaje supervisado se diferencian en que la transferencia de funciones no ayuda tanto en los sistemas de RL, y el enfoque debe estar en controlar la calidad de los datos y centralizar al actor y al crítico.

  • 00:25:00 En esta sección, el orador analiza los desafíos del aprendizaje continuo y señala que hay aspectos de la alineación continua que el aprendizaje supervisado no puede emular. El orador menciona un documento que enumera estas diferencias entre RL y aprendizaje supervisado. Además, el orador explica cómo se puede pensar en el aprendizaje continuo como un problema de seguimiento en lugar de convergencia a un punto. El orador menciona la pérdida de plasticidad que se produce cuando se ajustan nuevos datos y cómo esto puede afectar la generalización. Finalmente, el disertante analiza la asignación de créditos en las redes neuronales y cómo se calcula el gradiente de forma independiente para cada peso, lo que puede causar votos contradictorios que afectan el promedio.

  • 00:30:00 En esta sección del video, el Dr. Razvan Pascanu habla sobre el aprendizaje sobre la marcha, que es similar a un juego de tira y afloja donde cada ejemplo ejerce una fuerza sobre el peso, y el aprendizaje ocurre cuando se alcanza el equilibrio. alcanzado entre estas fuerzas. Los datos de identificación son esenciales en este proceso, ya que aseguran que todas las fuerzas estén presentes. Además, el aprendizaje enseña conocimiento indirectamente, con varios conceptos relacionados aprendidos simultáneamente. Se sugiere que la dinámica de aprendizaje, el optimizador y el middleware de automatización de juegos se pueden mejorar para crear un proceso de aprendizaje más eficiente para obtener más conocimiento con menos datos.

  • 00:35:00 En esta sección, el Dr. Razvan Pascanu de DeepMind analiza los desafíos en el subcampo del aprendizaje automático conocido como aprendizaje continuo, que implica tratar de enseñar cosas nuevas a un sistema sin que olvide lo que aprendió previamente. El campo está subespecificado, los puntos de referencia no están bien definidos y hay desacuerdos sobre lo que le importa a la gente. Un problema es la calidad de los datos y las compensaciones entre aprender y olvidar, que depende en gran medida de cómo se defina el punto de referencia. El objetivo es llegar a puntos de referencia que sean más naturales, pero ni siquiera se acuerda la definición de "natural".

  • 00:40:00 En esta sección, el Dr. Razvan Pascanu analiza el concepto de los sistemas AGI y su relación con la inteligencia humana. Él explica que aunque la construcción de un sistema AGI que se asemeje a los humanos podría ser deseable para facilitar la interpretación, no es necesario. Los objetivos secundarios utilizados en el aprendizaje AGI son eficientes y ayudan en la generalización de la composición, lo que permite un aprendizaje más rápido de cosas nuevas. Pascanu también analiza cómo los sesgos implícitos de los modelos de aprendizaje profundo pueden generar errores y cómo se pueden usar los sesgos explícitos para mejorar los modelos. Da un ejemplo de cómo se puede mejorar el aprendizaje continuo con el uso de sistemas sobreparametrizados en el área de muy baja curvatura.

  • 00:45:00 En esta sección del video, el Dr. Razvan Pascanu analiza el impacto del tamaño y la arquitectura de un modelo en su desempeño en el aprendizaje profundo. Señala que la escala por sí sola tiene un impacto significativo en la capacidad de olvido de un sistema, y elegir la arquitectura correcta marca una gran diferencia. El campo generalmente ignora el impacto de las opciones de arquitectura y, a menudo, compara las arquitecturas de manera injusta. El Dr. Pascanu también destaca el papel de la optimización en el aprendizaje profundo y sugiere que la parametrización excesiva da como resultado muchas soluciones sin error de entrenamiento. A medida que aumenta el número de soluciones, la solución más cercana a la inicialización converge y el sistema aún depende de las condiciones de inicialización. Menciona ejemplos de trabajos de investigación que muestran que la superficie baja puede tener cualquier estructura y ser arbitrariamente complicada. Finalmente, explica que res net funciona bien debido a la conexión de salto que usa para cambiar la forma en que fluyen los gradientes en el sistema.

  • 00:50:00 En esta sección, el Dr. Razvan Pascanu habla sobre algunos resultados recientes que muestran los sesgos implícitos en el descenso de gradiente estocástico (SGD) y la importancia de los sesgos explícitos. Con respecto a SGD, tradicionalmente se pensaba que el ruido en SGD ayudaba a escapar de los mínimos definidos, pero resulta que existe un sesgo implícito en el regularizador utilizado en SGD. Además, el ruido del aumento de datos es dañino y descubrieron que promediar el gradiente sobre diferentes aumentos de datos puede reducir este ruido. Además, los sesgos son muy importantes y un ligero ajuste en el aumento de datos puede generar grandes mejoras en el rendimiento. También exploraron la idea de diferentes inicializaciones y cómo pueden afectar la partición del espacio que es integral para resolver el problema. Finalmente, se muestra que el uso de sesgos explícitos, como el entrenamiento previo, también conduce a mejoras significativas.

  • 00:55:00 En esta sección, el Dr. Razvan Pascanu analiza el concepto de capacitación previa y la adición de sesgos inductivos en los modelos de aprendizaje profundo. Explica que el entrenamiento previo puede ayudar a garantizar que la información se transmita correctamente entre los nodos y puede conducir a una mejora significativa en los dispositivos exclusivos. Además, el Dr. Pascanu describe un enfoque único para agregar sesgos inductivos al dar forma a la superficie de pérdida en lugar de agregar un término regularizador, lo que puede ayudar a que los pesos se bloqueen en cero y mejorar la eficiencia del aprendizaje. También aborda cuestiones relacionadas con el olvido catastrófico y el desafío de descomponer problemas en el aprendizaje automático.

  • 01:00:00 En esta sección, el Dr. Pascanu analiza la idea de olvidar en el aprendizaje profundo y cómo los modelos pueden recuperarse. Sugiere que todavía hay algo de conocimiento oculto incluso después de que un modelo haya olvidado ciertas cosas, pero es difícil determinar cuánto conocimiento se pierde realmente. El Dr. Pascanu menciona los próximos artículos sobre el olvido dirigido, donde ciertos puntos de datos se eliminan del modelo para proteger la privacidad, pero cree que se necesita más investigación en esta área.
 

CS 198-126: Modern Computer Vision Otoño de 2022 (Universidad de California, Berkeley) Clase 1: Introducción al aprendizaje automático



CS 198-126: Clase 1: Introducción al aprendizaje automático

En esta lección sobre aprendizaje automático, el instructor cubre una amplia gama de temas, incluida una introducción al curso, una descripción general del aprendizaje automático, diferentes tipos de aprendizaje automático, canalización de aprendizaje automático, etiquetado de datos y función de pérdida. También se analiza el concepto de compensación de sesgo-varianza, sobreajuste y desajuste. El instructor enfatiza la importancia de elegir la función correcta durante el proceso de aprendizaje automático y el papel de los hiperparámetros en el proceso. El objetivo general del aprendizaje automático es predecir con precisión nuevos datos, no solo ajustar los datos de entrenamiento. El disertante alienta a los estudiantes a asistir a la clase y hacer un esfuerzo por aprender sobre el aprendizaje automático y el aprendizaje profundo.

  • 00:00:00 En esta sección, no hay contenido adecuado para resumir, ya que el extracto de la transcripción proporcionado parece ser una conversación entre el orador y la audiencia sobre la situación del micrófono en la sala.

  • 00:05:00 En esta sección, se nos presenta la serie de conferencias sobre el aprendizaje profundo para la visión artificial, presentada por Jake y sus colegas. A medida que comienza la clase, Jake repasa la logística del curso y describe lo que discutirán en la primera lección, que es una descripción general del aprendizaje automático y cómo se aborda. A pesar de algunas dificultades técnicas con el equipo de grabación, Jake está emocionado de enseñar la clase y comienza con una presentación de sí mismo y de sus colegas.

  • 00:10:00 En esta sección, el instructor se presenta a sí mismo y al curso, cuyo objetivo es proporcionar un campo de entrenamiento introductorio a la visión por computadora y al aprendizaje profundo para los estudiantes de primer año que no han tenido mucha exposición al material antes. El curso cubrirá temas como tareas de visión por computadora, aprendizaje de grandes conjuntos de datos de imágenes, visión 3D y arte generativo. El instructor enfatiza que se supone que el curso es divertido e interactivo y proporciona logística para el curso, como acceder a diapositivas de grabación y tareas en el sitio web y usar Ed Stem para interactuar con los estudiantes y el personal del curso. El plan de estudios también está disponible en el sitio web, y el primer cuestionario se entregará al final del próximo fin de semana.

  • 00:15:00 En esta sección, el instructor brinda una introducción al aprendizaje automático (ML). Él explica que ML es el proceso de usar datos para descubrir cómo se ve una función en lugar de codificarla usted mismo. Con ML, los datos guían las funciones, y el instructor da un ejemplo de cómo una función para identificar el número 7 de una imagen es mucho más fácil de crear con ML que intentar hacerlo a través de la codificación. El instructor explica que ML involucra la creación de plantillas donde uno crea la estructura de una función y deja algunos parámetros que determinarán cómo se comporta la función, con los parámetros aprendidos a través de los datos. Se analiza la importancia de crear las plantillas de funciones correctas, ya que determina el éxito del modelo ML.

  • 00:20:00 En esta sección de la conferencia, el orador explica que la clave del aprendizaje automático es averiguar el formato de la función que seguirá el modelo. Esta función a veces se denomina clase de modelo y ciertas partes están en blanco y se denominan parámetros, que son los valores que podemos aprender. El orador enfatiza que la elección de la función es de vital importancia para lograr resultados precisos. El orador también proporciona una breve descripción general y una categorización de los diferentes tipos de aprendizaje automático, incluido el aprendizaje supervisado, el aprendizaje no supervisado y el aprendizaje reforzado, y presenta el vocabulario asociado con el aprendizaje automático, incluida la función, los parámetros, los pesos, los sesgos, los hiperparámetros y las características.

  • 00:25:00 En esta sección, el disertante explica el proceso de aprendizaje automático, centrándose en la canalización de ML. Primero, es fundamental definir el problema, preparar los datos y seleccionar el modelo y la función de pérdida. También es fundamental etiquetar los datos con un sistema de etiquetado en caliente para convertirlos en números que el modelo pueda reconocer. El disertante enfatiza la importancia de los buenos datos, señalando que la entrada de datos de mala calidad dará como resultado un resultado igualmente pobre. Además, analiza la importancia de la vectorización de datos, asegurando que todas las características estén en la misma escala y representadas en el orden correcto.

  • 00:30:00 En esta sección, el disertante explica cómo etiquetar datos para aplicaciones de aprendizaje automático y por qué es importante representar los datos correctamente. Se utiliza un etiquetado en caliente donde cada etiqueta está representada por un vector con un uno en la posición correspondiente y ceros en el resto. Definir un modelo y una función de pérdida es crucial cuando se entrena un modelo de aprendizaje automático. El modelo debe adaptarse al problema y los datos específicos, y se pueden probar diferentes modelos para ver cuál funciona mejor. La función de pérdida mide la eficacia del modelo y es deseable un valor bajo.

  • 00:35:00 En esta sección, el disertante analiza la importancia de tener una métrica para optimizar en el aprendizaje automático e introduce el concepto de una función de pérdida para medir la diferencia entre la salida del modelo y la etiqueta correcta. El error cuadrático medio se proporciona como ejemplo de una función de pérdida para calcular la distancia entre la salida del modelo y la etiqueta correcta. La función de pérdida es un hiperparámetro que debe seleccionarse de antemano. Además, el disertante habla sobre la fase de entrenamiento, donde el algoritmo selecciona los valores óptimos para los parámetros del modelo utilizando la función de pérdida. Además, se utiliza un conjunto de pruebas que el modelo no ha visto antes para evaluar el rendimiento del modelo y determinar qué tan bien generaliza el modelo a nuevos datos. Finalmente, se enfatiza la importancia de garantizar que el modelo no solo memorice los datos de entrenamiento, sino que generalice bien a los nuevos datos.

  • 00:40:00 En esta sección, el concepto de compensación de sesgo y varianza se analiza como un aspecto crucial en el aprendizaje automático que aparece en el aprendizaje profundo y todas las demás clases de ML. El sesgo se refiere a la tendencia del modelo hacia ciertas predicciones, y la varianza es la capacidad de un modelo para capturar las complejidades de los datos sin memorizarlos. Se dan ejemplos de alto sesgo y alta varianza, donde el alto sesgo es un caso en el que un modelo no es lo suficientemente expresivo para aprender un conjunto de datos con precisión, mientras que la alta varianza se refiere al sobreajuste. El modelo ideal es aquel que captura la complejidad de los datos sin memorizarlos, lo que se conoce como la zona Goldilocks. La compensación de sesgo-varianza es un concepto crítico en el aprendizaje automático que los usuarios deben conocer, ya que lo encontrarán en cada clase de aprendizaje automático que tomen.

  • 00:45:00 En esta sección, el orador analiza el concepto de sobreajuste y desajuste en los modelos de aprendizaje automático. El objetivo del aprendizaje automático es modelar y predecir con precisión nuevos datos, no solo ajustar los datos de entrenamiento. Si un modelo puede coincidir demasiado con los datos de entrenamiento pero no puede predecir nuevos datos con precisión, entonces se está sobreajustando. Por otro lado, si un modelo es demasiado simple y no puede capturar los patrones en los datos, no se ajusta bien. El mejor enfoque es encontrar un equilibrio entre ajustarse lo suficiente a los datos de entrenamiento y poder generalizar a nuevos datos. Esto implica prueba y error con ajuste de hiperparámetros y la selección de funciones de pérdida apropiadas.

  • 00:50:00 En esta sección, el instructor cubre el concepto de sesgo y varianza en los modelos de aprendizaje automático. Un modelo con un alto sesgo tendrá una precisión similar entre los datos de entrenamiento y de prueba, ya que siempre arroja el mismo resultado independientemente de la entrada. Por otro lado, un modelo de alta varianza se ajusta demasiado a los datos, lo que genera una gran pérdida cuando se prueba con nuevos datos. El instructor enfatiza el equilibrio entre la complejidad del modelo y la generalización, lo cual es importante comprender al seleccionar un modelo para una tarea específica. Finalmente, el instructor alienta a los estudiantes a asistir a clase y esforzarse por aprender sobre el aprendizaje automático y el aprendizaje profundo, aunque puede que no sea su principal prioridad.
 

CS 198-126: Clase 2: Introducción al aprendizaje profundo, Parte 1



CS 198-126: Clase 2: Introducción al aprendizaje profundo, Parte 1

En esta conferencia de YouTube sobre Introducción al aprendizaje profundo, el instructor analiza los conceptos básicos de los modelos de aprendizaje profundo y cómo entrenarlos mediante el descenso de gradiente, cubriendo diferentes componentes básicos para las redes neuronales y por qué el aprendizaje profundo es una tecnología tan predominante. La conferencia presenta el perceptrón y el apilamiento de múltiples perceptrones para crear una red neuronal más compleja y sofisticada, y explica cómo calcular la salida mediante la multiplicación de matrices y una adición final, con la capa intermedia utilizando una función de activación de ReLU. El ponente aborda el uso de la función Softmax y la función de activación ReLU, utilizando funciones de pérdida como métricas para evaluar el rendimiento del modelo y el concepto de optimización del descenso de gradiente. Finalmente, el instructor analiza la idea del aprendizaje profundo y cómo una gran red neuronal provoca una baja pérdida a pesar de su capacidad para memorizar los datos. Además, el disertante introduce el concepto de ajuste de hiperparámetros en redes neuronales para mejorar su rendimiento con conjuntos de datos específicos. Señala que no existen valores universales para los hiperparámetros y sugiere explorar diferentes opciones, como números de capa y funciones de activación. Debido a limitaciones de tiempo, la conferencia finaliza abruptamente, pero el disertante les asegura a los estudiantes que el próximo cuestionario no será demasiado difícil y estará accesible en la plataforma GreatScope.

  • 00:00:00 En esta sección, el instructor le pregunta a la audiencia si tienen alguna pregunta de la lección anterior, específicamente con respecto a la compensación de sesgo-varianza y las codificaciones one-hot. Tocan brevemente el análisis exploratorio de datos y la validación cruzada de k-fold, indicando que estos temas no se cubrirán mucho en el curso. El instructor explica cómo funciona la validación cruzada de k-fold antes de comenzar la segunda lección sobre aprendizaje profundo.

  • 00:05:00 En esta sección de la conferencia, el instructor brinda una breve descripción general de lo que los estudiantes pueden esperar aprender, incluidos los conceptos básicos de los modelos de aprendizaje profundo y cómo entrenarlos mediante el descenso de gradiente. La conferencia también cubre diferentes componentes básicos para las redes neuronales y por qué el aprendizaje profundo es una tecnología tan predominante. Antes de profundizar en los detalles del aprendizaje profundo, el instructor repasa algunos conceptos fundamentales del álgebra lineal, como los productos de puntos vectoriales y la multiplicación de matrices vectoriales. Estos conceptos son importantes para comprender el funcionamiento interno de los modelos de aprendizaje profundo. El instructor proporciona ejemplos y notación para ayudar a los estudiantes a comprender completamente el material.

  • 00:10:00 En esta sección del video, el orador analiza la notación y la indexación en el aprendizaje profundo, donde se utilizan vectores y matrices para representar los parámetros de la función de caja negra. El orador explica que cada elemento de la matriz es un parámetro, y cuando se indexa dentro de un vector, se refiere a un solo escalar. Destacan la facilidad de tomar derivadas parciales con respecto a las entradas y explican la motivación detrás de las redes neuronales.

  • 00:15:00 En esta sección, el disertante analiza los diferentes tipos de problemas que el aprendizaje profundo puede resolver, como la regresión, la clasificación y el aprendizaje por refuerzo. El objetivo es crear un modelo universal que pueda usarse para todo tipo de tareas, similar a las capacidades del cerebro humano. Para crear este modelo, el disertante introduce el perceptrón, una formulación matemática que es similar a una neurona. El perceptrón toma entradas, las pondera, las agrega y luego las activa a través de una función de paso. El objetivo es crear un mini-cerebro que sea capaz de resolver problemas complejos, como la regresión no lineal en un polinomio que parece complicado.

  • 00:20:00 En esta sección, el video presenta el concepto de apilar múltiples perceptrones para crear una red neuronal más compleja y sofisticada. El video muestra cómo la operación del perceptrón se puede escribir de manera más compacta como un producto punto entre entradas y pesos, y un término de sesgo. Luego, el video toma esta operación y la repite para múltiples perceptrones para crear una red neuronal de una sola capa. El video señala que los pesos para cada perceptrón se pueden aprender según el conjunto de datos y el problema en cuestión.

  • 00:25:00 En esta sección, el disertante explica cómo funciona el producto escalar para calcular la salida del perceptrón, donde cada perceptrón tiene sus propios pesos y sesgos únicos. Cada elemento en el vector representa la salida del perceptrón, que es el producto punto con un escalar que se agrega. Luego, la conferencia presenta un ejemplo de juguete, y le pide a la audiencia que se vuelva hacia su vecino y discuta las matemáticas para predecir el resultado.

  • 00:30:00 En esta sección, el orador presenta una red neuronal básica que consta de una capa de entrada con dos entradas, una capa oculta con tres nodos y una capa de salida con una salida. El orador demuestra cómo calcular la salida mediante la multiplicación de matrices y una suma final, con la capa intermedia usando una función de activación de ReLU. Luego, el orador explica cómo compactar la notación de pase hacia adelante y responde una pregunta sobre el orden de los pesos. Finalmente, el ponente introduce brevemente la clasificación mediante redes neuronales.

  • 00:35:00 En esta sección de la conferencia, el orador habla sobre la interpretación del resultado de un modelo de aprendizaje profundo. El orador usa el ejemplo de clasificar un dígito y representar las etiquetas como una representación única. Para restringir la salida del modelo y garantizar que la salida del modelo se pueda interpretar como la probabilidad de que el modelo piense que pertenece a una determinada clase, el orador introduce la operación softmax al final de la red neuronal. La función softmax toma la exponencial de todos los valores de salida y luego normaliza los resultados, asegurándose de que todos los elementos estén entre 0 y 1 y sumen 1. Esta función garantiza que el modelo nunca tenga una confianza perfecta a menos que genere un infinito negativo durante casi cada valor individual, de ahí el meme de que siempre habrá incertidumbre en el aprendizaje profundo.

  • 00:40:00 En esta sección, el disertante analiza la función Softmax, que toma un vector de valores y genera un vector de valores que suman uno y son todos mayores que cero. Esta función se usa al final de una red neuronal si uno quiere interpretar los resultados de la red como probabilidades para diferentes clases. La conferencia también explica que la razón para agregar la función de activación de ReLU, que agrega complejidad a la red, es permitir el modelado de funciones complejas que una simple multiplicación de matrices, en ausencia de ReLU, puede no capturar. El disertante también aborda el uso de funciones de pérdida como métricas para evaluar qué tan bien se está desempeñando el modelo, como el error cuadrático medio. Finalmente, se introduce la metáfora de estar en una colina y querer llegar al fondo mientras solo se ve un pie alrededor para explicar el concepto de optimización del descenso de gradientes.

  • 00:45:00 En esta sección, el disertante introduce el concepto de escalada en optimización y cómo se aplica al aprendizaje profundo. La red neuronal es una función vectorial y la dirección más inclinada es el gradiente de la función vectorial. El disertante explica que determinar la dirección del ascenso más empinado se puede hacer utilizando el cálculo de múltiples variables, donde tomando el gradiente de cualquier función de múltiples variables con respecto a sus entradas dará la dirección más empinada. En el aprendizaje profundo, el problema de encontrar los mejores pesos que optimicen la pérdida mínima es increíblemente difícil, por lo que el disertante propone que simplemente inicialicemos todos los pesos y sesgos a valores aleatorios y demos pequeños pasos en la dirección del descenso más pronunciado. Con una evaluación continua, este proceso debería conducir a la selección correcta de pesos y sesgos.

  • 00:50:00 En esta sección, el orador analiza cómo bajar la colina en una función de pérdida tomando la derivada parcial de la función de pérdida con respecto a todos los parámetros individuales. El ponente también menciona que la función de pérdida depende de todos los parámetros, como pesos y sesgos. Para actualizar estos pesos y sesgos, se toma la derivada de la función de pérdida con respecto a esos parámetros evaluados en su valor actual y se da un pequeño paso en la dirección opuesta al mayor cambio, escalado por una tasa de aprendizaje. La esperanza es que después de la actualización, el valor de la función de pérdida disminuya significativamente.

  • 00:55:00 En esta sección, el disertante explica cómo escalonar los pesos para disminuir la pérdida de un ejemplo con el objetivo de disminuir la pérdida para todo el conjunto de datos. Se toma el gradiente de cada ejemplo de entrenamiento individual y, cuando se promedia, es el paso que se puede dar para dar como resultado la mayor disminución de pérdida en todo el conjunto de datos. Para una mayor eficiencia computacional, divídalo y mire los pequeños fragmentos llamados descenso de gradiente por lotes. El disertante detalla el proceso de los componentes básicos de la red, como las funciones de activación y las funciones de pérdida, y enfatiza que, al final del día, lo único que importa es que la función de pérdida cuantifica qué tan bien lo estamos haciendo. El disertante también señala que no hay una forma concreta de definir los mejores valores para todos los pesos y sesgos en la red neuronal, de ahí el uso de estos métodos perezosos. Finalmente, se proporciona una explicación de la idea del aprendizaje profundo y cómo una gran red neuronal provoca una baja pérdida a pesar de su capacidad para memorizar los datos, como muestran los hallazgos empíricos.

  • 01:00:00 En esta sección, el disertante analiza el proceso de ajuste de hiperparámetros en una red neuronal para optimizar su rendimiento con un conjunto de datos determinado. Él reconoce que no hay un conjunto fijo de hiperparámetros que funcionen para todos los conjuntos de datos y, en cambio, recomienda probar diferentes valores para parámetros como el número de capas, funciones de activación, etc. El disertante tuvo que terminar rápidamente la conferencia y menciona que pronto se lanzará un cuestionario, pero no será demasiado desafiante y estará disponible en gran alcance.
Razón de la queja: