吴恩达机器学习笔记29-神经网络的代价函数(Cost Function of Neural Networks)

  假设神经网络的训练样本有𝑚个,每个包含一组输入𝑥和一组输出信号𝑦,𝐿表示神经网
络层数,𝑆𝐼表示每层的neuron 个数(𝑆𝑙表示输出层神经元个数),𝑆𝐿代表最后一层中处理单元
的个数。
  将神经网络的分类定义为两种情况:二类分类和多类分类,
二类分类:𝑆𝐿 = 0, 𝑦 = 0 𝑜𝑟 1表示哪一类;
𝐾类分类:𝑆𝐿 = 𝑘, 𝑦𝑖 = 1表示分到第i 类;(𝑘 > 2)

我们回顾逻辑回归问题中我们的代价函数为:

  在逻辑回归中,我们只有一个输出变量,又称标量(scalar),也只有一个因变量𝑦,但
是在神经网络中,我们可以有很多输出变量,我们的ℎ𝜃(𝑥)是一个维度为𝐾的向量,并且我们
训练集中的因变量也是同样维度的一个向量,因此我们的代价函数会比逻辑回归更加复杂一
些,为:

 

  这个看起来复杂很多的代价函数背后的思想还是一样的,我们希望通过代价函数来观察
算法预测的结果与真实情况的误差有多大,唯一不同的是,对于每一行特征,我们都会给出
𝐾个预测,基本上我们可以利用循环,对每一行特征都预测𝐾个不同结果,然后在利用循环
在𝐾个预测中选择可能性最高的一个,将其与𝑦中的实际数据进行比较。

  正则化的那一项只是排除了每一层𝜃0后,每一层的𝜃 矩阵的和。最里层的循环𝑗循环所
有的行(由𝑠𝑙 +1 层的激活单元数决定),循环𝑖则循环所有的列,由该层(𝑠𝑙层)的激活单
元数所决定。即:ℎ𝜃 (𝑥)与真实值之间的距离为每个样本-每个类输出的加和,对参数进行
regularization 的bias 项处理所有参数的平方和。

posted @ 2019-02-21 20:29  NeoML  阅读(2105)  评论(0编辑  收藏  举报