Una de las características más importante de la Inteligencia Artificial, es su capacidad de aprender automáticamente. En este artículo vamos a explicar cómo aprende la Inteligencia Artificial y los tipos de aprendizaje automático que existen: supervisado, no-supervisado, semi-supervisado y por refuerzo.
Para hacerlo más interesante, vamos a empezar con un ejemplo. Imaginaos que tenemos que escribir un programa para detectar si un correo electrónico es spam o no. Podríamos intentar eliminar los correos que tuviesen algunas palabras. Las palabras las pondríamos en un fichero para que fuese más fácil editarlo, claro está. Pero habría dos problemas:
- Sería casi imposible que se nos ocurran todas las palabras (o combinaciones de palabras) que poner en el fichero. Así que seguiríamos recibiendo spam.
- Probablemente algunos correos serían clasificados como spam sin realmente serlo. Así que perderíamos mensajes.
Podríamos mejorar nuestro fichero, añadir otro fichero diciendo que otras combinaciones de palabras están autorizadas, etc. Pero requeriría de mucho trabajo por nuestra parte, y la gente que envía correos basura, acabaría encontrando la forma de saltarse nuestras reglas.
Usando técnicas de Inteligencia Artificial, y en particular usando el Machine Learning podemos ahorrarnos este trabajo. Le podemos dar a la IA una lista de correos deseados y otra de correos basura. Esta es todo la información que la Inteligencia Artificial necesita para aprender la diferencia. No sólo nos ahorrará el trabajo de hacerlo a nosotros; además los resultados serán mejores de lo que nosotros podríamos haber hecho.
La forma de aprender de la inteligencia artificial depende del tipo de aprendizaje automático (machine learning) que estemos usando. Podemos distinguir 4 tipos de machine learning según la supervisión que necesiten: supervisado, no supervisado, semi-supervisado y por refuerzo. Veamos la diferencia.
Índice
Aprendizaje Supervisado
El aprendizaje supervisado, recibe el nombre de «supervisado» porque necesita que siempre le enseñemos la respuesta correcta. Por ejemplo, para resolver el problema de clasificar correos electrónicos como spam o no spam, necesita que le demos ejemplos históricos correctamente clasificados. En otras palabras, para cada caso de ejemplo que le demos, necesita saber si el correo era spam o no.
Sabiendo cuál era la respuesta correcta, la Inteligencia Artificial aprende de sus propios errores. Muchos algoritmos supervisados empiezan dando respuestas aleatorias y después van mejorando a medida que aprenden de sus errores.
El aprendizaje supervisado es muy útil cuando queremos que la Inteligencia Artificial realice una tarea en el futuro. Esta característica hace a este tipo de aprendizaje automático muy atractivo para muchos negocios. En el entorno empresarial, el aprendizaje supervisado también se conoce como «análisis predictivo«.
Proceso del aprendizaje supervisado
- Recopilar datos históricos, incluyendo la respuesta correcta
- Construir un modelo de machine learning con esos datos
- Evaluar el modelo, para entender qué rendimiento podemos esperar de él
- Usar este modelo con datos nuevos. Por ejemplo, cuando llegue un correo electrónico nuevo
Este proceso está un poco simplificado. En otro artículo lo extenderé, pero da una idea de la forma de pensar acerca del aprendizaje supervisado.
Ejemplos de aprendizaje supervisado
- Clasificar correos electrónicos en genuinos o spam
- Predecir por cuánto dinero se va a vender una propiedad inmobiliaria
- Calcular la probabilidad de que hagas click en un anuncio
- Decidir qué hotel enseñarte primero en una web de hoteles
- Estimar si el cliente de un banco será capaz de pagar un crédito
- Recomendar si es mejor comprar ahora tu vuelo o es mejor esperar
- El traductor de Google
- Detección de objetos en una imagen
- Reconocimiento y síntesis de voz
- Estimar qué edad tienes a partir de una foto
- Predecir qué clientes van a cancelar su contrato con su compañía telefónica
- Estimar cuántas visitas va a tener un artículo en la web
- Generación de música por ordenador
Aprendizaje No Supervisado
El aprendizaje no supervisado, no necesita supervisión. Esto quiere decir que no necesita que le digamos cuál es la respuesta correcta. También significa que no podemos calcular el error de sus resultados. Cuando usamos aprendizaje no supervisado, la Inteligencia Artificial aprende de los datos mismos, por así decirlo.
El aprendizaje no supervisado es útil cuando queremos entender mejor nuestros datos históricos. Puede tener implicaciones en el futuro pero no son tan obvias. La principal ventaja de cara al futuro es que nosotros, los humanos, entendemos mejor nuestros datos. Con este nuevo conocimiento revelado por la IA, podemos tomar mejores decisiones. Veamos un ejemplo.
Los supermercados generan muchísimos datos. Entre ellos, están los datos de lo que cada cliente compra. Aunque no tengan forma de saber quién eres, sí saben lo que un cliente anónimo ha metido en el carro de la compra. Cuando le damos a la IA los datos del carro de la compra, no le decimos lo que tiene que hacer con ellos. En este sentido no hay ninguna «solución correcta». Sólo le pedimos que analice los datos y nos diga si hay algo interesante en ellos.
Usando aprendizaje no supervisado, hace tiempo se descubrió que muchos de los carros de la compra que tenían cerveza, también tenían pañales. Esta relación sobre datos históricos nos permite idea una estrategia: ¿y si ponemos nuestra marca de pañales al lado de la cerveza? El resultado fue que muchos clientes compraron los pañales de la marca el supermercado sólo por la comodidad de tenerlos tan a mano.
Proceso del aprendizaje no supervisado
- Recopilar datos históricos
- Instruir a la Inteligencia Artificial a que busque patrones, grupos, etc.
- Utilizar la información nueva para tomar mejores decisiones en el futuro
Ejemplos de aprendizaje no supervisado
- Ayudar a elegir qué medidas del cuerpo hay que usar para las tallas (XS, S, M, L, XL, XXL, etc.)
- Comprimir imágenes (con pérdida de calidad)
- Sistemas de recomendación. Por ejemplo, los que usa Netflix o Amazon
Aprendizaje Semi-supervisado
El aprendizaje semi-supervisado está entre el aprendizaje supervisado y el aprendizaje no supervisado:
- utiliza datos etiquetados, como en el aprendizaje supervisado
- y también datos no etiquetados, como en el aprendizaje no supervisado
Conseguir datos etiquetados, en algunos casos, es bastante difícil. Por ejemplo, si queremos construir nuestro sistema de detección de spam, alguien tiene que decidir cuáles mensajes son spam y cuáles no. Y ese alguien somos nosotros, los humanos. Necesitamos hacer este trabajo manual para que la Inteligencia Artificial pueda aprender qué es lo que tiene que hacer.
Usando una estrategia de aprendizaje semi-supervisado, podríamos etiquetar manualmente algunos correos electrónicos, dejar que la Inteligencia Artificial aprenda y empezar a usarlo. No va a funcionar tan bien como si hubiésemos etiquetado más correos. Pero por lo menos, podríamos empezar a utilizar el sistema anti-spam antes. Seguramente tendríamos correos mal clasificados, pero conforme los fuésemos etiquetando correctamente iría aprendiendo mejor.
Cuando esto se hace a una escala mayor, no resulta tan pesado. Por ejemplo, si usas el correo de Google, cada vez que marcas un correo como spam, estás ayudando a todos los demás usuarios de gmail. Google usa crowdsourcing (colaboración distribuida) para que funcione muy bien con muy poco trabajo individual … aunque sea mucho trabajo si tenemos en cuenta a todas las personas que contribuyen.
Proceso del aprendizaje semi-supervisado
- Recopilar los pocos datos históricos históricos que tengan resultados disponibles
- Recopilar los datos históricos sin resultados
- Evaluar la posibilidad de etiquetar manualmente más datos históricos
- Instruir a la Inteligencia Artificial a que aprenda utilizando aprendizaje supervisado los datos históricos para los que tenemos resultados
- Usar el modelo de machine learning aprendido para etiquetar automáticamente el resto de los datos
- Usar otro modelo de machine learning supervisado con los datos etiquetados inicialmente y los datos etiquetados automáticamente
Ejemplos de aprendizaje semi-supervisado
- Detección de correos basura
- Detección automática de anomalías
- Reconocimiento facial
Aprendizaje por Refuerzo
El aprendizaje por refuerzo es una especie de aprendizaje supervisado … sin llegar a serlo. En el aprendizaje supervisado, para cada dato que ofrecemos como ejemplo, también decimos cuál fue solución correcta. En el aprendizaje por refuerzo, no podemos dar la solución correcta hasta saber lo que la Inteligencia Artificial va a hacer. Normalmente hará muchas cosas, y sólo sabremos cómo de bien o de mal lo hizo después de un tiempo.
Como esto es un poco abstracto, vamos a poner un ejemplo. A lo mejor has visto en las noticias que AlphaZero gana a los mejores jugadores al ajedrez y al Go. Si queremos que la IA aprenda a ganar a humanos, o a otros programas de ordenador, no podemos decirle cuál es la solución correcta. Al decírselo, sólo podría ser tan bueno como nosotros o como los otros programas de ordenador. Si queremos que juegue mejor que nosotros, tenemos que enseñarle las reglas del juego y dejarle aprender por sí mismo. Sólo así podrá encontrar soluciones creativas, poco comunes y geniales.
El aprendizaje por refuerzo es el tipo de aprendizaje más difícil. La razón es que la IA no puede saber cómo de buena es la acción que acaba de realizar; en otras palabras, no puede calcular cuál ha sido su error. Tiene que esperar al final de la partida puede saber si ha ganado, empatado o perdido. Esta es la única información que tiene. En el aprendizaje por refuerzo, la Inteligencia Artificial aprende de sus éxitos y de sus fracasos (no de sus errores).
Nota: utilizo los términos «machine learning» y «aprendizaje automático» indistintamente.
Recursos
- [vídeo] introductorio a la Inteligencia Artificial y al Aprendizaje Automático (en inglés)
El reconocimiento facial en los hoteles es un tipo de aprendizaje semisupervisado?
Se puede hacer de varias formas. Una de las formas que funciona muy bien es enseñar a redes neuronales a reconocer si dos imágenes diferentes son de la misma persona o no. Es un algoritmo de clasificación supervisado, ya que podemos decir al entrenar la red neuronal si las imágenes eran de la misma persona o no.
Te dejo el siguiente paper por si quieres profundizar en el tema: https://arxiv.org/abs/1503.03832
Hola José,
Muchas gracias por la ayuda!! Otra duda que me había surgido es que ahora los hoteles pueden utilizar a software donde la inteligencia artificial les permite realizar «análisis de sentimientos» y determinar si un review es positivo o negativo. Relacionándolo con el ejemplo del correo spam en el aprendizaje semisupervisado, ¿la clasificación de reviews sería acercaría más a un tipo de aprendizaje semisupervisado?´.
Estoy haciendo mi trabajo final de carrera sobre la repercusión de la inteligencia artificial en la empresa hotelera y estoy introduciendo cada uno de los tipo de aprendizaje y la verdad es que del aprendizaje semi-supervisado es del que menos información encuentro o encuentro más dificultades para relacionar con el sector.
Muchas gracias por la ayuda.
Saludos,
Yaiza
El análisis de sentimiento sería también supervisado. Normalmente tienes ya muchos reviews que sabes si son positivos o negativos (por ejemplo, por el número de estrellas). Y aunque el hotel sea nuevo, puedes usar reviews de otros hoteles para construir un modelo de aprendizaje automático supervisado.
Parece que estás buscando ejemplos de aprendizaje semisupervisado. Estos problemas se caracterizan por el hecho de conocer la solución correcta en muy pocos casos. No conozco mucho la industria hotelera, así que seguro que para ti es más fácil encontrar estos problemas. Para saber si se beneficiarían de un enfoque semi-supervisado fíjate en estas dos características:
Hola José, me encantó tu artículo aclaró las dudas que tenía respecto de los tipos de aprendizaje. La Inteligencia Artificial es realmente una maravilla de la tecnología, te cuento que yo trabajo en el área comercial de mi empresa y haber automatizado los procesos nos ha sido de mucha ayuda sobre todo al recopilar datos históricos de los clientes para ofrecerles el producto que están buscando.
La inteligencia artificial es realmente muy integrador de comandos por el transcurso de tiempo, por ende , en la actualidad avanza muy rápidamente esa es la causa inmediata y por esto la razón de ser muy productivos hoy en días, por lo cual , es mejor primero indagar más allá de buscar la causa de todo el cambio de hecho en la realidad.