Neural Network Code Generation via Mathematical Expressions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional programming libraries for neural networks are complex, limiting the pool of proficient developers due to high computational and memory requirements, and restrict creative configurations by imposing rigid layer definitions and hard-coded rules, making it difficult to generate and understand complex neural network architectures.

Innovation Solution

A computer-implemented method that uses a mathematics-based programming language to generate executable neural networks, allowing users to define neural networks as series of mathematical operations, automatically identifying variables to be learned during training without hard-coding, and providing tools for analysis and evaluation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If conventional programming libraries are used to define neural networks, then neural network functionality can be achieved, but complex software stacks with high computational and memory requirements are needed, limiting the pool of proficient developers

Engineering Contradiction:
ImproveEase of neural network definitionVSAvoidSoftware stack complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent extracts and implements only the essential mathematical operations needed for neural networks directly in JavaScript, removing the need for complex software stacks like TensorFlow or PyTorch. This extraction of core functionality reduces computational and memory requirements while maintaining neural network definition capabilities.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent uses lightweight, simple JavaScript objects to represent neural network components instead of heavy software stack infrastructure. This approach uses minimal computational resources and memory, making neural network development accessible on standard hardware without requiring sophisticated development environments.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

2Productivity

If conventional programming libraries are used, then neural network training can be performed, but rigid layer definition functions with hard-coded rules limit creative configurations

Engineering Contradiction:
ImproveNeural network training capabilityVSAvoidLayer configuration flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic layer definitions where layer parameters are not fixed by hard-coded rules but can be flexibly configured through JavaScript objects. This allows developers to create arbitrary layer configurations and architectures without being constrained by predefined library functions, enabling creative experimentation while maintaining full training capability.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If traditional programming languages are used to define neural networks, then full control over code can be achieved, but large amounts of complex code are required to define layer operations and connections

Engineering Contradiction:
ImproveCode control flexibilityVSAvoidCode complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent changes the parameter representation from verbose traditional programming language code to concise JavaScript mathematical expressions. By using mathematical notation directly in JavaScript, the same level of control and flexibility is achieved with significantly reduced code complexity, making neural network definitions more readable and maintainable.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If conventional programming libraries are used, then neural network execution can be achieved, but significant computational and memory resources are required, limiting access to sophisticated hardware

Engineering Contradiction:
ImproveNeural network execution capabilityVSAvoidComputational resource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent uses lightweight JavaScript objects and native JavaScript execution to represent and execute neural network operations, eliminating the need for heavy software stack infrastructure. This approach significantly reduces computational and memory resource consumption, enabling neural network execution on standard hardware without requiring sophisticated GPU clusters or specialized hardware.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Data Source

PatentUS11610134B2Techniques for defining and executing program code specifying neural network architectures
Publication Date: 2023.03.21 VIAN SYSTEMS INC
  • US11610134B2 patent drawing
  • US11610134B2 patent drawing
  • US11610134B2 patent drawing

AI summary

An artificial intelligence (AI) design application that exposes various tools to a user for generating, analyzing, evaluating, and describing neural networks. The AI design application includes a network generator that generates and/or updates program code that defines a neural network based on user interactions with a graphical depiction of the network architecture. The network generator enables a developer to define the neural network architecture using a pipeline of mathematical expressions that can be directly compiled without the need of a complex software stack. The compilation process allows for the variables to be learned during the training process to be left unassigned when the neural network is instantiated. In particular, the compiler identifies such unassigned variables as variables having values that will be determined during the training process.