深度学习第四天
python基础:
lambda表达式
求导:
求导
优化器:
鞍点:沿着某一方向是稳定的,另一条方向是不稳定的奇点,叫做鞍点。在泛函中,既不是极大值点也不是极小值点的临界点,叫做鞍点。在矩阵中,一个数在所在行中是最大值,在所在列中是最小值,则被称为鞍点。在物理上要广泛一些,指在一个方向是极大值,另一个方向是极小值的点。像个马鞍:在x-轴方向往上曲,在y-轴方向往下曲。
优化算法一:Batch Gradient Descent(BGD)
对参数的计算梯度
这种算法在一次更新中,就对所有的数据的梯度进行更新,计算速率慢,遇到大量的数据时处理麻烦,不能投入新数据实时更新模型。
优化算法二:Stochastic Gradient Descent(SGD)
随机梯度下降时没有用到m个样本的数据,而仅仅只是选取一个样本i来求梯度。
对参数的计算梯度
优点:对于计算大量数据时,有很多相似的数据,使用BGD可能存在冗余,而SGD就没有冗余,而且学习的快,并且可以新增样本数据。
缺点:噪音比SGD大,有严重的震荡。虽然训练速度快,但是准确度下降,包含一定的随机性。减小learning rate,SGD和BGD的收敛是一样的。
优化算法三:Mini-Batch Gradient descent (MBGD)
小批量梯度下降法是批量梯度下降法和随机梯度下降法的折衷,也就是对于m个样本,我们采用x个样本来迭代,1<x<m。一般可以取x=10,当然根据样本的数据,可以调整这个x的值。
对参数的计算梯度
和 SGD 的区别是每一次循环不是作用于每个样本,而是具有 n 个样本的批次。
MBGD 每一次利用一小批样本,即 n 个样本进行计算,这样它可以降低参数更新时的方差,收敛更稳定,另一方面可以充分地利用深度学习库中高度优化的矩阵操作来进行更有效的梯度计算。