神经网络的代价函数

神经网络是机器学习必学内容之一,本文和大家分享的就是神经网络中的代价函数相关内容,一起来看看吧,希望对大家有所帮助。

之前我们使用神经网络算法进行图像识别,所使用的参数都是已知的。

那么这些参数是如何得来的呢?

这其实和之前线性回归以及逻辑回归的是类似的,我们要知道它的代价函数。

在此之前,先了解一下各个标记。例如对于下面这样一个神经网络:

我们用 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。

来源:简书

时间: 2024-10-11 08:49:39

神经网络的代价函数的相关文章

机器学习公开课笔记(5):神经网络(Neural Network)——学习

这一章可能是Andrew Ng讲得最不清楚的一章,为什么这么说呢?这一章主要讲后向传播(Backpropagration, BP)算法,Ng花了一大半的时间在讲如何计算误差项$\delta$,如何计算$\Delta$的矩阵,以及如何用Matlab去实现后向传播,然而最关键的问题——为什么要这么计算?前面计算的这些量到底代表着什么,Ng基本没有讲解,也没有给出数学的推导的例子.所以这次内容我不打算照着公开课的内容去写,在查阅了许多资料后,我想先从一个简单的神经网络的梯度推导入手,理解后向传播算法的

Stanford机器学习笔记-5.神经网络Neural Networks (part two)

5 Neural Networks (part two) content: 5 Neural Networks (part two) 5.1 cost function 5.2 Back Propagation 5.3 神经网络总结 接上一篇4. Neural Networks (part one).本文将先定义神经网络的代价函数,然后介绍逆向传播(Back Propagation: BP)算法,它能有效求解代价函数对连接权重的偏导,最后对训练神经网络的过程进行总结. 5.1 cost func

机器学习公开课笔记(4):神经网络(Neural Network)——表示

动机(Motivation) 对于非线性分类问题,如果用多元线性回归进行分类,需要构造许多高次项,导致特征特多学习参数过多,从而复杂度太高. 神经网络(Neural Network) 一个简单的神经网络如下图所示,每一个圆圈表示一个神经元,每个神经元接收上一层神经元的输出作为其输入,同时其输出信号到下一层,其中每一层的第一个神经元称为bias unit,它是额外加入的其值为1,通常用+1表示,下图用虚线画出. 符号说明: $a_i^{(j)}$表示第j层网络的第i个神经元,例如下图$a_1^{(

stanford coursera 机器学习编程作业 exercise4--使用BP算法训练神经网络以识别阿拉伯数字(0-9)

在这篇文章中,会实现一个BP(backpropagation)算法,并将之应用到手写的阿拉伯数字(0-9)的自动识别上. 训练数据集(training set)如下:一共有5000个训练实例(training instance),每个训练实例是一个400维特征的列向量(20*20 pixel image).用 X 矩阵表示整个训练集,则 X 是一个 5000*400 (5000行 400列)的矩阵 另外,还有一个5000*1的列向量 y ,用来标记训练数据集的结果.比如,第一个训练实例对应的输出

机器学习之神经网络bp算法推导

这是一篇学习UFLDL反向传导算法的笔记,按自己的思路捋了一遍,有不对的地方请大家指点. 首先说明一下神经网络的符号: 1. nl 表示神经网络的层数. 2. sl 表示第 l 层神经元个数,不包含偏置单元. 3. z(l)i 表示第 l 层第 i 个神经元的输入:a(l)i 表示第 l 层第 i 个神经元的输出. 4. W(l)ij 表示第 l 层第 j 个神经元连接到第 l+1 层第 i 个神经元的权重,因此权值矩阵 W 的维数为 sl+1 x sl 第二层各神经元的计算方法如下: a(2)

Coursera 机器学习 第5章 Neural Networks: Learning 学习笔记

5.1节 Cost Function神经网络的代价函数. 上图回顾神经网络中的一些概念: L  神经网络的总层数. sl  第l层的单元数量(不包括偏差单元). 2类分类问题:二元分类和多元分类. 上图展现的是神经网络的损失函数,注意这是正则化的形式. 正则化部分,i.j不为0.当然i.j可以为0,此时的损失函数不会有太大的差异,只是当i.j不为0的形式更为常见. 5.2节 Backpropagation Algorithm最小化损失函数的算法——反向传播算法:找到合适的参数是J(θ)最小. 如

稀疏自编码器及事实上现——怎样搞基

自编码器是什么? 自编码器本身就是一种BP神经网络. 它是一种无监督学习算法. 我们都知道神经网络能够从随意精度逼近随意函数,这里我们让神经网络目标值等于输出值x,也就是模拟一个恒等函数: 太无聊了,是吗?输入等于输出,这网络有什么意义?可是.当我们把自编码神经网络增加某些限制,事情就发生了变化. 如图1所看到的,这就是一个主要的自编码神经网络.能够看到隐含层节点数量要少于输入层节点数量. 图1 举个样例,假设我们输入一张10*10的图像,这样就有100个像素,所以输入层和输出层的节点数量就是1

Week 10:Large Scale Machine Learning课后习题解答

大家好,我是Mac Jiang,今天和大家分享Coursera-Stanford University-Machine Learning-Week 10:Large Scale Machine Learning的课后习题解答.虽然我的答案通过了系统测试,但是我的分析不一定是正确的,如果各位博友发现错误或有更好的想法,请留言联系,谢谢.希望我的博客对您的学习有所帮助! 这单元,吴恩达老师主要讲了五个方面的内容: 1.随机梯度下降(Stochastic Gradient Descent),比较了随机

稀疏自编码器及其实现——如何搞基

自编码器是什么? 自编码器本身就是一种BP神经网络.它是一种无监督学习算法. 我们都知道神经网络可以从任意精度逼近任意函数,这里我们让神经网络目标值等于输出值x,也就是模拟一个恒等函数: 太无聊了,是吗?输入等于输出,这网络有什么意义?但是,当我们把自编码神经网络加入某些限制,事情就发生了变化.如图1所示,这就是一个基本的自编码神经网络,可以看到隐含层节点数量要少于输入层节点数量. 图1 举个例子,如果我们输入一张10*10的图像,这样就有100个像素,所以输入层和输出层的节点数量就是100.而