Skip to main content

Necesitamos una red neuronal!

Martín es uno de los expertos mundiales en redes neuronales. La especialidad de su postgrado era inteligencia artificial, la tesis de sus master fue algoritmos genéticos y la disertación de su doctorado trataba de programación evolutiva. Este extenso currículo le abrió un amplio rango de posibilidades en su carrera, desde profesor en una universidad a…, profesor en otra universidad. Cuando alguien fuera del campo académico necesitaba su experiencia para algún proyecto, aprovechaba la oportunidad de inmediato.

La compañía que quería contratar a Martín era una pequeña firma que desarrollaba y mantenía el software utilizado por la empresa estatal de aguas. Acababan de firmar un contrato para revisar y mejorar una parte del sistema que no funcionaba debidamente. Pensaban que la implementación de una red neuronal seria la solución óptima.

En la primera entrevista Martín les comentó que una red neuronal no era la herramienta apropiada para lidiar con el problema, que era aconsejable utilizar una solución más tradicional. La gerencia de la empresa no estaba de acuerdo. Si no fuera porque iba a recibir un salario tan interesante a cambio, habría reconocido esa postura como una señal de aviso.

Durante las primeras semanas del proyecto, Martín analizó el sistema en funcionamiento y sus procesos. Las sedes de control de aguas de cada zona enviaban datos en una gran diversidad de formatos distintos al servidor central de proceso. Los datos se almacenaban en una base de datos temporal y eran posteriormente estandarizados y almacenados en otra base de datos donde se generaban los informes semanales.

La gerencia deseaba implementar una red neuronal que aprendería cómo analizar y estandarizar la información recibida de las sedes, de esta manera se podría liberar a los técnicos de realizar esta función.

Armado con todos los detalles del proceso, Martín les explicó que era una mala idea: “Las redes neuronales no fueron diseñadas para realizar estas tareas…, una red neuronal necesitaría mucho tiempo de entrenamiento para acabar obteniendo resultados mediocres. Una aplicación típica podría ser desarrollada en una fracción del tiempo necesario y realizaría el trabajo mucho mejor”. La gerencia discrepó. Insistieron que las neuronales eran la nueva moda y que los habían contratado para “renovar” el sistema, estaban decididos a seguir adelante con su idea. A regañadientes accedió y empezó a diseñar el nuevo sistema.

Se tendría que programar una gran variedad de redes neuronales para tratar cada tipo de datos, un servidor para controlar las actividades de las redes, se necesitaría un intenso aprendizaje para todas las redes, y una encapsulación alrededor de cada red para permitir reajustes y cambios una vez que fuera entrenada completamente.

Martín les explicó el lío que supondría poner todo eso en funcionamiento e intentó de nuevo convencerles para que adoptaran un método tradicional, mucho más lógico. Se negaron de nuevo, no hubo más remedio que comenzar con el desarrollo.

Casi un año más después, el sistema estaba finalizado. Y era horrible. Requería un cluster de servidores para que el análisis funcionara, producía y ejecutaba código realmente feo y lento, consumía una cantidad impensable de recursos, y necesitaba por lo menos de una semana de entrenamiento para cada nodo. Pero funcionaba.

Antes de volver de nuevo a la universidad, Martín intentó por última vez convencerlos, pero no hubo manera.

Pasaron tres años, y la firma de programación fue comprada y el equipo de gerencia se renovó. El nuevo gerente al ver aquel diseño tan excéntrico, se puso en contacto con Martín y le pidió explicaciones. Le explicó lo que había ocurrido e incluso remitió al nuevo gerente el esbozo de proyecto que había intentado presentar basado en la solución tradicional. El nuevo gerente estaba más que satisfecho con su esbozo y contrató a Martín de nuevo para desarrollar la solución tradicional.

Algunas semanas más adelante la nueva solución funcionaba en un sólo servidor y podía calcular, alertar y divulgar toda la información en un plazo de dos minutos.

No deseando lanzar a la basura varios cientos de miles de Euros, el nuevo gerente decidió reutilizar la monstruosa red neuronal de alguna manera: Se utilizaría para generar los boletines mensuales de la compañía. Los desarrolladores tuvieron que entrenar la red durante días para que aprendiera a generar frases completas a partir de la información resumida de los informes semanales, generando así el deseado boletín mensual.

Lo que sigue es una de sus creaciones más recientes:
“El cerdo va. Ir está a la fuente. El cerdo puso el pie. Ronco. ¿Pie en qué? Salsa de tomate. La paloma vuela. La mosca está en cielo. La gota de la paloma algo. Algo en el cerdo. El cerdo que disgusta. El traqueteo del cerdo. Traqueteo con la paloma. La paloma enojada. La licencia del cerdo. El producto de la paloma. El producto es ala de pollo. Con la corteza del ala. Ningún Quack.”

¿Parece quizás algo Zen, verdad?


Adaptación de thedailywtf.com

Comments

Popular posts from this blog

Programando un algoritmo de flocking / manada

Hace tiempo me interesé por los algoritmos de flocking o movimientos de manada. Esto pude sonar a chino, pero simplemente se trata de tratar emular los movimientos en conjunto de los pajaros, bancos de peces, ovejas…, vamos, cualquier conjunto de animales en movimiento. Las reglas de movimiento, a pesar de que puedan parecer complejas a simple vista, estan basadas sólo en tres simples leyes: Repulsión : Intentar no chocar con los compañeros. Alineamiento : Avanzar en una dirección semejante a la de tus compañeros. Cohesión : Acercarse hacia el centro del grupo. De la media de estos valores se extrae el vector director de cada individuo. VectorDirector = (Repulsión + Alineamiento + Cohesión)/3 Pues con esta idea intenté ayer programar una pequeña demo para implementarlo. Aquí os pongo un video de como esta quedando. Aún quedan por retocar varias cosas ya que algunas reglas no las estoy aplicando estrictamente. La parte más importante que no esta implementada es el

Himno de Teleco

Himno de la carrera de ingeniería de Telecomunicaciones, al más puro estilo Dragon Ball. Para echarte unas risas. Aviso de antemano: el humor de la canción está dirigido exclusivamente a estudiantes de Telecomunicaciones, ingenieros de ídem o a cualquiera que tenga unos conocimientos básicos (universitarios) sobre señales y sistemas. Vamos con Payán, todos a la vez a buscar con ahínco un sistema de transmisión. Sin duda será, convencido estoy, lineal, invariante y sin distorsión. Este mundo es como un filtro ideal donde hay escondido un suspenso en él. Como un filtro multicolor con un cero de transmisión, como una variable aleatoria con toda su gran inversión, el proceso empieza ahora, ¡vamos a filtrar, filtrar, filtrar, filtrar, filtrar! Hallaremos su covarianza y también su correlación, con la respuesta al impulso hallaremos convolución, el filtro sin distorsión será al fin nuestro, oh. Integrémoslo por Fourier, unidos a Gauss no hay que temer pues tenemos el DSP, ¡que no sirve p

Be a pointer, my friend

Empty your memory, with a free()… like a pointer! If you cast a pointer to a integer, it becomes the integer... if you cast a pointer to a struct, it becomes the struct... The pointer can crash..., and can Overflow… Be a pointer, my friend...