Separating Points


The recommended reading for this article is Pissanetzky(2012b).

This article describes a computational experiment that demonstrates the basics of two important topics in causal logic: learning without a teacher, and object recognition. Input data is obtained from a camera when beams of light shine on an array of photosensitive cells. The illuminated cells become activated and generate signals, all at the same time. Hence a causal relation exists between a cell that is illuminated and the signal it generates, the cell and the light being the causes and the signal being the effect. The collection of all those cause-effect relations is the partial order in the input causal set.

The problem can not be solved in its totality, because it is too large and requires specialized hardware, as explained in the paper. The specialized hardware is not yet available. Nevertheless, several basic techniques essential for image recognition in causal logic are explained, and a partial solution is obtained.

The photosensitive array consists of 345 square cells of size 1 x 1 (the units are irrelevant), arranged in 15 columns and 35 rows, with their sides parallel to the coordinate axes.  The cells overlap by 0.5 in both the x direction and the y direction. In other words, if a cell is located in such a way that its center is at position (0, 0), then there is going to be other cells with centers at positions (0.5, 0), (0, 0.5), and (0.5, 0.5), and so on. A point contained in a cell activates that cell. A point on an  edge separating two cells activates both cells, and a point on a vertex formed by 4 cells activates all 4. When a point activates a cell we say that a match exists between the point and the cell. One single point of light can match as many as 9 cells at the same time. A cell can contain 0 or more points. The resolution of the photosensitive array is 0.5 x 0.5.

The beams of light project points of light on the cells. There are 167 points in total, numbered 0 to 166, scattered over the photosensitive array. The (x, y) coordinates of the points, and the number of matches for each point, are given in file PSPointCoordinates.txt.

The elements of the causal set are the 167 points of light, which are initialized by input data, namely by the (unknown) beams of light, the 345 cells, and the 921 matches. Note that the coordinates of the points do  not enter as data. It will suffice for the causal set to know the causal relations between the points and the cells. At the bottom of the table there is another table giving the number of points matching each cell. Since the 0's indicate cells that contain no points, the table gives some rather coarse idea of the distribution of the points on the plane. The actual distribution is shown in Figure 4 of Pissanetzky(2011a), but can not be reproduced here because it is protected by copyright.

It is better for the reader not to see the plot, at least not yet. I am trying to confuse the reader as much as I can in order to help him/her to concentrate attention on the data in the tables and the power of causal logic. Our visual system is very powerful. A reader who sees the plot will solve the problem in about 0.5 sec. But the goal is to solve the problem without using any of the human's abilities. The only data available to causal logic are the point/cell cause-effect relationships, and these are represented in the causal set in file PSCausalSet.txt. This file illustrates what causal logic really is. Compare with Boolean logic, for example, or with predicate logic. Causal logic is supposed to "make sense" of that information. Precisely that information and nothing else.

It is also useful to imagine a programmer who is given file PSCausalSet.txt, without any explanations, even without the numbering of the relations, and nothing else, and asked to "make sense" of it. How would that problem be treated? As cryptography? Now also imagine that the 167 points are plotted on a plane as in Figure 4 of that paper, and shown to the programmer. The programmer would "make sense" of it in 0.5 sec. See the difference? I did the experiment once. I showed the plot to an audience, and they immediately reported: "There are three groups of points!"

After having obtained the causal set, the next step in causal logic would be to find a set of legal least-action permutations and calculate the block system. With the available resources, I was able to find only 4, but none of them is guaranteed to have the least action. The block system can not be calculated.

However, it is still possible to carry an analysis for connectivity of the causal set, using, for example, the permutation shown in file PSPermutation.txt. Consider the permutation written in a single column. Then draw vertical lines between pairs of elements, in correspondence with precedence relations in the causal set. These lines are known as flux lines, because they indicate the flow of information from element to element in the causal set. The drawing will immediately show that the causal set is partitioned into three subsets, which are internally connected but disconnected from each other. Further analysis shows that the three subsets correspond to the three groups of points existing in the plot, the ones that had been detected by human observers. Causal logic has classified the points into three areas, defined by the set of cells that match the corresponding points. This feature is used for edge identification, which is an essential step in image recognition. Note also that not one single line of code has been written telling the logic how to identify edges. This study demonstrates basic techniques for learning without a teacher, by acquiring information directly from sensors, and for edge identification, which is an essential component of image recognition.