Нейронные сети на Java. Библиотека Neuroph.

Реализуем искуственный интеллект в виде нейронной сети на Java.

Проект Neuroph по-сути имеет две реализации:

  1. Программа с графическим интерфейсом для наглядного отображения работы нейронной сети, ее обучения и тестирования.
  2. Набор классов для интегрирования в приложение Java

Neuroph studio

Для того, чтобы создать и обучить нейронную сеть с помощью Neuroph Studio, необходимо выполнить следующие шаги:

  1. Create Neuroph Project
  2. Create Perceptron network
  3. Create training set (Training -> New Training Set)
  4. Train network
  5. Test trained network

Интеграция нейронной сети в Java приложение

Пример создания небольшой нейронной сети на Neuroph:

package neural;

import javax.sql.rowset.serial.SerialArray;

import org.neuroph.core.NeuralNetwork;
import org.neuroph.core.data.DataSet;
import org.neuroph.core.data.DataSetRow;
import org.neuroph.nnet.Perceptron;
import org.neuroph.nnet.learning.HopfieldLearning;
import org.neuroph.util.TransferFunctionType;

public class Neural {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		NeuralNetwork<HopfieldLearning> nNetwork = new Perceptron(2, 1);
		
		DataSet trainingSet =
				 new DataSet(2, 1); 
		
		trainingSet. addRow (new DataSetRow (new double[]{0, 0},
				 new double[]{0}));
				trainingSet. addRow (new DataSetRow (new double[]{0, 1},
				 new double[]{1}));
				trainingSet. addRow (new DataSetRow (new double[]{1, 0},
				 new double[]{1}));
				trainingSet. addRow (new DataSetRow (new double[]{1, 1},
				 new double[]{1}));
				// learn the training set
				nNetwork.learn(trainingSet);
				// save the trained network into file
				nNetwork.save("or_perceptron.nnet"); 
				System.out.println("end");

				// set network input
				nNetwork.setInput(0, 0);
				// calculate network
				nNetwork.calculate();
				// get network output
				double[] networkOutput = nNetwork.getOutput();
				
				for (double i : networkOutput)
					System.out.println(i);
				
	}

}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *