Uploaded by Nicolás Vazquez

Deep Learning Notas

advertisement
Notas en Deep Learning
2021
Nicolás Vazquez
Para el curso de Datitos
Índice
1. Introducción
2
2. Redes neuronales lineales
2.1. Regresión lineal . . . . . . . . . . . . . . . . . . . .
2.1.1. Elementos básicos de la regresión lineal . .
2.1.2. Función de pérdida . . . . . . . . . . . . . .
2.1.3. Descenso del gradiente estocástico por lotes
2.1.4. De la regresión lineal a las redes profundas
2.2. Regresión Softmax . . . . . . . . . . . . . . . . . .
2.2.1. Función de pérdida . . . . . . . . . . . . . .
.
.
.
.
.
.
.
3
3
3
3
4
4
5
5
3. Perceptrones Multicapa
3.1. Capas ocultas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1. De Lineal a No Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2. Funciones de activación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
6
6
7
4. Apéndice
9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Última revisión : 16/04/2021
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Álgebra Lineal
1.
Introducción
Para escribir después ...
2
Álgebra Lineal
2.
Redes neuronales lineales
2.1.
Regresión lineal
La regresión es el conjunto de métodos para modelar la relación entre una o más variables independientes y
una variable dependiente. El fin de la regresión, usualmente, es caracterizar la relación entre las entradas y las
salidas. El machine learning, por otro lado, está mas relacionado con la predicción.
Los problemas de regresión aparecen cuando lo que queremos es predecir un valor numérico.
2.1.1.
Elementos básicos de la regresión lineal
La regresión lineal surge a partir de unas pocas asunciones simples. Primero, asumimos que la relación entre
las variables independientes x y la dependiente y es lineal, por lo que y puede ser expresada como una suma
pesada de los elementos en x, dado algún ruido en las observaciones. Segundo, asumimos que el ruido sigue una
distribución gaussiana.
Dado un dataset, nuestro objetivo es elegir los pesos w y los bias b (offset u ordenada al origen) tales que en
promedio, las predicciones hechas por nuestro modelo fiteen lo mejor posible los precios reales observados en los
datos. Cuando nuestros inputs consisten en d features (o características), denotamos nuestra predicción ŷ como
ŷ = w1 x1 + · · · + wd xd + b ≡ wT x + b
(2.1.1)
Muchas veces va a ser conveniente referirse a las features del dataset de n ejemplos mediente una matriz de
diseño X ∈ Rn×d , donde X contiene una fila por ejemplo y una columna por feature. Entonces lo expresamos en
el producto matriz-vector
ŷ = Xw + b,
(2.1.2)
aplicando donde corresponde broadcasting para la suma.
Es razonable esperar que las features X y labels y sufran una pequeña carga de error de medición. Es por eso
que para tener en cuenta estos errores, incorporamos un término que represente el ruido.
Antes de seguir buscando los mejores parámetros del modelo w y b, necesitamos dos cosas más:
1. Una medida de la calidad para un modelo dado;
2. Un procedimiento para actualizar el modelo y mejorar su calidad.
2.1.2.
Función de pérdida
Necesitamos determinar una forma de cuantificar qué tan bien está fiteando nuestro modelo sobre los datos.
Esto lo hace la función de pérdida, la cual cuantifica la distancia entre el valor real y el predicho. La pérdida
usualmente es un número no negativo donde los valores pequeños son mejores valores, y una pérdida de cero
indica predicciones perfectas. Cuando nuestra predicción para un ejemplo i es ŷ(i) , el error cuadrático viene dado
por
l(i) (w, b) =
2
1 (i)
ŷ − y (i) .
2
(2.1.3)
Consideremos el ejemplo de la figura 2.1.1, en la que ploteamos un problema de regresión unidimensional
Figura 2.1.1: Fiteo con modelo lineal.
3
Álgebra Lineal
2.1
Regresión lineal
Para medir la calidad de un modelo en el dataset de n ejemplos, promediamos las pérdidas en el set de
entrenamiento.
n
L(w, b) =
n
2
1 X (i)
1 X 1 > (i)
w x + b − y (i) .
l (w, b) =
n i=1
n i=1 2
(2.1.4)
Cuando entrenamos, buscamos los parámetros w∗ , b∗ que minimizan la pérdida.
Para el caso lineal, existe una solución analítica para el problema1 , dada por
w∗ = (X> X)−1 X> y.
Sin embargo, para un caso general (regresiones no lineales), no podremos valernos de soluciones analíticas,
por lo que se recurre a métodos numéricos.
2.1.3.
Descenso del gradiente estocástico por lotes
Aún en estos casos donde no tenemos solución analítica, podemos entrenar modelos en la práctica. La técnica
para optimizar casi cualquier modelo de deep learning consiste en reducir iterativamente el error al actualizar los
parámetros en la dirección que disminuye (incrementalmente) la función de pérdida. Este algoritmo es conocido
como descenso del gradiente.
Una aplicación naive de este algoritmo consiste en tomar la derivada de la función de pérdida, que es el
promedio de las pérdidas computadas para cada ejemplo en el dataset. Esto es muy lento, asique preferimos
tomar un pequeño sample aleatorio del conjunto cada vez que necesitamos computar el update. Esta variante es
el descenso por gradiente estocástico en lotes.
En cada iteración, sampleamos aleatoriamente un minibatch B con un número fijo de ejemplos de entrenamiento. Computamos la derivada de la pérdida promedio del minibatch respecto de los parámetros del modelo.
Finalmente, multiplicamos el gradiente por un valor predeterminado positivo η y restamos el término resultante
de los valores de los parámetros actuales. Matemáticamente,
(w, b) ← (w, b) −
η X
∂(w,b) l(i) (w, b).
|B|
(2.1.5)
i∈B
Resumiendo los pasos:
1. Inicializamos los valores de los parámetros del modelo, típicamente de manera aleatoria,
2. Iterativamente sampleamos minibatches aleatorios desde los datos, actualizando los parámetros en la dirección del gradiente negativo. Para pérdidas cuadráticas y transformaciones afines, podemos escribir esto
así:
η X
η X (i) > (i)
∂w l(i) (w, b) = w −
x
w x + b − y (i) ,
|B|
|B|
i∈B
i∈B
η X (i)
η X > (i)
b←b−
∂b l (w, b) = b −
w x + b − y (i) .
|B|
|B|
w←w−
i∈B
(2.1.6)
i∈B
La cardinalidad |B| es el batch size, que representa el número de ejemplos en cada minibatch, y η es el
learning rate. Este tipo de parámetros que son ajustables pero no actualizados en el modelo son los llamados
hiperparámetros.
Después de entrenar por algún número de iteraciones ( o algún otro criterio), guardamos los parámetros
estimados del modelo, denotados aquí ŵ, b̂.
2.1.4.
De la regresión lineal a las redes profundas
Podemos ilustrar en un diagrama lo que ocurre en los modelos. Podemos diagramar nuestro modelo de
regresión lineal como una red neuronal.
1 Ver
detalles en la sección 3.1.1.3
4
Álgebra Lineal
2.2
Regresión Softmax
Figura 2.1.2: La regresión lineal como una red neuronal de una única capa
Para la red mostrada en la figura 2.1.2, los inputs son x1 . . . , xd . La dimensión de la capa de inputs por lo
tanto es d. La salida de la red es o1 , por lo que el número de outputs es 1.
2.2.
Regresión Softmax
La regresión es la herramienta adecuada para respuestas de tipo cuantitativo. Otro tipo de problema de interés
es el relacionado con la clasificación.
El approach que vamos a tomar es el de interpretar los outputs del modelo como probabilidades.
Formalmente, nos gustaría que los outputs yˆj sean interpretados como la probabilidad de que un ítem dado
pertenezca a la clase j. Entonces podemos elegir la clase de acuerdo a nuestra predicción argmaxj yj .
Para permitir esta interpretación, debemos garantizar que (incluso para datos que no sean del dataset), que
los outputs serán negativos y que la suma sea igual a 1.
La función softmax es la que viene bien para eso. Para cumplir con los axiomas de probabilidad, y además el
modelo siga siendo diferenciable, lo que hacemos es exponenciar cada salida, para luego dividir por la suma:
exp(oj )
.
ŷ = softmax(o) donde ŷj = P
k exp(ok )
(2.2.1)
Aunque softmax es una función no lineal, sus salidas aún están determinadas por una función afín de las
entradas, por lo tanto es un modelo lineal.2
2.2.1.
Función de pérdida
Supongamos que el dataset {X, Y} tiene n ejemplos, donde el ejemplo i consiste en un vector de features x(i)
y un one-hot label vector y(i) . Podemos comparar los estimados con la realidad comparando qué tan probables
son las clases verdaders de acuerdo a nuestro modelo, dadas las features:
P (Y | X) =
n
Y
P (y(i) | x(i) ).
(2.2.2)
i=1
Maximizar esta función es equivalente a maximizar el logaritmo negativo:
− log P (Y | X) =
n
X
− log P (y(i) | x(i) ) =
i=1
n
X
l(y(i) , ŷ(i) ),
(2.2.3)
i=1
donde para cada label y con predicción ŷ sobre q clases, la función de pérdida es
l(y, ŷ) = −
q
X
yj log ŷj .
j=1
Esta función es conocida como la pérdida por entropía cruzada.
2 Consultar
acá!
5
(2.2.4)
Álgebra Lineal
3.
Perceptrones Multicapa
Vamos a introducir las redes neuronales reales. Las mas sencillas son las llamadas perceptrones multicapa, y
consisten en múltiples capas de neuronas totalmente conectadas a la capa anterior y posterior.
3.1.
Capas ocultas
Ya hemos descrito anteriormente la transformación afín, que es una transformación linear con un bias. Sin
embargo, la hipótesis de linealidad en las transformaciones afines es a veces una hopótesis muy fuerte, y puede
fallar.
Las limitaciones de los modelos lineales pueden manejarse con una clase mas general de funciones, incorporando una o mas capas ocultas. La forma más sencilla de hacer esto es acumular varias capas totalmente conectadas
una encima de otra. Cada capa alimenta a su superior, y la final es nuestro predictor lineal. La arquitectura
de este tipo es llamada perceptrón multicapa, abreviada muchas veces MLP. En la figura 3.1.1 mostramos un
diagrama.
Figura 3.1.1: Una MLP con una capa oculta de 5 unidades ocultas.
Esta red tiene 4 inputs, 3 outputs, y su capa oculta contiene 5 unidades ocultas. El número de capas de esta
MLP es 2, ya que hay cálculos implementados en la capa oculta y en el output.
3.1.1.
De Lineal a No Lineal
Como antes, la matriz X ∈ Rn×d denota un minibatch de n ejemplos donde cada uno tiene d features. Para
una capa oculta de MLP de h unidades ocultas, denotamos H ∈ Rn×h las salidas de la capa oculta. Dado que la
capa oculta y la de outputs están totalmente conectadas, tenemos pesos ocultos W(1) ∈ Rd×h y bias b(1) ∈ R1×h ,
y pesos en la capa de outputs W(2) ∈ Rh×q con bias b(2) ∈ R1×q . Formalmente, calculamos los outputs O ∈ Rn×q
de la capa oculta como
H = XW(1) + b(1) ,
O = HW(2) + b(2) .
(3.1.1)
Notemos que al añadir la capa oculta, nuestro modelo requiere que llevemos registro (y actualicemos) nuevos
parámetros. Qué hemos ganado ? Nada! Una función afín de una función afín es en sí misma otra función afín.
Podríamos colapsar la capa oculta, y notar que es equivalente a una red neuronal lineal.
Para aprovechar el potencial de las arquitecturas multicapa, necesitamos un ingrediente extra: una función
de activación no lineal σ que se aplique a cada unidad oculta. Los outputs de las funciones de activación σ(·)
son llamados activaciones. En general, con estas funciones colocadas, ya no será posible colapsar la MLP en un
modelo lineal.
Aproximadores universales
Es conocido que las MLP son aproximadores universales, es decir son capaces de modelar cualquier función,
y pueden expresar cualquier programa computable.
6
Álgebra Lineal
3.1.2.
3.1
Capas ocultas
Funciones de activación
Las funciones de activación deciden si una neurona debería ser activada o no. Son operadores diferenciables,
y en su mayoría son no lineales. Hagamos un paso por las funciones de activación mas comunes.
Función ReLU: Elección popular por su simplicidad y su buena performance, su nombre viene de rectified
linear unit. Dado un elemento x, la función es definida como el máximo entre ese elemento y cero. Podemos
ver en la gráfica 3.1.2 que es una función lineal por partes.
ReLU(x) = máx(x, 0).
(3.1.2)
Figura 3.1.2: ReLU(x)
Sigmoide:
La función sigmoide transforma el conjunto de los reales en un valor que vive en (0, 1). Está definida por
sigmoid(x) =
Su gráfica está en la figura 3.1.3.
7
1
.
1 + exp(−x)
(3.1.3)
Álgebra Lineal
3.1
Capas ocultas
Figura 3.1.3: sigmoid(x)
Tangente hiperbólica : Igual que la sigmoide, mapea los números reales dentro de un intervalo acotado,
(−1, 1).
Figura 3.1.4: La tangente hiperbólica.
8
Álgebra Lineal
4.
Apéndice
9
Download