Apuntes mientras aprendo sobre software y computadoras.

Inteligencia Artificial

Guía mínima para entender el tema de Inteligencia Artificial

En este apunte voy a estar revisando algunos de los conceptos básicos que rodean al tema de la inteligencia artificial.

Por supuesto, la inteligencia artificial es un tópico increíblemente complejo que va desde la computación práctica hasta la ciencia ficción. Un asunto bastante difícil de resumir para un simple humano… incluso recibiendo ayuda de las máquinas para eso.

Lo que ocurre es que debajo de la sombrilla que cubre el tema entra de todo, y voy a hacer lo posible en cada caso para extraer los conceptos mínimos.

Me interesa retener exactamente lo fundamental de cada idea, para poder luego poder expandirnos en este mundo desde ahí.

Ya en otras ocasiones escribí guías similares. Por ejemplo:

Guía mínima para empezar con la terminal de Linux
– Guía mínima para empezar a programar en Bash

Así que sin más vueltas…

¿Qué es la inteligencia artificial (IA)?

“Inteligencia Artificial” se puede abreviar como “IA” si se encuentra en Castellano. Por otra parte se puede abreviar como “AI” si se refiere al Inglés “Artificial Inteligence”.

Siendo que estoy analizando las palabras, puedo seguir diciendo lo siguiente: por una parte tenemos “inteligencia”, que el diccionario define como “la facultad de conocer, analizar y comprender”.

Y luego tenemos “artificial”, que se puede entender como “no natural” o más bien algo que es parte de la tecnología y la informática.

¿Y si sumamos esas dos ideas rápido?

Nos encontramos entonces un sistema de computadora que puede hacer cosas como conocer, analizar y comprender. Esto puede incluir resolver problemas, tomar decisiones, aprender temas y entender el sentido o el tono de lo que le decimos.

Ahora entramos en una zona de cuestiones filosóficas que escapa a las razones de esta guía. Podríamos preguntarnos por ejemplo cosas cómo “¿Qué es la inteligencia?” o también “¿Puede una inteligencia artificial desarrollar consciencia de si misma?”.

Hasta el momento no existe una AGI (Inteligencia Artificial General), o al menos no existe ninguna que conozcamos al momento de escribir estas palabras. Esto es una IA que pueda equipararse en su funcionamiento a la consciencia humana.

Pero el termino “inteligencia artificial” engloba por un uso cotidiano a otras herramientas que si utilizamos en el día a día, que aprenden de dato o hacen relaciones de lenguaje, pero que no pueden generalizar sobre otras tareas sin intervención humana.

¿Cuáles son los diferentes tipos de Inteligencia Artificial (IA)?

Según el enfoque que se hace de su uso o sus prioridades, se distinguen dos grandes tipos de inteligencia artificial.

Narrow IA

Por “Narrow” se entiende algo que es estrecho o acotado.

Este tipo de IA esta aplicada a situaciones específicas, lo que circunscribe sus habilidades a las características del trabajo en que se enfoca.

Por ejemplo podemos pensar en una IA para un servicio financiero dedicada a descubrir fraudes, que tiene un límite en su capacidad para aprender cosas por fuera de esa tarea.

Los algoritmos y reglas que utiliza son entonces “acotados” a esa situación.

A esta categoría también se la conoce como Weak AI. Esto señala la idea de una IA “débil”. ¿Por qué débil?

Parece ser simplemente otra forma de describir este tipo de algoritmos que se nos aparecen como una inteligencia, pero que se demuestra ultra dedicada a una sola tarea. Un ejemplo podría ser una IA dedicada a recomendar música.

General IA

Al contrario de una IA dedicada a un trabajo especifico, la IA general puede aplicarse a una mayor variedad de tareas.

Como bien nos dice su nombre, es un tipo de inteligencia generalista.

Se puede pensar esta IA como la más similar a la inteligencia humana, para entrar un poco de vuelta en el terreno de la filosofía. Y la especulación teórica sobre el futuro.

En este caso nos pondríamos en frente de una IA capaz de aprender y reutilizar lo aprendido, e incluso capaz de ajustar sus razonamientos según lo crea necesario.

Este tipo de IA también es concida como “strong” o fuerte.

¿Qué es Machine Learning (ML)?

Machine Learning se conoce como “Aprendizaje automático” o aprendizaje autónomo en castellano. Yo voy a pasar a abreviarlo por ML, sus siglas en inglés.

ML es otra de las técnicas que se utiliza dentro del área de la inteligencia artificial.

Y es otro de esos temas que abre la puerta a preguntas filosóficas, la idea de una máquina aprendiendo nos pone de nuevo a meditar sobre la naturaleza de un cerebro, o qué cosa es un cerebro realmente.

En el caso de ML aprender parece entenderse como la capacidad de predecir algo a partir del análisis de una gran cantidad de datos.

¿Cómo se llega a esto?

Esta interpretación de los datos se hace mediante la utilización de algoritmos y datasets, que resultan en modelos de uso.

La gran popularidad de ML al menos al momento de escribir todo esto, viene por sus aplicaciones en herramientas para por ejemplo identificación de imágenes y procesamiento del lenguaje.

Entonces tengo un sistema al que necesito enseñarle algo. Para esto necesito un conjunto de datos que hacen la base del entrenamiento. Estudiar este dataset va a generar un modelo, que le va a permitir al sistema hacer predicciones.

Ese modelo puede cambiar con el tiempo al agregarle nuevos datos, por lo que puede perfeccionarse para su objetivo.

Voy a intentar ensayar la idea anterior con un ejemplo.

Digamos que quiero enseñarle a un sistema a diferenciar entre la fotografía de una cebra y la de un rinoceronte.

Dicho de otra forma, le pregunto al sistema cuál es el animal que aparece una fotografía: ¿es una cebra o un rinoceronte? Y la máquina tiene que poder diferenciarlos para responder correctamente.

Voy a necesitar:

1- Un dataset: se trata de un conjunto de datos para entrenamiento. En este casos el dataset va a estar compuesto por cien mil fotos de estos dos animales, cada foto etiquetada diciendo de que animal se trata.

2- Un algoritmo: voy a necesitar también un algoritmo adecuado para el reconocimiento de imágenes, de modo que el sistema pueda analizar el contenido de cada foto en el dataset. El algoritmo es algo así como el motor del proceso, y va a encargarse de reconocer a fin de cuentas que cualidades diferencian a una cebra de un rinoceronte.

3- Un modelo: se trata del resultado del entrenamiento. Captura lo aprendido durante el uso del algoritmo, y lo va a utilizar para hacer nuevas predicciones futuras.

Luego es este trabajo de aprendizaje automático, puedo darle una nueva foto al sistema y el modelo va a poder identificar si se trata de una cebra o de un rinoceronte. Esto va a ayudarme por ejemplo en un trabajo de cuidado de la vida silvestre.

Por supuesto todo esto es una ultra simplificación del asunto, y estoy dejando muchas cosas de lado. Pero para enriquecer un poco más esta guía mínima, vamos a revisar tres técnicas que se utilizan en el entrenamiento de aprendizaje automático.

Supervised Learning

Esto es aprendizaje supervisado.

Al momento de utilizar un dataset, la información viene etiquetada para enseñarle al sistema lo que buscamos y cuales son sus características.

Un ejemplo de este dataset es el que mencioné más arriba, donde cada fotografía viene acompañada del nombre del animal que contiene.

Estos conjuntos de datos para entrenamientos que asocian el valor de entrada y de salida se los conoce como “Labeled dataset” o dataset anotado.

Unsupervised Learning

Forma de aprendizaje sin supervisión. Al contrario del caso anterior, la información del dataset no viene comentada de antemano.

En estos casos se utilizan por lo general “unlabeled datasets” o datasets sin etiquetas.

El objetivo es que el sistema descubra patrones internos, relaciones entre la información presentada. Se puede usar por ejemplo para encontrar anomalías, entre otros usos.

Reinforcement Learning

Es una forma de aprendizaje por “reinforcements”, esto es por refuerzos.

Los datasets pueden estar etiquetados o no. La idea es que el sistema interactúa con la información, recibiendo incentivos o penalidades en base a esa interacción.

Podemos interpretar que el sistema busca “ganar”, por decirlo de alguna forma, y para hacerlo tiene que acumular incentivos. A partir de esto se ajustan los parámetros del modelo final.

Por ejemplo, volvamos a nuestro ejemplo de reconocer entre fotos de cebras y rinocerontes. El sistema puede interactuar con un dataset de fotos sin anotar.

Cuando el algoritmo revisa una fotografía, digamos que dice que encuentra una cebra. Si esta en lo cierto, recibe un puntaje positivo. Pero caso contrario si se equivoca porque se trataba de la imagen de un rinoceronte, recibe un puntaje negativo.

De esto resulta el mejor modelo, donde el sistema intenta por la repetición del dataset maximizar su puntaje. Tiene entonces un incentivo para predecir la mejor respuesta, y progresa teniendo eso en cuenta.

¿Qué quiere decir Big Data?

El termino “Big Data” se puede traducir más o menos literalmente como “grandes cantidades de datos”.

La idea que encierra el término es exactamente esa, Big Data se refiere a la acumulación y procesamiento de grandes cantidades de información.

Aunque la idea de Big Data no solo se relaciona con el mundo de la IA, merece un breve apartado dentro de este texto. Después de todo, ya mencionamos que los métodos de entrenamiento para un modelo predictivo requieren datasets. Y esos datasets bien pueden conectarse con la idea de Big Data.

El uso de la tecnología vuelve posible el manejo de grandes cantidades de datos, datos que llegan desde diferentes fuentes. Estos datos pueden venir de redes sociales, publicaciones científicas, sitios web, sensores en maquinaria, y esto solo por pensar algunos ejemplos posibles.

En resumen: grandes cantidades de información, mucha cantidad, que se busca procesar para extraerle alguna utilidad.

Las cinco características de Big Data

Para cerrar esta breve introducción a Big Data, es bueno recordar estas cinco características que la definen:

– Volumen: Como dijimos antes, los datos son recibidos en grandes cantidades.

Imaginemos por ejemplo un disco de computadora que tiene un terabyte de almacenamiento, estos son 1024 gigabytes. Y que existen memorias de bolsillo de 16 o 32 gigabytes, por mencionar algunos casos comunes mientras escribo todo esto.

En el caso de Big Data estamos pensando en otro nivel de almacenamiento, como petabytes (1.024 Terabytes) o incluso exabytes (que equivalen cada uno a 1.024 petabytes).

– Velocidad: La velocidad en que los datos se maneja también es muy alta, tanta rapidez que incluso la información puede ser analizada en tiempo real.

– Variedad: Los datos pueden encontrarse y guardarse en varias formas y formatos. Por ejemplo de forma estructurada (en tablas o bases de datos), sin estructura (imágenes, texto, video) o una mezcla de las anteriores.

– Veracidad: La información obtenida tiene que tener la mayor calidad de consistencia y precisión, y tiene que ser completa. Esto resulta en una suerte de esfuerzo por obtener los mejores datos posibles, para asegurar la confianza en los resultados.

– Valor: Esto recuerda que este tipo de análisis de datos puede llevar a una mejor toma de decisiones, y permite descubrir información oculta que genera nuevas perspectivas.

Esta forma de describir Big Data fue propuesta por el analista Doug Laney en el año 2001.

¿Qué es Deep Learning?

Antes decíamos que Machine Learning era un área de trabajo dentro de la inteligencia Artificial.

Bueno, ahora tenemos Deep Learning (DP), que representa un área dentro de Machine Learning.

Y en castellano lo podemos entender como “Aprendizaje en Profundidad”.

¿Qué ocurre en este caso? Voy a tratar de explicarlo según lo entiendo.

Nos encontramos con una máquina que queremos entrenar. Al mismo tiempo tenemos una serie de datasets para alimentar ese entrenamiento y un algoritmo para impulsarlo. Eso ya lo estuvimos estudiando.

La principal diferencia es que DP se centra en lo que se conoce como neural networks, o redes neuronales. Esto genera unas capas de sentido que le permite al sistema revisar patrones más complejos dentro de los datos que usa para el aprendizaje.

¿Qué son las neural networks?

La traducción de Neural Networks quiere decir “Redes Neuronales”.
Lo que se busca en cierta manera es imitar la forma en que las neuronas de un cerebro animal funciona. Básicamente un cerebro interconecta neuronas, en este caso el sistema interconectada neuronas artificiales.

El detalle más importante del asunto creo que es el siguiente: estas neuronas procesan los datos y crean diferentes capas. Esto permite crear asociaciones entre la información con la que fue alimentado el sistema.

Dos diferentes tipos de redes neuronales

Voy a distinguir dos tipos específicos de redes neuronales, según la forma en que estos nodos se ordenan:

Convolutional neural networks (CNNs)

En castellano “Redes Neuronales Convolucionales”. Principalmente utilizadas para procesar imágenes y videos,

Pueden creerme, esto se pone cada vez más difícil de resumir. Pero si hay algo importante para recordar es la idea de “convolución”.
Básicamente esto quiere decir que la primera capa de neuronas se conectan como una grilla sobre la imagen, y esta grilla genera una mapa asignando un valor a cada pixel. Esta mapa, por medio de filtros, permite extraer rasgos comunes de nuevas imágenes analizadas.

Recurrent neural networks (RNNs)

En castellano “Redes Neuronales Recurrentes”. Se utilizan principalmente para analizar secuencias de datos, como por ejemplo texto o audio.

La información procesada se hace en relación a los datos de esa secuencia, y los datos que llegaron antes. Por ejemplo al escribir una nueva palabra que empieza con las letras “ce”, esa palabra se relaciona con otras aprendidas antes como “cena” o “cerámica”. La secuencia importa.

Las neuronas mantienen un estado interno a lo largo del tiempo, eso le permite capturar la nueva información y compararla con datos anteriores.

Conclusión

Con esto doy por finalizada esta guía mínima para entender el tema de Inteligencia Artificial.

El asunto es complejo, pero hice todo lo posible por mantener el tema lo más sencillo que pude. Quedan muchas cosas afuera, pero con esto creo que cubro varias de las palabras más importantes.

Espero que esto sirva como una primera introducción de algunos de los conceptos de este tema que parece cada vez más presente en nuestras vidas.

¿Encontraste algún error? ¿Te interesa decirme algo sobre el tema? Mi correo electrónico se encuentra en la sección de contacto.

La seguimos en el próximo apunte.

Leave a Reply