这篇博客是我在学习CS231n课程做的一些笔记,记录一些核心的知识点和公式
想看详细版请移步知乎专栏:
https://zhuanlan.zhihu.com/p/21930884?refer=intelligentunit%20%E8%BF%99%E4%B8%AA%E6%98%AFCS231n%E7%9A%84%E7%BF%BB%E8%AF%91%E7%AC%94%E8%AE%B0
最优化
几种方法
1.随机搜索
2.随机本地搜索:我们从一个随机W开始,然后生成一个随机扰动,只有当的损失值降低,我们才会更新。
3.跟随梯度:前两中方法都是随机找方向,梯度的方法则是直接计算出最好的方向 。在蒙眼徒步者的比喻中,这个方法好比是感受我们脚下山体的倾斜程度。
梯度计算
- 数值梯度法
- 分析梯度法
微分分析计算梯度
使用有限差值近似计算梯度比较简单,但是缺点在于终究只是近似。微分的方法其实是利用分为来分析,得到计算梯度的公式而不需要取近似。
在实际操作中常常将分析梯度方法的结果和数值梯度法的结果作比较,以此来检查实现的正确性,这个步骤叫做梯度检查。
梯度下降
程序重复地计算梯度然后对参数进行更新,这一过程叫做梯度下降,
小批量数据梯度下降
针对训练数据太多的问题提出的一个解决方案。将数据分成很多批,对每一批数据进行梯度下降。
小批量数据的极端情况是每个批量中只有1个数据样本,这种策略被称为随机梯度下降(SGD)
小批量的数据大小是一个超参数,但是一般不需要通过交叉验证来调参。它一般由存储器的限制来决定,或者干脆设为同样的大小,如32,64,128