¿Cuál es el mejor lenguaje de programación para proyectos de Inteligencia Artificial?

Permítanme primero desviarme un poco del tema. Prometo que volveré …

Casi todas las preguntas de “cuál es el mejor lenguaje de programación …” que he encontrado tienen en mi humilde opinión una respuesta simple: la que tiene las mejores bibliotecas y la comunidad . ¿Por qué? Porque todos los programadores (algo) experimentados saben que las diferencias en los paradigmas de programación, sintaxis, recolección de basura, tipeo estático o dinámico no tienen importancia. Un buen lenguaje de programación no es bueno porque tiene puntos (.) O flechas (->) o herencia simple o tipeo estático. Es por el ecosistema , y por ecosistema me refiero a las herramientas que mejoran la experiencia de programación y realmente lo hacen productivo: como buenos IDE, linters, documentación y, por supuesto, cosas que ya están hechas , y simplemente puede usar, es decir, bibliotecas . La mejor solución para un problema de programación es “oh … ¡Encontré este código en línea y hace lo que quiero!”. Y luego aquí entra la parte de la comunidad , porque, si un lenguaje / tecnología de programación tiene una buena comunidad, eventualmente desarrollará excelentes bibliotecas, herramientas, documentación e incluso personas dispuestas a ayudarlo de forma gratuita.

Entonces, volviendo a la pregunta original, me gustaría reformularla: ¿Qué lenguaje de programación tiene las mejores bibliotecas y comunidad para hacer IA? Al tratarse de una pregunta subjetiva, solo puede recibir una respuesta subjetiva, así que tenga en cuenta que esta es solo mi opinión , pero personalmente recomendaría Python .

Python tiene muy buenas herramientas básicas (numpy, scipy, matplotlib) para computación científica, además de algunas bibliotecas de aprendizaje automático increíbles: nltk, sklearn, tensorflow y una comunidad próspera en el sector de IA. Personalmente uso Python para casi toda mi investigación relacionada con la IA, excepto en los casos en que me veo obligado a un entorno diferente debido a código o herramientas preexistentes. Esto no quiere decir que no haya alternativas, pero hasta ahora he encontrado Python bastante cómodo y productivo para estas tareas.

Pero, por supuesto, como con cualquier otra respuesta sobre “cuál es el mejor lenguaje de programación …” Tengo que terminar con: pero si realmente quieres abordar los problemas más difíciles, al final tendrás que morir con el viejo C / C ++. Sin embargo, este es solo el caso si está implementando el núcleo de algunos algoritmos o sistemas. La mayoría de las veces está utilizando bibliotecas y herramientas escritas en C / C ++ (todo lo anterior que menciono tiene su funcionalidad principal en C / C ++), y además agrega una capa de comportamiento personalizado. Para estos casos de uso, creo que Python es una de las mejores opciones en este momento.

Para desarrollar un proyecto de inteligencia artificial (inteligencia artificial), debe usar los siguientes lenguajes de programación.

Estos son los 5 lenguajes de programación principales para crear soluciones de inteligencia artificial :

1. Python:

Uno de los principales lenguajes utilizados para desarrollar proyectos de IA es Python, que se debe a su simplicidad y comportamiento de codificación fácil, y se usa especialmente en startups relacionadas con la salud que involucran IA.

Las mejores características de Python :

  • Versiones prácticas de bibliotecas. (Tensorflow, numpy, VTK, AI simple)
  • Bibliotecas de código abierto. (Numpy, Matplotlib)
  • Gran marco. (scikit-learn)
  • Creación de prototipos y creación de aplicaciones sin esfuerzo.
  • Fácil de aprender.
  • Fuente abierta.
  • Programación modular.
  • Prueba rápida

2. Prólogo

La razón por la que se prefiere Prolog para las soluciones de IA es que gira en torno a un conjunto dedicado de mecanismos que consiste en un marco de programación pequeño, flexible pero bien construido.

Las mejores características de Prolog:

  • Desarrollo basado en la lógica.
  • Implementación experta del sistema.
  • Fácil implementación de reglas.
  • La coincidencia de patrones.
  • Soporta retroceso.
  • Mecanismo de manejo de listas.

3. JAVA

Java se encuentra entre los cinco primeros debido a su familiaridad y características fáciles de usar. Este lenguaje OOP permite una fácil codificación de algoritmos que cubre la mayor parte de la IA.

Las mejores características de JAVA:

  • Bibliotecas fuertes. (Weka, Mahout)
  • Facilidad de uso.
  • Escalabilidad.
  • Recogida de basura incorporada.
  • La interacción del usuario.
  • Rápido.

4. C ++

La razón por la que se usa C ++ en las soluciones de IA es su velocidad; Es probablemente el idioma más rápido de todos. Por lo tanto, siempre que la velocidad sea la principal preocupación de cualquier desarrollador de IA, se opta por C ++.

Las mejores características de C ++:

  • Velocidad.
  • Fácil de aprender.
  • Implementaciones del mundo real.
  • Algoritmos genéticos
  • Implementaciones de redes neuronales.
  • Sistemas de misión crítica

5. LISP

LISP (procesamiento de listas) es ese lenguaje de alto nivel que impresiona bastante a los desarrolladores de inteligencia artificial y también se ha utilizado en muchos proyectos clásicos de inteligencia artificial.

Las mejores características de LISP:

  • Soporta programación simbólica.
  • Recolección de basura
  • Uniformidad de sintaxis.
  • Extensible.
  • Creación rápida de prototipos.
  • Traducciones automáticas.
  • Gran herramienta de prototipos

Si desea desarrollar aplicaciones de inteligencia artificial (IA), puede enviarnos un correo electrónico a [correo electrónico protegido] o llámenos al +1 201-793-8324 , +44 117 2308324 , +61 280 909 320 o visite en Techtic Solutions .

Python es uno de los mejores lenguajes que encontré para trabajar en proyectos de IA. El código sencillo y limpio, escrito libremente, ahorra mucho tiempo de ridiculizarse en el manejo de problemas de compilación y más bien se enfoca en su problema real. Junto con eso, la comunidad de Python ha desarrollado muchas bibliotecas y extensiones para manejar fácilmente las tareas más comunes utilizadas en proyectos de inteligencia artificial como trazar gráficos, procesar datos, etc. También hay paquetes disponibles para casi todos los componentes de IA, desde redes bayesianas hasta redes neuronales artificiales.

Algunos de los paquetes útiles en python:

Numpy (Una biblioteca de computación científica): @NumPy – Numpy
Scypy (Computación avanzada): @ SciPy.org – SciPy.org
Pybrain (Aprendizaje automático en python): @PyBrain

Alternativamente, creo que JAVA también es un lenguaje fuerte para las tareas de IA con un buen soporte de la comunidad, pero la longitud del código y la complejidad es intimidante.

Al igual que en toda la informática, el mejor lenguaje de programación es el que mejor cumple con sus requisitos. Considera tu espacio problemático. ¿Tendrá acceso a una configuración en la nube? ¿Estás analizando datos abstractos? ¿Se requiere retroalimentación en tiempo real cuando sus algoritmos presentan una respuesta?

Si no está demasiado preocupado por la velocidad del rayo, la toma de decisiones en tiempo real y el manejo de una gran cantidad de datos abstractos como texto o estadísticas no estructurados, Python, C # y Java son mejores porque todos tienen bibliotecas para redes neuronales artificiales, puede ser se inicia fácilmente en Azure / AWS, y le brindan la flexibilidad de traducir sus resultados en conjuntos de aplicaciones completos.

Pero para los sistemas de misión crítica como la robótica o la industria aeroespacial, es realmente difícil equivocarse con C ++, aunque es posible que deba invertir algo de tiempo y esfuerzo en optimizarlo para obtener los mejores resultados.

La mejor respuesta a menudo depende de los requisitos para el proyecto de IA. ¿Te estás haciendo pasar por la inteligencia humana? ¿Agrupando grandes conjuntos de datos? Categorizando?

A algunas personas con las que trabajo les gusta usar R y Python para la regresión, el árbol de decisiones, las neuronas y el análisis aleatorio de bosques. Son rápidos y fáciles de cargar y usar. Tomamos R Studio y lo vinculamos directamente a los datos en SQL o Mongo.

Cuando escribí una herramienta de comunicación anterior a Siri que podía activar funciones externas, utilicé PHP, ya que quería que la herramienta de comunicación estuviera habilitada en la web (y mecanografiada débilmente).

En Ford, están realizando tareas de aprendizaje automático con CUDA para aprovechar el procesamiento paralelo.

Mi buen amigo construyó una empresa con un motor JAVA para su herramienta que realiza una lógica difusa en los datos de todas las diferentes fuentes para determinar correlaciones y conexiones que no son apropiadas. Ahora, cuando intentamos introducir datos en su sistema, los sistemas de transformación de datos comerciales / XML costaban entre $ 50 y $ 100K, así que escribimos el nuestro en Groovy / Grails – XML ​​Slurper !!!. ¡No vas a escribir esa pieza de integración del rompecabezas de datos en LISP (aunque LISP puede estar bien para descubrir la respuesta)!

Yo mismo, me parece que algún día me gustaría tener tiempo para sentarme y diseñar una herramienta gráfica de programación de IA que incorpore un motor basado en reglas. Me gusta la idea de tener un control gráfico completo sobre mis árboles y reglas para hacer un juicio. Las decisiones de codificación manual toman demasiado tiempo … y permitir que el sistema ejecute atributos y determine reglas que no pueden revisarse en un modo gráfico a menudo produce malos resultados. Piense en que un sistema devuelva un valor que tenga un gran resultado pero que no le muestre el proceso de decisión, y luego vuelva a ejecutarlo y obtenga un resultado diferente porque el sistema cambió su proceso de decisión. Quiero ver el proceso de decisión cada vez.

Obviamente, el juego final es para que el sistema brinde retroalimentación externa y ajuste las reglas sin mi intervención … pero quiero ayudar con la enseñanza y establecer algunas reglas. C ++ o JAVA pueden ser una buena herramienta para diseñar esto. Sin embargo, ¡realmente depende de quién me ayude con un proyecto en particular y con qué tengo que sobornarlos!

No solo un idioma es lo mejor para la IA, sino los tres niveles de idioma que generalmente necesita.

  1. Nivel de lenguaje básico, es decir, ensamblado y otras rutinas eficientes de hardware, que también incluyen el uso de GPU y potencia FPGA. Esto cubrirá algoritmos cruciales y puede hacerlo al menos 5 veces más rápido que en el siguiente nivel.
  2. Nivel de lenguaje del compilador, generalmente “C”, donde se hace una mierda y donde se implementan los algoritmos más grandes en general. Con acceso a subrutinas muy eficientes en ensamblaje o hardware, obtienes una forma casi óptima de procesar datos. Todo lo que haces aquí es al menos 5 veces más rápido que el siguiente nivel, a menudo obtienes factor 200 o hasta factor 10k. No hagas ningún trabajo real en el siguiente nivel.
  3. El nivel de script, que generalmente es cualquier HLL, pero un script simple y eficiente como Lua incluso funcionaría. A veces encontrará aquí el nivel de base de datos o incluso el uso de lenguajes prototipo como Prolog o Python. Este último tiene el gran peligro de que su monstruo HLL limitado promedio comience a hacer cosas en ese script y con eso se desperdicie como el factor 200 de su hardware disponible.
    Pero el nivel del guión es importante. Debe poder cambiar el flujo de datos y la configuración de la programación de sus algoritmos desde este nivel, sin la necesidad de volver a compilarlo.
    Un lenguaje prototipo como Prolog o Python es peligroso, porque las personas tienden a permanecer en este nivel y no mueven sus algoritmos centrales en el segundo nivel.
    Pero a menudo verá Lua y los idiomas de la base de datos aquí.
    Si bien el uso de lenguajes de bases de datos es uno de los límites de los sistemas actuales de IA. Esos idiomas suelen ser tan lentos que no deben usarse para esto. El flujo de datos dentro de los procesos de IA es tan alto que debe mantener los datos en movimiento. No puedes esperar a que una base haga lo suyo. Tal vez Sqlite sea una solución, porque con eso está acercando el lenguaje L3 al núcleo L2.

En general, no es un solo idioma. E incluso en cada uno de esos tres niveles, lo más probable es que use no solo un idioma sino algunos. Como Assembly y Cuda u OpenCL en L1, quizás Verilog para la implementación de hardware de algunas de las redes.

No existe un único “lenguaje AI”, somos ingenieros y tenemos una caja de herramientas. Necesitamos todo lo que hay para poder hacer lo nuestro. Y no solo el destornillador e intenta clavar los clavos en las paredes con eso.

Hay un lugar donde se debe usar HLL en esos niveles y si lo estás usando en exceso, arruinarás tu proyecto. Y la mayoría de las veces no se trata solo de un programa, sino de muchos programas que trabajan juntos. Y si comienzas a hacer el trabajo de secuencias de comandos con tu lenguaje central, también arruinarás tu sistema. Porque tiene que recompilar todo solo porque hizo un pequeño cambio o cambió la configuración.

Lo mismo es cierto para el nivel 1 de metal desnudo.

El nivel HLL debe ser expandible por el nivel central. Como es posible con Lua y como fue al comienzo de la era de los scripts. Con Basic, con Rexx, con Perl. Todos esos idiomas eran expandibles y siempre podía agregarles nuevas funcionalidades al escribir funciones en un idioma central.

El uso de HLL hoy en día es muy decadente. ¿Mostrarme cómo expandir Python con una rutina o paquete de lenguaje central? Eso es muy complicado de hacer, si es posible. “Escribir HLL en HLL” es el credo desde, eh, desde que la gente de Lisp se hizo cargo de su credo tóxico y envenenó el mundo de la programación con esta mierda.

Perezoso.

Llamo a esto perezoso, ser tan inflexible para dejar un nivel y avanzar en el nivel correcto de implementación. Y quédese en ese nivel como un roble en la tormenta. Por lo general, el árbol se astilla y alimenta a los gusanos cuando termina la tormenta. Es una buena forma de morir de un roble: la inflexibilidad.

Tienes que moverte sobre esos tres niveles. Cualesquiera idiomas que elija utilizar. Pero siempre, realmente siempre, sea flexible y elija un idioma que tenga una interfaz fluida, fácil y ampliable al siguiente nivel de idiomas, hacia arriba y hacia abajo.

Siempre elija un idioma que juegue bien con los otros niños y que pueda escalar la jerarquía. Ejemplo negativo: C ++ no funciona bien. No puedes vincular C ++ a nada. Solo hasta C. La única forma de subir es a través de conexiones de socket o algo así. Y eso es malo. No juega bien con los otros niños.

Ese es mi consejo. Tiene diferentes problemas en la IA y con diferentes problemas es posible que desee diferentes idiomas para describirlos. Asegúrese de que esos idiomas cooperen bien entre sí. Si no lo hacen: no los uses.

No es un problema de un nivel.

Aquí nos fijamos en los cinco mejores lenguajes de programación para el desarrollo de inteligencia artificial. Es un gran concepto, por lo que es muy difícil referirse a un solo lenguaje de programación.

Python : en inteligencia artificial, Python es uno de los lenguajes de programación más utilizados debido a su simplicidad. El uso principal es para algoritmos de IA y estructura de datos. Tiene muchas bibliotecas útiles que son útiles para el desarrollo de IA. Por ejemplo, para informática avanzada, se utiliza Skype. Para la capacidad de cálculo científico, se utiliza Numpy y para el aprendizaje automático. Hay toneladas de recursos disponibles en línea para AI usando Python.

Java : Java es un lenguaje de programación orientado a objetos, por lo que es una gran opción. Este lenguaje proporciona todas las funciones de alto nivel necesarias para trabajar en proyectos de IA. Ofrece recolección de basura incorporada, y es un lenguaje portátil. El punto a favor de la comunidad Java será alguien que lo ayudará con sus consultas y esfuerzo. AI está lleno del algoritmo, por lo que Java es la mejor opción, ya que proporciona una manera fácil de codificar buenos algoritmos. Puede desarrollar algoritmos como algoritmo de búsqueda, algoritmo de procesamiento de lenguaje natural o algoritmo neuronal. Java tiene la característica de escalabilidad que es mejor para proyectos de IA. Java todavía no es tan alto como Prolong y Lisp y no es más rápido que C.

Lisp : Lisp es el lenguaje de programación desarrollado entre las décadas de 1970 y 1980. Es un excelente lenguaje de programación utilizado en grandes proyectos de inteligencia artificial, como Macsyma, DART y CYC. Debido a sus mejores capacidades de creación de prototipos y su soporte para la expresión simbólica, Lisp se utiliza en el campo de la IA. Este lenguaje se usa en el subcampo Machine Learning / ILP debido a su usabilidad y estructura simbólica. Lisp es el mejor lenguaje de programación en el campo de la IA debido a sus mejores características. El lenguaje Lisp tiene una característica de recolección automática de basura con creación dinámica de un nuevo objeto. Lisp genera código eficiente con compiladores de desarrollo de pozos. Este lenguaje tiene un sistema macro que permite a los desarrolladores crear un nivel de abstracción específico del dominio sobre el cual construir el siguiente nivel. Debido a estas características, Lisp sobresale en comparación con otro idioma.

Prolog : Prolog es el excelente lenguaje de programación para la inteligencia artificial. Algunas características básicas de Prolog que son extremadamente útiles para la programación de IA. Ofrece un mecanismo de estructuración de datos basado en árboles, retroceso automático y coincidencia de patrones que combina estos mecanismos, lo que proporciona un marco flexible para trabajar con inteligencia artificial. En el sistema experto de AI Prolog se usa ampliamente para trabajar en proyectos médicos. A diferencia del lenguaje de programación tradicional, Prolog es un lenguaje de programación de alto nivel basado en la lógica formal. Es un lenguaje que realiza una secuencia de comandos y resuelve fórmulas lógicas. Como su programa consiste en una lista de hechos y reglas, está basado en reglas y en lenguaje declarativo.

C ++ : C ++ es el mejor lenguaje de programación orientado a objetos del mundo. Para el proyecto de IA de la época, C ++ sensible es extremadamente útil. Este lenguaje puede hablar a nivel de hardware y permite a los desarrolladores avanzar en el tiempo de ejecución de su programa. Para la técnica estadística de IA como la red neuronal, C ++ es el lenguaje preferido. El motor de búsqueda puede utilizar C ++ ampliamente. Los juegos en IA están codificados principalmente con C ++ para una rápida ejecución y tiempo de respuesta.

Resumen : antes de decidir un lenguaje de programación para inteligencia artificial, asegúrese de que pueda utilizarse no de forma parcial sino extensiva. Los servicios independientes están disponibles en todos estos lenguajes de programación. También preferir un lenguaje de programación para su proyecto de IA depende del subcampo. Python es conocido debido a su flexibilidad, C ++ y Java también son útiles debido a las mejores características que ofrecen. Lisp y Prolog siempre se utilizan ampliamente debido a sus características productivas.

Pitón

Python es uno de los lenguajes de programación más utilizados en el campo de la inteligencia artificial gracias a su simplicidad. Se puede usar sin problemas con las estructuras de datos y otros algoritmos de IA utilizados con frecuencia.

La elección de Python para proyectos de IA también se debe al hecho de que hay muchas bibliotecas útiles que se pueden usar en IA. Por ejemplo, Numpy ofrece capacidad de cálculo científico, Scypy para computación avanzada y Pybrain para aprendizaje automático en Python.

Tampoco tendrá problemas para aprender Python para AI, ya que hay toneladas de recursos disponibles en línea.

Java

Java también es una gran opción. Es un lenguaje de programación orientado a objetos que se enfoca en proporcionar todas las características de alto nivel necesarias para trabajar en proyectos de IA, es portátil y ofrece recolección de basura incorporada. La comunidad Java también es un punto a favor, ya que habrá alguien que lo ayudará con sus consultas y problemas.

Java también es una buena opción, ya que ofrece una manera fácil de codificar algoritmos, y la IA está llena de algoritmos, ya sean algoritmos de búsqueda, algoritmos de procesamiento de lenguaje natural o redes neuronales. Sin mencionar que Java también permite la escalabilidad, que es una característica imprescindible para proyectos de IA.

Ceceo

A Lisp le va bien en el campo de la IA debido a sus excelentes capacidades de creación de prototipos y su soporte para expresiones simbólicas. Es un lenguaje de programación potente y se utiliza en proyectos importantes de inteligencia artificial, como Macsyma, DART y CYC.

El lenguaje Lisp se usa principalmente en el subcampo Machine Learning / ILP debido a su usabilidad y estructura simbólica. Peter Norvig, el famoso informático que trabaja extensamente en el campo de la inteligencia artificial, y también el escritor del famoso libro de inteligencia artificial, “Inteligencia artificial: un enfoque moderno”, explica por qué Lisp es uno de los principales lenguajes de programación para la inteligencia artificial.

C ++

C ++ es el lenguaje de programación más rápido del mundo. Su capacidad de hablar a nivel de hardware permite a los desarrolladores mejorar el tiempo de ejecución de sus programas. C ++ es extremadamente útil para proyectos de IA, que son sensibles al tiempo. Los motores de búsqueda, por ejemplo, pueden utilizar C ++ ampliamente.

En AI, C ++ se puede usar para técnicas estadísticas de AI como las que se encuentran en las redes neuronales. Los algoritmos también se pueden escribir extensamente en C ++ para una ejecución rápida, y la IA en los juegos está codificada principalmente en C ++ para una ejecución y un tiempo de respuesta más rápidos.

En general, comprender su dominio de materia, lo que está tratando de lograr y su enfoque, debe venir bien antes de pensar qué idioma usar.

En el caso de la IA, esto se vuelve un poco más complicado:

Existe una gran superposición entre IA, ciencia cognitiva, neurociencia, lingüística computacional, ciencia de sistemas y matemáticas, básicamente intentos de modelar y reproducir varios comportamientos “inteligentes”.

Y, con ese fin, una gran cantidad de modelos han tomado la forma de lenguajes de computadora (por ejemplo, lenguajes de programación lógica, PLANIFICADOR), y modelos expresados ​​tanto en lenguaje matemático como en lenguaje de computadora (podría decirse que la informática es una rama de las matemáticas aplicadas y la informática los idiomas son una forma de notación matemática).

Una gran cantidad de ciencias cognitivas e IA tempranas se centraron en el lenguaje, modeladas como redes semánticas, y luego condujeron a lingüística computacional y sistemas expertos. Muchos de los modelos tomaron la forma de gráficos y listas vinculadas, modelados como estructuras de datos LISP, con modelos y sistemas de producción integrados en LISP. Es un poco difícil saber si fue primero, PLANNER o las ideas modeladas en PLANNER.

Del mismo modo, mucho trabajo posterior, en redes neuronales y aprendizaje automático, se ha representado como ecuaciones y código de computadora, es difícil decir qué fue primero, los modelos o el software utilizado para representar los modelos.

Lo que nos devuelve a su pregunta: ¿Qué lenguaje de programación es mejor para la inteligencia artificial? No hay un lenguaje informático único. Dependiendo de la rama de IA que esté buscando, un idioma u otro pueden representar mejor los conceptos actuales. Si está buscando nuevos modelos de cognición, es posible que necesite crear un nuevo lenguaje (o bibliotecas). Y, en última instancia, una gran cantidad de IA implica interactuar con las personas, por lo que tal vez el idioma más útil es el inglés u otro lenguaje natural de uso común (también útil para leer la literatura).

Aprender IA no se trata de lenguajes de programación. AI es el término general para muchos conceptos subyacentes. Learning AI está a punto de aprender los conceptos que contiene, por ejemplo, Machine Learning, Soft Computing, Computación evolutiva, Modelo probabilístico, etc. También se trata de entrenamiento de datos utilizando técnicas específicas (kNN, Naive Bayes, Bayesian Network, SVM, etc.) para crear un modelo y pruebe sus datos usando el modelo creado. En general, son solo los conceptos y teorías en informática.

Para la implementación, puede usar cualquier lenguaje de programación. Pero, hay algunos lenguajes creados para adaptarse a ciertos fines, ya sea su lenguaje central, bibliotecas, apis, marcos, etc. Por ejemplo, Python tiene algunas bibliotecas hechas para computación científica, y también para IA / aprendizaje automático. Matlab es un lenguaje con su marco, bibliotecas y otras herramientas en un solo entorno sin la necesidad de instalar nada desde el exterior. Puedes elegir el que más disfrutes.

Depende de qué rama de la IA. Para la programación lógica, es posible que desee utilizar Prolog. Para la inteligencia artificial general y el aprendizaje automático, puede usar Python (con Pandas, Scikit Learn, etc.). Para probar modelos de Machine Learning y realizar análisis de datos exploratorios más que implementar otros tipos de lógica, puede encontrar R o Matlab más adecuados. Para la IA detrás de las unidades en un juego, bien puedes estar usando algo como C ++. Depende de lo que intentes hacer.

Sin embargo, si tuviera que elegir uno, sugeriría aprender Python, ya que es un lenguaje de programación de propósito general completo, puede ejecutar programas Python en robots en una Raspberry Pi con bastante eficacia, y es relativamente fácil de aprender.

Aunque la Inteligencia Artificial (IA) es un campo muy grande que contiene visión por computadora, inteligencia de documentos, PNL, chatbot, automatización y análisis del habla, hay un par de idiomas que permiten a cualquiera dominar la IA.

Python y R son los mejores idiomas.

Debido a los poderosos paquetes de aprendizaje automático y su inteligencia artificial superconjunto, puede hacer cualquier cosa con la ayuda del lenguaje Python (o lenguaje R). Incluso los marcos de aprendizaje profundo están disponibles en python (y R).

Hay muchos otros idiomas, incluidos matlab, Perl, Scala, Ruby, Java, que permiten a cualquiera trabajar en IA. Pero por una o dos razones, no son idiomas muy aceptables.

Obtendrá respuestas mucho más calificadas de personas que hacen programación de IA real, pero, déjenme obtener mi respuesta … de todos modos … 😀

AI era una asignatura optativa cuando regresé a la escuela. ¡Y no lo tomé! Pero, la mayoría de mis amigos que optaron por la IA estaban todos en Prolog . Un grupo muy pequeño estaba en Lisp .

Más tarde, durante la vida profesional, algunos de mis amigos completaron su maestría y doctorado y “aparentemente” trabajaron en proyectos de IA de la vida real . Aunque nunca hablamos sobre los detalles de su proyecto, en la mayoría de esos casos utilizaron C y / o C ++ para implementaciones del mundo real.

Si perdonas mi ingenuidad y aceptamos considerar la IA como un conjunto de algoritmos especializados , entonces el lenguaje que utilices para implementarlo dependerá / debería depender de los requisitos del proyecto . Por ejemplo, si necesita habilidades de toma de decisiones casi en tiempo real, entiendo que Lisp y sus derivados pueden no ser la mejor opción ( pero podría estar equivocado ). En cualquier caso, me cuesta creer que C / C ++ debería servir excepcionalmente bien a la mayoría de los proyectos de programación, incluso los proyectos de IA .

No estoy seguro de que realmente comprendamos la inteligencia artificial lo suficientemente bien como para hacer esta declaración. La inteligencia humana es un grupo de acumuladores promedio ponderados exponenciales con puntos de derrame enganchados en una red con conectividad variable basada en la presencia de varios moduladores. Si está tratando de simular un cerebro humano, entonces las redes neuronales son el camino a seguir, pero no hay ningún idioma que sea particularmente mejor en esos que otros, que yo sepa.

Pero no preguntaste sobre simular un cerebro humano. Preguntaste sobre inteligencia artificial. Las características de dicho lenguaje tendrían que implicar poder reescribir su propia codificación bajo demanda (no reentrante), realizar múltiples tareas de forma masiva y poder aplicar algoritmos ad-hoc a un conjunto de datos masivo arbitrario y examinar Las soluciones que producen.

Con eso en mente, no creo que el lenguaje que está utilizando sea tan importante como el hardware que está utilizando y la metodología que aplica. Por ejemplo, algo como Hadoop sería una herramienta decente para aplicar una variedad de algoritmos a un conjunto de datos, pero no importa en qué idioma esté escrito.

Para experimentar, el lenguaje apropiado sería algo para hacer cambios rápidamente, como Python o Scala. Para aplicaciones industriales, desearía algo que sea más fácil de optimizar pero aún comprensible, como Java o C #.

Cuando dices Inteligencia Artificial, te estás refiriendo a un tema vasto. Cada programa que involucra un comportamiento condicional, o un comportamiento impulsado a tomar decisiones, puede denominarse AI. Entonces se refiere a casi todos los programas que se pueden escribir. Pero supongo que se refiere a algoritmos de aprendizaje o algoritmos genéricos o cualquier otro algoritmo que resuelva el problema de manera inteligente. Ahora su respuesta depende en gran medida del algoritmo que elija. Si está desarrollando un motor de ajedrez, probablemente necesitará un algoritmo muy rápido y quizás tenga que escribir muchos códigos de bajo nivel. Entonces, la mejor opción sería C / C ++. Si está haciendo un programa que analiza imágenes y estudia la correlación entre muchas de esas imágenes (procesamiento de imágenes), de nuevo elige lenguajes que se ejecutan más rápido (como C / C ++).

Si su código necesita estar orientado a objetos (y contiene relativamente menos procesos), podría optar por un lenguaje como Java. La elección del lenguaje de programación depende en gran medida del problema que desee resolver.

Desafiaré esta pregunta en dos frentes:

Uno, ¿por qué tiene que ser un “mejor”. Sé que el marketing y la sociedad nos alimentan mejor, mejor y mejor, pero en última instancia, se trata de lo que es más apropiado para lo que quieres lograr.

Dos, ¿por qué solo el lenguaje de programación? Eso nuevamente dependerá de lo que quieras lograr. Todavía no puedes comprar una computadora cuántica o basada en ADN, aunque ambas transformarán la IA algún día.

Dándole una respuesta imperfecta a su pregunta, dos idiomas:

Python y Java (o sus derivados): es difícil ver más allá de esos dos monstruos y las bibliotecas que ya puedes explotar. Desea una red neuronal, tick, procesamiento de lenguaje natural, tick, independencia total de la plataforma, tick, asequibilidad, tick. Piense en ellos como navajas suizas que tienen un millón de cuchillas cada una pero que aún pueden caber en SU ​​bolsillo 🙂

Java es el rey de la colina con su apuntalamiento de Hadoop, Spark y Hive, pero si el Rey tiene un contendiente de peso pesado, es Python. Yo tampoco puedo elegir. Tampoco es una mala elección para casi cualquier situación de uso.

Python es el lenguaje, hoy en día, más utilizado para escribir software de inteligencia artificial y aprendizaje automático. Se debe a la estructura de python, python tiene la mayor cantidad de módulos. También es independiente de la plataforma.

Creo que Node.js podría reemplazar Python desde la transmisión principal, ya que es un poco más rápido que python. Y ya está creciendo.

Más bien, usted mismo puede elegir cualquier idioma si está pensando comenzar desde cero.

Bueno, esto era de módulos de IA y ML, usted solicitó software, siempre puede compilar estos módulos o API para su idioma requerido o simplemente usar el idioma en el que están escritos (y esto podría ser mejor) si su trabajo concierne completamente al Campo ML o AI.

Depende del contexto.

Si eres un investigador de IA que quiere construir modelos y ejecutar pruebas rápidas, entonces la mejor opción es Python. El lenguaje tiene amplias bibliotecas que permiten el desarrollo de IA en todos los niveles de abstracción. Además, la “facilidad de OOP” del lenguaje es otro beneficio, junto con su sintaxis definida lógicamente.

Por supuesto, puede obtener bibliotecas para el desarrollo de IA en casi todos los lenguajes comunes, ¡así que realmente depende de su preferencia!

Sin embargo, si fueras una empresa que intentaba implementar algún tipo de sistema, entonces usa un lenguaje rápido como C ++. Sin embargo, he visto algoritmos de IA implementados en casi cualquier lenguaje común: es posible para cualquier lenguaje completo. Termina simplemente requiriendo la reinvención de la rueda.

Espero que eso te dé algo con lo que trabajar.

Lenguaje: Python

Marco para DL / AI: PyTorch -> Aprendizaje profundo con PyTorch: A Blitz de 60 minutos

Enseñamos el aprendizaje de refuerzo a los estudiantes en MIPT usando el marco PyTorch -> seminarios deepmipt / deep-rl

¿Eres un aspirante de IA (inteligencia artificial) que está confundido sobre qué lenguaje de programación elegir para tu próximo proyecto? Si es así, has venido al lugar correcto, ya que aquí vamos a ver los mejores 4 lenguajes de programación para el desarrollo de IA.

La inteligencia artificial es un campo enorme. Con tanto que cubrir, es realmente difícil referir un solo lenguaje de programación. Claramente, hay muchos lenguajes de programación que pueden usarse, pero no todos los lenguajes de programación le ofrecen el mejor valor de su tiempo y esfuerzo. Y no hay una respuesta autorizada sobre qué lenguaje de programación debe usar para un proyecto de IA.

Pitón

Java

Ceceo

Prólogo

C ++

Pensamientos finales

Los 5 mejores lenguajes de programación para el desarrollo de IA

More Interesting

¿Qué es la inteligencia en el contexto de (AI)?

En una red neuronal (sin saber si es específica para keras), ¿cuál es la diferencia entre el tamaño del lote y el entrenamiento del lote? ¿Cuándo necesitaría ambos?

¿Cómo se sienten los investigadores y practicantes de Inteligencia Artificial y Aprendizaje Automático sobre los comentarios recientes de Stuart Russell sobre los peligros de la IA que parecen respaldar comentarios similares hechos por Elon Musk y Stephen Hawking?

¿Cuáles son los algoritmos de aprendizaje automático relativamente simples pero efectivos para que el reconocimiento de imágenes se implemente desde cero para una tesis de licenciatura?

¿Es posible emular el patrón de habla de una persona a partir de una oración / párrafo simple como se muestra en Misión Imposible 3?

Cómo usar redes neuronales artificiales en la programación

¿Cuál es el mejor producto de traducción de IA?

¿Cuáles son buenos libros para redes neuronales artificiales recurrentes?

¿Quién está más cerca de desarrollar una verdadera IA?

¿Dónde puedo recibir correos electrónicos o algo similar sobre nuevas ideas, inventos o artículos recientes publicados sobre temas como la IA?

Cómo hacer una IA que juegue un juego

¿Cuáles son las partes que más se reemplazan en robots y máquinas modernas?

¿Qué distingue a las llamadas 'redes neuronales profundas' de las redes neuronales de antaño? ¿Por qué están mucho mejor ahora?

Cómo aplicar el aprendizaje automático con habilidades relacionadas con la neurociencia (similar al trabajo de Jeff Hawkins en neumata) en una aplicación relacionada con desastres

¿Es necesario entrenar una red neuronal para análisis de texto?