Clase 1: Introducción a los Shallow Models
Supongamos el siguiente problema de clasificación binaria:
Sea \(\mathcal{y} \sim \text{Bernoulli}(p)\), es decir:
\[P(y) = \begin{cases} p, & \text{si y = 1} \\ 1-p, & \text{si y=0} \end{cases} \]
Pero Ojo 👀
¿Cómo estimamos la probabilidad \(p\) para asignar una clase?
Regresión Lineal
Una manera es utilizar una combinación lineal de features (inputs) y parámetros (pesos). Es decir:
\[\hat{y} = \theta_0 x_0 + \theta_1 x_1 + ... + \theta_n x_n\]
Pero tenemos el problema de que \(y\) puede tomar cualquier valor real (no está acotada), y necesitamos que \(p\) esté entre 0 y 1. Para ello podemos aplicar la función Logística o Sigmoide.
👍 Propiedades de la función Sigmoide
Estimación de la probabilidad
\[ p = \sigma(\hat{y}) = \sigma(\theta_0 x_1 + \theta_1 x_1 + ... + \theta_n x_n)\]
donde \(\sigma(x) = \frac{1}{1 + e^{-x}}\) es la función sigmoide.
🤓 Más definiciones
🤓 Definiciones
Finalmente, por conveniencia, podemos escribir nuestra Regresión Logísitca en notación matricial:
Una observación
\[p^{(i)} = \sigma((\bar{x}^{(i)})^T \cdot \theta)\]
Muchas Observaciones
\[\bar{p} = \sigma(X \cdot \theta)\]
Donde X es el la Matriz de Diseño/Design Matrix, que contiene todos los vectores de features. Además utilizaremos la definición inicial, en la que si \(p\ge 0.5\) entonces \(y=1\) y si \(p < 0.5\) entonces \(y=0\).
Una función que describe como mapear inputs (features) con outputs (labels) por medio de parámetros. En nuestro caso inicial diremos que \(h_\theta(X) = \sigma(X \theta)\), donde \(\sigma\) es la función sigmoide.
Una función que especifica cuanta información se pierde. Mayor pérdida implica más error de estimación.
Es el responsable de combinar la
hipótesis
y laloss function
. Corresponde a un procedimiento para determinar los parámetros de la hipótesis, minimizando la suma de las pérdidas en un set de entrenamiento.
Nuestra definición inicial de la Distribución Bernoulli puede ser rescrita de la siguiente manera:
\[P(y) = \begin{cases} p, & \text{si y = 1} \\ 1-p, & \text{si y=0} \end{cases} \]
\[P(y|X) = p^{y} (1-p)^{1-y}\]
Maximum Likelihood Estimation
Permite calcular los parámetros \(\theta\) que maximizan la probabilidad de observar los datos (que los datos se ajusten a la distribución esperada por el modelo).
\[\mathcal{L}(\theta) = \prod_{i=1}^m P(y^{(i)}|X^{(i)}) = \prod_{i=1}^m p^{y^{(i)}} (1-p)^{1-y^{(i)}}\]
Negative Log Likelihood
\[\mathcal{l}(\theta) = -\log(\mathcal{L}(\theta)) = -\sum_{i=1}^m \left(y^{(i)} \log(p^{(i)}) + (1-y^{(i)}) \log(1-p^{(i)})\right)\]
Función de Pérdida/Loss Function en notación matricial
\[L(\theta) = -\frac{1}{m}\left[y^T \log(\bar{p}) + (1-y)^T \log(1-\bar{p})\right]\]
donde \(\bar{p} = \sigma(X\theta)\) es el vector de probabilidades estimadas por el modelo.
Propiedades
Conclusión
La Función de Pérdida mide cuánta información se pierde al estimar los parámetros \(\theta\). En otras palabras, mide el error de estimación de nuestro modelo. Por lo tanto, una Loss Function más baja implica un mejor modelo.
Si minimizamos nuestra función de pérdida, entonces estamos maximizando la probabilidad de observar los datos. Por lo tanto, minimizamos el error de estimación del modelo.
A veces está ecuación aparece como la pérdida promedio (es decir, está multiplicada por \(\frac{1}{m}\)).
🤘 La parámetros óptimos del problema están dados por:
\[\underset{\theta}{argmin} = L(\theta)\]
Parámetros óptimos se encuentran con:
\[\theta = \theta - \alpha \nabla_\theta L(\theta)\]
\[ \begin{align*} \frac{\partial L*}{\partial f} &= \frac{\partial L}{\partial e} = 1 \\ \frac{\partial L*}{\partial d} &= \frac{\partial L}{\partial f} \cdot \frac{\partial f}{\partial d} = (1 - y)^T \\ \frac{\partial L*}{\partial c} &= \frac{\partial L}{\partial e} \cdot \frac{\partial e}{\partial c} = y^T \\ \frac{\partial L*}{\partial b} &= \frac{\partial L}{\partial c} \cdot \frac{\partial c}{\partial b} + \frac{\partial L}{\partial d} \cdot \frac{\partial d}{\partial b}= \frac{y^T}{b} - \frac{(1-y)^T}{1-b} \\ \frac{\partial L*}{\partial a} &= \frac{\partial L}{\partial b} \cdot \frac{\partial b}{\partial a} = \left[\frac{y^T}{b} - \frac{(1-y)^T}{1-b}\right] \cdot \sigma(a)' \\ \frac{\partial L*}{\partial \theta} &= \frac{\partial L}{\partial a} \cdot \frac{\partial a}{\partial \theta} = \left[\frac{y^T}{b} - \frac{(1-y)^T}{1-b}\right] \cdot \sigma(a)' \cdot X\\ \frac{\partial L*}{\partial \theta} &=\left[\frac{y^T (1-b) + b (1-y)^T}{b(1-b)}\right] \cdot \sigma(a)' \cdot X\\ \frac{\partial L*}{\partial \theta} &=\left[\frac{y^T - b}{b(1-b)}\right] \cdot \sigma(a)' \cdot X\\ \end{align*} \]
\[\frac{\partial L*}{\partial \theta} =\left[\frac{y^T - b}{b(1-b)}\right] \cdot \sigma(a)' \cdot X\]
Luego reemplazamos que \(b=\sigma(a)\) y \(\sigma(a)'=\sigma(a)(1-\sigma(a))\):
Obtenemos que:
\[\frac{\partial L}{\partial \theta} = \frac{1}{m}\left[\sigma(X\theta)_{m \times 1} - y^T_{1 \times m}\right]X_{m \times (n+1)}\]
😅Ojo con las dimensiones.
Debemos modificar nuestro cálculo de modo que las dimensiones sean compatibles. Luego:
\[\frac{\partial L}{\partial \theta}_{(n+1) \times 1} = \frac{1}{m} X^T_{(n+1) \times m} \cdot \left[\sigma(X\theta) - y\right]_{m \times 1}\]
Llamaremos Update Rule al Algoritmo que permite entrenar un modelo. En el caso de la Regresión Logística, el Update Rule es:
\[\theta_{n+1 \times 1} = \theta_{n+1 \times 1} - \frac{\alpha}{m} \cdot X^T_{(n+1) \times m} \cdot \left[\sigma(X\theta) - y\right]_{m \times 1}\]
🤫 Resumen
Aplicando este procedimiento es posible definir cualquier update rule de aprendizaje supervisado. Tan sólo se requiere:
Una Hipótesis: En el caso de la Regresión Logística es \(h_{\theta}(X) = \sigma(X \theta)\).
Una Loss Function: En el caso de la regresión Logística es \(L(\theta) = -\left[y^T \log(h_{\theta}) + (1-y)^T \log(1-h_\theta)\right]\)
Encontrar los gradientes de la Loss Function.
😱Entrenamiento