All Attrasoft products are Y2K Compliant!
4. Symmetry
4.1 Linear Scaling Symmetry
4.1.1 Liner Scaling Symmetry
4.1.2 Internal Parameters for
Scaling Symmetries
4.1.3 One-dimension Scaling
Symmetry Example
4.1.4 2D Scaling Symmetry Example
4.2 Rotation Symmetry
4.2.1 Rotation Symmetries
4.2.2 Rotation and Scaling Symmetries
4.2.3 Internal Parameters for
Rotation Symmetries
4.2.4 Rotation Examples in PolyNet
4. Symmetry
4.1
Linear Scaling Symmetry
4.1.1 Liner Scaling Symmetry
We will study the linear scaling symmetry in this section. An example
of linear scaling is the example in PolyNet, which is given as follows:
0000000000000000000000000000000000000000
0000000000000000000000000010000000000000
0000000000000000000000000111000000000000
0000000000000000000000000111000000000000
0000000000000000000000000111000000000000
0000000000000000000000111111111000000000
0000000000000000001111111111111111100000
0000000000000000000000000111100000000000
0000000000000000000000000111000000000000
0000000000000000000000000111000000000000
0000000000000000000000000111000000000000
0000000000000000000000000111000000000000
0000000000000000000000000111000000000000
0000000000000000000000011111111000000000
0000000000000000000000000111100000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000001100000000000000
0000000000000000000000011110000000000000
0000000000000000000000011110000000000000
0000000000000000000000011110000000000000
0000000000000000000000011110000000000000
0000000000000000000111111111111000000000
0000000000000001111111111111111111100000
0000000000000001111111111111111111100000
0000000000000000000000011111000000000000
0000000000000000000000011110000000000000
0000000000000000000000011110000000000000
0000000000000000000000011110000000000000
0000000000000000000000011110000000000000
0000000000000000000000011110000000000000
0000000000000000000011111111111000000000
0000000000000000000011111111111000000000
0000000000000000000000011111000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000100000000000000000000
0000000000000000001110000000000000000000
0000000000000000011111000000000000000000
0000000000000000111111100000000000000000
0000000000000000111111110000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000011111111111111111111110000000000
0000000111111111111111111111111000000000
1111111111111111111111111111111111111100
1111111111111111111111111111111111111100
1111111111111111111111111111111111111100
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000000001111111111000000000000000
0000000000011111111111111111110000000000
0000000000011111111111111111110000000000
0000000000011111111111111111110000000000
0000000000000011111111111100000000000000
0000000000000001111111111000000000000000
0000000000000000000000000000000000000000
In the above pictures, 3 airplanes have 3 different scales.
Character recognition is another example, which has linear scaling symmetry.
For example, a character of 'A' is :
00100
01010
01110
10001
10001
A linear scaling of the above 'A' is:
0000110000
0000110000
0011001100
0011001100
0011111100
0011111100
1100000011
1100000011
1100000011
1100000011
The non-linear scaling is:
0000100000
0000100000
0010001000
0010001000
0011111000
0010000100
1000000010
1000000010
1000000010
1000000010
PolyNet supports only linear scaling. The nonlinear scaling can
be ordered as a customized version.
4.1.2 Internal
Parameters for Scaling Symmetries
The scaling symmetry is very powerful and reduces the training data
drastically, however, the scaling symmetries are computationally expensive,
i.e., it requires a complicated internal structure. As a result, it significantly
slows down the training and recognition speed. The scaling symmetries are
also sensitive to the internal parameters.
There are several approaches to the scaling symmetry:
Full support of the scaling symmetry: this approach will fully support
the scaling symmetry. The cost is the training and recognition time and
huge hardware resource requirements.
Partial support of the scaling symmetry: this approach significantly
speeds up the training and recognition time, at some cost of the performance.
Attrasoft chooses the second approach.
4.1.3 One-dimension
Scaling Symmetry Example
The scaling symmetry automatically implies the translation symmetry.
The example for recognition 1-dimensional scaling symmetry is called "1-D
Segment Counter", and this example is under "Example/1D Segment Counter".
The operation of this problem is very similar to the shifter example.
The "1D Segment Counter" is a very difficult problem for neural networks.
This example counts the number of segments. For example, a string, 1111001111,
has two segments: 1111 and 1111. Obviously, this problem has the scaling
symmetry. If we scale down this pattern by 50%, the new pattern is: 1101100000.
This new pattern still has two segments.
The class-neurons have 40 digits. This problem counts from 0
to 38 segments. For the class-neurons, 1000... represents 0 segment; 0100...
represents 1 segment, ...
10000000... : 0 segment
01000000... : 1 segment
00100000... : 2 segments
00010000... : . . .
If the data has more than 38 segments, it is class 00 . . . 001.
The pattern-neurons are set to be 120 by default, but it can be changed
by the user. The training patterns have 160 (40 + 120 = 160) neurons. The
data is generated as follows: the probability of '1'-'9' is 34% and that
of '0' is 66%. The segment length, which is the number of digits in a segment,
is 4 or higher.
An example of the training pattern, which has 160 neurons, is:
0060000000000000000000000000000000000000
0000000000000000000000000066666666660000
0000000000000000000000000000066666666666
6666666666666666666660000000000000000000.
The first line is class-neurons, 40 digits total, and it indicates the
whole pattern has 2 segments. The pattern-neurons take the next 3 lines
and they have 2 segments. The size of the pattern-neurons can be set to
any number. This problem has 1D scaling symmetry.
The default values are:
120 pattern-neurons and 40 class-neurons (160 total),
500 training-patterns, and
50 recognition-patterns.
This is an extremely difficult problem because of its large sample data
space. To get better results, generate 10,000 training-patterns and run
again. The training and recognition files are generated by clicking:
Example/1D Segment Counter/Data
This command also sets up the neural net for you.
Using a Pentium 400 MHz, 92 MB RAM, under the default setting, the run
time for "Decimal/Classification" is about 7 seconds. The recognition rate
for 500 training patterns is not very high. The results can be improvement
by increasing the training patterns or retraining by Clicking "Example/1D
Segment Counter/Parameter.
4.1.4 2D Scaling
Symmetry Example
2D scaling symmetry is computational expensive; to speed up the computation,
please
use 1N1C commands for this example.
The "2D Scaling Symmetry" has 40x40 images of 16 airplanes in the training
file. To generate the example, click "Example/2D Scaling symmetry". In
the recognition file, 10 images of the airplane are scaled up and down.
Use the command "Decimal/Classification" to classify the planes. The run
time is 30 seconds (Pentium 400 MHz).
The command "Decimal/1N1C Classification" is fast than the command "Decimal/Classification".
4.2
Rotation Symmetry
The rotation symmetry is similar to scaling symmetry: they are both
sensitive to the internal parameters. Again, in designing the rotation
symmetry, we seek the balance between the quality of the performance and
the speed.
4.2.1 Rotation
Symmetries
PolyNet supports z-direction rotation symmetry in the xy-plane. The
rotation symmetry naturally implies the x- and y-translation symmetries.
There are two types of rotation symmetries:
-
360° (Complete) Rotation Symmetry
-
Partial Rotation Symmetry (For example, -10°
to 10° )
The complete rotation is computationally more expensive than the partial
rotation symmetry. PolyNet supports the complete rotation symmetry.
PolyNet
currently supports two different settings of the rotation symmetry:
Rotation + translation
Rotation + scaling + translation
An example of rotation symmetry is in PolyNet, which can be opened
by clicking:
"Example/2D Rotation + Translation".
Two images are given as follows (one is the rotated image of the other):
0000000000000000010000000000000000000000
0000000000000000010000000000000000000000
0000000000000000111000000000000000000000
0000000000000000111000000000000000000000
0000000000000000111000000000000000000000
0000000000000001111100000000000000000000
0000000000000001111100000000000000000000
0000000000000001111100000000000000000000
0000000000000011111110000000000000000000
0000000000000111111111000000000000000000
0000000000001111111111100000000000000000
0000000000001111111111100000000000000000
0000000000011111111111110000000000000000
0000000000111111111111111000000000000000
0000000001111111111111111100000000000000
0000000011111111111111111110000000000000
0000000011111111111111111110000000000000
0000000111111111111111111111000000000000
0000001111111111111111111111100000000000
0000011111111111111111111111110000000000
0000111111100011111110001111111000000000
0001111110000011111110000011111100000000
0011111000000011111110000000111110000000
0011100000000011111110000000001110000000
0010000000000011111110000000000010000000
0000000000000011111110000000000000000000
0000000000000001111100000000000000000000
0000000000000011111110000000000000000000
0000000000000111111111000000000000000000
0000000000001111111111100000000000000000
0000000000011111111111110000000000000000
0000000000111111111111111000000000000000
0000000000111001111100111000000000000000
0000000000000001111100000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000110000000000000000000000000
0000000000000110000000000000000000000000
0000000000000111000000000000000000000000
0000000000000111100000000000000000000000
0000000000000111110000000000000000000000
0000000000000111110000000000000000000000
0000000000000111111100000000000000000000
0000000000000111111111000000000000000000
0000000000000111111111110000000000000000
0000000000000111111111111000000000000000
0000000000000111111111111110000000000000
0000000000001111111111111111100000000000
0000000000001111111111111111110000000000
0000000000011111111111111111111100000000
0000000000011111111111111111111111000000
0000000000011111111111111111111111100000
0000000000011111111111111111111111110000
0000000000111111111111110000011111111000
0000000000111111111111110000000000000000
0000000001111111111111111000000000000000
0000000001111111001111111000000000000000
0000000001111110001111111100000000000000
0000000011111000001111111100000000000000
0000000011111000000111111100000000000000
0000000011010000000111111110000000000000
0000000011100000000011111111000000000000
0000000111000000000011111111110000000000
0000000110000000000011111111111100000000
0000000110000000000111111111111100000000
0000000000000000000111111111000000000000
0000000000000000001111111111100000000000
0000000000000000001110011111000000000000
0000000000000000001110011000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
These pictures look odd because '1' and '0' are longer in the y-direction
than in the x-direction.
4.2.2 Rotation
and Scaling Symmetries
Rotation symmetry naturally implies x- and y-translation symmetries.
Rotation symmetry can be combined with scaling symmetry. In the above example,
after rotation and scaling of the above images, an image is:
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000001100000000000000000
0000000000000000001111100000000000000000
0000000000000001111111000000000000000000
0000000000001111111111000000000000000000
0000000111111111111111000000000000000000
0000111111111111111111000000000000000000
0001111111111111111111000000000000000000
0000000000111111111111000000000000000000
0000000000111111111111000000000000000000
0000000000111111111110000000000000000000
0000000000111111111110000000000000000000
0000000000111111111110000000000000000000
0000000011111111011110000000000000000000
0000111111111110011110000000000000000000
0001111111111000011110000000000000000000
0000111111111000011110000000000000000000
0000001111110000001110000000000000000000
0000001111110000001110000000000000000000
0000000110111000001111000000000000000000
0000000000011000000011000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
4.2.3 Internal
Parameters for Rotation Symmetries
The rotation symmetry is very powerful and reduces the training data
drastically, however, the rotation symmetries are computationally expensive,
i.e., it requires a complicated internal structure. As a result, it significantly
slows down the training and recognition speed. The combined rotation and
scaling symmetries are extremely computationally expensive.
4.2.4 Rotation
Examples in PolyNet
There are two examples, which test the rotation symmetry:
2D Rotation + Translation; and
2D Rotation + Scaling
The "Example/2D Rotation + Translation" example has 40x40 images of 16
airplanes as training data. In the recognition file, 11 images of the airplane
are pointed at various directions. The run time is as follows (Pentium
400 MHz and 92 MB RAM):
"Decimal/Train" is 30 seconds;
"Decimal/1N1C Classification" is 90 seconds per image;
"Decimal/Classification" is 200 seconds per image;
This is about 10 times slower than ABM 2.7.
The "Example/2D Rotation + Scaling" example has 40x40 images of 3 airplanes
as training data. In the recognition file, 10 images of the airplane are
pointed at various directions and scaled up and down. 2D rotation and scaling
symmetry is computational expensive; to speed up the computation, please
use 1N1C commands for this example.
This is a long example. The command "Decimal/Train" will take is about
2 minutes, and the command "Decimal/1N1C Classification" will take 5.5
minutes per image. Again, this is significantly slower than ABM 2.7,
reflecting the decimal neurons are computationally more expensive than
the binary neurons. If you use the default recognition file, which has
10 images, it will take a long time. You must have 200 MB hard disk space
to run this example, otherwise, the software will quit. You might want
to delete 9 images from the recognition file and leave only 1 image in
the recognition file to see how long it will take.
Note, these two examples take significantly longer time than all other
examples. This is an indication that the combined symmetries are computationally
expensive. It is important that you have enough hard disk storage space
for the execution of PolyNet software, otherwise, the program will
quit.
The rotation and scaling symmetries are not optimized. If you want to
have these symmetries optimized, a customized version has to be ordered.
Online Order
or if you prefer, Online Fax order:
PolyNet for Windows 95/98
Version 4.0 ($124.99 + $5 US Shipping and Handling)
Mail Order: $129.99 (S&H included)
PolyNet 4.0
Attrasoft, Attn.: Gina
P. O. Box 13051
Savannah, GA. 31406, USA
Please join Attrasoft Discussion
Group.
Send questions or comments to:
webmaster@attrasoft.com
or contact us at:
Attrasoft,
P.
O. Box 13051, Savannah, GA. 31406, USA
Copyright © 1998
Attrasoft, Inc. All rights reserved. |