¿Cuál es el lenguaje de codificación más recomendado para crear IA humana completa?

Programa mis teorías de AGI en Haskell. ¿Por qué?

Los lemas de algunos lenguajes de programación son: “C está diseñado para un alto rendimiento”. “Java está diseñado para aplicaciones multiplataforma”. “Lisp está diseñado para la metaprogramación”. El lema de Haskell es: “Haskell está diseñado para problemas difíciles”. Los sistemas de IA son problemas difíciles.

Me gusta Haskell debido a su pureza, velocidad relativamente buena, falta de errores, paralelismo, concurrencia múltiple segura, sistema de tipo rico, tipos de datos algebraicos generalizados (GADT), facilidades de metaprogramación, lenguajes específicos de dominio (DSL) y matemáticas abstractas. Además, ghci es bueno. La pureza funcional y el fuerte tipeo estático de Haskell garantizan que nuestro código AI funcionará de maravilla en la primera ejecución, a menos que tengamos algún error lógico o matemático en nuestro modelo matemático de inteligencia artificial.

Además, los sistemas modernos de IA se basan en redes altamente multidimensionales que aprenden patrones, autoorganizan el conocimiento y aprovechan la experiencia en tiempo real. Eso crea muchos problemas de concurrencia múltiple que son un verdadero dolor de cabeza para depurar en lenguajes de programación imperativos con estado.

En Haskell, en su lugar, definimos las estructuras de datos y los estados evolucionan a través de asignaciones de direcciones de memoria anteriores a diferentes direcciones de memoria. De esa manera, los problemas de concurrencia simplemente no existen. El estado evoluciona de una variable a una variable diferente. No hay direcciones de memoria compartida como C o Java.

Hoy en día, los sistemas de inteligencia artificial DEBEN ser adaptativos, metaprogramables, versátiles y capaces de aprender de big data. Tales características solo se logran mediante redes con estado, entrelazadas y holísticas. Los sistemas de inteligencia artificial DEBEN tratar y aprender de sistemas complejos. Cuando los sistemas y sus datos son complejos, se vuelven difíciles de depurar y, por lo tanto, necesitamos programar en lenguajes de programación puramente funcionales como Haskell que prometen producir código elegante que funcione la primera vez que se ejecute. Esta pregunta surge:

¿Cómo programar redes AI (gráficas) con estado y entrelazadas en lenguajes de programación sin estado y modulares como Haskell (árboles)?
https://www.facebook.com/notes/j…

Lisp no es el “más recomendado” en el sentido de ser automáticamente el mejor, pero es probable que sea el lenguaje más utilizado para mucha investigación de IA, especialmente el trabajo académico.

El “mejor” lenguaje será el disponible en su plataforma, el más adecuado para su problema, y ​​con las mejores o más BIBLIOTECAS disponibles para resolver muchos aspectos de su problema.

Es bastante probable que C ++ sea la mejor opción para las redes neuronales, no para la función absoluta del lenguaje sino porque probablemente haya más bibliotecas y códigos de muestra existentes.

Alguna IA simbólica se realizó en Prolog (especialmente en muchos sistemas expertos), o nuevamente en Lisp. Los idiomas como Haskell, etc., pueden estar compartiendo algo de mentalidad hoy.

¿Cuál es tu problema? (es decir, ¿qué debe hacer el programa?)

¿A dónde debe correr? (Windows, Linux, ????)

¿Con qué otros programas e idiomas debe interactuar? (por ejemplo, ¿Un juego existente escrito en C o PHP o Ruby o lo que sea?)

Estas preguntas y otras preguntas similares de contexto limitarán o dirigirán la respuesta a la elección adecuada.

El artículo de Wikipedia sobre IA no parece incluir una SOLA referencia directa a Lisp, C ++, Haskell o cualquier otro lenguaje de programación en particular.

Contiene un enlace a la Lista de lenguajes de programación para inteligencia artificial, pero este artículo es un simple ‘trozo’ y parece lamentablemente incompleto o desactualizado.


Hierba

Podría decirse que esto puede responderse de manera simple y sucinta de dos maneras.

A. Python: este lenguaje contiene muchas abstracciones que simplifican la tarea monumental de diseñar IA de todos los niveles. Además de las abstracciones generales, Python tiene muchas bibliotecas escritas específicamente para construir marcos destinados a formular IA, así como las implementaciones de muchos sistemas / algoritmos de aprendizaje automático bien conocidos.

B. Una IA general será, según la mayoría de las evaluaciones de su forma y funciones propuestas, agnóstica del lenguaje. En cambio, es muy probable que incluso la arquitectura tenga poca relación con la implementación final de una IA.

Puede ser mejor pensar cómo se estructurará una IA como un estilo de programación en lugar de un lenguaje. La programación orientada a objetos fue un gran avance en el desarrollo, permitiendo que coexistiera la enorme diversidad que se ve en el mundo de la programación. No es un formato, lenguaje o gramática diferente, es una forma fundamentalmente diferente de pensar sobre los problemas, y aún no hemos alcanzado esa nueva visión del pensamiento.

La IA compleja a nivel humano requerirá una gran base de conocimiento de muchos terabytes y una gran cantidad de potencia de procesamiento distribuida en una gran cantidad de procesadores y computadoras. Por lo tanto, el lenguaje debe admitir informática extremadamente distribuida, multihilo, codificación segura (funcional) y un modelo de memoria extremadamente grande listo para usar. Una IA tan sofisticada probablemente también necesite generar código para extenderse y extender dinámicamente su modelo de datos cuando surja la necesidad. Aunque no cumple con todos estos requisitos sin extensiones, diría que Scala es uno de los más cercanos en este momento.

Habrá muchos idiomas involucrados, y como se señaló, algunos de los cuales aún no se han creado. Lisp fue una vez el idioma dominante en IA, pero muchos otros idiomas ahora tienen casi todas las capacidades específicas de AI de Lisp.

La IA actual puede ser y está codificada en casi cualquier lenguaje moderno. La IA humana probablemente sea algo diferente. El término Inteligencia Artificial General (AGI) es la lengua vernácula actual para la IA de tipo humano. Esto también diferencia el AGI de los sistemas expertos, algunos de los cuales ya son mucho mejores en su especialidad que los humanos.

Los lenguajes de modelado de alto nivel, como Octave, se utilizan para desarrollar y probar los algoritmos. Una vez probados y refinados, los algoritmos se vuelven a codificar en un lenguaje de nivel inferior, como C, para mejorar la eficiencia. Sospecho que se desarrollará un lenguaje de nivel de ensamblador aún más bajo para mejorar aún más la eficiencia y habilitar capacidades únicas de AGI.

Además, habrá una multitud de idiomas utilizados para crear y mantener los corpus y otros elementos a los que recurrirá un motor AGI central. Algunos de estos bits ya han aparecido y madurarán al nivel necesario para AGI.

Es como preguntar de qué color debes pintar un reactor de fusión en frío.

No importa porque no tenemos idea de cómo construir uno.

No tenemos idea de cómo replicar la inteligencia humana. Todos los lenguajes de programación son “isomórficos para el cálculo lambda” (lo mismo en esencia).

No podemos construir una mente, o facsímil, en ninguno de ellos.

ADN Está de moda, o eso me han dicho.

CUDA


Si suponemos que cualquier IA humana se basará en una red neuronal autoorganizada, entonces necesitaremos mucha potencia para ejecutar todas esas neuronas.

La forma más eficiente de hacerlo en este momento es ejecutar la red en una GPU. Donde podemos representar una gran variedad de elementos individuales y cada uno recibe efectivamente su propio procesador simple, todo en paralelo.

Las primeras pruebas de redes basadas en GPU están obteniendo algunos resultados impresionantes.

La mayoría de las respuestas para lenguajes específicos son bastante buenas, pero no olvides que para obtener ese tipo de potencia, el programa sin duda tendrá que ejecutarse en una máquina paralela masiva. Eso significa que necesitará algún tipo de software de mensajería o vectorización, como la interfaz de paso de mensajes (MPI) o OpenMP o, al menos, un compilador / intérprete diseñado para aprovechar múltiples núcleos. Estos no son idiomas per se, sino extensiones a idiomas existentes, en el primer caso una biblioteca y en el segundo caso un conjunto de directivas de compilación.

Bien,

No podría estar de acuerdo en lo que podría ser inteligencia …
Y a menudo, para mí, es solo un aspecto anexo aleatorio de un personaje que lo hace “inteligente”. En este caso, es solo una mezcla de juego engañoso y farol y póker de un conjunto de reglas predicativas …

Entonces, cualquier cosa que haga una ilusión sería lo suficientemente buena.

Un buen lenguaje de propósito general sería lo suficientemente bueno para implementar AI de propósito general. Por lo tanto, OCaml, Haskell, Scala, quizás F #.

Un programa muy complejo, como una IA humana, probablemente involucraría la computación cuántica, por lo que probablemente debería consultar los lenguajes de programación cuántica disponibles, como Q Language (basado en C ++) y Quipper (basado en Haskell).

Creo que el mejor idioma sería el “inglés”. No tiene que construir todo el sistema en 1 lenguaje de programación. En la mitad de la evolución, el lenguaje natural puede asumir la tarea de “programar el sistema”.

Creo que no se trata del lenguaje sino de la arquitectura. Si desea implementar todo el sistema en un idioma, sugeriría C / C ++ con python.

Microsoft Visual Basic si escuchaste de él

More Interesting

¿Cuál es la forma más rentable de producir Inteligencia general artificial (AGI o IA general)?

En el aprendizaje automático, ¿cuál es la diferencia entre los términos aprendizaje de transferencia, aprendizaje multitarea, transferencia inductiva, metaaprendizaje y aprendizaje para aprender?

Si creamos 1000 robots verdaderamente pensantes y los dejamos en otro planeta y los revisamos después de 50 años, ¿qué veremos?

¿En qué lenguaje de código fueron creados los sistemas de inteligencia artificial como Watson, Cortana y Siri?

¿Hay alguna aplicación de aprendizaje automático en un RTOS y viceversa?

¿Es la aplicación asesina de Duolingo realmente un corrector gramatical?

¿Tienes miedo de la IA?

¿Cómo crees que es la IA de Dota 2 que se muestra en TI7?

¿Qué tan similar / diferente es la oferta de edX Inteligencia Artificial CS 188 en comparación con la oferta en el campus de UC Berkeley? ¿Es todo el curso o solo una parte de él en edX?

¿Cuáles son los pros y los contras de la IA?

¿Cuáles son algunas aplicaciones interesantes del aprendizaje profundo?

¿Los sitios web necesitan un algoritmo de aprendizaje automático?

¿Cuál es el problema de 'morir ReLU' en las redes neuronales?

¿Qué evidencia hay de que AI algún día podrá aprender a codificar, mejorar nuestro código, probar nuestro código y evolucionar hacia la automatización de la codificación?

¿Es posible convertir un documento electrónico (en lenguaje natural) en una representación comprensible de la máquina?