¿Dónde debo comenzar a programar la IA?

Python es el idioma preferido en la comunidad Machine Learning (ML). (No me gusta el término “IA” porque establece expectativas falsas y tiene un largo historial de incumplimiento).

Las siguientes herramientas principales de ML y si son compatibles con Python:

  • Caffe – si
  • Antorcha – sí
  • Theano – y
  • OpenCV: sí
  • SciKit Learn – sí

Además de Python “vainilla”, también necesita conocer Numpy, que proporciona rendimiento de C ++ en vectores y matrices. (Por cierto, C ++ usando plantillas de expresión y evaluación perezosa es el campeón actual para el rendimiento de la matriz).

También pediste un libro para principiantes. Pruebe Data Science for Business por Provost. Este excelente libro presenta numerosos conceptos de ML de una manera simple y concreta. Incluso presenta las matemáticas básicas de forma intuitiva.


Edición 1: corrección ortográfica, redacción mejorada y adición de antecedentes en el rendimiento de la matriz C ++).

Edición 2: Recomendación de libro agregada.

El término AI es realmente un nombre inapropiado. La mayoría de la “IA de la computadora” no es realmente IA, sino un montón de técnicas informáticas semiheurísticas: si eso es lo que quieres, a menudo hay herramientas de alto nivel para hacerlo … puedes comenzar con matlab. Si está escribiendo modelos para herramientas “supuestamente IA”, utilice el lenguaje con el que se sienta más cómodo. (A pesar de lo que a menudo se dice, hay muy poca diferencia real en los lenguajes de computadora hasta que llegue a ser muy específico o ligeramente extraño (he usado Prolog, Lisp y Hope, así como el algol / pascal y (C, C ++ Java C # family)) el favorito fue Symbolics Lisp (sabores, géneros, etc.), pero eso es historia).

Pero aquí está el verdadero punto. Para “IA real”, que no es determinista y se basa en nosotros. Necesita una arquitectura que no sea de computadora. Somos sistemas ricos en sensores en tiempo real con máquinas de estado complejas de memoria asociativa (neural) sin memoria directa (es decir, el estado proporciona persistencia y la regla hebb consolida los caminos para proporcionar respuestas consistentes. La arquitectura es un control basado en el medio ambiente (es decir, retroalimentación suministrada) por el medio ambiente, no por nosotros. Una parte superior de este sistema esencialmente autónomo es un nivel adicional que ayuda a cerrar los problemas de tipo de bucle abierto que está respaldado por caminos evolutivos codificados que percibimos como un tipo de acción genérica (objetivos) y usamos un objetivo proceso de descomposición basado en la construcción de un plan de acción (lo llamamos pensamiento). Dentro de este mecanismo nos encontramos con una reentrada internalizada para la cual no existe un equivalente real (los filósofos llaman a esto qualia) este es el origen de las imágenes, el color, el dolor, y tal vez las emociones y la conciencia. Ahora debería poder ver la diferencia entre la “IA de la computadora” y los sistemas orientados al medio ambiente. También puede medir cuánta computadora comprensión del idioma que necesita para el lugar donde desea encajar con el dominio. “Programación de inteligencia artificial” sugiere el aprendizaje automático, Big data, dominio en lugar de inteligencia artificial. Por eso es útil comenzar con matlab.

Puedes usar lo que quieras, no tendrá grandes consecuencias.

La mayoría de las veces (de lo contrario, tendrá enormes consecuencias) las bibliotecas tienen envoltorios de “lenguaje de alto nivel”, para, entre otros, lenguaje interpretado. Por lo tanto, escribiré mi código usando python, por ejemplo, pero la propia biblioteca ejecutará C ++, así que no se preocupe.

¿Por qué?

Veamos al “Programador de IA” como un caballero. Lo que lo convierte en un buen caballero será su sentido de la táctica, su propia fuerza y ​​la forma en que usa su maravillosa espada. La espada aquí es la optimización del código . Uno malo lo meterá en problemas, uno bueno lo hará victorioso (si no falla), y debe saber que puede confiar en él. PERO los caballeros no siempre quieren molestarse con el trabajo de herrero , el optimizador de código mister, conocer el lenguaje de nivel inferior, la programación distribuida / paralela y GPGPU. El caballero simplemente le preguntará: “Dame algo fácil de transportar, liviano para que pueda expresarme por completo y tratar de hacerlo fuerte y confiable”.

Pedir AI de C ++ es darle hierro a un tipo y decirle “ve a matar a ese tipo”. Dar acceso a Python (o cualquier lenguaje “más fácil”) es decir “No pelearé conmigo mismo, pero te construí una espada mejor de lo que habrías hecho”.

¿Derecho?
(no dude en comentar sobre sintaxis / idioma o cualquier cosa. No es nativo aquí)

pltrdy

Soy un programador de computadoras y puedo asegurarle que desarrollar una IA no es una tarea normal.

Ante todo,

La elección del lenguaje de programación no tiene nada que ver con la IA a menos y hasta que tenga todas las bibliotecas necesarias para la salida esperada. Incluso puedes usar LUA para programar IA. Ahora … lo que realmente funciona en una IA es su capacidad de crear un algoritmo que sea eficiente, breve y que pueda modificarse fácilmente. Digamos que quieres crear una IA de autoaprendizaje. El lenguaje no tiene nada que ver con eso. Todo lo que entra en juego es el algoritmo.

¡Buena suerte!

No es tanto que “debas” aprender, pero eso te facilita las cosas.

Por ejemplo, las redes neuronales ML y el aprendizaje profundo recientemente populares requieren una gran cantidad de cálculo de matrices y cosas por el estilo. Puede programarlo en C (por cierto, me encanta C), pero puede hacer lo mismo en Python (bueno, amigos, es realmente NumPy) con muchas menos líneas.

Ahora mi descargo de responsabilidad es que Python me da dolores de cabeza 😛