0% encontró este documento útil (0 votos)
15 vistas182 páginas

Introducción al Aprendizaje Profundo

Este documento presenta una introducción al aprendizaje profundo (deep learning). Explica conceptos matemáticos fundamentales como vectores, matrices, tensores y manifolds que son la base del aprendizaje profundo. También introduce el algoritmo de retropropagación, que es crucial para entrenar redes neuronales profundas.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
15 vistas182 páginas

Introducción al Aprendizaje Profundo

Este documento presenta una introducción al aprendizaje profundo (deep learning). Explica conceptos matemáticos fundamentales como vectores, matrices, tensores y manifolds que son la base del aprendizaje profundo. También introduce el algoritmo de retropropagación, que es crucial para entrenar redes neuronales profundas.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Introducción al Aprendizaje

Profundo(Deep Learning)
MÓDULO 1

2
Sobre mí
Aurea Soriano-Vargas
Personal profile
Peruvian Professional in Computer
Science in Quarantine
Research Interests
Current Position
Information Visualization, Visual
Analytics(Visual Data Mining), Image Postdoctoral researcher at State
Processing and Machine Learning. University of Campinas

Junior Specialist Researcher BSc


Informatics Engineering from Catholic
University of California, Davis (UCDAVIS)
San Pablo University, Arequipa, Peru in
(2015-2016)
2009

PhD MSc
Computer Science from University of São Computer Science from University of São
Paulo, Brazil in 2018 Paulo, Brazil in 2013

4
Mollendo - Arequipa
Mollendo - Arequipa

6
UNICAMP

7
UNICAMP

8
¿Quiénes somos nosotros? ¿Quiénes son ustedes?
Preliminares de Matemática
Optimización
Álgebra Lineal

Estadística Machine Learning

11
lee

12
lee lee

13
lee lee

la matemática la matemática

14
lee lee

la matemática la matemática

15
lee lee

la matemática la matemática

que está por que está por


detrás de DL detrás de ML

16
lee lee

la matemática la matemática

que está por que está por


detrás de DL detrás de DL

17
lee lee

la matemática la matemática

que está por que está por


detrás de DL detrás de DL

Lee la matemática
que está por from [Link] import
detrás de DL RandomForestClassifier

18
lee lee

la matemática la matemática

que está por que está por


detrás de DL detrás de DL

Lee la matemática import keras


from [Link] import Sequential
que está por
from [Link] import Dense, Dropout, Flatten
detrás de DL from [Link] import Conv2D, MaxPooling2D

19
Vectores
Ciencia de la Computación: Vector es un arreglo unidimensional de escalares de valor real.

En forma de columna o en forma de fila. Denotado por letras minúsculas en negrita.

Un vector con n elementos se encuentra en el espacio n-dimensional

20
Producto Punto
Producto interno o producto escalar de vectores.

Simétrico, 

Interpretación geométrica: ángulo entre dos vectores

Si dos vectores son ortogonales:  , es decir,


entonces 

21
Norma de un vector
Función que asigna un vector a un valor escalar (medida del tamaño del vector)

Propiedades:
Escalamiento: 
Desigualdad triangular: 
Debe ser no negativo: 

Norma general de un vector:

Norma de Frobenius (para matrices)


Calcula la raíz cuadrada de la suma de los elementos al cuadrado

22
Norma de un vector
Para p=2, norma

■ norma euclidiana.
■ más utilizada
■ con el subíndice 2 omitido

Para p=1, norma

■ valores absolutos

Para p= , norma

■ norma infinita o norma máxima


■ valor absoluto del elemento más grande

La norma devuelve el número de elementos no ceros.

■ se llama incorrectamente norma

23
Hiperplanos
● Subespacio cuya dimensión es uno menos que la de su espacio ambiental.
○ En un espacio 2D, línea recta (es decir, 1D)
○ En 3D, plano (es decir, 2D)
○ En un espacio vectorial de dimensión d, un hiperplano tiene d-1 dimensiones  y divide el
espacio en dos medios espacios

● En ML, los hiperplanos son límites de decisión.



○ Los puntos de datos que caen a ambos lados del hiperplano se atribuyen a diferentes clases

24
Matrices
Suma o resta

Multiplicación escalar

Multiplicación de matrices

Tenga en cuenta que 

25
Matrices
Transpuesta de la matriz: tiene las filas y columnas intercambiados

Algunas propiedades

Matriz cuadrada: tiene el mismo número de filas y columnas

Matriz de identidad (I): tiene unos en la diagonal principal y ceros en el resto

Por ejemplo: matriz de identidad de tamaño 3 × 3:

26
Tensores
Los tensores son matrices n-dimensionales de escalares
● Los vectores son tensores de primer orden, 
● Las matrices son tensores de segundo orden, 
● Por ejemplo, un tensor de cuarto orden es 

Los tensores se indican con letras mayúsculas (p. Ej., X, Y, Z )


Las imágenes RGB son tensores de tercer orden, ya que son matrices tridimensionales
● Los 3 ejes corresponden a ancho, alto y canal.
● El eje del canal corresponde a los canales de color (rojo, verde y azul)

27
Manifolds
● Los hiperplanos generalizan el concepto de planos en espacios de alta dimensión.
○ Los manifolds informalmente son una generalización del concepto de superficies
en espacios de alta dimensión.

● Para comenzar con una explicación intuitiva, la superficie de la Tierra es un ejemplo de


un manifold bidimensional embebido en un espacio tridimensional.
○ Esto es cierto porque la Tierra se ve localmente plana, por lo que a pequeña escala
es como un plano 2-D.
○ Sin embargo, si seguimos caminando sobre la Tierra en una dirección,
eventualmente terminaremos de regreso donde comenzamos.
■ Esto significa que la Tierra no es realmente plana, solo se ve localmente como
un plano euclidiano, pero a gran escala se pliega sobre sí misma y tiene una
estructura global diferente a la de un plano plano.

28
Manifolds
● Espacios topológicos (matemática).
● Manifold n-dimensional: espacio topológico con la propiedad de que cada punto tiene una
vecindad que es homeomorfa al espacio euclidiano de dimensión n
○ Un manifold localmente se asemeja al espacio euclidiano cerca de cada punto.
○ De manera informal, un espacio euclidiano es localmente liso, no tiene agujeros, bordes
u otros cambios repentinos y no tiene vecindarios que se crucen
○ Aunque los manifolds pueden tener una estructura muy compleja a gran escala, la
semejanza del espacio euclidiano a pequeña escala permite aplicar conceptos
matemáticos estándar.

En la figura se muestran ejemplos de manifolds bidimensionales.


● Las superficies de la figura se han cortado convenientemente en
pequeños rectángulos que se pegaron entre sí.
● Esos pequeños rectángulos localmente parecen planos
euclidianos.
29
Manifolds
Ejemplos de manifolds unidimensionales
● Figura superior: un círculo es un manifold l-D embebido en 2-D, donde
cada arco del círculo se asemeja localmente a un segmento de línea
● Figuras inferiores: otros ejemplos de manifolds 1-D
● Tenga en cuenta que una figura del número 8 no es un manifold porque
tiene un punto de intersección (no es euclidiana localmente)

Se plantea la hipótesis de que en el mundo real, los datos de alta dimensión


(como las imágenes) se encuentran en manifolds de baja dimensión
embebidos en el espacio de alta dimensión.
● Por ejemplo, en DL, supongamos que tenemos un conjunto de
entrenamiento de imágenes con un tamaño de 224x224x3 píxeles.
● Aprender una función arbitraria en un espacio de tan alta dimensión sería
intratable
● A pesar de eso, todas las imágenes de la misma clase ("gatos") pueden
encontrarse en un manifold de baja dimensión
● Esto permite el aprendizaje de funciones y la clasificación de imágenes.
30
Motor de Deep Learning

Retropropagación (Backpropagation) -> consiste (princ.) en gradiente descendiente.

Gradiente descendiente -> movimiento a lo largo del gradiente.

Gradiente -> vector de derivadas.

31
Derivadas de Funciones Explícitas

32
Derivadas de Orden Superior
La derivada de la primera derivada de una función f(x)  es la segunda derivada de f(x)


La segunda derivada cuantifica cómo está cambiando la tasa de cambio de f(x)
● Por ejemplo, en física, si la función describe el desplazamiento de un objeto, la primera derivada da la
velocidad del objeto (es decir, la tasa de cambio de posición)
● La segunda derivada da la aceleración del objeto (es decir, la tasa de cambio de la velocidad)

Si aplicamos la operación de diferenciación cualquier número de veces, obtenemos la n-ésima derivada de


f(x) 

33
Derivadas Parciales
● Hasta ahora, analizamos las funciones de una sola variable, donde 
● Las funciones que dependen de muchas variables se denominan funciones multivariadas.
● Sea  una función multivariada con n variables
○ La entrada es un vector n-dimensional  y la salida es un escalar y
○ La función de mapeamiento es:


● La derivada parcial de y con respecto a su i-ésimo parámetro  es

● Para calcular  , podemos tratar  como constantes y


calcular la derivada de y solo con respecto a 

34
Gradiente
● Vector gradiente de la función: Derivadas parciales de una función multivariada con respecto a
todas sus variables de entrada

● Notación: (nabla) gradiente de f con respecto a x.

● En DL, el algoritmo de gradiente descendiente se basa en la dirección opuesta de la gradiente de la


función de pérdida  J con respecto a los parámetros del modelo  para minimizar la función de
pérdida

35
Cálculo Integral
● Para una función f(x) definida en el dominio [a,b], la integral definida de la función se
denota

● La interpretación geométrica de la integral es el área entre el eje horizontal y la gráfica de  f(x)


entre los puntos a y b
● En esta figura, la integral es la suma de las áreas azules (donde f(x) > 0)  menos el área
rosada (donde f(x) < 0)

36
Optimización
● Optimizar una función objetivo: encontrar el valor de un argumento que minimiza o maximiza la
función
○ La mayoría de los algoritmos de optimización se formulan en términos de minimizar
una función f (x)
○ La maximización se logra minimizando lo negativo de una función objetivo (por
ejemplo, minimizar -f (x))
○ En los problemas de minimización, la función objetivo = función de costo o función
de pérdida o función de error.

● La optimización es muy importante para el aprendizaje automático


○ El rendimiento de los algoritmos de optimización afecta la eficiencia del
entrenamiento del modelo.
● La mayoría de los problemas de optimización en el aprendizaje automático no son convexos
○ Lo que significa que la función de pérdida no es una función convexa.
○ No obstante, el diseño y análisis de algoritmos para resolver problemas convexos ha
sido muy instructivo para el campo en avance del aprendizaje automático.

37
Optimización
● La optimización y el aprendizaje automático tienen objetivos relacionados pero algo diferentes
○ Meta en optimización: minimizar una función objetivo
■ Para un conjunto de ejemplos de entrenamiento, reducir el error de entrenamiento
○ Objetivo en ML: encontrar un modelo adecuado para predecir sobre ejemplos de
datos
■ Para un conjunto de ejemplos de prueba, reduzca el error de generalización

● Para una función empírica dada g (curva púrpura discontinua), los algoritmos de optimización intentan
encontrar el punto de riesgo empírico mínimo

● La función esperada f (curva azul) se obtiene dada una


cantidad limitada de ejemplos de datos de entrenamiento
● Los algoritmos de ML intentan encontrar el punto de riesgo
mínimo esperado, basándose en minimizar el error en un
conjunto de ejemplos de prueba.

38
Puntos Estacionarios
● Puntos estacionarios (o puntos críticos) de una función diferenciable f(x) de una variable: los
puntos donde la derivada de la función es cero, es decir, f '(x) = 0
● Los puntos estacionarios pueden ser:
○ Mínimo, un punto donde la derivada cambia de negativa a positiva.
○ Máximo, un punto donde la derivada cambia de positiva a negativa.
○ Punto de Silla, la derivada es positiva o negativa en ambos lados del punto
● Los puntos mínimo y máximo se conocen colectivamente como puntos extremos.
● La naturaleza de los puntos estacionarios se puede determinar basándose en la segunda
derivada de f(x) en el punto
○ Si f’’(x)>0, el punto es un mínimo
○ Si f’’(x)<0, el punto es un máximo
○ Si f’’(x)=0, no es concluyente, el punto puede ser un punto de silla, pero
puede que no
● El mismo concepto también se aplica a los gradientes de funciones multivariadas.

39
Puntos Estacionarios
● Puntos estacionarios (o puntos críticos) de una función diferenciable f(x) de una variable: los
puntos donde la derivada de la función es cero, es decir, f '(x) = 0
● Los puntos estacionarios pueden ser:
○ Mínimo, un punto donde la derivada cambia de negativa a positiva.
○ Máximo, un punto donde la derivada cambia de positiva a negativa.
○ Punto de Silla, la derivada es positiva o negativa en ambos lados del punto
● Los puntos mínimo y máximo se conocen colectivamente como puntos extremos.
● La naturaleza de los puntos estacionarios se puede determinar basándose en la segunda
derivada de f(x) en el punto
○ Si f’’(x)>0, el punto es un mínimo
○ Si f’’(x)<0, el punto es un máximo
○ Si f’’(x)=0, no es concluyente, el punto puede ser un punto de silla, pero
puede que no
● El mismo concepto también se aplica a los gradientes de funciones multivariadas.

40
Mínimo Local
● Entre los desafíos en la optimización de los parámetros del modelo en ML se encuentran los
mínimos locales, los puntos de silla y los gradientes de fuga (vanishing gradients).
● Para una función objetivo f(x), si el valor en un punto x es el mínimo de la función objetivo en
todo el dominio de x, entonces es el mínimo global
● Si el valor de f(x) en x es menor que los valores de la función objetivo en cualquier otro punto
en la vecindad de x, entonces es el mínimo local
● Las funciones objetivo en ML suelen tener muchos mínimos locales
● Cuando la solución del algoritmo de optimización está cerca del mínimo local, el gradiente de
la función de pérdida se acerca o se vuelve cero (gradientes que desaparecen)
● Por tanto, la solución obtenida en la iteración final puede ser un mínimo local, en lugar del
mínimo global

41
Punto de Silla
● El gradiente de una función f(x)  en un punto de silla es 0, pero no es un punto mínimo o
máximo
○ Los algoritmos de optimización pueden detenerse en los puntos de silla, sin
alcanzar un mínimo.

● Para la función 2D (figura de la derecha), el punto de silla está en (0,0)


○ El punto parece una silla de montar, y da el mínimo con respecto a x, y el
máximo con respecto a y

42
Introducción
Mapa de Aprendizaje
escenario tarea método
Teoría de Aprendizaje
Aprendizaje Aprendizaje de
Regresión Semisupervisado Transferencia
Aprendizaje No Aprendizaje de
Modelo Lineal Supervisado Refuerzo

Aprendizaje SVM, decision


Aprendizaje
Profundo tree, K-NN …
Estructurado
Modelo no Lineal
Clasificación
Aprendizaje Supervisado

44
Mapa de Aprendizaje
Regresión

Modelo Lineal

Aprendizaje Profundo
(Deep Learning)
Modelo No Lineal
Clasificación

45
Clasificación - Deep Learning

Función

46
Clasificación - Deep Learning

Estructura Jerárquica

Función

47
Clasificación - Deep Learning
• Reconocimiento de Imágenes
Estructura Jerárquica “mono”

Función

“perro”
Cada posible objeto
pertenece a una clase

48
Clasificación - Deep Learning
• Reconocimiento de Imágenes Datos de entrenamiento
Estructura Jerárquica “mono”
“mono”
“gato”
Función
“gato”
“perro”
Cada posible objeto “perro”
pertenece a una clase

49
Aprendizaje Profundo:
¿Exageración o esperanza?

Exageración: “publicidad o promoción extravagante o intensiva”

Esperanza: “expectativa de realización o éxito”

50
51
52
Sinónimos

53
Sinónimos
Aprendizaje de representación
(Representation Learning)

54
Sinónimos
Aprendizaje de representación
(Representation Learning)

Aprendizaje Profundo (Automático)


(Deep (Machine) Learning)

55
Sinónimos
Aprendizaje de representación
(Representation Learning)

Aprendizaje Profundo (Automático)


(Deep (Machine) Learning)

Redes Neuronales Profundas


(Deep Neural Networks)

56
Sinónimos
Aprendizaje de representación
(Representation Learning)

Aprendizaje Profundo (Automático)


(Deep (Machine) Learning)

Redes Neuronales Profundas


(Deep Neural Networks)
Aprendizaje Profundo no
Supervisado
(Deep Unsupervised Learning)
57
Sinónimos
Aprendizaje de representación
(Representation Learning)

Aprendizaje Profundo (Automático)


Aprendizaje (Deep (Machine) Learning)
profundo
Redes Neuronales Profundas(Deep Learning)
(Deep Neural Networks)
Aprendizaje Profundo no
Supervisado
(Deep Unsupervised Learning)
58
¿Qué es Deep Learning (DL) ?
● Un subcampo de machine learning de aprendizaje de representaciones de datos.
● Excepcionalmente efectivo en aprendizaje de patrones.
● Los algoritmos de aprendizaje profundo intentan aprender (múltiples niveles de) representación
mediante el uso de una jerarquía de múltiples capas
● Si le proporciona al sistema toneladas de información, comienza a comprenderla y a responder
de manera útil.

[Link]
¿Por qué Deep Learning (DL) es útil?
● Las características diseñadas manualmente a menudo están sobreespecificadas, incompletas y
requieren mucho tiempo para diseñarlas y validarlas y no escalables en la práctica.
● ¿Podemos aprender las características subyacentes directamente a partir de los datos?
● El aprendizaje profundo proporciona un marco de aprendizaje muy flexible (¿casi?) universal para
representar información mundial, visual y lingüística.
● Puede aprender tanto sin supervisión como supervisado
● Utiliza grandes cantidades de datos de entrenamiento
En ~ 2010, DL comenzó a superar a otras técnicas de ML
primero en habla y visión, luego en NPL
¿Por qué Deep Learning (DL) es útil?
Características de bajo Características de Características de
nivel nivel medio nivel alto

Líneas y bordes Ojos, Nariz, Orejas Estructura Facial


¿Por qué Deep Learning (DL)?
Gradiente Descendiente
Redes Neuronales aparecen hace décadas, ¿por qué el
Estocástica
resurgimiento?
Perceptron
● Pesos aprendidos I. Big Data 2. Hardware 3. Software
● Conjuntos de datos
● Graphic Processing ● Técnicas Mejoradas
grandes
Units (GPUs) ● Nuevos modelos
Backpropagation ● Colección y
● Masivamente ● Toolboxes
Almacenamiento
● Multilayer Perceptron más fácil Paralelizables
Deep Convolutional NN
● Reconocimiento de Dígitos
Hitos
2010-2012 - redes neuronales -
LeNet: reconoce códigos postales, speech-to-text y reconocimiento de
Yann Lecun, Bernhard Boser y Convolutional NNs: AlexNet: objetos
otros, lo ejecutaron en vivo en el entrenada sobre 200GB de 2016 - AlphaGo derrotó al campeón
servicio postal de Estados Unidos. Datos de ImageNet humano de Go
Reconocimiento de Dígitos Clasificación de Imágenes Aprendizaje Profundo
1989 1997 2012 2014 2016

Reconocimiento de Voz Traducción de Idiomas


Modelos secuencia a secuencia con
Recurrent Nets: LSTMs
LSTM y atención:

63
Citaciones al artículo científico
"LeNet"
• Recordemos: LeNet era una red moderna de clasificación visual que reconocía los dígitos de
los códigos postales. Sus citaciones se ven así:

• La década de 2000 fue una época dorada para el aprendizaje automático y marcó el ascenso
de los modelos gráficos. Pero no es así para las redes neuronales.

64
Citaciones al artículo científico
"LeNet"
• Recordemos: LeNet era una red moderna de clasificación visual que reconocía los dígitos de
los códigos postales. Sus citaciones se ven así:

Segunda Fase

• La década de 2000 fue una época dorada para el aprendizaje automático y marcó el ascenso
de los modelos gráficos. Pero no es así para las redes neuronales.

65
Citaciones al artículo científico
"LeNet"
• Recordemos: LeNet era una red moderna de clasificación visual que reconocía los dígitos de
los códigos postales. Sus citaciones se ven así:

Segunda Fase Invierno del Aprendizaje


Profundo

• La década de 2000 fue una época dorada para el aprendizaje automático y marcó el ascenso
de los modelos gráficos. Pero no es así para las redes neuronales.

66
Citaciones al artículo científico
"LeNet"
• Recordemos: LeNet era una red moderna de clasificación visual que reconocía los dígitos de
los códigos postales. Sus citaciones se ven así:

Segunda Fase Invierno del Aprendizaje Tercera Fase


Profundo

• La década de 2000 fue una época dorada para el aprendizaje automático y marcó el ascenso
de los modelos gráficos. Pero no es así para las redes neuronales.

67
Aprendizaje de Redes Neuronales Profundas

Yann Lecun
68
Aprendizaje de Redes Neuronales Profundas
percepciones modelado teórico
intuitivas

estudios empíricos
implementaciones
prácticas

análisis científicos
Yann Lecun
69
Fama de Deep Learning

DEEP NEURAL
NETWORKS

70
Fama de Deep Learning

71
Clasificación de Imágenes
ImageNet Large Scale Visual Recognition Challenge (ILSVRC)
1000 clases 1.4M/50k/100k imágenes

[Link]
72
Clasificación de Imágenes
ImageNet Large Scale Visual Recognition Challenge (ILSVRC)

73
Entonces, ¿qué es el aprendizaje profundo
(automático) (Deep (Machine) Learning)?
Algunas ideas diferentes:

Composición (jerárquica)
Cascada de transformaciones no lineales
Varias capas de representaciones

Aprendizaje integral
Aprendizaje de representaciones basadas en el objetivo.
Aprendizaje de extracción de características.

Representaciones distribuidas
Ninguna neurona "codifica" todo
Grupos de neuronas trabajan juntas

74
Entonces, ¿qué es el aprendizaje profundo
(automático) (Deep (Machine) Learning)?
Algunas ideas diferentes:

Composición (jerárquica)
Cascada de transformaciones no lineales
Varias capas de representaciones

Aprendizaje integral
Aprendizaje de representaciones basadas en el objetivo.
Aprendizaje de extracción de características.

Representaciones distribuidas
Ninguna neurona "codifica" todo
Grupos de neuronas trabajan juntas

75
Aprendizaje automático tradicional
Visión
características extraídas
manualmente
tu clasificador favorito
(hand-crafted) “carro”
SIFT/HOG

fijo aprendido

Voz
características extraídas
manualmente tu clasificador favorito
(hand-crafted) \ˈd ē p\
MFCC

fijo aprendido

NLP
características extraídas
Este curso es dinámico y muy manualmente tu clasificador favorito
detallado. (hand-crafted) “+”
Bag-of-words

fijo aprendido 76
Ingeniería de funciones

SIFT Spin Images

HoG Textons

77
Composición jerárquica
Visión

pixels aristas texton motifs partes objetos

Voz
muestra banda motif fonema palabra
formant
espectral

NLP
Este curso es dinámico y muy caracter palabra sujeto/ claúsula oración historia
detallado. predicado

78
Deep Learning - Composición Jerárquica

“carro”

79
Deep Learning - Composición Jerárquica

Características Características Características Clasificador “carro”


de nivel bajo de nivel medio de nivel alto entrenable

80
Feature visualization of convolutional net trained on ImageNet from [Zeiler & Fergus 2013]
Entonces, ¿qué es el aprendizaje profundo
(automático) (Deep (Machine) Learning)?
Algunas ideas diferentes:

Composición (jerárquica)
Cascada de transformaciones no lineales
Varias capas de representaciones

Aprendizaje integral
Aprendizaje de representaciones basadas en el objetivo.
Aprendizaje de extracción de características.

Representaciones distribuidas
Ninguna neurona "codifica" todo
Grupos de neuronas trabajan juntas

81
Deep Learning - Aprendizaje Integral
Una jerarquía de transformaciones de características entrenables
Cada módulo transforma su representación de entrada en una de nivel
superior.
Las funciones de alto nivel son más globales e invariables
Las funciones de bajo nivel se comparten entre categorías

Clasificador/ Clasificador/ Clasificador/


Transformador de Transformador de Transformador de
Características Características Características
entrenable entrenable entrenable

Representaciones internas aprendidas

82
Entonces, ¿qué es el aprendizaje profundo
(automático) (Deep (Machine) Learning)?
Algunas ideas diferentes:

Composición (jerárquica)
Cascada de transformaciones no lineales
Varias capas de representaciones

Aprendizaje integral
Aprendizaje de representaciones basadas en el objetivo.
Aprendizaje de extracción de características.

Representaciones distribuidas
Ninguna neurona "codifica" todo
Grupos de neuronas trabajan juntas

83
Representaciones Distribuidas (Ejemplo Básico)

Local vs Distribuido

84
Representaciones Distribuidas (Ejemplo Básico)

Local vs Distribuido

85
Representaciones Distribuidas (Ejemplo Básico)

¿Podemos interpretar cada dimensión?

86
¡El poder de las representaciones distribuidas!

Local

Distribuido

87
Perceptron
Perceptron: Forward Propagation

89
Perceptron: Forward Propagation

90
Perceptron: Forward Propagation

91
Perceptron: Forward Propagation

92
Perceptron: Forward Propagation

93
Funciones de Activación
Funciones de Activación: Importancia
Objetivo: introducir no linealidades a la red.
No linealidades necesarias para aprender representaciones complejas (no lineales) de datos;
de lo contrario, la red neuronal sería sólo una función lineal

Por ejemplo si queremos construir una


red neuronal para distinguir puntos
verdes vs rojos.
Funciones de Activación: Importancia
Objetivo: introducir no linealidades a la red.
No linealidades necesarias para aprender representaciones complejas (no lineales) de datos;
de lo contrario, la red neuronal sería sólo una función lineal

Funciones de activación
Por ejemplo si queremos construir una
lineales producen decisiones
red neuronal para distinguir puntos
lineales sin importar el
verdes vs rojos.
tamaño de la red
Funciones de Activación: Importancia
Objetivo: introducir no linealidades a la red.
No linealidades necesarias para aprender representaciones complejas (no lineales) de datos;
de lo contrario, la red neuronal sería sólo una función lineal

Funciones de activación No linealidades permiten


Por ejemplo si queremos construir una
lineales producen decisiones aproximar arbitrariamente
red neuronal para distinguir puntos
lineales sin importar el funciones complejas.
verdes vs rojos.
tamaño de la red
Perceptron: Ejemplo
Perceptron: Ejemplo
Perceptron: Ejemplo
Funciones de Activación Comunes
Función Sigmoidea Tangente Hiperbólica Rectified Linear Unit (ReLU)

101
Funciones de Activación Comunes
Función Sigmoidea Tangente Hiperbólica Rectified Linear Unit (ReLU)

[Link](z) [Link](z) [Link](z)

Todas las funciones de activación son no lineales 102


Activación: Sigmoid
Toma un número de valor real y lo "transforma"
en un rango entre 0 y 1.

+ Buena interpretación como la tasa de activación de una neurona.


0 = no dispara en absoluto
1 = dispara de forma completa
- Las neuronas sigmoides saturan y eliminan los gradientes, por lo que las redes apenas
aprenderán
• cuando la activación de la neurona es 0 o 1 (saturado)
- gradiente en estas regiones casi cero
- casi ninguna señal fluirá a sus pesos
- si los pesos iniciales son demasiado grandes, la mayoría de las neuronas se
saturarían
Activación: Tanh
Toma un número de valor real y lo
"transforma" en un rango entre -1 y 1.

● Como sigmoide, las neuronas tanh se saturan


● A diferencia del sigmoide, la salida está centrada en cero
● Tanh es un sigmoide escalado: tanh(x) = 2sigm(2x) -1
Activación: ReLU
Toma un número de valor real y lo
establece en cero.  
 

[Link]

La mayoría de las redes profundas utilizan ReLU hoy en día


Entrena mucho más rápido
• acelera la convergencia de SGD
• debido a la forma lineal, no satura
Operaciones menos costosas
• en comparación con sigmoide / tanh (exponenciales, etc.)
• implementado simplemente estableciendo el umbral de una matriz en cero
Más expresiva
Evita el problema de la desaparición del gradiente
Redes Neuronales
Red Neuronal
pesos

 
 

Funciones de activación

¿Cómo entrenamos?
  4 + 2 = 6 neuronas (sin contar las entradas)
  [3 x 4] + [4 x 2] = 20 pesos
4 + 2 = 6 biases (sesgos)
  26 parámetros aprendibles
Demo
Entrenamiento

(Forward)
Muestra de datos Reenvíelo a (Backpropagate)
Actualizar los
etiquetados través de la red, Retropropagar
pesos de la red
(lote/batch) obtenga los errores
predicciones

Optimizar (mínimo o máximo) la función objetivo/costo J(w)


Generar una señal de error que mida la diferencia entre las
predicciones y los valores objetivo.
Utilizar la señal de error para cambiar los pesos y obtener
predicciones más precisas.
Restar una fracción del gradiente lo mueve hacia el mínimo
(local) de la función de costo
Perceptron simplificado
Perceptron simplificado
Perceptron Multisalida
Porque todas las entradas están densamente conectadas a todas las salidas, estas capas son
llamadas Capas Densas

Veremos en práctica como


hacer desde 0.
Rede Neuronal Unicapa
Rede Neuronal Unicapa
Perceptron Multisalida
Red Neuronal Profunda
Aplicando una Red Neuronal
Problema Ejemplo

¿Aprobaré este curso?

Vamos a comenzar con un modelo simple de 2


variables

x1 = Número de clases asistidas


x2 = Horas invertidas en el trabajo final
Problema Ejemplo: ¿Aprobaré este curso?
Problema Ejemplo: ¿Aprobaré este curso?
Problema Ejemplo: ¿Aprobaré este curso?
Problema Ejemplo: ¿Aprobaré este curso?
Cuantificando la pérdida
La pérdida de nuestra red mide el costo incurrido por predicciones
incorrectas.
Pérdida Empírica
La pérdida empírica mide la pérdida total en todo nuestro conjunto
de datos.

También conocida como:

Función objetivo
Función de costo
Riesgo empírico
Pérdida de Entropía Cruzada Binaria (Binary
Cross Entropy Loss)
Puede ser usada con modelos que retornan una probabilidad entre 0 y 1
Pérdida: Error cuadrado Medio

Puede ser usada con modelos de regresión que retorna números reales
continuos
Entrenando Redes Neuronales
Optimización de la Pérdida
Queremos encontrar lo pesos de la red que logren la menor pérdida:

127
Optimización de la Pérdida
Queremos encontrar lo pesos de la red que logren la menor pérdida:

Recordemos que:

128
Optimización de la Pérdida

Recordemos
que la pérdida
es una función
de los pesos de
la red.

129
Optimización de la Pérdida
Aleatoriamente escogemos un valor inicial (w0,w1)

130
Optimización de la Pérdida
Calculamos la gradiente,

131
Optimización de la Pérdida
Tomamos un pequeño paso en dirección contraria a la gradiente

132
Gradiente Descendiente
Repetimos hasta convergencia

133
Gradiente Descendiente
Algoritmo:

1. Inicializar los pesos de forma aleatoria

2. Repetir hasta convergencia:

a. Calcular la gradiente:

b. Actualizar los pesos:

3. Retornar los pesos


Veremos en práctica un
ejemplo simple

134
Calculando Gradientes: Backpropagation

¿Cómo un pequeño cambio en un peso (por ejemplo W2) afecta la


pérdida final J(W)?

135
Calculando Gradientes: Backpropagation

Vamos a usar la regla de la cadena:

Notación Lagrange

136
Calculando Gradientes: Backpropagation

137
Calculando Gradientes: Backpropagation

Aplicar regla Aplicar regla


de la cadena de la cadena
138
Calculando Gradientes: Backpropagation

139
Calculando Gradientes: Backpropagation

Tenemos que repetir esto para cada peso en la red usando gradientes a partir de las últimas
capas.
140
Arquitecturas Profundas
Principales tipos de arquitecturas profundas

feed-forward

Feed-back
• Neural nets • Hierar. Sparse Coding
• Conv Nets • Deconv Nets

entrada entrada
Bi-directiona

Recurrent
• Stacked • Recurrent Neural nets
Auto-encoders • Recursive Nets
• DBM • LISTA
l

entrada
entrada

142
Optimización en la Práctica
Entrenar Redes Neuronales es difícil

"Visualizing the loss landscape of neural


nets". Dec 2017.
144
Funciones de Pérdida pueden ser difíciles de
Optimizar

Recordar: Optimización a través de


gradiente descendiente.

145
Funciones de Pérdida pueden ser difíciles de
Optimizar

Recordar: Optimización a través de


gradiente descendiente.

¿Cómo podemos especificar la


tasa de aprendizaje?
146
Especificando la tasa de Aprendizaje
Tasas de aprendizaje pequeñas convergen lentamente y se quedan
atoradas en mínimos locales falsos

Inicio aleatorio.

147
Especificando la tasa de Aprendizaje
Tasas de aprendizaje grandes se exceden, se vuelven inestables y
divergen

Inicio aleatorio.

148
Especificando la tasa de Aprendizaje
Tasas de aprendizaje estables convergen y evitan mínimos locales

Inicio aleatorio.

149
¿Cómo manejar eso?
Idea1:
Intentar diferentes tasas de aprendizaje y ver la que mejor se ajusta.

Idea2:
Hacer algo más inteligente.
Diseñar una tasa de aprendizaje adaptativo que se adapte al
panorama.

150
Tasas de Aprendizaje Adaptativos
● Las tasas de aprendizaje no son fijas.
● Pueden ser grandes o pequeñas dependiendo de:
○ Cuán grande es la gradiente
○ Cuán rápido el aprendizaje se está dando
○ El tamaño de pesos particulares
○ Etc.

151
Algoritmos de Gradiente Descendiente
● SGD (Stochastic Gradient Descent)
● Adam
● Adadelta
● Adagrad
● RMSProp

[Link].*

152
Gradiente en la Práctica
Gradiente Descendiente
Algoritmo:

1. Inicializar los pesos de forma aleatoria

2. Repetir hasta convergencia:

a. Calcular la gradiente:

b. Actualizar los pesos:

3. Retornar los pesos

154
Gradiente Descendiente
Algoritmo:

1. Inicializar los pesos de forma aleatoria

2. Repetir hasta convergencia:

a. Calcular la gradiente:

b. Actualizar los pesos:

3. Retornar los pesos


Puede ser computacionalmente
costoso
155
Gradiente Descendiente Estocástica
Algoritmo:

1. Inicializar los pesos de forma aleatoria

2. Repetir hasta convergencia:

a. Escoger sólo un dato i

b. Calcular la gradiente

c. Actualizar los pesos:

3. Retornar los pesos

156
Gradiente Descendiente Estocástica
Algoritmo:

1. Inicializar los pesos de forma aleatoria

2. Repetir hasta convergencia:

a. Escoger sólo un dato i

b. Calcular la gradiente:

c. Actualizar los pesos:

3. Retornar los pesos Fácil de calcular pero muy


ruidoso (estocástico)
157
Gradiente Descendiente Estocástica
Algoritmo:

1. Inicializar los pesos de forma aleatoria

2. Repetir hasta convergencia:

a. Escoger un lote de B puntos

b. Calcular la gradiente

c. Actualizar los pesos:

3. Retornar los pesos

158
Gradiente Descendiente Estocástica
Algoritmo:

1. Inicializar los pesos de forma aleatoria

2. Repetir hasta convergencia:

a. Escoger un lote de B puntos

b. Calcular la gradiente

c. Actualizar los pesos:

3. Retornar los pesos Rápido de calcular y una mejor


estimación de la gradiente verdadera
159
Mini-batches mientras entrenamos

Estimación de la gradiente más precisa


Convergencia más suave
Permite mayores tasas de aprendizaje

Los mini lotes conducen a un entrenamiento rápido


Puede paralelizar el cálculo + lograr aumentos de
velocidad significativos en las GPU

160
Sobreajuste en la Práctica
El problema de Sobreajuste (OverFitting)
Desajuste: el modelo no tiene la capacidad
de aprender a partir de los datos

Ajuste Ideal

Sobreajuste: demasiado complejo,


parámetros extra, no generaliza bien.

162
Regularización: ¿Qué es?

Técnica que restringe nuestro problema de optimización para


desalentar modelos complejos.

¿Por qué la necesitamos?

Para mejorar la generalización de nuestro modelo de datos no


vistos.

163
Regularización I: Dropout
Durante el entrenamiento, aleatoriamente colocar algunas
activaciones como 0.

164
Regularización I: Dropout
Durante el entrenamiento, aleatoriamente colocar algunas activaciones
como 0.
● Normalmente abandonar el 50% de las activaciones en la capa
● Obliga a la red a no depender de ningún nodo

165
Regularización I: Dropout
Durante el entrenamiento, aleatoriamente colocar algunas activaciones
como 0.
● Normalmente abandonar el 50% de las activaciones en la capa
● Obliga a la red a no depender de ningún nodo

166
Regularización II: Early Stopping
Parar el entrenamiento antes de tener la chance de un sobreajuste

167
Regularización II: Early Stopping
Parar el entrenamiento antes de tener la chance de un sobreajuste

168
Regularización II: Early Stopping
Parar el entrenamiento antes de tener la chance de un sobreajuste

169
Regularización II: Early Stopping
Parar el entrenamiento antes de tener la chance de un sobreajuste

170
Regularización II: Early Stopping
Parar el entrenamiento antes de tener la chance de un sobreajuste

171
Regularización II: Early Stopping
Parar el entrenamiento antes de tener la chance de un sobreajuste

172
Regularización II: Early Stopping
Parar el entrenamiento antes de tener la chance de un sobreajuste

173
Regularización II: Early Stopping
Parar el entrenamiento antes de tener la chance de un sobreajuste

174
Regularización II: Early Stopping
Parar el entrenamiento antes de tener la chance de un sobreajuste

175
Revisión

Matemática Entrenamiento

Práctica
Historia - Perceptron

Redes Neuronales

176
Librerías
Frameworks

178
Tensorflow

TensorFlow es una biblioteca de software de código abierto, desarrollada originalmente


por el equipo de Google Brain, para el aprendizaje automático en varios tipos de tareas.
– TensorFlow Homepage
– TensorFlow Install
– TensorFlow API

TensorFlow es una API de matemáticas de bajo nivel, similar a Numpy. Sin embargo, a
diferencia de Numpy, TensorFlow está diseñado para el aprendizaje profundo.

179
Otras herramientas
TensorFlow no es el único juego. Estas son algunas de las mejores alternativas compatibles. La
mayoría de estos están escritos en C ++.

● TensorFlow Google's deep learning API.


● MXNet Apache foundation's deep learning API. Can be used through Keras.
● Theano - Python, from the academics that created deep learning.
● Keras - Also by Google, higher level framework that allows the use of TensorFlow, MXNet
and Theano interchangeably.
● Torch - LUA based. It has been used for some of the most advanced deep learning projects
in the world.
● PaddlePaddle - Baidu's deep learning API.
● Deeplearning4J - Java based. GPU support in Java!
● Computational Network Toolkit (CNTK) - Microsoft. Support for Windows/Linux, command
line only. GPU support.
● H2O - Java based. Supports all major platforms. Limited support for computer vision. No
GPU support.

180
Keras
● Keras es una capa sobre TensorFlow que facilita mucho la creación de
redes neuronales.
● Proporciona una API de nivel superior para varias rutinas de aprendizaje
automático.
● A menos que esté investigando estructuras completamente nuevas de
redes neuronales profundas, es poco probable que necesite programar
TensorFlow directamente.
● Keras es una instalación separada de TensorFlow. Para instalar Keras,
use pip install keras (después de instalar TensorFlow).

181
FIN

También podría gustarte