El objetivo de aprendizaje automático
Encontrar un mapeo $f$ de una entrada $X$ a una salida $Y$
$f:X \rightarrow Y$
Dónde $X$ y $Y$ generalmente son una idealización matemática: vector, matrix, tensor, grafo, conjunto, etc.
Y dónde el funcionamiento de $f$ dependerá de una idealización computacional
Ejemplos
- Entra una imágen y salen qué letra está presente, $x$ es una matrix RGB, $y$ es un nombre de letra
- Entra un conjunto de documentos, sale grupos de documentos, $x$ es un conjunto de vectores por documento, $Y$ es conjuntos de conjuntos de documentos
- Entra una imágen de juego blockout y sale una acción, $x$ es una matrix RGB, $y$ mover derecha o izquierda
Aprendizaje supervisado
Encontrar un mapeo $f$ de una entrada a una salida
$f:x \rightarrow y$
Usando ejemplos pasados de qué debe salir si veo cierta salida, $[(x_1,y_1),\ldots,(x_n,y_n)]$
Datasets: supervisado
- Colección de imágenes de números y los números que representan (MNIST)
- Colección de tuits y si son irónicos o no (Corpus TI)
- Colección de imágenes y los objetos que aparecens (IMAGENET)
Otros tipos
- Sin supervición
- Semi-supervisado
- Por refuerzo
Ninja de AA = Ninja en álgebra lineal
En aprendizaje automático es necesario manipular los datos matemáticamente (y pro-gramáticamente), necesitamos de herramientas matemáticas para alcanzar esto.
Vectores
Tuplas de números sacados de espacio de coordenadas real $\mathbb{R^n}$
Generalmente usamos minúsculas $x$ y $y$
Para referirnos a dimensiones específicas usamos sub-índices ${x_1,x_2,\ldots,x_n}$
$x=(x_1,x_2,x_3) \in (\mathbb{R},\mathbb{R},\mathbb{R}) \equiv \mathbb{R^n}^3$
Matrices
Arreglos rectangulares números sacados de espacio de coordenadas real $\mathbb{R}^{n\times m}$
Generalmente usamos mayúsculas $X$ y $Y$
Matrices (cont.)
$$
X =
\begin{bmatrix}
x_{11} & x_{12} & \cdots& x_{1m} \\
x_{21} & x_{22} & \cdots& x_{1m} \\
\vdots & \vdots & \ddots& \vdots \\
x_{n1} & x_{n2} & \cdots& x_{nm} \\
\end{bmatrix}
$$
Vectores (cont.)
En realidad un vector es un tipo especial de matrix $\mathbb{R}^{n\times 1}$, para un vector columna
$$ (x_1,x_2, \ldots, x_n) =
\begin{pmatrix}
x_{1}\\
x_{2}\\
\vdots\\
x_{n}\\
\end{pmatrix}
$$
Vectores (cont.)
En realidad un vector es un tipo especial de matrix $\mathbb{R}^{1\times m}$, para un vector renglón
$$ (x_1,x_2, \ldots, x_m) =
\begin{pmatrix}
x_{1} &
x_{2} &
\cdots &
x_{m}\\
\end{pmatrix}
$$
Transpuesta
La operación transpuesta nos permite cambiar entre vector columna y vector renglón
$$
\begin{pmatrix}
x_{1} &
x_{2} &
\cdots &
x_{n}\\
\end{pmatrix}
=
\begin{pmatrix}
x_{1}\\
x_{2}\\
\vdots\\
x_{n}\\
\end{pmatrix}^T
$$
Transpuesta (cont.)
$$
\begin{pmatrix}
x_{1}\\
x_{2}\\
\vdots\\
x_{m}\\
\end{pmatrix}
=
\begin{pmatrix}
x_{1} &
x_{2} &
\cdots &
x_{m}\\
\end{pmatrix}^T
$$
Operaciones con vectores
$$
\begin{matrix}
x + y & = (x_1+y_1, x_2+y_2,\ldots,x_n+y_n)\\
x - y & = (x_1-y_1, x_2-y_2,\ldots,x_n-y_n)\\
\alpha x & = (\alpha x_1, \alpha x_2, \ldots,\alpha x_n)\\
\left\lVert x \right\lVert & = \sqrt{(x_1^2, x_2^2, \ldots, x_n^2)}\\
x \cdot y & = x_1 y_1 + x_2 y_2 + \ldots + x_n y_n\\
\end{matrix}
$$
Operaciones con matrices
$$
\begin{matrix}
Z = X + Y & \Longleftrightarrow & z_{ij}=a_{ij}+b_{ij} \\
Z = XY & \Longleftrightarrow & z_{ij}=\sum_{k=1}^n a_{ik} b_{kj} \\
Z = X^T & \Longleftrightarrow & \text{de reglones a columnas}\\
\end{matrix}
$$
Otras: inversa $(XX^1=U)$, Trace $(x_{ii})$
Operaciones matrices y vectores
$$ y = Ax \Longleftrightarrow
\begin{bmatrix}
y_1 \\
y_2 \\
\vdots \\
y_n
\end{bmatrix}
=
\begin{bmatrix}
a_{11} & a_{12} & \cdots& a_{1m} \\
a_{21} & a_{22} & \cdots& a_{1m} \\
\vdots & \vdots & \ddots& \vdots \\
a_{n1} & a_{n2} & \cdots& a_{nm} \\
\end{bmatrix}
\begin{bmatrix}
x_1 \\
x_2 \\
\vdots \\
x_m
\end{bmatrix}
$$
$n\times 1 \leftrightarrow (n\times m) (m\times 1)$
Como sistema de equaciones
$$ y = Ax \Longleftrightarrow
\begin{matrix}
y_1 = &A_{11}x_1 &+A_{12}x_2 &+ \ldots &+ A_{1m}x_m\\
y_2 = &A_{21}x_1 &+A_{22}x_2 &+ \ldots &+ A_{2m}x_m\\
\vdots = &\vdots &\vdots & \ddots &\vdots \\
y_n = &A_{n1}x_1 &+A_{n2}x_2 &+ \ldots &+ A_{nm}x_m\\
\end{matrix}
$$
Modelo y datos de entrenamiento
El modelo se crea examinando patrones en los datos de entrenamiento (ejemplos) de como se comporta el mapeo.
Para nuestro ejemplo de plantas
$150$ datos $[(x_1,y_1),(x_2,y_2),\ldots,(x_n,y_n)]$
donde $x \in \mathbb{R}^2$ y $y \in {1,2,3}$
La relación
La relación verdadera entre tipo de planta ($y$) y las medidas ($x$) es:
$y = g(x) + \epsilon$
El modelo y la hipótesis
AA busca encontrar un modelo $f$ que aproxime la salida
$y = f(x)$
El espacio de hipótesis
$\mathbb{H} = {(a,b,a+w,b+h), \forall (a,b,w,h) \in \mathbb{R}^4}$
Es el espacio de todos los posibles 4 valores que nos ayudan a identificar uno de las plantas
Aprender este modelo significa, buscar el mejor rectángulo (hipótesis)
Resumen hasta ahora
Tenemos datos $\boldsymbol{X,Y}$ de entrenamiento
Definimos un modelo $(a,b,w,h) \in \mathbb{R}^4$ que depende de $4$ parámetros
Un algoritmo de AA busca identificar $(a',b',w',h')$ que mejor se ajusta a los datos de entrenamiento
Entre datos de entrenamiento y modelo debe haber el menor error posible
Resumen hasta ahora
Datos de entrenamiento vienen del pasado
Modelo viene de un espacio de hipótesis
El mejor modelo depende de los datos, el pasado
Error del modelo relaciona modelo con datos
El modelo se lo aplicamos a nuevos datos en el futuro
Midiendo error
Una función de error mide que tanto se desvían las salidas de nuestro modelo de las reales $E(f(\boldsymbol{X}),Y)$
La forma sencilla es calcular un error por ejemplo $E(f(x_i),y_i)$, sumar todas
$$E(f(\boldsymbol{X}),Y)=\sum_{i=i}^{n}E(f(x_i),y_i)$$
Midiendo error
Una función de error mide que tanto se desvían las salidas de nuestro modelo de las reales $E(f(\boldsymbol{X}),Y)$
La forma sencilla es calcular un error por ejemplo $E(f(x_i),y_i)$, sumar todas
$$E(f(\boldsymbol{X}),Y)=\sum_{i=i}^{n}E(f(x_i),y_i)$$
$$
\begin{matrix}
\text{Error cuadrado} & E(f(x_i),y_i) = & (f(x_i)-y_i)^2 \\
\text{Error absoluto} & E(f(x_i),y_i) = & f(x_i)-y_i \\
\text{Error cero-uno} & E(f(x_i),y_i) = & if\ f(x_i)=y: 0, otherwise\ 1 \\
\end{matrix}
$$
El uso del error
Cada hipótesis $\mathbb{H}$ puede ser evaluada con los datos de entrenamiento, y así buscar los siguientes parámetros óptimos
A los parámetros los definimos como $\theta$ y el modelo $f$ depende de estos, es decir $f_\theta$
La metodología completa
$$\mathop{\textrm{argmin}}_\theta \sum_{i=i}^{n}E(f_\theta(x_i),y_i)$$
Este es el problema de representación
$$f_\theta(x_i)$$
Este es el problema de evaluación
$$E(f_\theta(x_i),y_i)$$
Este es el problema de optimización
$$\mathop{\textrm{argmin}}_\theta \sum_{i=i}^{n}E(f_\theta(x_i),y_i)$$
De nuevo toda la metodología
$$\mathop{\textrm{argmin}}_\theta \sum_{i=i}^{n}E(f_\theta(x_i),y_i)$$