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:
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
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
Donde: delta_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:
– 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
No hay comentarios:
Publicar un comentario