The present disclosure is drawn to the reduction of parameters in fully connected layers of neural networks. For a layer whose output is defined by y=Wx, where y ∈ Rm is the output vector, x ∈ Rn is the input vector, and W ∈ Rmxn is a matrix of connection parameters, matrices Uij and Vij are defined and submatrices Wij are computed as the product of Uij and Vij, so that Wij=VijUij, and W is obtained by appending submatrices Wi,j.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method for creating a neural network layer, the method comprising: partitioning an m-dimensional output vector y into equally sized subvectors yi of length s and an n-dimensional input vector x into equally sized subvectors xj of length t, where s is a divisor of m and t is a divisor of n; defining matrices Uij ∈ Rrxt of rank r and matrices Vij ∈ Rsxr of rank r for i=(1, . . . , m/s) and j=(1, . . . , n/t), where r≦min (s, t); computing a plurality of submatrices Wij as a product of matrices Uij and matrices Vij; and determining the output vector y from y=W·x, where W is a matrix composed of the plurality of submatrices Wij for i=(1, . . . , m/s) and j=(1, . . . , n/t). 2. The method of claim 1, wherein determining the output vector y from y=W·x comprises: computing yi=Σj=1n/t(Wijxj); and determining the output vector y as y=[y1, y2, y3, . . . , ym/s]. 3. The method of claim 1, wherein determining the output vector y from y=W·x comprises: appending submatrices Wij to obtain matrix W; and computing y=W·x. 4. The method of claim 1, further comprising storing the matrices Vij and Uij. 5. The method of claim 4, further comprising retrieving the stored matrices Vij and Uij to compute the submatrices Wij. 6. The method of claim 1, wherein the neural network is a feedforward neural network. 7. The method of claim 1, wherein the neural network is a deep neural network. 8. The method of claim 1, wherein defining matrices Vij and Uij is performed during a training phase of the neural network. 9. A system for creating a neural network layer, the system comprising: a processing unit; and a non-transitory memory communicatively coupled to the processing unit and comprising computer-readable program instructions executable by the processing unit for: partitioning an m-dimensional output vector y into equally sized subvectors yi of length s and an n-dimensional input vector x into equally sized subvectors xj of length t, where s is a divisor of m and t is a divisor of n; defining matrices Uij ∈ Rrxt of rank r and matrices Vij ∈ Rsxr of rank r for i=(1, . . . , m/s) and j=(1, . . . , n/t), where r≦min (s, t); computing a plurality of submatrices Wij as a product of matrices Uij and matrices Vij; and determining the output vector y from y=W·x, where W is a matrix composed of all submatrices Wij for i=(1, . . . , m/s) and j=(1, n/t) in the plurality. 10. The system of claim 9, wherein defining matrices Vij and Uij is performed during a training phase of the neural network. 11. A method for implementing a neural network layer, the method comprising: receiving an n-dimensional input vector x; retrieving from memory matrices Uij ∈ Rrxt of rank r and matrices Vij ∈ Rsxr of rank r, partitioning the input vector x into equally sized subvectors xj of length t; computing submatrices Wij as a product of matrices Uij and matrices Vij; and determining the output vector y from y=W·x, where W is a matrix composed of all submatrices Wij for i=(1, . . . , m/s) and j=(1, . . . , n/t), where t is a divisor of n, s is a divisor of m, and r≦min (s, t). 12. The method of claim 11, wherein determining the output vector y from y=W·x comprises: computing yi=Σj=1n/t(Wijxj); and determining the output vector y as y=[y1, y2, y3, . . . , ym/s]. 13. The method of claim 11, wherein determining the output vector y from y=W·x comprises: appending submatrices Wij to obtain matrix W; and computing y=W·x. 14. The method of claim 11, wherein the neural network is a feedforward neural network. 15. The method of claim 11, wherein the neural network is a deep neural network. 16. A system for implementing a neural network layer, the system comprising: a processing unit; and a non-transitory memory communicatively coupled to the processing unit and comprising computer-readable program instructions executable by the processing unit for: receiving an n-dimensional input vector x; retrieving from memory matrices Uij ∈ Rrxt of rank r and matrices Vij ∈ Rsxr of rank r, partitioning the input vector x into equally sized subvectors xj of length t; computing submatrices Wij as a product of the matrix Uij and the matrix Vij; and determining the output vector y from y=W·x, where W is a matrix composed of all submatrices Wij for i=(1, . . . , m/s) and j=(1, . . . , n/t), where t is a divisor of n, s is a divisor of m, and r≦min (s, t). 17. The system of claim 16, wherein determining the output vector y from y=W·x comprises: computing yiΣj=1n/t(Wijxj); and determining the output vector y as y=[y1, y2, y3, . . . , ym/s]. 18. The system of claim 16, wherein determining the output vector y from y=W·x comprises: appending submatrices Wij to obtain matrix W; and computing y=W·x. 19. The system of claim 16, wherein the neural network is a feedforward neural network. 20. The system of claim 16, wherein the neural network is a deep neural network.