¿Java es bueno para la IA?

Usamos Java para AI, ¡y funciona muy bien!

Para presentarnos, Coseer es una tecnología de computación cognitiva que automatiza los flujos de trabajo basados ​​en lenguaje natural para equipos empresariales. Competimos cara a cara con Watson. Comenzamos a escribir nuestro primer código en 2012, borramos la pizarra nuevamente en 2013 y cada vez elegimos Java.

Las razones que impulsaron nuestra elección:

  • Implementamos Coseer en varios entornos de clientes para permitir la seguridad de los datos del cliente. El software basado en Java proporciona la mayor flexibilidad para hacer esto. La mayoría de las nuevas empresas y equipos académicos no piensan tan lejos.
  • Estamos creando algunas estructuras de datos muy interesantes para el campo de las Co-Neuronas de la línea AI (lea sobre nuestros intentos de crear un cerebro de máquina). Cuando se trabaja desde cero, Java proporciona mucha modularidad.
  • Java tiene el ecosistema más robusto. Casi todas las tecnologías de código abierto están escritas en Java. También se realiza mucho trabajo del cliente en Java, por lo que nuestro desarrollo es realmente acelerado en comparación con otros lenguajes.
  • Java 8 ha simplificado algunas de las frustraciones habituales con la programación Java. El costo de tal racionalización es mucho más bajo que Python.
  • El problema clave – cadenas inmutables, en realidad ha resultado ser una bendición disfrazada. Manejamos muchas cadenas, tenemos mucho cuidado con las operaciones de cadenas, lo que nos ha obligado a escribir algos más eficientes.

Creo que, en general, es un idioma más fácil de aprender y tiene el grupo de talentos más profundo. Algunas veces estos factores se convierten en factores decisivos para una pequeña empresa.

Java, como casi todos los idiomas en estos días, es Turing Complete. En resumen, significa que Java es “capaz” de hacer cualquier cosa que cualquier otro lenguaje pueda hacer. Entonces Java “puede” ser usado para AI. Adelante, pruébalo.

Pero, antes de huir y comenzar a abrir el eclipse, tenga esto en cuenta. Decir que un idioma es Turing Complete, es solo una forma elegante de otorgar un premio a cada persona en una fiesta. Realmente no diferencia un idioma del otro. Es solo uno de los estándares más básicos que existe para un lenguaje de computadora.

Si desea crear proyectos de pasatiempo, o proyectos que solo prueben su conocimiento de la IA, siga adelante con java. De hecho, seguramente recomendaré Java para eso. No solo le dará una mejor comprensión de Java, sino también del funcionamiento interno de la IA. También hay bibliotecas que lo admiten. Consulte Aprendizaje profundo distribuido y de código abierto para la JVM.

Cualquier programa serio, dudo que le guste usar Java para AI. En estos días, la mayoría de los programas de IA están escritos en Python y / o C ++. Creo que esto se debe a que la IA sigue siendo un campo bastante orientado a la investigación. Los investigadores no desean escribir cien líneas para algo que se puede hacer en 20. Para ellos, el tiempo para pensar en cosas nuevas es más importante que implementar algo con delicadeza y con un estándar de grado empresarial. Estoy seguro de que esto cambiará en el futuro cuando AI se convierta en una palabra diaria en lugar de solo una palabra de moda. La gente se mudará a Java debido a su naturaleza robusta.

Ahora a la pregunta real. ¿Java es bueno para la IA?

Para proyectos de hobby: tal vez. Todavía recomendaría Python. Sinceramente, te facilita mucho las cosas

Para proyectos de producción reales: No. Todavía no. La comunidad de IA todavía depende en gran medida de python por su brevedad y de C ++ para velocidad y control de bajo nivel.

Pero bueno, como dije. Adelante, pruébalo. Nunca probé DeepLearning4j, pero parece una biblioteca muy bonita. Cuéntanos si lo disfrutaste. Y también gracias a los desarrolladores.

Depende de qué parte va a implementar. Sin embargo, hay algunas herramientas muy útiles escritas en Java que admiten el manejo flexible del conocimiento conceptual proporcionado por ontologías, que son Apache Jena, y protegidas.

Usé ambos mucho cuando estaba en la universidad y con gusto los usaría más, pero lamentablemente, en mi experiencia es bastante raro que se le pida a un desarrollador de Java que implemente algunas cosas de razonamiento / IA, al menos hoy en día, esto podría cambiar en el futuro.

Las otras partes serían aprendizaje automático y todo tipo de marcos predicativos y procesamiento de lenguaje natural. Es probable que estos también estén cubiertos por algunos marcos de Java, pero no tengo ningún buen ejemplo ahora y supongo que otros lenguajes, como C, podrían tener algunas ventajas aquí también.

absolutamente, puedes usar C ++, matlab, python, lisp

Tan bueno como C ++ o Python, pero ninguno de ellos es específico del dominio.