Está en la página 1de 126

Casos Prácticos

José García

1
Big Data:
Big Data:
Según Forbes, se generan alrededor de 2.5 quintillones de bytes de datos cada día. No
obstante, se prevé que este número aumente constantemente en los años siguientes (el
90% de los datos almacenados actualmente se han producido en los últimos dos años).

Lo que diferencia a Big Data de cualquier otra gran cantidad de datos almacenados en
bases de datos relacionales es su heterogeneidad. Los datos provienen de diferentes
fuentes y se han registrado utilizando diferentes formatos.


Se emplean comúnmente tres formas diferentes de formatear datos:

 No estructurado = datos no organizados (p. Ej. Videos).

 Semi-estructurado = los datos se organizan en un formato no fijo (por ejemplo, JSON).

 Estructurado = los datos se almacenan en un formato estructurado (p. Ej., RDBMS).


BIG DATA:
Big Data se define por tres propiedades:

 Volumen = debido a la gran cantidad de datos, es imposible almacenar datos en


una sola máquina. ¿Cómo podemos procesar datos en varias máquinas para
garantizar la tolerancia a fallas?
 Variedad = ¿Cómo podemos tratar con datos provenientes de fuentes variadas que
han sido formateadas usando diferentes esquemas?
 Velocidad = ¿Cómo podemos almacenar y procesar rápidamente nuevos datos?

Big Data puede analizarse utilizando dos técnicas de procesamiento diferentes:

 Procesamiento por lotes = generalmente se usa si nos preocupa el volumen y la variedad


de nuestros datos. Primero almacenamos todos los datos necesarios y luego los
procesamos de una vez (esto puede conducir a una alta latencia). Un ejemplo de
aplicación común puede ser calcular resúmenes de nómina mensuales.
 Procesamiento de flujo = generalmente empleado si estamos interesados en tiempos de
respuesta rápidos. Procesamos nuestros datos tan pronto como se reciben (baja latencia).
Un ejemplo de aplicación puede determinar si una transacción bancaria es fraudulenta o
no.
BIG DATA:
Cuando trabajamos con una gran cantidad de datos y nos quedamos sin recursos, hay dos soluciones
posibles: escalar horizontal o verticalmente.

 En el escalado horizontal, resolvemos este problema agregando más máquinas de la misma


capacidad y distribuyendo la carga de trabajo. Si usamos escalado vertical, en su lugar escalamos
agregando más potencia computacional a nuestra máquina (por ejemplo, CPU, RAM).

 La escala vertical es más fácil de administrar y controlar que la escala horizontal y se demuestra
que es eficiente si se trabaja con un problema de tamaño relativamente pequeño. Aunque, el
escalado horizontal es generalmente menos costoso y más rápido que el escalado vertical cuando
se trabaja con un gran problema.
BIG DATA: HADOOP

Procesamiento: MapReduce
 MapReduce se basa en la escala horizontal. En MapReduce, se usa un grupo de computadoras para
la paralelización, lo que facilita el manejo de Big Data.
 En MapReduce, tomamos los datos de entrada y los dividimos en muchas partes. Luego, cada parte
se envía a una máquina diferente para ser procesada y finalmente agregada de acuerdo con una
función groupby específica.

Almacenamiento: HDFS, Lo que necesitaban, como base del sistema, era una capa de almacenamiento distribuido que
satisficiera los siguientes requisitos
 Sin esquema sin estructura predefinida, es decir, sin esquema rígido con tablas y columnas
(y tipos y tamaños de columnas)
 duradero una vez que se escriben los datos, nunca se deben perder
 capaz de manejar fallas de componentes sin intervención humana (por ejemplo, CPU, disco,
memoria, red, fuente de alimentación, MB)
 reequilibrado automáticamente para igualar el consumo de espacio en disco en todo el
clúster
BIG DATA: HADOOP-SPARK

La versión 1 de Hadoop, era su componente bastante monolítico, MapReduce. La raíz de todos


los problemas era el hecho de que MapReduce tenía demasiadas responsabilidades. Estaba
prácticamente a cargo de todo lo que estaba por encima de la capa HDFS, asignando recursos
de clúster y administrando la ejecución del trabajo (sistema), procesando datos (motor) e
interactuando con los clientes (API). En consecuencia, no había otra opción para marcos de
nivel superior además de construir sobre MapReduce.
paradigma Map –Reduce: Map

Input Intermediate
key-value pairs key-value pairs

map
k v k v

map
k v
k v

… …
map
k v k v

8
Nuevo paradigma Map –Reduce : Reduce

Output
Intermediate Key-value groups key-value pairs
key-value pairs
reduce
k v k v v v k v
reduce
Group
k v k v v k v
by key

k v
… …

k v k v k v

9
Map-Reduce: Ejemplos simples


https://towardsdatascience.com/installing-apache-pyspark-on-windows-10-f5f0c506bea1

Un cuadrado de lado 2, si utilizamos


numeros aleatorios como Podemos
evaluar quien cae dentro del circulo?

10
Paradigma map-reduce: Iteraciones, interacciones

1. Map reduce transforma datos desde disco a disco.


2. Beneficions of data flow: En tiempo de ejecución se decide donde ejecutar
cada tarea y se puede manejar las fallas.

3. Dificultades: Si necesitamos realizar iteraciones o interacciones sobre la


información

Map
Reduce

Input Map Output


Reduce
Map

11
Desafío: Se agrega la dificultad de Big Data

Hoy en día las abstracciones de manejo


•Como diseñar una abstracción de de memoria distribuida:
memoria distribuida tal que:
• Sea eficiente • Realizan actualizaciones de grano
fino
• Sea tolerante a fallas
• Y replican la data( Difícil en el caso
de Big Data)

12
Solución: Resilient Distributed Datasets (RDDs)

El fault recovery se maneja a través de


• Corresponde a una forma restringida lineage:
de memoria distribuida compartida. • Una operación aplicada a muchos
elementos
• Colección particionada de registros,
• Se re-calculan las particiones
la partición es inmutable
perdidas
• Transformaciones determinísticas • No tiene consto si no hay falla
de tipo Coarse Grained (map, filter,
join, …)

13
Solución: Resilient Distributed Datasets (RDDs)

14
Linage:

15
Esquema de programación

16
Librerías:

17
Industrial Internet of Things: https://github.com/MeiiL/Apache-Kafka-in-
IOT/tree/master/05_Send_IOT_Records
Puede entenderse mejor como un conjunto de tecnologías que nos afecta a todos, y
cambiará los mercados, incluso creando nuevos.

La era IoT no será una transición instantánea, sino un cambio gradual y continuo durante
el cual la evolución nunca se detiene.

Nos estamos moviendo hacia un mundo en el que interactuamos cada vez más no con
objetos físicos, sino con sus imágenes digitales que viven en la nube y se comunican con
otras imágenes digitales.

Estos servicios, se integran a través de una potente utilización de inteligencia digital, que
tiene por objetivo sugerir acciones, tomar decisiones de forma autónoma o brindar
servicios nuevos e innovadores (transformación Digital).

Es posible que actualmente puedas regular tu sistema de calefacción de forma remota,


sin embargo si el objeto estuviera representado en la nube y recibiera información de su
automóvil, su calendario, su geolocalización y el clima, entonces su sistema de calefacción
podría regularse por sí mismo. Cuando un objeto vive en la nube e interactúa con otras
imágenes digitales en una red de inteligencia artificial, ese objeto se convierte en un
objeto inteligente.
Caso Walmart : Kevin Ashton creía que la identificación por radiofrecuencia (RFID) era un requisito previo
para la IoT, y que si todos los dispositivos estaban etiquetados, las computadoras podían administrarlos,
rastrearlos e inventariarlos.

Uno de los casos más famosos y emblemáticos fue el Walmart mandate (2003). Al colocar etiquetas RFID con
circuitos integrados y antenas de radio en pallets, cajas e incluso paquetes individuales, se suponía que Walmart
podría reducir las ineficiencias en sus operaciones logísticas masivas y reducir incidentes de falta de existencias,
lo que aumentaría las ventas en la misma tienda.

En 2009, Procter and Gamble, uno de los principales proveedores involucrados en el proyecto, declaró que
saldría del proyecto piloto después de validar y verificar los beneficios de RFID en exhibiciones promocionales y
de comercialización.
La historia fallida del proyecto RFID de Walmart fue causada por varios
factores:
La mayoría de las tecnologías utilizadas estaban en sus etapas iniciales de desarrollo y su rendimiento era
deficiente. Tenían sensores con poca información y conectividad Wi-Fi o LAN con alta potencia y uso de
ancho de banda.

Los sensores y los dispositivos de conectividad eran caros debido al pequeño tamaño del mercado.

No había estándares comunes para las tecnologías emergentes, y había una falta de interoperabilidad
entre los sistemas heredados.

Los casos de negocios no eran muy precisos.

La infraestructura tecnológica y la arquitectura se organizaron en silos verticales con hardware y


middleware heredados, y una falta de interacciones entre cada silo.

La infraestructura tecnológica y la arquitectura de software se basaron en un modelo cliente-servidor


que aún pertenecía a la llamada segunda plataforma digital.
El IoT consta de cualquier dispositivo con un interruptor de encendido / apagado que está conectado
a Internet.
Si tiene un interruptor de encendido / apagado, entonces, teóricamente, puede ser parte de un
sistema. Esto incluye casi cualquier cosa que se pueda imaginar, desde teléfonos celulares, hasta el
mantenimiento de edificios, hasta el motor a reacción de un avión. Los dispositivos médicos, como un
implante de monitor cardíaco o un transpondedor de biochips en un animal de granja, también
forman parte de la IoT porque pueden transferir datos a través de una red.

El IoT es una red grande y digital de cosas y dispositivos conectados a través de Internet. También se
puede considerar como una pila de tecnología horizontal, que conecta el mundo físico con el mundo
digital. Al crear un gemelo digital del objeto físico en la nube, el IoT hace que el objeto sea más
inteligente gracias a la interacción del gemelo digital con las otras imágenes digitales que viven en la
nube.
Las tecnologías que han conducido a la evolución de los ecosistemas de IoT son las siguientes:

Los nuevos sensores son mucho más maduros, tienen más capacidades y ofrecen un alto
rendimiento a un menor costo. Estos sensores inteligentes están diseñados de forma nativa para
ocultar la complejidad del procesamiento de la señal e interactúan fácilmente a través de una
interfaz digital. El sensor inteligente es un sistema en sí mismo, con un chip dedicado para el
procesamiento de la señal.

Nuevas redes y conectividad inalámbrica, como redes de área personal (PAN) o redes de baja
potencia (LPN), interconectan sensores y dispositivos para optimizar su ancho de banda,
consumo de energía, latencia y alcance. En los PAN, varios dispositivos pequeños se conectan
directamente a través de un dispositivo principal a una LAN, que tiene acceso a Internet. Las
redes de área amplia de baja potencia (LPWAN, por sus siglas en inglés) son redes inalámbricas
diseñadas para permitir comunicaciones de largo alcance a una tasa de bits baja entre
dispositivos operados por batería. Adicionalmente tenemos el 5G

La batalla del sistema operativo en tiempo real para obtener una mayor porción de nuevos
mercados entre los grandes actores del mercado. Esto pone a disposición del fabricante
plataformas de desarrollo integrado más sofisticadas y potentes.
Tecnología de virtualización, que se divide naturalmente en el centro de datos, big data y la nube.

La difusión de dispositivos móviles y redes sociales ha creado una cultura y una mentalidad genérica
con una expectativa integrada de que los consumidores del mercado se encuentren con el mundo a
través de una aplicación que comparte información relacionada.
El artículo How Smart, Connected Products Transforming Competition, escrito por Michael E. Porter y
James E. Heppelmann, detalla cuatro niveles crecientes que clasifican la inteligencia de un objeto o
producto:

Monitoreo: Monitoreo de las condiciones del producto, operación externa y uso. Esto permite
alertas y notificaciones de cambios.

Control: el software integrado en el producto o en la nube permite el control de las funciones


del producto y / o la personalización de la experiencia del usuario.

Optimización: las capacidades anteriores se utilizan para crear algoritmos para optimizar la
operación y el uso del producto. Mejoran el rendimiento del producto y / o permiten
características tales como diagnósticos predictivos, servicio, reparación, etc.

Autonomía: la combinación de las capacidades anteriores produce un producto con control


autónomo para la auto coordinación con otros sistemas y / o autodiagnóstico o servicios.
Futuras referencias:

•Cambridge Analytica data


scandal: https://www.bbc.com/news/topics/c81zyn0888lt/facebook-cambridge-analytica-
data-scandal; https://www.nytimes.com/2018/04/04/us/politics/cambridge-analytica-
scandal-fallout.html
•RFID info: http://www.rfidjournal.com/get-started
•The third platform – what it is, how we got there and why it matters: https://www.i-
scoop.eu/digital-transformation/the-third-platform/
•How Smart, Connected Products Are Transforming
Competition: http://www.gospi.fr/IMG/pdf/porter-2014-hbr_how-smart-connected-
products-are-transforming-competitionhbr-2014.pdf
•Digital Transformation Monitor; Germany: Industrie 4.0:
https://ec.europa.eu/growth/tools-
databases/dem/monitor/sites/default/files/DTM_Industrie%204.0.pdf
•Acatech National Academy of Science and Engineering: Securing the future of German
manufacturing industry: https://www.acatech.de/Publikation/securing-the-future-of-
german-manufacturing-industry-recommendations-for-implementing-the-strategic-
initiative-industrie-4-0/
Apache Spark/Flink

Analítica
Se espera que la Industria 4.0 pueda hacer lo siguiente:

• Conectar o fusionar producción con tecnología de la información y la comunicación.


• Fusionar datos del cliente con datos de la máquina
• Aprovechar la capacidad de las máquinas para comunicarse con máquinas.
• Administre la producción de manera autónoma de manera flexible, eficiente y que ahorra recursos

Casos de uso
Operaciones de manufactura: Esto incluye todas las operaciones que generalmente realiza el sistema de
ejecución de manufactura que pueden aprovechar la visibilidad de extremo a extremo, como la planificación, la
optimización de la producción y la administración de proveedores.
Gestión de activos: Esto incluye el monitoreo de activos de producción, y el seguimiento y monitoreo de las
áreas de parámetros, tales como calidad, rendimiento, daños potenciales o averías, cuellos de botella, etc.
Organizaciones de servicios de campo: son un importante motor de crecimiento y, obviamente, de margen.
Está claro que tener un ecosistema de manufactura hiperconectado, digitalizado y habilitado para IoT marca
una empresa.
Monitoreo y operación remota: esto optimiza el flujo, elimina el desperdicio y evita el trabajo innecesario en el
inventario del proceso para ahorrar energía y costos.
Mantenimiento basado en condiciones: esto es importante para optimizar la disponibilidad de la máquina,
minimizar la interrupción y aumentar el rendimiento.
Big data: Big Data puede usarse para monitorear la calidad y la composición de los servicios y mejorar el
resultado de esta información agregada.
Con 50 mil millones de dispositivos industriales de IoT que se espera que se implementen para 2020, es
probable que el volumen de datos generado alcance los 600 zettabytes por año. Un solo motor a reacción
produce alrededor de un terabyte de datos en cinco horas. Dados estos supuestos, necesitamos una manera
rápida y eficiente de analizar los datos a través del análisis de datos. En los últimos cinco años, las tecnologías
de big data han sido mejoradas para escalar las capacidades computacionales. El análisis de Big Data consiste
en recopilar y analizar grandes conjuntos de datos para descubrir datos valiosos y ocultos y obtener
información valiosa. Las aplicaciones de estas analíticas son las siguientes:

• Diagnóstico: comprender la causa de una falla o problema.


• Mantenimiento: Predecir y ajustar los intervalos de mantenimiento para optimizar la programación.
• Eficiencia: Mejora el rendimiento de la producción o la utilización de recursos.
• Pronóstico: Proporcionar información para evitar fallos o mantener la eficiencia.
• Optimización: Optimizando el consumo de recursos o el cumplimiento de la regulación del gobierno local.
• Logística y cadena de suministro: seguimiento y optimización de la entrega.
Ms-Q v/s
Distributed
Streaming
Platform
• Arquitectura Big data
Publicador
suscriptor
Kafka
PUBLICADOR
SUSCRIPTOR
PUBLICADOR SUSCRIPTOR
PUBLICADOR
SUSCRIPTOR
Kafka
Kafka
Kafka
Arquitectura big data
Arquitec
tura Big
data
Predicción en una
Caso : Descripción del problema. serie de tiempo

• Una serie de tiempo es una secuencia de datos u observaciones, medidos


en determinados momentos y ordenados cronológicamente. Visualmente,
es una curva que evoluciona en el tiempo.
• Una serie de tiempo es un conjunto de observaciones sobre los valores que
toma una variable (cuantitativa) a través del tiempo. Por tanto, una serie de
tiempo es una forma estructurada de representar datos.
• Los datos se pueden comportar de diferentes maneras a través del tiempo:
puede que se presente una tendencia, estacionalidad o simplemente no
presenten una forma definida.
Métodos numéricos
Entorno de Trabajo
Para trabajar en el drive basta ir a
conectar mas aplicaciones.

Buscar Colaboratory.
Métodos numéricos

Lo seleccionamos e instalamos.

Instalado
Aprendizaje Basado en proyectos: Fallas en superficies.
Predicción en una
Caso : Descripción del problema. serie de tiempo

• Una serie de tiempo es una secuencia de datos u observaciones, medidos


en determinados momentos y ordenados cronológicamente. Visualmente,
es una curva que evoluciona en el tiempo.
• Una serie de tiempo es un conjunto de observaciones sobre los valores que
toma una variable (cuantitativa) a través del tiempo. Por tanto, una serie de
tiempo es una forma estructurada de representar datos.
• Los datos se pueden comportar de diferentes maneras a través del tiempo:
puede que se presente una tendencia, estacionalidad o simplemente no
presenten una forma definida.
Predicción en una
Caso : Ejemplos serie de tiempo
Predicción en una
Caso : Datos faltantes serie de tiempo

En los datos de series de tiempo, si faltan valores, hay dos formas de tratar los datos inco
mpletos:

 Omita todo el registro que contiene información.


 Imputar la información que falta.

Dado que los datos de series temporales tienen propiedades temporales, solo algunas de l
as metodologías estadísticas son apropiadas para los datos de series temporales.

Métodos elementales de imputación:


 Imputación con la media.
 Imputación con la Mediana.
 Imputación con la moda
 Modelos estadísticos y de Machine Learning.
Predicción en una
Caso : Visualización de Datos serie de tiempo

Un box plot es una forma estandarizada de mostrar la distribución de datos basada en un resumen de cinco
números ("mínimo", primer cuartil (Q1), mediana, tercer cuartil (Q3) y "máximo"). Puede informarle sobre
sus valores atípicos. También puede decirle si sus datos son simétricos, qué tan estrechamente están
agrupados, y si sus datos están sesgados.
Necesita tener información sobre la variabilidad o dispersión de los datos. Un box plot es un gráfico que le
da una buena indicación de cómo se distribuyen los valores en los datos. Aunque los box plots pueden
parecer primitivos en comparación con un histograma o gráfico de densidad, tienen la ventaja de ocupar
menos espacio, lo cual es útil al comparar distribuciones entre muchos grupos o conjuntos de datos.
Predicción en una
Caso : Normalización de los datos serie de tiempo

En esta segunda etapa preparamos los datos con el objetivo de realizar un entrenamiento robust
o
de nuestra red neuronal. Usualmente los datos como primera etapa se normalizan. Empíricamen
te se ha observando que los datos normalizados (No siempre) generan modelos de clasificación
y
de regresión con mejores métricas que los no normalizadas. Por otra parte, Los algoritmos de de
scenso de gradiente funcionan mejor (por ejemplo, convergen más rápido) si las variables están
dentro del rango [1, 1]. Muchas fuentes relajan el límite incluso [-3, 3]
Posteriormente los datos deben ser separados en tres conjuntos: Entrenamiento, validación y test
. Usualmente el ultimo de test se utiliza con una prueba nueva de datos. Finalmente debemos co
nstruir el conjunto de vectores que serán utilizados para entrenar la red neuronal perceptrón mu
lticapa. Las librerías. Adicionalmente en esta sección utilizaremos la librería sklearn para realiza
r la normalización.
Predicción en una
Caso : Entrenamiento, validación, test. serie de tiempo

Antes de entrenar el modelo, el conjunto de datos se divide en dos partes: conjunto de entrenamiento
y conjunto de validación.
La red neuronal se entrena con el conjunto de entrenamiento. Esto significa el cálculo de la función de
pérdida, Backpropagation y los pesos actualizados por un algoritmo de descenso de gradiente se reali
zan en el conjunto de entrenamiento. El conjunto de validación se utiliza para evaluar el modelo y par
a determinar el número de epochs en el entrenamiento del modelo. Aumentando el número de epochs
disminuirán aún más la función de pérdida en el conjunto de entrenamiento, pero es posible que no n
ecesariamente tengan el mismo efecto para el conjunto de validación debido al sobreajuste en el conju
nto de entrenamiento. Utilizamos Keras con el backend Tensorflow para definir y entrenar el modelo.
Todos los pasos involucrados en la capacitación y validación del modelo se realizan llamando a las fu
nciones apropiadas de la API de Keras.
Predicción en una
Caso : Configurar la entrada de la red serie de tiempo

Ahora necesitamos generar vectores (X) y una variable objetivo (y) para entrenar y validar. La
matriz de los regresores o variables independientes y la matriz de la variable dependiente se cr
ean a partir de la matriz 1-
D original de la columna scaled_pm2.5. Para el modelo de pronóstico de series de tiempo, los ú
ltimos siete días de observaciones se utilizan para predecir el día siguiente, este valor se estudia
y se pueden ejercitar distintas ventanas de tiempo. el día 7 surge de la observación de los gráfic
os de línea. Definimos una función que toma la serie de tiempo original y el número de pasos
de tiempo en los regresores como entrada para generar las matrices de X e y.
Quien es w?

El perceptron.
El perceptron.
El perceptron.
El perceptron.
Analogía con
una neurona.
El perceptron y
una Puerta
and.
El perceptron y
una Puerta or.
El perceptron y
una Puerta xor.
Problemas
no lineales.
Problemas no
lineales.
Funciones de activación
Redes MLP: Dropout
Función error y
gradiente
descendente
Midiendo el error
en forma discreta.

Cuantos hay?
Midiendo
el error en
forma
discreta.
Mejoró?
Podremos
medir el
error en
forma
continua?
Función error o de perdida.
• La función de pérdida es una guía en la optimizacion los
parámetros de las redes neuronales.
• Nuestro objetivo es minimizar la pérdida de una red
neuronal optimizando sus parámetros (pesos).
• La pérdida se calcula utilizando la función de pérdida
haciendo coincidir el valor objetivo (real) y el valor
predicho por una red neuronal.
• Luego, utilizamos el método de descenso de gradiente
para minimizar la perdida.
• Finalmente utilizaremos Backpropagation para
propagar el error en los distintos nodos de la red.
Mean
square
error.
Cross
entropy.
Cross
entropy
La propagación
del error.
La propagación
del error.
Gradient
descent.
Gradient
descent.
Gradient
descent.
Gradient
descent.
Predicción en una
Caso : Descripción del problema. serie de tiempo
(CNN)

• Una serie de tiempo es una secuencia de datos u observaciones, medidos


en determinados momentos y ordenados cronológicamente. Visualmente,
es una curva que evoluciona en el tiempo.
• Una serie de tiempo es un conjunto de observaciones sobre los valores que
toma una variable (cuantitativa) a través del tiempo. Por tanto, una serie de
tiempo es una forma estructurada de representar datos.
• Los datos se pueden comportar de diferentes maneras a través del tiempo:
puede que se presente una tendencia, estacionalidad o simplemente no
presenten una forma definida.
Convolución 1D
Comprendamos cómo funciona la convol
ución 1D. Considere la siguiente figura qu
e muestra una serie de tiempo de diez pas
os de tiempo. Un filtro (1 x -1) + (2x1) + (-
1 x 2) = -
1 se mueve un paso de una unidad de tie
mpo sobre la serie. Por lo tanto, se genera
un mapa de características 1 x 8. El primer
elemento de la
el mapa de características se calcula como
se mostró anteriormente. El resto de los pa
sos de tiempo se calculan de manera simil
ar. No hemos rellenado con ceros la serie
de tiempo original (Padding), por lo que e
l mapa de características es dos unidades
más corto que la serie original. Sin embarg
o, rellenar con cero el inicio y el final de la
serie de tiempo de entrada y usar el mism
o filtro habría resultado en un mapa de ca
racterísticas 1 x 10. Adicionalmente Una c
apa de agrupación se puede apilar con la c
apa convolucional para reducir la muestra
del mapa de características.
CONVOLUCIÓN 1D, EN KERAS

En este ejemplo, nos enfocaremos en los datos del sensor de acelerómetro de tiempo reducido que
provienen de un teléfono inteligente que llevan sus usuarios en la cintura. Según los datos del acel
erómetro de los ejes x, y y z, la CNN-
1D debe predecir el tipo de actividad que realiza un usuario (como "Caminar", "Trotar" o "Pararse"
)
Datos de entrada: los datos se han preprocesado de tal manera que cada registro de datos contien
e 80 segmentos de tiempo. Dentro de cada intervalo de tiempo, se almacenan los tres valores para
el eje x, el eje y y el eje z. Esto da como resultado una matriz de 80 x 3. La linea Reshape((TIME_P
ERIODS, num_sensors), input_shape=(input_shape,) tiene por objetivo transformar de un vector
de 240 a un tensor 80x3
CONVOLUCIÓN 1D, EN KERAS

Primera capa 1DCNN: La primera capa define un filtro (o también llamado detector de características) par
a este caso de altura 10 (también llamado tamaño kernel). Solo definir un filtro permitiría a la red neuronal
aprender una sola característica en la primera capa. Esto podría no ser suficiente, por lo tanto, definiremos
100 filtros. Esto nos permite entrenar 100 características diferentes en la primera capa de la red. La salida de
la primera capa de red neuronal es una matriz de 71 x 100 neuronas. Cada columna de la matriz de salida c
ontiene los valores obtenidos de aplicar un solo filtro. Con el tamaño del kernel definido y considerando la l
ongitud de la matriz de entrada, cada filtro generará 71 valores
CONVOLUCIÓN 1D, EN KERAS

Segunda capa 1DCNN: El resultado de la primera CNN se introducirá en la segunda capa de CNN. Nu
evamente definiremos 100 filtros diferentes para ser entrenados en este nivel. Siguiendo la misma lógic
a que la primera capa, la matriz de salida tendrá un tamaño de 62 x 100.

Capa max pooling: A menudo se usa una capa de agrupación después de una capa CNN para reducir
la complejidad de la salida y evitar el sobreajuste de los datos. En nuestro ejemplo elegimos un tamañ
o de tres. Esto significa que el tamaño de la matriz de salida de esta capa es solo un tercio de la matriz
de entrada
CONVOLUCIÓN 1D, EN KERAS
Vida útil remanente.
Caso : Descripción del problema.
Predecir eventos raros es en un tema importante de investigación y desarrollo en
muchas soluciones inteligentes artificiales. Análisis de supervivencia, predicción de
abandono de clientes (Churn), mantenimiento predictivo y detección de anomalías
son algunos ejemplos de los campos de aplicación más populares que se ocupan de
eventos raros. Dados estos escenarios, podemos imaginar un evento raro como un
estado particular que ocurre bajo condiciones específicas, divergentes de
comportamientos normales, pero que juega un papel clave en términos de interés
económico.

En este proyecto, se quiere predecir la vida útil remanente (RUL) de un componente de


motor en particular. Este tipo de problema juega un papel clave en el campo del
Mantenimiento predictivo, donde el propósito es decir "¿Cuánto tiempo queda antes de la
próxima falla?". Para lograr este objetivo, utilizaremos una red convolucional. En este caso
utilizaremos Keras otro entorno de trabajo de redes neuronales, este framework es
ampliamente utilizado en la industria y también en la investigación.
Vida útil remanente.
Caso: Clasificador asociado a la vida útil remanente en tiempo real.

or de Kafka
Consumid
Kafka
CNN

Tópico1
Sensores
Productor Modelo
de Kafka

Analítico
El productor
obtiene la data del
sensor

Productor
de Kafka
Kafka
Envía la predicción.
Tópico 2
or de Kafka
Consumid

Dashboard-
Alarmas
Vida útil remanente.
Caso : Descripción del problema.
Predecir eventos raros es en un tema importante de investigación y desarrollo en
muchas soluciones inteligentes artificiales. Análisis de supervivencia, predicción de
abandono de clientes (Churn), mantenimiento predictivo y detección de anomalías
son algunos ejemplos de los campos de aplicación más populares que se ocupan de
eventos raros. Dados estos escenarios, podemos imaginar un evento raro como un
estado particular que ocurre bajo condiciones específicas, divergentes de
comportamientos normales, pero que juega un papel clave en términos de interés
económico.

En este proyecto, se quiere predecir la vida útil remanente (RUL) de un componente de


motor en particular. Este tipo de problema juega un papel clave en el campo del
Mantenimiento predictivo, donde el propósito es decir "¿Cuánto tiempo queda antes de la
próxima falla?". Para lograr este objetivo, utilizaremos una red convolucional. En este caso
utilizaremos Keras otro entorno de trabajo de redes neuronales, este framework es
ampliamente utilizado en la industria y también en la investigación.
Vida útil remanente.
Caso: Clasificador asociado a la vida útil remanente en tiempo real

1. Desarrollo del modelo analítico: Construye un modelo con CNN para procesar una serie de tiempo
multivariada.
 Representando la data
 Gráficos de recurrencia
 Visualizando la data y eliminando variables poco interesantes.

 Preparando la data
 Calculando la vida útil remanente
 Construyendo el modelo
 Entrenando el modelo

2. Desarrollo del productor de Kafka: Captura la data de los sensores y las envia a la nube para su
procesamiento.
3. Desarrollo de un consumidor-productor de Kafka: Ejecuta la analítica del modelo en tiempo real y
avisa en caso de alarma
Vida útil remanente.
Caso: Representado la data.
El Gráfico de Recurrencia (GR) es una herramienta de análisis que
revela la existencia de patrones recurrentes e intermitentes en series
de tiempo. Propuesto por primera vez por Echan, ha tenido gran
aplicación en la caracterización de sistemas dinámicos. • La variable s contiene una serie de puntos.
El objetivo del gráfico de recurrencia es encontrar la repetición de un
• La función pairwise_distance calcula la distancia de
patrón dentro del espacio de estados de un sistema. Aunque un
proceso no sea periódico en sentido estricto es posible que muestre todos con todos. Si la serie de puntos tiene 10
comportamientos repetitivos o ‘recurrentes’. Una de las formas de valores, se genera una matriz de 10x10.
caracterizar esta recurrencia consiste en comparar la diferencia entre • Se normaliza contra un valor eps.
todos los estados de la trayectoria que describe la evolución del • Se aplica una función heavy-side
sistema.
Vida útil remanente.
Caso: Todos los equipos tienen la información necesaria

Miremos un grafico de barras. ¿Todos


los equipos tienen datos razonables?
Vida útil remanente.
Caso: Variables sin información

¿Que variables no aportan valor?,


miremos gráficos de línea y scatter
plots
Vida útil remanente.
Caso: Calculemos la vida útil remanente.

Estamos calculando Remaining useful life (RUL). Esto se realiza


considerando el numero máximo de iteraciones obtenidas en
cada equipo y le restamos las que actualmente lleva. En algunos
casos RUL podría venir especificado por el fabricante.
Vida útil remanente.
Caso: Clasificador asociado a la vida útil remanente en tiempo real

Definimos dos estados, w1 y w0. Estas variables tienen por objetivo identificar
dos niveles de aviso para realizar mantenciones. Posteriormente generamos
dos atributos nuevos, donde identificamos si un registro cumple con l
condición 1 y lo registramos en Estado1 y si además se cumple la condición dos
actualizando Estado2.
Vida útil remanente.
Caso: Clasificador asociado a la vida útil remanente en tiempo real

Adicionalmente vamos a cargar el archivo PM_truth.txt el cual tiene la vida útil


remanente para los ejemplos de test. Estos valores los cargamos en la columna
‘max_Cycle’. ¿Cómo calculamos RUL?
Vida útil remanente.
Caso: Generando la data para entrenar el clasificador.
Gen_sequence, recibe tres parámetros.
Id_df (El dataset filtrado por maquina),
seq_lenght (El largo en el cual vamos a
mirar la serie de tiempo), seq_cols (Las
columnas a analizar). ¿Qué estructura
retorna?

Gen_labels, recibe tres parámetros.


Id_df (El dataset filtrado por maquina),
seq_lenght (El largo en el cual vamos a
mirar la serie de tiempo), label
(‘Estado2’). ¿Qué estructura retorna?
Vida útil remanente.
Caso: Generando la red neuronal.
Vida útil remanente.
Caso: Obteniendo la mejor configuración de la red neuronal.
EarlyStopping callback : El sobreajuste es una pesadilla para los data scientist. Una forma de evitar el
sobreajuste es terminar el proceso temprano. La función EarlyStopping tiene varias métricas / argumentos
que puede modificar para configurar cuándo debe detenerse el proceso de capacitación. Aquí hay algunas
métricas relevantes:

 monitor: valor monitorizado, es decir: val_los, val_accuracy


 min_delta: cambio mínimo en el valor monitoreado. Por ejemplo, min_delta = 1 significa que el
proceso de entrenamiento se detendrá si el cambio absoluto del valor monitoreado es menor que 1
 patiente: número de epochs sin mejoría, después de lo cual se interrumpirá el entrenamiento
 restore_best_weights: establezca esta métrica en True si desea mantener los mejores pesos una vez
detenidos.

ModelCheckpoint: Este callback guarda el modelo después de cada época. Aquí hay algunas métricas
relevantes:

 filepath: la ruta de archivo en la que desea guardar su modelo


 monitor: el valor que se supervisa
 save_best_only: establezca esto en True si no desea sobrescribir el último mejor modelo
 mode: auto, min o max. Por ejemplo, establece mode = 'min' si el valor monitoreado es val_loss y
desea minimizarlo.
Vida útil remanente.
Caso: Obteniendo la mejor configuración de la red neuronal.
Vida útil remanente.
Caso: Obteniendo la mejor configuración de la red neuronal.

 Verdaderos Positivos: Se predijo positivo y es positivo


 Verdadero Negativo: Se predijo negativo y es negativo
 Falso Positivo (Error tipo 1) : Se predijo positivo y es negativo
 Falso Negativo (Error tipo II): Se predijo negativo y es positivo.
CASO : DESCRIPCIÓN DEL PROBLEMA.
DETECCIÓN DE FALLAS
CASO : DESCRIPCIÓN DEL PROBLEMA.
DETECCIÓN DE FALLAS
La solución:
• Autoencoders U-net.
Convolución
transpuesta.
Evolución de la métrica
entrenamiento y
validación.
Detección de objetos
Caso : Descripción del problema.
La detección de objetos es una técnica relacionada con la visión computacional y el
procesamiento de imágenes que se encarga de detectar instancias de objetos
semánticos de cierta clase (como humanos, edificios o automóviles) en imágenes y
videos digitales. Los dominios bien investigados de detección de objetos incluyen la
detección de rostros y la detección de peatones. La detección de objetos tiene
aplicaciones en muchas áreas de la visión por computadora, incluida la recuperación
de imágenes y la videovigilancia.

A través del uso de Deep learning, vamos a desarrollar un identificador de objetos


que detectará la fóvea del ojo humano. Para esto vamos a utilizar un data set de
imágenes que tienen identificada la posición de la fóvea. Este es un desafío abierto
en el campo de inteligencia artificial aplicada a la salud.

Posteriormente a través del uso de Big data, utilizaremos el bróker Kafka y el


modelo de Deep learning para hacer detección en streaming del objeto en imágenes
capturadas por algún equipo..
Detección de objetos
Caso 2: Descripción del problema

La degeneración macular relacionada con la edad, abreviada como AMD, es un trastorno


degenerativo en la región macular. Ocurre principalmente en personas mayores de 45 años y su
tasa de incidencia es incluso mayor que la retinopatía diabética en los ancianos. La etiología de
la AMD no se comprende completamente, lo que podría estar relacionado con múltiples
factores, incluida la genética, el efecto de foto destrucción crónica y el trastorno nutricional. La
AMD se clasifica en AMD seca y AMD húmeda. La

El conjunto de datos actual está compuesto por fotos AMD y no AMD (miopía, control normal,
etc.). Los signos típicos de AMD que se pueden encontrar en estas fotos incluyen drusas,
exudación, hemorragia, etc.

Para poder detectar la degeneración macular, es necesario identificar la zona donde se produce
la degeneración. La parte central de la mácula, se denomina fóvea.
Detección de objetos
Caso 1: el modelo de aprendizaje profundo. (CNN)

Analizamos localmente la imagen.

https://es.wikipedia.org/wiki/Convoluci%C3%B3n
Detección de objetos
Caso 1: el modelo de aprendizaje profundo. (CNN)

Se define un kernel que


realiza la convolución. Esta se
aplica sobre el pixel y su
entorno. En el caso de
matrices esta corresponde a
una operación punto a punto.
Detección de objetos
Caso 1: el modelo de aprendizaje profundo. (CNN)

Cada capa convolucional aplica un


numero de filtros tratando de
capturar propiedades locales de la
imagen. En el ejemplo distintos filtros
aplicados a la imagen.
Detección de objetos
Caso 1: el modelo de aprendizaje profundo. (CNN)

El concepto de stride: El stride


mide el desplazamiento del
operador convolucional. La
mayoría de las veces se quiere
reducir el tamaño de la imagen y
agrandar la cantidad de filtros que
se relacionan con las
características de la imagen. Un
stride de 1 mantiene el tamaño de
la imagen, uno de dos lo disminuye
a la mitad en x e y.
Detección de objetos
Caso 1: el modelo de aprendizaje profundo. (CNN)

El padding define el relleno a aplicar, un cero


significa sin relleno. Esta necesidad aparece
cuando el operador convolucional recorre la
imagen.
Detección de objetos
Caso 1: el modelo de aprendizaje profundo. (CNN)
En principio las redes convolucionales se
componían de capas convolucionales que
extraían las características y capas pooling
que reducían la dimensión de estas.
Series de tiempo
Caso 2: Background

Definición: Una serie de tiempo es una serie de puntos de datos indexados en orden de tiempo.
Más comúnmente, una serie de tiempo es una secuencia tomada en sucesivos puntos
equidistantes en el tiempo. Por lo tanto, es una secuencia de datos de tiempo discreto. Ejemplos
de series temporales son las alturas de las mareas oceánicas, los recuentos de manchas solares,
mediciones de un sensor y el valor de cierre diario del Promedio Industrial Dow Jones.

Las series de tiempo se representan con mucha frecuencia mediante gráficos de líneas. Las series
de tiempo se usan en estadística, procesamiento de señales, reconocimiento de patrones,
econometría, finanzas matemáticas, pronóstico del tiempo, predicción de terremotos,
electroencefalografía, ingeniería de control, astronomía, ingeniería de comunicaciones, y en gran
medida en cualquier dominio de la ciencia aplicada y la ingeniería que involucra mediciones
temporales.
Series de tiempo
Caso 2: Predicción de la concentración de la presión atmosférica y el
material particulado

or de Kafka
Consumid
Kafka
MLP CNN

Tópico1
Sensor
Productor Modelo
de Kafka

Analítico
El productor
obtiene la data del
sensor

Productor
de Kafka
Kafka
Envía la predicción.
Tópico 2
or de Kafka
Consumid

Dashboard-
Alarmas
Series de tiempo
Caso 2: Explorando los datos: (Pandas, seaborn)
Aplicando
una
estadística
descriptiva.

Boxplot. Gráficos de línea.


Series de tiempo
Caso 2: Preparando los datos: (sklearn, pandas)
Normalizando la data.

Conjunto de entrenamiento y
validación.

Entrenamiento Validación
Series de tiempo
Caso 2: Preparando los datos: (sklearn, pandas)
La variable ts es nuestra serie de tiempo original,
nb_timesteps considera la ventana de tiempo que
vamos a considerar. X representa el conjunto de
regresores e y la variable a predecir. El ciclo va
sacando slices y posteriormente las transformamos a
arrays. Esto lo aplicamos al conjunto de
entrenamiento y de validación.

Posteriormente utilizamos la clase dataset de Pytorch


para construir los dataset. En esta clase, se necesitan
reescribir tres métodos: init, len, getitem.

En el caso de init transformamos X e y al tipo de datos


tensor.
Series de tiempo
Caso 2: Utilizando un modelo Multilayer Perceptrón: (pytorch)

En el perceptrón tenemos
una fusión lineal y
posteriormente una función
escalón. En el caso de
multilayer, tenemos varios
perceptrones y varias capas.
Series de tiempo
Caso 2: Utilizando un modelo Multilayer Perceptrón : (pytorch)

Debido a que el perceptrón tiene limitaciones importantes,


este se extiende a una red neuronal feed forward. Cada
nodo representa la estructura de un perceptrón, donde la
función de activación step puede es reemplazada por varios
tipos.

También podría gustarte