attrasoft

Attrasoft

Attrasoft PolyNet 
for Windows 95/98
Version 4.0 (7/1999)
About

New

Image Search Engine

Products

Services

Order

Shareware/Demos

Future Products

Links

Search This Site


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
Products New Lottery Stock jpg/gif Order Order Help Demos
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.