PyTorch深度学习实践(三)梯度下降算法

分治算法
比如要搜索100个点,我先把横纵坐标分成4份,先取16个点,看那一个点得到的值最接近真实值,然后在该点所在区域划分区域继续取值
PyTorch深度学习实践(三)梯度下降算法_第1张图片跑上几轮,这个区域就足够小了

PyTorch深度学习实践(三)梯度下降算法_第2张图片像这种图,用分治法的话l可能会错过非常好的一些目标点
MxNet有500万个未知数,如果用分治法划分空间去搜索,这个数量也是非常大的,所以需要另外一种寻找最优值的算法

优化问题:寻找使目标函数权重最小的组合,求函数的最小值
非凸函数:在函数取两点画一条线,不能保证两点之间的点都在直线下方
PyTorch深度学习实践(三)梯度下降算法_第3张图片梯度下降只能找到局部最优点,整个目标函数最优的点叫做全局最优点
全局最优点即没有任何一个局部最优点的值比它的值更小

既然没法找到全局最优点为什么深度学习还是广泛采用梯度下降算法呢
答:在深度神经网络里面的损失函数中,并没有非常多的局部最优点,但是存在一种特殊的点:鞍点
在鞍点,梯度为0,多元的就是一个0向量
陷入鞍点就没法继续迭代了

随机梯度下降,可以跨越鞍点

PyTorch深度学习实践(三)梯度下降算法_第4张图片

你可能感兴趣的:(深度学习)