关于代价函数的两个假设
反向传播算法的目标是计算代价函数对神经网络中出现的所有权重和偏置的偏导数和。为了使反向传播工作,我们需要对代价函数的结构做两个主要假设。在进行假设之前,在脑海中有一个代价函数的实例是很有用的。我们将会使用上一章讲到的平方代价函数作为例子。上一章的平方代价函数具有以下形式:
其中是训练样本总数;求和符号表示对每个独立训练样本求和;是对应的希望输出;是神经网络层数;是输入为时激活函数的输出向量。
那么,为了能够使用反向传播算法,我们需要对代价函数进行怎样的假设呢?第一条假设是代价函数能够被写成的形式,其中是每个独立训练样本的代价函数。在代价函数为平方代价函数的情况下,一个训练样本的代价是。该假设对于本书中涉及到的其它所有代价函数都成立。
我们需要上述假设的原因是,反向传播实际上是对单个训练数据计算偏导数和。然后通过对所有训练样本求平均值获得和。事实上,有了这个假设,我们可以认为训练样本是固定的,然后把代价去掉下标表示为。最终我们会重新把加回公式,但目前为了简便我们将它隐去。
我们对代价函数做的第二条假设是它可以写成关于神经网络输出结果的函数:
平方代价函数满足该要求,因为单一训练样本的二次代价可以表示为:
这是一个关于输出激活值的函数。显然,该代价函数也依赖于期望的输出,所以你可能疑惑为什么我们不把代价视为关于的函数。记住,输入的训练样本是固定的,因此期望的输出也是固定的。需要注意,我们不能通过改变权值或偏置来修改它,换句话说,它不是神经网络所学习的东西。所以把视为只关于输出的函数是有道理的。在该函数中只是帮助定义函数的参数。