Asig2 - Machine Learning y Deep Learning
Asig2 - Machine Learning y Deep Learning
Aprendizaje
automático y
aprendizaje profundo
Asignatura
Aprendizaje
automático y
aprendizaje profundo
INTRODUCCIÓN A PYTHON..................................................................................... 03
1. ORIGEN Y CLASIFICACIÓN DE LA INTELIGENCIA ARTIFICIAL............................. 07
2. APRENDIZAJE SUPERVISADO.............................................................................. 12
2.1. CLASIFICACIÓN............................................................................................... 13
2.1.1. REGRESIÓN LOGÍSTICA............................................................................ 14
2.1.2. CLASIFICADOR NAIVE BAYES................................................................... 20
2.1.3. K-NEAREST NEIGHBOURS ...................................................................... 26
2.1.4. SUPPORT VECTOR MACHINE (SVM)......................................................... 35
2.1.5. ÁRBOLES DE DECISIÓN............................................................................ 42
2.2. REGRESIÓN..................................................................................................... 48
2.2.1. REGRESIÓN LINEAL.................................................................................. 48
2.2.2. TÉCNICAS DE REGULARIZACIÓN.............................................................. 52
2.2.3. STEPWISE REGRESSION............................................................................ 54
2.2.4. OTROS MODELOS DE REGRESIÓN............................................................ 57
3. APRENDIZAJE NO SUPERVISADO........................................................................ 58
3.1. CLUSTERING................................................................................................... 59
3.1.1. K-MEANS................................................................................................. 60
3.1.2. K-MEDIAN .............................................................................................. 66
3.1.3. HYERARCHICAL CLUSTERING O AGRUPAMIENTO JERARQUICO.............. 66
3.2. REDUCCIÓN DE DIMENSIONALIDAD............................................................... 76
3.2.1. EXTRACCIÓN DE CARACTERÍSTICAS........................................................ 78
3.2.1.1. CLASIFICADORES LINEALES................................................................... 78
3.2.1.2. CLASIFICADORES NO LINEALES............................................................. 86
3.2.2. SELECCIÓN DE CARACTERÍSTICAS........................................................... 87
4. APRENDIZAJE POR REFUERZO............................................................................. 90
5. DEEP LEARNING.................................................................................................... 99
5.1. REDES NEURONALES..................................................................................... 101
5.1.1. REDES NEURONALES ARTIFICIALES........................................................ 103
5.1.1.1. PERCEPTRÓN SIMPLE.......................................................................... 108
5.1.1.2. PERCEPTRÓN MÚLTIPLE...................................................................... 109
5.1.2. REDES PROFUNDAS............................................................................... 111
5.1.3. REDES NEURONALES RECURRENTES (RNN)............................................. 113
5.1.4. REDES NEURONALES CONVOLUCIONALES (CNN).................................. 116
5.1.5. DECONVOLUTIONAL NETWORK (DN)..................................................... 118
5.1.6. REDES DE CREENCIAS PROFUNDAS (DBN).............................................. 119
5.1.7. AUTO ENCODER (AE)............................................................................. 121
5.1.8. RED GENERATIVA ANTAGÓNICA (GAN)................................................. 122
5.1.9. DEEP RESIDUAL NETWORK (RESNET)...................................................... 123
5.2. LIMITACIONES DEL DEEP LEARNING.............................................................. 124
BIBLIOGRAFÍA......................................................................................................... 126
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Introducción a Python
A lo largo de esta guía docente vamos a ver una serie de ejemplos prácticos de modelos
de inteligencia artificial basados en el lenguaje de programación Python.
Uno de los objetivos que se persigue con este lenguaje de programación es que se auto-
maticen procesos para que así se consiga ahorrar tiempo y evitar complicaciones. Por esa
razón son varias las soluciones que se logran con pocas líneas de código en este progra-
ma.
Esta distribución nos permite instalar de forma gratuita los lenguajes de Python y R en
nuestro ordenador de una forma muy sencilla.
Para poder obtener la distribución nos dirigimos a la web oficial de la distribución y des-
cargamos la edición individual en nuestro ordenador.
03
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
https://www.anaconda.com
Seguimos las instrucciones del instalador gráfico y tendremos en nuestro equipo el Ana-
conda-Navigator. Desde aquí podemos elegir un editor con el que trabajar con Python.
Podemos utilizar el editor web de Jupyter Notebook /Jupyter Lab o el editor local Spyder.
Para acceder a ambos únicamente tenemos que hacer click en el botón “launch” que po-
demos ver representado en la Ilustración 1. A través de cualquiera de estos editores es
posible ejecutar los distintos ejemplos de modelos de inteligencia artificial que encontra-
remos en la guía docente.
Para desarrollar los ejemplos de esta guía se ha empleado el editor web Jupyter Notebook,
el cual nos permite ejecutar scripts de Python desde un navegador web sin necesidad de
instalar ningún software local en nuestro ordenador.
Cuando lo ejecutamos abrirá una nueva pestaña en nuestro navegador web desde la que
podemos ver la estructura de carpetas de nuestro PC. Simplemente debemos dirigirnos
a la carpeta en la que queremos trabajar y desde ahí crear un nuevo Notebook de Python
en el que ejecutar nuestro código.
04
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
En ese momento se abrirá un nuevo kernel de Python donde podemos ejecutar las distin-
tas funciones de Python.
• Numpy: Es una librería que nos permite definir un tipo de dato con el que podemos
trabajar con vectores y matrices. Además de esto permite utilizar múltiples funcio-
nes matemáticas de alto nivel.
• Pandas: Es una librería escita como una extensión de numpy que nos ofrece es-
tructuras de datos y operaciones para trabajar con tablas numéricas y series tem-
porales.
05
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
• Scikit-learn: Es una librería diseñada para trabajar con inteligencia artificial. Basa
su estructura en Numpy, Scipy y Matplotlib y nos permite trabajar con varios al-
goritmos de clasificación, regresión y análisis de grupos entre los que podemos
encontrar k-mean, maquinas de vectores de soporte, bosques aleatorios entre mu-
chos otros. Esta librería es muy fácil de utilizar y de aprender ya que nos permite
reducir la creación de un modelo de inteligencia artificial a una sola línea.
06
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
1. Origen y clasificación de la
Inteligencia Artificial
La inteligencia artificial (IA) nació a principios del siglo pasado de la mano de una serie
de pioneros de la ciencia computacional que comenzaron a desarrollar su actividad cen-
trándola en el objetivo de que las máquinas “pensaran” por si mismas con el objetivo de
poder automatizar una seria de tareas cotidianas intelectuales llevadas a cabo por huma-
nos.
El concepto de inteligencia artificial nació como tal en 1956 de la mano de John Mc-
Carthy, Marvin Minsky y Claude Shannon, tres científicos destacados de la época que
acuñaron este término durante la conferencia de Darthmounth y la definieron como: “la
ciencia e ingenio de hacer máquinas inteligentes, especialmente programas de cálculo
inteligentes”. [1]
La máquina de Turing asemeja el funcionamiento de una CPU actual, cuenta con tira
de cinta sobre la que la máquina puede leer y escribir símbolos de manera mecánica de
acuerdo con una serie de reglas. Estas instrucciones son finitas y son consideradas como
el primer algoritmo.
07
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Como continuación de su trabajo Alan Turing publico un nuevo artículo en 1950 llamado
“Computing Machinery and Intelligence” [3] de donde se extrae la famosa prueba de Tu-
ring o test de Turing. Esta prueba consiste en un examen de la capacidad de una máquina
para exhibir un comportamiento inteligente similar al de un ser humano o indistinguible
de este. Esta prueba consistía en que un observador externo (humano) evaluara una con-
versación en lenguaje natural. En el test participaban tanto humanos como una máquina
diseñada para generar respuestas similares a las de un humano. El observador debía ser
capaz de discernir en cinco minutos de conversación si su interlocutor era humano o
máquina. Esta prueba se realizaba a través de un teclado y un monitor para eliminar la
capacidad de la máquina de convertir texto en habla.
A partir de esta prueba Alan Turing llego a la conclusión de que ordenadores de propó-
sito general podrían ser capaces de “aprender”. Esto abrió la puerta a nuevas cuestiones
como: ¿Seria un ordenador capaz de realizar tareas como si fuese un ser humano? ¿Podría
un ordenador aprender por si mismo a realizar una tarea especifica? ¿Podría hacerlo en
base a los datos que le proporcionamos?
Estas reglas son luego aplicadas a nuevos datos para producir respuestas originales, es
decir generadas automáticamente por las reglas que el sistema ha creado y no por reglas
codificadas por programadores.
El aprendizaje automático tuvo su consagración en 1997 cuando IBM lanzó el super or-
denador Deep Blue. Esta super computadora fue la primera que venció a un campeón
del mundo vigente, Gary Kaspárov, con un ritmo de juego lento. Esto ocurrió el 10 de
febrero de 1996, en una memorable partida. Sin embargo, Kaspárov ganó 3 y empató 2
de las siguientes partidas, derrotando a Deep Blue por 4-2. El encuentro concluyó el 17
de febrero de 1996. A este le siguió Watson, otro ordenador de IBM, al que se le asigno
ese nombre en honor del fundador y primer presidente de IBM, Thomas J. Watson. Para
probar sus capacidades reales participó durante tres días en febrero de 2011 en el popular
concurso de televisión estadounidense de preguntas y respuestas Jeopardy! concursando
y derrotando a dos participantes humanos. Siguiendo la misma línea Google presento en
octubre de 2015 AlphaGo un programa informático de inteligencia artificial para jugar al
juego de mesa Go, este se convirtió en la primera máquina de Go en ganar a un jugador
profesional de este juego.
08
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Esto dio lugar a una carrera tecnológica en la que las grandes compañías comenzaron a
invertir grandes sumas de dinero por liderar esta tecnología. Hoy en día esta tecnología
esta extendida en múltiples sectores como el financiero, salud, seguridad, educación etc.
Su éxito ha estado influido también por los avances realizados en el campo del hardware
y la mayor disponibilidad de conjuntos grandes de datos sobre los que se sustenta la crea-
ción de algoritmos de aprendizaje automático.
09
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Esta área de la inteligencia artificial esta fuertemente relacionado con la estadística mate-
mática como veremos mas adelante, sin embargo, difiere de la misma en su construcción
y aplicaciones. El objetivo del aprendizaje automático se basa en la creación de unas re-
glas extrapolables a nuevos conjuntos de datos sin programación explicita, mientas que
la estadística es un subcampo de las matemáticas basado en espacios de probabilidad,
donde se busca caracterizar la relación entre los datos y la variable resultado sin tratar
de realizar predicciones sobre datos futuros. Asimismo, el aprendizaje automático trabaja
con grandes y complejos conjuntos de datos para los cuales el análisis estadístico clásico
no podría ser utilizado por volumen y nivel de complejidad.
Los problemas que podemos resolver a través del aprendizaje automático pueden ser cla-
sificados en tres clases:
10
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Este esta basado en la psicología conductista, en la cual un agente (en nuestro caso un
modelo o elemento de software) recibe inputs del ambiente. Estos pueden ser positivos o
negativos, en función del comportamiento que pretendamos que nuestro agente aprenda.
Un buen ejemplo de funcionamiento de inteligencia artificial por medio de aprendizaje
por refuerzo es la de los coches autónomos. Estos aprenden en base a las distintas res-
puestas que les proporciona el entorno, que pueden ser negativas (choque, patinazo de
ruedas, atropello…) o positivas (tomar el carril correcto, cruzar un semáforo en verde, res-
petar el límite de velocidad…). [5]
Además, dentro del aprendizaje automático también podemos abordar el análisis de datos
de una forma no lineal, empleando una estructura jerárquica. En este caso estaríamos
hablando de un subcampo dentro del aprendizaje automático, el aprendizaje profundo.
Este, emplea una estructura jerárquica basada en la estructura neuronal del cerebro hu-
mano, con distintos nodos conectados como si de una tela de araña se tratara. El sistema
se basa en distintos niveles y cada uno de estos niveles tiene una función cognitiva en
los datos que se están procesando. En el primer nivel el modelo aprende algo sencillo y
esta información es pasada al segundo nivel, donde se procesan nuevos datos junto a la
información obtenida en el primer nivel obteniendo una complejidad cognitiva mas alta.
De esta forma la información va pasando por una serie de niveles hasta que se llega a un
procesamiento completo de la información. [6]
Este tipo de aprendizaje esta recibiendo una gran atención últimamente debido a los re-
sultados que esta logrando. Algunas de las aplicaciones en las que se esta utilizando el
Deep learning son el procesamiento de imágenes (búsqueda de productos por imágenes,
determinar logos de marcas, videovigilancia…), prevención de fraude basado en el com-
portamiento habitual de los clientes, investigación médica, ciberseguridad.
11
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
2. Aprendizaje supervisado
12
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Una vez hemos llevado a cabo el entrenamiento de nuestro modelo de aprendizaje super-
visado lo que obtenemos es un modelo que podemos emplear con nuevos datos de entra-
da, de los cuales no conocemos sus etiquetas o datos de salida que pretendemos obtener
mediante la aplicación del modelo. Este tipo de modelos dentro de la inteligencia artificial
se consideran modelos predictivos ya que si objetivo es predecir los datos de salida o eti-
quetas asociadas al conjunto de datos de entrada. Dentro de los modelos de aprendizaje
supervisado podemos encontrar dos grandes grupos: modelos de clasificación y modelos
de regresión. Los modelos se clasifican dentro de estas dos subcategorías en función del
tipo de salida que buscamos obtener con nuestros datos.
Los modelos de clasificación tienen como salida un valor categórico por ejemplo una
enumeración o un conjunto finito de clases, por ejemplo, dada una letra escrita a mano,
determinar de que letra se trata. Otro ejemplo que podemos encontrar dentro de los al-
goritmos de tipo clasificación es el que podemos encontrar en la Ilustración 3, donde se
presenta una clasificación de imágenes en base a un conjunto finito de posibilidades, en
este caso tipos de animales.
Por otro lado, los modelos de regresión se caracterizan por tener como salida un atributo
numérico especifico, es decir tienen como objetivo predecir un resultado que varia dentro
de un rango continuo. En la regresión, un algoritmo necesita identificar una relación fun-
cional entre los parámetros de entrada y salida. El valor de la salida no es discreto como
en el caso de la clasificación si no que su valor se calcula en base a una función construi-
da con los datos de entrada. Un ejemplo muy común que podemos encontrar dentro de
los modelos predictivos de regresión son los modelos que tratan de predecir el valor de
mercado de un bien. Este tipo de modelos de aplican frecuentemente en los mercados
financieros, urbanísticos...Para ello se emplean datos de entrada como precio histórico,
ubicación, área, metros cuadrados de la vivienda y la salida será el valor estimado de un
inmueble específico.[7]
2.1. Clasificación
Como acabamos de ver, los algoritmos de clasificación es uno de los principales sub-
grupos dentro del aprendizaje supervisado. Este tipo de algoritmo tiene como objetivo
predecir las etiquetas de clase de nuevos registros basándose en observaciones pasadas.
Dependiendo de la etiqueta, se puede decir que la clasificación es binaria o multi-clase.[8]
13
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Existen muchos tipos de algoritmos que utilizan este tipo de entrenamiento. En este curso
haremos un repaso de los mas comunes y sus aplicaciones.
• Una combinación lineal o regresión lineal a partir de la cual combinamos las dis-
tintas variables cuantitativas que estamos empleando como datos de entrada
• Aplicación de una función logística o sigmoide con la que convertimos las varia-
bles obtenidas en la primera fase del algoritmo en un clasificador. Esta función
pese a parecer complicada y arbitraria en su forma matemática tiene una forma
bastante simple que podemos observar en la Ilustración X. Esta función tiene unas
características que nos permiten interpretar sus resultados como probabilidades.
Esta acotada entre 0 y 1, su valor mínimo es 0 y su valor máximo es 0. En función
de los datos que hayamos empleado para el entrenamiento pondremos nuestro
límite en un valor específico. Por ejemplo, en un problema de clasificación binaria
podremos suponer que los valores menores a 0.5 corresponden con la clase 0 y los
valores superiores a 0.5 a la clase 1. [10]
14
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Un ejemplo sencillo de como podemos aplicar este tipo de funciones se trata de un pro-
blema clasificatorio muy común en lo manuales de iniciación a la inteligencia artificial.
Se trata de identificar una base de datos con características de flores de iris en función de
la especie a la que pertenecen: setosa, veriscolor y virginica.
15
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Esta base de datos se encuentra incluida dentro del paquete de Python scikit-learn, y es
muy utilizado debido a su simplicidad. Scikit-learn [11] es una biblioteca de software para
el aprendizaje automática que podemos encontrar dentro de Python y que contiene los
principales algoritmos de clasificación, regresión, análisis de grupos… A lo largo de este
manual lo utilizaremos como herramienta principal para ejemplificar los distintos algorit-
mos que vamos a estudiar.
La base de datos de Iris contiene datos de 150 flores con una serie de variables cuantita-
tivas asociadas a ellas.
El segundo paso es obtener la base de datos que vamos a emplear como entrenamiento.
En nuestro caso vamos a utilizar una base de datos incluida dentro de la librería scikit-
learn, por lo que podemos importarla directamente a Python sin necesidad de cargar la
base de datos desde otros repositorios o podemos descargarla de un repositorio de bases
de datos publicas como Kaggle y cargarla como archivo csv en Python. En este caso va-
mos a utilizar una base de datos ampliamente distribuida y empleada en múltiples ejem-
plos de iniciación a la inteligencia artificial, pero si estamos interesados en aprender a
desarrollar modelos de inteligencia artificial, necesitaremos obtener bases de datos que
podamos utilizar con este propósito. Kaggle es una plataforma colaborativa en la que po-
demos encontrar múltiples bases de datos abiertas disponibles para su descarga además
de proyectos sobre esas mismas bases de datos desarrollados por la comunidad.
Una vez tenemos nuestra base de datos disponible para su utilización, vamos a comenzar
por explorar el tipo de datos que tenemos disponibles para la construcción de nuestro
modelo de regresión logística. Al cargar nuestra base de datos hemos visto que las varia-
bles con las que vamos a trabajar son cuatro y corresponden con el alto y el ancho de los
pétalos y los sépalos de las flores de Iris respectivamente. Podemos obtener mas informa-
ción de nuestra base de datos analizando la cabecera de esta. En la Ilustración 8 podemos
encontrar información sobre el tamaño de la base de datos, su estructura y la descripción
de cada una de las variables.
16
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Para comprender mejor como se distribuyen los datos dentro de nuestra base de datos
podemos representarla de manera gráfica utilizando la librería de matplotlib que hemos
importado en el primer paso. Esto nos permitirá crear distintos tipos de gráficos como
histogramas (Ilustración 9) o graficas de dispersión (Ilustración 10). A partir de estas
gráficas podemos observar que las variables cuantitativas de las que disponemos dentro
de nuestra base de datos crean agrupaciones visibles a simple vista, por lo qué podemos
esperar que nuestro modelo de regresión logística sea capaz de diferenciar las distintas
clases con bastante facilidad.
17
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Para la creación del modelo tomamos los datos que hemos estado analizando y los divi-
dimos en dos grupos: datos de entrenamiento y datos de validación. Para llevar a cabo
la construcción de un modelo de machine learning es necesario separar los datos que
tenemos disponibles en dos subconjuntos de datos para poder comprobar como esta fun-
cionando nuestro modelo respecto a los valores reales que tenemos como referencia. Esto
nos generará dos subconjuntos de datos, uno mayor que contendrá entorno al 80% de los
datos disponibles y que se dedicará al entrenamiento y uno mas pequeño que contendrá
el 20% de los datos restantes y que será empleado en la fase de prueba del algoritmo.
Una vez hemos dividido la base de datos que tenemos disponible para el entrenamiento
obtenemos dos nuevas bases de datos, una en la que vamos a encontrar los datos destina-
dos al entrenamiento del modelo con sus respectivas etiquetas que contienen la especie a
la que pertenecen cada una de las entradas de la tabla y un segundo subconjunto de datos
que contendrá los datos destinados a comprobar la precisión con la cual nuestro modelo
es capaz de clasificar nuevos datos de entrada.
18
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Con estos datos podemos crear un algoritmo que contenga la función LogisticRegression
que hemos importado desde el paquete de scikit-learn [12]. Este algoritmo lo vamos a en-
trenar con los datos que hemos seleccionado como conjunto de entrenamiento haciendo
uso de la función fit. Este proceso podemos verlo reflejado en el cuadro de código de la
Ilustración 12.
En este punto ya hemos entrenado nuestro primer modelo de inteligencia artificial. Una
vez tenemos nuestro algoritmo entrenado con nuestros datos de entrada debemos com-
probar que nivel de precisión nos aporta a la hora de clasificar nuevos datos. Para ello
vamos a utilizar los datos que hemos reservado como subconjunto de validación.
19
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
En nuestro caso pese a haber obtenido un resultado muy alto de exactitud, no debemos de
sospechar de sobreajuste u overfitting, ya que hemos utilizado una base de datos pequeña
cuyas entradas contienen variables con mucha información.
Para poder comprender como funciona este algoritmo primero debemos entender el con-
cepto probabilístico que encontramos detrás de él.
Como hemos dicho el algoritmo de clasificación de Naive Bayes se basa en la formula del
teorema de Bayes.
20
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Donde:
Pero ¿que ocurre si este dado de caras ya ha sido lanzado y se que ha caído en un número
par? La probabilidad que tenemos ahora de obtener un dos en el resultado ha aumentado
hasta ser de 1/3. Cuando tenemos información previa sobre la variable que pretendemos
calcular esta afecta a los posibles resultados que vamos a obtener.
21
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
En la definición del algoritmo de Naive Bayes hemos visto que este asume que las va-
riables que estamos utilizando como predictores son independientes unas de otras. Eso
quiere decir que la probabilidad de que ocurra el evento A no se va a ver afectada por la
probabilidad de que ocurra el evento B, con lo cual podemos decir que la probabilidad de
que ocurran los eventos A y B al mismo tiempo es la misma que la del producto de las
probabilidades de A y B por separado.
¿Cómo podemos aplicar esto a un clasificador de Naive Bayes? Vamos a verlo a través de
un ejemplo. Supongamos que predecir la posibilidad de que un nuevo email en nuestra
bandeja de entrada sea spam. Para poder realizar esta predicción tenemos una serie de
datos de todos los emails que entran en nuestra bandeja de entrada: Si contiene o no
imágenes adjuntas, si el remitente es conocido y si el email ocupa mas de 50kb. Podemos
definir un posible email con las siguientes características: <Contiene imágenes, remitente
desconocido y pesa mas de 50kb>
1 Si No Si No
2 No No No Si
3 No No Si Si
4 Si Si No No
5 No No Si Si
6 No Si Si No
7 No Si No Si
8 No Si Si Si
9 Si No Si Si
10 No Si Si No
11 No Si No No
12 SI No No Si
13 SI SI Si No
14 Si No No Si
15 No No Si No
22
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Con estos datos podemos plantear la probabilidad de que este email sea spam de la si-
guiente manera:
Esto nos deja una formula compleja y muy costosa de calcular de manera manual, pero
como hemos visto antes el teorema de Bayes se basa en la independencia de las variables
unas de otras por lo que podemos reducir nuestra formula a la siguiente:
Como el denominador de esta fórmula es constante para cualquier input que vayamos
a introducir en el podemos eliminar ese término ya que no va a afectar a la salida de la
fórmula.
Esta formula es mucho mas sencilla de abordar y podemos calcular las probabilidades in-
dependientes de cada variable en función de los datos históricos que tenemos como datos
de entrenamiento contando las entradas que están clasificadas como Spam y contenían la
variable cuya probabilidad estamos tratando de analizar.
23
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
No 3 4 3/6 4/7
No 6 2 6/8 2/7
No 4 2 4/8 2/7
24
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Siguiendo los mismos pasos que en la formula original podemos derivar la formula para
la hipótesis contraria
Además como sabemos que la probabilidad total tienes que ser 1 podemos normalizar los
siguientes resultados y obtener un porcentaje
Este tipo de algoritmos tiene una serie de ventajas y desventajas que debemos de tener en
cuenta a la hora elegirlo como el óptimo para nuestra tarea de clasificación
25
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Ventajas
• Funciona bien con las entradas categóricas y nos permite integrar múltiples varia-
bles en los cálculos para clasificar datos
• Es fácil de integrar con otros algoritmos por lo que podemos utilizarlo como una
parte de un modelo compuesto de múltiples algoritmos.
Desventajas
• Asume que las variables actúan de manera independiente. En la vida real es muy
raro encontrarnos con predictores completamente independientes, por lo que al
utilizar este tipo de algoritmos perderíamos parte de la información contenida en
la base de datos.
• Si alguna de las variables que estamos utilizando como entrada en nuestro modelo
no tiene ninguna observación en los datos de entrenamiento, la probabilidad que
se le asignará a la misma es de cero. En ese caso habría que implementar un siste-
ma de corrección en los datos de entrada conocido como técnica de alisamiento, lo
que aumentaría la complejidad y el tiempo de implementación del modelo.
Pese a la simplicidad de este algoritmo su potencia hace que se haya implementado con
éxito en muchas aplicaciones, desde el análisis de texto hasta algoritmos predictivos del
diagnostico de cáncer.
26
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Como sugiere el nombre (K vecino más cercano), considera K vecinos más cercanos (pun-
tos de datos) para predecir la clase o el valor continuo para el nuevo punto de datos,
asumiendo que las variables similares existen en proximidad. En la imagen del ejemplo
podemos ver como los puntos de datos similares están cerca unos de otros. El algoritmo
de clasificador de vecinos cercanos depende de que esta suposición sea lo suficientemen-
te cierta para que este sea útil.
El algoritmo K-NN toma un montón de puntos etiquetados y los usa para aprender a eti-
quetar otros puntos. Este algoritmo clasifica los casos en función de su similitud con otros
casos, así, los puntos de datos que están cerca entre sí se denominan “vecinos”. K-vecinos
más cercanos se basa en este paradigma: “Casos similares con las mismas etiquetas de
clase están cerca uno del otro.” El proceso que sigue este algoritmo para clasificar los
nuevos puntos de entrada es el siguiente:
2. Calculamos la distancia desde nuestro nuevo caso a el resto de los casos de nuestros
datos de entrenamiento
4. Predecimos la clase del punto de datos desconocido usando el valor de respuesta más
popular de los K vecinos más cercanos.
27
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Para entender como funciona este algoritmo vamos a verlo a través de un ejemplo gráfico.
En la imagen podemos ver una serie de datos que pertenecen a dos clases diferentes y un
nuevo dato que debemos clasificar en alguna de las dos clases
28
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
En las graficas podemos observar que cuando escogemos los 3 vecinos mas cercanos
para realizar la clasificación, nuestra incógnita es clasificada como Clase A mientas que
si elegimos los 7 vecinos mas cercanos nuestra incógnita es clasificada como Clase B.
¿Entonces como debemos de elegir el número de vecinos óptimo para nuestro algoritmo?
Esto va a depender de la base de datos con la que estemos trabajando, no existe un núme-
ro de vecinos óptimo que podamos emplear en todos nuestros modelos. Si empleamos un
número de vecinos muy pequeño el ruido va a tener una mayor influencia en el resulta-
do, mientras que si elegimos un número muy grande tendremos un coste computacional
muy alto, además de correr el peligro de caer en el infra-ajuste o underfitting.
29
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Otra variable que debemos tener en cuenta a la hora de definir nuestro algoritmo es la
métrica que vamos a utilizar para calcular la distancia entre el punto que buscamos clasi-
ficar y los vecinos seleccionados. En la definición del algoritmo de K-NN se definen varias
métricas estandarizadas, pero es común encontrar aplicaciones de K-NN con modificacio-
nes de las mismas para adaptarlo a la base de datos empleada en el estudio.[19]
Distancia Manhattan: Esta métrica mide la distancia entre dos puntos en un espacio vec-
torial de N dimensiones. Es la suma de las longitudes de las proyecciones del segmento
de línea entre los puntos en los ejes de coordenadas. En términos simples, es la suma de
la diferencia absoluta entre las medidas en todas las dimensiones de dos puntos. Esta mé-
trica es coloquialmente conocida como la métrica del taxista, ya que se podría equiparar
a tomar el camino mas corto a través de las distintas calles que podemos recorrer en un
mapa.
30
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
En la figura del ejemplo, las líneas roja, azul y amarilla tienen la misma longitud. En la
geometría clásica o euclidiana la línea verde es mas corta que las demás, mientras que en
la geometría Manhattan la línea verde tiene la misma longitud que las líneas roja, azul y
amarilla.
Distancia de Chebyshev: En esta métrica definida dentro de un espacio vectorial “la dis-
tancia entre dos puntos es la mayor de sus diferencias a lo largo de cualquiera de sus di-
mensiones coordenadas”. Podemos entenderlo de una forma mas sencilla con el ejemplo
del tablero de ajedrez. La distancia a cualquier casilla del tablero de ajedrez será tantas
casillas tenga que recorrer moviéndome en cualquier dirección.
31
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Esta base de datos consistía en entradas de datos de 150 flores de Iris, donde se recogían
sus características respecto a el alto y ancho de sus pétalos y sépalos. Para este ejemplo
vamos a seguir la misma estrategia que con el ejemplo de regresión logística. Comenza-
remos por importar dentro de nuestro espacio de trabajo las librerías que vamos a utilizar
para entrenar nuestro modelo.
Vamos a utilizar los módulos integrados dentro del paquete de inteligencia artificial
sklearn de Python. A continuación, cargamos la base de datos de Iris ya incluida dentro
del paquete de sklearn.
Una vez tenemos nuestros datos disponibles, dividimos el set de datos en dos subgrupos,
datos de entrenamiento y datos des test. Para ello tomamos un 20% para el conjunto de
prueba extraídos de manera aleatoria.
32
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Finalmente aplicamos nuestro modelo al subconjunto de datos de test que hemos dejado
reservado para comprobar la exactitud con la que esta trabajando nuestro modelo.
Si queremos obtener una representación mas visual de como ha funcionado nuestro algo-
ritmo podemos representar graficas de dispersión en las cuales podemos distinguir que
datos se han clasificado dentro de cada grupo respecto a los valores reales de estos gru-
pos. En nuestro caso la grafica de dispersión que podemos observar representa la clasifi-
cación de cada uno de los datos de entrada en sus posibles clases representados a través
de las variables de ancho y largo de sépalo.
33
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
El principal caso de uso del algoritmo de vecinos cercanos son los sistemas de recomen-
dación basados en nuestro comportamiento. Por ejemplo, el algoritmo que utiliza Netflix
o HBO para recomendarte series y películas esta basado en un modelo de K-NN. Toma
como datos de entrada las películas que ya has visto, las que has valorado de manera posi-
tiva o negativa, y los géneros que mas visualizas. Pero para calcular sus recomendaciones
no solo emplea tus datos, si no los datos de millones de personas con un perfil similar al
tuyo. Si una persona con la que coinciden tus películas mejor valoradas le ha gustado un
nuevo estreno es mas probable que la plataforma de video te lo muestre a ti aunque sea
un género con el que no estas familiarizado, que una película de un genero que sueles
consumir pero que a perfiles similares al tuyo no les ha gustado.
Otro caso de uso bastante común de este tipo de algoritmos es la búsqueda en base a
conceptos. La información almacenada electrónicamente de manera no estructurada es
complicada de organizar, por ello para acceder a ella se emplean motores de búsqueda
basados en conceptos, es decir buscan la información basándose en las ideas que esta
expresa. [20]
Emplear este tipo de algoritmos tiene una serie de ventajas y de desventajas respecto a
otros sistemas de clasificación
Ventajas:
• Sin suposiciones sobre los datos: útil, por ejemplo, para datos no lineales
34
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Desventajas:
35
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
En primer lugar, debemos comprender cual es el objetivo de este tipo de algoritmos. Este
tipo de algoritmos busca clasificar los puntos de un conjunto de datos en grupos, em-
pleando un hiperplano que divida estos grupos, por lo tanto, el objetivo de entrenamiento
de este algoritmo es encontrar ese hiperplano que nos permita realizar esta clasificación.
Pero ¿Qué es un hiperplano? Los hiperplanos son límites de decisión que ayudan a clasi-
ficar los puntos de datos. Los datos van a encontrarse a un lado u al otro del hiperplano
dependiendo a que clase pertenezcan. La dimensión del hiperplano depende del número
de características o variables que empleamos para construirlo. Por ejemplo, si el número
de variables de entrada es 2, entonces el hiperplano es solo una línea en un plano. Sin
embargo, si el número de variables de entrada es 3, el hiperplano se convierte en un pla-
no bidimensional. Estos dos ejemplos podemos representarlos gráficamente de manera
sencilla en la Ilustración 24.
36
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Para un mismo grupo de datos den entrenamiento pueden existir múltiples hiperplanos
que nos permitan dividir las diferentes clases. En la Ilustración 25 podemos ver un ejem-
plo de una división de dos subgrupos de datos con distintos posibles hiperplanos. ¿De
que manera podemos determinar cual es el mejor hiperplano para dividir el espacio que
determinará en que grupo serán clasificados los datos?
37
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
38
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Otro ejemplo de datos que podemos encontrar es aquellos en los que los datos no pueden
clasificados de manera lineal en un plano de dos dimensiones. Esto no quiere decir que
no puedan ser clasificado en espacios de mayores dimensiones. Un ejemplo es el que
podemos encontrar en la Ilustación 31. Este conjunto de datos en dos dimensiones esta
aparentemente bien definido, pero no podemos separarlo utilizando un hiperplano en dos
dimensiones. En estos casos lo que debemos hacer es añadir una tercera dimensión. En
este caso vemos que los datos si pueden ser clasificados empleando un hiperplano lineal.
En esto consisten las máquinas de vector soporte. Nos permiten definir limites de separa-
ción lineales en espacios multidimensionales que se convierten en limites de separación
no lineales si los proyectamos en el espacio original de nuestros datos.
Esto se conoce como funciones tipo kernel y es la base sobre la que se sustenta el funcio-
namiento de las máquinas de vector soporte.
39
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Vamos a ver un ejemplo de como podemos implementar una máquina de vector soporte
de manera sencilla en Python. Para ello vamos a utilizar la base de datos de Iris que hemos
utilizado en ejemplos anteriores. La versatilidad de esta base de datos la hace idónea para
probar sobre ella distintos métodos de clasificación y contrastar sus resultados.
Siguiendo los mismos pasos que en ejemplos anteriores empezamos por cargar las libre-
rías que vamos a emplear en la construcción de nuestro modelo.
En segundo lugar, vamos a cargar nuestra base de datos. En este ejemplo solo vamos a
utilizar en nuestro clasificador las dos primeras características de la base de datos ya que
queremos construir un clasificador lineal en un kernel de dos dimensiones.
Con esto hemos generado un clasificador que nos permite dividir nuestra base de datos
en los tres grupos que contiene en base a las dos primeras características de la misma.
40
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Este tipo de clasificador se podría ampliar incluyendo el resto de la base de datos y el nú-
mero de dimensiones definidas en el kernel. En la Ilustración 36 podemos ver el resultado
de la clasificación que acabamos de llevar a cabo.
Este tipo de algoritmos al igual que el resto de los algoritmos que podemos encontrar
dentro del mundo de la inteligencia artificial presenta una serie de ventajas e inconve-
nientes que debemos tener en cuenta a la hora de ponerlo en práctica con nuestros datos.
Ventajas:
Deventajas:
41
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Y ahora, nuestra pregunta final es: “¿En qué situación debo usar SVM?” Bueno, SVM es
bueno para tareas de análisis de imágenes, como la clasificación de imágenes y el re-
conocimiento de dígitos escritos a mano. Además, SVM es muy efectivo en tareas de
minería de textos, particularmente debido a su efectividad en el manejo de datos de alta
dimensión. Por ejemplo, se utiliza para detectar spam, asignación de categorías de texto y
análisis de sentimientos. Otra aplicación de SVM es la clasificación de datos de expresión
génica, nuevamente, debido a su poder en la clasificación de datos de alta dimensión.
SVM también se puede usar para otros tipos de problemas de aprendizaje automático,
como la regresión, la detección de valores atípicos y la agrupación en clústeres.
42
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
43
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
44
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
45
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Índice de Gini: El índice de Gini también se basa en la pureza o impureza de las decisio-
nes que tomamos a la hora de definir las divisiones de nuestro árbol. Esta se basa única-
mente en divisiones binarias. Cuanto mas alto sea el valor del Índice de Gini mayor será
la homogeneidad.
En el caso de división por género, en el caso de las mujeres teníamos un 60% de posibi-
lidades de que la alumna seleccionada sea deportista (12/20) y un 40% de que no lo sea
(8/20). El cálculo del índice de Gini para el grupo de mujeres es el siguiente
Mientras que el Índice de Gini para el grupo de los hombres teniendo en cuenta que te-
nemos un 30% de posibilidades de que el alumno seleccionado sea deportista (3/10) y un
70% de que no lo sea (7/10).
Si ponderamos este índice entre ambos nodos obtenemos el siguiente resultado para la
división por género.
Si aplicamos la misma fórmula en caso de dividir a los alumnos en función de sus notas
obtenemos los siguientes índices de Gini:
Los alumnos con buenas notas tienen un 43% de posibilidades de ser deportistas (6/14) y
un 57% de no serlo, mientras que los alumnos con malas notas tienen un 56% de posibili-
dades de ser deportistas (9/16) y un 44% de no serlo.
46
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Por lo tanto, podemos calcular el índice de Gini ponderado para este nodo como:
Con estos datos podemos comprobar que el Índice de Gini es mayor para la división en
caso de género por lo tanto emplearemos esta variable como clasificador.
La medida del Índice de Gini se emplea como selector de atributos en los arboles CART
(Clasiffication and Regression Tree), algoritmo mas frecuente dentro de los árboles de
decisión empleados en machine learning.
Este tipo de algoritmos al igual que el resto de algoritmos tiene una serie de ventas e in-
convenientes a la hora de aplicarlo.
Ventajas
• Emplean una selección de las variables mas importantes de todas las disponibles,
reduciendo el procesado de predictores.
Desventajas
• Pueden aparecer sesgos cognitivos si una de las clases a clasificar es mucho mas
frecuente que otra.
47
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
2.2. Regresión
Los algoritmos de regresión tienen como objetivo establecer una relación entre las varia-
bles descriptoras de los datos de entrenamiento y una variable objetivo que varia dentro
de un rango continuo que tratamos de predecir. Este tipo de algoritmos pueden enmar-
carse en algoritmos de aprendizaje supervisado ya que este tipo de algoritmos son entre-
nados empleando datos de entrada etiquetados. Dentro de los algoritmos de regresión
encontramos un subconjunto especifico de algoritmos clasificados como algoritmos de
Deep learning o aprendizaje profundo que son estudiados de manera independiente.
Este tipo de modelos ha sido importado desde el ámbito de la estadística y trata de ex-
plicar la relación que existe entre una variable dependiente Y (variable que tratamos de
predecir) y un conjunto de variables independientes X1, X2,…Xn (predictores o variables
explicativas. Este algoritmo en su forma mas simple consite en la ecuación de una línea
recta.
48
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Para entender como funciona este tipo de modelos vamos a verlo a través de un ejemplo
gráfico construido en Python. Para este ejemplo, en lugar de tomar una base de datos de
código abierto vamos a construir la nuestra. Comenzamos por importar los paquetes de
código que vamos a necesitar en este ejemplo.
Una vez tenemos las herramientas que vamos a utilizar disponibles, construimos nuestra
base de datos. En este caso vamos a tratar de buscar la relación entre el número de horas
estudiadas por un alumno y la nota que obtiene en su examen final. Para ello cosntruimos
un DataFrame en el que incluimos los datos de las horas estudiadas por cada alumno y
las respectivas notas que han obtenido en su examen final. Podemos construirlo con las
siguientes líneas de código descritas en la Ilustración 40.
49
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Si dibujamos estos datos podemos observar que a simple vista presentan una relación
linear como se puede ver en la Ilustración 38.
Ilustración 41: representación gráfica de la base de datos empleada para el algoritmo de regresión lineal
Utilizando estos datos podemos construir un modelo de regresión lineal utilizando la li-
brería de sklearn que hemos importado al principio del ejemplo.
Podemos obtener los parámetros que conforman esta regresión lineal con las siguientes
líneas de código
De aquí podemos obtener la ecuación de nuestra recta, que en este caso será:
50
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Si representamos gráficamente esta línea sobre sobre nuestra base de datos obtenemos
el siguiente resultado.
Empleando esta fórmula podemos predecir la nota que obtendrá un estudiante en su exa-
men final en base al número de horas que haya estudiado. Supongamos que tenemos un
nuevo estudiante en clase que ha dedicado 12 horas a la preparación del examen final.
Aplicando la fórmula de regresión podemos calcular que obtendrá una nota de 91.2 pun-
tos sobre 100
Para poder emplear este tipo de aproximación a la hora de realizar una regresión logística
nuestros datos de entrada deben de cumplir una serie de supuestos.
• Independencia: Las variables utilizadas en los datos de entrada deben ser inde-
pendientes unas de otras.
51
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Esta serie de supuestos hacen que la regresión lineal presente una serie de limitaciones a
la hora de su aplicación.
Aun así, este algoritmo es uno de los más utilizados dentro de la inteligencia artificial
debido a su sencillez y robustez. Algunas de las aplicaciones que podemos encontrar de
las regresiones lineales se encuentran dentro de los sectores financieros y de márketing
por su facilidad para tratar datos numéricos con muchas características.
Además, dentro de la ciencia de datos son empleados muy frecuentemente para realizar
el análisis de un conjunto de datos previo a su entrenamiento para determinar cual es el
modelo optimo que debe ser aplicado.
Precisión de la predicción: Si los predictores tienen una relación lineal con la variable
respuesta, entonces los algoritmos de regresión lineal tendrán un sesgo bajo, sin embar-
go, si nos encontramos con pocas variables predictoras, vamos a tener una fuerte variabi-
lidad en el ajuste por minimos cuadrados, dando lugar a predicciones segadas.
Interpretabilidad del modelo: En una regresión lineal sin correcciones se incluyen todas
las variables predictoras disponibles podemos dar lugar a un modelo con una excesiva
complejidad dado por variables. Un ajuste de este tipo de modelos consiste en eliminar
las variables irrelevantes del modelo, ajustando a cero el coeficiente de estas variables,
generando un modelo mas sencillo de intepretar.
Las técnicas de regularización tienen como objetivo aumentar la precisión del modelo asi
como su interpretabilidad. Existen múltiples técnicas para llevar a cabo la regularización
de un modelo, en este módulo estudiaremos los princicipales modelos lineales generali-
zados y los mas utilizados. [28]
52
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Hay que recordar que la suma de los residuos cuadrados es el error que tratamos de mi-
nimizar para calcular nuestro modelo de regresión. A medida que el valor de λ aumenta
mayor es la penalización a ese predictor, mientras que si el valor de λ es 0 ese predictor
no sufrirá ninguna penalización. La desventaja de este modelo de regularización es que se
incluyen todos los predictores, porque, aunque λ sea muy grande, la penalización al pre-
dictor nunca va a ser cero (salvo que λ = ∞). Esto no supone un problema en la predicción
del modelo, pero si en su interpretabilidad ya que vamos a tener todos los coeficientes de
entrada generando un modelo complejo.
53
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Una forma de combinar ambos modelos de regularización se conoce como Elastic Net,
una estrategia que combina ambas propiedades buscando un equilibrio dentro de la ecua-
ción. [29]
54
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
• Eliminación bidireccional: Este último método es una combinación de los dos an-
teriores, en cada uno de los ciclos variables pueden ser añadidas o eliminadas. De
la misma manera se realiza un análisis estadístico de las mismas para comprobar
si el cambio en el modelo ha sido significativo o no.
El criterio que se sigue de manera general para determinar si una variable va a formar
parte de del modelo de regresión se basa en el valor p estadístico. Este valor define la
significancia estadística de la variable, en estadística se utiliza como determinante a la
hora de definir si una hipótesis nula es rechazada o aceptada. Un criterio de entrada típico
es que un valor p debe ser inferior a 0,15 para que una variable entre en el modelo y debe
ser superior a 0,15 para que una variable abandone el modelo. En el ejemplo de selección
hacia adelante, se crea un conjunto de modelos N, donde N es el numero total de variables
disponibles para realizar la regresión y se selecciona aquel con un mayor peso estadístico.
En el siguiente ciclo del modelo se añade una nueva característica al modelo y si el peso
estadístico del modelo es inferior a 0.15 la nueva variable es incluida dentro del modelo.
[30]
Este tipo de selección de variables tiene una serie de inconvenientes. En primer lugar
corremos el riesgo de incluir variables que no tengan un peso estadístico significativo
real ya que en el proceso de creación de este tipo de modelos repetimos constantemen-
te la misma hipótesis nula: Este predictor no añade información significativa al modelo.
Este problema se hace mas frecuente cuando en el conjunto de predictores encontramos
variables con mucha correlación entre ellas. En segundo lugar, corremos el riesgo de ge-
nerar sobreentrenamiento del modelo u overfitting debido a la correlación de las distintas
variables que incluimos dentro del modelo.
Un ejemplo de como podemos llevar a cabo la selección hacia atrás de variables es tra-
tar de construir un modelo de regresión en el cual tratemos de predecir la demanda de
electricidad de una ciudad. Entre las variables vamos a encontrar parámetros como el
tiempo atmosférico, la época del año, la inflación económica, la movilidad interurbana,
o si tenemos datos recientes, la incidencia acumulada del coronavirus en la ciudad. Si
construimos un modelo de regresión lineal con todos estos datos y los vamos eliminando
de manera iterativa del mismo en función de la significancia estadística que aporte cada
uno nos vamos a quedar con las variables con mas peso como productoras en nuestro mo-
delo final. Esto va a facilitar la interpratibilidad del modelo, ya que trabajaremos con un
modelo mucho mas simple y también reducirá el esfuerzo computacional que debemos
de realizar para poner en producción nuestro modelo. Cuando hablamos de interpretabi-
lidad del modelo, no solo nos referimos a la facilidad que tenemos para explicar que esta
ocurriendo tras los cálculos matemáticos del mismo si no a la información que podemos
extraer de este proceso. Por ejemplo, en el modelo de regresión hacia atrás que estamos
planteando, podemos extraer mas información derivada de las variables con mas peso
que se mantengan dentro de nuestro modelo.
55
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Si en el modelo final, obtenemos que una de las variables incluida es la época del año,
podemos plantear nuevas hipótesis en base a la significancia de esta variable, como por
ejemplo que el aumento del consumo eléctrico es debido a los aires acondicionados que
están funcionando en verano.
Este tipo de regresión es muy empleada dentro del campo de la inteligencia artificial para
la creación de modelos, pero cuenta con una serie de limitaciones que hacen que desde
el campo de la estadística sea fuertemente criticado el uso de este tipo de modelos. Estas
son algunas de las ventajas e inconvenientes que podemos encontrar cuando empleamos
este tipo de modelos
Ventajas:
• Nos permite trabajar con bases de datos muy grandes seleccionando las variables
mas significativas de todas las que tenemos disponibles
• Conocer el orden en que las variables han sido incluidas o eliminadas nos aporta
información extra sobre la calidad de los predictores que estamos empleando.
Desventajas:
• Una de las principales desventajas de este tipo de modelos es como trabaja con las
variables predictoras que están correlacionadas entre si. Si alguna de las variables
predictoras esta fuertemente correlacionada con otra puede que solo una de ellas
sea incluida dentro del modelo, sin tener en cuenta que ambas variables puedan
añadir peso significativo al modelo.
• Pueden eliminar variables que hemos incluido en los datos de manera artificial.
Esto puede ocurrir con lo que se conoce como dummy variables. Estas variables
se emplean cuando queremos añadir datos al conjunto de entrenamiento, o que-
remos preprocesar alguno de los datos disponibles. Por ejemplo si contamos con
una variable categórica que defina si un individuo es hombre o mujer, podemos
incluir esta variable como una variable dummy en la cual 1 implica que el sujeto es
un hombre y un 0 que el sujeto no es un hombre. Este tipo de escollo es fácil de sol-
ventar ya que podemos añadir de manera manual estas variables una vez hayamos
realizado la selección de caracteristicas para la regresión.
56
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
K-Nearest Neighbour
Arboles de decisión
Los arboles de decisión pueden emplearse tanto para problemas de clasificación como
para problemas de regresión. En el caso de estar ante el segundo tipo de problemas, la
división de los nodos se realizará mediante la minimización de la suma de cuadrados
residual. Este proceso emplea la misma métrica que los problemas de regresión lineal.
57
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
3. Aprendizaje no supervisado
“Este tipo de aprendizaje no puede aplicarse directamente sobre
problemas de clasificación o regresión ya que, al no contar con eti-
quetas en los datos de entrada existe la posibilidad de entrenar un
modelo en la forma en la que lo hacíamos con el aprendizaje super-
visado.”
58
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Estos algoritmos son capaces de localizar estos patrones en los datos sin necesidad de
intervención humana. Este tipo de aprendizaje genera un gran reto a la hora de construir
modelos de inteligencia artificial ya que, al no contar con datos etiquetados de entrada no
existe un output predeterminado. Si comparamos este tipo de algoritmos con el aprendi-
zaje supervisado podemos observar que permiten realizar tareas de procesamiento mas
complejas que los algoritmos de aprendizaje supervisado sin embargo sus resultados van
a resultar mas impredecibles. Este tipo de algoritmos con frecuencia se utilizan en combi-
nación con algoritmos de tipo supervisado, ya que permiten encontrar características que
pueden resultar útiles en la categorización de las variables. Dentro del aprendizaje no su-
pervisado podemos encontrar tres principales objetivos: agrupación de datos o clustering,
asociación de datos y reducción de dimensionalidad. En esta unidad del módulo veremos
en detalle en que consiste cada uno de estos objetivos y que algoritmos tenemos a nuestro
alcance para ponerlo en práctica.
Los ejemplos de aplicación del aprendizaje no supervisado no son tan directos como los
que podemos encontrar en el aprendizaje supervisado, pero su habilidad para descubrir
patrones ocultos en los datos los hace ideales para la exploración de datos, segmentación
de clientes, análisis de mercados y reconocimiento de imágenes.
3.1. Clustering
El clustering es un subconjunto de técnicas de aprendizaje no supervisado cuyo objetivo
es encontrar patrones en los datos que formen grupos claramente separados. El análisis
detrás de estos modelos se basa en la suposición de que es posible agrupar las muestras
en base a sus similitudes. Para ello se pueden emplear distintas métricas de distancia que
permitan agrupar los datos pertenecientes a clúster mediante la minimización de las mis-
mas, en comparación con el resto de los registros de la base de datos. Generar estas agru-
paciones en los datos tiene varias aplicaciones, por ejemplo, este tipo de algoritmos son
muy frecuentemente en marketing para segmentar los clientes y así poder ofrecer a cada
grupo el tipo de productos especifico para sus características. Otro ejemplo muy común
de utilización de técnicas de clustering es en investigación genómica. Cuando se trabaja
con volúmenes de datos tan grandes este tipo de técnicas nos permiten extraer caracteris-
ticas de los mismos que con otras técnicas seria demasiado costoso computacionalmente.
Este tipo de algoritmos se puede utilizar como aplicación final pero también podemos
utilizarlo como un paso previo a otras técnicas de aprendizaje, ya sean supervisadas o no
supervisadas, como exploración de datos y técnica de preprocesado de datos. Uno de los
problemas de este tipo de técnicas es la subjetividad de esta. Sobre un mismo conjunto
de datos se pueden generar distintos agrupamientos en función de las características que
empleemos para optimizar nuestro algoritmo de clustering.
59
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
3.1.1. k-means
K-means o k-medias es una de las técnicas de clustering mas utilizada para el agrupa-
miento de datos no estructurados. El objetivo de este algoritmo es encontrar grupos en
los datos, con el número de grupos representado por la variable K. En estos grupos va-
mos a encontrar las variables que comparten características semejantes, separándolas de
otros grupos con los que no comparten esas características. Para determinar que datos
pertenecen a cada grupo el algoritmo de k-mean minimiza la distancia entre los datos dis-
ponibles, generalmente utilizando como métrica la distancia euclideana aunque también
puede aplicarse este algoritmo utilizando otros tipos de métricas de distancia.[31]
Este algoritmo funciona de manera iterativa, y requiere como datos de entrada el número
de clusters que van a ser definidos dentro de los datos. Este valor se define con la varia-
ble k y se denomina centroide, ya que actua como centro del cluster. Asimismo, requiere
que los datos que vamos a utilizar como entrada o datos de entrenamiento sean valores
numéricos continuos. Si tenemos valores categóricos (por ejemplo, tipos de frutas: man-
zanas, peras, plátanos…) podemos tratar de transformarlas en variables numéricas, pero
esto afectara al rendimiento del algoritmo. En estos casos es mejor decantarse por otros
tipos de técnicas de clasificación. También es recomendable que los valores que vayamos
a utilizar estén normalizados (en la misma escala) para evitar disparidad geográfica en la
creación de clusters. El objetivo del k-means es minimizar la suma de las distancias entre
los puntos y el centroide al que pertenecen.[32]
60
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
3. Recalculo de los centroides. Una vez se han asignado todos los puntos a un cluster, se
recalcula el centro del mismo y este se toma como nuevo centroide
4. Se repiten los pasos 2 y 3 de manera iterativa hasta que se llega al criterio de parada.
61
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
• Los centroides dejan de cambiar su posición. Tras varias iteraciones los centroides
dejan de reubicarse en el centro del cluster por lo que no existirá reasignación de
puntos a distintos clusters.
Una de las características mas importantes a la hora de implementar este tipo de algorit-
mos es definir un correcto valor de k para nuestros datos. Este valor va a variar en función
de los datos que empleemos. Para aproximar un valor razonable de k se emplea lo que se
conoce como la técnica del codo. En esta técnica se compara los resultados del algoritmo
para distintos valores de k, midiendo la distancia media entre los puntos que conforman
cada uno de los clusters y su centroide. Como la distancia media disminuirá a medida que
aumente el valor de k, se emplea la distancia media al centroide en función de k. En el
punto en que este valor disminuya drásticamente podemos considerar que hemos encon-
trado el numero optimo de centroides para ese grupo de datos.
Podemos construir un ejemplo de clustering de una forma muy simple en Python. En pri-
mer lugar, importamos las librerías que vamos a utilizar en el ejemplo.
En este caso vamos a crear nuestra propia base de datos aleatoria. Para que los puntos
puedan ser fácilmente agrupables en tres clusters, vamos a generar estos datos de manera
independiente y a concatenarlos. De esta manera vamos a introducir de manera artificial
una relación en nuestros datos.
62
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Si visualizamos los datos que acabamos de obtener podemos ver que se distribuyen en
tres nubes de puntos aleatorias. Podemos observar esta relación de manera gráfica en la
Ilustración 52
Con estos datos podemos construir nuestro algoritmo de k-means. En primer lugar defini-
mos el número de centroides que vamos a emplear, o lo que es lo mismo cuantos clusters
queremos generar en nuestros datos. Con este valor inicializamos el modelo que hemos
importado de la librería sklearn. Una vez tenemos inicializado el modelo lo ejecutamos
sobre los datos de entrada que hemos generado previamente (X).
Podemos ver los resultados de este algoritmo de manera gráfica. Identificamos los centroi-
des que ha definido el algortimo con la función k_means.cluster_centers_, así como las
etiquetas del cluster en el cual se ha incluido cada uno de los puntos (k_means.labels_).
Con estos datos representamos gráficamente de nuevo los datos de entrada y podemos
ver como han sido agrupados en tres clusters diferenciados en función de su ubicación.
63
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
En este caso hemos definido el número de centroides en 3, ya que para el ejemplo hemos
definido los datos de manera artificial, generando tres nubes de puntos claramente dife-
renciadas, en la vida real, los datos pueden presentar multiples distribuciones y es nece-
sario estimar el numero de centroides correcto. Para ello se emplea la técnica del codo, en
la cual se computa la distancia media al centro del cluster en función de k. Esta distancia
se representa de forma grafica y se toma como k el valor en el cual la gráfica se aplana, ya
que a partir de ahí la distancia media se estabiliza y no generamos ganancia de informa-
ción si aumentamos la segmentación de los datos. En nuestro caso vamos a computar el
algoritmo de k-means sobre los datos de entrada con diferentes valores de k, desde uno
hasta diez, para poder observar en que momento la curva se aplana.
Podemos observar en la gráfica que la curva se estabiliza en el valor de k=3 por lo que
hemos elegido el numero correcto de clusters a la hora de implementar este algoritmo.
Esta técnica se conoce como la técnica del codo ya que la gráfica siempre va a estar re-
presentada por una curva y para determinar el valor óptimo de k debemos de buscar el
“codo” del brazo.
64
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Este tipo de algoritmo tiene muchas aplicaciones directas en casos reales como puede
ser la segmentación del comportamiento de clientes o grupos de usuarios en función su
actividad y sus intereses, así como la clasificación de medidas de distintos sensores, por
ejemplo en casos de video vigilancia podemos agrupar las imágenes obtenidas permi-
tiéndonos discernir distintos objetos y su clasificación. Otro caso de uso bastante común
de este tipo de algoritmos es la detección de anomalías dentro de los datos, por ejemplo
para tratar de detectar actividad de bots sobre grandes bases de datos, o la detección de
cambios significativos en los datos a lo largo del tiempo. Este tipo de algoritmos tiene
unos usos potenciales ilimitados, ya que se trata de modelos muy versátiles que pueden
ser utilizados en el clustering de cualquier tipo de datos. También tenemos que tener en
cuenta que pese a su fortaleza, al igual que otros tipos de algoritmos también tiene sus
desventajas y supuestos que debemos tener en cuenta antes de emplearlo.
65
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
3.1.2. k-median
El algoritmo de k-medians comparte bases y objetivo con el algoritmo de K-means. Es un
algoritmo de clustering cuyo objetivo es dividir la base de datos en un número específico
de clústeres o agrupaciones de datos. Para ello emplea el mismo proceso iterativo que
utilizamos en k-means, en el que definimos una serie de centroides a los asignamos los
puntos de nuestros datos creando diferentes clusters. La principal diferencia entre estos
dos algoritmos la encontramos en la métrica utilizada para calcular la distancia entre los
puntos pertenecientes al cluster y el centroide del mismo. Mientras que el algoritmo de k-
means minimiza la distancia euclidiana entre un punto y el centro del clúster, el algoritmo
de k-median minimiza la distancia de Manhattan o métrica del taxista. Recordemos que
la distancia eucleidea era calculada como la distancia mas corta en línea recta entre dos
puntos y se representaba con la siguiente fórmula:
Mientras que la distancia de Manhattan mide la distancia entre dos puntos en un espacio
vectorial, y se representaba con la siguiente fórmula
66
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Los clústeres aglomerativos son útiles si lo que buscamos es identificar clusters peque-
ños, mientras que si nuestro objetivo es localizar grandes clusters de datos nos resultará
mas útil emplear el método de agrupamiento divisivo.[34,35]
67
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
• Agrupamiento máximo o completo: Con este método se calcula todas las dife-
rencias por pares entre los elementos del grupo 1 y los elementos del grupo 2, y
considera el valor más grande (es decir, el valor máximo) de estas diferencias como
la distancia entre los dos grupos. Tiende a producir racimos más compactos.
1 20 €
2 50 €
3 7€
4 15 €
5 12 €
68
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Con esta tabla de datos de entrada podemos construir una matriz de proximidad que nos
sirva como base para construir nuestro dendrograma. En esta matriz vamos a calcular la
distancia entre los distintos puntos utilizando la métrica de distancia eucleidiana con la
fórmula
La distancia de la diagonal será siempre cero ya que la distancia entre un punto y si mis-
mo va a ser siempre de cero.
ID 1 2 3 4 5
1 0 30 13 5 8
2 30 0 43 35 38
3 13 43 0 8 5
4 5 35 8 0 3
5 8 38 5 3 0
Una vez hemos construido nuestra matriz de proximidad nos fijamos en los valores mas
próximos y los unimos en un solo clúster. Los valores mas próximos se corresponderán
con la menor distancia dentro de la matriz, en este caso entre los clientes 4 y 5. En la
primera iteración de nuestro algoritmo fusionaremos estos dos clústeres. Podemos verlo
reflejado en el dendrograma de la Ilustración 57.
69
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Para recalcular nuestra matriz de proximidad para la nueva iteración debemos actualizar
la tabla de datos que empleamos. Como hemos fusionado los clusters 4 y 5 pasamos a
considerarlos como un único segmento. A la hora de calcular la matriz de proximidad lo
hacemos tomando el valor mas alto de los dos contenidos dentro del clúster.
1 20 €
2 50 €
3 7€
(4, 5) 15 €
ID 1 2 3 4,5
1 0 30 13 5
2 30 0 43 35
3 13 43 0 8
4, 5 5 35 8 0
Con estos datos podemos generar la segunda iteración de nuestro algoritmo uniendo los
dos clústeres mas próximos, que en este caso son los clústeres 1 y el conjunto formado por
4 y 5. Con esta segunda iteración podemos actualizar nuestro dendrograma.
70
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
En este nuevo dedrograma podemos ver como nuestros clusteres se van agrupando hasta
llegar a la raíz del dendrograma donde todos se unen. Para realizar una nueva iteración
debemos actualizar de nuevo nuestra matriz de proximidad y la base de datos reflejando
los nuevos clústeres que se han formado.
2 50 €
3 7€
(1, 4, 5) 20 €
ID 2 3 1,4,5
2 0 43 30
3 43 0 13
1,4, 5 30 13 0
Con estos nuevos datos podemos actualizar nuestro dendrograma fijándonos en la distan-
cia mínima que encontramos en la matriz de proximidad. En este caso vamos a unir los
clústeres 3 con el conjunto de 1,4 y 5.
71
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Ahora que hemos visto un ejemplo de como funciona el algoritmo de clustering jearquico
vamos a ver como generar este tipo de árboles de manera automática utilizando Python.
Para ello vamos a descargar una base de datos de código abierto disponible en Kaggle.
Para este ejemplo vamos a utilizar una base de datos que contiene información sobre
la actividad financiera de un grupo de clientes a través de los movimientos de su tarje-
ta de crédito. Con estos datos vamos a tratar de clasificar a los clientes en grupos para
poder ofrecerles las mejores ofertas en base a su comportamiento.Para ello vamos a co-
menzar por descargar la base de datos de Kaggle (https://www.kaggle.com/vipulgandhi/
hierarchical-clustering-explanation/data). Una vez tenemos disponible nuestra base de
datos podemos empezar a crear nuestro modelo en Python. Como siempre al comenzar
cualquier tipo de programa en Python debemos cargar los módulos que vamos a emplear.
El siguiente paso es cargar la base de datos que hemos obtenido de kaggle y visualizar
su estructura.
72
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Una vez tenemos nuestra base de datos completa y en formato categórico debemos rea-
lizar un último paso en el proceso de preprocesado. Como podemos observar cada una
de las variables disponibles se encuentra en una escala diferente. Para poder calcular las
distancias entre cada punto de la base de datos necesitamos que todos se encuentren en
la misma escala, de lo contrario obtendremos distancias dispares en función de la métrica
de medida que estemos utilizando. Para ello vamos a normalizar nuestra base de datos, de
esta forma todas las variables tendrán un valor entre 0 y 1.
En este punto estamos listos para construir nuestro dendrograma. Este tipo de esquema
nos va a permitir decidir cuantos cústeres nos interesa construir para este problema en
concreto. Para ello simplemente debemos importar la librería que contiene el algoritmo
y aplicarla sobre los datos normalizados. En este caso en lugar de utilizar la librería de
sklearn vamos a utilizar la librería de scipy. Esta también es una biblioteca libre y de
código abierto compilada para Python. En ella vamos a poder encontrar herramientas y
algoritmos matemáticos.
73
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Si observamos el resultado del dendrograma podemos ver que existen tres clusteres prin-
cipales, y dado que la distancia entre clústeres viene dada por la longitud de las líneas ver-
ticales podemos observar que el primero de los clústeres se encuentra bastante alejado de
los otros dos. En base a este dendrograma vamos a aplicar la función de clúster jerárquico
sobre nuestros datos normalizados, esta vez clasificando cada uno de los puntos en tres
posibles clústeres. Para ello vamos a utilizar la librería de sklearn que contiene la función
de Aglomerative Clustering.
74
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Como output de esta función obtenemos un array (o vector) que contiene las etiquetas
del clúster en el que se ha clasificado cada uno de los puntos. Para poder observar esto
de manera visual podemos dibujar la gráfica en la que representemos las dos primeras
variables y su clasificación por color en función del clúster al que pertenecen.
La clasificación de todos los clientes en grupos nos permitirá definir una estrategia espe-
cifica para cada uno de estos grupos en función de sus características.
Este tipo de algoritmos como todos los que hemos visto tienen casos prácticos de aplica-
ción en la vida real, pero para poder utilizarlos debemos tener en cuenta el tipo de datos
con los que estamos trabajando. En este caso debemos utilizar el algoritmo cuando traba-
jamos con datos que sabemos que contienen una estructura jerárquica subyacente, la cual
deseamos recuperar. Un buen ejemplo de uso de estos modelos es con datos financieros
los cuales presentan una jerarquía clara. Este tipo de modelos trabaja en contraposición
a los modelos de clustering de k-mean o k-median, ya que estos últimos no permiten
conservar la jerarquía de los datos al tratarse de algoritmos con enlaces planos que cons-
truyen una jerarquía que no es la adecuada para datos anidados.
75
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
“Cuando se trata de datos de gran dimensión, suele ser útil reducir la dimensionalidad
proyectando los datos a un subespacio de menor dimensión que capte la «esencia» de los
datos. Esto se denomina reducción de la dimensionalidad.” -Página 11, Aprendizaje auto-
mático: Una Perspectiva Probabilística, 2012 [37]
76
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
77
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
El análisis factorial es una técnica de reducción de datos que emplea reducciones esta-
dísticas y que tiene como objetivo explicar las posibles correlaciones que existen entre
ciertas variables. Las variables con máximas correlaciones se incluyen en grupos homo-
géneos, procurando que estos grupos sean independientes unos de otros.
Este método puede utilizarse para reducir la cantidad de datos empleados ya que permite
identificar un pequeño número de factores que expliquen la mayor parte de la varianza de
los datos. Este tipo de análisis tiene otros tipos de aplicaciones en el campo de la estadís-
tica como por ejemplo generar nuevas hipótesis o inspeccionar las variables para definir
nuevos métodos de análisis. La principal aplicación en inteligencia artificial de este méto-
do pasa por el objetivo principal del método, emplear el mínimo posible de variables para
explicar la mayor cantidad de información posible contenida en los datos. Para obtener
estas nuevas variables el modelo realiza una serie de combinaciones lineales entre las
variables observadas para obtener las un número más pequeño de dimensiones latentes
(factores) no observables. Estos nuevos factores buscan explicar las relaciones que se es-
tablecen entre las variables observadas perdiendo el mínimo posible de información. [40]
El objetivo del análisis factorial es determinar el peso de estos nuevos factores de manera
que equiparen la varianza de los datos originales. Por medio de esta técnica logramos
reducir el número original de variables a uno mucho mas manejable.[43]
78
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
El análisis de componentes principales o PCA por sus siglas en inglés (Principal Compo-
nen Analysis) es una de las técnicas de reducción de dimensionalidad mas utilizadas en
aprendizaje máquina. Esta técnica se caracteriza por describir un conjunto de datos en
términos de nuevas variables no relacionadas. Con esto se busca reducir el número de
variables de forma que pasemos de tener bases de datos complejas representadas por un
gran número de variables a un mínimo número de nuevas variables que representen las
originales de la forma mas fiel posible. Este tipo de técnicas también facilitan la represen-
tación grafica de los datos al poder reducir los datos originales a un espacio de dos dimen-
siones (plano) o tres dimensiones (gráfico 3D). Esto nos va a simplificar comprender las
relaciones entre las variables y nos ayudará en la toma de decisiones.
1. En primer lugar, comenzamos normalizando los datos de entrada para que todas
nuestras variables se encuentren dentro de la misma escala.
3. Ordenamos los auto valores y sus asociados auto vectores de mayor a menor y selec-
cionamos los mas grandes. El número de autovalores seleccionados va a determinar
el numero de dimensiones que va a tener nuestras nuevas variables. Los mayores
autovalores y sus asociados autovectores contienen mas información mientras que
los menores contienen mucha menos. Al seleccionar los mas grandes estamos man-
teniendo la máxima información posible extraída de las características originales.
79
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
4. Con estos autovectores construimos una matriz que transformará nuestros datos.
Como en cada ejemplo comenzamos cargando las librerías que vamos a necesitar para
ejecutar nuestro código.
Una vez tenemos nuestras librerias disponibles, el siguiente paso es cargar la base de
datos que vamos a utilizar.
80
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Como podemos ver en la cabecera de nuestros datos, el archivo que hemos cargado con-
tiene una columna de identificación que no nos va a aportar información al modelo y que
va a interferir con los cálculos por lo que debemos hacer un paso de preproprocesado
para eliminarla. También vamos a separa nuestros datos en función de las variables que
vamos a utilizar como entrada en nuestro algoritmo y la variable ‘target’ que tratamos de
predecir.
Como podemos observar en la salida de la función tenemos nuestros datos limpios y li-
bres de ruido que pueda afectar al modelo. En el siguiente paso vamos a separar los datos
disponibles en datos de entrenamiento y datos de test. Este paso no es necesario para
aplicar el algoritmo de análisis de componentes principales, vamos a realizar esta división
para poder comprobar, aplicando otro tipo de clasificador, la cantidad de información que
conservamos una vez hemos aplicado el PCA sobre nuestros datos.
Una vez tenemos nuestros datos disponibles vamos a aplicar el primer paso del algoritmo
de PCA, normalización de los datos. Para ello vamos a utilizar una función previamen-
te definida en Python y que hemos cargado con la función “from sklearn.preprocessing
import StandardScaler” Esta función vamos a aplicarla en los datos de test y de entrena-
miento.
81
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
El paso siguiente dentro del algoritmo consiste en extraer los eigenvalues y eigenvectors
de los datos originales y utilizarlos como matriz de transformación para trasladar esos
datos a un nuevo espacio. Para evitarnos complejos cálculos matemáticos vamos a utilizar
de nuevo una función predefinida.
Dentro del algoritmo que hemos aplicado podemos encontrar una variable que definimos
como ratio de varianza, la cual nos indica la cantidad de información que vamos a encon-
trar en cada uno de los componentes principales que hemos generado a partir de nuestros
datos. Como no le hemos definido en la entrada de la función cuantos componentes debe
generar, por defecto la función va a crear el mismo número de componentes principales
que de variables disponibles, en este caso serán cuatro.
Podemos interpretar la salida de esta variable como la cantidad de información que con-
tiene cada uno de los componentes principales que hemos extraido. En este caso pode-
mos observar que el primer componente contiene el 72% de la información disponible
en la base de datos, mientras que el segundo contiene el 23%. Los componentes tercero
y cuarto apenas contienen información por lo que podríamos desecharlos sin que esta
pérdida afecte significativamente a la precisión del modelo.
Como hemos visto que la mayor parte de información se encuentra contenida en el pri-
mer componente extraído, vamos a generar una PCA en la cual solo obtengamos el pri-
mer componente.
82
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Para comprobar la efectividad de nuestro modelo lo aplicamos sobre los datos de test
también transformados al espacio de PCA y comprobamos el grado de precisión que ob-
tenemos utilizando los datos de la variable ‘target’ que tenemos almacenados en y_test.
Podemos observar que obtenemos una precisión de predicción del 83% utilizando única-
mente el primer componente de PCA extraído de los datos de entrenamiento.
83
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Si comparamos este resultado con el obtenido aplicando el mismo modelo de K-NN sobre
los datos originales de entrada podemos comprobar que la precisión de la clasificación
ha disminuido parcialmente, ya que en el modelo original obteníamos una accuracy del
96%, pero aun asi mantenemos un valor alto de precisión en nuestro modelo clasificador,
generando un modelo mas simple y que requiere una menor potencia computacional a la
hora de ser entrenado. En el caso de estos modelos de ejemplo el consumo de recursos no
es un problema ya que son modelos muy sencillos, pero cuando estos se escalan a nivel
productivo, la reducción de características puede convertir un modelo inasumible compu-
tacionalmente en un modelo gestionable.
El análisis discriminatorio lineal o LDA por sus siglas en ingles (Linear Discriminant
Analysis) es un método de reducción de dimensionalidad lineal también muy utilizado
en aprendizaje máquina. El método fue presentado por primera vez por Ronald Fisher
en 1936 y se ha convertido en uno de los métodos mas utilizados a día de hoy en el pre-
procesamiento de los datos utilizados para aprendizaje máquina. Este método se basa
en el mismo fundamento que el análisis de componentes principales de reducción de las
variables disponibles en la base de datos original mediante su proyección a un nuevo es-
pacio dimensional de menores dimensiones. Con esto se pretende lograr una reducción
de variables que facilite la aplicación de modelos de inteligencia artificial de una manera
mas sencilla y menos costosa computacionalmente hablando.[41,42]
Aunque el principio fundamental del método de análisis discriminatorio lineal sea el mis-
mo que el de PCA, el funcionamiento de estos dos algoritmos difiere en cuanto a la téc-
nica utilizada para transformar las variables al nuevo espacio dimensional. En el caso de
LDA el proceso que se sigue para obtener esta reducción consta de tres pasos:
1. En primer lugar, se calcula la varianza entre clases (between-class variance). Esta va-
rianza mide la distancia entre las medias de las distintas clases presentes en nuestra
base de datos. La fórmula que se utiliza para calcular esta varianza entre clases es la
siguiente:
2. En segundo lugar, calculamos la varianza intra-clase (within class variance). Esta va-
rianza va a representar la distancia entre el valor medio de la clase y cada una de las
muestras recogidas en ella. Esta varianza se calcula utilizando la siguiente fórmula:
84
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Fórmula LDA
85
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
La escala multidimensional o MDS por sus siglas en ingles (Multi Dimensional Scale) es
una técnica de reducción de dimensionalidad en la cual el conjunto de variables origina-
les es transformado a un nuevo espacio dimensional de menores dimensiones, generando
un nuevo conjunto de variables. Esta técnica utiliza el espacio geométrico para determi-
nar la similitud o disimilitud de los datos disponibles. Este modelo proyecta los datos a un
espacio de dimensiones inferior de manera que los puntos de datos que están cerca unos
de otros, en términos de distancia euclidiana, en la dimensión superior también estén
cerca en la dimensión inferior.
El mapeo de las características isométricas opera de una forma muy similar al método de
escala multidimensional, la principal diferencia se encuentra en la métrica utilizada para
determinar la distancia entre los datos. Mientras que en el modelo de escalas multidimen-
sionales se utiliza la distancia euclidiana en los mapas de características isométricas se
emplea la distancia geodésica. Esta distancia podemos definirla como la distancia mas
corta entre dos puntos dentro de una curva.
Este algoritmo es una modificación del algoritmo de escala multidimensional que nos
permite eludir muchos problemas relacionados con la linealidad.
86
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
87
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Otro método para eliminar variables de nuestra base de datos original consiste en filtrar
la calidad de los datos en función de su varianza. Una columna en la cual la varianza es
mínima podemos asumir que contiene poca información ya que los cambios en los datos
van a ser muy pequeños. De la misma manera que podíamos establecer un umbral para
eliminar variables con muchos valores perdidos, también podemos definir un umbral mi-
nimo de varianza para considerar una variable com útil e incluirla dentro de nuestra base
de datos
Bosques aleatorios
Los algoritmos de bosques aleatorios o random forest son algoritmos de aprendizaje su-
pervisado que pueden emplearse en tareas tanto de regresión como de supervisión. Este
tipo de algoritmos también están contemplados a la hora de seleccionar variables. Este al-
goritmo trabaja de una forma bastante similar a los arboles de decisión, con la diferencia
de que los genera de manera aleatoria sin atender a un criterio estadístico y después los
combina hasta obtener un modelo clasificatorio robusto. De este resultado clasificatorio
final podemos obtener información para seleccionar las variables con mayor peso dentro
de nuestra base de datos.
88
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
89
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
90
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
• En el caso del aprendizaje por refuerzo, el algoritmo identificará el objeto por in-
teracciones previas con el mismo y realizará una acción con el. Nos comemos la
manzana porque esta rica y nos hace sentir bien.
91
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Para comprender mejor estos conceptos lo mas sencillo es hacerlo a través de un ejemplo.
Imaginemos que nos encontramos dentro de un videojuego, por ejemplo, Mario Bros. En
este caso, el agente será Mario que se encuentra controlado por nosotros (el algoritmo
que toma las decisiones), el ambiente será el mundo virtual en el que se desarrolla el jue-
go, donde estaremos sometidos a una serie de estímulos al lo largo del juego. Estos estí-
mulos van a consistir en una serie de objetos de los que podemos hacer uso. Estos objetos
traerán consigo una recompensa. Esta puede ser positiva, como comer un champiñón y
hacernos mas grandes, o recoger una estrella y tener superpoderes de manera temporal,
o negativa, chocar con una tortuga y perder una vida, o tocar el fuego y hacernos mas pe-
queños. Las acciones que desarrollemos dentro del juego producirán estas recompensas.
92
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Imitar este tipo de comportamiento conductual mediante algoritmos es una tarea com-
pleja, ya que al tratarse de sistemas dinámicos en los cuales no existe una respuesta ex-
plicita correcta requieren un proceso de exploración antes de ser útiles. A lo largo de
este proceso de exploración el agente debe decidir entre obtener recompensas positivas
de manera inmediata o continuar explorando y encontrar nuevas formas de encontrar
recompensas. El aprendizaje por refuerzo resuelve el difícil problema de correlacionar las
acciones inmediatas con los resultados tardíos que producen. Al igual que los humanos,
los algoritmos de aprendizaje por refuerzo a veces tienen que esperar para ver el fruto
de sus decisiones. Operan en un entorno de retorno retrasado, donde puede ser difícil
comprender qué acción conduce a qué resultado en muchos pasos de tiempo. Este tipo
de modelos se basan en un proceso de decisión múltiple, con un fin último al que deben
llegar por medio de recompensas positivas, evitando las negativas.
Existen muchas aplicaciones de aprendizaje por refuerzo en la vida real, uno de los que
esta acaparando una gran atención últimamente por sus avances es proceso del coche
autónomo.
El proceso de aprendizaje del coche autónomo es uno de los mas complejos que podemos
encontrar en los modelos de aprendizaje por refuerzo, ya que el agente va a encontrarse
con situaciones en las que ninguna de las acciones posibles va a resultar positivas, en
cuyo caso deberá decantarse por la que genere un menor impacto negativo en el proceso.
En el ejemplo del coche autónomo podemos identificar claramente los componentes del
modelo de aprendizaje por refuerzo. El agente será el sistema de conducción autónoma
del coche. El ambiente en este caso supone un reto adicional ya que el ambiente de apren-
dizaje del modelo no puede ser el mismo ambiente que en el que se va a desarrollar la
actividad, ya que no podemos entrenar un modelo de aprendizaje reforzado en las carre-
teras por las que se encuentran circulando el resto de los coches, ya que las respuestas
de tipo negativo pueden causar efectos fatales. A la hora de desarrollar un modelo capaz
de conducir un coche autónomo es crucial contar con un simulador realista. Otro de los
grandes desafíos se encuentra en transferir el sistema fuera del entorno de entrenamiento
a el mundo real. Escalar y ajustar la red a parámetros reales supone un gran reto en el de-
sarrollo de coches autónomos. En cuanto al sistema de recompensas varía en función del
desarrollador, pero todos tienen como objetivo común llegar al destino de manera segura.
Este sistema es la única forma que existe de comunicación con el algoritmo (el agente
solo responde a través del sistema de recompensas y penalizaciones), por lo que debemos
preparar al sistema ante todas las posibilidades imaginables.
Esto trae consigo un desafío aun mayor, ya que la introducción de nuevos estímulos en
el sistema puede hacer que algunas de las respuestas pre entrenadas sean sustituidas por
otras nuevas. Este escenario es especialmente peligroso en el caso de la conducción au-
tónoma dato que ante una situación de emergencia no podemos contar con la seguridad
de que el piloto va a responder con la acción que esperamos o ha desarrollado una nueva
habilidad de la que no tenemos constancia.
93
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Los coches autónomos son solo un ejemplo de las aplicaciones de aprendizaje por refuer-
zo que podemos encontrar hoy en día implantadas en la vida real
94
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
• Aplicaciones en mercados financieros: Una de las áreas en las que mas se ha de-
sarrollado modelos de aprendizaje por refuerzos son los mercados de activos. IBM
ha desarrollado una compleja plataforma basada en aprendizaje por refuerzo que
cuenta con la habilidad de realizar compraventas en mercados. Esta calcula la fun-
ción de recompensa en función de la pérdida o ganancia de cada transacción fi-
nanciera.
• Aprendizaje por refuerzo en salud: Este tipo de algoritmos son frecuentemente uti-
lizados en el área de salud como dispensación de tratamientos, o diagnostico basa-
do en pruebas médicas. Existen múltiples agentes en desarrollo, pero su aplicación
en pacientes reales aun se encuentra bastante restringido debido a los potenciales
riesgos de esta tecnología
El aprendizaje por refuerzo es una tecnología en pleno desarrollo y que va a tener apli-
caciones en prácticamente todas las áreas de la vida real. El aumento de la capacidad
computacional disponible y el desarrollo de nuevos algoritmos de software dan lugar a
la aparición constante de nuevas aplicaciones que hace unos pocos años solo podíamos
imaginar a través de la ciencia ficción.[50]
95
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Uno de los ejemplos clásicos mas utilizados para comprender el funcionamiento de este
tipo de modelos es problema planteado por Barto, Sutton y Anderson en “Elementos
adaptativos similares a neuronas que pueden resolver un problema de control de aprendi-
zaje difícil”[51]. En este problema Un poste está unido por una articulación no accionada
a un carro, que se mueve a lo largo de una pista sin fricción. El péndulo comienza en po-
sición vertical y el objetivo es evitar que se caiga aumentando y reduciendo la velocidad
del carro. Para ello debemos programar un agente que se encargue de realizar distintas
acciones con el objetivo final de que el poste no llegue a tocar el suelo.
Para poder ejecutar este modelo en primer lugar debemos de instalar los módulos de gym
en Python. Esta librería es de código abierto y podemos incluirla dentro de nuestro entor-
no ejecutando el siguiente comando dentro de nuestro editor de notebooks.
96
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Podemos comprobar en la salida del comando que la librería es descargada de los reposi-
torios oficiales de Python e instalada en nuestro entorno.
Si ejecutamos este código después de haber instalado las librerías necesarias, se abrirá
una nueva ventana en la que podemos ver el resultado de la toma de decisiones del agen-
te de manera interactiva.
Si analizamos este código podemos ver las distintas partes de un modelo de aprendizaje
reforzado dentro del script:
• Las recompensas positivas o negativas son recibidas como respuesta a una acción
en el ambiente
97
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
El entorno nos devuelve una serie de variables cada vez que el agente realiza una acción:
• Reward: Esta variable nos devolverá la puntuación que obtenemos tras cada acción
• Info: En este entorno podemos contar con información adicional que nos ayude a
programar nuestro agente
En base a estas variables nuestro agente realizará una acción (mover el carro a la derecha
o a la izquierda) para tratar de maximizar los refuerzos positivos, creando un equilibrio en
el poste que se encuentra adherido al carro.
En este ejemplo contamos con un agente pre-programado que realizará las acciones por
nosotros. Si deseamos adentrarnos mas dentro del mundo de la programación podríamos
generar nuestro propio agente que realice acciones en base a las variables que nos de-
vuelve nuestro entorno.
98
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
5. Deep Learning
“El aprendizaje profundo tiene como objetivo la imitación del
comportamiento humano, es decir trata de que los modelos realicen
funciones que son naturales para un humano: aprender de la
experiencia.”
El aprendizaje profundo es una tecnología clave detrás de los vehículos sin conductor,
que les permite reconocer una señal de tráfico o distinguir un peatón de un farola. Es la
clave para el control por voz en dispositivos de consumo como teléfonos, tabletas, televi-
sores y altavoces inteligentes. El aprendizaje profundo está recibiendo mucha atención
últimamente y es por una buena razón: está logrando resultados que antes no eran posi-
bles.
El origen del Deep learning se remonta a los años 40 donde surgieron los primero estu-
dios sobre las aplicaciones de modelos biológicos al campo de la computación, las bases
del Deep learning fueron asentadas por Warren McCulloch y Walter Pitts con la publica-
ción de su artículo “A logical calculus of the ideas immanent in nervous activity”[53]. En
este articulo se presentaba un modelo de neurona que evolucionaria hacia lo que hoy co-
nocemos como Deep learning. Este tipo de aprendizaje fue evolucionando a lo largo de las
siguientes décadas donde cabe destacar las aportaciones realizadas al campo por Frank
Rosenblatt, el cual presento su modelo de perceptrón en 1958 [54]. Durante las décadas de
los 80 y 90 surgieron nuevos modelos que han dado lugar a las aplicaciones que podemos
encontrar hoy en dia de Deep learning. Sin embargo, no fue hasta la época de los 2000
cuando se definió el concepto de Deep Learning que conocemos en la actualidad. Histó-
ricamente el Deep learnign ha sido asociado a los modelos Artificial Neural Networks
(ANN), debido a su similitud con el cerebro humano.
99
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Hoy en día, el Deep Learning ya no se encuentra tan relacionado con la perspectiva neu-
rocientífica. Ahora, esta área trabaja con modelos que compuestos por múltiples niveles
entrelazados entre si.
Pese a que el origen de esta tecnología se remonta a los años cuarenta, no ha sido hasta
la actualidad cuando este tipo de aprendizaje ha empezado a mostrar precisión de van-
guardia, que a veces supera el rendimiento a nivel humano. El aprendizaje profundo logra
una precisión de reconocimiento en niveles más altos que nunca. Esto en parte es debido
a los requerimientos técnicos necesarios para la construcción de este tipo de modelos. El
aprendizaje profundo requiere de dos factores cruciales para lograr estos resultados:
Estos factores ayudan a que los productos electrónicos de consumo generen produzcan
resultados no vistos hasta el momento.
El factor diferenciador que presenta el Deep learning respecto a otras áreas de la inteli-
gencia artificial es que este es capaz de aprender por si mismo sin necesidad de que el ser
humano (el programador) le de las indicaciones necesarias para realizar su labor. Este tipo
de aprendizaje se asemeja al proceso de aprendizaje que realiza un niño pequeño capaz de
resolver tareas que no le han sido enseñadas específicamente. Por ejemplo, en modelos de
aprendizaje máquina tradicionales, para poder identificar a un perro, debemos de contar
con una base de datos de perros, de la cual hemos extraído una serie de características
identificativas, y le hemos presentado al algoritmo estas características indicándoles que
son aquellas que son determinantes a la hora de identificar a un perro.
100
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
El programa entonces entiende que esas características son propias de los perros y si se
le proporciona una nueva imagen y esta contiene las características dadas, entonces el
programa nos va a devolver la respuesta de que la imagen proporcionada corresponde a
un perro con un intervalo de confianza definido por el algoritmo.
Dentro del aprendizaje profundo podemos realizar una clasificación de los distintos tipos
de redes que podemos utilizar para realizar estos modelos. En este capítulo vamos a intro-
ducir las bases necesarias para comprender el funcionamiento de las redes neuronales y
las principales redes profundas que se esta empleando actualmente en la industria.
La investigación de las redes neuronales tuvo su gran revolución a finales del siglo XIX
tras la presentación de los trabajos de Santiago Ramón y Cajal [56] a principio de siglo
sobre la estructura neuronal. Sus trabajos supusieron tal cambio de paradigma en el área
de la neurociencia que le hicieron ganar el premio Nobel de Fisiología y Medicina de 1906
que compartió con Camilo Golgi. Unido a este trabajo también apareció durante el siglo
XIX el trabajo de Sherrington [57], el cual explicó el funcionamiento de las neuronas. El
hallazgo de Cajal de que las neuronas eran estructuras anatómicas independientes resal-
taba la importancia del espacio entre ellas, ahí era donde la información tenía que pasar
de una a otra, el punto clave de la función cerebral. Sherrington completó este trabajo
dando lugar al modelo de neurona con el que se trabaja actualmente en neurociencia.
101
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
La célula nerviosa se denomina neurona, que es la unidad funcional del sistema nervioso.
Estas están clasificadas en base a su función, pudiendo ser neuronas sensoriales, motoras
y de asociación. Se estima que en cada milímetro cúbico del cerebro hay cerca de 50.000
neuronas. La estructura de una neurona se muestra en la Ilustración 84.
Dentro de esta estructura cabe destacar tres estructuras principales: el cuerpo de la neu-
rona o soma, se encarga de realizar los distintos procesos metabólicos de la neurona,
las dendritas, estructuras que permiten las conexiones de entrada hacia la neurona y el
axón que es la estructura de salida de la neurona. Este último se encarga de transmitir la
información a las neuronas colindantes mediante impulsos eléctricos dirigidos hacia las
dendritas de otras células.
Esta transmisión de información se realiza mediante un proceso químico que permite tie-
nen como efecto elevar o disminuir el potencial eléctrico dentro del cuerpo de la célula re-
ceptora. Si su potencial alcanza un cierto umbral, se envía un pulso o potencial de acción
por el axón.
El sistema de neuronas biológico está compuesto por neuronas receptoras (sensores), que
se encargan de recibir los impulsos del medio externo, neuronas de transferencia o proce-
sado (neuronas ocultas), que se encargan de transmitir la información hacia el último tipo
de neuronas, las neuronas de salida. Estas neuronas se encargan de ejecutar el mandato
final, por ejemplo, el movimiento de un músculo o la activación de un órgano.
102
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
El concepto de red neuronal ha sido definido por múltiples autores, en concreto Hassoun
lo definió en su libro “Fundamentals of Artificial Neural Networks” [58] como “un modelo
computacional en paralelo, compuesto de unidades procesadoras adaptativas con una
alta interconexión entre ellas”
Estas unidades procesadoras es lo que conocemos como neuronas artificiales, que nos
permiten generar una respuesta o salida a partir de un conjunto de datos de entrada.
• Las capas ocultas, internas a la red y encargadas del procesamiento de los datos
de entrada. Estas capas pueden estar precedidas de otras capas ocultas o de capas
de entrada.
• La capa de salida, que transfiere información de la red hacia el exterior, esta capa
proporciona la solución de la RN.
Las RNAs pueden tener varias capas ocultas o no tener ninguna. Los enlaces sinápticos
(las flechas llegando o saliendo de una neurona) indican el flujo de la señal a través de la
red y tienen asociado un peso sináptico correspondiente. El número de capas de una RNA
es la suma de las capas ocultas más la capa de salida.
103
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
La unidad central de procesado de este tipo de redes se conoce como neurona artificial o
perceptrón. Estas están caracterizadas por comparar la salida del sistema con una señal
deseada. El perceptrón es la unidad central de procesamiento de la red, recibe informa-
ción del exterior o de otras neuronas y genera una salida que se envía hacia la siguiente
capa oculta o hacia la capa de salida.
104
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
• Pesos sinápticos asociados a los datos de entrada. Estos pesos definen la in-
tensidad del parámetro de entrada. El ajuste de estos pesos es lo que nos permite
resolver un determinado problema.
• Una función de entrada que combine los datos con sus respectivos pesos sinápti-
cos dentro de la neurona
• Una regla de propagación, que permite obtener a partir de las entradas y los pesos
el valor del potencial post-sináptico de la neurona
El modo en el que se organizan las distintas capas de las redes neuronales se conoce como
arquitectura neuronal. Por medio de esta arquitectura se busca emular una serie de con-
ceptos claves de la arquitectura biológica [61]
105
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Además de por niveles podemos clasificar la arquitectura de una red neuronal en base a
tres parámetros: número de capas, tipo de conexiones y grado de conexión
Número de capas
Atendiendo al número de capas las redes neuronales se pueden clasificar en dos grupos
principales:
• Redes Neuronales monocapa: Son las redes neuronales mas sencillas. Estas solo
contienen una capa de neuronas de entrada y una capa de neuronas de salida, sin
capas ocultas intermedias. Es en la capa de salida donde se realizan los cálculos de
la red neuronal.
Tipo de conexiones
106
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Grado de conexión
• Redes Neuronales totalmente conectadas: En este tipo de redes todos los percep-
trones o neuronas de un modelo están conectadas con la capa contigua. Esta cone-
xión puede realizarse con la capa siguiente en el caso de redes unidireccionales o
con las de la anterior en el caso de redes retroalimentadas.
107
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
• Redes neuronales de aprendizaje por refuerzo: En este caso las neuronas no son
presentadas con los parámetros correctos de salida, si no con una respuesta de tipo
verdadero o falso en función de si la respuesta generada por la red corresponde
con la respuesta correcta o no.
• Redes neuronales hibridas: En este tipo de redes algunas se mezclan distintos ti-
pos de aprendizaje, algunas capas presentan aprendizaje supervisado y otro apren-
dizaje no supervisado.
Este tipo de modelos son útiles en problemas de clasificación lineales, sin embargo, no es
útil en problemas de clasificación no lineal, como demostraron Minsky y Papert [63] en
1969. En la actualidad este tipo de modelo es poco utilizado ya que se puede realizar las
mismas tareas mediante métodos de inteligencia artificial mas sencillos y que no requie-
ren tanta potencia computacional.
108
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
109
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Una de las principales ventajas que presenta este tipo de modelos de redes neuronales
multicapa pasan por la solución de problemas complejos en cortos periodos de tiempo
gracias a la paralelización del procesado de los datos. Otras de las características que ha-
cen especialmente potentes a este tipo de algoritmos son:
• Son sistemas no lineales: Esto les permite resolver problemas no lineales y caóti-
cos, que con otro tipo de sistemas no serian posibles de abordar. Esto además nos
permite trabajar con conjuntos de datos que no cumplan los requisitos de distri-
buciones normales que tenemos en el caso de utilizar modelos clásicos de apren-
dizaje máquina.
• Son algoritmos con una fuerte capacidad adaptativa: Al trabajar mediante un pro-
ceso de ajuste de pesos, todos los datos procesados a lo largo de la vida del modelo
son “recordados” dentro de la estructura interna de las neuronas
• Tienen una mayor tolerancia a errores respecto a los modelos clásicos: Al tratarse
de redes complejas configuradas en una estructura paralelizada, el fallo de una
neurona no afecta significativamente a la salida global del algoritmo.
110
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
111
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Atendiendo a la estructura interna de la red podemos definir una serie de modelos de red
neuronal predefinidos. En esta sección analizaremos algunos ejemplos de los modelos
mas utilizados en la industria.
112
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
En este tipo de neuronas podemos tener como entrada en el mismo instante temporal los
datos de entrada procedentes de la capa neuronal anterior, los datos de entrada que aca-
ban de ser procesados por la propia neurona y los datos de entrada procedentes de la capa
neuronal siguiente. El procesado que se realiza en ese momento va a ajustar la función
de los pesos neuronales en función del momento anterior. Esto es lo que se conoce como
memoria celular. Esta característica es lo que hace a los modelos recurrentes idóneos para
el procesado de datos temporales, como por ejemplo el procesado de videos, reconoci-
miento de voz o reconocimiento de escritura manual.
Este tipo de conexiones puede darse a lo largo de las distintas capas neuronales y en dis-
tintas direcciones como podemos observar en la Ilustración 91.
113
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Dentro de las redes neuronales recurrentes podemos encontrar una clasificación aten-
diendo a la arquitectura interna del modelo y el tipo de problema para el cual son idóneas.
Las redes neuronales simples son el modelo de red neuronal recurrente mas sencillo y
cuya arquitectura sirve como base para implementar redes recurrentes mas complejas.
Este tipo de redes fueron presentadas por Jeffrey L. Elman en 1990 en su artículo “Fin-
ding Structure in time” [68] y están caracterizadas por ser el primer modelo de redes que
presentaba retroalimentación entre las capas inmediatamente contiguas. Esto hace que
las neuronas de este modelo de redes posean memoria de los eventos inmediatamente
anteriores y estos afecten a las actualizaciones sucesivas de los pesos en cada una de las
capas de la red.
114
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Las redes neuronales de LSTM fueron descritas por primera vez por Hochreiter y Schmi-
dhuber en 1997 [69], sin embargo, no ha sido hasta la actualidad que este tipo de redes
neuronales no han crecido en popularidad gracias a las aplicaciones que presentan en la
resolución de problemas que requieren trabajar con memoria a largo plazo. Este tipo de
redes son capaces de trabajar con memoria a mas largo plazo ya que se caracterizan por
incluir pasos en la red que permiten decidir que información es almacenada y cual es
eliminada. Esto permite recordar a la célula que valor es importante y no únicamente la
que ha sido aportada por el instante inmediatamente anterior. Las neuronas de este tipo
de red contienen tres puertas que controlan el modo en el que la información fluye dentro
o fuera de la unidad
• Puerta del olvido: La puerta de olvido controla cuando se olvida una parte de la
información existente, lo que permite a la celda recordar datos nuevos.
• Puerta de salida: La puerta de salida controla cuando la información que está con-
tenida en la celda se utiliza en la salida de la celda.
Redes GRU
Las redes Gatod Recurrent Unit o redes GRU son una simplificación de las redes LSTM.
Este tipo de redes fueron introducidas por Kyunghyun Cho et al. en 2014 y están compues-
tas por un tipo especial de neurona recurrente. Este modelo a diferencia del LSTM solo
cuenta con dos puertas de control de la información almacenada dentro de la neurona:
115
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Este tipo de redes se consideran mas sencillas que las redes de Long Short Term Memory
ya que contienen menos parámetros y carecen de puerta de salida. Esto permite que las
redes sean entrenadas mucho mas rápido y sean mas eficientes en su ejecución. Ambas
redes permiten conservar características importantes a través del proceso de memoria
controlada por puertas, sin embargo la aplicación de cada una de estas redes va a depen-
der del escenario especifico.
La arquitectura de estas redes convolucionales consta de múltiples capas ocultas que per-
miten realizar un procesado de elementos simples como líneas o curvas que se van es-
pecializando a medida que recorren las capas del modelo hasta poder identificar formas,
siluetas…
Dentro de las capas que podemos encontrar en un modelo podemos encontrar dos tipos:
capas convolucionales y capas de reducción o pooling. Estas capas se encuentran alterna-
das hasta llegar a una capa de salida que se conoce como fully connected layer.
116
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Un ejemplo de uso de este tipo de modelos es el procesado de una imagen para deter-
minar su contenido. En la capa de entrada la imagen es dividida por pixels y cada uno
de ellos es asignado a una neurona para su procesado. Si trabajamos con una imagen en
blanco y negro solo necesitaremos una neurona para procesar cada pixel en la capa de en-
trada, sin embargo, si la imagen es a color, esta imagen se descompondrá en tres canales:
rojo (R), verde (G) y azul (A) y cada una de estas capas se procesara de manera paralela
hasta fusionarse en el estadio final del algoritmo.
Previo a la aplicación del kernel el común realizar una operación conocida como Padding.
Esta consiste en añadir pixeles de valor cero alrededor de la imagen a procesar. Esto per-
mite que la convolución de la imagen procesada tenga en cuenta los datos representados
en las esquinas de la imagen, ya que la aplicación del filtro de kernel pasa más por el cen-
tro de la imagen que por las esquinas.
Sobre esta matriz de salida se aplica una función de activación que nos permite extraer
características de la convolución del kernel. Normalmente la función de activación que se
aplica es la función conocida como ReLu por sus siglas en inglés Rectifier Linear Unit, la
cual nos permite extraer información de la imagen.
117
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
En una misma capa convolucional se emplean mútiples kernels para extraer característi-
cas de la imagen. Esto provoca que las nuevas capas de convolución crezcan de manera
exponencial, ya que cada resultado de multiplicación de kernel es almacenado en una
nueva neurona. Por ello es frecuente que tras la capa de convolución se aplique una capa
de reducción o pooling en la que se disminuye la cantidad de parámetros al quedarse con
las características más comunes. Esta reducción de características se lleva a cabo utilizan-
do medidas estadísticas y provoca que la red pierda precisión, sin embargo, esta mejor su
compatibilidad.
Una de las principales ventajas que presenta este tipo de redes en el procesado de las imá-
genes es que cada parte de la red es entrenada para realizar un tipo de tarea, lo cual reduce
enormemente el tiempo necesario para realizar el procesado de una imagen.
118
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
119
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Para contrarrestar este efecto surgieron las Máquinas de Boltzmann Restringidas (RBM)
las cuales son una simplificación de las Máquinas de Boltzmann originales mas fáciles
de utilizar. Estas máquinas también cuentan con una capa oculta y una capa visible, sin
embargo, no existe conectividad intracapa, es decir las neuronas de la capa oculta están
conectadas con las de la capa visible y de manera viceversa sin embargo no están conec-
tadas entre si.
Después de entrenar una RBM, los datos proporcionados como salida pueden ser utiliza-
dos como datos de entrenamiento para la siguiente RBM. En este método las capas de la
red neuronal son apiladas formando una red de creencias profundas.
120
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
En las DBN, la capa de entrada representa las entradas sensoriales en bruto, y cada capa
oculta aprende representaciones abstractas de esta entrada. La capa de salida, que se trata
de manera algo diferente a las otras capas, implementa la clasificación de red. El apren-
dizaje se realiza en dos pasos: entrenamiento previo sin supervisión y ajuste fino super-
visado.
121
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Las redes generativas antagónicas permiten generar nuevas imágenes similares a las que
se han empleado como datos de entrenamiento. La arquitectura de estas redes esta com-
puesta por dos redes “contrarias”, en las cuales una de ellas se encarga de generar las
imágenes y la segunda se encarga de discriminar aquellas que no encajan con los datos
de entrada.
Este tipo de redes se han utilizado para la construcción de imágenes realistas de dise-
ños industriales, ropa, complementos, incluso escenas de videojuegos, esto genera una
importante área de aplicación en el campo de la publicidad y el marketing, sin embargo,
estas redes tienen otras muchas aplicaciones. Su capacidad para detectar anomalías les
permite detectar imágenes falsas lo que genera un nuevo área de actuación en el mundo
de la seguridad. También se están empleando este tipo de redes dentro del sector salud
para detectar estructuras anómalas en imágenes médicas que pueden indicar la presencia
de algún tipo de enfermedad.
122
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
123
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Actualmente estas limitaciones han sido resueltas por el avance de la tecnología tanto a
nivel de disponibilidad de nuevos procesadores capaces de manejar estas redes neurona-
les como de capacidad de almacenamiento para gestionar tales volúmenes de datos.
Sin emabargo, estas no son las únicas limitaciones a las que debemos hacer frente a la
hora de implementar un modelo de Deep Learning.
Los dos principales problemas que encontramos en la actualidad derivados del desarrollo
de modelos de Deep Learning son el sobre ajuste y las cajas negras.
Igual que muchos otros modelos de aprendizaje máquina el Deep Learning es propenso al
sobreentrenamiento. Para evitar este problema existen múltiples técnicas que nos permi-
ten crear un modelo generalizado que sea flexible ya adecue las activaciones neuronales a
las nuevas entradas de datos en lugar de memorizar las posibles salidas y no ajustarlas a
los datos. Algunas de estas técnicas pasar por el preprocesado de los datos para eliminar
cantidades excesivas de dimensiones, ajuste de parámetros dentro del modelo o limitacio-
nes en la cantidad de iteraciones posibles.
La segunda potencial limitación que nos encontramos en este tipo de modelos es lo cono-
cido como “caja negra”. Cuando construimos un modelo de Deep learning dependiendo
de la arquitectura que utilicemos podemos desconocer como están llegando las neuronas
a los diferentes resultados, esto convierte al modelo en gran medida en una caja negra
cuyo funcionamiento desconocemos. Para utilizar inteligencia artificial en determinadas
aplicaciones podemos encontrarnos con regulaciones legales que exijan la interpretabili-
dad del modelo debido a la sensibilidad del proceso para el cual se este utilizando.
124
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
El desconocimiento del proceso por el cual una red neuronal llega a una conclusión hace
que estas puedan ser vulnerables a ataques y no seamos conscientes de la repercusión de
ello. Un buen ejemplo de alteración premeditada de un algoritmo de Deep learnign son
los sistemas de recomendación de las redes sociales. El algoritmo esta preparado para
mostrarte un contenido publicitario en función de tus interacciones dentro de la red so-
cial. En ocasiones para que un articulo se recomiende a un público mas amplio se generan
interacciones falsas desde cuentas con un perfil digital similar al del grupo de perfiles al
que se trata de alcanzar. Esto puede ocurrir también en el sentido opuesto haciendo que
un producto o perfil determinado nunca se recomiende. Este problema cuando lo vemos
desde el punto de las redes sociales puede resultarnos superficial (a no ser que nos de-
diquemos al product placement), pero este tipo de ataques son extrapolables a sistemas
de aprendizaje profundo empleados en sistemas de seguridad, detección de fraudes y
sistemas sanitarios. Por este motivo existen ejemplos de compañías y gobiernos que no
permiten el uso de Deep learning para determinadas tareas.
125
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
Bibliografía
• [1] https://250.dartmouth.edu/highlights/artificial-intelligence-ai-coined-dart-
mouth
• [2] https://www.wolframscience.com/prizes/tm23/images/Turing.pdf
• [3] https://www.csee.umbc.edu/courses/471/papers/turing.pdf
• [5] van Otterlo M., Wiering M. (2012) Reinforcement Learning and Markov Deci-
sion Processes. In: Wiering M., van Otterlo M. (eds) Reinforcement Learning. Adap-
tation, Learning, and Optimization, vol 12. Springer, Berlin, Heidelberg. https://doi.
org/10.1007/978-3-642-27645-3_1
• [6] LeCun, Y., Bengio, Y. & Hinton, G. Deep learning. Nature 521, 436–444 (2015).
https://doi.org/10.1038/nature14539
• [9]https://www.cienciadedatos.net/documentos/27_regresion_logistica_
simple_y_multiple#Regresión_log%C3%ADstica_múltiple
• [10] https://www.iartificial.net/regresion-logistica-para-clasificacion/
• [11] https://scikit-learn.org/stable/
• [12] https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lo-
gisticRegression.html
• [13] https://protecciondatos-lopd.com/empresas/overfitting/
• [14] https://www.freecodecamp.org/espanol/news/como-funcionan-los-clasifica-
dores-naive-bayes-con-ejemplos-de-codigo-de-python/
126
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
• [16] https://commons.wikimedia.org/wiki/File:Map1NNReducedDataSet.png
• [17] Guo G., Wang H., Bell D., Bi Y., Greer K. (2003) KNN Model-Based Approach
in Classification. In: Meersman R., Tari Z., Schmidt D.C. (eds) On The Move to
Meaningful Internet Systems 2003: CoopIS, DOA, and ODBASE. OTM 2003. Lec-
ture Notes in Computer Science, vol 2888. Springer, Berlin, Heidelberg. https://doi.
org/10.1007/978-3-540-39964-3_62
• [18] S. Cost, S. Salzberg (1993). A weighted nearest neighbour algorithm for lear-
ning with symbolic features, Machine Learning 10(1), 57-78
• [19] http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/t9knn.pdf
• [20] https://medium.com/@avulurivenkatasaireddy/k-nearest-neighbors-and-im-
plementation-on-iris-data-set-f5817dd33711
• [21] Boser, B.E., Guyon, I.M. and Vapnik, V.N. (1992) A Training Algorithm for Opti-
mal Margin Classifiers. Proceedings of the 5th Annual Workshop on Computatio-
nal Learning Theory (COLT’92), Pittsburgh, 27-29 July 1992, 144-152.
• [22] Vladimir Vapnik, The Nature of Statistical Learning Theory, DOI https://doi.
org/10.1007/978-1-4757-3264-1, Series Title Statistics for Engineering and Informa-
tion Science
• [23] https://towardsdatascience.com/support-vector-machine-introduction-to-ma-
chine-learning-algorithms-934a444fca47
• [24] Quinlan, J.R. Induction of decision trees. Mach Learn 1, 81–106 (1986). https://
doi.org/10.1007/BF00116251
• [25] Rokach L., Maimon O. (2005) Decision Trees. In: Maimon O., Rokach L. (eds)
Data Mining and Knowledge Discovery Handbook. Springer, Boston, MA. https://
doi.org/10.1007/0-387-25465-X_9
• [27] Montgomery, D. C., Peck, E. A., & Vining, G. G. (2021). Introduction to linear
regression analysis. John Wiley & Sons.
127
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
• [29] Regularization and variable selection via the elastic net, Hui Zou, Trevor Has-
tie, 09 March 2005, https://doi.org/10.1111/j.1467-9868.2005.00503.x
• [30] https://bookdown.org/max/FES/greedy-stepwise-selection.html
• [32] Jin X., Han J. (2011) K-Means Clustering. In: Sammut C., Webb G.I. (eds) En-
cyclopedia of Machine Learning. Springer, Boston, MA. https://doi.org/10.1007/978-
0-387-30164-8_425
• [33] http://worldcomp-proceedings.com/proc/p2015/CSC2663.pdf
• [34] http://www.econ.upf.edu/~michael/stanford/maeb7.pdf
• [35] Saraçli, S., Doğan, N. & Doğan, İ. Comparison of hierarchical cluster analysis
methods by cophenetic correlation. J Inequal Appl 2013, 203 (2013). https://doi.
org/10.1186/1029-242X-2013-203
• [36] https://uc-r.github.io/hc_clustering
• [38] A high-resolution 7-Tesla fMRI dataset from complex natural stimulation with
an audio movie, https://www.openfmri.org/dataset/ds000113/ This data was obtai-
ned from the OpenfMRI database.
• [40]https://www.fuenterrebollo.com/Economicas/ECONOMETRIA/MULTIVA-
RIANTE/FACTORIAL/analisis-factorial.pdf
• [41] Methods and Applications of Longitudinal Data Analysis, 2016, Pages 205-242
• [42]http://www.music.mcgill.ca/~ich/classes/mumt611_07/classifiers/lda_theory.
pdf
• [43] Scientia et Technica Año XII, No 32, Diciembre de 2006. UTP. ISSN 0122-1701
181 REDUCCIÓN DE DIMENSIONES PARA CLASIFICACIÓN DE DATOS MUL-
TIDIMENSIONALES USANDO MEDIDAS DE INFORMACIÓN
128
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
• [44] https://medium.com/@nicolasarrioja/13-técnicas-de-reducción-de-dimensio-
nalidad-b33b2340a060
• [45]https://web.stanford.edu/class/psych209/Readings/SuttonBartoIPRLBook2n-
dEd.pdf
• [46] https://aws.amazon.com/es/deepracer/.
• [47] https://deepmind.com/blog/article/safety-first-ai-autonomous-data-centre-
cooling-and-industrial-control
• [48] https://www.ibm.com/blogs/digital-transformation/in-en/blog/trade-finan-
ce-workflow-automation-using-ai/
• [49] https://gym.openai.com
• [50] http://www.incompleteideas.net/book/RLbook2018trimmed.pdf
• [51] https://ieeexplore.ieee.org/document/6313077
• [52]https://github.com/openai/gym/blob/master/gym/envs/classic_control/cart-
pole.py
• [53]https://home.csulb.edu/~cwallis/382/readings/482/mccolloch.logical.calculus.
ideas.1943.pdf
• [54]https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.335.3398&rep=rep1&
type=pdf
• [55] https://www.statista.com/statistics/871513/worldwide-data-created/
129
Centro Europeo de Postgrado Asignatura. Aprendizaje automático y aprendizaje profundo
• [61] http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/t8neuronales.pdf
• [64] Rumelhart, D. E., Hinton, G. E., & Williams, R. J 1986. Parallel Distributed Pro-
cessing: Explorations in the Microstructure of Cognition. The MIT Press, Cam-
bridge, MA.
• [65] https://stanford.edu/~jlmcc/jlmderapa.pdf
• [67] https://www.asimovinstitute.org/neural-network-zoo/
• [68] Elman, J. L. (1990). Finding structure in time. Cognitive science, 14(2), 179-211.
• [71] http://yann.lecun.com/exdb/publis/pdf/lecun-89e.pdf
• [72] https://www.cs.toronto.edu/~fritz/absps/ncfast.pdf
• [73] He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image re-
cognition. In Proceedings of the IEEE conference on computer vision and pattern
recognition (pp. 770-778).
130
CEUPE
Centro Europeo de Postgrado
Web
www.ceupe.com
E-mail
[email protected]