Desde hace un tiempo, hemos visto cómo una de las “tecnologías del futuro” se ha implantado cada vez más en nuestras vidas. Acercándose e involucrándose en las aplicaciones y sistemas que utilizamos en nuestro día a día, convirtiéndose ya en una “tecnología del presente” con un gran potencial y aún mucho camino por recorrer. Hablamos de la ya archifamosa “Inteligencia Artificial”.
Hoy en día, mucha de la información que nos llega proviene de medios de comunicación no especializados en los que, en ocasiones, encontramos más ciencia ficción o exageraciones que información veraz de lo que es esta Inteligencia Artificial.
Como ejemplo de lo anterior, hace poco aparecieron una serie de artículos en prensa en relación a un proyecto de inteligencia artificial de Facebook que fue desconectado. Algunos medios generalistas corrieron a dar dicha noticia como si hubiera estado a punto acabar con el mundo conocido con frases del tipo: Facebook ha apagado una inteligencia artificial que había «cobrado vida»” ó “Los ingenieros de Facebook entran en pánico y desconectan una AI (inteligencia artificial) debido a que los ‘bots’ desarrollaron su propio lenguaje”.
Por supuesto, estas noticias pecaban de sensacionalismo y no se acercaban a la realidad de lo sucedido, que más adelante fue explicado en otros medios, como por ejemplo Gizmodo que publicó un artículo donde se dice que la inteligencia artificial desarrollada por Facebook que se decidió apagada lo único que hizo diferente fue comunicarse de un modo más eficiente para las máquinas, pero menos inteligible para el ser humano.
Además, se explicaba que la única razón para que fuese apagada era porque el objetivo del proyecto era desarrollar una inteligencia artificial que pudiera, precisamente, comunicarse con humanos en ciertas situaciones. Este tipo de acontecimientos no hacen otra cosa sino desinformar sobre lo que realmente es la Inteligencia Artificial.
En este artículo, intentaré explicar mínimamente –y de un modo inteligible para el ciudadano no especializado en estos temas– una parte de lo que, globalmente, se conoce como Inteligencia artificial.
Nos centraremos, en específico, en el área del aprendizaje automático (en inglés, machine learning). Esta es, quizás, la parte más conocida de este mundo, ya que recoge tecnologías como las redes neuronales o los problemas de clasificación y predicción.
El machine learning, a su vez, se divide en varias áreas según los algoritmos utilizados y la función a la que van dirigidos. Dichas áreas son, principalmente, el “Aprendizaje supervisado” y el “Aprendizaje no supervisado” y “Aprendizaje por refuerzo”.
Existen otras áreas que en este artículo no vamos a tratar. De hecho, nos centraremos principalmente en el aprendizaje supervisado, el cual, entiendo que será más fácil de comprender para hacerse una idea de cómo funciona este mundo de la Inteligencia Artificial.
¿Qué es y cómo funciona el aprendizaje supervisado?
Este tipo “supervisado” basa su aprendizaje en un conjunto de muestras de las que conoce los parámetros de entrada y sus valores de salida válidos y ciertos, a partir de los cuales pretende encontrar el patrón correcto para adecuarse a cualquier nueva entrada y ser capaz de predecir su valor de salida (problemas de regresión lineal) o incluirla en una categoría conocida (problemas de clasificación).
Como se ha comentado mínimamente en el párrafo anterior, este tipo de aprendizaje nos servirá para solventar dos grandes grupos de problemas:
1. Problemas de regresión lineal
Son aquellos en los que se pretende obtener un valor de salida para una entrada dada. Ejemplos de este tipo de problemas pueden ser:
- Tratar de conocer el valor de una casa dada una serie de datos de entrada como los metros cuadrados, el número de habitaciones o la zona en la que se encuentra.
- Tratar de predecir el desarrollo de ciertas enfermedades, pues dado una serie de variables podríamos saber si en un futuro un paciente es más propenso a sufrir algún tipo de afección.
Los datos de entrada podrían ser: antecedentes familiares, si es fumador, si practica deporte, la cantidad de azúcar que consume en su dieta o si tienen algún tipo de marcador genético.
2. Problemas de clasificación
Son aquellos en los que necesitamos enmarcar un dato de entrada dentro de una categoría. Algunos ejemplos:
- Sistemas de detección de correos electrónicos no deseados, donde es necesario saber si el correo que acaba de entrar debe ser archivado directamente. Para ello, se disponen de datos de entrada como el remitente, el cuerpo del mensaje o algunas palabras claves o enlaces dentro del correo.
- Sistemas de publicidad online donde se categorizan los distintos usuarios para poder mostrarles el tipo de publicidad que más útil pueda ser.
¿Cómo se enseña a una máquina a solventar estos problemas?
A diferencia de lo que muchos podéis esperar, para estos tipos de problemas, las máquinas no aprenden o adquieren conocimientos directamente sobre su problema concreto que después aplican. Sino que lo que necesitan es modelar funciones matemáticas capaces de calcular la salida más probable para una entrada dada.
Regresión Lineal
Por ejemplo, para los problemas de regresión lineal más básicos, lo “único” que necesitará la máquina será un algoritmo que cumpla una simple función lineal. Por ejemplo, si quisiéramos calcular el valor de una vivienda teniendo en cuenta el número de metros cuadrados que tiene, nuestra función primaria sería:
f(x) = a +b*x
Esa es una función que a muchos sonará de su época de primaria. Pues bien, en el mundo de la inteligencia artificial se utiliza otro tipo de notación:
hq(x) = q0 + q1x
Donde a ‘h’ se le conoce como hipótesis, y a q0 y q1 como parámetros.
De lo que se encargan los algoritmos de aprendizaje automático es de modelar la función anterior para que coincida lo máximo posible con el conjunto de datos de muestra de los que parte, obteniendo la pérdida mínima para cada caso de muestra.
Este algoritmo vuelve a basarse en una función matemática conocida como función de costos (para una función dada) que debe ser minimizada para obtener los valores óptimos de los parámetros ‘q’.
Esta función es algo más compleja y no vamos a entrar en su explicación en detalle. Simplemente, quedaos en que vuelve a ser una función matemática la que modela la función de predicción (o regresión lineal).
Por ejemplo, en el siguiente gráfico, los puntos son la muestra dada y la línea discontinua es la función modelada:
Por supuesto que la predicción anterior no parece demasiado buena para el conjunto de muestras dadas, pero estamos trabajando con un único valor de entrada y sabemos que en la tasación de una vivienda intervienen múltiples factores.
Como decíamos, para realizar una mejor aproximación al caso de tasación de una vivienda, sería necesario incorporar muchos más factores además de los metros cuadrados. Como, por ejemplo, el número de habitaciones, la zona en la que se encuentra, la demanda existente de viviendas en dicha zona…
Para adecuar nuestra función de regresión lineal a todos esos factores de entrada, tendríamos que tenerlos en cuenta en su definición. Lo cual complicaría la función, con ‘n’ datos de entrada esta función podría quedar así:
hq(x) = q0 + q1x1 + q2x2 + q3x3 + … + qnxn
Como se ve, además de complicarse la función de “hipótesis”, se complicará también la de la función de costos que necesitamos para modelar los valores de q1 q2 q3 y qn
Una vez bien modelada nuestra función y teniendo en cuenta los valores de entrada adecuados, la gráfica de nuestra predicción podría quedar algo así:
Problemas de clasificación
Para este tipo de problemas, en los que queremos categorizar una entrada basándonos en unos ciertos parámetros de entrada, la operativa sigue basándose en la misma estrategia: modelar una función que nos permita conocer si la entrada debe asignarse a una categoría o no.
Un ejemplo de este tipo de problemas, sería la detección de entrada de correos electrónicos no deseados a nuestra bandeja de entrada para moverlos a la carpeta de “spam”.
Para ello tendríamos que definir qué variables influyen en considerar que un correo electrónico es “spam” o no. Dichas variables las incorporaríamos a una función muy similar a la anterior, pero tratando que nos otorgue siempre como salida valores discretos ya predefinidos. Por ejemplo, 1 si es spam y 0 si no lo es.
La función base que se utiliza para calcular dichos valores es algo más compleja que la anterior:
Donde la función g(z) se define tal que:
En la que, como se entiende, z sería el término anterior:
La salida de esta función siempre entrega un valor entre 0 y 1, donde la categorización se realizará por aproximación a 0 y 1. En nuestro caso, si el valor de salida está más próximo a 1, se considerará que el correo electrónico que se evalúa es ‘spam’.
Nuevamente, el algoritmo a utilizar debería de tratar de minimizar la función de costos para que el resultado se adapte lo máximo posible a los valores de muestra en los que se basa el aprendizaje supervisado.
Redes neuronales
Quizás, este sea uno de los conceptos más famosos de la inteligencia artificial que muchos habréis escuchado, pero poco sepáis exactamente a qué se refiere.
En esencia, este concepto se refiere, simplemente, a un problema de clasificación. Se basa en este tipo de problemas para llegar a cotas más altas.
Una red neuronal no es más que un conjunto de problemas de clasificación dispuestos en modo de red, donde la salida de uno de ellos se convierte en la entrada del siguiente o siguientes, que a su vez serán las entradas de otro. Tratando así los datos de entrada en múltiples niveles para obtener la salida más eficiente a la entrada dada.
El diseño de estas redes neuronales es el que dicta cómo se disponen los pequeños problemas de clasificación para dar la solución más óptima y cómo se relacionan entre ellos.
En problemas complejos o investigaciones sobre este tema, se llegan a crear redes de redes neuronales donde la salida de una sea la entrada de otras, llegando así a altas cotas de modelado de aprendizaje.
Conclusión
A través de estas breves explicaciones, he tratado de hacer ver que la inteligencia artificial no es algo mágico fuera de control que las máquinas crean por sí mismas, sino que se basa en fórmulas y funciones matemáticas traídas de la estadística “tradicional” para poder predecir ciertos acontecimientos.
Es cierto que dichas funciones son modeladas por la propia máquina, pariendo a su vez de otras funciones matemáticas. Lo cual, da la potencia a este tipo de tecnología capaz de modelar funciones (algoritmos) de un modo mucho más rápido y eficaz de lo que puede hacerlo el ser humano.
Es destacable, también, que toda la base de esta “tecnología del futuro”, como la llamábamos al principio, se propuso allá por los años setenta.
Si bien es cierto que no es hasta la aparición de procesadores más potentes y modos de almacenamiento de datos más robustos y eficaces cuando ha sido posible su desarrollo.
Espero haber contribuido a aclarar –de una forma básica– a aquellos interesados en el tema, cuál es la base de esta tecnología, para que, la próxima vez que lean artículos en la prensa generalista, puedan detectar qué hay de ciencia ficción y qué de realidad.