El blog de Machine Learning

 

Inteligencia Artificial y Matemáticas. Parte II: Ejemplo Ilustrativo

robot

El presente artículo corresponde a la parte 2 del tema “Inteligencia Artificial y Matemáticas”. Para su comprensión recomiendo revisar previamente la primera parte.

En el artículo anterior ilustré el modelo neuronal con  una capa de entrada, una serie de capas ocultas (hidden layers) y una capa de salida (output layer).

Cómo alimentar el modelo con una entidad clasificable y cómo interpretar la información de salida?

Asumamos que contamos con un modelo entrenado para reconocer imágenes de gatos y que deseamos utilizar dicho modelo para clasificar la imagen de la figura 1 como gato o no gato.

 

cat

 

Figura 1: 

 

Imagen “gato1.jpg”

 

La figura 1 tiene varias características:

  1. Es una imagen digital pequeña de 30x30 pixeles
  2. Es una imagen con formato .jpg, lo cual quiere decir que cada pixel en la imagen tiene tres componentes o capas de color,  Rojo, Verde y Azul (RGB).
  3. Cada color está representado por un valor entre 0 y 255,  0 para ausencia de pigmento y 255 para  100% de pigmento.

De acuerdo a lo anterior, la información bit a bit de la imagen puede visualizarse así:

 

cat

 

Figura 2. Información digital del archivo “gato1.jpg”. 

 

Para efectos ilustrativos, la imagen se ha reducido a 5X5 pixeles.

 

 

Como se puede apreciar, el primer pixel (superior a la izquierda) tiene tres capas (255, 238, 44), correspondiente a los valores de composición Rojo, Verde y Azul respectivamente.

Luego, si la imagen tiene  30x30 pixeles,  el tamaño de archivo será de (30 X 30 X 3 = 2,700 bytes) un byte por pixel por capa.

Para utilizar esta  imagen en el modelo, es necesario “Vectorizar” previamente la información, esto es, convertir el arreglo original (30X30X3) a un vector columna  (2700X1). Ver Figura 3.

 

cat
 

Figura 3. Información digital vectorizada del archivo “gato1.jpg”.

 

 

Los 2,700 bytes obtenidos corresponden a la capa de entrada del modelo (Input ayer), ver figura 4.

 

neural ne twork cat

 

Figura 4. Información  de la capa de entrada (Input Layer). Contrastar  los valores indicados con la información contenida en las figuras 1 y 2.

 

 

 

El número de parámetros entre capas de nodos está definido como el producto de nodos de las dos capas a unir. Así, para unir todos los nodos de la capa de entrada con la primera capa oculta se requieren 6 X 2,700 = 16,200 parámetros, y así sucesivamente.

En virtud de ser estrictos, ni la figura 4 ni la teoría explicada incluyen algunos parámetros adicionales por capa, los cuales especifican los “bias” o umbrales del modelo. Se omiten solo con propósitos de explicación general del funcionamiento de clasificación.

Con la capa de entrada alimentada y con los parámetros previamente definidos, es posible entonces calcular primero los valores de Hidden Layer 1,  luego del Hidden Layer 2 y finalmente del Output Layer, una operación conocida como “Forward Propagation”.

Ahora bien, la capa de salida cuenta con un solo nodo (figura 4).  Este nodo representa la salida general del modelo, un único valor que debe representar la clasificación obtenida.

Una vez calculado su valor es necesario transformar el mismo en un valor entre cero y uno, mediante un tratamiento matemático llamado “Función de activación”.

El convertir la salida a un valor entre cero y uno implica que dicho valor se transforme en una probabilidad, si mayor a 0,5 indicando que la imagen ha sido clasificada como “Gato”, si menor o igual a 0.5 como “No Gato”.

La frontera  de clasificación es subjetiva, y en algunos casos puede correrse hacia valores superiores a 0.5, en otros a valores inferiores.

Imaginemos que los que se está clasificando no son imágenes de gatos sino imágenes de tumores de piel, en clasificaciones maligno-benigno.

En este caso, un falso positivo, clasificar una imagen como tumor maligno siendo en realidad tumor benigno tiene implicaciones demasiado  fuertes para el paciente, de manera que se pueda decidir especificar la frontera hacia 0,6 o similar.

Cuántas capas ocultas debe tener  el modelo? Cuántos nodos en cada capa?  Esto es algo que debe definir el Data Scientist. En general, cuatro a seis capas ocultas, 200 a 300 nodos por capa es común para obtener resultados con probabilidad de error inferiores al 5% en la clasificación.

Varios conceptos deben estar claros en este momento de la lectura:

  1. El modelo se comporta como “Una función de funciones”, con una entrada (la imagen)  y una salida, la clasificación.
  2. Cada modelo tiene un set de parámetros característico, el cual conforma la “huella digital del modelo”. Así, un modelo clasificador de gatos tendrá un conjunto de parámetros  diferente a un modelo clasificador de tumores.
  3. La información está distribuída a travez de todo el modelo, y no localizada en un sitio específico.
  4. Aprendizaje significa obtener la huella digital que caracteriza el modelo. Clasificación significa utilizar dicha huella para identificar una imagen.

 

En qué consiste  el entrenamiento ?

En general,  el modelo se entrena con imágenes cuya clasificación se conoce, y se parte de un conjunto de parámetros seleccionados al azar. Basado en el resultado de clasificación del conjunto de “Imágenes de entrenamiento”,  training Set, es posible calcular el error de clasificación. Con este error se alimenta un algoritmo que recalcula los parámetros a unos nuevos valores, Back Propagation, de manera que en una segunda corrida se obtenga una mejor aproximación (menor error) de clasificación.

Esta operación se repite 10,000 o mas veces hasta obtener un margen de error adecuado.

Una vez entrenado el modelo, se puede probar la calidad de su huella con imágenes de prueba, Test Set. De esta manera, si todo sale bien, se cuenta con un modelo convenientemente entrenado.

 

Y qué tiene que ver todo esto de aprendizaje de máquina con la naturaleza, objeto central de mis blogs?

Entender el funcionamiento de las redes neuronales nos permite abordar desde una nueva óptica temas inherentes a la vida misma:

  1.  Que tan artificial es la inteligencia artificial?
  2. Será posible que el cerebro opere de manera similar?
  3. Podrá un recuerdo estar distribuido en un conjunto de sinapsis neuronales?
  4. Pueden los organismos y los ecosistemas ser modelados mediante redes neuronales?
  5. Pueden las redes Neuronales generar una medida de la complejidad de los ecosistemas?
  6. Donde puede residir la memoria en nuestro cerebro, y mas importante, qué puede ser la memoria?
  7. Cómo se puede entender la conciencia? Qué pueden ser los recuerdos?

Con el próximo artículo, último del tema, espero dejar planteadas estas inquietudes, no las respuestas, en la red neuronal de sus cerebros.

 

    Inteligencia Artificial
    Back propagation
    Aprendizaje profundo
    Redes neuronales