Saltar al contenido

Tipos de aprendizaje computacional (machine learning) – Aprendizaje por refuerzo, supervisado y no supervisado

Compartir en:

Los métodos tradicionales como los sistemas basados en el conocimiento dejan de lado un factor decisivo en la inteligencia artificial: el aprendizaje. El reto está en diseñar sistemas capaces de adaptarse de manera automática teniendo en cuenta las experiencias nuevas que van surgiendo. De aquí surge el machine learning o aprendizaje computacional.

Esta disciplina de la computación tiene un objetivo claro: mejorar el rendimiento de los sistemas basado en la propia experiencia de estos. En el post voy a intentar traslada una idea aproximada de los fundamentos teóricos más básicos, tipos de aprendizajes y una visión generalista de los sistemas de machine learning.

Técnicas de Machine Learning – Taxonomía

Cuando estamos diseñando o implementando métodos de inteligencia artificial avanzados, uno de los valores más importantes a tener en cuenta es la bondad de los resultados, es decir, que datos tenemos sobre «como de bueno» tiene que ser el resultado de la salida de un sistema de IA.

En entornos de aprendizaje reales, lo más común es encontrar 3 escenarios posibles. En los más fiables, tendremos datos relevantes y demostrativos de como debe ser un resultado. Este escenario es el más favorable, ya que podemos decidir si el resultado es bueno.

Otras veces habrá que decidir mediante heurísticas complejas si una salida es suficientemente buena, lo cual pede complicar el aprendizaje.

Finamente, nos encontraremos escenarios en que no tendremos ni la más remota idea de que salida queremos, simplemente queremos que nuestro sistema nos dé relaciones o conexiones que a nosotros nos son imposibles de encontrar.

Estos 3 escenarios son(normalmente esta clasificación es bastante aceptada por la comunidad):

  • El aprendizaje supervisado
  • El aprendizaje por refuerzo
  • El aprendizaje no supervisado

Aprendizaje supervisado

Si tenemos una idea exacta de los resultados de salida, además sabemos la respuesta que nuestro sistema debería dar dadas ciertas circunstancias, estamos ante un sistema de aprendizaje supervisado.

En estas situaciones, queremos que nuestro sistema reproduzca una salida cuando las entradas sean las que le hemos entrenado.

Un ejemplo clásico son las regresiones para predecir números o fechas, o las clasificaciones de categorías. Un sistema bien entrenado puede deducir según la información que tiene de un usuario que categorías de anuncios debe mostrarle con una exactitud pasmosa.

Este tipo de aprendizaje automático es el más directo, es capaz de convertir datos en información real que podemos procesar y analizar. Los algoritmos que nos podemos encontrar son:

  • Regresión lineal
  • Máquinas de vectores de soportes
  • Vectores de soporte regresión
  • Árboles de decisión regresión
  • Vecinos más cercanos
  • Bosques aleatorios regresión
  • Regresión logística
  • Regresión polinomial
  • Árboles de decisión clasificación
  • Bosques aleatorios clasificación

Aprendizaje por refuerzo

La parcialidad es la clave de este método, no sabemos a ciencia cierta el resultado de la salida del sistema, pero disponemos de cierta información valiosa aunque incompleta, normalmente podemos asegurar que un resultado es bueno y dar una recompensa, o si es malo, dar una penalización.

Básicamente, podemos considerar a nuestro sistema como rencoroso, si interactúa con alguien (o con algo, un entorno por ejemplo) y recibe una penalización, no le hará gracia, y tomara buena nota de ello (según los valores de penalización que reciba).

En cambio si recibe recompensas positivas, también lo tendrá muy en cuenta, e intentará adaptar su comportamiento a los resultados en los que no se le penalice.

Imaginaros un jugo de casillas donde una IA está interactuando, si un movimiento le da puntos o le acerca a la meta le dará una retroalimentación positiva, sin embargo, chocar con un muro o caer en una trampa le dará retroalimentación negativa.

Estos dos simples apuntes que va a ir tomando la IA, le haran tender a evitar los muros y las trampas, acercándose a las recompensas para conseguir la meta.

Aprendizaje no supervisado

Bien, este es el escenario donde no hay conocimiento de las salidas, no tenemos noción de que es lo que los algoritmos deben producir a partir de las entradas. Se trata de que se extraiga información útil a partir de información disponible, la magia es que no sabemos que es lo útil de esos datos.

Se basa generalmente en algoritmos de categorización que ordenar datos disponibles. Lo bueno es que lo hace de forma automática y autónoma. Las agrupaciones se hacen según las similitudes y patrones que son difíciles de ver, pero que los algoritmos desentrañan de manera aguda.

Si no se dispone de salidas claras, el aprendizaje no supervisado puede desentrañar conexiones o patrones ocultos que dan valor real a un conjunto inconexo y desordenado, por tanto debemos aplicarlo cuando no sabemos lo que estamos buscando.

Métodos más comunes de aprendizaje supervisado

k Nearest Neighbors (kNN)

Este algoritmo es clásico en aprendizaje supervisado basado en distancias, se utiliza un conjunto de datos (generalmente vectores) y al obtener nuevos datos, estos se clasifican utilizando medidas de similitud con los datos de entrenamiento.

Imaginaros una tabla de datos bancarios donde están todos nuestros datos, y que dependemos de un algoritmo para predecir la idoneidad de darnos un préstamo. Este se basará en la tabla de datos de que dispone (edad, saldo, gastos mensuales, etc.) de los clientes que han tenido un préstamo para aproximar si somos idóneos o no.

La forma más básica de clasificación es la utilización de distancia euclidiana, ya que es sencilla y rápida, aunque solo es aplicable a datos numéricos. Para son grupos de datos P y Q:

{\displaystyle d_{E}(P,Q)={\sqrt {(p_{1}-q_{1})^{2}+(p_{2}-q_{2})^{2}+\cdots +(p_{n}-q_{n})^{2}}}={\sqrt {\sum _{i=1}^{n}(p_{i}-q_{i})^{2}}}.}

Para entradas nominales o binarios, se suele utilizar la distancia de Hamming normalmente, aunque otros métodos también son acertados.

Árboles de decisión

Los métodos basados en distancia son muy potentes para la IA en los cálculos algorítmicos, pero sin duda los árboles de decisión son una de las opciones más utilizadas en métodos que se basan en reglas definidas.

Un árbol de decisión es una estructura similar a un diagrama de flujo donde un ítem interno representa un atributo, la rama representa una regla y cada ítem hoja representa el resultado del de salida.

Se usa asiduamente en modelos de predicción financiera, ya que nos da información mu y valiosa sobre el peso que tienen cada una de las decisiones que se toman en el árbol dados los atributos involucrados.

Support Vector Machines (SVM)

Se basan en estadísticas y pueden, dado un modelo de datos de entrenamiento (con clases etiquetadas), predecir las clases de un conjunto de datos nuevos. Obviaremos los detalles matemáticos, ya que son complejos, pero podemos dividirlas en dos grupos:

  • SVM lineales
  • SVM no lineales

Redes neuronales

Las redes neuronales intentan emular la biología creando unidades (neuronas) que trabajan entre sí mediante interconexiones tratando entradas dentro de la red. Una vez tratadas las entradas, la red ofrece salidas con los resultados de las neuronas.

Una de las características más potentes de estas es que son ellas mismas las que aprenden los valores óptimos para las variables que controlan la red con el fin de llevar a cabo su cometido de la mejor manera.

En las redes más simples de una sola capa (el perceptrón), las conexiones siempre van de las unidades de la capa de entrada a las de la capa oculta, y de ahí a la capa de salida. Las conexiones no van hacia la parte de atrás de la red (únicamente van hacia adelante).

En deep Lerning en cambio, las capas ocultas se incrementan a más de diez, generando salidas más generales y aumentando la complejidad de la red.

Métodos de aprendizaje no supervisado – agrupamiento

En los conjuntos de datos desordenados donde no se tiene una idea clara de la clasificación de estos, se usan algoritmo de agrupamiento para determinar mediante el aprendizaje no supervisado la idoneidad de agrupar un grupo de datos según sus características.

En este tipo de casos generalmente es necesario decir a los algoritmos un numero concreto de grupos ya que este no es capaz de discernir por si mismo un numero óptimo.

Algoritmo de agrupamiento k-means

Aprendizaje por refuerzo

Caramelo contra golpe de remo. Este tipo de aprendizaje se basa en aprender de la respuesta del entorno, la retroalimentación de este es la manera de determinar si las decisiones son buenas o no.

Si recibes un golpe de remo, deberás saber que la acción no es buena, y si recibes caramelos ¡Bien hecho! La acción ha sido correcta, ahora aprende la lección y a por el siguiente movimiento.

Métodos Q-learning

El agente debe aprender, actuar y decidir si las acciones que toma son buenas o no para su cometido. No hay una manera de definir recompensas, estas pueden ser puntos de un juego, piezas llevadas a destino sin tirarlas, pegatinas de «eres la mejor IA del mundo» esto no importa la idea ese que el algoritmo sea capaz de discernir que la acción tomada esta bien.

Estos algoritmos normalmente incluyen (para jugar a un juego por ejemplo)

  • El conjunto de estados del problema – El estado en una casilla del juego de ejemplo (vacío, ocupado…)
  • El conjunto de posibles acciones – Los posibles movimientos del agente
  • La función de recompensas – esta da un valor en relación con la acción del agente.

Algoritmos genéticos

Están inspirados en la teoría Darwiniana de la evolución natural, los predecesores serán mejores y más fuertes que los antecesores. Estos algoritmos simulan la aleatoriedad de la evolución y producen cambios basados en estas simulaciones, posteriormente tienen funciones que determinan que resultado es más evolucionado, por lo tanto, descartan los anteriores y continúan con los resultados «mejor evolucionados».

Como todos los métodos basados en búsqueda, los algoritmos genéticos permiten encontrar una solución a un problema concreto. Dado que son algoritmos estocásticos, normalmente no encuentran lo que definiríamos como «la mejor solución del problema», sino que encuentran una que se aproxima.

Conclusión

El mundo del machine learning es muy extenso y tiene unas fuertes raíces matemático/algorítmicas que dan soporte a toda la teoría que hemos visto arriba.

Desde luego la cantidad de problemas hace que cada manera de aprender a resolverlo sea única y no hay generalidad en estos casos, a cada problema su solución. Si algún día llega una IA capaz de convertirse en SKYNET desde luego no será un único tipo de algoritmo, sino una red combinada de todos ellos.


Juan Ibero

Inmerso en la Evolución Tecnológica. Ingeniero Informático especializado en la gestión segura de entornos TI e industriales, con un profundo énfasis en seguridad, arquitectura y programación. Siempre aprendiendo, siempre explorando.

Compartir en:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *