学习 《神经网络与深度学习》 笔记3

2019年5月25日 晚上十一点半
使用梯度下降算法进行学习

代价函数
我们希望找到一个合理的网络权重和偏置,为了量化我们如何实现这个目标,我们定义了一个代价函数
在这里插入图片描述
其中ω是表示所有网络中权重的集合,b是所有的偏置,n是训练输入数据的个数,a表示输入为x时输出的向量,y(x)表示对应的期望的输出。我们把C称作二次代价函数,又叫做均方误差.当C≈0时,也就是对于所有的训练输入x,y(x)接近于输出a相反,如果C很大的话说明y(x)与a相差很大,我们的目的就是最小化这个代价函数。我们可以采用梯度下降算法来达到这个目的。
引入二次代价函数的原因就是,如果我们只是对权重和偏置只是进行微小的改动,可能完全不会影响最后被正确分类的图像的数量,这会导致我们很难通过微小改变权重和偏置的途径取得更好的效果。而我们可以通过二次代价函数这样一个平滑的代价函数,使其最小化来寻找效果更好的权重和偏置。

梯度下降算法
现在就该想办法如何最小化这个二次代价函数,或者说我们最小化一个任意给定的多元函数,我们用v=v1v2v3,…v代替ω和b,假设C只用v1和v2两个变量
在这里插入图片描述
我们想找到C的全局最小值。通过微积分我们可以看出C 的变化如下:
在这里插入图片描述
梯度向量如下表示:
在这里插入图片描述
而我们将C的变化量进行了重写:
在这里插入图片描述
我们令
在这里插入图片描述
其中η是一个很小的正数,被称作学习效率,这样我就可以得到
在这里插入图片描述
这样的话,就保障了C会越来越小,这正是我们所需要的。所以我们可以得到
在这里插入图片描述
我们把这个更新规则可以看作定义梯度下降算法。这给我们提供了一种方式去通过重复改变v来找到函数C的最小值。
我们就是利用梯度下降算法去寻找能使二次代价函数C起的取得最小值的权重wk和偏置bl。我们更新一下新的梯度下降的更新原则:
在这里插入图片描述

在这里插入图片描述
我们可以为每一个输入x单独计算梯度值,之后在求出平均值,但是如果在训练输入的数据量过大的情况下,这个过程会花费很长的时间。
这是我们使用一种随机梯度下降的算法加速学习。其思想就是通过随机选取少量的训练输入样本来计算梯度值,而我们将这些随机取出的样本标记为X1,X2,X3,…,Xm
,并把他们称为一个小批量数据(mini-batch),我们可以通过求取这个小规模样本梯度的平均值大致相等于整个数据梯度的平均值。
在这里插入图片描述
这样我们就可以通过仅仅计算随机选取的小批量数据的梯度估算整体的梯度。
在这里插入图片描述

在这里插入图片描述
我们可以将所有的输入数据分成若干个小批量数据,每一小部分都可以进行一次随机梯度下降的计算。我们所有的训练输入都用完,称之为一个训练迭代期。当我们不清楚具体数据量的大小时,我们可以忽略前面的1/n。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值