Publicado el Deja un comentario

¿Cuál es la diferencia entre el aprendizaje supervisado y no supervisado en machine learning?

🔥🔥 En este post, vamos a hablarte de un TEMA muy TOP, que está dando mucho de qué hablar en los últimos años. Estamos seguros de que has escuchado miles de veces el término «Inteligencia Artificial» y otros términos como «Big Data» o «Aprendizaje Automático». Bien, para que te puedas adentrar en el contexto de lo que todo esto significa debemos referirnos a un término clave: datos. Vivimos en la era de los datos, ya que tenemos una enorme cantidad de dispositivos que están emitiendo información todo el día: ordenadores, móviles, dispositivos inteligentes… por medio de Internet, gracias a las vías de comunicación principales: redes sociales, plataformas de almacenamiento en la nube…

Introducción al Aprendizaje Automático

Como te puedes imaginar, si una empresa quiere hacer el estudio de mercado del comportamiento de los usuarios a la hora de comprar X producto, no se van a poner a analizar todos los datos de forma manual… porque les llevaría siglos, básicamente.

Para lidiar contra estos problemas, en una era donde la dificultad no está en generar ni obtener datos (porque de eso ya tenemos de sobra), las técnicas de inteligencia artificial han supuesto un cambio en la forma de hacer las cosas. Dentro de este área genérica de la inteligencia artificial, existen varias ramas, de las cuales el aprendizaje máquina o aprendizaje automático es una de las más conocidas.

En una definición muy burda, la Inteligencia Artificial es un conjunto de estrategias que se utiliza cuando algo no se puede resolver con un algoritmo convencional o no se puede hacer en un tiempo razonable. Y dirás… ¡Uff! Ya empezamos con conceptos complicados. Mejor veámoslo con un ejemplo.

El típico ejemplo que se suele dar como primera pincelada del aprendizaje máquina dice así: imagínate que tienes un conjunto de imágenes y quieres determinar si en ellas aparece una cara o no. Para una persona, es una tarea relativamente sencilla pero, a priori, para una máquina no. Pues bien… el aprendizaje máquina nos permite lidiar contra este tipo de cosas. El cómo lo conseguimos es un proceso un poco más complicado de explicar. Pero vamos poco a poco.

Tipos de aprendizaje máquina

Existen tres tipos principales de aprendizaje máquina:

  • Aprendizaje supervisado.
  • Aprendizaje no supervisado.

Cada tipo de aprendizaje tiene unas particularidades y está dirigido a unas ciertas aplicaciones, como veremos a continuación.

Aprendizaje supervisado

El aprendizaje supervisado es un tipo de aprendizaje automático que se caracteriza por la necesidad de datos etiquetados manualmente para que pueda funcionar. ¿Y qué es esto de los datos etiquetados manualmente? Retomando el ejemplo de antes, las imágenes de nuestro conjunto de entrada van a ser etiquetados como «imagen con cara», «imagen sin cara». La cuestión es que antes de que nuestro sistema de aprendizaje sea capaz de recibir una imagen y decir si tiene una cara o no, primero necesita que nosotros le enseñemos qué es una cara.

Para hacer el etiquetado manual en este caso, es preciso coger una a una todas las imágenes y almacenar en algún sitio algo así como «esta imagen tiene una cara, esta no, esta tampoco, esta sí, esta no, esta sí, esta no…». A un nivel matemático y más cercano a la informática, la presencia de una cara en una imagen podría ser un «1» y la ausencia sería representada por un «0».

¿Y cómo conseguimos con esto que nuestro sistema de aprendizaje sea capaz de resolver la tarea de forma automática? Para ello, es necesario lo que se denomina como proceso de entrenamiento. Este proceso consiste, a grandes rasgos, en enseñarle a nuestro sistema (lo que en muchas ocasiones llamamos modelo de aprendizaje y, por simplificar, modelo) que «a esta imagen que tiene una cara se le asigna la etiqueta 1 y, a esta imagen que no tiene ninguna cara, se le asigna la etiqueta 0».

Eso se hace con todas las imágenes que tenemos en nuestro conjunto (lo que comúnmente se llama conjunto de datos) en repetidas ocasiones, hasta que nuestro modelo haya aprendido a saber qué es una imagen de una cara y qué no lo es. De esta forma, cuando nosotros le pasemos una imagen nueva que no haya visto previamente, el modelo debería ser capaz de identificar correctamente si en esa imagen hay una cara o no. Deberías estar ahora mismo lleno de dudas y preguntándote cómo se consigue todo esto. Lo cierto es que depende de muchas cosas y no es conveniente explicarlo en este apartado, ¡ya que solo hablar de esto llevaría varios posts!

En este mundo del aprendizaje supervisado, existen principalmente dos tipos de problemas.

PROBLEMAS DE CLASIFICACIÓN

Los primeros tipos de problemas de los que vamos a hablar son los de clasificación. Para ellos, la salida de nuestro modelo será binaria y nos dirá si la imagen pertenece a una clase o no. En el ejemplo mencionado hasta ahora, el modelo debería determinar si una imagen dada pertenece a la clase «imagen de caras» o, por el contrario, no pertenece a dicha clase. En problemas de clasificación destacan algoritmos como las redes de neuronas, las máquinas de soporte vectorial o el algoritmo kNN.

PROBLEMAS DE REGRESIÓN

El segundo tipo de problemas es el de regresión. En este caso, lo que se pretende hacer no es obtener un modelo que nos devuelva un valor binario, si no un número que represente una variable determinada. Por ejemplo, determinar el valor que debería tener una casa en función de sus características.

Imáginate que disponemos de un conjunto de datos con muchos registros de diferentes casas. Para cada registro, se especifican cosas como tamaño, número de plantas, si tiene jardín o no, en qué barrio se encuentra, el número de dueños que ha tenido… y todo el conjunto de cosas que nos podamos imaginar que influyan en el valor de una casa. Junto a esas características, se debe especificar el precio concreto de esa casa. Ese precio es equivalente a la etiqueta de los problemas de aprendizaje supervisado, en el sentido de que primero debemos proporcionarlo de forma manual.

Una vez hecho esto, el modelo de regresión se entrena con el conjunto de registros de casas varias veces hasta que aprenda a predecir bien los precios. Si ha sido convenientemente entrenado, al pasarle las características de una nueva casa que no ha visto previamente debería ser capaz de predecir de manera correcta su precio.

Algoritmos no supervisados

Existe otra variante del aprendizaje automático que se denomina como «aprendizaje no supervisado». En este caso, nosotros no tenemos que proporcionarle al modelo muestras etiquetadas manualmente, como ocurría antes. Eso sí, no servirá para resolver la misma clase de problemas. Estos algoritmos no supervisado suelen utilizarse para resolver lo que se denomina clustering o agrupamiento. Para este caso, nosotros tenemos un conjunto de cosas que queremos repartir en grupos en caso de que presenten similaridades entre sí.

Por ejemplo, imagínate que tienes un conjunto de personas las cuales quieres organizar en diferentes grupos por la razón que sea. Suponte que quieres crear cuatro grupos: mujeres altas, mujeres bajas, hombres altos y hombres bajos. Para caracterizar a esas personas, debes representarlas en función de su sexo y altura.

Pues bien, el modelo de aprendizaje no supervisado tomará esos datos y establecerá por sí mismo un criterio para discernir, primero entre hombres y mujeres y, más tarde, entre personas altas y bajas, ya que las va a agrupar en función de su estatura, estableciendo automáticamente un umbral. Si se supera ese umbral, se considera del grupo «alto» y, si no se supera, quedaría en el grupo «bajo». Lo cierto es que esto es un ejemplo muy simple… estos métodos no son tan inmediatos de usar, pero como ejemplo introductorio no está mal.

Para este tipo de modelos de aprendizaje, también es necesario un cierto proceso de entrenamiento pero, en ningún caso, requerirá de muestras etiquetadas de forma manual. Uno de los algoritmos más conocidos de aprendizaje no supervisado es el k-medias o cualquiera de sus variantes.