IA

Inteligencia Artificial, una Introducción Pragmática

Silueta de una persona contra una cuadrícula digital roja resplandeciente
Índice↑ Volver al inicio

Je veux te voir Je veux t’avoir

Era solo cuestión de tiempo antes de que empezara a hablar de inteligencia artificial.

Todo el mundo está hablando de IA, y las nuevas formas en que se está implementando en nuestra vida diaria son realmente impresionantes. Solo hay que ver cómo la IA puede generar imágenes espectaculares a partir de simples prompts, como esta.

AI

Esta imagen fue creada por Dall-E, un nuevo sistema de IA desarrollado por OpenAI (una de las empresas líderes en desarrollo de IA). OpenAI lanzó recientemente otra herramienta poderosa llamada SORA, que puede crear videos increíbles a partir de simples descripciones. ¡Mira el video de abajo!

Es realmente increíble ver todo este avance en IA pasando alrededor del mundo.

Sin embargo, a pesar del revuelo, mucha gente habla de IA sin entender del todo sus principios básicos. En este primer post sobre IA, vamos a intentar dar un entendimiento básico de qué es la IA y cómo cualquiera puede entender sus conceptos fundamentales. Por ahora vamos a mantenerlo simple, y en próximos posts profundizaremos en detalles.

¿Qué es la IA? 🤔

En internet y en los libros hay un montón de definiciones de IA. Para este post, veamos la definición común que encontrarías en Wikipedia.

… Es una disciplina y un conjunto de capacidades cognitivas e intelectuales expresadas por sistemas informáticos o combinaciones de algoritmos cuyo propósito es la creación de máquinas que imiten la inteligencia humana para realizar tareas … · AI, Wikipedia

Entender la IA se puede simplificar con una ayuda visual, como la de abajo.

AI

Como vimos, la IA es un campo complejo que se apoya en muchas disciplinas. Aunque la definición y el diagrama anteriores dan un punto de partida, se puede llegar a un entendimiento más profundo.

Algunos expertos (expertos = Rivaldito 🥸) sugieren que la IA se puede dividir en tres componentes clave:

  • Geometría

  • Matemáticas

  • Programación

AI

Puede parecer simplista decir que la IA es solo estas tres cosas, pero cada una juega un papel vital.

¿Por qué IA = 📐 + 🧮 + 💻?

Ahora, exploremos otro concepto: “todo es data”. Puede sonar raro al principio, pero la idea es que podemos representar cualquier cosa con números. Los números se pueden usar para codificar información sobre objetos, eventos, e incluso conceptos.

AI

Puede parecer raro la primera vez que vemos esta relación, pero piénsalo así, podemos asignarle un número a cualquier cosa para representarla. Te voy a dar algunos ejemplos para que me entiendas.

Movimiento, uno fácil 🚀

En algún momento de la escuela o la universidad aprendimos en la clase de física que el movimiento se puede representar con una ecuación o una matriz de ecuaciones como el siguiente ejemplo:

AI

Veamos otro ejemplo de cómo la vida es data…

Imágenes 📷

¿Alguna vez te preguntaste cómo tu teléfono representa una imagen después de tomar una foto? Es un proceso complejo, pero vamos a desglosarlo de forma simple.

Tu teléfono puede descomponer la información de color de una foto en capas de color separadas. La forma más común de hacer esto es con tres canales: rojo, verde y azul. Esta descomposición de color se conoce como RGB (Red, Green, Blue).

Cada capa es una matriz de cuadraditos llamados píxeles. Cada píxel contiene un solo número que representa la intensidad de ese color específico en esa ubicación de la imagen. Un número más alto indica una presencia más fuerte de ese color en ese píxel, mientras que un número más bajo significa que el color está menos presente.

AI

Palabras 📑

Quizás el ejemplo que más me sorprendió fue asignarle números a las palabras. Puede parecer raro, pero hay muchos enfoques para esto.

Un método consiste en asignarle un número a una palabra basado en la palabra anterior.

Podríamos seguir listando ejemplos, pero creo que la idea general queda clara. Asignarle un número a cualquier cosa básicamente la traduce en data.

Ok, data… ¿y ahora qué? 🤔

Ahora que tenemos data, el siguiente paso es meterla en un espacio vectorial para empezar a trabajar con IA.

AI

Estos espacios vectoriales normalmente se limitan a tres dimensiones, que podemos visualizar fácilmente. Por suerte, las computadoras pueden manejar dimensiones aún más altas.

Geometría

Una vez que tenemos la data en un espacio vectorial, podemos empezar a aplicar conceptos geométricos, básicamente, dibujar líneas y figuras, para dos propósitos principales:

  • Estimación: consiste en dibujar líneas para hacer predicciones. Por ejemplo, podríamos predecir precios de casas a lo largo del tiempo basándonos en datos históricos, o incluso patrones de lluvia según ciertas condiciones climáticas.

AI

  • Clasificación: aquí dibujamos figuras para agrupar puntos de datos similares. Esto nos permite predecir un valor específico basándonos en otros. Por ejemplo, podríamos clasificar imágenes como gatos o perros, o identificar distintos tipos de flores según sus características.

AI

Matemáticas

Ya tenemos la data en un espacio vectorial, pero ahora, ¿cómo hacemos la Geometría (los dibujos)?

Lo hacemos con modelos matemáticos, y se ven así:

Puede intimidar al principio, pero la buena noticia es que muchos de estos modelos se han estudiado durante siglos. Las matemáticas de fondo ya están en su mayoría establecidas, y las computadoras pueden manejar los cálculos complejos por nosotros.

En esencia, el trabajo de base ya está hecho. Solo tenemos que juntar las piezas.

Programación: juntando las piezas

Aquí es donde pasa la magia. Usamos el poder de las computadoras para hacer los cálculos geométricos y las manipulaciones matemáticas que necesita la IA. Python es una opción popular para desarrollar IA gracias a su comunidad grande y activa. A lo largo de los años, esta comunidad ha creado numerosas librerías y frameworks que simplifican el desarrollo de IA.

Algunas de estas herramientas son:

Piénsalo como Legos, no necesitamos construir cada bloque desde cero. En cambio, tenemos una gran colección de piezas ya construidas que podemos ensamblar para crear nuestras soluciones de IA. Esto es una mejora enorme comparado con el pasado, cuando los desarrolladores tenían que construir todo desde el suelo.

Vamos a escribir algo de código.

No voy a explicar mucho en detalle sobre el código. Solo quiero mostrar qué tan simple es.

Nuestro primer modelo 🌺

Para nuestro primer modelo de IA usamos el dataset de iris.

Este es uno de los datasets más antiguos usados en la literatura sobre métodos de clasificación, y muy usado en estadística y machine learning. El dataset contiene 3 clases de 50 instancias cada una, donde cada clase se refiere a un tipo de planta iris.

Las iris con las que estamos trabajando son:

AI

El dataset toma el largo y el ancho del sépalo y el pétalo de cada flor de la planta.

AI

Como escribí antes, no voy a explicar el código, solo voy a mostrar una breve noción de cómo crear IA es como jugar con Lego.

Puedes ver el código completo en este repositorio de GitHub.

Importar las librerías

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

import mpl_toolkits.mplot3d  # noqa: F401
from sklearn.decomposition import PCA

%matplotlib inline

from sklearn.datasets import load_iris
iris_data = load_iris()

Ver el dataset

iris_df = pd.DataFrame(data = iris_data['data'], columns = iris_data['feature_names'])
iris_df.head()

Gráfico

# im just making a function in order not to repeat the same code
def plot_violin(y2,i):
    plt.subplot(2,2,i)

    sns.violinplot(x='Iris name',y= y2, data=iris_df)

plt.figure(figsize=(17,12))
i = 1
for measurement in iris_df.columns[:-2]:
    plot_violin(measurement,i)
    sns.despine(offset=10, trim=True)
    i += 1

AI

Gráfico, otra vez…

sns.pairplot(iris_df, hue = 'Iris name', vars = ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'], palette = 'Set1' );

AI

Entrenar el modelo

knn.fit(X_train, y_train)

Hacer predicciones

y_pred = knn.predict(X_test)

fig = plt.figure(figsize=(15,7))

ax1 = fig.add_subplot(1,2,1)
ax1 = sns.scatterplot(x = X_test['petal length (cm)'], y = X_test['petal width (cm)'], hue = y_pred, alpha = 0.5)
plt.title('Predicted')
plt.legend(title='Iris name')

ax2 = fig.add_subplot(1,2,2)
ax2 = sns.scatterplot(x = X_test['petal length (cm)'], y = X_test['petal width (cm)'], hue = y_test, alpha = 0.5)
plt.title('Actual');

AI

Y eso es todo. Fácil, ¿no?

En los próximos posts vamos a entrar en más detalle sobre IA.

Las canciones del post

Esta vez te recomiendo una de mis bandas favoritas, La Femme. Tienen un sonido único, y siempre están experimentando con cosas nuevas, cada álbum es distinto al anterior.

Je veux te voir, je veux t’avoir
New York dans le night club, tu t’es rapprochée de moi
Je ne veux pas oublier le contact de ta peau
Ton sourire et ton rire c’est comme si on se connaissait déjà
Quand on s’est mis à danser, tu m’as donné un baiser
De crystal à déposer là sur la langue
Elle fait sauter son top en jean
Je crève en voyant sa poitrine
· Tatiana, La Femme

Escuchando