chainer.Distribution¶

class
chainer.
Distribution
[source]¶ Interface of Distribution
Distribution
is a bass class for dealing with probability distributions.This class provides the following capabilities.
Sampling random points.
Evaluating a probabilityrelated function at a given realization value. (e.g., probability density function, probability mass function)
Obtaining properties of distributions. (e.g., mean, variance)
Note that every method and property that computes them from
chainer.Variable
can basically be differentiated.In this class, sampled random points and realization values given in probabilityrelated function is called sample. Sample consists of batches, and each batch consists of independent events. Each event consists of values, and each value in an event cannot be sampled independently in general. Each event in a batch is independent while it is not sampled from an identical distribution. And each batch in sample is sampled from an identical distribution.
Each part of the samplebatchevent hierarchy has its own shape, which is called
sample_shape
,batch_shape
, andevent_shape
, respectively.On initialization, it takes distributionspecific parameters as inputs.
batch_shape
andevent_shape
is decided by the shape of the parameter when generating an instance of a class.Example
The following code is an example of samplebatchevent hierarchy on using
MultivariateNormal
distribution. This makes 2d normal distributions.dist
consists of 12(4 * 3) independent 2d normal distributions. And on initialization,batch_shape
andevent_shape
is decided.>>> import chainer >>> import chainer.distributions as D >>> import numpy as np >>> d = 2 >>> shape = (4, 3) >>> loc = np.random.normal( ... size=shape + (d,)).astype(np.float32) >>> cov = np.random.normal(size=shape + (d, d)).astype(np.float32) >>> cov = np.matmul(cov, np.rollaxis(cov, 1, 2)) >>> l = np.linalg.cholesky(cov) >>> dist = D.MultivariateNormal(loc, scale_tril=l) >>> dist.event_shape (2,) >>> dist.batch_shape (4, 3) >>> sample = dist.sample(sample_shape=(6, 5)) >>> sample.shape (6, 5, 4, 3, 2)
Every probabilityrelated function takes realization value whose shape is the concatenation of
sample_shape
,batch_shape
, andevent_shape
and returns an evaluated value whose shape is the concatenation ofsample_shape
, andbatch_shape
.Methods

cdf
(x)[source]¶ Evaluates the cumulative distribution function at the given points.
 Parameters
x (
Variable
or Ndimensional array) – Data points in the domain of the distribution Returns
Cumulative distribution function value evaluated at x.
 Return type

icdf
(x)[source]¶ Evaluates the inverse cumulative distribution function at the given points.
 Parameters
x (
Variable
or Ndimensional array) – Data points in the domain of the distribution Returns
Inverse cumulative distribution function value evaluated at x.
 Return type

log_cdf
(x)[source]¶ Evaluates the log of cumulative distribution function at the given points.
 Parameters
x (
Variable
or Ndimensional array) – Data points in the domain of the distribution Returns
Logarithm of cumulative distribution function value evaluated at x.
 Return type

log_prob
(x)[source]¶ Evaluates the logarithm of probability at the given points.
 Parameters
x (
Variable
or Ndimensional array) – Data points in the domain of the distribution Returns
Logarithm of probability evaluated at x.
 Return type

log_survival_function
(x)[source]¶ Evaluates the logarithm of survival function at the given points.
 Parameters
x (
Variable
or Ndimensional array) – Data points in the domain of the distribution Returns
Logarithm of survival function value evaluated at x.
 Return type

perplexity
(x)[source]¶ Evaluates the perplexity function at the given points.
 Parameters
x (
Variable
or Ndimensional array) – Data points in the domain of the distribution Returns
Perplexity function value evaluated at x.
 Return type

prob
(x)[source]¶ Evaluates probability at the given points.
 Parameters
x (
Variable
or Ndimensional array) – Data points in the domain of the distribution Returns
Probability evaluated at x.
 Return type

sample
(sample_shape=())[source]¶ Samples random points from the distribution.
This function calls sample_n and reshapes a result of sample_n to sample_shape + batch_shape + event_shape. On implementing sampling code in an inherited ditribution class, it is not recommended to override this function. Instead of doing this, it is preferable to override sample_n.

sample_n
(n)[source]¶ Samples n random points from the distribution.
This function returns sampled points whose shape is (n,) + batch_shape + event_shape. When implementing sampling code in a subclass, it is recommended to override this method.

survival_function
(x)[source]¶ Evaluates the survival function at the given points.
 Parameters
x (
Variable
or Ndimensional array) – Data points in the domain of the distribution Returns
Survival function value evaluated at x.
 Return type
Attributes

batch_shape
¶ Returns the shape of a batch.
 Returns
The shape of a sample that is not identical and independent.
 Return type

covariance
¶ Returns the covariance of the distribution.
 Returns
The covariance of the distribution.
 Return type

entropy
¶ Returns the entropy of the distribution.
 Returns
The entropy of the distribution.
 Return type

event_shape
¶ Returns the shape of an event.
 Returns
The shape of a sample that is not identical and independent.
 Return type

mean
¶ Returns the mean of the distribution.
 Returns
The mean of the distribution.
 Return type

mode
¶ Returns the mode of the distribution.
 Returns
The mode of the distribution.
 Return type

params
¶ Returns the parameters of the distribution.
 Returns
The parameters of the distribution.
 Return type

stddev
¶ Returns the standard deviation of the distribution.
 Returns
The standard deviation of the distribution.
 Return type

support
¶ Returns the support of the distribution.
 Returns
String that means support of this distribution.
 Return type

variance
¶ Returns the variance of the distribution.
 Returns
The variance of the distribution.
 Return type