输出单元——sigmoid单元&softmax单元

1. 用于高斯输出分布的线性单元

给定特征h,线性输出单元层产生一个向量 y = wh + b.

线性输出层不会饱和,故易采用基于梯度的优化算法。

2. 用于伯努利输出分布的sigmoid单元

神经网络仅需要预测P(y=1|x),为了使这个数是一个有效的概率,它必须处在区间[0,1]中。

假设使用线性单元,并通过阈值来限制它成为一个有效的概率:P(y=1|x) = max{0,min{1,wh + b}}.

当wh + b处於单位区间外时,模型的输出对其参数的梯度都是0,故无法使用梯度下降来高效地训练它。

于是这里采用的方法是基于使用sigmoid输出单元结合最大似然来实现:

sigmoid输出单元定义为 y = σ(wh + b), σ是logistic sigmoid 函数:σ(x) = 1/(1+exp(-x)).

可以认为,sigmoid输出单元具有两个部分,首先使用一个线性层来计算z = wh+b,其次使用sigmoid激活函数将z转化为概率。

接下来用z的值来定义y的概率分布:

假定非归一化的对数概率对y 和 z是线性的,可以对它取对数来得到非归一化的概率,然后对它归一化,这服从伯努利分布,该分布受z的sigmoid变换控制:P(y) = σ((2y-1)z).

因为用于最大似然的代价函数是-logP(y|x),恰好抵消了sigmoid中的exp。然后使用最大似然来学习一个由sigmoid参数化的伯努利分布,其损失函数为J(θ)=ζ((1-2y)z), ζ即softplus函数的形式:ζ(x)=log(1+exp(x))。

所以在极限情况下极度不正确的z,softplus函数完全不会收缩梯度。

3. 用于Multinoulli输出分布的softmax单元

softmax可以看做sigmoid函数的扩展,最常用作分类器的输出。

首先,线性层预测了未归一化的对数概率:z = wh+b,其中zi = log P(y=i | x),softmax函数再对z指数化和归一化来获取需要的y,,最终softmax函数的形式为softmax(z)i=  exp(zi)/∑jexp(zj).

对于softmax的情况,它有多个输出值。当输入值之间的差异变得极端时,这些输出值可能会饱和;

当对所有输入都加上一个相同常数时softmax的输出不变。

...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章