今天这一讲主要讲述神经网络的代价函数,在这一讲之前请大家回想一下逻辑回归模型的代价函数,因为本讲的内容是在逻辑回归模型代价函数基础之上的,所以在这一讲开始的时候我假设你已经了解了逻辑回归代价函数。
假设神经网络的训练样本有m个,每个包含一组输入x和一组输出信号y,L表示神经网络层数,Sl表示每层的neuron个数(SL表示输出层神经元个数),SL代表最后一层中处理单元的个数。
将神经网络的分类定义为两种情况:二分类和多分类,
二分类:SL=1, y=0 or 1表示哪一类;
K类分类:SL=K, yi= 1表示分到第i类;(K>2)
逻辑回归问题中代价函数为:
在逻辑回归中,我们只有一个输出变量,又称标量(scalar),也只有一个因变量y,但是在神经网络中,我们可以有很多输出变量,我们的hθ(x)是一个维度为K的向量,并且我们训练集中的因变量也是同样维度的一个向量,因此我们的代价函数会比逻辑回归更加复杂一些,就是下面这么一长串,看着上下角标都迷糊呀!
为了说清楚神经网络的代价函数,我在网上找了一个比较好的资料,这个资料很清晰的说明了神经网络代价函数的推导过程,建议大家看一下,还是有助于理解神经网络的原理的。
假设有如下神经网络:
我们先假设只有一组数据,就是m=1的情况,并且各层神经元的数量如下假设,接下来的推导用到之前的神经网络的矩阵角度理解。
输入层到隐藏层的计算:
隐藏层到输出层:
所以当m=1的时候,我们得到代价函数如下:
接下来分析m不等于1的情况,也就是说有多组数据的情况下,为了便于分析,我们先假设m=3,当m值更大的时候情况类似。
所以当m>1的时候,代价函数如下:
以上就是在忽略正则项的情况下,神经网络的代价函数推导过程。
祝您的机器学习之旅愉快!
本文参考资料:斯坦福吴恩达老师的机器学习讲义,图片直接来自讲义;
领取专属 10元无门槛券
私享最新 技术干货