Cómo comenzar con redes neuronales en Java

Bueno, hay dos formas posibles.

Primero es tratar de familiarizarse con las redes neuronales en un nivel teórico y luego tratar de codificar la red y sus ecuaciones matriciales en algún lenguaje de programación (Java en nuestro caso).

En segundo lugar, es mirar un programa existente que calcula una red neuronal y luego transpilarlo a otro idioma (digamos Java).

Diría que es útil adquirir una comprensión básica de los conceptos, pero codificar las ecuaciones en código concreto está lejos de ser obvio. Cuando se trata de codificar, es mejor mirar un programa existente e intentar codificarlo en el idioma que elija.

Puedo darle un recurso que es a la vez una introducción a las redes neuronales, y al mismo tiempo contiene una implementación de ejemplo en Python:

Redes neuronales y aprendizaje profundo.

Lo que sugiero es leer primero este libro para familiarizarse con el concepto y luego tratar de comprender el código de Python y comenzar a codificarlo en el lenguaje de su elección, Java.

Realmente he hecho lo mismo en Javascript, así que ahora tengo un programa Javascript que puede aprender a reconocer dígitos escritos a mano. La única funcionalidad no central que tenía que proporcionar era la aritmética matricial. En Javascript puedes hacer esto usando la biblioteca math.js. No sé acerca de Java, pero tienes que encontrar una biblioteca Java que pueda hacer aritmética matricial por ti.

Elegí Javascript, porque de esta manera el código se puede ejecutar en el navegador y puedo agregarle fácilmente una representación gráfica. Actualmente se ve más o menos así (reconociendo el dígito 5 escrito a mano con éxito, ya que puede ver que la neurona que representa 5 es la única verde en la capa de salida):

No estoy seguro de cuál es su familiaridad con el funcionamiento de las redes neuronales, pero el primer paso es leer (o al menos lo básico) cómo funcionan las redes neuronales. Trate de familiarizarse con el lenguaje y las matemáticas utilizadas para describir comúnmente diferentes aspectos de una red. 3Brown1Blue tiene algunos videos excelentes en YouTube.

Si desea utilizar una red neuronal para un propósito específico , investigue diferentes tipos de redes. ¿Desea crear una red neuronal simple de avance, convolucional o recurrente para resolver su problema? Probablemente sea mejor usar una biblioteca en este punto en lugar de reinventar la rueda, ¡echa un vistazo a TensorFlow!

Si desea construir una red neuronal por el simple hecho de aprender , le recomiendo ver ejemplos en GitHub como SohamPardeshi / NeuralNet. También verifique y vea si hay tutoriales o videos en línea.

En general, las personas prefieren Python cuando se trata de redes neuronales, pero si específicamente quieres aprenderlo en Java, el curso de Jeff Heaton sería el mejor lugar para comenzar

El siguiente enlace contiene una parte del curso completo:

Introducción a las redes neuronales para Java Clase 11/16: Introducción a las redes neuronales para Java Clase 11/16 – YouTube

Quizás te interese Deeplearning4j. Es un kit de herramientas de aprendizaje profundo como Keras o Scikit, pero en lugar de Python usa Java.

Hay algunos ejemplos básicos de trabajo en el repositorio: clasificadores, MNIST, etc.

Deeplearning4j.org

More Interesting

¿Cuánto debo asignar para Ubuntu root, swap y home para computadora Machine / Deep Learning?

¿Puede una red neuronal humana llegar a un estado de equilibrio como una red neuronal artificial?

¿Por qué tantos videojuegos tienen terribles IA?

¿Tienes miedo de la automatización y los robots que toman tu trabajo?

¿Por qué el suavizado aditivo también se denomina suavizado de Laplace?

¿Necesito un maestro para seguir el aprendizaje profundo de Computer Vision?

¿Por qué SkyNet no envió el primer Terminator a tiempo con una descarga de su sistema operativo por seguridad?

¿Sería justo decir que todos los algoritmos de aprendizaje automático se generalizan a un puñado de principios básicos de aprendizaje?

¿Qué prevalecerá en futuros hogares: robots humanoides o electrodomésticos inteligentes conectados?

¿Cuál es el futuro del aprendizaje profundo? ¿La mayoría de los expertos en aprendizaje automático están recurriendo al aprendizaje profundo?

¿Cuál es la diferencia entre inteligencia artificial, aprendizaje automático, minería de datos e inteligencia de negocios? ¿Cómo están relacionados?

¿Cómo se puede usar la IA para crear empleos? ¿Es su propósito tomarlos todos?

¿Cuáles son algunos de los mejores chatterbots?

Mark Zuckerberg de Facebook es un ávido defensor del ingreso básico universal (UBI) ya que la IA pronto reemplazará a la mayoría de los trabajadores (incluso los médicos). A partir de ahí, ¿nos volveremos más pobres?

¿Cómo debemos medir la inteligencia humana? ¿Puede una computadora ser más sabia que los seres humanos?