Implementando ojos a tu chatbot

Cuando el mundo virtual te vigila...

Albert Manuel Orozco Camacho
@alorozco53
Facultad de Ciencias - IIMAS, UNAM

2do. Meetup de Bots LATAM

Temas de la charla

  • Motivación - problema de reconocimiento de imágenes
  • Aprendizaje automático
  • Aprendizaje profundo
    • Redes neuronales
    • El perceptrón multicapa
    • Inspiración basada en el ojo humano
  • Redes neuronales convolucionales
    • Capas
    • Arquitecturas más populares
    • Puntos de referencia
  • Código

¿Cómo es que sabemos que hay un perro en la imagen?


Patrones en imágenes


Algunas técnicas básicas

  • Comparación de plantillas
  • Modelos estructurales
  • Métodos estadísticos → $P(info | característica\ de\ imagen)$
  • Modelos de similitud difusos (fuzzy)
  • Clasificador k-NN
$\downarrow$
  • Un modelo híbrido: Redes neuronales convolucionales

Objetivo de la mayoría del software:

ENTRADA: $\vec{x}$
$\downarrow$
ALGORITMO: $z = h(\vec{x})$
$\downarrow$
SALIDA: $z$

El programador diseña un programa que calcule $z$ en su mente y prueba casos de uso.

Aprendizaje automático

(Supervisado)

ENTRADA: $\vec{x}$
$\downarrow$
ALGORITMO: $\hat{z} = h(\vec{x}, \vec{\theta})$
$\updownarrow \mathcal{D}$
Entrenamiento: $J(\vec{\theta}; \vec{x}, \vec{y})$
$\downarrow$
SALIDA: $\hat{z} \approx z$

Conjunto de datos: $\mathcal{D}\{(x_1, y_1),\ldots,(x_n, y_n)\}$

Redes neuronales

Tomado de http://www.asimovinstitute.org/neural-network-zoo/

Perceptrón multicapa

Aprendizaje profundo

(Deep Learning)

  • El crecimiento exponencial en la capacidad de cómputo dio pie a un incremento en popularidad de arquitecturas de gran complejidad.
  • La correctud de los modelos profundos dependen (casi) únicamente de la existencia de conjuntos de datos de gran tamaño.
  • Revolución en la manera de resolver problemas:
    ¡Algoritmos que aproximan algoritmos mediante métodos de optimización!

Modelo de visión humana

Redes neuronales convolucionales

(CNN's, ConvNets)

  • Desarrolladas principalmente por Yann LeCun (actual dirección de Facebook AI Research) a finales de los 80's.
  • Una de las principales arguitecturas que explota el poder de la profundidad en redes neuronales.
  • Utiliza combinaciones de cuatro capas: CONV, RELU, POOL y FC=Perceptrón

Capa convolucional

"Capa" de activación ReLU

Capa de reducción de muestreo

(Pooling)

Arquitectura general

$$INPUT \to [[CONV \to RELU]\{N\} \to POOL?]\{M\} \to [FC \to RELU]\{K\} \to FC$$

  • $N \leq 3$
  • $M \geq 0$
  • $K \geq 0$

Algunos modelos famosos

VGG16
LeNet
AlexNet
Inception

¿Cómo sé que mi modelo haya convergido satisfactoriamente?

Hands on!!