Sparse coding with Memristor networks
First Claim
1. A system for sparse coding with an array of resistive memory devices, comprising:
- an array of resistive memory devices arranged in columns and rows to form a matrix, wherein each column represents a potential feature of an input;
an interface circuit electrically coupled to the matrix, wherein the interface circuit cooperatively operates with the array of resistive memory devices to perform computing in the array of resistive memory devices, wherein the interface circuit controls a computation of;
(a) a first dot product operation by feeding an input vector forward through the matrix to yield an output vector, where the input vector is a column vector with each element representing intensity of a pixel in an image and the output vector is row vector with each element representing the dot product between the input vector and a feature vector stored in a corresponding column of the matrix;
(b) a second dot product operation by feeding a neuron activity vector backward through the matrix to yield an intermediate result vector, where the neuron activity vector is a row vector representing a level of activity from all of the neurons in the matrix and the intermediate result vector is a column vector;
(c) a new input vector by subtracting the intermediate result vector from the input vector; and
(d) a third dot product operation by feeding the new input vector forward through the matrix to yield a new output vector, where the output vector is a row vector with each element representing the dot product between the input vector and the feature vector stored in the corresponding column of the matrix.
1 Assignment
0 Petitions
Accused Products
Abstract
Sparse representation of information performs powerful feature extraction on high-dimensional data and is of interest for applications in signal processing, machine vision, object recognition, and neurobiology. Sparse coding is a mechanism by which biological neural systems can efficiently process complex sensory data while consuming very little power. Sparse coding algorithms in a bio-inspired approach can be implemented in a crossbar array of memristors (resistive memory devices). This network enables efficient implementation of pattern matching and lateral neuron inhibition, allowing input data to be sparsely encoded using neuron activities and stored dictionary elements. The reconstructed input can be obtained by performing a backward pass through the same crossbar matrix using the neuron activity vector as input. Different dictionary sets can be trained and stored in the same system, depending on the nature of the input signals. Using the sparse coding algorithm, natural image processing is performed based on a learned dictionary.
16 Citations
20 Claims
-
1. A system for sparse coding with an array of resistive memory devices, comprising:
-
an array of resistive memory devices arranged in columns and rows to form a matrix, wherein each column represents a potential feature of an input; an interface circuit electrically coupled to the matrix, wherein the interface circuit cooperatively operates with the array of resistive memory devices to perform computing in the array of resistive memory devices, wherein the interface circuit controls a computation of; (a) a first dot product operation by feeding an input vector forward through the matrix to yield an output vector, where the input vector is a column vector with each element representing intensity of a pixel in an image and the output vector is row vector with each element representing the dot product between the input vector and a feature vector stored in a corresponding column of the matrix; (b) a second dot product operation by feeding a neuron activity vector backward through the matrix to yield an intermediate result vector, where the neuron activity vector is a row vector representing a level of activity from all of the neurons in the matrix and the intermediate result vector is a column vector; (c) a new input vector by subtracting the intermediate result vector from the input vector; and (d) a third dot product operation by feeding the new input vector forward through the matrix to yield a new output vector, where the output vector is a row vector with each element representing the dot product between the input vector and the feature vector stored in the corresponding column of the matrix. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An interface circuit storing processor-executable instructions for sparse coding with an array of resistive memory devices arranged in columns and rows to form a matrix, the instructions comprising:
-
(a) computing a first dot product operation by feeding an input vector forward through a matrix to yield an output vector, where the input vector is a column vector with each element representing intensity of a pixel in an image and the output vector is row vector with each element representing the dot product between the input vector and a feature vector stored in a corresponding column of the matrix; (b) computing a second dot product operation by feeding a neuron activity vector backward through the matrix to yield an intermediate result vector, where the neuron activity vector is a row vector representing a level of activity from all of the neurons in the matrix and the intermediate result vector is a column vector; (c) computing a new input vector by subtracting the intermediate result vector from the input vector; and (d) computing a third dot product operation by feeding the new input vector forward through the matrix to yield a new output vector, where the output vector is a row vector with each element representing the dot product between the input vector and the feature vector stored in the corresponding column of the matrix. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification