假设我们有一个固定由m个训练实例组成的训练集{(x(1),y(1)),…,(x(m),y(m))}.我们可以用批量梯度下降方法来训练我们的神经网络.细节上,对于一个训练实例(x,y),我们定义关于该实例的代价函数:
这是平方误差(的一半)代价函数。给定m个实例的训练集,我们定义全局代价函数:
第一项J(W,b)是平方误差和的平均项。第二项是正则化项(也称为权重衰减项),用来降低权重(占的)大小,可以防止过拟合。
(注意:通常权重衰减不会应用在偏置项b(l),这一点在我们J(W,b)的定义中可以看出。然而,对偏置单元应用权重衰减通常只会对最终的网络产生很小的影响。如果你有上斯坦福CS229(机器学习)课程或者在YouTube看过视频课程,你还能意识到权重衰减实质上是贝叶斯正则化那些方法的一种变体,这种情况下我们会在参数上添加高斯先验并作最大后验估计(而不是最大似然估计)。
权重衰减参数λ控制着两项的相对重要性。还要注意到这个稍微复杂的一项J(W,b;x,y)是对一个实例的平方误差代价;J(W,b)是全局的代价函数,还包括了权重衰落项。
上面的代价函数通常用于分类和回归问题。在分类问题中,我们让y=0或1代表两个类标记(回忆sigmoid激活函数输出值在[0,1]区间。如果我们使用tanh激活函数,我们会使用-1和+1来表示标记)。在回归问题中,我们缩放我们的输出保证它们在[0,1]区间(或者如果我们在使用tanh激活函数,则是[-1,+1]区间。
我们的目标是最小化W和b的函数J(W