SENSORY EVENT RECODING AND DECODING
A first pattern of sensory activity is input to a simulated neural circuit on a set of sensor inputs. The simulated neural circuit includes an array of branched neural elements that each have at least one output and one or more branches that are impinged by subsets of the set of sensor inputs. Activity is generated in the branches based on the first pattern of activity input to the simulated neural circuit, and a second pattern of activity is generated in the outputs of the array of branched neural elements based on the activity in their branches. The second pattern of activity represents a recoding of the first pattern of sensory activity.
Latest Evolved Machines, Inc. Patents:
This application claims priority to U.S. Provisional Application No. 60/927,481, which was filed May 1, 2007, and is titled “SENSORY EVENT RECODING AND DECODING,” and U.S. Provisional Application No. 60/915,822, which was filed May 3, 2007, and is titled “SENSORY EVENT RECODING AND DECODING.” These applications are incorporated by reference.
TECHNICAL FIELDThis disclosure relates to recoding and decoding sensory events.
BACKGROUNDAttempts have been made to create simulated neural circuits that include properties of biological neural circuits.
Biological neural circuits are made up of an incredibly dense meshwork of numerous, complex, tree-like units called “neurons.” Each neuron can make thousands of connections with other neurons. It is at these connections or “synapses” that information is transferred between the neurons.
A biological neural circuit may be exposed to sensory events. For example, an olfactory neural circuit may be exposed to an odorant, or a visual neural circuit may be exposed to an object. Exposure to a sensory event may result in activation of certain branches of the neurons within a certain period of time, and activation of one or more branches of a particular neuron within a certain period of time may result in activation of the particular neuron.
SUMMARYSensory events generated in response to exposure to different objects may be characterized by the activity of a set of different sensory features. Often, however, there may be considerable overlap between the sensory features that characterize different sensory events, even though the associated objects have very different meaning. For example, a fresh apple and a spoiled apple emit odorants that exhibit very similar molecular structures and consequently the two objects activate an overlapping set of primary olfactory sensors. Nevertheless, these odorants represent two very different objects, and it is important to be able to distinguish between the two. In an object recognition system such as is described below, the representation of distinct objects which activate overlapping sensor patterns are recoded into a new representation in which accurate recognition may be more successfully accomplished.
Simulated neural circuitry may be used to recode the raw sensor representations of sensory events (e.g., objects) into combinations of higher order features that signify the joint presence of subsets of primary sensory features. The recoded representations of sensory events generated using such simulated neural circuitry may not exhibit as much overlap as the original representations of the sensory events, and, as a result, the recoded representations may be easier to discriminate from one another. Consequently, using simulated neural circuitry to recode representations of sensory events that are based on the sensory features that characterize the sensory events may improve the performance of systems that are designed to recognize different sensory events.
The simulated neural circuitry may be in the form of a neural recoder that recodes a first pattern of sensory activity into a second pattern of activity representing a recoding of the first pattern of sensory activity. For example, the first pattern of sensory activity may reflect one or more olfactory sensory features associated with an odorant, and the second pattern of activity may represent higher order olfactory features that may be used to determine the identity of the odorant. Similarly, the first pattern of sensory activity may reflect one or more visual sensory features associated with an object and the second pattern of activity may represent higher order visual features that may be used to identify the object.
A simulated neural circuit may include one or more arrays of simulated branched neural elements having branched trees for receiving input signals. These branched neural elements, which are typically activated in response to a threshold level of activity in their associated branches, which are themselves typically activated in response to a threshold level of activity in their associated inputs, should be contrasted with the nodes of typical neural networks.
To provide input to the simulated neural circuit, a set of sensor inputs are connected to a set of neural elements such that branches of the neural elements are impinged by subsets of the sensor inputs. Activity in the sensor inputs in turn generates activity in the branches. Activity in the branches, in turn, causes the neural elements (i.e. the cell bodies in a neurobiological context) to which the activated branches are connected to become active. This activity in the simulated neural elements may be used as the second pattern of activity representing a recoding of the first pattern of sensory activity.
Particular aspects of the general concepts of recoding a pattern of sensory activity using a simulated neural circuit are described below.
In one aspect, a first pattern of sensory activity on a set of sensor inputs is input to a simulated neural circuit. The simulated neural circuit includes an array of branched neural elements that each have at least one output and one or more branches that are impinged by subsets of the set of sensor inputs. Activity is generated in the branches based on the first pattern of activity input to the simulated neural circuit, and a second pattern of activity is generated in the outputs of the array of branched neural elements based on the activity in their branches. The second pattern of activity represents a recoding of the first pattern of sensory activity.
Implementations may include one or more of the following features. For example, the first pattern of sensory activity may reflect one or more sensory features. Additionally or alternatively, the first pattern of sensory activity may represent a set of sensory features associated with a sensory event, and the second pattern of activity generated in the array of branched neural elements may represent a combination of higher order features associated with the sensory event, the higher order features associated with the sensory event signifying the joint presence of one or more subsets of sensory features within the set of sensory features associated with the sensory event. In some implementations, the first pattern of sensory activity may include a sensory event vector, and elements of the sensory event vector may correspond to individual sensory features of a sensory event.
The activity generated in the branches may be generated in branches impinged by one or more of the activated sensor inputs. For example, activity may be generated in only those branches for which the activity in the subsets of sensor inputs that impinge the branches exceeds a threshold activity level during a specified window of time.
The second pattern of activity may be generated in a subset of the array of branched neural elements that have at least one activated branch. For example, only those neural elements for which the activity in the neural elements' input branches exceeds a threshold activity level during a specified window of time may be activated. In some implementations, the threshold activity level may be a threshold number of activated branches and only those branched neural elements that have a number of activated branches during the specified window of time that exceeds the threshold number of activated branches may be activated. In such implementations, the threshold number of activated branches may be different for different branched neural elements or the threshold number of activated branches may be the same for each branched neural element.
The first pattern of sensory activity may include different non-binary signal levels in the set of sensor inputs. In such implementations, branches in which, during a specified window in time, a magnitude of the activity levels in the sensor inputs that impinge the branches exceeds a threshold branch activation level may be activated and the activity generated in the branches may include non-binary signal levels. Additionally, in such implementations, branched neural elements may be activated as a function of the activity levels in the branches of the branched neural elements.
In some implementations, one or more sensory features associated with a sensory event may be detected and the first pattern of sensory activity may be generated based on the detected sensory features such that the first pattern of sensory activity reflects the detected sensory features. In such implementations, the one or more sensory features associated with a sensory event may be detected using an array of sensory feature sensors.
In addition, the second pattern of activity may be decoded to identify a particular sensory event. For example, the first pattern of sensory activity may reflect one or more olfactory sensory features associated with an odorant such that the second pattern of activity represents a recoding of the sensory features associated with the odorant, and the second pattern of activity may be decoded to identify the odorant. Alternatively, the first pattern of sensory activity may reflect one or more visual sensory features associated with an object such that the second pattern of activity represents a recoding of the visual sensory features associated with the object, and the second pattern of activity may be decoded to identify the object. In another aspect, a sensory event recoding system includes sensor inputs that are configured to transmit a first pattern of sensory activity. In addition, the sensory event recoding system includes simulated neural elements, each of which has one or more branches that are impinged by different subsets of the plurality of sensor inputs. The branches are configured to activate in response to activity in the impinging sensor inputs, and the simulated neural elements are configured to generate a second pattern of activity that represents a recoding of the first pattern of sensory activity by activating in response to activity in their input branches.
Implementations may include one or more of the following features. For example, the sensor inputs may be configured to transmit a first pattern of sensory activity that represents a set of sensory features associated with a sensory event, and the neural elements may be configured to generate a second pattern of activity that represents a recoding of the first pattern of sensory activity based on higher order features associated with the sensory event, the higher order features signifying the joint presence of one or more subsets of sensory features within the set of sensory features associated with the sensory event.
In addition, the sensory event recoding system may include sensory feature sensors that are configured to detect different sensory features and to generate the first pattern of sensory activity. In such implementations, the first pattern of sensory activity may be representative of detected sensory features, and the sensor inputs may be configured to receive the first pattern of sensory activity from the sensory feature sensors.
In some implementations, the sensory event recoding system may include a sensory event decoder that is configured to recognize the second pattern of activity in the simulated neural elements and to identify a particular sensory event that corresponds to the recognized second pattern of activity. The decoder may include output units, each of which corresponds to a known category of sensory objects, is coupled to the simulated neural elements known to activate in response to the known category of sensory objects, and is configured to be activated by activity in the simulated neural elements to which it is coupled. In addition, the decoder may be configured to identify a particular category of sensory objects by identifying a particular output unit with the greatest response to the second pattern of activity in the simulated neural elements. For example, in some implementations, the sensory feature sensors may include olfactory sensory feature sensors configured to detect different olfactory sensory features and to generate a first pattern of sensory activity that is representative of olfactory features detected in response to exposing an odorant to the sensory feature sensors. In such implementations, the sensory event decoder may be configured to recognize the second pattern of activity in the simulated neural elements and to identify the odorant based on the second pattern of activity. In alternative implementations, the sensory feature sensors may include visual sensory feature sensors configured to detect different visual sensory features and to generate a first pattern of sensory activity that is representative of an object exposed to the sensory feature sensors. In such implementations, the sensory event decoder may be configured to recognize the second pattern of activity in the simulated neural elements and to identify the object based on the second pattern of activity.
The branches of the simulated neural elements may be configured to activate in response to a combination of activity in the impinging sensor inputs exceeding a threshold activity level during a during specified window of time. In such implementations, the threshold activity level may be the same for every branch or the threshold activity level may vary for different branches.
Additionally or alternatively, the simulated neural elements may be configured to activate in response to a combination of activity in their branches exceeding a threshold activity level during a specified window of time. In such implementations, the threshold activity level may be the same for every simulated neural element or the threshold activity level may vary for different simulated neural elements.
In some implementations, the simulated neural elements may be configured to determine a number of their branches that are active during a specified window of time and to activate in response to the number of their branches that are active during the specified window of time exceeding a threshold number of active branches. In such implementations, the threshold number of active branches may be the same for every simulated neural element or the threshold number of active branches may vary for different simulated neural elements.
In yet another aspect, sensor inputs and simulated neurons having branches are generated and then different subsets of sensor inputs are connected to individual branches of the simulated neurons. In addition, each branch is configured to activate in response to one or more combinations of activity in the sensor inputs that impinge the branch, and each simulated neuron is configured to activate in response to one or more combinations of activity in the simulated neuron's branches.
Implementations may include one or more of the following features. For example, different subsets of sensor inputs may be connected to the individual branches of the simulated neurons comprises at random. Alternatively, the sensor inputs may be connected to the individual branches of the simulated neurons in a self-organizing and/or activity-dependent manner.
In still another aspect, a sensory event recognition system includes sensors configured to transmit a first pattern of sensory activity, and simulated neural elements incorporating branches that are coupled to subsets of the sensors. The simulated neural elements are configured to receive the first pattern of sensory activity from the sensors at the branches and to recode the first pattern of sensory activity into a second pattern of active and inactive simulated neural elements.
In another aspect, an input pattern of sensory activity that represents sensory features associated with a sensory event is received at a neural circuit that includes one or more branched neuronal units. The received input pattern of sensory activity is then input to the neural circuit, and the neural circuit is used to recode the input pattern of sensory activity into a neural representation of the input pattern of sensory activity that represents a combination of higher order features associated with the sensory event, the higher order features associated with the sensory event signifying the joint presence of particular sensory features associated with the sensory event.
Implementations may include recognizing the higher order features associated with the sensory event by identifying concurrent activity in subsets of branches of the branched neural elements, the concurrent activity in the subsets of branches of the branched neural elements signifying the joint presence of the particular sensory features associated with the sensory event.
Implementations of any of the techniques described may include a method or process, an apparatus or system, or a computer program embodied on a tangible computer-readable medium. The details of one or more implementations are set forth in the accompanying drawings and the description below.
A sensory event detection system includes sensors for detecting sensory features related to a class of sensory events. When a sensory event occurs, the sensors detect the sensory features that characterize the sensory event and generate a collection of sensory feature signals based on the sensory features detected in connection with the sensory event. The sensory feature signals, representing the sensory features detected in connection with the sensory event, are then input to simulated neural circuitry, with the pattern of active and inactive simulated neurons that ultimately results from inputting the sensory feature signals to the simulated neural circuitry representing a recoding of the original representation of the sensory event that was generated by the sensory feature sensors. The recoded pattern of active and inactive neurons can thereafter be decoded in order to identify the particular sensory event that occurred.
The simulated neural circuitry may include one or more arrays of simulated branched neural elements having branched trees for receiving input signals. Input sensory feature signals may be transmitted to the simulated neural circuitry by a collection of simulated sensory fibers (e.g., sensor inputs) that impinge, or otherwise are coupled to, the branches of the simulated neural elements. Different subsets of simulated sensory fibers impinge different branches of the simulated neural elements, and individual branches are configured to activate when some combination of the input sensory feature signals transmitted to the branches by the impinging simulated sensory fibers during a specified window of time exceed branch activation threshold values. Because individual branches are configured to activate in response to concurrent activity in a subset of simulated sensory fibers, individual branches may function to recognize the joint presence of a particular collection of sensory features in an input sensory event. Stated differently, the branches may be said to function as recoding the sensory features of an input sensory event into a pattern of higher order features of the sensory features of the input sensory event.
Much like the branches, individual simulated neural elements are configured to activate when some combination of the activity levels in the branches of the individual simulated neural elements during a specified window of time exceed neural element activation threshold values. As such, individual simulated neural elements may function to recognize that a number of the higher order features of the pattern of activity generated in the branches are themselves jointly present. The pattern of activity ultimately generated in the simulated neural elements may represent an even higher order recoding of the sensory features of the input sensory event.
Such recoding of input sensory events based on the identification of higher order features of the sensory features that characterize the input sensory events may serve to reduce sensory feature overlap between sensory events characterized by similar sensory features thereby resulting in representations of sensory events that may be discriminated and recognized more easily and more accurately.
The efficacy of this recoding may be enhanced by the homeostatic adjustment of the threshold activation levels required to activate the branches and simulated neural elements. As one example of such an adjustment scheme, the threshold activation levels required to activate the branches and the simulated neural elements may be adjusted such that individual branches and individual simulated neural elements activate, on average, in response to a certain percentage of input sensory events.
At a high level, branches 104(a), 104(b), 104(c), 104(d), and 104(e) may be considered inputs to the cell body 102, and output 106 may be considered an output of the cell body 102. More particularly, an occurrence of a sensory event may trigger activity in one or more of branches 104(a), 104(b), 104(c), 104(d), and 104(e). In turn, activity in one or more of branches 104(a), 104(b), 104(c), 104(d), and 104(e) may cause cell body 102 to fire, thereby resulting in the generation of an output signal on output 106.
In some implementations, activity in the input branches 104(a), 104(b), 104(c), 104(d), and 104(e) may be binary. That is to say, activity in a particular branch may indicate simply that the branch is active (or inactive). In such implementations, cell body 102 may fire in response to a threshold number of the input branches 104(a), 104(b), 104(c), 104(d), and 104(e) being active concurrently (e.g., within a specified window of time).
Alternatively, in other implementations, activity in the input branches 104(a), 104(b), 104(c), 104(d), and 104(e) may carry more significance than simply signaling that particular input branches are active (or inactive). That is to say, the actual magnitude of the activity levels in the input branches 104(a), 104(b), 104(c), 104(d), and 104(e) may be significant. In such implementations, cell body 102 may fire when some combination of the concurrent activity levels in the input branches 104(a), 104(b), 104(c), 104(d), and 104(e) exceeds a threshold activity level and/or in response to a threshold number of the input branches 104(a), 104(b), 104(c), 104(d), and 104(e) being active concurrently. For example, the cell body 102 may fire in response to a weighted or un-weighted sum of the concurrent activity levels in the input branches 104(a), 104(b), 104(c), 104(d), and 104(e) exceeding a threshold activity level. Additionally or alternatively, the cell body 102 may fire in response to a non-linear combination of the concurrent activity levels in the input branches 104(a), 104(b), 104(c), 104(d), and 104(e) exceeding a threshold activity level.
The input branches 104(a), 104(b), 104(c), 104(d), and 104(e) may respond differently to different sensory events. That is to say, different input branches 104(a), 104(b), 104(c), 104(d), and 104(e) may be triggered by different sensory events and/or different activity levels may be generated in different input branches 104(a), 104(b), 104(c), 104(d), and 104(e) in response to different sensory events. Consequently, some sensory events may trigger the simulated neuron 100 to fire while other sensory events may not.
As discussed above, in some implementations, concurrent activity in a threshold number of branches of a simulated neuron may cause the cell body of the simulated neuron to fire. For example, as illustrated in
The threshold level of branch activity that is required to trigger the cell body of a simulated neuron to fire may be either a static parameter or a modifiable parameter capable of being updated manually and/or dynamically (e.g., without user intervention). In some implementations, it may be desirable for the cell body of a simulated neuron to fire in response to a certain percentage of input sensory events. For example, it may be determined that it is desirable for the cell body of a simulated neuron to fire in response to 25% of the sensory events to which the simulated neuron is exposed. Therefore, the threshold level of branch activity that is required to trigger the cell body of a particular simulated neuron to fire may be monitored and updated, over time, as the simulated neuron is exposed to different sensory events, such that the simulated neuron fires in response to approximately 25% of the sensory events to which it is exposed. For instance, if it is determined that, on average, the cell body is firing in response to less than 25% of the sensory events to which the simulated neuron is exposed, the threshold level of branch activity that is required to trigger the cell body to fire may be decreased. Similarly, if it is determined that, on average, the cell body is firing in response to more than 25% of the sensory events to which the simulated neuron is exposed, the threshold level of branch activity that is required to trigger the cell body to fire may be increased.
The simulated neuron 100 of
Individual simulated sensory fibers impinge various input branches of the simulated neurons such that activity on the simulated sensory fibers may be transmitted to the input branches. (Such connections are depicted in
Representations of sensory events are input to the simulated neural recoder 200 by the array 204 of simulated sensory fibers 204(1)-204(m). More particularly, each individual simulated sensory fiber corresponds to one or more sensory features and representations of particular sensory events are input to the simulated neural recoder 200 by activating the simulated sensory fibers that correspond to the sensory features that characterize the particular sensory events. In some implementations, activating sensory fibers may involve generating signals on the simulated sensory fibers that indicate merely that the sensory fibers are active. In other words, the signals on the simulated sensory fibers may indicate the presence of the sensory features and nothing more. In other implementations, activating sensory fibers may involve generating more nuanced signals on the simulated sensory fibers that carry more significance than merely indicating that the simulated sensory fibers are active (i.e., that the sensory features are present). For example, signals may be generated on the simulated sensory fibers such that the magnitudes of the signals are proportional to, or otherwise indicative of, the strength of the sensory features detected in connection with a sensory event.
In some implementations, the representations of sensory events input to the simulated neural recoder are generated by sensors configured to detect sensory features related to a class of sensory events. More particularly, sensors configured to detect particular sensory features related to the class of sensory events are associated with individual simulated sensory fibers of the simulated neural recoder 200 that correspond to the sensory features that the sensors are configured to detect. When a sensory event occurs, the sensors detect the sensory features that characterize the sensory event and activate the corresponding simulated sensory fibers.
In one particular example, olfactory sensors are configured to detect the presence of different olfactory features. When an odorant is exposed to the olfactory sensors, the particular olfactory features that are present in the odorant are detected by the olfactory sensors and communicated to the simulated neural recoder 200 by activating the simulated sensory fibers that correspond to the detected olfactory features.
The sensory feature signals representing sensory events that are input to the simulated neural recoder 200 via the array 204 of simulated sensory fibers 204(1)-204(m) propagate through the simulated neural recoder 200, ultimately resulting in a recoding of the input sensory feature signals into a pattern of active and inactive simulated neurons.
As the input sensory feature signals propagate along simulated sensory fibers 204(1), 204(m-3), and 204(m), the input sensory feature signals are communicated to the input branches of the array 202 of neurons 202(1)-202(n) that are impinged by the simulated sensory fibers 204(1), 204(m-3), and 204(m). More particularly, the input sensory feature signal carried by simulated sensory fiber 204(1) is communicated to input branches 202(1)(a), 202(2)(c), and 202(n)(a), the input sensory feature signal carried by simulated sensory fiber 204(m-3) is communicated to input branches 202(1)(e), 202(2)(c), and 202(n)(e), and the input sensory feature signal carried by simulated sensory fiber 204(m) is communicated to input branches 202(1)(a), 202(2)(d), and 202(n)(e).
The input branches of the neuronal array 202 are responsive to activity in the simulated sensory fibers that impinge the input branches and may be triggered by combinations of concurrent activity in the simulated sensory fibers that impinge the input branches. For example, a particular input branch may be triggered when a threshold number of the simulated sensory fibers that impinge the particular input branch are activated concurrently (e.g., within a specified window of time). Alternatively, a particular input branch may be triggered when a sum of the concurrent activity levels in the simulated sensory fibers that impinge the particular branch exceeds a threshold activity level. In such implementations, the connections between the particular input branch and the simulated sensory fibers that impinge the branch may be weighted, and the particular input branch may be triggered when a weighted sum of the concurrent activity levels in the simulated sensory fibers that impinge the particular branch exceeds a threshold activity level. In another example, a particular input branch may be triggered by one or more non-linear combinations of concurrent activity in the simulated sensory fibers that impinge the particular input branch.
As discussed above, each activated input branch has been activated in response to the combination of concurrent activity in the simulated sensory fibers that impinge the activated input branch. For example, input branch 202(1)(a) may have been activated in response to a sufficient level of concurrent activity in the simulated sensory fibers that impinge input branch 202(1)(a). That is to say, input branch 202(1)(a) may have been activated in response to a sufficient level of concurrent activity in simulated sensory fibers 204(1), 204(3), 204(m), and any other simulated sensory fibers that impinge input branch 202(1)(a) but that are not illustrated in
The firing of an input branch in response to inputting the representation of the sensory event to the simulated neural recoder 200 via the array 204 of simulated sensory fibers 204(1)-204(m) may signify an identification of a higher order feature of the sensory event. Stated differently, the firing of an input branch in response to inputting the representation of the sensory event to the neural recoder 200 via the array 204 of simulated sensory fibers 204(1)-204(m) may signify the joint presence of a set of features in the sensory event.
As discussed above in connection with
The simulated neural recoder 200 illustrated in
As discussed above in connection with
The activity in the branches ultimately generates activity in the simulated neural elements that results in a second pattern of active and inactive neurons that represents a recoding of the first pattern of sensory activity (226). In some implementations, activity in individual neurons may be generated in response to concurrent activity in a threshold number of the neurons' branches and/or in response to a sum of concurrent activity in the neurons' branches exceeding a threshold level. Additionally or alternatively, individual simulated neurons may be modeled as non-linear elements and activity may be generated in individual simulated neurons in response to different combinations of concurrent activity in the neurons' branches.
As discussed above, a simulated neural recoder can be used to recode input representations of sensory events into patterns of active and inactive simulated neurons.
While some overlap is apparent in the patterns 302, 304, and 306 of active and inactive simulated neurons illustrated in
As illustrated in
For example, output 352 corresponds to the first sensory event and, referring to
When a pattern of active and inactive simulated neurons is presented to the decoder 350 for decoding, outputs 352, 354, and 356 monitor and count the output of the simulated neurons to which they are assigned. Thereafter, the particular pattern presented to the decoder 350 for decoding, as well as the sensory event represented by the particular pattern presented to the decoder 350 for decoding, may be discerned by identifying the counter that registers the highest count in response to the particular pattern.
The example decoder 350 presented in
For example, similarly to the example decoder 350 presented in
After the decoder has been trained, the decoder accesses a particular recoded pattern of sensory features that characterize a particular sensory event (364). For example, a pattern of sensory activity may be input to a simulated neural recoder that recodes the initial pattern into a new pattern and inputs the new pattern to the decoder.
For each known recoded pattern, the decoder then calculates a likelihood that the known pattern corresponds to the accessed pattern (366). For example, output units corresponding to each known pattern and assigned to monitor the output of simulated neurons known to be active in the recoded patterns may count the number of active simulated neurons to which they are assigned. The number of active simulated neurons counted by each output unit may represent a measure of the likelihood that the accessed pattern corresponds to the known pattern that corresponds to the counter.
After the decoder has calculated measures of the likelihood that the accessed pattern corresponds to each of the known patterns, the decoder identifies the accessed pattern as corresponding to the known pattern that exhibits the greatest likelihood that it corresponds to the accessed pattern (368). For example, the accessed pattern may be identified as corresponding to the output unit that registers the highest count of active simulated neurons.
Simulated neurons, such as the example simulated neuron 100 of
Collectively, the simulated neuron generator control 402, the branch generator control 404, the simulated sensory fiber generator control 406, and the simulated sensory fiber and branch connection control 408 enable a user to design and generate a computer-implemented simulated neural recoder. More particularly, the simulated neuron generator control 402 enables a user to specify the number of simulated neurons that should be generated for the neuronal array of the simulated neural recoder, and the branch generator control 404 enables a user to specify the number of branches that should be generated for each simulated neuron. Similarly, the simulated sensory fiber generator control 406 enables a user to specify the number of simulated sensory fibers that should be generated as inputs to the simulated neural recoder. The number of simulated sensory fibers to be generated for a simulated neural recoder generally corresponds to the number of different input signals that may be used to represent sensory events belonging to the class of sensory events that the simulated neural recoder is configured to recode. For example, if a simulated neural recoder is configured to recode representations of olfactory sensory events that may be characterized by any combination of one hundred different olfactory features, the neural recoder generally will have one hundred simulated sensory fibers. Finally, the simulated sensory fiber and branch connection control 408 enables a user to specify the number of simulated sensory fibers that should impinge each branch of the simulated neural recoder.
As illustrated in
An array of simulated neurons having branches is generated (502). In some implementations, each of the simulated neurons may have the same number of branches. In other implementations, the simulated neurons may have different numbers of branches. Furthermore, in some implementations, the branches may have sub-branches. In addition, an array of sensor inputs to the array of simulated neurons is generated (504). Generally the array of sensor inputs will have a number of sensor inputs that is equal to the number of different input signals used to represent sensory events input into the sensory event recoder. After generating the array of simulated neurons having branches and the array of sensor inputs, individual sensor inputs are connected to individual branches (506). That is to say, for each branch of the array of simulated neurons, one or more sensor inputs are selected and subsequently connected to the branch. In some implementations, the sensor inputs selected to impinge each branch may be chosen randomly or pseudo-randomly. In other implementations, the sensor inputs selected to impinge each branch may be selected according to a pre-specified, non-random pattern, according to a user-specified pattern, in a self-organizing fashion, and/or in an activity-dependent fashion.
Referring again to
In some implementations, sensory events are represented by sensory event vectors. In such implementations, the individual elements of the sensory event vectors may correspond to different sensory features. As such, a particular sensory event may be represented by a sensory event vector in which the values of the individual elements of the vector are indicative of the presence/absence of sensory features in the sensory event and/or in which the values of the individual elements of the vector are indicative of the strength of the sensory features in the sensory event. For example, olfactory sensory events (e.g., odors) may be represented by sensory event vectors in which the elements of the sensory event vectors correspond to different olfactory features. As such, a particular odor may be represented by a sensory event vector in which the values of the individual elements of the vector are indicative of the presence/absence of olfactory features in the odor and/or the strength of the olfactory features in the odor.
As can be seen in
As illustrated in
In order for the decoder to identify each of the one hundred odorants of
Recoding the sensory event vectors of the collection 600 of sensory event vectors of
All of the sensory event vectors of the collection 600 of sensory event vectors of
Comparing
As illustrated in
As discussed above in connection with
The branch homeostasis control 910 enables a user to specify a desired level of activity for each of the branches of the simulated neural recoder. The branch homeostasis control 910 enables a user to activate the branch homeostasis control 910 by selecting the check box of the branch homeostasis control 910. As illustrated in
When the branch homeostasis control 910 is activated, after each sensory event vector is input to the simulated neural recoder, the simulated neural recoder adjusts the threshold activity level required to trigger each branch such that the probability that a particular branch will fire in response to any of the sensory event vectors approximates the desired level of activity for each of the branches specified in the branch homeostasis control 910. That is to say, for each branch, the simulated neural recoder repeatedly adjusts the threshold activity level in the simulated sensory fibers that impinge the branch required to trigger the branch to fire such that the probability that the branch will fire in response to any given sensory event vector approximates the desired level of activity for each of the branches specified in the branch homeostasis control 910.
Similarly, the neuron homeostasis control 912 enables a user to specify a desired level of activity for each of the simulated neurons of the simulated neural recoder. In addition, the neuron homeostasis control 912 enables a user to activate the neuron homeostasis control 912 by selecting the check box of the neuron homeostasis control 912. As illustrated in
When the neuron homeostasis control 912 is activated, after each sensory event vector is input to the simulated neural recoder, the simulated neural recoder adjusts the threshold activity level required to trigger each simulated neuron such that the probability that a particular simulated neuron will fire in response to any of the sensory event vectors approximates the desired level of activity for each of the simulated neurons specified in the neuron homeostasis control 912. That is to say, for each simulated neuron, the simulated neural recoder repeatedly adjusts the threshold activity level in the branches of the simulated neuron required to trigger the simulated neuron to fire such that the probability that the simulated neuron will fire in response to any given sensory event vector approximates the desired level of activity for each of the simulated neurons specified in the neuron homeostasis control 912.
The branch firing probability field 902 of
Comparing
All of the sensory event vectors of the collection 600 of sensory event vectors of
Comparing
The computer 1002 may be implemented by, for example, a general purpose computer capable of responding to and executing instructions in a defined manner, a personal computer, a special-purpose computer, a workstation, a server, a notebook or laptop computer, a personal digital assistant (PDA), a wireless telephone, a device, a component, other equipment, or some combination of these items that is capable of responding to and executing instructions. The computer 1002 and its associated sensor(s) 1010 may be incorporated into, for example, an appliance, a user-mountable device, a robot or some other piece of equipment. Particular implementations may not include the display 1004, the keyboard 106 and/or the pointing device 1008.
As illustrated in
The processor 1002(a) may be configured to receive instructions from, for example, a software application, a program, a piece of code, a device, a computer, a computer system, or a combination thereof, which independently or collectively direct operations, as described herein. The instructions may be embodied permanently or temporarily in any type of machine, component, equipment, storage medium, or propagated signal that is capable of being delivered to the processor 1002(a).
Memory 1002(b) may include random access memory (RAM) for storing computer instructions and data in a volatile memory device for processing by processor 1002(a). In addition, memory 1002(b) also may include read-only memory (ROM) for storing invariant low-level system code or data for basic system functions such as basic I/O, startup, or reception of keystrokes from keyboard 1006 in a non-volatile memory device. Furthermore, memory 1002(b) may store computer executable instructions for an operating system and/or application programs, including, for example, sensory event recoding and decoding applications, as well as data files. During operation, computer executable instructions may be loaded into a region of RAM in memory 1002(a) so that they may be accessed by processor 1002 in order to execute software programs.
I/O interfaces 1002(c) may include a display interface that enables computer 1002 to render graphics, images, and/or text on display 1004. In addition, I/O interfaces 1002(c) may include a keyboard interface that enables computer 1002 to receive keystroke input from keyboard 1006, a pointing device interface that enables computer 1002 to receive input from pointing device 1008, and a communications interface that enables computer 1002(c) to exchange data or other information with a communications network (not shown). I/O interfaces 1002(c) also may include a sensor interface that enables computer 1002 to receive input sensory event information from the one or more sensors 1010 that sense different features of sensory events. After such sensory event information is received, computer 1002 may recode and/or decode the sensory event information.
The system 1000 for identifying sensory events of
As discussed above, the efficacy of a neural recoder composed of one or more simulated branched neural elements may be enhanced by the homeostatic adjustment of the threshold activation levels required to activate the branches and simulated neural elements of the neural recoder. For example, as discussed above in connection with
As illustrated in
Referring to
In some implementations, the branches 1104, 1106, and 1108 may be configured to activate in response to threshold numbers of inputs that impinge them being concurrently active (e.g., threshold numbers of inputs being active during a specified window of time). Additionally or alternatively, the branches 1104, 1106, and 1108 may be configured to activate in response to sums of concurrently received input signals (e.g., sums of input signals received during specified windows of time) exceeding threshold levels. In such implementations, the sums of concurrently received input signals may be straight linear sums of concurrently received input signals or the sums of concurrently received input signals may be weighted sums of concurrently received input signals. For example, the connections between the inputs and the branches 1104, 1106, and 1108 may be assigned various different weights, and sums of concurrently received input signals may be calculated based on the weights assigned to the different connections between the inputs and the branches 1104, 1106, and 1108. In other implementations, the branches 1104, 1106, and 1108 may be configured to activate in response to non-linear combinations of concurrently received input signals (e.g., non-linear combinations of input signals received during specified windows of time) exceeding a threshold value.
In some cases, the threshold levels of concurrent activity required to trigger the branches 1104, 1106, and 1108 may be the same for each branch while, in other cases, the threshold levels of concurrent activity required to trigger the branches 1104, 1106, and 1108 may be different for different branches.
The activation frequencies of the branches 1104, 1106, and 1108 may be monitored and the threshold levels of concurrent activity required to trigger their activation may be adjusted such that their activation frequencies approximate desired activation frequencies.
For example, if the desired activation frequency for a particular branch is 25%, but it is observed that the particular branch is activating less than 25% of the time, the threshold level of concurrent activity required to trigger the particular branch may be decreased. Similarly, if it is observed that the particular branch is activating more than 25% of the time, the threshold level of concurrent activity required to trigger the particular branch may be increased.
Consider branch 1104 and assume that the desired activation frequency for branch 1104 is 25%. Further assume that branch 1104 initially is configured to activate when four out of the eight inputs 1110(a), 1110(b), 1110(c), 1110(d), 1110(e), 1110(f), 1110(g), and 1110(h) that impinge branch 1104 are concurrently active. If it is observed that branch 1104 is activating less than 25% of the time, the number of concurrently active inputs required to trigger branch 1104 may be reduced. For example, the number of concurrently active inputs required to trigger branch 1104 may be reduced to three in response to observing that branch 1104 is activating less than 25% of the time.
Similarly, if it is observed that branch 1104 is activating more than 25% of the time, the number of concurrently active inputs required to trigger branch 1104 may be increased. For example, assuming again that branch 1104 initially is configured to activate when four out of the eight inputs 1110(a), 1110(b), 1110(c), 1110(d), 1110(e), 1110(f), 1110(g), and 1110(h) that impinge branch 1104 are concurrently active, the number of concurrently active inputs required to trigger branch 1104 may be increased to five in response to observing that branch 1104 is activating more than 25% of the time. In this manner, the threshold level of concurrent activity required to trigger branch 1104 may be continually regulated so that branch 1104 has a branch activation frequency that approximates 25%.
It should be noted that, in some implementations, the desired activation frequencies for the branches 1104, 1106, and 1108 may be the same, while, in other implementations, the desired activation frequencies for the branches 1104, 1106, and 1108 may be different.
Like the branches 1104, 1106, and 1108, the simulated cell body 1102 is configured to activate in response to some combination of concurrent activity in the branches 1104, 1106, and 1108. More particularly, the simulated cell body 1102 is configured to activate in response to a threshold level of concurrent activity in the branches 1104, 1106, and 1108.
In some implementations, the simulated cell body 1102 may be configured to activate in response to threshold numbers of branches being concurrently active (e.g., a threshold number of branches being active during a specified window of time). Additionally or alternatively, the simulated cell body 1102 may be configured to activate in response to a sum of concurrent activity levels in the branches 1104, 1106, and 1108 (e.g., a sum of the activity levels in the branches 1104, 1106, and 1108 during specified window of time) exceeding a threshold level. In such implementations, the sum of concurrent activity levels may be a straight linear sum of the concurrent activity levels in the branches 1104, 1106, and 1108 or the sum of concurrent activity levels in the branches 1104, 1106, and 1108 may be a weighted sum of the concurrent activity levels in the branches 1104, 1106, and 1108. For example, the branches 1104, 1106, and 1108 may be assigned various different weights, and the sum of the concurrent activity levels in the branches 1104, 1106, and 1108 may be calculated based on the weights assigned to the different branches 1104, 1106, and 1108. In other implementations, the simulated cell body 1102 may be configured to activate in response to a non-linear combination of concurrent activity in the branches 1104, 1106, and 1108 (e.g., a non-linear combination of activity in the branches 1104, 1106, and 1108 during specified windows of time) exceeding a threshold value.
The activation frequency of the simulated cell body 1102 is monitored and the threshold level of concurrent activity required to trigger activation is adjusted such that the cell body's activation frequency approximates a desired activation frequency.
Assume that the desired activation frequency for the simulated cell body 1102 is 25% and that the simulated cell body 1102 initially is configured to activate when two of the three branches 1104, 1106, and 1108 are concurrently active. If it is observed that the simulated cell body 1102 is activating less than 25% of the time, the number of active branches required to trigger the simulated cell body may be decreased to one. Similarly, if it is observed that the simulated cell body 1102 is activating more than 25% of the time, the number of concurrently active branches required to trigger the simulated cell body 1102 may be increased to three.
The regulation of the threshold levels of concurrent activity required to trigger the activation of the branches 1104, 1106, and 1108 and the regulation of the threshold levels of concurrent activity required to trigger the simulated cell body 1102 such that their activation frequencies approximate desired activation frequencies may be referred to as homeostatic thresholding because such regulation may function to achieve relatively stable (i.e., homeostatic) activation frequencies in the branches 1104, 1106, and 1108 and simulated cell body 1102.
According to the process 1200, desired activity rates are established for the branches of the simulated neural element (1202). The desired activity rates may be the same for each branch or the desired activity rates may be different for each branch. In addition, a desired activity rate is established for the simulated cell body (1204).
Thereafter, as the simulated neural element is exposed to different sensory events, the actual activity rates of the branches are monitored (1206). In some implementations, monitoring the actual activity rates of the simulated neural element may include averaging activity in the branches over a period of time. In such implementations, relatively recent activity may be weighted more heavily than less recent activity when averaging activity in the branches. In addition, the actual activity rate of the simulated cell body also is monitored as the simulated neural element is exposed to different sensory events (1208). As with monitoring the actual activity rates of the branches, in some implementations, monitoring the actual activity rate of the simulated cell body may include averaging activity in the simulated cell body over a period of time. In such implementations, relatively recent activity may be weighted more heavily than less recent activity when averaging activity in the simulated cell body.
In addition, the branch activation threshold levels are regulated based on the actual activity rates of the branches in order to achieve actual branch activation rates that approximate the desired activity rates for the branches (1210). Similarly, the cell body activation threshold level is regulated based on the actual activity rate of the simulated cell body in order to achieve an actual cell body activation rate that approximates the desired activity rate for the simulated cell body (1212).
The systems and techniques described above are not limited to any particular hardware or software configuration. Rather, they may be implemented using hardware, software, or a combination of both. In addition, the methods and processes described may be implemented as computer programs that are executed on programmable computers comprising at least one processor and at least one data storage system. The computer programs may be implemented in a high-level compiled or interpreted programming language, or, additionally or alternatively, the computer programs may be implemented in assembly or other lower level languages, if desired. Such computer programs typically will be stored on computer-usable storage media or devices (e.g., CD-Rom, RAM, or magnetic disk). When read into a processor of a computer and executed, the instructions of the programs may cause a programmable computer to carry out the various operations described above.
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, useful results still may be achieved if aspects of the disclosed techniques are performed in a different order and/or if components in the disclosed systems are combined in a different manner and/or replaced or supplemented by other components. Accordingly, other implementations are within the scope of the following claims.
Claims
1. A method for recoding a pattern of sensory activity comprising:
- inputting a first pattern of sensory activity on a set of sensor inputs to a simulated neural circuit that includes an array of branched neural elements, the branched neural elements each having at least one output and one or more input branches that are impinged by subsets of the set of sensor inputs;
- generating activity in the branches based on the first pattern of activity input to the simulated neural circuit; and
- generating a second pattern of activity in the outputs of the array of branched neural elements based on the activity in their branches, the second pattern of activity representing a recoding of the first pattern of sensory activity.
2. The method of claim 1 wherein:
- generating activity in the branches comprises activating one or more branches impinged by one or more of the activated sensor inputs; and
- generating a second pattern of activity in the outputs of the array of branched neural elements comprises activating a subset of the array of branched neural elements, the activated branched neural elements having at least one activated branch.
3. The method of claim 2 wherein the first pattern of sensory activity reflects one or more sensory features.
4. The method of claim 2 wherein:
- activating one or more branches impinged by one or more of the activated sensor inputs comprises activating only those branches for which the activity in the subsets of sensor inputs that impinge the branches exceeds a first threshold activity level during a first specified window of time; and
- activating a subset of the array of branched neural elements comprises activating only those neural elements for which the activity in the neural elements' input branches exceeds a second threshold activity level during a second specified window of time.
5. The method of claim 4 wherein:
- the second threshold activity level is a threshold number of activated branches; and
- activating a subset of the array of branched neural elements comprises activating only those branched neural elements that have a number of activated branches during the second specified window of time that exceeds the threshold number of activated branches.
6. The method of claim 5 wherein the threshold number of activated branches is different for different branched neural elements.
7. The method of claim 5 wherein the threshold number of activated branches is the same for each branched neural element.
8. The method of claim 1 wherein the first pattern of sensory activity includes different non-binary signal levels in the set of sensor inputs.
9. The method of claim 8 wherein:
- generating activity in the branches comprises generating non-binary signal levels in the branches in response to the non-binary signal levels in the sensor inputs that impinge the branches; and
- generating a second pattern of activity in the array of branched neural elements comprises activating branched neural elements as a function of the activity levels in the branches of the branched neural elements.
10. The method of claim 9 wherein generating activity in the branches in response to the non-binary signal levels in the sensor inputs that impinge the branches comprises activating branches in which, during a specified window in time, a magnitude of the activity levels in the sensor inputs that impinge the branches exceeds a threshold branch activation level.
11. The method of claim 1 wherein:
- inputting the first pattern of sensory activity comprises inputting a sensory event vector, and
- elements of the sensory event vector correspond to individual sensory features of a sensory event.
12. The method of claim 1 further comprising:
- detecting one or more sensory features associated with a sensory event; and
- generating the first pattern of sensory activity based on the detected sensory features such that the first pattern of sensory activity reflects the detected sensory features.
13. The method of claim 12 wherein detecting one or more sensory features associated with a sensory event comprises using an array of sensory feature sensors to detect the sensory features.
14. The method of claim 1 further comprising decoding the second pattern of activity to identify a particular sensory event.
15. The method of claim 14 wherein:
- the first pattern of sensory activity reflects one or more olfactory sensory features associated with an odorant such that the second pattern of activity represents a recoding of the sensory features associated with the odorant; and
- decoding the second pattern of activity to identify a particular sensory event comprises decoding the second pattern of activity to identify the odorant.
16. The method of claim 14 wherein:
- the first pattern of sensory activity reflects one or more visual sensory features associated with an object such that the second pattern of activity represents a recoding of the visual sensory features associated with the object; and
- decoding the second pattern of activity to identify a particular sensory event comprises decoding the second pattern of activity to identify the object.
17. The method of claim 1 wherein:
- the first pattern of sensory activity represents a set of sensory features associated with a sensory event; and
- generating a second pattern of activity in the array of branched neural elements that represents a recoding of the first pattern of sensory activity comprises generating a second pattern of activity in the array of branched neural elements that represents a combination of higher order features associated with the sensory event, the higher order features associated with the sensory event signifying the joint presence of one or more subsets of sensory features within the set of sensory features associated with the sensory event.
18. A computer program for recoding a first pattern of sensory activity, the computer program being embodied on a tangible, computer-readable medium and including instructions that, when executed, cause a processor to:
- input a first pattern of sensory activity to a simulated neural circuit that includes a set of sensor inputs and an array of branched neural elements, the branched neural elements each having at least one output and one or more branches that are impinged by subsets of the sensor inputs;
- generate activity in the branches based on the first pattern of activity input to the simulated neural circuit; and
- generate a second pattern of activity in the outputs of the array of branched neural elements based on the activity in their branches, the second pattern of activity representing a recoding of the first pattern of sensory activity.
19. The computer program of claim 18 wherein:
- the instructions that, when executed, cause a processor to generate activity in the branches comprise instructions that, when executed, cause a processor to activate one or more branches impinged by one or more of the activated sensor inputs; and
- the instructions that, when executed, generate a second pattern of activity in the outputs of the array of branched neural elements comprise instructions that, when executed, cause a processor to activate a subset of the array of branched neural elements, the activated branched neural elements having at least one activated branch.
20. The computer program of claim 19 wherein the first pattern of sensory activity reflects one or more sensory features.
21. The computer program of claim 19 wherein:
- the instructions that, when executed, cause a processor to activate one or more branches impinged by one or more of the activated sensor inputs comprise instructions that, when executed, cause a processor to activate only those branches for which the activity in the subsets of sensor inputs that impinge the branches exceeds a first threshold activity level during a first specified window of time; and
- the instructions that, when executed, cause a processor to activate a subset of the array of branched neural elements comprise instructions that, when executed, cause a processor to activate only those neural elements for which the activity in the neural elements' input branches exceeds a second threshold activity level during a second specified window of time.
22. The computer program of claim 21 wherein:
- the second threshold activity level is a threshold number of activated branches; and
- the instructions that, when executed, cause a processor to activate a subset of the array of branched neural elements comprise instructions that, when executed, cause a processor to activate only those branched neural elements that have a number of activated branches during the second specified window of time that exceeds the threshold number of activated branches.
23. The computer program of claim 18 wherein:
- the first pattern of sensory activity includes different non-binary signal levels in the set of sensor inputs;
- the instructions that, when executed, cause a processor to generate activity in the branches comprise instructions that, when executed, cause a processor to generate non-binary signal levels in the branches in response to the non-binary signal levels in the sensor inputs that impinge the branches; and
- the instructions that, when executed, cause a processor to generate a second pattern of activity in the array of branched neural elements comprise instructions that, when executed, cause a processor to activate branched neural elements as a function of the activity levels in the branches of the branched neural elements.
24. The computer program of claim 23 wherein the instructions that, when executed, generate activity in the branches in response to the non-binary signal levels in the sensor inputs that impinge the branches comprise instructions that, when executed, cause a processor to activate branches in which, during a specified window in time, a magnitude of the activity levels in the sensor inputs that impinge the branches exceeds a threshold branch activation level.
25. The computer program of claim 18 wherein:
- the instructions that, when executed, cause a processor to input the first pattern of sensory activity comprise instructions that, when executed, cause a processor to input a sensory event vector; and
- elements of the sensory event vector correspond to individual sensory features of a sensory event.
26. The computer program of claim 18 further comprising instructions that, when executed, cause a processor to:
- detect one or more sensory features associated with a sensory event; and
- generate the first pattern of sensory activity based on the detected sensory features such that the first pattern of sensory activity reflects the detected sensory features.
27. The computer program of claim 26 wherein the instructions that, when executed, cause a processor to detect one or more sensory features associated with a sensory event comprise instructions that, when executed, cause a processor to use an array of sensory feature sensors to detect the sensory features.
28. The computer program of claim 18 further comprising instructions that, when executed, cause a processor to decode the second pattern of activity to identify a particular sensory event.
29. The computer program of claim 28 wherein:
- the first pattern of sensory activity reflects one or more olfactory sensory features associated with an odorant such that the second pattern of activity represents a recoding of the sensory features associated with the odorant; and
- the instructions that, when executed, cause a processor to decode the second pattern of activity to identify a particular sensory event comprise instructions that, when executed, cause a processor to decode the second pattern of activity to identify the odorant.
30. The computer program of claim 28 wherein:
- the first pattern of sensory activity reflects one or more visual sensory features associated with an object such that the second pattern of activity represents a recoding of the visual sensory features associated with the object; and
- the instructions that, when executed, cause a processor to decode the second pattern of activity to identify a particular sensory event comprise instructions that, when executed, cause a processor to decode the second pattern of activity to identify the object.
31. The computer program of claim 18 wherein:
- the first pattern of sensory activity represents a set of sensory features associated with a sensory event; and
- the instructions that, when executed, cause a processor to generate a second pattern of activity in the array of branched neural elements that represents a recoding of the first pattern of sensory activity comprise instructions that, when executed, cause a processor to generate a second pattern of activity in the array of branched neural elements that represents a combination of higher order features associated with the sensory event, the higher order features associated with the sensory event signifying the joint presence of one or more subsets of sensory features within the set of sensory features associated with the sensory event.
32. A sensory event recoding system comprising:
- sensor inputs that are configured to transmit a first pattern of sensory activity; and
- simulated neural elements having one or more branches that are impinged by different subsets of the sensor inputs, the branches being configured to activate in response to activity in the impinging sensor inputs, and the simulated neural elements being configured to generate a second pattern of activity that represents a recoding of the first pattern of sensory activity by activating in response to activity in their input branches.
33. The system of claim 32 further comprising sensory feature sensors configured to detect different sensory features and generate the first pattern of sensory activity, wherein:
- the first pattern of sensory activity is representative of detected sensory features, and
- the sensor inputs are further configured to receive the first pattern of sensory activity from the sensory feature sensors.
34. The system of claim 32 further comprising a sensory event decoder configured to recognize the second pattern of activity in the simulated neural elements and to identify a particular sensory event that corresponds to the recognized second pattern of activity.
35. The system of claim 34 wherein:
- the branches configured to activate in response to activity in the impinging sensor inputs comprise branches configured to activate in response to a combination of activity in the impinging sensor inputs exceeding a first threshold activity level during a first specified window of time; and
- the simulated neural elements configured to generate a second pattern of activity comprise simulated neural elements configured to activate in response to a combination of activity in their branches exceeding a second threshold activity level during a second specified window of time.
36. The system of claim 35 wherein the first threshold activity level is the same for every branch and the second threshold activity level is the same for every simulated neural element.
37. The system of claim 35 wherein the first threshold activity level varies for different branches and the second threshold activity level varies for different simulated neural elements.
38. The system of claim 34 wherein:
- the simulated neural elements configured to activate in response to activity in their input branches comprise simulated neural elements configured to determine a number of their branches that are active during a specified window of time and to activate in response to the number of their branches that are active during the specified window of time exceeding a threshold number of active branches.
39. The system of claim 38 wherein the threshold number of active branches is the same for every simulated neural element.
40. The system of claim 38 wherein the threshold number of active branches varies for different simulated neural elements.
41. The system of claim 34 wherein:
- the decoder comprises a plurality of output units, wherein each output unit corresponds to a known category of sensory objects, is coupled to the simulated neural elements known to activate in response to the known category of objects, and is configured to be activated by activity in the simulated neural elements to which it is coupled; and
- the decoder is configured to identify the particular category of sensory objects by identifying a particular output unit with the greatest response to the second pattern of activity in the plurality of simulated neural elements.
42. The system of claim 34 wherein the sensory feature sensors comprise olfactory sensory feature sensors configured to detect different olfactory sensory features and to generate a first pattern of sensory activity that is representative of olfactory features detected in response to exposing an odorant to the sensory feature sensors; and
- the sensory event decoder is configured to recognize the second pattern of activity in the simulated neural elements and to identify the odorant based on the second pattern of activity.
43. The system of claim 34 wherein the sensory feature sensors comprise visual sensory feature sensors configured to detect different visual sensory features and to generate a first pattern of sensory activity that is representative of an object exposed to the sensory feature sensors; and
- the sensory event decoder is configured to recognize the second pattern of activity in the simulated neural elements and to identify the object based on the second pattern of activity.
44. The system of claim 34 wherein:
- the sensor inputs are configured to transmit a first pattern of sensory activity that represents a set of sensory features associated with a sensory event; and
- the neural elements are configured to generate a second pattern of activity that represents a recoding of the first pattern of sensory activity based on higher order features associated with the sensory event, the higher order features associated with the sensory event signifying the joint presence of one or more subsets of sensory features within the set of sensory features associated with the sensory event.
45. A method for generating a neural circuit for recoding sensory events, the method comprising:
- generating sensor inputs, some subset of which is activated by each sensory event;
- generating simulated neurons having branches;
- connecting different subsets of sensor inputs to individual branches of the simulated neurons;
- configuring each branch to activate in response to one or more combinations of activity in the sensor inputs that impinge the branch; and
- configuring each simulated neuron to activate in response to one or more combinations of activity in the simulated neuron's branches.
46. The method of claim 45 wherein connecting different subsets of sensor inputs to the individual branches of the simulated neurons comprises randomly connecting individual sensor inputs to individual branches of the simulated neurons.
47. The method of claim 45 wherein connecting different subsets of sensor inputs to the individual branches of the simulated neurons comprises connecting the sensor inputs to the individual branches of the simulated neurons in a self-organizing, activity-dependent manner.
48. A sensory event recognition system comprising:
- sensors configured to transmit a first pattern of sensory activity; and
- simulated neural elements incorporating branches that are coupled to subsets of the sensors, the simulated neural elements being configured to receive the first pattern of sensory activity from the sensors at the branches and to recode the first pattern of sensory activity into a second pattern of active and inactive simulated neural elements.
49. A method for recoding a sensory event based on higher order features of the sensory event, the method comprising:
- receiving, at a neural circuit that includes one or more branched neuronal units, an input pattern of sensory activity, the input pattern of sensory activity representing sensory features associated with a sensory event;
- inputting the received input pattern of sensory activity to the neural circuit; and
- using the neural circuit to recode the input pattern of sensory activity into a neural representation of the input pattern of sensory activity, the neural representation of the input pattern representing a combination of higher order features associated with the sensory event, the higher order features associated with the sensory event signifying the joint presence of particular sensory features associated with the sensory event.
50. The method of claim 49 wherein using the neural circuit to recode the input pattern of sensory activity into a neural representation of the input pattern of sensory activity comprises recognizing the higher order features associated with the sensory event by identifying concurrent activity in subsets of branches of the branched neural elements, the concurrent activity in the subsets of branches of the branched neural elements signifying the joint presence of the particular sensory features associated with the sensory event.
Type: Application
Filed: May 1, 2008
Publication Date: Jan 8, 2009
Applicant: Evolved Machines, Inc. (West Palm Beach, FL)
Inventor: Paul A. Rhodes (Palm Beach, FL)
Application Number: 12/113,837
International Classification: A61N 1/36 (20060101);