Binarized Convolution Layer for Fast Neural Network Inference

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Neural networks, particularly convolutional neural networks, experience slow performance due to time-consuming analysis processes, leading to user frustration.

Innovation Solution

Binarization of convolutional neural network filters and input data, allowing for faster computations using binary operations and optional use of look-up tables to pre-compute results, thereby increasing the speed of analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If floating-point operations are used in convolutional neural networks, then calculation accuracy is maintained, but processing speed becomes slow

Engineering Contradiction:
Improveprocessing speedVSAvoidcalculation accuracy
Core Design Contradiction:
SpeedVSMeasurement precision

Solution Approach 1:

The patent transforms the data representation format from floating-point to binary values, fundamentally changing the parameter type. This allows the system to use bitwise operations instead of floating-point arithmetic, achieving speedup while maintaining acceptable accuracy through careful binarization strategies and lookup table implementations.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent creates lookup tables that pre-compute and store results of complex floating-point operations. During inference, these pre-computed binary results are copied and returned directly, avoiding repeated floating-point calculations while maintaining accuracy for common operation patterns.

Inventive Principle:
Principle #26Copying

2Loss of time

If standard convolution operations are performed, then accurate results are obtained, but computation time increases significantly

Engineering Contradiction:
Improvecomputation timeVSAvoidresult accuracy
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent performs preliminary binarization of input data and pre-computes convolution results using lookup tables before actual inference. By preparing binary representations and pre-calculating common convolution patterns in advance, the system reduces real-time computation time while maintaining result reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces binary representations and lookup tables as intermediary structures between the input data and final results. These intermediaries enable faster binary arithmetic operations while preserving the mathematical relationships needed for accurate convolution results.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If binary values are used for filters and input data, then processing speed increases, but computational complexity changes

Engineering Contradiction:
Improveanalysis speedVSAvoidcomputational complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent replaces traditional floating-point arithmetic mechanisms with binary bitwise operations. This substitution uses simpler logical operations (AND, OR, XOR, NOT) instead of complex floating-point multiplication and addition, reducing the mechanical complexity of each computational step while increasing overall productivity.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS9563825B2Convolutional neural network using a binarized convolution layer
Publication Date: 2017.02.07 ADOBE INC
  • US9563825B2 patent drawing
  • US9563825B2 patent drawing
  • US9563825B2 patent drawing

AI summary

A convolutional neural network is trained to analyze input data in various different manners. The convolutional neural network includes multiple layers, one of which is a convolution layer that performs a convolution, for each of one or more filters in the convolution layer, of the filter over the input data. The convolution includes generation of an inner product based on the filter and the input data. Both the filter of the convolution layer and the input data are binarized, allowing the inner product to be computed using particular operations that are typically faster than multiplication of floating point values. The possible results for the convolution layer can optionally be pre-computed and stored in a look-up table. Thus, during operation of the convolutional neural network, rather than performing the convolution on the input data, the pre-computed result can be obtained from the look-up table.