Aprendizaje Supervisado
Aprendizaje Supervisado
Aprendizaje Supervisado
Agentes inteligentes.
Aplicando la inteligencia
artificial a robots y softbots
CONTENIDO
1. Objetivos
7. Bibliografía
Aprendizaje supervisado | 3
• Expresibilidad: son fácilmente interpretables por • Optimización: sobre la estructura que se ha hecho
los seres humanos porque se basan en reglas if-else del árbol, se pueden modificar ciertos valores para
y presentan los resultados como si fuesen parte optimizar su diseño. Esto se hace intercambiando
de un algoritmo. Por ello, incluso son utilizados en la profundidad a la que se encuentran dos variables
combinación con otras técnicas para explicar el o ajustando el rango de cada rama de una variable.
resultado de estas [7].
Para recuperar información, las operaciones disponibles
Para generar estos árboles es necesario tener un en los árboles de decisión son:
conjunto de ejemplos de entradas con variables
etiquetadas (mapa variable-etiqueta). Este conjunto • Búsqueda: si se quiere saber la predicción del valor
será el de entrenamiento. El primer paso es seleccionar de una variable concreta, se busca sobre todo el
una de las variables a representar y definirla como nodo árbol la definición del resto de variables según el
raíz (primer nodo del árbol que sirve como comienzo). observable que se tiene (las variables relacionadas
Después se crean tantas ramas y tantos nodos como con la que se quiere predecir). Esta búsqueda es
posibles valores tenga ese atributo. Haciendo esto de bastante compleja, porque añadir un solo nodo en
manera recursiva, se llega hasta los llamados nodos el árbol puede incrementar exponencialmente el
hoja. Estas hojas son nodos en los que ya no quedan número de caminos a evaluar.
más variables a definir en el conjunto de entrenamiento. • Cálculo de la complejidad: una vez creado todo
el árbol, se tiene la profundidad de este y el factor
Sobre estos nodos, se pueden realizar operaciones, de ramificación medio (es la media del número de
diferentes operaciones de mantenimiento y creación ramas que hay en cada nodo). Con esto, se puede
como son: saber, por ejemplo, si tomar un camino u otro en
el árbol (elegir un valor u otro en una variable),
• Poda: en algunos casos, con el objetivo de hacer un
redunda en una solución con mayor número de
árbol más pequeño, se pueden eliminar elementos
posibles combinaciones.
que se consideran innecesarios. Esto puede pasar,
si ciertos nodos son inalcanzables o su coste es • Interpretación: cuando se obtiene un resultado
demasiado elevado y, por ello, nunca van a formar sobre un árbol de decisión, es trivial saber cuáles
parte de la solución. han sido los factores que han llevado hasta ese
resultado, únicamente es necesario hacer el camino
• Balance: la forma en la que se definen los árboles
desde ese nodo hoja hasta el nodo raíz, evaluando
es muy relevante cuando se ejecuta el algoritmo
cuáles fueron las ramas tomadas en cada nodo.
de búsqueda. Con ciertos esquemas, el algoritmo
puede encontrar mucho más rápido la solución que
con otros. Por ello, es posible modificar la estructura
del árbol para cambiar su raíz o la raíz de cualquier
subárbol en cualquier momento. Este proceso se
hace cuando hay demasiados nodos en una de las
ramas y pocos en las otras. La solución es coger
uno de los nodos intermedios de la rama más
cargada y ponerlo como raíz de todo el subárbol.
Aprendizaje supervisado | 5
Figura 2. Ejemplo de árbol de decisión. Tomado de: Medium, Building a decision tree classifier in python, step by step, R. Polanitzer, 2022. https://
medium.com/@polanitzer/building-a-decision-tree-classifier-in-python-step-by-step-9d4eeff02292
Existen numerosas aplicaciones para este tipo de De tal manera, que cuando un nuevo punto sea dado, la
árboles, por ejemplo, la definición de un entorno por SVM lo representará y verá si cae a un lado u otro del
parte de un robot. Con este algoritmo, puede resolver plano, perteneciendo a una clase u otra. Para encontrar
el patrón de pasillos que tiene que tomar para navegar el plano, la SVM necesita “generalizar” las características
de un punto a otro. Existen varios algoritmos de árboles que hacen propia a cada una de las clases.
de decisión para clasificación (ID3). También existen
árboles de regresión (M5). Sin embargo, una de las
familias de algoritmos que más destaca últimamente,
es la de Random Forrest (se podría traducir como
bosques aleatorios). Esta técnica toma un conjunto de
árboles aleatorios generados sobre el mismo conjunto
de datos. Después los agrupa haciendo un árbol de
árboles (de ahí el concepto de bosque) para ir poco
a poco seleccionando cuál es el mejor de todos ellos
para encontrar la clasificación o predicción de una
variable concreta.
Máquinas de soporte de
vectores
Las máquinas de soporte de vectores (en inglés,
support vector machines o SVMs) tienen como
principal objetivo la clasificación de los datos en
dos clases claramente separadas [3]. El concepto es
encontrar un plano que separe lo máximo posible dos
clases de un conjunto de datos. Figura 3. Máquinas de soporte de vectores. Tomado de: https://
en.wikipedia.org/wiki/Support-vector_machine
El conjunto de datos inicial que recibe la SVM está
completamente mezclado, aunque las etiquetas
de las clases son conocidas a priori (por lo que se
considera aprendizaje supervisado). La máquina
representa estos datos de entrada como vectores
y los transforma a un espacio con n dimensiones.
La SVM es capaz de generar un plano que separe
lo máximo posible los puntos de las dos clases.
Aprendizaje supervisado | 6
Sin embargo, hay casos en los que los dos conjuntos Durante este apartado de las SVMs se ha hablado de
no son linealmente separables, es decir, no se puede una técnica de clasificación binaria. Sin embargo, esta
dibujar una recta, se divida en dos conjuntos los datos puede ser fácilmente adaptada para hacer clasificación
de entrada. Para solucionar este tipo de problemas, multiclase. Para ello, se divide el problema en una
hay dos soluciones. La primera es incluir un parámetro agregación de SVMs (cada una tomando una decisión
c que modifique la recta para ajustarse a los casos binaria) que de forma conjunta pueden hacer clasificación
particulares, aunque esta no es una solución adecuada en múltiples clases [1].
para generalizar. La segunda solución que es la que da la
potencia a las SVMs son las funciones kernel. Otra característica de las SVMs es que pueden ser
utilizadas como aprendizaje no supervisado. En este
Las funciones kernel [2], hacen un mapeo de los datos en apartado, se ha explicado un ejemplo en el que se tienen
dos dimensiones a un espacio con mayor dimensionalidad los datos etiquetados, pero se puede utilizar igual si
(3D, 4D, 5D, etc.). Esto se hace porque al aumentar la los datos no están etiquetados. La diferencia es que la
dimensionalidad de los datos, se espera que se cree una SVM tiene la tarea extra de probar múltiples divisiones
separación lineal entre los datos que no existía en una de los datos hasta encontrar la mejor agrupación. Estas
dimensión inferior. Así se pueden crear hiperplanos de mayor SVMs no supervisadas están aún en desarrollo y tienen
dimensionalidad que separen adecuadamente los datos. En una precisión menor que las que se utilizan con datos ya
la (figura 5) se ve claramente como datos que parecen no etiquetados.
separables linealmente en 2D, sí que lo son en 3D.
Aprendizaje supervisado | 7
Cuando se llega a la capa de salida, las neuronas de Este método utiliza un ajuste de mínimos cuadrados
salida se activan con un peso determinado por sus (ajuste matemático de optimización), que indica si los
conexiones inmediatamente anteriores. Ese peso pesos deben aumentarse o disminuirse para mejorar
está normalizado a 1. Así, en las redes neuronales, las el comportamiento de la red y como de severo debe
salidas son probabilistas, no se escoge una clase con ser este ajuste, haciéndolo siempre desde la capa de
probabilidad 1, sino que se escoge como salida la de salida hacia la capa de entrada pasando por las capas
mayor probabilidad. ocultas intermedias.
El proceso definido hasta ahora se considera como Un problema en las redes neuronales, asociado a la
feedforward, es decir, alimentación hacia delante de la función de activación y la retropropagación del error,
red. Pero las predicciones que hace una red se tienen es el desvanecimiento de gradiente [6]. Este error
que ir ajustando. De esta manera, cada vez que se provoca, que la actualización de pesos en las capas más
transmite un impulso desde la capa de entrada hasta próximas a la capa de entrada no se haga correctamente
la de salida, se dice que se ha ejecutado una época (en y la actualización de pesos sea mínima, haciendo que no
inglés epoch) de la red. Para ajustar las predicciones de se ajusten casi nunca y no permitiendo a la red aprender
la red a los datos reales y que, de esta manera, la red un modelo correcto.
aprenda, es necesario hacer una retropropagación del
error (en inglés back propagation) [4]. Esta combinación de función de activación y
retropropagación del error, consigue ir ajustando los
Inicialmente, en la red neuronal, se escoge pesos pesos, hasta que el algoritmo aprende el modelo de
aleatorios para las conexiones entre redes porque no se conocimiento. Existen otros parámetros que se pueden
sabe cuáles son los óptimos. Durante la retropropagación controlar para modificar el comportamiento de las redes
del error, se ajustan esos coeficientes hasta que la red de neuronas, pero eso es trabajo específico del científico
prediga adecuadamente los datos que se tienen. de datos.
Aprendizaje supervisado | 9
aprendizaje supervisado
Transactions on Image Processing, 622-629.
[3] Hearst, M. A. (1998). Support vector machines. IEEE
El aprendizaje supervisado ha sido y actualmente es la Intelligent Systems and their applications, 18-28.
rama fundamental del aprendizaje automático. Aunque [4] Hecht-Nielsen, R. (1992). Theory of the
la capacidad de resolución de problemas está limitada backpropagation neural network. Neural networks
por la necesidad de tener un gran volumen de datos for perception .
etiquetados, en los problemas en los que esta condición [5] Hijazi, S. K. (2015). Using convolutional neural
se da, los resultados son tan buenos, que los algoritmos networks for image recognition. Cadence Design
se pueden utilizar a nivel industrial. Systems Inc.
Los algoritmos de aprendizaje supervisado se utilizan [6] Hochreiter, S. (1998). The vanishing gradient problem
fundamentalmente para clasificación y regresión during learning recurrent neural nets and problem
(predicción de valores de variables). solutions. International Journal of Uncertainty,
Fuzziness and Knowledge-Based Systems, , 107-
Las aplicaciones de clasificación permiten resolver 116.
problemas de reconocimiento visual (detección [7] Ranka, S. &. (1998). CLOUDS: A decision tree
automática de patrones en una imagen [5]), visión classifier for large datasets. In Proceedings of the 4th
artificial (reconocimiento de objetos por parte de robots), knowledge discovery and data mining conference.
procesamiento natural del lenguaje (para entender
[8] Sharma, S. S. (2017). Activation functions in neural
palabras), etc.
networks. Towards data science, 310-316.
Las aplicaciones de predicción de valores permiten [9] Swain, P. H. (1977). The decision tree classifier:
resolver problemas de estimación de parámetros Design and potential. IEEE Transactions on
(modelos de predicción meteorológicos), generación Geoscience Electronics, 142-147.
de nuevos datos (generación de imágenes falsas que [10] Torrey, L. a. (2010). Transfer learning. Handbook
parecen reales), modelos de recomendación (generación of research on machine learning applications and
de recomendaciones con base en los gustos de los trends: algorithms, methods, and techniques, 242-
usuarios), predicción de tendencias (en modelos 264.
económicos, etc.).