Hola compañer@s del foro,
Soy Marc Gomis y soy uno de los Veteranos de esta edición.
Me gustaría plantearos un pequeño reto con tal de dar un poco de actividad a nuestra sección en el foro, pues como ya sabréis, la participación en el foro es imprescindible para poder optar a la siguiente fase del programa.
Dicho esto; os propongo unas preguntas, a ver quién las puede contestar. También podéis generar debate y discusión entre vosotr@s.
- De todos los tipos de métodos de generación de datos, ¿Cuál consideráis que es el mejor y porque?
- Qué tipo de redes neuronales o mecanismos de inteligencia artificial/machine learning se necesitan para general datos sintéticos
- Creéis que el uso de datos generados sintéticamente puede generar sesgos y errores en la precisión de los resultados obtenidos? ¿Cómo podría mejorarse esto?
- ¿En qué casos puede ser necesario la generación de datos sintéticos? ¿Y en qué casos puede ser innecesario o hasta contraproducente?
No hace falta que deis respuesta a todas las preguntas, pero sí que os animo a intentar contestar una o dos y responder a las opiniones de vuestr@s compañer@s.
Un saludo,
Marc Gomis.
Buenos días a todos.
Me he estado informando un poco y tras varias pruebas y un rato de teoría creo tener algo con lo que debatir.
Comenzando por el principio, como es lógico, la técnica de generación de datos que personalmente considero la mejor, no sería el único uso de un modelo, sino la complementación de unos con otros. Me explico, el
VAE, o el
autocodificador de Valor Agregado Ecuatoriano tiene una gran potencia en cuanto a generación de datos sintéticos realistas, basados en resultados actualmente existentes, se refiere. Sin embargo, esta generación de datos se ve forzada por la agrupación de grandes bases de datos o recursos de los que poder obtener una simulación realista, de lo contrario este ensayo no muestra ciertamente datos que podrían replicarse, mas la media de los datos que obtiene. Por ello, y aquí entra el
Boostrapping, con su memoria
LTSM*; el cuál nos permite recoger todos estos datos y almacenarlos en una memoria de fácil y rápido acceso, para luego generar ruido digital** que nos permitirá sintetizar datos tanto de forma realista, como con un poco de "imaginación" (ya me entendéis 😉).
Prosiguiendo con el tema anterior y respondiendo a la próxima pregunta, veo óptimo el uso de modelos de inteligencia artificial del tipo Naive Bayes (conocido como "ingenuo"), basado en el teorema de Bayes, el cuál estatuye que la existencia o presencia de una característica o función, no determina la falta de la otra. Este modelo es bastante utilizado en muchos tipos de situaciones aleatorias, sobre todo en las que ciertos factores pueden no ser realmente predecibles.
Hay que tener en cuenta que todos estos datos, pueden ser correctos o pueden conllevar un riesgo determinado, ya que aún usando ruido digital que "aleatoriza" los resultados hasta el punto que nosotros decidamos, la aleatorización de nuestros dispositivos informáticos (dispositivos precisos y preparados para no equivocarse) sintetiza datos a partir de resultados obtenidos por nosotros y variables que proporcionamos y/o modificamos, lo que puede llevar a errores finales.
Ya por último, y concluyendo para los que hayáis llegado hasta aquí, la generación de datos puede no ser siempre la mejor solución para todos los problemas que se nos presentan. Pongo un caso personal como ejemplo.
A mi me gusta mucho la robótica, ya que termina siendo la "hermana gemela" de la informática, y en un proyecto que se me planteó en el que un robot debía constituir la tarea de limpiar una habitación completamente evitando obstáculos y mejorando su eficiencia, lo primero que me vino a la mente fueron algunos modelos de procesamiento de datos, basados en flujos de trabajo neuronales, ideales para microprocesadores pequeños como Arduino, una de las placas de micro procesamiento más utilizadas en robótica. Sin embargo, y aún pudiendo ser esta una buena opción, era mucho más fácil (en temas técnicos) y muchos más rápido (en temas de procesamiento y coste de tiempo) un circuito, junto con un programa que cumplía con esta función exactamente como se necesitaba. De forma similar, y de igual forma con un proyecto personal, el código encargado de gestionar la estabilización de un avión en cualquier circunstancia, era más sencilla de hacer, más rápida y más barata, con un programa auto reactivo, que con inteligencia artificial.
Por tanto, y ahora ya sí, terminando; siempre va a depender de la situación y la solución que queramos obtener, pero comúnmente y en la situación actual en la que la IA aún está en desarrollo prematuro, es mejor basarse en soluciones que se adecuen a nuestros requisitos, antes de pensar en las redes neuronales como solución. Porque por si completar una no fuese difícil, luego conlleva un entrenamiento de miles y cientos de miles de datos como mínimo, más el tiempo de su procesamiento y análisis.
Un saludo, y espero haber aportado algo útil hoy.
--- Información de interés: ---
* Memoria larga a corto plazo (LTSM):
** Ruido (digital): Con ruido digital nos referimos a la generación, en un plano digital, de puntos encontrados entre el blanco y el negro (admitiendo toda la gama de colores intermedia) que luego se traduce a números en los cuales el
negro es
0 y el
blanco es
1, teniendo como decimales los colores intermedios. ¿Con que fin? Estos valores se utilizan para obtener resultados aleatorios, ya sea para un post-procesamiento de datos o simplemente vectores de aleatorización.
Arduino:
https://es.wikipedia.org/wiki/ArduinoMicroprocesadores:
https://es.wikipedia.org/wiki/Microprocesador