| layer_autoregressive {tfprobability} | R Documentation | 
Masked Autoencoder for Distribution Estimation
Description
layer_autoregressive takes as input a Tensor of shape [..., event_size]
and returns a Tensor of shape [..., event_size, params].
The output satisfies the autoregressive property.  That is, the layer is
configured with some permutation ord of {0, ..., event_size-1} (i.e., an
ordering of the input dimensions), and the output output[batch_idx, i, ...]
for input dimension i depends only on inputs x[batch_idx, j] where
ord(j) < ord(i).
Usage
layer_autoregressive(
  object,
  params,
  event_shape = NULL,
  hidden_units = NULL,
  input_order = "left-to-right",
  hidden_degrees = "equal",
  activation = NULL,
  use_bias = TRUE,
  kernel_initializer = "glorot_uniform",
  validate_args = FALSE,
  ...
)
Arguments
object | 
 What to compose the new  
  | 
params | 
 integer specifying the number of parameters to output per input.  | 
event_shape | 
 
  | 
| 
 
  | |
input_order | 
 Order of degrees to the input units: 'random',
'left-to-right', 'right-to-left', or an array of an explicit order. For
example, 'left-to-right' builds an autoregressive model:
  | 
| 
 Method for assigning degrees to the hidden units: 'equal', 'random'. If 'equal', hidden units in each layer are allocated equally (up to a remainder term) to each degree. Default: 'equal'.  | |
activation | 
 An activation function.  See   | 
use_bias | 
 Whether or not the dense layers constructed in this layer
should have a bias term.  See   | 
kernel_initializer | 
 Initializer for the kernel weights matrix. Default: 'glorot_uniform'.  | 
validate_args | 
 
  | 
... | 
 Additional keyword arguments passed to the   | 
Details
The autoregressive property allows us to use
output[batch_idx, i] to parameterize conditional distributions:
p(x[batch_idx, i] | x[batch_idx, ] for ord(j) < ord(i))
which give us a tractable distribution over input x[batch_idx]:
p(x[batch_idx]) = prod_i p(x[batch_idx, ord(i)] | x[batch_idx, ord(0:i)])
For example, when params is 2, the output of the layer can parameterize
the location and log-scale of an autoregressive Gaussian distribution.
Value
a Keras layer
See Also
Other layers: 
layer_conv_1d_flipout(),
layer_conv_1d_reparameterization(),
layer_conv_2d_flipout(),
layer_conv_2d_reparameterization(),
layer_conv_3d_flipout(),
layer_conv_3d_reparameterization(),
layer_dense_flipout(),
layer_dense_local_reparameterization(),
layer_dense_reparameterization(),
layer_dense_variational(),
layer_variable()