Perspectivas

Parte 2: Técnicas de Inteligencia Artificial Explicadas

Acercamiento a las técnicas fundamentales de IA

Guido Diepen, Titus Sloet tot Everlo & Hicham el Bouazzaoui – Abril 2017 – Deloitte

Habiendo aclarado ahora el concepto de IA en:

  • Parte 1: Inteligencia Artificial Definida, la terminología más utilizada en torno a la IA

Ahora discutamos algunas técnicas fundamentales de IA: Heurística, Máquinas vectoriales de Soporte, Redes Neuronales, Proceso de Decisión de Markov y Procesamiento del Lenguaje Natural.

1. Heurística

Supongamos que tenemos monedas con las siguientes denominaciones: cinco centavos, cuatro centavos, tres centavos y un centavo, y que necesitamos determinar el número mínimo de monedas para crear la cantidad de siete centavos. Para resolver este problema podemos utilizar una técnica llamada "Heurística".

Webster (1) define el término Heurística como "involucrar o servir como una ayuda para el aprendizaje, el descubrimiento o la resolución de problemas mediante métodos experimentales y especialmente de ensayo y error". En la práctica, esto significa que cada vez que los problemas se vuelven demasiado complejos para encontrar la mejor solución garantizada utilizando métodos exactos, la Heurística sirve para emplear un método práctico para encontrar una solución que no está garantizada para ser óptima, pero que sea suficiente para los objetivos inmediatos.

Para algunos problemas, se puede diseñar heurística a medida que explote la estructura dentro del problema. Un ejemplo de una heurística tan personalizada sería una heurística codiciosa para el problema mencionado antes, que cambia de moneda. Hablamos de una heurística codiciosa cuando siempre elegimos la denominación más grande posible y repetimos esto hasta que lleguemos al valor deseado de siete. En nuestro ejemplo, eso significa que empezaríamos por seleccionar una moneda de cinco centavos.

Para los dos centavos restantes, la denominación más grande que podemos elegir es de un centavo, dejándonos con la situación en la que todavía tenemos que cubrir un centavo para el que de nuevo usamos un centavo.

Por lo tanto, nuestra heurística nos da una solución de tres monedas (cinco, una, una) para llegar al valor de siete centavos. Por supuesto, existe otra solución, mejor, de sólo dos monedas, utilizando las monedas de tres y cuatro centavos. Si bien la heurística codiciosa para el problema del cambio de monedas no proporciona la mejor solución para este caso en particular, en la mayoría de los casos resultará en una solución que sea aceptable.

Además de esta heurística adaptada para problemas específicos, también existen ciertas heurísticas genéricas. Al igual que las redes neuronales, algunas de estas heurísticas genéricas se basan en procesos en la naturaleza. Dos ejemplos de esta heurística genérica son Optimización de Colonias de hormigas (2) y algoritmos genéticos (3). La primera se basa en cómo las hormigas simples son capaces de trabajar juntas para resolver problemas complejos; este último se basa en el principio de supervivencia del más apto.

Un problema típico en el que la heurística se aplica para encontrar soluciones aceptables rápidamente es el enrutamiento de vehículos, donde el objetivo es encontrar rutas para uno o más vehículos que visitan una serie de ubicaciones.

2. Máquinas Vectoriales de Soporte

La pregunta de si un correo electrónico es spam o no es un ejemplo de un problema de clasificación. En estos tipos de problemas, el objetivo es determinar si un punto de datos determinado pertenece a una clase determinada o no. Después de entrenar primero un modelo clasificador en puntos de datos para los que se conoce la clase (por ejemplo, un conjunto de correos electrónicos etiquetados como spam o no spam), puede utilizar el modelo para determinar la clase de nuevos puntos de datos no vistos. Una técnica poderosa para este tipo de problemas es Apoyar Máquinas Vectoriales (4) (MV).

La idea principal detrás de MVS es que intenta encontrar la línea de límite que separa las dos clases, pero de tal manera que la línea de límite crea una separación máxima entre las clases. Para demostrar esto, utilizaremos los siguientes datos simples para nuestro problema de clasificación:

En este ejemplo, los círculos verdes y los cuadrados azules podrían representar dos segmentos diferentes en un conjunto total de clientes (por ejemplo, altos potenciales y bajos potenciales), basados en todo tipo de propiedades para cada uno de los clientes. Cualquier línea que mantenga los círculos verdes a la izquierda y los cuadrados azules a la derecha se considera una línea de límite válida para el problema de clasificación. Hay un número infinito de tales líneas que se pueden dibujar. A continuación, se presentan cuatro ejemplos diferentes.

Como se indicó anteriormente, las MVS le ayudan a encontrar la línea de límite que maximiza la separación entre las dos clases. En el ejemplo proporcionado, esto se puede dibujar de la siguiente manera:

Las dos líneas punteadas son las dos líneas de separación paralelas con el espacio más grande entre ellas. El límite de clasificación real que se utiliza será la línea sólida exactamente en el centro de las dos líneas punteadas.

El nombre Máquinas Vectoriales de Soporte, proviene de los puntos de datos que están directamente en cualquiera de estas líneas. Estos son los vectores de soporte. En nuestro ejemplo, había tres vectores de soporte.

Si alguno de los otros puntos de datos (es decir, no es un vector de soporte) se mueve un poco, las líneas de límite punteadas no se ven afectadas. Sin embargo, si la posición de cualquiera de los vectores de soporte cambia ligeramente (por ejemplo, el punto de datos 1 se mueve ligeramente hacia la izquierda), la posición de las líneas de contorno punteadas cambiará y, por lo tanto, la posición de la línea de clasificación sólida también cambia.

En la vida real, los datos no son tan sencillos como en este ejemplo simplificado. Normalmente trabajamos con más de dos dimensiones. Además de tener líneas de separación rectas, las matemáticas subyacentes para una Máquina Vectorial de Soporte también permiten ciertos tipos de cálculos o núcleos que dan como resultado líneas de límite que no son lineales.

Los modelos de clasificación de MVS también se pueden encontrar en el reconocimiento de imágenes, por ejemplo, el reconocimiento facial o cuando la escritura a mano se convierte en texto.

3. Redes Neuronales Artificiales

Los animales son capaces de procesar (visual u otra) información de su entorno y adaptarse al cambio. Utilizan su sistema nervioso para realizar tal comportamiento. Su sistema nervioso puede ser modelado y simulado y debe ser posible (re)producir un comportamiento similar en sistemas artificiales. Las redes neuronales artificiales (RNA) se pueden describir como dispositivos de procesamiento que se modelan libremente según la estructura neuronal de un cerebro. La mayor diferencia entre los dos es que la RNA podría tener cientos o miles de neuronas, mientras que la estructura neuronal de un cerebro humano o animal tiene miles de millones.

Figura 1: Representación gráfica de una neurona biológica (izquierda) y una neurona artificial (derecha)

El principio básico de una estructura neuronal es que cada neurona está conectada con una cierta fuerza a otras neuronas. Sobre la base de las entradas tomadas de la salida de otras neuronas (considerando también la fuerza de conexión) se genera una salida que se puede utilizar de nuevo como entrada por otras neuronas, ver Figura 1 (izquierda). Esta idea básica se ha traducido en una red neuronal artificial mediante el uso de pesos para indicar la fuerza de la conexión entre las neuronas. Además, cada neurona tomará la salida de las neuronas conectadas como entrada y utilizará una función matemática para determinar su salida. Esta salida es entonces utilizada por otras neuronas de nuevo.

Mientras que el aprendizaje consiste en fortalecer o debilitar los enlaces entre diferentes neuronas en el cerebro biológico, en el aprendizaje las RNA consisten en cambiar el peso entre las neuronas. Al proporcionar a la red neuronal un gran conjunto de datos de entrenamiento con características conocidas, los mejores pesos entre las neuronas artificiales (es decir, la fuerza del enlace) se pueden calcular con el fin de asegurarse de que la red neuronal reconoce mejor las características.

Las neuronas de las RNA se pueden estructurar en varias capas (5). La Figura 2 muestra un esquema ilustrativo de tales capas. Esta red consta de una capa de entrada, donde todas las entradas se reciben, procesan y convierten en salidas en las siguientes capas. Las capas ocultas consisten en una o más capas de neuronas que pasan a través de entradas y salidas. Por último, la capa de salida recibe las entradas de la última capa oculta y la convierte en la salida para el usuario.

Figura 2: Esquema de una RNA conectada

La Figura 2 muestra un ejemplo de una red en la que todas las neuronas de una capa están conectadas a todas las neuronas de la siguiente capa. Dicha red se denomina totalmente conectada. Dependiendo del tipo de problema que desee resolver, hay diferentes patrones de conexión disponibles. Para fines de reconocimiento de imágenes, normalmente se utilizan redes convolucionales, en las que sólo se conectan grupos de neuronas de una capa a grupos de neuronas en la siguiente capa. Para fines de reconocimiento de voz, normalmente se utilizan redes recurrentes, que permiten bucles de neuronas en una capa posterior a una capa anterior.

4. Proceso de decisión de Markov

Un proceso de decisión de Markov (PDM) es un marco para el modelado de la toma de decisiones en el que, en algunas situaciones, el resultado es en parte aleatorio y se basa en parte en las aportaciones del responsable de la toma de decisiones. Otra aplicación en la que se utiliza PDM es la planificación optimizada. El objetivo básico de la PDM es encontrar una política para el responsable de la toma de decisiones, indicando qué medidas particulares se deben tomar en qué estado.

Un modelo de PDM consta de las siguientes partes (6):

  • Un conjunto de estados posibles: por ejemplo, esto puede referirse a un mundo de cuadrícula de un robot o los estados de una puerta (abierta o cerrada).
  • Un conjunto de acciones posibles: un conjunto fijo de acciones que, por ejemplo, un robot puede tomar, como ir hacia el norte, izquierda, sur u oeste. O con respecto a una puerta, cerrarla o abrirla.
  • Probabilidades de transición: esta es la probabilidad de ir de un estado a otro. Por ejemplo, ¿cuál es la probabilidad de que la puerta esté cerrada, después de que se haya realizado la acción de cerrar la puerta?
  • Recompensas: se utilizan para dirigir la planificación. Por ejemplo, un robot puede querer moverse hacia el norte para llegar a su destino. En realidad, ir hacia el norte resultará en una recompensa más alta.

Una vez definido el PDM, se puede entrenar una directiva mediante "Iteración de valor" o "Iteración de directiva". Estos métodos se utilizan para calcular las recompensas esperadas para cada uno de los estados. A continuación, la directiva representa la mejor acción que se puede realizar de cada estado.

Como ejemplo, definiremos una cuadrícula que puede ser considerada como un mundo ideal y finito para un robot (7). Esta cuadrícula de ejemplo se muestra en la Figura 3.

Figura 3: Ejemplo – mundo de cuadrícula de un robot

El robot puede moverse (acción) desde cada posición en la cuadrícula (estado) en cuatro direcciones, es decir, norte, izquierda, derecha y sur. La probabilidad de que el robot entre en la dirección deseada es 0.7 y 0.1 si se mueve hacia cualquiera de las otras tres direcciones. Se otorga una recompensa de -1 (es decir, una penalización) si el robot choca contra una pared y no se mueve. Además, hay recompensas y penalizaciones adicionales si el robot llega a las celdas de color verde y azul, respectivamente. En función de las probabilidades y recompensas, se puede realizar una política (función) utilizando el estado inicial y final.

Otro ejemplo de uso de PDM es el problema de la planificación de inventario: un encargado o gerente de stocks tiene que decidir cuántas unidades se deben pedir cada semana. La planificación de inventario se puede modelar como un PDM, donde los estados se pueden considerar como inventario positivo y escasez. Las posibles acciones son, por ejemplo, ordenar nuevas unidades o retrasar hasta la próxima semana. Las probabilidades de transición se pueden considerar como la acción que se tomará en función de la demanda y el inventario de la semana actual. Recompensas o, en este caso, los costos - son típicamente costos unitarios del pedido y costos de inventario.

5. Procesamiento Natural Del Lenguaje

El procesamiento Natural del Lenguaje (PNL) se utiliza para referirse a todo, desde el reconocimiento de voz hasta la generación de lenguaje, cada uno de los que requiere diferentes técnicas. A continuación, se explicarán algunas de las técnicas importantes, es decir, etiquetado de parte del discurso, reconocimiento de entidades con nombre y análisis.

Examinemos la frase "Juan golpeó la lata". Uno de los primeros pasos de la PNL es el análisis léxico, utilizando una técnica llamada Etiquetado de Parte del Discurso (EPD). Con esta técnica cada palabra se etiqueta para corresponder a una categoría de palabras con propiedades gramaticales similares, en función de su relación con palabras adyacentes y relacionadas. No sólo las palabras están etiquetadas, sino también párrafos y oraciones. El etiquetado de parte del discurso se realiza principalmente con modelos estadísticos, que conducen a resultados probabilísticos en lugar de reglas duras, y por lo tanto, se utiliza para procesar texto desconocido. Además, pueden hacer frente a la posibilidad de múltiples respuestas posibles en lugar de una sola técnica

Una técnica que se utiliza a menudo para el etiquetado es un modelo oculto de Markov (MOM). Un MOM es similar al Proceso de Decisión de Markov, donde cada estado es parte del habla y el resultado del proceso son las palabras de la oración. Los MOM 'recuerdan' las secuencias de palabras que vinieron antes. Basándose en esto, pueden hacer mejores estimaciones de lo que es parte de la palabra.

Por ejemplo: 'puede' en 'la lata' es más probable que sea un sustantivo que un verbo. El resultado final es que las palabras se etiquetan como se sigue: 'John' como un sustantivo (S), 'golpeó' como verbo (V), 'la' como determinante (D) y 'lata' como un sustantivo (N) también.

Reconocimiento de entidad con nombre o REN, es similar al etiquetado de EPD. En lugar de etiquetar palabras con la función de la palabra en la oración (EPD), las palabras se etiquetan con el tipo de entidad que representa la palabra. Estas entidades pueden ser, por ejemplo, personas, empresas, hora o ubicación. Pero también entidades más especializadas como el gen, o la proteína. Aunque un MOM también se puede utilizar para REN, la técnica de elección es una red neuronal recurrente (RNN). Una RNN es un tipo diferente de red neuronal como se discutió anteriormente, pero toma secuencias como entrada (un número de palabras en una oración, u oraciones completas), y recuerda la salida de la oración anterior (8). En la frase que estamos viendo, reconocerá a Juan como la entidad 'persona'.

Una técnica final a discutir se llama Análisis (Análisis Sintáctico) - analizando la gramática del texto y la forma en que se organizan las palabras, de modo que la relación entre las palabras es clara. La etiqueta Parte-del-Discurso del análisis léxico se utiliza y luego se agrupa en frases pequeñas, que a su vez también se pueden combinar con otras frases o palabras para hacer una frase un poco más larga. Esto se repite hasta que se alcanza la meta: cada palabra de la oración se ha utilizado. Las reglas de cómo se pueden agrupar las palabras se denomina gramática y pueden tomar una forma como esta: D+S - NP, que dice: un determinante + sustantivo - Frase de sustantivo. El resultado final se muestra en la figura.

Análisis (Análisis Sintáctico) – analizando la gramática del texto

Conclusión

Las técnicas utilizadas dentro del dominio de la Inteligencia Artificial son en realidad sólo formas avanzadas de modelos estadísticos y matemáticos. Todos estos modelos conjuntos inteligentemente nos proporcionan herramientas para calcular tareas que antes se pensaba que estaban reservadas para los seres humanos. 

Referencias

(1) https://www.merriam-webster.com/dictionary/heuristic
(2) https://en.wikipedia.org/wiki/Ant_colony_optimization_algorithms
(3) https://en.wikipedia.org/wiki/Genetic_algorithm
(4) https://en.wikipedia.org/wiki/Support_vector_machine
(5) http://neuralnetworksanddeeplearning.com/chap1.html
(6) https://www.cs.rice.edu/~vardi/dag01/givan1.pdf
(7) http://artint.info/html/ArtInt_224.html
(8) More on RNN: http://karpathy.github.io/2015/05/21/rnn-effectiveness/

Did you find this useful?