CS231n学习笔记——优化、梯度

CS231n学习笔记——优化、梯度

多元情况下生成的导数叫做梯度,所以梯度是偏导数组成的向量,有和x一样的形状。梯度中的每个元素表示每个相关方向上函数的斜率。
计算梯度的方法——有限差分
在这里插入图片描述
在参数W的每一项做一点微小的改变(0.0001),观察loss的变化情况,然后计算出针对这一项的偏导数。以此类推直到算出整个梯度。但是在神经元数量很大时,这种数值导数的梯度计算方法非常慢,所以在应用中优先使用解析导数,即提前计算出梯度的表达式,然后利用梯度表达式直接算出梯度。
在这里插入图片描述

即使如此,数值梯度还有有很大用处的,比如它经常用来debug你的程序,即在程序中使用解析梯度,但是用数值梯度来验证解析梯度代码是否正确,这叫做梯度检查。
在这里插入图片描述
关于数值导数与解析导数在这引用别人的讲解
在这里插入图片描述
图片来自:http://bbs.keinsci.com/thread-1169-1-1.html

在程序中的梯度下降代码非常简短:
在这里插入图片描述
其中step_size学习步长(也叫做learning rate)是一个超参数,表示每次更新权重参数时, 向梯度减小的方向前进的距离,也就是利用每一步的梯度值来决定参数改变的方向。
但是当数据集样本很大时,每次计算梯度可能要经过上百万次计算,时间很慢。但是计算损失函数的公式是线性可加的,如图,所以可以每次更新梯度都使用随机的一小部分数据集来计算,也就是随机梯度下降SGD,每次取minibatch个数据来估算误差总和和梯度。

在这里插入图片描述

图像特征
在神经网络大规模运用之前(非线性分类器不发达的时候),做图片分类的步骤是先计算图片的特征表述,将特征表述作为输入源输入线性分类器,这样图片特征就变成线性可分的了。比如颜色直方图特征可以判断图片大体的颜色分布,方向梯度直方图对图片边缘特征敏感。
在这里插入图片描述
而到了卷积神经网络时代,就不必提前处理特征了,而是直接从数据中学习特征,自己寻找合适的特征。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值