TFM-I-1372 (Machine Learning) - 27 A La 43
TFM-I-1372 (Machine Learning) - 27 A La 43
TFM-I-1372 (Machine Learning) - 27 A La 43
Resumen:
Los mayores crecimientos económicos vienen impulsados por grandes innovaciones
tecnológicas, como la máquina de vapor, la electricidad o el motor de combustión interna. Las
empresas, por su parte, tratan de aprovechar estas revolucionarias tecnologías para crear nuevos
modelos de negocio y generar altos beneficios con mínimo coste.
Actualmente, nos encontramos en la cuarta revolución industrial, donde una de las tecnologías
más importantes es la inteligencia artificial. En concreto, el aprendizaje automático o Machine
Learning surge como un subcampo de la inteligencia artificial que da a las computadoras la
habilidad de aprender sobre algo para lo que no han sido explícitamente programadas.
En el presente Trabajo Fin de Máster se introducen los fundamentos del Machine Learning bajo
el contexto de la Industria 4.0, se explican los diferentes tipos de problemas que es capaz de
resolver y se exponen casos reales de aplicación en la industria.
Palabras clave:
Industria 4.0; Inteligencia Artificial; Aprendizaje Automático; Aprendizaje Profundo; Fábrica
Inteligente
Abstract:
The greatest economic growths are driven by major technological innovations, such as the
steam engine, electricity or the internal combustion engine. The companies, meanwhile, try to
take advantage of these revolutionary technologies to create new business models and generate
high profits with minimal cost.
We are currently in the fourth industrial revolution, where one of the most important
technologies is the Artificial Intelligence. In particular, the Machine Learning emerges as a
subfield of artificial intelligence that gives computers the ability to learn about something for
which they have not been explicitly programmed.
The present master’s thesis introduces the fundamentals of Machine Learning in the context of
Industry 4.0, explains the different types of problems it can solve, and exposes its real
applications in the industry.
Key words:
Industry 4.0; Artificial Intelligence; Machine Learning; Deep Learning; Smart Factory
EL MACHINE LEARNING
Los seres humanos necesitan buscar patrones para comprender el mundo que les rodea y
anticipar ciertos comportamientos. El aumento en el número de interacciones entre usuarios y
sistemas está generando grandes volúmenes de datos de los cuales se esperan obtener patrones
que permitan predecir resultados o comportamientos con el mínimo error. Para lograrlo, se
emplean diferentes técnicas computacionales y en los último años están destacando aquellas
que se engloban bajo el nombre de Machine Learning (Aprendizaje Automático), un área de la
inteligencia artificial que es cada vez más importante en todos los sectores (Orozco, 2018).
Con frecuencia se emplean indistintamente conceptos como ciencia de datos, minería de datos,
aprendizaje automático o inteligencia artificial (Álogos, 2018). En este capítulo se explican las
diferencias entre estos términos, así como los fundamentos del Machine Learning. También se
presentan los diversos tipos de aprendizaje en función del problema que se quiere resolver y
algunos de los algoritmos empleados en cada caso.
En este apartado se presentan los fundamentos para comprender la forma en la que las máquinas
aprenden. Para ello, se explican los conceptos de función de coste y de método del descenso del
gradiente. A continuación, se muestran los principales errores o problemas que surgen a la hora
de realizar un modelo de Machine Learning: la varianza (variance), el sesgo (bias), el
sobreajuste (overfitting) y el subajuste (underfitting). Por último, se explican los pasos a seguir
para desarrollar e implementar una solución con Machine Learning.
1.2.1. El aprendizaje
Por ejemplo, si se quisiera diseñar un algoritmo de Machine Learning para predecir el precio
de una vivienda en una determinada ciudad, la variable dependiente (lo que queremos obtener
o predecir) sería el precio de la vivienda; mientras que las variables independientes serían todos
aquellos factores que influyen en el precio de la vivienda como la superficie, el número de
habitaciones, la distancia al centro de la ciudad, etc.
El modelo debe estar lo suficientemente ajustado a los datos de entrada, pero también debe tener
la suficiente consistencia como para dar un buen resultado ante la introducción de datos
diferentes. Para ello, el data set se divide en dos subconjuntos de datos: los datos de
entrenamiento (training data), que corresponden aproximadamente al 80% del data set; y los
datos de test (test data), que corresponden al 20% restante y se emplearán para medir la calidad
del modelo tras el entrenamiento (Esteve, 2017).
Una vez se tienen los datos se necesita establecer una hipótesis, es decir, encontrar una ecuación
que se aproxime lo mejor posible al comportamiento real del fenómeno que se está
modelizando. Esta ecuación es la que relaciona los datos de entrada y los parámetros del modelo
con la salida. Aquello que no se mide no se puede mejorar, así que el siguiente paso consiste en
encontrar el error en la predicción y tratar de minimizarlo (Santana, 2017).
La función de coste es la encargada de recopilar el error entre la variable dependiente que se
quiere determinar y la hipótesis, en función de los parámetros del modelo. Para minimizar una
función se recurre a igualar su derivada a cero. En algunos casos es sencillo encontrar la fórmula
que, introduciendo los datos de entrada y de salida, proporcione el mejor valor de los parámetros
para reducir el error al mínimo. Sin embargo, con otros modelos y otras funciones de coste no
siempre se va a poder encontrar el mínimo de la función de coste de forma analítica (Santana,
2017). Por esta razón, lo habitual es emplear métodos iterativos que permitan minimizar poco
a poco el error, como por ejemplo el método del Descenso del Gradiente (Gradient Descent).
Figura 2. 3. Representación gráfica del Descenso del Gradiente. Recuperado de: https://easyai.tech/en/ai-
definition/gradient-descent/
(2.1)
Un gradiente positivo indica la dirección por la que avanzar si se quisiera encontrar un máximo
(Ascenso del Gradiente). En este caso, se toman pasos proporcionales al negativo del gradiente
(Ecuación 2.2.), ya que el objetivo es encontrar un mínimo de la función (Descenso del
Gradiente). El ratio de aprendizaje 𝛼 es un factor que define cuánto afecta el gradiente a la
actualización de los parámetros en cada iteración, en otras palabras, indica lo que se avanza en
cada paso (Santana, 2018).
𝜃 ∶= 𝜃 − 𝛼∇𝑓 (2.2)
Figura 2. 5. Nivel de complejidad del modelo en función del error (González, 2018).
El subajuste (underfitting) se refiere a un modelo con un nivel de complejidad muy bajo que no
tiene la precisión suficiente como para alcanzar un ajuste adecuado debido a su alto sesgo.
Puede ocurrir cuando el conjunto de datos de entrenamiento no es suficiente, o cuando se utiliza
un modelo lineal para ajustar datos no lineales. Por otra parte, el sobreajuste (overfitting) se
produce cuando el nivel de complejidad es elevado y, por lo tanto, el modelo no tiene la
capacidad de generalizar su comportamiento ante diferentes datos de entrada. Sucede cuando
el modelo recoge el ruido de los datos de entrenamiento y, en consecuencia, aumenta mucho su
varianza (Santana, 2019). En la Figura 2. 6 se muestran ejemplos de subajuste, de sobreajuste
y de ajuste óptimo para los problemas clásicos de regresión y clasificación.
El problema más común es el del sobreajuste (overfitting), para el cual existen dos tipos de
soluciones. La primera consiste en reducir el número de variables independientes (features), ya
sea manualmente mediante la observación de aquellas variables que podrían desecharse, o bien
a través de métodos que realizan esta tarea automáticamente. Sin embargo, se corre el riesgo de
perder información realmente útil para el comportamiento del modelo. Por eso, la segunda
opción es la regularización, gracias a la cual se mantiene el número de variables a costa de
reducir el valor de los parámetros que afectan a las variables. Este método funciona bien cuando
existe un gran número de variables y todas ellas contribuyen un poco a la hora de hacer la
predicción (Ng, 2012).
Una vez comprendidos los principios básicos del Machine Learning, es conveniente conocer el
procedimiento para dar solución a problemas reales. Un proyecto de Machine Learning no se
centra únicamente en elegir un modelo y entrenarlo, sino que, como todo proyecto, cuenta con
una serie de etapas o pasos a seguir para aumentar sus probabilidades de éxito. A continuación,
se describen ocho etapas genéricas para llevar a cabo un proyecto de Machine Learning.
Figura 2. 7. Etapas genéricas para llevar a cabo un proyecto de Machine Learning. Elaboración propia.
La primera etapa consiste en entender el problema que se quiere resolver, ya que gran parte de
las decisiones tomadas a lo largo del proyecto dependerán de lo bien que se haya comprendido
el contexto (Sánchez, 2019). Para ello es necesario definir unos objetivos claros, específicos,
medibles y alcanzables en un periodo determinado de tiempo. Es una fase tediosa en la que se
requiere mucha información por parte de expertos en el sector sobre el que se va a trabajar
(Martínez, 2018). En este punto se clasifica el problema (supervisado, no supervisado, etc.) e
incluso se elige el tipo de modelo que se va a entrenar (regresión, clasificación, agrupamiento,
etc.) (Sánchez, 2019).
En la segunda etapa se define la cantidad y el tipo de datos necesarios, así como el origen de
dichos datos. La calidad de los datos que alimentan la máquina tiene un impacto directo en el
Los coeficientes bi son los parámetros del modelo que se ajustan en la etapa de entrenamiento
a medida que se introducen más datos. El objetivo del modelo es minimizar la función de coste,
es decir, hacer que la diferencia entre el valor de salida real (y) y el valor de la predicción (h)
sea mínima. En este caso, la función de coste es el Error Cuadrático Medio, que mide la
distancia al cuadrado entre cada punto y la vertical que lo une con la recta de regresión
(Ecuación 2.4.).
𝑚
1
𝐽(𝑎, 𝑏) = ∑(ℎ(𝑥 (𝑖) ) − 𝑦(𝑖))2 (2.4)
2𝑚
𝑖=1
Para minimizar esta función de coste se emplea el algoritmo del Descenso del Gradiente, que
es un proceso iterativo que reduce poco a poco el error hasta encontrar un mínimo en la función
de coste (ver apartado 2.2.1).
Figura 2. 8. Ejemplo de regresión lineal simple. Predicción de venta de paraguas en función de la lluvia.
Recuperado de: https://www.ablebits.com/office-addins-blog/2018/08/01/linear-regression-analysis-excel/
Figura 2. 9. Ejemplo de regresión lineal múltiple. Predicción de las ventas de un producto en función del dinero
invertido en publicidad de TV y en publicidad de radio. Recuperado de: https://rpubs.com/Joaquin_AR/226291
Los modelos polinomiales ganan mucha flexibilidad con respecto a los lineales, ya que en
función del grado del polinomio se obtienen curvas más o menos ajustadas. Sin embargo,
aumentar demasiado el grado del polinomio trae consigo el problema del sobreajuste
(overfitting) ya que, aunque se reduzca mucho el error para los datos iniciales, el modelo pierde
su capacidad para generalizar ante nuevos datos de entrada (González, 2018).
Por ejemplo, la demanda horaria de energía en función de la temperatura exterior sigue un
comportamiento no lineal que se ajusta con un polinomio de grado cuatro (Figura 2. 10).
Figura 2. 10. Ejemplo regresión polinomial. Predicción de la demanda horaria de energía en función de la
temperatura exterior. (González, 2018)
𝑃
𝑂𝑑𝑑 = (2.7)
1−𝑃
La función Logit (Ecuación 2.8) es una transformación logarítmica sobre el Odd que convierte
los valores de probabilidad del rango [0,1] en valores dentro del rango [-∞, ∞] (Román, 2019).
𝑃
𝐿𝑜𝑔𝑖𝑡(𝑃) = 𝑙𝑛 (2.8)
1−𝑃
La función Logit se puede representar de forma lineal como una función similar a la empleada
en Regresión Lineal Múltiple (Ecuación 2.9) (Román, 2019).
De esta forma, se obtiene que la inversa de la función Logit es la función logística buscada
(función hipótesis), llamada función sigmoide (Ecuación 2.10) y representada en la Figura 2.
11.
1 1
∅(𝑧) = = ℎ(𝑥) = (2.10)
1 + 𝑒−𝑧 1 + 𝑒−𝑤𝑇𝑥
Esta función se encarga de tomar valores reales y transformarlos en un valor del rango [0,1], lo
que indica la probabilidad de que una muestra pertenezca a la clase 1 dadas las características
x parametrizadas por los pesos w (Román, 2019). Un cuantificador traduce la probabilidad en
una salida binaria (Ecuación 2.11).
1 𝑠𝑖 𝑧 ≥ 0
𝑦={ (2.11)
0 𝑝𝑎𝑟𝑎 𝑒𝑙 𝑟𝑒𝑠𝑡𝑜
Este modelo se utiliza cuando se desea investigar si una o varias variables explican una variable
dependiente que toma un carácter cualitativo. Esto sucede a menudo en medicina, ya que se
intenta responder a preguntas formuladas en base a la presencia o ausencia de una determinada
característica que no es cuantificable, sino que representa la existencia o no de un efecto de
interés (Fuiza & Rodríguez, 2000).
Por ejemplo, la Regresión Logística en medicina se emplea para predecir si un tumor es benigno
o maligno en función de la edad del paciente y del tamaño del tumor (Kapur, 2016). El límite
de decisión lo marca 𝑧 = 𝑤𝑇𝑥, por lo que se varía el grado de cada término para conseguir la
curva que mejor se ajuste a los datos (Figura 2. 12).
Figura 2. 12. Ejemplo regresión logística. Clasificación de un tumor en benigno o maligno en función de la
edad del paciente y del tamaño del tumor (Kapur, 2016).
En la Regresión Logística el valor lineal de salida se transforma en un valor del rango [0,1] a
través de la función sigmoide, donde para valores mayores de 0.5 se asigna la clase 1 y para
valores menores la clase 0. En el algoritmo de vectores de soporte, si la salida lineal es mayor
que 1 se identifica con una clase y si es menor que -1 se identifica con la otra (Gandhi, 2018).
Por lo tanto, el rango que actúa como margen es [-1,1].
Para problemas de clasificación no lineales se emplean técnicas de mapeo y kernelización. Estas
técnicas reorganizan los datos a través de funciones matemáticas, ya sea en el mismo plano o
en planos de dimensiones mayores, para que adopten una configuración que los haga separables
(Román, 2019). Esta es una de las grandes ventajas de los vectores de soporte frente a otros
modelos, junto con su importante precisión a costa de poca potencia de computación (Gandhi,
2018). Además, estos principios se pueden emplear para resolver problemas de regresión
(Support Vector Regression).
Figura 2. 14. Ejemplo de K-NN. Clasificación en función del parámetro K (Ruiz, 2017).
A diferencia de otros algoritmos de aprendizaje supervisado, K-NN no aprende con los datos
de entrenamiento, sino que el aprendizaje se produce con los datos de test una vez se han
memorizado los datos de entrenamiento. Estos algoritmos se conocen como algoritmos vagos
(lazy algorithms), y permiten resolver simultáneamente varios problemas dado que la función
objetivo se aproxima localmente para cada elemento. De esta forma, el algoritmo no aprende
de un modelo, sino que utiliza los datos para generar una respuesta solo cuando se solicita una
predicción. Como desventaja, el coste computacional es muy elevado debido al almacenamiento
de todos los datos de entrenamiento (Román, 2019).
s ocasiones, es difícil identificar qué información de los pasos anteriores es relevante para el
estado actual. Este problema se denomina desvanecimiento de gradiente (vanishing gradient),
y se soluciona con un tipo de arquitectura de red: las LSTM (long short-term memory). Una red
LSTM es capaz de decidir qué información es retenida y cuál es olvidada (Garbisu, 2016).
Estas redes emplean su propia versión de backpropagation, llamada backpropagation through
time (BTT), que aplica el principio de backpropagation en los diferentes instantes de tiempo
como si se tratase de capas de profundidad sucesivas. El número de repeticiones de este proceso
viene dado por K, llegando la memoria de la red más atrás en el tiempo con mayores valores de
K (Garbisu, 2016; Mozer, 1989).
Las aplicaciones de las RNN se centran en el procesamiento de secuencias de texto e imagen.
Se emplean en sistemas de reconocimiento de voz, en la comprensión y generación de textos y
28 Utilización del Machine Learning en la Industria 4.0
conversaciones, en traductores automáticos e incluso en la detección de palabras clave que
expresen opiniones o sentimientos determinados (Mozer, 1989; Zaremba, Sutskever, &
Vinyals, 2015).