Aprendizaje inductivo

Anuncio
Inteligencia Artificial
“Aprendizaje inductivo”
Ing. Sup. en Informática, 4º
Curso académico: 2011/2012
Profesores: Ramón Hermoso y Matteo Vasirani
Aprendizaje
Resumen:
3. Aprendizaje automático
3.1 Introducción al aprendizaje automático
3.2
Árboles de decisión
3.3
Redes neuronales
3.4
Algoritmos genéticos
3.5
Aprendizaje por refuerzo
Aprendizaje: motivación
1.
Es difícil especificar el conocimiento necesario para realizar una
determinada tarea
– Ejemplo: diagnosis de cáncer de mama a partir de imágenes
2.
Organizar, analizar y estructurar los datos y la información
3.
Automatizar los sistemas y personalizarlos a los individuos
Solución: sistemas que aprendan y se adaptan
Aprendizaje: posibles tareas
• Clasificación:
– clasificar productos de una fábrica en correctos y erróneos
• Predicción:
– predecir el tráfico en una ciudad
• Diagnostico:
– diagnosticar enfermedades de pacientes a partir de síntomas
• Agrupación:
– agrupar páginas Web en función de su contenido
• Caracterización:
– Determinar las características de las personas que compren
determinados tipos de productos
• Mejorar la eficiencia:
– mejorar un robot que tiene que encontrar caminos a una determinada
posición en un edificio para que encuentre los caminos más rápido
Aprendizaje
Representación
de los datos
Simbólico
• Representación de los datos por
características y atributos
• E.g.: estado de trafico
tiempo – día de la semana – hora
<lluvia–viernes–8:00>
<sol–sábado– 12:00>
Sub-simbólico
• Representación no directamente
interpretable
• E.g.: estado de trafico
tiempo – día de la semana – hora
<0001–1101–0010>
<1101–0101–1110>
Aprendizaje
Tipo de
datos
Supervisado
• Tenemos un conjunto de ejemplos para los que
conocemos los resultados
• E.g.: estado de trafico
tiempo – día de la semana – hora tráfico
<lluvia–viernes–8:00 mucho>
<sol–sábado– 12:00 poco>
No
supervisado
• Tenemos un conjunto de ejemplos sin
etiquetas
• E.g.: agrupar objetos
Aprendizaje
Supervisado
Simbólico
Sub-simbólico
Árboles de decisión
Redes neuronales
No
supervisado
Aprendizaje por refuerzo
Algoritmos genéticos
Aprendizaje supervisado: ejemplo
Ejemplos
sí
Casos nuevos
no
sí
sí
sí
no
no
Algoritmo de
aprendizaje
Concepto objetivo:
objetos con 3 lados son
triángulos
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
Aprendizaje supervisado: notación básica
• Matemáticamente:
– Suponemos que el concepto objetivo es una función f:X→Y
• X es un espacio de entradas (posibles casos)
(p.E.: {objeto azul nº1, objeto verde nº5, …})
• Y el espacio de salidas (resultados) {p.e.:{triángulo, no triángulo})
– Tenemos como entrada una secuencia de ejemplos de pares (entrada,salida):
• { (x1,y1), (x2,y2), …} con xi ∈ X e yi ∈ Y
• p.e.:{(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:
– h(xi)=f(xi) 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:
– ¿Que 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?
Espacio de hipótesis
• Encontrar una hipótesis que:
– Concuerda con los ejemplos de entrenamiento
– Generaliza bien a casos aún desconocidos
• ¿Cómo encontrar esta hipótesis h є H?
y
y
x
y
x
• Navaja de Ockham:
– Entre varias hipótesis posibles, preferir la hipótesis más sencilla.
x
Clasificación
• Clasificación:
– f:X → Y, Y es discreto
– Clasificación binaria:
• Problema: decidir la pertenencia de casos a una clase
• f:X →{0,1}
• Posible información presentada (ejemplos de entrenamiento):
– Casos positivos: (x,1) (x pertenece a la clase)
– Casos negativos: (x,0) (x no pertenece a la clase)
– La clasificación binaria tiene muchas aplicaciones reales:
• Frecuentemente se identifica aprendizaje supervisado con la
clasificación
– Árboles de decisión y redes neuronales son algoritmos de
clasificación
Aprendizaje
Resumen:
3. Aprendizaje automático
3.1 Introducción al aprendizaje automático
3.2
Árboles de decisión
3.3
Redes neuronales
3.4
Algoritmos genéticos
3.5
Aprendizaje por refuerzo
Ejemplo
• Decidir si se puede dar una tarjeta de crédito a clientes de un banco
Saldo act.
Edad
Saldo med.
Años cliente
¿Dar tarjeta?
bajo
<18
alto
<1
no
alto
18-25
alto
>1
si
alto
18-25
medio
>1
no
alto
>25
bajo
>1
no
bajo
>25
medio
>1
si
alto
18-25
alto
>1
si
bajo
18-25
alto
<1
no
medio
<18
medio
<1
no
medio
>25
alto
<1
si
• Objetivo: aprender un clasificador de clientes
Árboles de decisión como clasificadores
• Un ejemplo:
edad
<18
18-25
NO
saldo med.
bajo, medio
NO
>25
saldo med.
alto
bajo
saldo act.
NO
bajo, medio
alto
NO
años cliente
<1
NO
>1
alto
medio
años cliente
<1
NO
SI
>1
SI
SI
Clasificar un caso: (saldo act.=bajo, edad=>25, saldo med.=medio, años cliente=>1)
Aprendizaje de árboles de decisión
• Problema: inducir (encontrar/aprender) árboles de decisión (hipótesis) a
partir de ejemplos de entrenamiento
• Algoritmo 1:
– para cada ejemplo de entrenamiento añadir la rama completa del ejemplo
saldo act.
Ejemplo 1:
((bajo,<18,alto,<1),no)
bajo
edad
<18
saldo med.
alto
años cliente
<1
NO
hipótesis 1
Aprendizaje de árboles de decisión
• Problema: inducir (encontrar/aprender) árboles de decisión (hipótesis) a
partir de ejemplos de entrenamiento
• Algoritmo 1:
– para cada ejemplo de entrenamiento añadir la rama completa del ejemplo
saldo act.
Ejemplo 1:
((bajo,<18,alto,<1),no)
bajo
hipótesis 2
alto
edad
edad
<18
18-25
Ejemplo 2:
((alto,18-25,alto,>1),si)
saldo med.
saldo med.
alto
alto
Las hipótesis concuerdan
con los ejemplos, pero:
no generalizan a casos nuevos
años cliente
años cliente
<1
>1
NO
SI
Aprendizaje de árboles de decisión
• Algoritmo de aprendizaje de árboles
de decisión:
{(E1,si),(E2,si),(E3,no),(E4,no),(E5,si),…}
– crear el árbol de forma recursiva de
A1
A
=a
A1=b
arriba abajo
1
– utilizar en cada nodos el atributo
{(E1,si),(E2,si),(E4,no),…}
{(E3,no),(E5,si), …}
“más importante”
A2
– el atributo más importante es él que
…
A
=d
2
mejor discrimina los ejemplos que
A2=c
han llegado hasta este nodo
{(E1,si),(E2,si)}
{(E4,no),…}
– clasifica los ejemplos y sigue en el
…
…
siguiente nivel
Aprendizaje de árboles de decisión: algoritmo ID3
•
•
•
•
Seleccionar el “mejor” atributo Ai
Crear un nodo para ese atributo con tantos sucesores
como valores tenga
Introducir los ejemplos en los sucesores según el valor
que tenga el atributo Ai
Por cada sucesor,
• Si sólo hay ejemplos de una clase ck entonces
etiquetarlo con ck
• Si no, llamar recursivamente el algoritmo con una
tabla formada por los ejemplos de ese nodo,
eliminando la columna del atributo Ai
Aprendizaje de árboles de decisión: ejemplo
Ej.:
edad
s_a
s_m
tarjeta
E1
<18
alto
alto
NO
E2
<18
bajo
bajo
NO
E3
18-25
alto
alto
SI
E4
18-25
bajo
alto
SI
E5
18-25
alto
bajo
NO
E6
18-25
bajo
bajo
NO
{E1,E2,E3,E4,E5,E6}
edad
<18
>25
18-25
NO
s_m
NO
{E1,E2}
{E3,E4,E5,E6}
{}
alto
bajo
medio
SI
NO
SI/NO
{E3,E4}
{E5,E6}
{}
Aprendizaje de árboles de decisión: elección de los
atributos
E
edad
s_a
tarjeta
Ej1
<18
bajo
NO
Ej2
<18
alto
NO
Ej3
18-25
mediano
SI
Ej4
>25
alto
SI
¿Cuál es el “mejor” atributo: s_a o edad?
Elección basada en la entropía de un atributo
– mide en contenido de información en bits
– ¿Cuántos bits hacen falta para codificar una respuesta que pueda tener n valores distintos y
cada valor ri tiene una probabilidad P(ri)
I[P(r1),…,P(rn)] = ∑ - P(ri) · log2 [P(ri)]
Para el conjunto de ejemplos E y el concepto “dar tarjeta”: r1=SI, r2=NO
I[P(SI),P(NO)] = -2/4 · log2 [2/4] -2/4 · log2 [2/4] = 1
Aprendizaje de árboles de decisión: elección de los
atributos
• El concepto objetivo tiene valores r1,…,rn (p.Ej.: r1=SI, r2=NO)
• Cada atributo Ak ∈ A tiene una serie de posibles valores v1,…,vm.. Estos dividen los
ejemplos del conjunto E en m subconjuntos E1,…,Em:
– p. e.: Ak=“edad”, v1=“<18”, v2=“18-25”, v3=“>25”, E1={Ej1,Ej2}, E2={Ej3}, E3={Ej4}
• Procedimiento para elegir el “mejor” atributo:
– Paso 1: Calcula la entropía de E:
IE [P(r1),…,P(rn)] = ∑i - P(ri) · log2 [P(ri)]
– Paso 2: Para cada Ak, se calcula la entropía de los subconjuntos Ei:
IEi [P(r1 |vi ),…,P(rn |vi )] = ∑j - P(rj | vi ) · log2 [P(rj | vi )]
– Paso 3: Para cada Ak, se calcula la cantidad de entropía del atributo:
I(Ak) = ∑j P(vj ) · IEj [P(r1 |vj ),…,P(rn |vj )]
– Paso 4: Elegir aquel atributo que obtiene la mayor ganancia de información:
Ganancia(Ak) = IE - I(Ak )
Aprendizaje de árboles de decisión: elección de los
atributos, ejemplo
E
edad
s_a
tarjeta
Ej1
<18
bajo
NO
Ej2
<18
alto
NO
Ej3
18-25
mediano
SI
Ej4
>25
alto
SI
¿Cuál es el “mejor” atributo:
s_a o edad?
• Paso 1:
– Calcula la entropía de E:
I[P(SI),P(NO)] = -2/4 · log2 [2/4] -2/4 · log2 [2/4] = 1
Aprendizaje de árboles de decisión: elección de los
atributos
E
edad
s_a
tarjeta
Ej1
<18
bajo
NO
Ej2
<18
alto
NO
Ej3
18-25
mediano
SI
Ej4
>25
alto
SI
¿Cuál es el “mejor” atributo:
s_a o edad?
• Paso 2:
– Para cada Ak, se calcula la entropía de los subconjuntos Ei:
– Ejemplo: edad
E={Ej1,Ej2,Ej3,Ej4}
edad
<18
E1={Ej1,Ej2}
18-25
>25
E2={Ej3}
I[P(SI|<18),P(NO|<18)] I[P(SI|18-25),P(NO|18-25)]
= -0/2 · log2 [0/2] -2/2 · = -1/1 · log2 [1/1] -0/1 · log2
[0/1] = 0
log2 [2/2] = 0
E3={Ej4}
I[P(SI|>25),P(NO|>25)]
= -1/1 · log2 [1/1] -0/1 ·
log2 [0/1] = 0
Aprendizaje de árboles de decisión: elección de los
atributos
E
edad
s_a
tarjeta
Ej1
<18
bajo
NO
Ej2
<18
alto
NO
Ej3
18-25
mediano
SI
Ej4
>25
alto
SI
¿Cuál es el “mejor” atributo:
s_a o edad?
• Paso 2:
– Para cada Ak, se calcula la entropía de los subconjuntos Ei:
– Ejemplo: s_a
E={Ej1,Ej2,Ej3,Ej4}
s_a
bajo
E1={Ej1}
I[P(SI|bajo),P(NO|bajo)]
= -0/1 · log2 [0/1] -1/1 ·
log2 [1/1] = 0
mediano
E2={Ej3}
I[P(SI|med),P(NO|med)]
= -1/1 · log2 [1/1] -0/1 ·
log2 [0/1] = 0
alto
E3={Ej2, Ej4}
I[P(SI|alto),P(NO|alto)] =
-1/2 · log2 [1/2] -1/2 · log2
[1/2] = 1
Aprendizaje de árboles de decisión: elección de los
atributos
E
edad
s_a
tarjeta
Ej1
<18
bajo
NO
Ej2
<18
alto
NO
Ej3
18-25
mediano
SI
Ej4
>25
alto
SI
• Paso 3:
– Para cada Ak,, calcular I(Ak):
¿Cuál es el “mejor” atributo:
s_a o edad?
I[edad] = P(<18)·I[P(SI|<18),P(NO|<18)] +
P(18-25)·I[P(SI|18-25),P(NO|18-25)] +
P(>25)·I[P(SI|>25),P(NO|>25)] =
2/4 · 0 + 1/4 · 0 + 1/4 · 0 = 0
I[s_a] = P(bajo)·I[P(SI|bajo),P(NO|bajo)] +
P(med)·I[P(SI|med),P(NO|med)] +
P(alto)·I[P(SI|alto),P(NO|alto)] =
1/4 · 0 + 1/4 · 0 + 2/4 · 1 = 0.5
Aprendizaje de árboles de decisión: elección de los
atributos
E
edad
s_a
tarjeta
Ej1
<18
bajo
NO
Ej2
<18
alto
NO
Ej3
18-25
mediano
SI
Ej4
>25
alto
SI
¿Cuál es el “mejor” atributo:
s_a o edad?
• Paso 4:
– Elegir el atributo con mayor ganancia de información:
Ganancia(edad) = IE - I(edad) = 1 – 0 = 1
Ganancia(s_a) = IE - I(s_a) = 1 – 0.5 = 0.5
– Como cabe esperar se elige el atributo “edad”
Aprendizaje de árboles de decisión: Comentarios
• 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)
– tratamientos de valores continuos, o atributos con un gran número de
valores discretos (C4.5)
– tratamiento de valores desconocidos (información incompleta)
– árboles exponenciales para determinadas funciones (p.e.: función paridad)
– overfitting: generar árboles demasiado específicos (¿Cuándo se debe parar
de dividir los nodos?)
Evaluación de métodos de aprendizaje
Evaluación empírica
• No se puede evaluar un clasificador con los mismos ejemplos que se han
utilizado para el entrenamiento
• Colecciones de pruebas:
– contienen un conjunto de ejemplos de entrenamiento
– ML repository: http://www.ics.uci.edu/~mlearn/MLRepository.html
• Un clasificador clasifica un conjunto de casos de la siguiente forma:
Ejemplos pos.
Ejemplos neg.
Clasificados como positivos
TP
FP
Clasificados como negativos
FN
TN
TP: true positives (clasificado: positivo, realidad: positivo)
TN: true negatives (clasificado: negativo, realidad: negativo)
FP: false positives (clasificado: positivo, realidad: negativo)
FN: false negatives (clasificado: negativo, realidad: positivo)
Evaluación de métodos de aprendizaje
Medidas (más comunes) de evaluación:
• true positive rate (sensitivity, recall): [0,…,1]; ideal=1
TP
clasificados correctamente como positivos
=
TP + FN
todos los positivos
tpr =
• false positive rate: [0,…,1]; ideal=0
fpr =
FP
clasificados erroneamente como positivos
=
FP + TN
todos los negativos
• precision: [0,…,1]; ideal=1
precision =
TP
clasificados correctamente como positivos
=
TP + FP
todos los clasificados como positivos
• corrección:[0,…,1]; ideal=1
correccion =
TP + TN
clasificados correctamente
=
TP + FP + TN + FN
todos los ejemplos
• ¿Es útil un clasificador con corrección=0.4?
Evaluación de métodos de aprendizaje
• Hay dos tipos de errores
– falsos positivos
– falsos negativos
• En algunos dominios es más grave un error que otro:
– Ejemplo: diagnostico de cáncer
– es muy importante identificar todos los pacientes que tienen cáncer
– no importa (demasiado) si se diagnostica cáncer a una persona que no lo
tiene
– hay que evitar falsos negativos
– el true positive rate tiene que ser alto
Evaluación de métodos de aprendizaje
Aumentar el true positive rate es muy fácil
Por ejemplo:
tpr =
tpr =
TP
9
=
=1
TP + FN 9 + 0
TP
6
=
= 0,66
TP + FN 6 + 3
• Entonces true_positive_rate =1 (muy bien), pero false_positive_rate=1
(muy mal)
• Es importante encontrar un equilibrio entre ambas medidas
• Ideal: true_positive_rate=1 y false_positive_rate=0
Ejercicio
Aprendizaje de árboles de decisión:
Aplique el algoritmo de aprendizaje de árboles de decisión al siguiente conjunto
de ejemplos. Especifique el árbol aprendido y los valores de ganancia de los
atributos elegidos en los diferentes nodos.
Pelo
Altura
Peso
Protección
Quemadura
rubio
medio
bajo
no
sí
rubio
alto
medio
sí
no
moreno
bajo
medio
sí
no
rubio
bajo
medio
no
si
rojo
medio
alto
no
si
moreno
alto
alto
no
no
moreno
medio
alto
no
no
rubio
bajo
bajo
sí
no
Descargar