神经网络是机器学习必学内容之一,本文和大家分享的就是神经网络中的代价函数相关内容,一起来看看吧,希望对大家有所帮助。
之前我们使用神经网络算法进行图像识别,所使用的参数都是已知的。
那么这些参数是如何得来的呢?
这其实和之前线性回归以及逻辑回归的是类似的,我们要知道它的代价函数。
在此之前,先了解一下各个标记。例如对于下面这样一个神经网络:
我们用 L 来标记神经网络的层数,例如这里就是 4 。
我们用 s l 来标记第l层的单元数量,例如这里就是: s 1 = 3、s 2 = s 3 = 5 、s 4 = 4 ,注意这里是不包含偏差单元的,也就是 a 0 = 1 的单元。
每一层特征的计算,使用的公式依然是逻辑函数:
对于逻辑回归,它的代价函数是这样的:
那么以逻辑回归计算为基础,神经网络的代价函数是这样的:
第一次看到这个公式的时候,我也有点蒙,且让我逐步分解。
首先我们看看公式加号的左边部分:
相比原来的公式,增加了一个关于K的累加。这里的 K 代表着分类的数量,对应着的前面图片层次4输出结果的数量4。
这里的下标 k ,就是计算第 k 个分类的意思。
也就是说,我们需要求得的参数, 应该对每一个分类计算代价函数,并使得加总之后的结果最小。
再来看看公式加号的右边部分:
右边部分是正则化项,是对每一个 θ 的平方进行累计。我们看看三个累加的含义。
对某一层的每一行进行加总:
对某一层的每一列进行加总:
对每一层进行加总:
如果你看过之前的文章,应该知道 θ 是从 l 层次计算得到 l + 1 层中间所需的参数,对于上面的图片,你可以这样来理解:
所以这里有 L - 1 组 θ 需要计算,也就是 4 - 1 = 3。
那么对于每一组,如果第 l 层有 s l 个单元,第 l + 1 层有 s l+1 个单元,那么 θ (l) 就是一个 s l+1 × ( s l + 1 ) 的矩阵。
θ (1) 是一个 4 × 5 的矩阵,θ (2) 是一个 5 × 6 的矩阵,θ (3) 是一个 4 × 6 的矩阵。
这里的 θ (l) 是包括了偏差节点 a 0 对应的参数,而这些参数是不应该纳入计算的。
所以我们会看到计算列 i 对应的上标是 s l ,下标是 i = 1,也就是只计算各个单元对应的参数。
所以对于每一层的 θ ,扣除了第一列偏差参数,需要计算的参数数量就是 sl+1 × sl。
来源:简书