viernes, 5 de julio de 2013

Aprendizaje Automático - Aprendizaje Supervisado Informe Cátedra 2

Introducción

El aprendizaje automático puede definirse como un conjunto de técnicas computacionales que aprovechan la experiencia para mejorar su rendimiento o para realizar predicciones ajustadas a un problema dado.

Con experiencia nos referimos a toda la información pasada y que se encuentre a disposición del algoritmo. Por lo general esta información se encuentra en algún formato digital, que ha sido organizado por una persona o corresponde al input recibido mediante la interacción con el medio que rodea a la máquina y que ésta es capaz de percibir mediante el uso de distintos sensores.

La aplicación de la técnica del aprendizaje supervisado pretende hacer capaz el poder pedirle a una máquina que aprenda de nuestros datos cuando especificamos una variable resultado para ese conjunto. Esto reduce la tarea de la máquina a la de sólo predecir algún patrón (función) a partir de los datos de entrada, que le permita explicar la relación de los datos iníciales con el valor resultado esperado.

Al investigar métodos para la implementación del aprendizaje automático, se debe tener en cuenta que su meta es el diseño de algoritmos eficientes y de precisa predicción en el cálculo de resultados. Para explicar la eficiencia del algoritmo, se utilizan los métodos como la complejidad temporal y espacial, y además se debe tener en cuenta tanto el tamaño de la muestra como la cantidad de clases distintas (representaciones de estados) que se utilizarán para la predicción de funciones capaces de explicar la relación entre los datos y el valor esperado.

Se puede considerar que el aprendizaje automático se encuentra inherentemente relacionado a las disciplinas del análisis de datos, estadística, ingeniería de software y ciencias de la computación, debido a que gran parte

de la base de éste, se basa en métodos para el manejo de datos que combinan conceptos de la computación con ideas de la estadística, probabilidad y optimización.

Sobre sus aplicaciones
Los algoritmos de aprendizaje se han podido utilizar en distintos tipos de aplicaciones, dentro de las cuales se encuentran:

Clasificación de textos o documentos.
·         Ejemplo: Filtro de spam.
Procesamiento de lenguaje natural.
·         Ejemplo: Análisis morfológico, etiquetado gramatical, Parsing estadístico.
Reconocimiento de voz, análisis de voz y patrón biométrico
Optical Carácter Recognition (OCR).
·         Ejemplo: Reconocimiento de caracteres
Aplicaciones a la ciencia.
·         Ejemplo: Patrones de ADN, descubrimiento de elementos.
Visión artificial.
·         Ejemplo: Poder diferenciar objetos de la vida real.
Detección de fraudes.
Juegos
·         Ejemplo: Inteligencias para el contrincante (ajedrez).
Control no asistido de vehículos.
·         Ejemplo: Google Car.
Diagnóstico médico.
·         Ejemplo: Determinar presencia de enfermedades.
Sistemas de recomendación, motores de búsqueda.
·         Ejemplo: Bancos, Google.



Aprendizaje Automático –Aprendizaje Supervisado

Clasificación

La clasificación se centra la tarea de “clasificar” los vectores de input x en alguna de las clases k.

En la clasificación, el espacio de datos que representa al input y su correspondiente valor esperado se dividen en planos, donde cada uno representa una clase asignada. 

Regresión logística

Es aquella técnica que intenta estimar un valor binario(que puede representar  la existencia o carencia), según los datos de entrada, para determinar el estado del objeto al que la función hipótesis responde . Es similar a la regresión lineal, pero la salida de la variable es de valor discreto (para el caso de clasificación).


La función que es mayormente usada para poder evaluar la salida del algoritmo es la función sigmoid, la cual tiene un rango de valores finito de rango 0 hasta el 1, lo que nos permite poder determinar un escenario binario para cualquier variable del problema. Esta función se grafica de la siguiente manera:


Donde x es igual a nuestra función hipótesis:,
la cual considera cada parámetro de entrada xi con su factor de peso thetai en una sumatoria.

Ya que en la primera ejecución el algoritmo no encontrará la mejor estimación del clasificador, es necesario volver a correrlo para que encuentre qué thetas para los distintos parámetros de entrada terminan entregando un resultado similar al esperado. Para actualizar cada Thetai, se ocupa la siguiente función:


donde alfa simboliza la rapidez del aprendizaje.

Ej.: Para el siguiente problema, queremos saber si el invierno de este año será mas helado que el del año anterior (azul y rojo, respectivamente) mediante el uso de las temperaturas de este año y la diferencia con el día correspondiente del anterior.

Gráfico Nº1- Clasificación lineal


Predicción

Para el aprendizaje automático, nos referimos a predicción cuando queremos obtener un valor continuo que representa cierta propiedad o cantidad en un problema del mundo real. La variable que se intenta predecir esta ligada  al planteamiento de la función hipótesis.      

Regresión Lineal

La regresión lineal intenta modelar la relación entre dos variables adecuando una ecuación lineal a los datos observados.


Antes de intentar representar el problema actual mediante un modelo lineal, es necesario poder determinar si hay relación entre las variables de interés. Esto no implica que una variable es causal de la otra, más bien intenta determinar cuál es el grado de asociación entre esas dos. Si al parecer nuestras variables de entrada no parecen tener relevancia a la hora de predecir el resultado asociado, se considera que el modelo no es capaz de representar y predecir adecuadamente el modelo.

Al igual que en el problema de clasificación, este algoritmo requiere de múltiples ejecuciones actualizando theta para obtener una mejor predicción, se ocupa la misma fórmula que en la clasificación. La formula ocupada para representar la hipótesis del algoritmo es la siguiente: 
.


Ej.: Se intenta determinar cómo influye la televisión en la salud de la gente del país A, como se tiene tanto la razón de personas/televisión y el número de gente por médico, por lo tanto, se decide utilizar la influencia de la televisión como posible factor para predecir la razón de persona/médico para este país. Se genera un modelo que es capaz de predecir este comportamiento y se aplica para nuestro problema.


Gráfico Nº2- Regresión lineal


Algoritmos de árboles de decisión

·         Hipótesis de Aprendizaje Inductivo
·         Razonamiento Deductivo
·         Razonamiento Abductivo

Los algoritmos de árboles de decisión intenta ser capases de explicar un problema mediante la asociación lógica entre las variables de entrada y el resultado esperado utilizando la experiencia que ya ha podido obtener de datos almacenados para ocasiones anteriores, o de aquellos que va tomando mediante algún sensor específico.

Estos algoritmos se basan en 3 elementos claves de la lógica, siendo estos la Hipótesis de Aprendizaje Inductivo, Razonamiento deductivo y Razonamiento Abductivo.

Ya que se trata de aproximar una función desconocida a partir de los ejemplos positivos y negativos de los resultados anteriores, estos ejemplos son representados por <x, F(x)>, donde x representa un caso del cual “y” debe ser dependiente (una variable de entrada) y f(x) al valor de la función aplicada sobre x. Entonces, la inducción consiste en obtener una función h (hipótesis) capaz de aproximar f.

Entonces el problema comienza por determinar qué atributo debe ser la raíz del árbol, y para poder determinarlo se ocupan las medidas de entropía[S(E)] (Shannon), la efectividad[S(E,X)] del atributo para subdividir un conjunto de ejemplos en n subconjuntos y la ganancia de información[ganancia(E,S(E,X))], que mide como el atributo clasifica a los ejemplos. Finalmente se elije al que tenga mayor ganancia de la información

Ventajas:
·         decisiones basadas en la estadística (es capaz de tratar ruido)
·         Los clasificadores aprendidos (árboles de decisión) son fácilmente interpretables

Problemas:
·      mantiene una hipótesis única /no es capaz de aprender de forma incremental. (si se tienen nuevos ejemplos hay que calcular el árbol de nuevo)
·      tratamiento de valores desconocidos (información incompleta)
·      árboles exponenciales para determinadas funciones (ej.: función paridad)
·      overfitting: generar árboles demasiado específicos (¿Cuándo se debe parar de dividir los nodos?)

Ej.: Se desea si el clima actual es adecuado para el criterio almacenado de un usuario en base al pronóstico, humedad y viento.



Redes Neuronales

Para redes neuronales existen 3 componentes importantes:
·         Dendritas
·         Axones
·         Soma

El proceso básico de sinapsis neuronal consiste en que una vez la neurona se encuentra lista para enviar un impulso a otra, esta mediante su axón (prolongación desde la cual una neurona emite el impulso) transfiere la señal hacia la dendrita de la siguiente neurona (terminal que permite recibir impulsos), la cual transfiere este estímulo hacia el soma (cuerpo de la neurona).




Para el caso de las redes neuronales artificiales existe un algoritmo llamado el perceptrón, en el cual se define el concepto más básico de red neuronal como perceptrón simple, donde se tiene un sistema compuesto de 1 sola neurona.

El diseño de un perceptrón obedece al siguiente esquema:




Donde cada input es recibido por una neurona de una capa, se calcula el nuevo peso para cada neurona (que generalmente es aleatorio al crear una red) de la capa según el radio de aprendizaje, peso actual, output esperado y obtenido de cada una de ellas, y se envía al output de las neuronas de la siguiente capa para continuar el proceso.

La formula de actualización utilizada es: wi = wi + delta_wi

Dondedelta_wi = alpha (learning rate) * (Output Esperado - Output) xi

Ej.



w1=.1
w2=.5
w3=.8

alpha=0.2 x3=-1


x2
T
O
delta_w1
w1
delta_w2
w2
delta_w3
w3 (=t)
-
-
-
-
-
.1
-
.5
-
.8
0
0
0
0
0
.1
0
.5
0
.8
0
1
1
0
0
.1
.2
.7
-.2
.6
1
0
1
0
.2
.3
0
.7
-.2
.4
1
1
1
1
0
.3
0
.7
0
.4
0
0
0
0
0
.3
0
.7
0
.4
0
1
1
1
0
.3
0
.7
0
.4
1
0
1
0
.2
.5
0
.7
-.2
.2
1
1
1
1
0
.5
0
.7
0
.2
0
0
0
0
0
.5
0
.7
0
.2
0
1
1
1
0
.5
0
.7
0
.2
1
0
1
1
0
.5
0
.7
0
.2
1
1
1
1
0
.5
0
.7
0
.2



Para este caso terminamos con:

W1=.5
W2=.7
W3=.2



Algoritmos Bayesianos

Breve mención a los algoritmos Bayesianos, consisten en la inferencia estadística de eventos basado en la relación que estos 2 tienen, y si uno es capaz de determinar la presencia del siguiente.

Ej. breve:
Let P(Test=+ve | Disease=true) = 0.95, so the false negative rate, P(Test=-ve | Disease=true), is 5%. Let P(Test=+ve | Disease=false) = 0.05,, so the false positive rate is also 5%. Suppose the disease is rare: P(Disease=true) = 0.01 (1%). Let D denote Disease (R in the above equation) and "T=+ve" denote the positive Test (e in the above equation). Then
                                 P(T=+ve|D=true) * P(D=true)
P(D=true|T=+ve) =  ---------------------------------------------------------------------------
                        P(T=+ve|D=true) * P(D=true)+ P(T=+ve|D=false) * P(D=false)

                   0.95  * 0.01                0.009
       =  -----------------------------   =  ----------     = 0.161
          0.95*0.01 + 0.05*0.99        0.0590

 

Aprendizaje supervisado: notación básica



 Objetivo:
·         aprender un cierto concepto objetivo (por ejemplo: “determinados objetos son triángulos”) , a partir de ejemplos, definidos como un conjunto de atributos, de los que conocemos los resultados (p. e.: objeto nº1=triángulo, objeto nº2=triángulo, objeto nº3=no triángulo, …)

Problema:
Encontrar una descripción del concepto objetivo (hipótesis) que:
·         I) concuerda con los ejemplos presentados.
·         II) generaliza a casos nuevos.

Matemáticamente:
Suponemos que el concepto objetivo es una función f: X => Y
·         X es un espacio de entradas (posibles casos)
(ej.: {objeto azul nº1, objeto verde nº5, …})
·         Y el espacio de salidas (resultados) {ej.:{triángulo, no triángulo})

Tenemos como entrada una secuencia de ejemplos de pares (entrada, salida):
·          
·         ej.:{(objeto rojo nº22, triángulo), (objeto verde nº34, no triángulo), …}

Objetivo del algoritmo de aprendizaje:
·         encontrar función h є H que aproxime f , tal que:
     para todos (o la mayoría de los) ejemplos presentados
     h tenga expectativas de comportase igual (o similar) a f para casos aun desconocidos (generalización)
     H : espacio de hipótesis.


 Formalización De Un Problema De Aprendizaje Supervisado

Clase de problemas:
·         ¿Qué se debe aprender (concepto objetivo) , cómo se representan los elementos (atributos y posible valores de cada atributo)?
Información presentada (ejemplos de entrenamiento):
·         Ejemplos positivos, negativos o ambos
Espacio de las hipótesis:
·         ¿En qué lenguaje se presentan las hipótesis (árbol de decisión, red neuronal), cuál es el conjunto de hipótesis?
Algoritmo de aprendizaje:
·         ¿Qué algoritmo /arquitectura se usa?
Características del aprendizaje
·         ¿Cuándo se ha aprendido?
·         ¿Cuándo se aprende correctamente?




Referencias

Machine learning for hackers por Drew Conway & John Myles White

Machine learning in action por Peter Harrington
Foundations of Machine learning por Mehryar Mohri, Afshin Rostamizadeh, Ameet Talwalkar
Inductive Logic programming por Francesco Bergadano, Daniel Gunetti







Enlace a nuestro informe
Informe a presentar

Enlace a las PPT presentadas.
Diapositivas