Datos Sintéticos con GANs (I): ¿Por qué Datos Sintéticos?

El mundo de los datos está muy cotizado actualmente y más concretamente dos aspectos muy importantes: su seguridad y la ausencia de la misma.

Seguridad

En cuanto a la seguridad, las empresas quieren sacar el máximo partido de los datos para generar publicidad personalizada a cada usuario, optimizar el rendimiento de su actividad o incluso para hacer negocio y venderlo a terceros.

En cualquier caso, el almacenamiento, tránsito y manipulación de estos es delicado y susceptible de sufrir fugas, robos y, sobre todo, aunque no lo parezca en la mayoría de las ocasiones, extravío y exposición al exterior (Internet) debido a las malas prácticas en el momento de su tratamiento y explotación.

Como solución a estos problemas, se toman las típicas medidas de utilización de firewalls, proxys y más mecanismos de “fortaleza” para asegurar la infraestructura y, en capas de nivel más bajo, métodos de anonimización y encriptación para asegurar el dato. Sin embargo, se ha demostrado, y ha habido casos en los que estos métodos de seguridad aplicados al dato han sido vulnerados utilizando técnicas de ingeniería inversa, por lo que obligaban a anonimizar el dato más todavía para conseguir más privacidad, lo que conlleva menos utilidad del mismo.

Es difícil decidir dónde está la línea que nos da más seguridad y menos utilidad, o viceversa, y en qué caso aplicar cada umbral. ¿No estaría bien tener datos exactamente igual que los reales, que mantuvieran distribuciones y correlaciones entre campos, y que además obtuvieramos las mismas métricas en los modelos de IA que si utilizáramos los reales? Nos ahorraríamos el proceso de anonimización y, más importante aún, no necesitaríamos para nada los datos reales u originales.

Ausencia de Dato / Data Augmentation

Otro aspecto muy importante y cotizado es la falta o ausencia del dato. El potencial de éste se basa en cómo alimenta a los modelos de Inteligencia Artificial (IA)  para conseguir y descubrir nuevos y complejos patrones de comportamiento de un conjunto diverso y cuantioso de datos. Estos modelos de IA no sirven de mucho si no están bien nutridos de un set de datos lo suficientemente grande y variado que lo haga aprender.

Debido a esto, se valora mucho tener un dataset completo, que tenga una muestra de datos considerable, que esté balanceado y lo menos manipulado posible. En el caso de no tener un dataset de calidad medianamente buena (faltan datos o casuísticas importantes), se suele hacer uso de librerías de balanceo de carga de datos que interpolan lineal y polinómicamente.

Este método puede ayudar en ciertos casos, pero en muchos otros no, porque la distribución puede ser completamente distinta y, por ende, ser perjudicial, ya que estamos creando datos erróneos y situándolos donde no tienen que estar.

Datos Sintéticos

Como solución a estos inconvenientes, se propone el uso de datos sintéticos, tanto para la seguridad, como para complementar y balancear un set de datos.

¿Cómo ganamos en seguridad mediante datos sintéticos?
Los datos originales (sensibles) que se reciben de clientes, sensores, máquinas, empresas o instituciones gubernamentales, se almacenarían después de pasar por un flujo de creación de datos sintéticos, los cuales mantendrán las mismas, o similares distribuciones y correlaciones entre sus variables (continuas y/o discretas). Estos últimos serán los que se puedan tratar, manipular, explotar o incluso exponer sin temor a que puedan ser obtenidos los datos originales utilizando ingeniería inversa. Estos datos sintéticos, en función de su importancia, podrían ser creados con más o menos privacidad, es decir, con más o menos dispersión para controlar el parecido a los reales. De esta manera, se asegura la privacidad y la no utilización de los datos originales.

¿Cómo complementar y balancear un set de datos mediante datos sintéticos?
Los datos sintéticos generados no son interpolados lineal ni polinómicamente, sino que se generan en base a las distribuciones de los datos originales y respetando las correlaciones entre variables.
Debido a este método de generación de datos, los datos sintéticos creados son como los originales pero sin ser reales. No responden a ninguna función lineal o no lineal de anonimización, ni a ningún patrón de encriptación.
Por ello, esta técnica nos puede ayudar a rellenar los subespacios de datos menos habitados, e incluso generar aquellos que nos sean más interesantes como puntos atípicos o extremos.

De hecho, se han creado startups basadas en la generación de datos sintéticos, que han hecho de ello un negocio, como MostlyAI o Neuromation.

También, empresas importantes como American Express utilizan la generación de datos sintéticos como ‘Data Augmentation’ tal como hemos comentado anteriormente.

Pero… ¿cómo se generan estos Datos Sintéticos?
Datio plantea la creación de datos sintéticos a partir de una arquitectura de redes Neuronales llamadas GANs (Generative Adversarial Networks).

Las GAN consisten esencialmente en una arquitectura de 2 redes neuronales (el Generador y el Discriminador) en la que el Discriminador decide si la información que le llega es real o fake, y el Generador aprende de estas decisiones del Discriminador para generar dato fake de mayor calidad, hasta llegar al punto en que el Discriminador no sabe si lo que recibe es real o fake. Llegado a ese punto, el Generador ha conseguido aprender lo suficiente para generar dato de tan buena calidad como el original.

En la segunda parte de este post entraremos en los detalles técnicos de la arquitectura de las redes.

Continuará…

Julio Cambronero

Como Senior Data Scientist en Data Tech Lab BBVA estoy encantado de aprender continuamente y de investigar en las nuevas tecnologías del aprendizaje automático. ¡La actitud es lo más importante!

More Posts