Quadratic layer for actor or critic network
A quadratic layer takes an input vector and outputs a vector of quadratic monomials constructed from the input elements. This layer is useful when you need a layer whose output is some quadratic function of its inputs. For example, to recreate the structure of quadratic value functions such as those used in LQR controller design.
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].
For an example that uses a
QuadraticLayer, see Train DDPG Agent to Control Double Integrator System.
The parameters of a
QuadraticLayer object are not learnable.
Name — Name of layer
'quadratic' (default) | character vector
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
Name is set to
'', then the software
automatically assigns a name to the layer at training time.
Description — Description of layer
'quadratic layer' (default) | character vector
This property is read-only.
Description of layer, specified 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.
Create Quadratic Layer
Create a quadratic layer that converts an input vector
U into a vector of quadratic monomials constructed from binary combinations of the elements of
qLayer = quadraticLayer
qLayer = QuadraticLayer with properties: Name: 'quadratic' Learnable Parameters No properties. State Parameters No properties. 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×3 1 4 9
You can incorporate
qLayer into an actor network or critic network for reinforcement learning.