这篇博文真的很难梳理出来一个逻辑···就是个基础重点知识的杂碎集合,我使劲概括成了6个问题,将就将就
1、学习—>损失函数—>梯度下降
神经网络的重要特征就是可以从数据中学习, 即, 由数据自动决定最优的参数。
为了使NN进行学习,就必须引入损失函数。学习,就是以损失函数为基准,找出使它达到最小的参数。
为了找到尽可能小的损失函数的值,就要使用利用了函数斜率的梯度下降法。
2、为什么要用损失函数作为学习的基准,而不用识别精度?
因为如果使用识别精度作指标,则参数的导数在绝大多数地方都会为0。
假设现在只考虑某一个参数,那么对这个参数的损失函数求导,如果导数为负,表示损失函数是在减小的,斜率是负的,所以为了进一步减小损失函数,应该把这个参数增大,向正方向改变;如果导数是正的,说明损失函数的趋势是增大,所以不能把这个参数继续增大了,否则损失函数也会增大,所以要向负方向更新参数;如果导数是0,则损失函数在这个参数附近的取值都一样,不需要更新参数。
如果以识别精度为指标,稍微改变一点点权重参数的值,是无法改变识别精度的,识别精度对于微小的参数变化基本没有反应,所以大多数参数的导数都会是0,参数无法更新,就算改变了,也是不连续的,离散的值;但是如果用损失函数,稍微改变一点参数的值,他也会发生