Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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:
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
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
10
Paradigma map-reduce: Iteraciones, interacciones
Map
Reduce
11
Desafío: Se agrega la dificultad de Big Data
12
Solución: Resilient Distributed Datasets (RDDs)
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).
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.
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.
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.
Analítica
Se espera que la Industria 4.0 pueda hacer lo siguiente:
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:
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
En los datos de series de tiempo, si faltan valores, hay dos formas de tratar los datos inco
mpletos:
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.
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)
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.
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.
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
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
ModelCheckpoint: Este callback guarda el modelo después de cada época. Aquí hay algunas métricas
relevantes:
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)
https://es.wikipedia.org/wiki/Convoluci%C3%B3n
Detección de objetos
Caso 1: el modelo de aprendizaje profundo. (CNN)
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.
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.
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)