1. 函数家族


1.1. 神经元模型

从最简单的说起:线性神经元

McCulloch-Pitts接着提出了二值的,必须达到阈值才发送一定量的冲激函数。

之后的Rectified Linear Neurons(Linear threshold neuron)超出阈值的部分仍是线性的。

Simoid neurons可以说是用连续函数版的二值,通常使用Logistic函数,这样一来求导方便。

接下来又有了Stochastic的处理,输出(0~1)作为产生冲激(1)的概率

Rectifier or rectified linear unit (ReLU) or positive part
Hyperbolic tangent
Sigmoid
Softmax
Radial basis function or RBF
Softplus
Hard tanh
Absolute value rectification
Maxout
  • the structure (also called architecture) of the family of input-output functions can be varied in many ways: convolutional networks, recurrent networks

1.1.1. Softmax

Softmax 函数通常被用于将原始分数(raw score)的矢量转换成用于分类的神经网络的输出层上的类概率(class probability)。它通过对归一化常数(normalization constant)进行指数化和相除运算而对分数进行规范化。如果我们正在处理大量的类,例如机器翻译中的大量词汇,计算归一化常数是很昂贵的。有许多种可以让计算更高效的替代选择,包括分层 Softmax(Hierarchical Softmax)或使用基于取样的损失函数,如 NCE。

  • designed for the purpose of specifying multinoulli distributions:

  • consider the gradient with respect to the scores .

or

在实现softmax函数的时候,为了防溢出有一个小trick:减去最大值。softmax函数如下:

通常情况下,计算softmax函数值不会出现什么问题,但是,当某些情况发生时,计算函数值就出问题了:

  • 极其大,导致分子计算时上溢出
  • 为负数,且很大,此时分母是一个极小的正数,有可能四舍五入为0,导致下溢出

解决方法是,令,即$ M$ 为所有 中最大的值,那么我们只需要把算 的值,改为计算的值,就可以解决上溢出、下溢出的问题了,并且,计算结果理论上仍然和 保持一致。

在实现时也犯了一个低级错误:激活函数一开始弄错成了,发现交叉熵是26上下,忽略了全蒙(weight、bias全零)情况是

results matching ""

    No results matching ""