未验证 提交 81f83e5a 编写于 作者: P pangyoki 提交者: GitHub

cherry pick 2544, add formula for entropy and kl-divergence in Uniform and...

cherry pick 2544, add formula for entropy and kl-divergence in Uniform and Normal classes (#2544) (#2616)

* add formula for entropy and kl-divergence

* fix formula in cn doc

* fix formula for Normal
上级 1a46d6ab
......@@ -25,8 +25,8 @@ Normal
:math:`Z`: 正态分布常量。
参数:
- **loc** (int|float|list|numpy.ndarray|Tensor) - 正态分布平均值。数据类型为int、float32、list、numpy.ndarray或Tensor。
- **scale** (int|float|list|numpy.ndarray|Tensor) - 正态分布标准差。数据类型为int、float32、list、numpy.ndarray或Tensor。
- **loc** (int|float|list|numpy.ndarray|Tensor) - 正态分布平均值。数据类型为int、float、list、numpy.ndarray或Tensor。
- **scale** (int|float|list|numpy.ndarray|Tensor) - 正态分布标准差。数据类型为int、float、list、numpy.ndarray或Tensor。
- **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。
**代码示例**:
......@@ -75,7 +75,7 @@ Normal
参数:
- **shape** (list) - 1维列表,指定生成样本的维度。数据类型为int32。
- **seed** (int) - 长整型数。
返回:预先设计好维度的张量, 数据类型为float32
返回类型:Tensor
......@@ -83,7 +83,17 @@ Normal
.. py:function:: entropy()
信息熵
数学公式:
.. math::
entropy(\sigma) = 0.5 \log (2 \pi e \sigma^2)
上面的数学公式中:
:math:`scale = \sigma` : 标准差。
返回:正态分布的信息熵, 数据类型为float32
返回类型:Tensor
......@@ -94,7 +104,7 @@ Normal
参数:
- **value** (Tensor) - 输入张量。数据类型为float32或float64。
返回:对数概率, 数据类型与value相同
返回类型:Tensor
......@@ -105,7 +115,7 @@ Normal
参数:
- **value** (Tensor) - 输入张量。数据类型为float32或float64。
返回:概率, 数据类型与value相同
返回类型:Tensor
......@@ -114,9 +124,28 @@ Normal
两个正态分布之间的KL散度。
数学公式:
.. math::
KL\_divergence(\mu_0, \sigma_0; \mu_1, \sigma_1) = 0.5 (ratio^2 + (\frac{diff}{\sigma_1})^2 - 1 - 2 \ln {ratio})
ratio = \frac{\sigma_0}{\sigma_1}
diff = \mu_1 - \mu_0
上面的数学公式中:
:math:`loc = \mu_0`: 当前正态分布的平均值。
:math:`scale = \sigma_0`: 当前正态分布的标准差。
:math:`loc = \mu_1`: 另一个正态分布的平均值。
:math:`scale = \sigma_1`: 另一个正态分布的标准差。
:math:`ratio`: 两个标准差之间的比例。
:math:`diff`: 两个平均值之间的差值。
参数:
- **other** (Normal) - Normal的实例。
返回:两个正态分布之间的KL散度, 数据类型为float32
返回类型:Tensor
......@@ -125,4 +154,3 @@ Normal
......@@ -27,8 +27,8 @@ Uniform
参数low和high的维度必须能够支持广播。
参数:
- **low** (int|float|list|numpy.ndarray|Tensor) - 均匀分布的下边界。数据类型为int、float32、list、numpy.ndarray或Tensor。
- **high** (int|float|list|numpy.ndarray|Tensor) - 均匀分布的上边界。数据类型为int、float32、list、numpy.ndarray或Tensor。
- **low** (int|float|list|numpy.ndarray|Tensor) - 均匀分布的下边界。数据类型为int、float、list、numpy.ndarray或Tensor。
- **high** (int|float|list|numpy.ndarray|Tensor) - 均匀分布的上边界。数据类型为int、float、list、numpy.ndarray或Tensor。
- **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。
**代码示例**:
......@@ -82,7 +82,11 @@ Uniform
.. py:function:: entropy()
信息熵
.. math::
entropy(low, high) = \log (high - low)
返回:均匀分布的信息熵, 数据类型为float32
返回类型:Tensor
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册