De vectores, matrices y modelos







Ivan Meza

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} $$

    Manos a la obra

    Iris dataset, R.A. Fisher

    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)$

    Espacio de hipótesis

    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)$$
    Licencia de Creative Commons
    De vectores y matrices by Ivan V. Meza Ruiz is licensed under a Creative Commons Reconocimiento 4.0 Internacional License.
    Creado a partir de la obra en http://turing.iimas.unam.mx/~ivanvladimir/slides/rpyaa/01_lineal_algebra.html.