script

martes, 27 de mayo de 2014

Machine Learning: Introduccion.

Machine Learning (o Aprendizaje Automático) es una rama de la Inteligencia Artificial (dentro de las Ciencias de la Computación) que se encarga, básicamente, del estudio de los algoritmos que evolucionan basados en su propia experiencia con el fin de realizar una determinada tarea cada vez mejor. El objetivo principal de estos algoritmos es el de crear una hipótesis sobre los casos existentes para poder dar respuesta a nuevas situaciones. Por ejemplo, un juego de Damas que aprenda en cada partida sobre la forma de jugar de su oponente y mejore su performance frente a este. 


Definición

Siendo mas estrictos, un programa de computadora que realiza cierta tarea T se dice que aprende de la experiencia E si su desempeño, medido por P, mejora gracias a esta. 

Así, por ejemplo, podríamos definir un problema de la siguiente manera:
T: Jugar a las damas.
P: Cantidad de partidas ganadas.
E: Practicar jugando contra si mismo.


Clasificación

Existen dos tipos de algoritmos (en realidad son mas, como el aprendizaje reforzado, pero estas son las principales):
  • Algoritmos de aprendizaje supervisados
  • Algoritmos de aprendizaje no supervisados

- Los algoritmos de aprendizaje supervisados son aquellos en donde se conoce un subconjunto de "respuestas correctas" utilizadas para entrenarlo. Para que quede mas claro, veamos el siguiente ejemplo.
Supongamos que tengo un conjunto de datos que representa una variedad de tumores de acuerdo a su tamaño (el eje horizontal) y a su condición (malignos/benignos) y que se representan en el siguiente gráfico, donde 0 quiere decir que es benigno y 1 que es maligno:


Este conjunto de datos seria el utilizado para entrenar a nuestro algoritmo. Ahora, supongamos que se nos presenta un nuevo caso de un tumor con el tamaño representado por la traza celeste:


La idea de los algoritmos de aprendizaje supervisado es la de tratar de, a partir de los datos de entrenamiento utilizados, poder intuir la respuesta a nuevos casos. En particular, este tipo de problemas donde las variables de salida son discretas (cero o uno, que representan el tipo de tumor) se llaman problemas de "Clasificación". En los casos donde las variables de salida tomen valores continuos (por ejemplo el precio de X activo de acuerdo a sus características, lease el precio de una casa de acuerdo a su superficie en metros cuadrados) se los conoce como problemas de "Regresión".


- Por el otro lado, los algoritmos de aprendizaje no supervisados son aquellos en los que nuestro conjunto de datos no presenta ningún tipo de etiqueta que nos permita diferenciarlos entre si (para que quede mas claro, en el ejemplo anterior las etiquetas eran "maligno" y "benigno"). La idea de estos algoritmos entonces, es la de tratar de caracterizar a nuestro conjunto de datos en subconjuntos que presenten características similares. Por ejemplo, supongamos que contamos con la base de datos de clientes de una compañia que, basados en dos características principales, se ordenan de la siguiente manera (supongamos, edad en el eje horizontal y gasto mensual en efectivo en el eje vertical):


Una algoritmo de aprendizaje no supervisado se encargaría de realizar una segmentación de datos para separar a los clientes en distintas categorías con rasgos compartidos, lo que daría la siguiente salida:


Es verdad, entiendo que los dos ejemplos son bastante sencillos y superficiales, pero lo importante de ambos es que se vea que en un caso tengo distintos elementos para realizar una "aproximación" y en el otro estoy descubriendo características sin tener ningún ejemplo de guía. 

Bastante "teórico" por ahora, pero en próximas entregas prometo empezar a puntualizar mas todavía cada situación.



No hay comentarios:

Publicar un comentario