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

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

* add formula for entropy and kl-divergence

* fix formula in cn doc

* fix formula for Normal
上级 aae80b4d
...@@ -25,8 +25,8 @@ Normal ...@@ -25,8 +25,8 @@ Normal
:math:`Z`: 正态分布常量。 :math:`Z`: 正态分布常量。
参数: 参数:
- **loc** (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、float32、list、numpy.ndarray或Tensor。 - **scale** (int|float|list|numpy.ndarray|Tensor) - 正态分布标准差。数据类型为int、float、list、numpy.ndarray或Tensor。
- **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。 - **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。
**代码示例**: **代码示例**:
...@@ -84,6 +84,16 @@ Normal ...@@ -84,6 +84,16 @@ Normal
信息熵 信息熵
数学公式:
.. math::
entropy(\sigma) = 0.5 \log (2 \pi e \sigma^2)
上面的数学公式中:
:math:`scale = \sigma` : 标准差。
返回:正态分布的信息熵, 数据类型为float32 返回:正态分布的信息熵, 数据类型为float32
返回类型:Tensor 返回类型:Tensor
...@@ -114,6 +124,25 @@ Normal ...@@ -114,6 +124,25 @@ Normal
两个正态分布之间的KL散度。 两个正态分布之间的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的实例。 - **other** (Normal) - Normal的实例。
...@@ -125,4 +154,3 @@ Normal ...@@ -125,4 +154,3 @@ Normal
...@@ -27,8 +27,8 @@ Uniform ...@@ -27,8 +27,8 @@ Uniform
参数low和high的维度必须能够支持广播。 参数low和high的维度必须能够支持广播。
参数: 参数:
- **low** (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、float32、list、numpy.ndarray或Tensor。 - **high** (int|float|list|numpy.ndarray|Tensor) - 均匀分布的上边界。数据类型为int、float、list、numpy.ndarray或Tensor。
- **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。 - **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。
**代码示例**: **代码示例**:
...@@ -83,6 +83,10 @@ Uniform ...@@ -83,6 +83,10 @@ Uniform
信息熵 信息熵
.. math::
entropy(low, high) = \log (high - low)
返回:均匀分布的信息熵, 数据类型为float32 返回:均匀分布的信息熵, 数据类型为float32
返回类型:Tensor 返回类型:Tensor
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册