Weight Matrix Compression via Kronecker Decomposition

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In machine learning, the large size of initial weight matrices necessitates excessive memory space and lacks efficient methods for reusing hardware across different layers, leading to inefficient hardware usage and high computational costs.

Innovation Solution

The method involves generating a first and second weight matrix as a Kronecker product of the transposed second matrix and the first matrix, optimizing these matrices, and using them to perform calculations that reduce memory requirements by vectorizing data, allowing for reduced hardware usage and improved computation speed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If an initial weight matrix is used for weighted calculations in machine learning, then the calculation can be performed, but the memory space required becomes excessively large

Engineering Contradiction:
Improvecalculation accuracyVSAvoidmemory space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The initial weight matrix is segmented into two separate weight matrices (first weight matrix and second weight matrix). The Kronecker product structure allows the original matrix to be represented as the outer product of these two smaller matrices, significantly reducing the memory space required to store the weights while maintaining the same computational functionality.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If a large initial weight matrix is used, then the model can capture complex patterns, but hardware resources are excessively consumed

Engineering Contradiction:
Improvemodel capabilityVSAvoidhardware resource requirements
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The large weight matrix is divided into two smaller matrices, reducing the hardware resources needed to store and process the weights. The segmented structure maintains the model's capability to capture complex patterns through the Kronecker product relationship.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The weight matrix representation is changed from a single large matrix to a product of two smaller matrices. This parameter change in the mathematical representation reduces the total number of parameters that need to be stored and transmitted, thereby reducing hardware resource requirements.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If the initial weight matrix is used directly, then the calculation is straightforward, but computation efficiency is reduced due to large data size

Engineering Contradiction:
Improvecalculation simplicityVSAvoidcomputation efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The computation is segmented into multiple steps: first processing with the first weight matrix, then processing the intermediate result with the second weight matrix. This segmentation reduces the computational burden at each step compared to using the full large matrix, improving overall computation efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The data is pre-processed by the first weight matrix before being input to the second weight matrix. This preliminary action breaks down the computation into manageable stages, improving efficiency by avoiding the need to process all data through a single large matrix operation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10628515B2Method for compressing initial weight matrix capable of reducing memory space
Publication Date: 2020.04.21 KAIKUTEK INC
  • US10628515B2 patent drawing
  • US10628515B2 patent drawing
  • US10628515B2 patent drawing

AI summary

A method for compressing an initial weight matrix includes generating a first weight matrix and a second weight matrix according to the initial weight matrix where the initial weight matrix is a Kronecker product of a transposed matrix of the second weight matrix and the first weight matrix; optimizing the first and second weight matrixes to generate an optimized first weight matrix and an optimized second weight matrix; generating a processed data matrix according to an initial data matrix where the initial data matrix is vectorization of the processed data matrix; multiplying the processed data matrix by the optimized first weight matrix to generate a first product; multiplying the optimized second weight matrix by the first product to generate a second product; and vectorizing the second product. The initial weight matrix requires a larger memory space than a combined memory space of the first and second weight matrixes.