¿Puedes entrenar una red neuronal para convertir pseudocódigo arbitrario en código fuente canónico?

Los detalles de la pregunta no comprenden cómo funcionan las redes neuronales.

Quizás lo que se quiere decir es “¿podría un algoritmo avanzado de IA de caja negra de algún tipo convertir el seudocódigo ‘arbitrario’ en código fuente ‘correcto’?

La respuesta es “tal vez”.

Cuando estudiaba informática en Harvard, había una broma que decía a los nuevos estudiantes que el intérprete de LISP tenía un comando secreto “dwim”, donde “dwim” significaba “haz lo que quiero decir”.

Y esto llega al corazón del problema.

Un programa de computadora, ya sea pseudocódigo o código compilable, es una expresión precisa de la intención del programador. Un programa de computadora es tan preciso que no queda ninguna ambigüedad importante, que es lo que asegura que la computadora hará lo correcto en todas las circunstancias.

Así que aquí está la pregunta: ¿es su pseudocódigo “arbitrario” inequívoco en lo que se pretende? ¿Tendrían dos científicos informáticos inteligentes la misma comprensión de lo que tenían en mente?

Si la respuesta a esta pregunta es , entonces la respuesta también es afirmativa de que un algoritmo de IA también podría hacer esto. Python es un lenguaje que intenta hacer esto, por ejemplo, interpretando algo muy cercano al pseudocódigo de manera precisa, pero uno podría imaginar algo más flexible y similar al lenguaje natural.

Quizás, sin embargo, se está preguntando: “¿podría una IA tomar mi pseudocódigo mal pensado a medias y convertirlo en algo correcto y preciso resolviendo ambigüedades que no sabía que estaban allí?”

La respuesta a esta pregunta es “quizás”. Un programa de IA podría convertir su pseudocódigo ambiguo en un programa preciso que haría algo. ¿Pero haría lo que tenía en mente? Tal vez o tal vez no, porque sus intenciones pueden no haber sido claras.

Absolutamente, esto podría considerarse como un trabajo de “traducción”. Se puede usar una red LSTM para traducir pseudocódigo en código fuente. Pero algunos podrían argumentar que el uso de redes neuronales para esta aplicación podría no ser una buena opción ya que los lenguajes de programación, a diferencia de los lenguajes naturales, tienen reglas estrictas y el incumplimiento de las reglas puede provocar errores de compilación. Las redes neuronales están diseñadas para capturar la funcionalidad de las aplicaciones que no se pueden capturar mediante la programación basada en reglas.

Puede entrenar una red neuronal de suficiente complejidad para cualquier cosa que esté abierta a ser captada por la inteligencia. Tenga en cuenta que la inteligencia prospera al reducir los datos entrantes a patrones y abstracciones. Cuando no hay patrones recurrentes (por ejemplo, datos aleatorios), no se puede hacer mucho.

Sin ofender, pero la redacción de la pregunta es demasiado vaga y tal vez muestra un malentendido de la palabra ‘entender’.
Si quisiste decir con eso, comprende el significado de un pseudocódigo, bueno, los NN son solo reconocedores de patrones. No ‘entienden’ nada, solo pueden decir si algo se parece a algo en lo que se entrenaron. Eso por sí mismo no es comprensión.

No se puede entrenar una red neuronal para ‘entender’ nada. Pueden ser entrenados para predecir salidas dadas entradas.

Un RNN con datos de entrenamiento de una lista de psuedocode como entrada, y un código de python equivalente como salida, probablemente podría entrenarse para generar código de python que represente un pseudocódigo nuevo con cierta precisión razonable (suponiendo que la profundidad de la función no sea demasiado grande).

More Interesting

¿Cómo funcionan los chatbots?

Hay tantas tecnologías disruptivas al mismo tiempo, ¿qué hará su efecto combinado en la sociedad?

¿Es el aprendizaje profundo 'IA real'?

Si una IA sería miles de veces más inteligente que nosotros, ¿por qué nos molestaría dañarnos?

¿Dónde está el mejor lugar para comenzar a investigar el aprendizaje automático en inteligencia artificial?

¿Cómo crearías una IA que pueda pasar por alto la verificación de Google "No soy un robot"?

¿Cuál es la diferencia entre una red de creencias profundas (DBN) y una red neuronal recurrente (RNN)?

Si los humanos pudieran aprender a copiar nuestra conciencia e incrustarla en una máquina, como un Transformador, ¿estarías dispuesto?

¿Por qué las construcciones artificiales que son estados-nación son buenas o malas para la sociedad, nuestro futuro y los humanos en general?

¿Cómo puede una computadora predecir el acento que uno escucharía de alguien cuyo idioma nativo es A cuando habla un segundo idioma B?

¿Es mentalmente saludable permitir que los niños jueguen con juegos artificialmente inteligentes y osos de peluche que interactúan con ellos?

¿Cuál es el método de búsqueda adversarial?

¿Qué pasaría si estallara una guerra entre humanos y robots en el año 2100?

¿Cuál es la diferencia práctica entre clasificación, aprendizaje estadístico y reconocimiento de patrones en ML según los criterios de codificación?

Si la sociedad tiene la capacidad de crear robots humanos, eficientes, poderosos e inteligentes en Westworld, ¿por qué se usan solo para un parque temático?