-
Notifications
You must be signed in to change notification settings - Fork 10
Perception Encoders
To encode perception input, ANSNA takes a practical approach that can fully take most recent ML technology into account. The idea is, for each incoming stimulus composition, to answer two central questions for each component: "what" and "where", leading to events with internal structure (id,position). Note that id is not necessarily an integer but can for instance be a SDR-encoding of a latent vector, or generally encoding certain attributes of the detected object. Also note that position in ANSNA does not need to be a discretized (x,y) vector, but is a SDR_Tuple(SDR_Encode(x),SDR_Encode(y)). This is a generalization of the way we handle perception in our current OpenNARS applications, I adopted this model for ANSNA.
Using this model, perceiving objects is essentially a 3-step procedure:
- To answer "where", a perception system proposes potential positions of prototypes/objects.
- To answer "what", the perception system has to memoize and re-identify patterns that appeared at the proposed positions.
- Generate (id,position) event once both "where" and "what" have been resolved, where the truth value can be modulated by the degree of the re-identification.
From that, ANSNA can naturally compose more complex events, from (nose,(3,1)) and (eye,(1,1)) it can compose (&|,(nose,(3,1)),(eye,(1,1))) using the intersection schema.
While NARS allows for explicit relations that can describe relative locations of objects, such as <(*,a,b) --> leftOf>, ANSNA does not take this approach. Instead the learning of relationships is completely left to sequence composition and procedure learning, meaning the above is expressed as: <(&/,a,left()) =/> b>. NARS can of course also encode that, but it's not taken as the only way to encode relationships while in ANSNA there is absolutely no distinction between "declarative description" and "procedural description". A description that cannot be conceived in terms of what ANSNA can perceive and manipulate in its environment is worthless to this system, in this system all knowledge is ultimatively grounded in sensorimotor experience.
In ANSNA perception is Subjective and Active, but allows to incorporate proven ML methods to be utilized to generate (id,position) events, while the OpenNARS sensory channels rely strictly on NARS principles to do that.