Tema 9. Investigación en Aprendizaje Automático
Tema 9. Investigación en Aprendizaje Automático
Tema 9. Investigación en Aprendizaje Automático
Tema 9. Investigación en
aprendizaje automático
Índice
Esquema
Ideas clave
A fondo
Test
Esquema
▸ Conocer los tipos de algoritmos y problemas que existen y que pueden resolverse
actual. Pero como veremos durante este tema, es un inmenso campo de multitud de
técnicas que darían cada una de ellas para una asignatura completa para poder
tratarlas con profundidad. Lo que pretendemos en este tema es dar las bases de
No está muy claro cuál es el mecanismo interno del aprendizaje del ser humano (o
resumirlo en la capacidad que tienen los seres vivos de mejorar sus aptitudes.
Es decir, la capacidad que tienen los seres vivos de realizar tareas que no sabían
hacer y por otro lado de mejorar aquellas que ya sabían hacer. Para esto tiene que
haber algún tipo de memoria donde se almacene este nuevo conocimiento, pero no
es suficiente con una memoria. Se necesita una abstracción que permita enfrentarse
programadas que necesitan para cambiar la modificación del propio programa ya que
son soluciones específicas. De esta forma el aprendizaje permite a un sistema
adaptarse a los cambios en el entorno. Es por ello por lo que está especialmente
la mejor forma posible. Así que hay ciertos conceptos que son claves. Por un lado,
el sistema debe sacar conclusiones o crear un modelo que sirva para ser usado de
más relevantes en las que se basa el problema o la tarea. Esto no es más que una
los pequeños detalles para saber resolver una tarea, ya que para resolver una tarea
no se puede atender a todos los pequeños detalles a la vez. Pues básicamente eso
del problema de forma abstracta y resumida de este, que permite adaptar dicho
modelo a múltiples problemas, que siendo diferentes entre ellos comparten unas
Los sesgos (o bias en inglés) son un conjunto de datos establecidos a priori que
entonces los algoritmos de aprendizaje automático podrían resolver muy bien los
ejemplos que se han usado para el aprendizaje, pero no serían capaces de resolver
capacidad de generalización.
las ecuaciones que se plantean en física tienen sesgos, ¿cuáles son esos sesgos?
Por ejemplo, las ecuaciones de carga eléctrica asumen que los cuerpos están en el
solo se aplica en los casos donde haya partículas con masa. Es decir, no se puede
aplicar a la luz (que no tiene masa, pero si energía. Por lo que la fórmula general es
más compleja, pero esta nos sirve como buena aproximación para la mayoría de los
tienen sesgos. Lo mismo que las reglas de ortografía que tienen excepciones. Como
proceso de abstracción.
Así que podemos decir que el mecanismo por el cual una máquina o un programa
como se puede ver en la figura 1. Pero dicho error nos permite predecir el
content/uploads/2020/05/maxresdefault-360.jpg
Ahora que tenemos claro que se necesita generalizar y, por tanto, introducir errores
para conseguir aprender. Asimismo debemos tener en cuenta que esos errores no
deben ser inducidos por una mala selección de los casos de ejemplo. Seleccionar los
que no son recomendables. Esto ya lo veremos con más detalles, pero por adelantar
el concepto aquí vamos a ver un caso de ejemplo de un sesgo aprendido, podemos
que utilizará probablemente los rasgos distintivos comunes de las caras occidentales
como un patrón común que le maximiza la distinción entre lo que es una cara y lo
que no.
Como podemos ver en este caso, el sesgo utilizado para aprender es un sesgo
perjudicial. Así que hay que tener mucho cuidado cuando se presenten los ejemplos
no deseado.
Una vez visto cómo aprenden las máquinas a nivel teórico, queda por describir cómo
Aprendizaje supervisado
Este tipo de algoritmo requiere que los ejemplos que se introduzcan para
supervisado intenta deducir una función que permita obtener a partir de los datos de
que este puede analizar cómo de lejos está su modelo actual de conseguir
Por lo tanto, necesitamos que nuestra función prediga el valor de un objeto una vez
decisión, etc.
generalización de la red.
Así pues, se deberá crear una base de ejemplos con los atributos que describen
Sirve para evaluar los resultados de un modelo y garantizar que son independientes
práctica. Por ejemplo, se puede dividir los datos en bloques en cuatro y coger tres de
ellos para entrenar y uno para validar. Repitiendo el problema cuatro veces
la partición.
El aprendizaje no supervisado
no informan del resultado esperado de este. Por lo tanto, podemos decir que no
hay nadie que le está indicando al sistema cómo se resuelve el ejemplo propuesto.
Esto debe descubrirlo el propio algoritmo. Por lo tanto, los algoritmos de aprendizaje
base radial. Algunos modelos de deep learning como los modelos de extracción de
algoritmos supervisados, existen algunos trucos que detallaremos más adelante para
conseguirlo.
podemos estimar la varianza total del sistema. Pero en estos casos, visualizar las
realizado correctamente.
Aunque como decimos, esta información solo nos servirá para estimar el error
cometido, pero el algoritmo no toma ventaja de esta información para mejorar los
resultados.
siquiera tienen el feedback de si lo están haciendo bien o mal. Aquí el entorno les
está dando una retroalimentación de si lo que hacen está siendo efectivo o no. Por lo
supervisado.
El aprendizaje por refuerzo es el más general entre las tres categorías ya que en vez
castigos de forma autónoma, derivados del éxito o del fracaso de sus decisiones.
políticas para comprender el comportamiento del entorno y de esta forma ser capaz
de tomar buenas decisiones para conseguir sus objetivos. Por lo tanto, la versatilidad
Montecarlo, etc.
¿Y cómo se puede evaluar un algoritmo de aprendizaje por refuerzo? Pues hay que
parte la propia función le dice al algoritmo si está haciendo las cosas bien o no sirve
como medida de la calidad de este. Pero hay que probar el sistema en otros entornos
para ver si ha sido capaz de aprender una política válida para cualquier entorno
similar. Y ahí necesitaremos una medida de rendimiento. Imaginemos que tenemos
un sistema de aprendizaje por refuerzo que ponemos a entrenar para que aprenda a
jugar a un juego. El sistema debe aprender a jugar al juego a base de prueba y error
y en cada decisión que tome de forma acertada, el sistema debe premiar esa política.
Pero luego lo tenemos que poner a jugar al juego contra otros jugadores diferentes y
tendremos que evaluar si consigue ganar a esos otros jugadores y cómo de rápido o
Tipos de problemas
Vistos los diferentes tipos de algoritmos de aprendizaje automático, nos queda por
describir los diferentes tipos de problemas que estos pueden abordar. Principalmente
regresión y de agrupación.
agrupamiento, porque las técnicas empleadas y los métodos para obtener los datos
no son iguales. Tampoco es igual la forma con la que evaluamos los errores que
Problema de clasificación
categoría es conocida.
Para que haya un problema de clasificación se deben conocer las clases a priori y
además estas deben ser un conjunto finito.
Problema de regresión
Los problemas de regresión son problemas en los que la salida que se espera es
una salida continua. Un número de casos infinito o al menos indefinido y, por tanto,
lo que queremos normalmente es usar una estimación de esta salida lo más precisa
posible. Los algoritmos que intentan realizar regresión intentan estimar la función de
mapeo (f) de las variables de entrada (x) a las variables de salida numéricas o
continuas (y). Ahora, la variable de salida podría ser un valor real, que puede ser un
Problema de agrupamiento
son los grupos que existen en una población y cuáles son los criterios o las
características que separan unas clases de otras.
mean-shift, binary split, deep belief networks, restricted boltzmann machines, etc.
automático de forma resumida, identificado en qué se basan, cuáles son sus ventajas
con la base de casos y se extrae aquel más similar (o los K más similares) para
comprobar cuál era la clase (o la acción) que se llevó a cabo para el caso concreto.
Para ello hay que definir una función de similitud entre dos ejemplos. La calidad de
unos dominios que en otros. También se pueden ponderar los pesos de los atributos
para ajustar más la similitud, dando más importancia a ciertos rasgos que a otros.
Ventajas:
▸ Alta precisión (relativa). Es bastante alta, aunque no superior a otros modelos más
sofisticados.
▸ Es muy sensible a los atributos irrelevantes. Hacer una buena selección de atributos
el seleccionado como el más similar, daremos una solución errónea. Esto se puede
mitigar haciendo que K sea grande, es decir que el número de elementos cercanos
sea mayor para que el peso del ruido sea menor.
que procesar todos los datos. Existen métodos para optimizarlo usando partición
Árboles de decisión
necesaria para llegar a dicha decisión, ya que se pueden convertir en reglas, que
son mucho más legibles para el que investiga el funcionamiento del modelo.
Además, se les pueden aplicar métodos de inducción, como por ejemplo la inducción
descubrir la lógica que el sistema ha tomado para llegar a seleccionar una acción.
y una clase. Los nodos condicionales son los nodos internos del árbol y la clase, los
Cada nodo condicional es una pregunta que se hace a las variables del entorno y
solo tiene dos caminos, que la condición sea cierta o falsa. En función de si es una u
Algunas de las implementaciones más famosas de estos algoritmos son el ID3, J48 o
C4.5.
ayudar a decidir qué atributo debe ser el siguiente en ser evaluado en el árbol.
También nos puede ayudar a descubrir qué atributos son los más relevantes, ya que
ganancia de información, donde la entropía se utiliza como una medida del orden de
los datos. Es decir, el atributo seleccionado es aquel que deja la información más
ecuación.
En general, los atributos que separan mejor las clases tienden a reducir más la
Ventajas:
Desventajas:
▸ Hay conceptos que no son fácilmente aprendibles por los árboles de decisión, ya que
las particiones del espacio de soluciones que puede hacer son aquellas que son
representables mediante una sucesión de hiperplanos. Si no hay una aproximación
lineal al problema, puede que den un modelo poco efectivo.
elegir cuál de los árboles ha generado una mejor predicción. Por ejemplo, nos
podemos quedar con la predicción mayoritaria, con la media, etc. Estos métodos
Redes de neuronas
Las redes de neuronas son una analogía del funcionamiento del cerebro humano,
ventajas y que este tipo de tecnología se esté aplicando en múltiples áreas, como
McCulloch y Walter Pittis en 1943, que han servido de base para la aparición de
multitud de arquitecturas obtenidas durante los últimos setenta años. Las redes de
diversas formas, que están conectadas unas a otras a través de enlaces ponderados
por unos pesos, que suelen ser recalculables por la propia red, de forma más o
dependiendo de su función:
▸ Neuronas de entrada. Son las encargadas de recibir los datos del exterior de la red
▸ Neuronas ocultas. Son aquellas neuronas que permiten enlazar las neuronas de
entrada y las neuronas de salida, aunque también pueden estar conectadas a otras
neuronas ocultas; y en sus interconexiones es donde precisamente se realiza el
proceso de cómputo, tanto al enviar la información a todas las neuronas con las que
está interconectada, como al recibir la información.
▸ Neuronas de salida. Son las que muestran al exterior los resultados obtenidos
después de que la entrada haya recorrido toda la red. Las conexiones de salida de
las neuronas de salida y no realizan ningún cómputo.
Existen multitud de tipos de redes de neuronas las principales son las siguientes:
neuronas de entrada del siguiente ejemplo a procesar. Este tipo de neuronas viene
muy bien para predecir sistemas que tengan alguna relación temporal entre los
diferentes ejemplos. Por ejemplo, para procesar series temporales o datos
secuenciales.
un punto denominado centro. Al igual que con los perceptrones multicapa, sirven
como aproximadores universales y solo tienen una capa oculta. Mientras que las
neuronas ocultas poseen carácter local, las neuronas de salida realizan una
combinación lineal de las activaciones de las neuronas ocultas. Este tipo de redes
construyen aproximaciones que son combinaciones lineales de múltiples funciones
locales no lineales. Entre sus aplicaciones se encuentran análisis de series
temporales, procesamiento de imágenes, etc.
cometido por la red. No entraremos en detalles, pero la idea es que la derivada del
error producido entre la salida generada y la esperada va modificando los pesos de
que la red aprenda y conozca el dato correcto del ejemplo que procesa. Como otros
este comienza a ofrecer un error de validación creciente. Es decir, que en este tipo
neuronas ahora son posibles debido a las nuevas técnicas de aprendizaje que se
siguen las mismas directrices que los modelos simples. Una descripción más
detallada de este tipo de redes se sale del objetivo de esta asignatura, pero vamos a
Autoencoders
abstracción que sirve para extraer las características importantes de los datos. Este
latentes.
Redes convolucionales
Las redes neuronales convolucionales son un tipo de redes neuronales donde las
cada capa, por lo general, se añade una función para realizar un mapeo causal no
lineal. Como cualquier red empleada para clasificación, al principio estas redes
neuronas de perceptrón más sencillas para realizar la clasificación final sobre las
características extraídas.
Una máquina de Turing neural es una red neural extendida con una memoria de
Por analogía con la máquina de Turing, las salidas de la red que parametrizan estas
imágenes), sino también secuencias enteras de datos (como voz o vídeo). Una de
las redes de este tipo más conocidas es la red LSTM (Long short-term memory). Esta
Ventajas:
Inconvenientes:
▸ Los modelos profundos son muy caros de calcular, se necesita muchísima potencia
▸ Son algoritmos de caja negra muy difíciles de analizar por los diseñadores.
clases y entrenar una SVM para construir un modelo que prediga la clase de una
nueva muestra.
separación del hiperplano que separa las clases. Se llaman vectores porque
estos puntos tienen tantos elementos como dimensiones tenga nuestro espacio de
dimensiones.
Hay veces en las que no hay forma de encontrar un hiperplano que permita separar
dos clases. En estos casos, decimos que las clases no son linealmente separables.
Para resolver este problema se puede usar un kernel. El truco del kernel consiste
Ventajas:
de muestras.
▸ Tanto la recompensa como el estado siguiente obtenido no tienen por qué ser
learning
El objetivo del aprendizaje por refuerzo es extraer qué acciones deben ser elegidas
en los diferentes estados para maximizar la recompensa. Buscamos, por tanto, que
el agente aprenda una política. Esta política no es más que un criterio a la hora de
El algoritmo, por tanto, tiene una función que calcula la calidad de una combinación
estado-acción:
Después, en cada tiempo el agente selecciona una acción (a) observa una
recompensa (r) introduce un estado nuevo s(t+1) que depende del estado anterior y
de la acción seleccionada, actualizando Q. El núcleo del algoritmo es una
actualización del valor de la iteración simple, haciendo la media ponderada del valor
Estos valores se van almacenando en lo que se denomina tabla Q que almacena los
mayor que uno malo. De esta forma el agente cada vez tiende a hacer las acciones
El aprendizaje por refuerzo profundo combina redes neuronales artificiales con una
arquitectura de aprendizaje por refuerzo que permite a los agentes aprender las
mejores acciones posibles en un entorno virtual para alcanzar sus objetivos. Es decir,
de estado y acción a las recompensas esperadas. Una red neuronal puede utilizarse
para aproximar una función de valor o una función de política. Es decir, las redes
actualizar todos los posibles estados y sus valores (lo cual es imposible con
problemas muy grandes) podemos entrenar una red neuronal en muestras del
espacio de estado o acción para aprender a predecir cuan valiosos son estos en
relación con nuestro objetivo en el aprendizaje de refuerzo.
Clústering
es el elemento que mejor divide cada clúster o grupo y los demás se asocian a él por
clases que estimemos que existen. Aunque existen métodos que son capaces de
método analítico para saber si la agrupación es del todo correcta si asumimos que
los datos no están etiquetados. Podemos, para entrenar el sistema, tener datos
etiquetados y con ellos validar el clúster que ha realizado el algoritmo. Pero estos
valores no son tenidos en cuenta por el algoritmo. La medida más utilizada para
medir la similitud entre los casos es la matriz de correlación entre los nxn casos. Sin
K-means necesita como dato de entrada el número de grupos en los que vamos a
generará una nueva asignación de muestras, ya que algunas muestras están ahora
más cerca de otro centroide. Este proceso se repite de forma iterativa y los grupos se
van ajustando hasta que la asignación no cambia más moviendo los puntos.
▸ Reconocimiento de imágenes.
▸ Regresión.
▸ Sistemas de recomendación.
▸ Procesado de imágenes.
▸ Sistemas cognitivos.
▸ Experiencia de usuario.
▸ Lead scoring: algoritmo que tiene en cuenta una serie de parámetros de los
diferentes clientes potenciales que llegan para ordenarlos por prioridad y que los
agentes comerciales trabajen de una manera más eficaz.
Además, como hemos visto, son muy dependientes de la calidad de los datos y de
poder acceder a ellos. Se estima que la mayor parte del coste en este tipo de
automático.
▸ arXiv: Learning.
AI Business. (26 de febrero de 2020). How AI is changing the video game industry:
Lim, H. (15 de marzo de 2020). 4 Social Media Data Mining Techniques to Help Grow
Artículo que describe diferentes técnicas de minería de datos útiles para ayudar al
learning
Artículo donde Deep Mind explica cómo funciona el deep reinforcement learning y los
turing-machines
Artículo donde Deep Mind donde explica cómo funciona el neural Turing machine.
determinado por:
B. Usar el feedback del entorno como guía para saber si la acción realizada
es la correcta.
acumulado.
B. Es continua e infinita.
C. Es discreta e infinita.
la política.
del grupo.