开始

这份手册让你对2.93版本的使用有一个简明了解。

内容

  1. 什么是Neuroph?
  2. Neuroph有什么?
  3. 必要准备
  4. 安装并运行
  5. 用Neuroph Studio(以下简称Studio)训练神经网络
  6. 在Neuroph用Java代码创建神经网络

1. 什么是Neuroph?

Neuroph是用于神经网络开发的Java框架

2. Neuroph中有什么?

Neuroph由Java库和图形界面神经网络编辑器Studio组成。
你可以在Studio中对常见的神经网络架构进行实验,然后使用Neuroph Java库在Java程序中使用这些神经网络。

3. 必要准备

为了使用Neuroph,你只需要你的计算机上安装了Java VM 1.9,其他的都已经在下载的包中提供了。

4. 安装并运行

运行安装向导(windows系统 neurophstudio-windows.exe 或者 Linux系统 neurophstudio-linux.sh)并按步骤进行。Mac系统只需解压neurophstudio.zip包

5. 用Studio应用训练神经网络

现在我们将介绍如何使用Studio创建神经网络。训练神经网络有5个步骤,他们将用感知器神经网络(Perceptron Neural Network)的例子描述逻辑功能。

按照以下步骤用Studio创建和训练感知器神经网络:

  1. 创建一个Neuroph工程
  2. 创建Perceptron Network从主菜单选择 File > New > Neural Network > Perceptron
  3. 创建训练集(从主菜单选择 File > New > Data Set
  4. 训练网络
  5. 测试训练好的网络

第1步 创建一个Neuroph工程

从主菜单点击 File > New Project

然后从Neuroph project category选择Neuroph Project并点击Next

输入工程名和位置,然后点击Finish

现在工程创建完毕,下一步来创建神经网络

第2步 创建 Perceptron Network

在主菜单中点击 File > New File

从下拉菜单选择之前创建的工程,Neuroph类别,Neural Network文件类型,然后点击Next

输入网络名称,选择Perceptron Network类型,点击Next

在新的对话框中输入Input Num(2),Output Num(1)的神经元数量,选择Perceptron Learning并点击Finish按钮

这将会创建具有两个神经元输入,一个神经元输出拥有步进传递函数的感知器神经网络

第3步 创建训练集

在主菜单中点击 File >New File 打开训练集向导

选择Data Set文件类型,并点击 Next

输入训练集名称,如下图所示输入输出数量并点击Finish

然后创建训练集,键入输入输出层神经元的输入和输出期望值作为训练元素。用Add row按钮添加新元素,完成后点击OK按钮

第4步 训练这个网络。

开始训练流程,拖拽训练集到网络窗口相应的位置,工具栏‘Train’按钮会变为可用状态。点击‘Train’按钮打开Set Learning参数对话框

在Set Learning参数对话框用默认参数,直接点击Train按钮即可

当Total Net Error是零时,训练完成(由于这个例子非常简单,所以会非常快)

第5步

训练完成后,你可以通过选择训练集来测试整个训练集网络,点击Test按钮

这将会在一个新的Tab中打开测试结果窗口

要测试单个输入,用Set Input按钮。这将会打开 Set Network Input对话框,你可以键入网络的输入值,用空格分隔

网络测试结果如下图所示。网络学到了逻辑与功能,如我们所见,输出神经元值为0。测试这个网络,看看对于其他的值会是什么行为。

6. 用Java代码创建一个Neuroph的神经元网络

这是一个跟之前相同的例子,但是现在用的是Java代码。
以下是Neuroph如何创建、训练以及保存Perceptron Neural Network:

// create new perceptron network

NeuralNetwork neuralNetwork = new Perceptron(2, 1);

// create training set
DataSet trainingSet =
 new DataSet(2, 1);


// add training data to training set (logical OR function)
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

neuralNetwork.learn(trainingSet);
new double[]{1}));


// save the trained network into file
neuralNetwork.save(“or_perceptron.nnet”);

下边的了例子展示了如何使用已保存的网络:

// load the saved network

NeuralNetwork neuralNetwork =
 NeuralNetwork.createFromFile(“or_perceptron.nnet”);

// set network input
neuralNetwork.setInput(1, 1);


// calculate network

neuralNetwork.calculate();

// get network output
double[] networkOutput = neuralNetwork.getOutput();

这个例子展示了Neuroph创建神经网络的基本用法。

为了能把这个用在你的项目中,你必须提供一个Neuroph库文件,neuroph-core-xx.jar和传统日志库slf4j(在libs目录),包括:
slf4j-api-1.7.5.jar
logback-core-1.1.2.jar
logback-classic-1.0.13.jar

在你的项目中(在NetBeans右键点击project,然后Properties > Libraries > Add JAR/Folder,选择jars文件)。你也必须导入正确的类和包,例如org.neuroph.core,org.neuroph.core.learning 和 org.neuroph.nnet。

所有受支持的神经网络架构,可在Neuroph的API文档中找到(请参阅org.neuroph.nnet包)

更多示例和更复杂的问题可以在Maven模块Samples中找到。

7. 网页链接

[Neuroph官方网站](http://neuroph.sourceforge.net)  

Neuroph维基百科
OTN文章
Part 1, interview on NetBeans Zone
Part 2, interview on NetBeans Zone
Part 3, interview on NetBeans Zone
30 application samples for misc data sets

[更多有用链接请看](http://neuroph.sourceforge.net/links.html)

results matching ""

    No results matching ""