Translate

viernes, 10 de febrero de 2012

Mi experiencia con Machine Learning (I)

Ya llevo un par de semanas siguiendo las clases de machine learning , uno de los cursos online gratuitos de la universidad de Stanford, dónde el profesor Andrew Ng nos lleva a una iniciación a la materia.

Resumiendo un poco el machine learning consiste en hacer que una máquina ,por si sola , sea capaz de aprender a realizar una tarea. Implementando estas técnicas es como una máquina  puede aprender , por ejemplo, a ver. Enseñándole  una serie de imágenes ,le decimos lo que es cada cosa, así aprenderá a reconocer lo que ve, más  o menos como nosotros no? Jeje .No sólo se queda ahí, no vayan a pensar que esto se queda sólo en robots y cosas que ahora pueden ver de poca utilidad, es como por ejemplo  Gmail reconoce si un correo es spam o no, tomando como ejemplos que tipo de correos descartamos y cuales no.

Por ejemplo, en una de las primeras prácticas del curso se aprende como desarrollar una algoritmo de reconocimiento de números manuscritos , a partir de una serie de 5000 ejemplos la máquina aprende a reconocer números con una eficacia del 97%. En concreto este panel de números los reconoció sin ningún error, por cierto implemente yo el algoritmo jeje.

Y como demonios  hace una máquina para aprender en base a ejemplos? Bien, El aprendizaje de la máquina puede ser supervisado(supervised learning), este es el caso en el que se le muestra una serie de ejemplos ,  o sin supervisar(unsupervised learning). Ahora hablaré un poco de cómo funciona el  aprendizaje supervisado, que es hasta dónde tengo avanzado el curso.

Cuando el  aprendizaje puede es  supervisado, se proporciona una serie de ejemplos de forma que a partir de éstos  la máquina aprenda a hacer una determinada tarea, siendo cuanto más bueno cuanto mayor sea el número de ejemplos que le proporcionemos. Partiendo de una función H, puede ser un polinomio , una función de sigmoid… , el objetivo es ajustar esta función, a través de los parámetros de la función H de forma que represente de la mejor forma posible el conjunto de ejemplos que proporcionamos.

Cómo ajustamos esta función a los ejemplos? Aquí ya se transforma en un problema de optimización, dónde se deben buscar los parámetros de H de forma que minimice una función de coste  J . Función ésta que evaluará la diferencia existente entre la función definida por nosotros H y el valor real del ejemplo , consiguiendo con la optimización de los parámetros de H ajustar J de forma que la máquina vaya mejorando su precisión a la hora de realizar la tarea fijada, “aprendiendo” a hacerlo a base de ejemplos, como cuando somos pequeños y se nos dice esto es un coche, a partir de este ejemplo reconocemos más coches, la primera vez que vemos algo nuevo podemos confudirnos, por ejemplo al ver un tractor por primera vez pensaremos que es un coche, pero automáticamente este se transformará en un nuevo ejemplo y mejorará nuestra percepción del mundo. Es así como enseñándole 5000 números manuscritos y diciéndole cuál es cuál reconocera por si misma los números.

El machine Learning es una parte fundamental en el desarrollo de la IA, inteligencia artificial, ya que gracias a ello la máquina será capaz de aprender por si misma de forma que realice sus funciones eficientemente.
Aquí os pego una conferencia sobre robótica, está en inglés pero se entiende muy bien no se asusten, el ponente es Andrew Ng el mismo que da el curso online de Stanford, Machine Learning.
De todas formas os recomiendo que os apuntéis al curso de machine learning, cuya nueva edición debe estar a punto de empezar.

No hay comentarios:

Publicar un comentario