📄 faq.html
字号:
previously saved weights, saving current weights, feeding
forward, calculating errors and for all kind of training
methods. It has a sub class called 'Layer'. This simply
represents a layer and facilitates calculations during feed
forward and back propagation.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="16"></a>What is the function of the class 'Pattern'?</b></u><br>
Represents a single training pattern including input data
and target data. If you use PatternSet class, you don't have
to deal with this class. A PatternSet class includes one or
more pattern objects.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="17"></a>What is the function of the class 'PatternSet'?</b></u><br>
Represents a set of patterns to be used during training. You
can use all patterns for training or you can spare some part
of it for cross validation and testing.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="18"></a>What is the function of the class 'Randomizer'?</b></u><br>
It generally coordinates random number generation. You can
create an instance using a seed ( the code will produce the
same sequence of random values each time you run the code )
or without seed (the code will use system clock, the
sequence will not be the same).<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="19"></a>What is the function of the class 'LineReader'?</b></u><br>
This class facilitates the file reading process. We use it
for reading pattern files, configuration files, weight
files.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="20"></a>What is 'cross validation data'?</b></u><br>
Neural networks can be over trained to the point where
performance on new data actually deteriorates. Roughly
speaking, overtraining results in a network that memorizes
the individual exemplars, rather than trends in the data set
as a whole. Cross validation is a process whereby part of
the data set is set aside for the purpose of monitoring the
training process, to guard against overtraining. (*)<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="21"></a>What is 'test data'?</b></u><br>
The testing set is used to test the performance of the
network. Once the network has been trained, the weights are
then frozen, the testing set is fed into the network, and
the network output is compared with the desired output. (*)<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="22"></a>What is the function of the methods 'CrossValErrorRatio'
and 'TestValErrorRatio'?</b></u><br>
Using these methods you can get a linear figure of what the
error level is, based on cross validation data or test data.
Since it is divided by average deviation, it is independent
of the scale of the outputs.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="23"></a>Can I feed my own cross validation and test patterns?</b></u><br>
Yes you can. If you don't want patterns to be selected
randomly and wish to create your own set of cross validation
patterns out of your own file, you have to create a
PatternSet object using '1' as ratiocrossval and '0' for
other two ratios. Then you can use
CrossValErrorRatio(yourpatternset) method to calculate the
error. The same is true for test data (see example 2).<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="24"></a>How can I set random weights after I create a net?</b></u><br>
After you use any of the constructors and create a net, all
weights will be random values uniformly distributed between
-1 and 1. They will remain so unless you train the network
or load weights from a file.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="25"></a>What is a configuration file and what is the format of
a configuration file?</b></u><br>
A configuration file is a saved configuration of a net. It
is a text file, so it can be edited manually using a basic
text editor. It includes the topology of the net as well as
detailed information about units. It doesn't include
information about weights though.<br>
Below is a configuration file taken from example 1.<br>
<br>
// First of all, we determine total number of units in the
net.<br>
#neurons;5<br>
// Then we describe input units. There will be three fields:<br>
// type (for input units this will be 'i'); ID (a unique
number for each unit);<br>
// layer (inputs are all in layer 0)<br>
i;0;0<br>
i;1;0<br>
// Now we describe hidden layers.<br>
// type;ID;layer;flatness;axon family;momentum;learning rate<br>
// type,ID,layer (all of those have the same meaning as in
input layer)<br>
// type should be 'n' for hidden and output layers.<br>
// flatness: how flat is the sigmoid curve? The bigger it
is, the flatter is the curve.<br>
// axon family: 't' tanh, 'g' logistic, 'l' linear.<br>
// momentum: momentum rate.<br>
// learning rate: (see 'Can I use different learning rates
for each layer?')<br>
n;2;1;1;t;0.5;1<br>
n;3;1;1;t;0.5;1<br>
// output layer (same format as hidden layers)<br>
n;4;3;1;l;0.5;1<br>
// And now we describe synapses. For each connection between
units,<br>
// there will be a line here.<br>
// First determine the number of synapses.<br>
#synapses;6<br>
// type; ID; source unit; target unit<br>
// type will be 's' for all synapses.<br>
// ID is a unique number for each synapse)<br>
// source unit is the ID of the source unit of this synapse.<br>
// target unit is the ID of the target unit of this synapse.<br>
s;0;0;2<br>
s;1;0;3<br>
s;2;1;3<br>
s;3;2;4<br>
s;4;3;4<br>
s;5;1;4<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="26"></a>What is a pattern file and what is the format of a
pattern file?</b></u><br>
A pattern file is a text file and it contains training
patterns. If you use the constructor in PatternSet class, it
will read values from a pattern file (examples 1 and 2). The
values in a pattern file should be separated by semicolons
';'. This is the format of a 'csv' file. You can easily
create one using MS Excel for example. A line in a pattern
file includes input value(s) and target value(s).<br>
The line below was taken from 'example1.csv'. Here, first
two values are input values, the last one is a target value.<br>
-0.787338;-0.028483;-0.815821<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="27"></a>What is a weight file and what is the format of a
weight file?</b></u><br>
The weights of a net are stored in a weight file. This is a
text file. 'LoadWeights' and 'SaveWeights' methods in the
class 'NeuralNet' loads and saves network weights (see
examples). A weight file contains semicolon ';' separated
values. Each line has three values: Type, ID, weight value.<br>
'Type' determines whether this is a synapse weight or a
threshold. It is 'w' for the first and 't' for the second.<br>
'ID' determines the ID of the synapse in question (if this
is a synapse weight) or the ID of the unit (if this is a
threshold)<br>
'weight value' is the weight itself.<br>
Below is an example of this.<br>
w; 0; 1.9678931117918397<br>
w; 1; 0.13815102250339562<br>
w; 2; -2.0168124457485814<br>
t; 7; 0.4776425534517153<br>
t; 8; 1.4714782668522086<br>
t; 9; 0.13046564839824953<br>
<br>
<a href="#top">top</a><br>
<br>
<b><u><a name="28"></a>Do you give the source code for free?</u></b><br>
Yes. But please contact me if you wish to use it entirely or
partially in any kind of project so that I can reference it.
Please don't delete the top lines of the codes so that other
people can reach that information too.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="29"></a>How can I get more detailed documentation?</b></u><br>
You can only find it with the comments in the code or you
can ask me.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="30"></a>In which development environment has this package been
tested?</b></u><br>
It is tested in Sun Java 2 SDK 1.4.0<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="31"></a>How can I compile the code?</b></u><br>
I guess that you can compile using any java compiler. I
personally use command line interface using Windows 2000 and
Sun Java SDK 1.4.0. All you have to do is to uncompress all
the files in the same directory and type for example:<br>
javac example1.java <br>
in the command line. Note that this is the way it works in
Microsoft based operating systems and that I don't have
experience on others. However, I don't think that there will
be much difference, since we are talking about command line
interfaces.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="32"></a>Error management in this package is not coded
properly. Are you aware of it?</b></u><br>
Yes I am. I am planning to revise them in the future. Until
then please be careful when you determine parameters.<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="33"></a>Where can I find basic information about neural
networks?</b></u><br>
You can try:<br>
http://www.shef.ac.uk/psychology/gurney/notes/contents.html<br>
ftp://ftp.sas.com/pub/neural/index.html<br>
http://directory.google.com/Top/Computers/Artificial_Intelligence/Neural_Networks/<br>
<br>
<a href="#top">top</a><br>
<br>
<u><b><a name="34"></a>How can I learn Java?</b></u><br>
I would recommend http://java.sun.com. It contains a lot of
information and an excellent java tutorial.<br>
<br>
<a href="#top">top</a><br>
<br>
(*) Taken from NeuroSolutions 4.20 (NeuroDimension Inc.)
Help document.</font></td>
</tr>
<tr>
<td align="left">
<a href="index.html">Home</a></td>
</tr>
</table>
</center>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -