zl程序教程

您现在的位置是:首页 >  .Net

当前栏目

输出单元

2023-02-18 16:33:49 时间

  在本节中,我们假设前馈网络提供了一组定义为 $h = f(x; θ)$ 的隐藏特征。输出层的作用是随后对这些特征进行一些额外的变换来完成整个网络必须完成的任务。

1 线性输出单元

  一种简单的输出单元是基于仿射变换的输出单元,仿射变换不具有非线性。这些单元往往被直接称为线性单元。
  给定特征  $h$,线性输出单元层产生一个向量  $\hat{\boldsymbol{y}}=\boldsymbol{W}^{\top} \boldsymbol{h}+\boldsymbol{b}$。

  特点1:线性输出层经常被用来产生条件高斯分布的均值

    $p(\boldsymbol{y} \mid \boldsymbol{x})=\mathcal{N}(\boldsymbol{y} ; \hat{\boldsymbol{y}}, \boldsymbol{I})$

  问:什么叫 “被用来产生条件高斯分布的均值”?
  答:这句话看起来有点拗口,我是这么理解的。
  如果向 unit 输入 $x$,得到输出 $\hat{y} $。那么认为 $p(y|x) $ 符合均值为 $\hat{y} $ 标准差为I的高斯分布。

  感知器有一个问题,当面对的数据集不是线性可分的时候,可能无法收敛,这意味着我们永远也无法完成一个感知器的训练。为解决这个问题,使用一个可导的线性函数来替代感知器的阶跃函数,这种感知器就叫做线性单元。线性单元在面对线性不可分的数据集时,会收敛到一个最佳的近似上。

  线性单元和感知器的区别就是在激活函数

  特点2:适合连续值预测(回归)问题

  替换了激活函数之后,线性单元将返回一个实数值而不是 0,1 分类。因此线性单元用来解决回归问题而不是分类问题。

  特点3:基于高斯分布,最大化似然(最小化负对数似然)等价于最小化均方误差,因此线性输出单元可采用均方误差损失函数

    $L(y, \hat{y})=\frac{1}{N} \sum \limits _{n=1}^{N}\left\|\hat{y}^{(n)}-y^{(n)}\right\|^{2}$

  其中 $y^{(n)}$ 为真实值, $\hat{y}^{(n)}$ 为预测值, $N$  为样本数。 
  参考花书5.5.1

2 Sigmoid单元

  特点1:Sigmoid输出单元常用于输出Bernoulli分布。

  Sigmoid 单元

    $\hat{y}=\sigma\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{h}+b\right)=\frac{1}{1+\exp \left(-\boldsymbol{w}^{\mathrm{T}} \boldsymbol{h}-b\right)}$

  Bernoulli分布:单个二值随机变量的分布

    $$\begin{array}{l} P(X=1)=\phi \\ P(X=0)=1-\phi \\ P(X=a)=\phi^{a}(a-\phi)^{(1-a)} \\ E[x]=\phi \\\operatorname{Var}(x)=\phi(1-\phi) \end{array}$$

  特点2:适合二分类问题。

  许多任务需要预测二值型变量 $y$ 的值。具有两个类的分类问题可以归结为这种形式。
  此时最大似然的方法是定义 $y$  在 $x$  条件下的 Bernoulli 分布。

  问:什么是 “ $y$ 在 $x$ 条件下的 Bernoulli分布”?
  答: \begin{array}{r} P(y \mid x) \sim \phi(y \mid x ; p) \\ P(y=1 \mid x)=p \\ P(y=0 \mid x)=1-p \end{array}

  Bernoulli 分布仅需单个参数来定义。神经网络只需要预测 P (y = 1 | x) 即可。 为了使这个数是有效的概率,它必须处在区间 [0, 1] 中。
  为满足该约束条件需要一些细致的设计工作。假设我们打算使用线性单元,并 且通过阈值来限制它成为一个有效的概率:

    $P(y=1 \mid \boldsymbol{x})=\max \left\{0, \min \left\{1, \boldsymbol{w}^{\top} \boldsymbol{h}+b\right\}\right\}$

  这的确定义了一个有效的条件概率分布,但我们无法使用梯度下降来高效地训练它。 当 $\boldsymbol{w}^{\top} \boldsymbol{h}+b$ 处于单位区间外时,模型的输出对其参数的梯度都将为 0。梯度为 0 通 常是有问题的,因为学习算法对于如何改善相应的参数不再具有指导意义。

  相反,最好是使用一种新的方法来保证无论何时模型给出了错误的答案时,总能有一个较大的梯度。这种方法是基于使用 sigmoid 输出单元结合最大似然来实现的。
  我们可以认为 $ \operatorname{sigmoid} $  输出单元具有两个部分。首先,它使用一个线性层来计 算  $z=\boldsymbol{w}^{\top} \boldsymbol{h}+b_{\circ} $ 接着,它使用 sigmoid 激活函数将  $z$  转化成概率。
  我们暂时忽略对于  $\boldsymbol{x}$  的依赖性,只讨论如何用  $z$  的值来定义  $y $ 的概率分布。 sigmoid 可以通过构造一个非归一化(和不为 1 ) 的概率分布  $\tilde{P}(y)$  来得到。

  问:什么是“非归一化(和不为1)的概率分布”?

  答:$0 \leq \tilde{P}(y) \leq 1, 但不保证 \tilde{P}(y=0)+\tilde{P}(y=1)=1$

  我们可以随后除以一个合适的常数来得到有效的概率分布。如果我们假定非归一化的对数概率对  $y$   和  $z $  是线性的,可以对它取指数来得到非归一化的概率。

  我们然后对它归 一化,可以发现这服从  Bernoulli  分布,该分布受  $z$   的  sigmoid  变换控制:

    $\begin{aligned} \log \tilde{P}(y) &=y z \\ \tilde{P}(y) &=\exp (y z) \\ P(y) &=\frac{\exp (y z)}{\sum_{y^{\prime}=0}^{1} \exp \left(y^{\prime} z\right)} \\ P(y) &=\sigma((2 y-1) z) \end{aligned}$

  $\begin{array}{l} \tilde{P}(y) \text { 是非归一化的概率分布。 }\\ P(y) \text { 是归一化后的Bernoulli分布。 }\end{array}$

   基于指数和归一化的概率分布在统计建模的文献中很常见。 用于定义这种二值型变量分布的变量zz被称为分对数。

  特点3:Sigmoid输出单元可采用交叉熵损失函数
    $L(y, \hat{y})=-\frac{1}{N} \sum \limits _{n=1}^{N}\left(y^{(n)} \log \hat{y}^{(n)}+\left(1-y^{(n)}\right) \log \left(1-\hat{y}^{(n)}\right)\right)$
  其中 $y^{(n)}$  为真实标签, $\hat{y}^{(n)}$ 为预测标签, $ N$ 为样本数。 

3 Softmax单元

  任何时候当我们想要表示一个具有 n 个可能取值的离散型随机变量的分布时, 我们都可以使用 softmax 函数。它可以看作是 sigmoid 函数的扩展,其中 sigmoid 函 数用来表示二值型变量的分布。 
  softmax 函数最常用作分类器的输出,来表示 n 个不同类上的概率分布。比较 少见的是,softmax 函数可以在模型内部使用,例如如果我们想要在某个内部变量的 n 个不同选项中进行选择。 

  特点1:Softmax输出单元常用于输出Multinoulli分布

  特点2:适合多分类问题

  特点3:Softmax输出单元可采用交叉熵损失函数