📄 faq.html
字号:
<html>
<head>
<meta http-equiv="Keywords" content="neural, neural net, neural network, neural programming, mlp, backpropagation, back propagation, multilayer, perceptron, java, java package, example, class, training, train, incremental, batch, mini-batch, mini batch, generalized, modular, feed forward, feed, forward, cross validation, cross, validation, test, free, source, code">
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Description" content="This work is a java implementation of feed forward neural nets. Using this package, you can easily build and train multilayer, generalized feed forward, modular feed forward nets with any number of layers and any number of units.">
<title>FAQ - FEED FORWARD NEURAL NETWORKS - A JAVA IMPLEMENTATION v2.0</title>
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="Fri, 30 May 1980 01:00:00 GMT">
</head>
<body bgcolor="#e2e0e0" style="font-family: Verdana">
<div align="center">
<center>
<table width="90%" border="0" cellspacing="20" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td align="left">
<a href="index.html">Home</a></td>
</tr>
<tr>
<td align="left">
<b><font size="4"><a name="top"></a>FEED FORWARD NEURAL
NETWORK<span lang="tr">S</span> - A JAVA IMPLEMENTATION v2.0 </font></b>
<br><b><span lang="tr"><font size="5">FAQ</font></span></b></td>
</tr>
<tr>
<td align="left">
<font size="2">- <a href="#1">What is this?</a><br>
- <a href="#2">What kind of skills do I need in
order to use this package?</a><br>
- <a href="#3">What kind of neural nets can be
created using this package?</a><br>
- <a href="#4">What is a 'multilayer perceptron'
and how can I create one?</a><br>
- <a href="#5">What is a 'generalized feed forward
net'?</a><br>
- <a href="#6">What is a 'modular feed forward
net'?</a><br>
- <a href="#7">How can I create generalized and
modular feed forward nets?</a><br>
- <a href="#8">What kind of training methods can I
use?</a><br>
- <a href="#9">Which activation functions can I
use?</a><br>
- <a href="#10">Can I use different flatness for
each neuron?</a><br>
- <a href="#11">Can I use momentum?</a><br>
- <a href="#12">Can I use different learning rates
for each layer?</a><br>
- <a href="#13">What is the function of the class
'Neuron'?</a><br>
- <a href="#14">What is the function of the class
'Synapse'?</a><br>
- <a href="#15">What is the function of the class 'NeuralNet'?</a><br>
- <a href="#16">What is the function of the class
'Pattern'?</a><br>
- <a href="#17">What is the function of the class 'PatternSet'?</a><br>
- <a href="#18">What is the function of the class
'Randomizer'?</a><br>
- <a href="#19">What is the function of the class 'LineReader'?</a><br>
- <a href="#20">What is 'cross validation data'?</a><br>
- <a href="#21">What is 'test data'?</a><br>
- <a href="#22">What is the function of the methods
'CrossValErrorRatio' and 'TestValErrorRatio'?</a><br>
- <a href="#23">Can I feed my own cross validation
and test patterns?</a><br>
- <a href="#24">How can I set random weights after
I create a net?</a><br>
- <a href="#25">What is a configuration file and
what is the format of a configuration file?</a><br>
- <a href="#26">What is a pattern file and what is
the format of a pattern file?</a><br>
- <a href="#27">What is a weight file and what is
the format of a weight file?</a><br>
- <a href="#28">Do you give the source code for
free?</a><br>
- <a href="#29">How can I get more detailed
documentation?</a><br>
- <a href="#30">In which development environment
has this package been tested?</a><br>
- <a href="#31">How can I compile the code?</a><br>
- <a href="#32">Error management in this package is
not coded properly. Are you aware of it?</a><br>
- <a href="#33">Where can I find basic information
about neural networks?</a><br>
- <a href="#34">How can I learn Java?</a><p> </p>
<p><u><b><a name="1"></a>
What is this?</b></u><br>
This is basically a feed forward neural network
implementation coded in Java. It supports topologies such as
multilayer perceptron, generalized feed forward nets and
modular feed forward nets.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="2"></a>What kind of skills do I need in order to use this
package?</b></u><br>
That depends on what you want to do. But at least, you
should have a basic knowledge of java programming, feed
forward neural networks and back propagation.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="3"></a>What kind of neural nets can be created using this
package?</b></u><br>
You can create multilayer perceptrons, generalized feed
forward nets and modular feed forward nets. You can use
momentum, different activation functions, different flatness
for those functions, different learning rates etc.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="4"></a>What is a 'multilayer perceptron' and how can I create
one?</b></u><br>
Multilayer perceptrons are layered feed forward networks
typically trained with static back propagation. These
networks have found their way into countless applications
requiring static pattern classification. Their main
advantage is that they are easy to use, and that they can
approximate any input / output map. The key disadvantages
are that they train slowly, and require lots of training
data (typically three times more training samples than
network weights).(*) You can create a multilayer perceptron
very easily using a constructor in 'NeuralNet' class
(example 1 and example 2).<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="5"></a>What is a 'generalized feed forward net'?</b></u><br>
Generalized feed forward networks are a generalization of
the MLP such that connections can jump over one or more
layers. In theory, a MLP can solve any problem that a
generalized feed forward network can solve. In practice,
however, generalized feed forward networks often solve the
problem much more efficiently. A classic example of this is
the two spiral problem. Without describing the problem, it
suffices to say that a standard MLP requires hundreds of
times more training epochs than the generalized feed forward
network containing the same number of processing elements(*)
(see example 1)<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="6"></a>What is a 'modular feed forward net'?</b></u><br>
Modular feed forward networks are a special class of MLP.
These networks process their input using several parallel
MLP's, and then recombine the results. This tends to create
some structure within the topology, which will foster
specialization of function in each sub-module. In contrast
to the MLP, modular networks do not have full
interconnectivity between their layers. Therefore, a smaller
number of weights are required for the same size network
(i.e. the same number of PEs). This tends to speed up
training times and reduce the number of required training
exemplars. There are many ways to segment a MLP into
modules. It is unclear how to best design the modular
topology based on the data. There are no guarantees that
each module is specializing its training on a unique portion
of the data.(*)<br>
<br>
<a href="#top">top</a><br>
<br>
<b><u><a name="7"></a>How can I create generalized and modular feed forward
nets?</u></b><br>
Although it is possible to create these kind of nets using
this package, it is not easy to do so practically. Unless
you develop your own editing application, you will have to
edit a configuration file and create neurons / synapses
manually (example 1).<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="8"></a>What kind of training methods can I use?</b></u><br>
You can use back propagation methods such as batch training
(example 1), mini batch training (example 2) and incremental
training (example 3). You can use them one after another,
without saving the weights.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="9"></a>Which activation functions can I use?</b></u><br>
The package supports logistic (outputs between 0 and 1),
tanh (outputs between -1 and 1) and linear activation
functions. Flatness of the curves can be changed for each
neuron. You can also add your own function by changing the
code.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="10"></a>Can I use different flatness for each neuron?</b></u><br>
Yes. You can even use different flatness parameters for each
neuron. The bigger is the flatness parameter, the flatter
will be the function.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="11"></a>Can I use momentum?</b></u><br>
Yes. You can even use different momentum parameters for each
neuron. You can use momentum with all of the training
techniques (batch, mini batch and incremental).<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="12"></a>Can I use different learning rates for each layer?</b></u><br>
Yes. You can even use different learning rates for each
neuron. Every neuron has a learning rate coefficient. If you
wish to train the net with a learning rate of 0.5 and the
learning rate coefficient of the neuron is 0.8; the neuron
will be trained with a learning rate of 0.5 * 0.8 = 0.4.
Note that just after you instantiate a net using the
constructor for multilayer perceptron you will not be able
to have different coefficients for the units in the same
layer. If you wish to do so, you have to change them
manually.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="13"></a>What is the function of the class 'Neuron'?</b></u><br>
It simply represents a neuron, the basic unit of any neural
network, responsible for the processing. The class has two
constructors, one for input units and the other for hidden
and output units. A neuron object includes information about
itself (activation function, flatness, learning coefficient,
momentum rate, current output, layer no, etc.) and also
information about all synapses related to it. It can update
its output and train itself.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="14"></a>What is the function of the class 'Synapse'?</b></u><br>
Represents a synapse between two neurons. For every
relationship between two neurons, there should be a synapse
object. It doesn't have any methods, it has only one
constructor.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="15"></a>What is the function of the class 'NeuralNet'?</b></u><br>
It simply represents a neural net. It has two constructors.
One is for creating a multilayer perceptron with given
parameters. The other is a more general constructor. Using
it you can create generalized feed forward nets, modular
feed forward nets, as well as multilayer perceptrons. It
reads a configuration file and creates a net out of the
parameters in this file. If you don't code your own editing
application, you have to edit the file manually.<br>
It has methods for saving the current configuration, loading
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -