A poco tiempo de finalizar un año lleno de desafíos, los líderes empresariales ya evalúan estrategias y tácticas para …
Seguir leyendo //Este trabajo propone una revisión de los conceptos básicos de Big Data y el Internet de las Cosas (IoT) así como de la Inteligencia Artificial, así como reflexionar sobre su amplio campo de aplicación. Este paper es base de las clases que el ingeniero Carlos Ormella Meyer realiza en el marco de su cátedra de Gestión y Auditoría de Riesgos y Seguridad de la Información.
Escribe Carlos Ormella Meyer (foto)* .- Big Data y el IoT son dos tecnologías que pueden potenciarse como para concretar una serie de aplicaciones en áreas tan diferentes como malware y reconocimiento de voz, control de cultivos y predicciones de salud, prevención del fraude y primas de seguro ajustables automáticamente, etc.
Tal resultado puede lograrse especialmente con Machine Learning (Aprendizaje Automático) y Deep Learning (Aprendizaje Profundo), que constituyen las herramientas más trascendentes para las mencionadas aplicaciones.
En ese escenario se revisan primero las diferentes formas de aprendizaje como para crear un modelo de ajuste automático con base al análisis estadístico y predictivo, y poder así aplicarlo en determinar patrones de datos y predicción de resultados.
El caso del Deep Learning, que puede considerarse parte del Machine Learning, se distingue porque busca emular al cerebro humano en cuanto al procesamiento y aprendizaje de la información construyendo una Red Neuronal Artificial como las del sistema nervioso.
El tema siguiente se refiere a los Bots y Chatbots que son herramientas que facilitan la interacción de máquina y personas, incluso en algunos Chatbots con el soporte de la Computación Cognitiva que busca que las máquinas piensen y procesen la información como las personas.
A continuación se introduce el tema del NLP (Procesamiento del Lenguaje Natural) que está basado en Deep Learning y que, junto con el Machine Learning, constituyen el trío de herramientas propias de la Inteligencia Artificial.
Las aplicaciones del NLP van desde el Chatbot, pasando por el análisis del estado emocional expresado en una frase incluso de las redes sociales, hasta la ejecución de instrucciones humanas por parte de un robot.
También aquí, la Computación Cognitiva constituye un eficaz soporte por ejemplo para descomponer y analizar partes de una frase.
La última parte de este trabajo incluye por un lado una serie de aplicaciones de Machine/Deep Learning en Big Data e IoT además de las mencionadas al comienzo de este trabajo, y por el otro un listado de los conocimientos necesarios de los diferentes especialistas en dichas aplicaciones.
Keywords
Big Data, IoT, Internet de las Cosas, IIoT, Internet Industrial de las Cosas, M2M, Máquina con Máquina, AI, Inteligencia Artificial, Machine Learning, Aprendizaje Automático, Deep Learning, Aprendizaje Profundo, Bot, Chatbot, NLP, Procesamiento de Lenguaje Natural, Computación Cognitiva, Perceptrón, Red Neuronal Artificial, CNN, Redes Neuronales Convolucionales, RBM, Máquina Restringida de Boltzmann
Conceptos básicos de Big Data
Big Data es un concepto que se refiere a la gestión y análisis en línea de gran cantidad de datos de diversos formatos, como los datos de tablas, texto incluyendo los de redes sociales, videos, audio, etc., todo lo cual se encuadra según diferentes indicadores, donde los principales son:
1) Volumen, gran cantidad de datos: Terabytes (10¹²), Petabytes (1015), y Exabytes (1018).
2) Variedad, datos de tres tipos:
a) Estructurados: De bases de datos relacionales.
b) Semiestructurados: Registros internos y de servidores, seguimiento de clics en Internet.
c) No estructurados: Datos, imágenes, video, audio, Texto de redes sociales, foros, mails, archivos Office.
3) Velocidad, con que se reciben los datos.
La Analítica de Big Data permite establecer e inferir patrones ocultos, correlaciones, tendencias, preferencias de clientes, etc.
Permite analizar tanto datos de eventos de servidores, estaciones de trabajo, antivirus, firewalls, e IDS/IPS (Sistema de Detección/Prevención de Intrusiones), como información de redes sociales.
Para el caso se usan bases de datos NoSQL (No Sólo SQL), que manejan datos no uniformes, diferentes formatos y múltiples orígenes, que se almacenan en clusters de servidores distribuidos usando Hadoop, donde su núcleo, MapReduce, crea índices de búsqueda para coordinar, combinar y procesar dichos datos.
Hay una cantidad considerable de aplicaciones de Big Data en áreas tan variadas como:
Retail; Bancos, Servicios financieros y Compañías de Tarjetas de Crédito; Seguros; Salud; Telecomunicaciones; Sector Público; Sector fabril.
Breve Introducción al Internet de las Cosas, IoT
El Internet de las Cosas (IoT) es la interconexión digital de dispositivos activados por sensores.
Se usan desde simples sensores en etiquetas adheridas en prendas, así como también en tarjetas de pago de transporte y de acceso a empresas o lugares restringidos, hasta sensores de robots.
Por su parte, el Internet Industrial de las Cosas (IIoT), o Internet Industrial, trabaja con comunicaciones M2M (Máquina con Máquina) en manufacturas y empresas de servicio, muchas de las cuales constituyen Infraestructuras Críticas tales como instalaciones hidráulicas, centrales y redes de energía, entre otras.
El Internet de las Cosas se viene expandiendo rápidamente y ya se encuentra en aplicaciones de Domótica; Salud; Seguros; Industria manufacturera; Agricultura; Ganadería; Logística; Ciudad inteligente; Redes inteligentes; y Dispositivos de uso personal, entre otros
Inteligencia Artificial – Breves Conceptos
La Inteligencia Artificial, AI, es el arte de hacer que los programas de computadora se comporten como humanos en cuanto a la percepción, aprendizaje, comprensión y conocimiento.
Para ello, la inteligencia artificial abarca un área multidisciplinaria que combina ramas tan diversas como la Neurociencia, la Lógica, la Psicología y la Computación, y que se encarga de diseñar y crear entidades artificiales que son capaces de resolver problemas o realizar tareas por sí mismas, utilizando algoritmos y paradigmas del comportamiento humano.
Dos áreas se destacan en el campo de la Inteligencia Artificial: Machine Learning y Deep Learning.
Machine Learning – Aprendizaje Automático
Machine Learning, también conocida como Aprendizaje Automático, es una herramienta muy usada en las aplicaciones más avanzadas de Big Data e IoT.
Machine Learning se basa en proporcionar a una computadora la capacidad de aprender sin ser programada explícitamente, y se lo considera un subcampo de la Inteligencia Artificial, AI.
Machine Learning usa análisis estadístico y análisis predictivo para identificar patrones en los datos.
Tiene algunas similitudes con el Data Mining, pero mientras éste simplemente muestra resultados, Machine Learning ajusta las acciones del programa en base a los resultados.
Para un funcionamiento adecuado, un sistema de Machine Learning requiere un cierto aprendizaje previo, con el objeto de construir un modelo que pueda generar predicciones razonables como respuesta a cualquier tipo de datos.
Hay dos tipos básicos de Aprendizaje: Supervisado y No Supervisado, Adicionalmente se pueden mencionar otros dos de menor presencia que son el Aprendizaje Semi-Supervisado y el Aprendizaje por Refuerzo.
Aprendizaje Supervisado
El Aprendizaje Supervisado (Figura 1) consiste en entrenar al modelo en base a un conjunto conocido de datos de Entrada y la respuesta o Salida correspondiente, por lo que se dice que la Entrada está etiquetada.
El proceso de aprendizaje se repetirá hasta lograr coincidencia entre la Salida producida y la etiqueta esperada, tras lo cual el programa ya está en condiciones de operar adecuadamente.
Los pasos son los siguientes:
1) Se proporcionan tanto los datos de Entrada como la Salida esperada, o sea la etiqueta correspondiente.
2) Los datos de Entrada se tratan con un algoritmo para crear un modelo que entregue un resultado que se valida contra la Salida esperada.
3) Mientras haya diferencias, el proceso se reitera hasta que la Salida que entregue el modelo coincida con el resultado provisto a la Entrada.
A partir de aquí, el sistema puede predecir un resultado para cualquier tipo de datos de Entrada.
Un ejemplo es el detector de email spam en base a características de los mensajes, y que incluye los que el usuario pueda agregar. También tenemos el Feed de noticias del Facebook.
Aprendizaje No Supervisado
En este caso, a la Entrada sólo se proveen los datos correspondientes, sin la Salida o respuesta deseada, por lo que se dice que la entrada no está etiquetada.
El proceso de entrenamiento es:
1) Se proporcionan sólo los datos de Entrada.
2) Los datos de Entrada se tratan con un algoritmo que crea un modelo aprendiendo la estructura inherente, o la distribución de los datos de Entrada.
3) El resultado se valida según el algoritmo usado, especialmente con una forma de validación cruzada entre una parte de los datos de Entrada, que entrena el modelo, y la parte restante que se usa a modo de prueba.
4) Habiendo diferencias, el proceso se reitera hasta obtener la mejor aproximación para todos los datos de Entrada, y terminar así el entrenamiento
Aprendizaje Semi-Supervisado
Aquí hay algunos datos etiquetados pero la mayoría de ellos no lo están, y se puede usar una mezcla de técnicas supervisadas y no supervisadas
.
En el aprendizaje semi-supervisado es usual usar dos algoritmos diferentes que comienzan con los ejemplos etiquetados, y luego en base a la información establecida, prosiguen con el análisis específico de los datos no etiquetados.
Aprendizaje por Refuerzo
Básicamente es un sistema de aprendizaje no supervisado pero con características muy especiales.
El sistema trabaja con un agente que aprende por prueba y error en un ambiente dinámico e incierto.
En cada interacción el agente recibe como entrada un indicador del estado actual y selecciona una determina acción que maximice una función de refuerzo.
Deep Learning – Aprendizaje Profundo
Deep Learning es un subconjunto del Machine Learning, pero que se basa en cómo el cerebro humano procesa la información y aprende, construyendo una red de neuronas.
Un ejemplo clásico es el del niño que aprende a reconocer un perro ya que cada vez que ve un animalito similar, los padres le dicen “es un perro” o “no es un perro”, y así el niño va reconociendo diferentes tipos y características de los perros tales como tamaño, color, comportamiento, etc.
Inconscientemente, el niño va transformando una abstracción compleja como el concepto de un perro, construyendo una jerarquía en la que cada nivel de abstracción se forma con el conocimiento que se obtuvo de la capa precedente de la jerarquía.
El entrenamiento previo del Deep Learning también puede ser de Aprendizaje Supervisado y No Supervisado.
Aprendizaje Supervisado
El Aprendizaje Supervisado se basa en el Perceptrón, un esquema neuronal básico de dos capas (Entrada y Salida) que maneja clasificadores binarios, o sea ES o NO ES de una cierta clase, lo cual implica que en una gráfica las variables pueden ser separadas por una línea.
Para el caso, las entradas reciben un tratamiento matemático cuyo resultado se aplica a una función de activación del tipo escalón que decide si la Salida ES o NO ES (1 o 0 respectivamente) de la clase esperada, es decir la etiqueta proporcionada a la Entrada.
El resultado se valida contra la etiqueta (como en el Machine Learning) y se repite el proceso para minimizar las diferencias.
Para dos o más variables no separables linealmente se trabaja con un esquema multicapa (Figura 2) con una o más capas ocultas entre Entrada y Salida, lo que se conoce como una Red Neuronal Artificial como las del sistema nervioso.
Este modelo de aprendizaje tiene entonces varios niveles de representación, donde cada nivel o capa tiene varias unidades neuronales simples.
Esto implica, a su vez que, debido a la alinealidad señalada, tampoco se podrá usar una función de activación del tipo ES o NO ES, sino funciones que por ejemplo puedan resultar en cualquier valor entre 0 y 1.
Por eso en la capa oculta se usan funciones de activación alineales, como la sigmoide (una curva con forma de S estirada, con valores entre 0 y 1), o la tangente hiperbólica,
Además, a la salida de una red pueden aparecer diferencias con la etiqueta que se reducen apelando a la Retropropagación, es decir una propagándose hacia atrás, para ajustar el tratamiento matemático mencionado antes, y minimizar así dichas diferencias o errores.
Por su parte, las Redes Neuronales Convolucionales (CNN), constituyen un tipo específico de Red Neuronal Artificial pero que utiliza Perceptrones para un aprendizaje supervisado.
CNN se destaca en el reconocimiento y clasificación de imágenes, especialmente en la identificación de rostros, objetos y en señales de tránsito potenciando la visión en robots y vehículos sin conductor.
Aprendizaje No Supervisado
En el caso del Aprendizaje No Supervisado dos son las variantes más usuales: el Autocodificador, y la Máquina Restringida de Boltzmann (RBM).
Hay que tener en cuenta es que en general ambos tipos se entrenan para un uso específico, tal que, por ejemplo, uno preparado para reconocer caracteres escritos manualmente no es apto para imágenes o fotos.
Un Autocodificador está compuesto por tres partes: Codificador, Código y Decodificador.
El Codificador comprime la Entrada y produce un Código, que a continuación lo descomprime el Decodificador reconstruyendo la Entrada.
Un esquema básico, entonces, tiene una capa de Entrada y una de Salida separadas por una capa de Código con menos neuronas.
Mientras las capas de Entrada y Salida tienen igual cantidad de neuronas, la capa de Código tiene menos neuronas.
Como resultado, la capa de Código contiene las características más básicas de los datos de Entrada que permitirán su reconstrucción.
Para obtener características más complejas se usa el apilado (Figura 3); donde la Salida del codificador se conecta a otro Autocodificador, y así sucesivamente de modo tal que se irán acumulando capas ocultas entre la capa de Entrada y la de Código, así como entre esta última y la capa de Salida, de modo tal que el esquema resultante es una forma de espejado de las capas ocultas entre la sección de codificación y la de decodificación.
El entrenamiento es individual por cada capa oculta, precisamente para lograr reconocer tanto las características más generales como las más detalladas.
Para eso se tratan la primera capa oculta del codificador con la última del decodificador, luego la segunda con la penúltima, y así sucesivamente hasta la última capa oculta del codificador con la primera del decodificador.
Por su parte, la Máquina Restringida de Boltzmann puede aprender una distribución probabilística del conjunto de Entradas, así como su apilado ofrecer ventajas similares a las de los Autocodificadores, con la ventaja adicional que también puede ser entrenado en forma supervisada.
Para ello el aprendizaje de un RBM consiste en identificar tanto variables visibles como variables “ocultas” (características internas) para así establecer cómo se relacionan entre sí ambos conjuntos de variables.
Bot y Chatbot
El Bot es un software diseñado y creado para automatizar los tipos de tareas que normalmente haríamos por nuestra cuenta, tal como responder a consultas predeterminadas como hacer una reserva, así como también realizar tareas como las de un Servicio al Cliente, Asistentes Personales, Servidores de comida rápida, etc.
Un Chatbot, por su parte, es un programa de computadora diseñado para simular la conversación con usuarios humanos, especialmente a través de Internet
Hay dos modelos de Chatbots.
Uno se basa en la recuperación de respuestas predefinidas. El nivel de simplicidad o complejidad de este tipo de Chabots depende del contexto de trabajo requerido siguiendo una cierta heurística, o sea una suerte de metodología creativa, precisamente para aumentar el conocimiento.
El otro modelo, también llamado AI Chatbot, en realidad trabaja en base a la Computación Cognitiva.
La Computación Cognitiva significa que se enseña a las máquinas cómo pensar y procesar información como los seres humanos.
La Computación Cognitiva emplea Big Data, Machine/Deep Learning y Computación en la Nube, así como NLP, Procesamiento de Lenguaje Natural, que se ve luego.
Por cierto, la Computación Cognitiva se aplica también en la detección de rostros, valuación de riesgos especialmente en las finanzas, detección de fraude, e incluso en el análisis de sentimientos como el tono o la intención, en especial en las comunicaciones de redes sociales.
Para el aprendizaje, primeramente hay que preparar los datos correspondientes a miles de chats adecuados, y para cuya efectividad habrá que enseñar a la máquina qué palabras y/o frases son sensibles a nuestro negocio. Esto se llama crear una ontología del lenguaje, es decir, algo que no es precisamente rígido y que, por lo tanto, puede cambiar.
Ejemplos típicos de Chatbot son el Assistant de Google, Siri de Apple, Cortana de Microsoft y Alexa de Amazon.
NLP – Procesamiento de Lenguaje Natural
El Procesamiento del Lenguaje Natural, NLP es la habilidad de un programa de computación de comprender el lenguaje humano, incluso descomponer y analizar palabras de una frase con el soporte de la Computación Cognitiva y, como tal, es considerado como una herramienta propia de la Inteligencia Artificial, AI (Figura 4).
Específicamente NLP puede analizar, comprender y derivar sentido al lenguaje humano de una manera inteligente y útil, por lo que en muchos casos se aplica al Chatbot.
Por medio del NLP se pueden realizar tareas como generar resúmenes automáticos, traducir, reconocer entidades, extraer interrelaciones, analizar el estado emocional expresado en una frase incluso de las redes sociales, reconocer la voz, etc.
NLP se basa en Deep Learning, y requiere una gran cantidad de datos etiquetados para realizar las tareas mencionadas, a través de inferencias en condiciones estáticas.
El análisis de redes sociales es un gran ejemplo de uso de NLP. Para información de las marcas comerciales, las empresas rastrean las conversaciones en línea para comprender lo que dicen los clientes y obtener información sobre el comportamiento del usuario.
Google y otros motores de búsqueda basan su tecnología de traducción automática en modelos de Deep Learning de NLP. Esto permite que los algoritmos lean texto en una página web, interpreten su significado y lo traduzcan a otro idioma.
Otra aplicación del NLP se da cuando se requiere que un sistema inteligente como un robot ejecute instrucciones humanas.
Aplicaciones de Machine Learning en Big Data e IoT
Si bien algunas aplicaciones de Machine Learning son específicas para Big Data, también hay otras que se aplican al mismo tiempo a Big Data e IoT.
Entre las aplicaciones que van surgiendo se pueden mencionar las que actualmente son más conocidas.
1) Malware. En general los nuevos ataques de software malicioso sólo cambian parte del código anterior, por eso se puede predecir el comportamiento de una nueva versión. Resultados similares se obtienen en Ciberseguridad.
2) Fraude. Como lo usan bancos y la AFIP.
3) APT (Amenazas Avanzadas Persistentes). Detección por comportamiento y movimiento lateral.
4) Automóviles. Comodidades y Primas de Seguro.
Comodidades adaptadas al conductor. Primas de Seguro por la forma de conducir, y calles y carreteras transitadas.
5) Cultivos. Herramientas que por medio del uso de diferentes tipos de sensores, permiten optimizar y reducir el uso y costo de fertilizantes y pesticidas, anticipar enfermedades, facilitar mayores rendimientos, e incluso detectar y regular las necesidades de riego.
6) Aplicaciones industriales. Seguridad y especialmente mantenimiento de máquinas.
Aplicaciones de Deep Learning en Big Data e IoT
Esta área también está en pleno desarrollo pudiéndose mencionar algunas aplicaciones ya existentes.
1) Reconocimiento de voz. Asistente de Google, Siri de Apple, Cortana de Microsoft y Alexa de Amazon. También de imágenes en Facebook.
2) Detector de web spam, es decir de sitios que provocan spam tanto directamente como por medio de múltiples links a otros sitios.
3) Reconocimiento óptico de caracteres (OCR), texto a voz.
4) Predicciones de salud. Relación de síntomas, causas y efectos de enfermedades.
5) Vehículos de manejo sin conductor. Reconocimiento de señales, obstrucciones, etc.
Expertos en Big Data, IoT y Machine/Deep Learning
• Especialistas en Big Data
Data Engineer: Manejan ETL (Extraer, Transformar y Cargar) datos de diferentes fuentes. Usan Hadoop, MySQL, NoSQL, y lenguajes Python y R.
Data Scientist: Aplican estadísticas, modelado estadístico y predictivo, análisis multivariante y otras funciones matemáticas creando algoritmos.
• Especialistas en IoT
Ingeniero IoT: Ingeniería de comunicaciones (RF, diseño de circuitos, sensores), aplicaciones Web, APIs, redes, protocolos, e Ingeniería Mecánica.
• Expertos en Machine Learning y Deep Learning
Algoritmos para supervisión y no supervisión.
(*) Material extraído del curso “Big Data, Internet de las Cosas, y las Máquinas que aprenden”.
Lecturas complementarias:
• Breve Introducción a Big Data.
A poco tiempo de finalizar un año lleno de desafíos, los líderes empresariales ya evalúan estrategias y tácticas para …
Seguir leyendo //En el camino de ser realidad para América Latina, 5G registra lanzamientos en Brasil y Uruguay, y hay procesos …
Seguir leyendo //Programa CyberNYC: VU Security, compañía especializada en identidad digital, es la única compañía Latinoamericana que participa del primer grupo …
Seguir leyendo //Escribe Carlos Ormella Meyer*- Sabemos que el Internet de las Cosas (IoT), es el sistema que conforman miles y …
Seguir leyendo //