CarsonScott / LogiCon

Hierarchical constraint learning for logical pattern recognition

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LogiCon

Overview

LogiCon is an unsupervised ML algoritm for hierarchical constraint-learning and pattern recognition. Data is received by the system in the form of a two-dimensional grid, where each cell contains a single object that holds information. A system is made of multiple grids, each stacked on top of the previous. Between each pair of adjacent grids lies a system called a mapper. A mapper observes a two-dimensional subset if cells from its lower grid, and generates an object that is stored in a single element of the upper grid.

Mappers are associated with sets of information called templates. Templates and objects are similar but distinct in that any given object is a sort of ‘instantiation’ of a template. Templates can be thought of as types while objects as tokens, or abstracts and particulars respectfully.

Objects in terms of their data structure, however, are much simpler than templates. Objects are simply sets with labels associated with each element, whereas templates are structures resembling graphs, where each node behaves like a variable that is restricted in its domain of possible values by a set of constraint functions. Constraint functions have two forms, the first being a restriction on the stored value itself, and the second on the stored value itself with respect to the stored value of another vertex in he graph. The two types of constraint functions correspond to each of the two structures that make up the graph, namely vertices and links.

Templates are instantiated when the mapper observes a subset of objects that can be assigned to a specific templates vertices and completely satisfy the constraints of the graph, both in the values stored in each vertex, as well as relations between values stored in adjacent vertices. The result is a template that is fully satisfied, and a new object is created from the content stored in the vertices, with each of its elements possessing a label that corresponds to the vertex in which it was stored.

The mapper then sends the new object to be stored in the grid above, where the total set of objects generated by the mapper for a given input are received by another, higher mapper as input, where the process of occurs again, generating an even higher-level grid that itself becomes the input to another mapper. This repeats until the grid is small enough to be fully observed all at once, which yields a single object that represents the input grid in its entirety.

About

Hierarchical constraint learning for logical pattern recognition


Languages

Language:Python 100.0%