This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

quadraticLayer

Quadratic layer for actor or critic network

Description

QuadraticLayer is a deep neural network layer that takes an input vector and outputs a vector of quadratic monomials constructed from the input elements. For example, consider an input vector U = [u1 u2 u3]. For this input, a quadratic layer gives the output Y = [u1*u1 u1*u2 u2*u2 u1*u3 u2*u3 u3*u3].

The quadratic layer is useful when you need a layer whose output is some quadratic function of its inputs. For instance, inserting a QuadraticLayer into a network lets you recreate the structure of quadratic value functions such as those used in LQR controller design. For an example that uses QuadraticLayer, see Train DDPG Agent to Control Double Integrator System.

Creation

Syntax

qLayer = quadraticLayer
qLayer = quadraticLayer(Name,Value)

Description

example

qLayer = quadraticLayer creates a quadratic layer with default property values.

qLayer = quadraticLayer(Name,Value) sets properties using Name,Value pairs. For example, quadraticLayer('Name','quadlayer') creates a quadratic layer and assigns the name 'quadlayer'.

Properties

expand all

Name of layer, specified as a character vector. To include a layer in a layer graph, you must specify a nonempty unique layer name. If you train a series network with this layer and Name is set to '', then the software automatically assigns a name to the layer at training time.

This property is read-only.

Description of layer, specified when you create the quadratic layer and stored as a character vector. When you create the quadratic layer, you can use this property to give it a description that helps you identify its purpose.

Examples

collapse all

Create a quadratic layer that converts an input vector U into a vector of quadratic monomials constructed from binary combinations of the elements of U.

qLayer = quadraticLayer
qLayer = 
  QuadraticLayer with properties:

    Name: 'quadratic'

  Show all properties

Confirm that the layer produces the expected output. For instance, for U = [u1 u2 u3], the expected output is [u1*u1 u1*u2 u2*u2 u1*u3 u2*u3 u3*u3].

predict(qLayer,[1 2 3])
ans = 1×6

     1     2     4     3     6     9

You can incorporate qLayer into an actor network or critic network for reinforcement learning.

Introduced in R2019a