梯度下降Python,梯度下降的线性回归用python

  梯度下降Python,梯度下降的线性回归用python

  研究机器学习和深度学习的一个主要问题是梯度下降的几种类型。我应该使用三种梯度下降(批量梯度下降、最小梯度下降和随机梯度下降)中的哪一种?本文理解这些概念之间的区别,并从梯度约简的代码实现来说明这些方法。

  斜坡下降

  梯度下降是帮助神经网络获得正确权重和偏差的最常用算法之一。梯度下降法(GD)是一种逐渐最小化成本函数j )-w,B)的算法。尝试通过代价函数反复更新权重和偏差以达到全局最小。

  最小化成本函数,斜率下降图

  在计算GD之前,先获取输入并通过神经网络的所有节点,然后计算输入、权重和偏差的加权和。这是计算梯度下降的主要步骤之一,称为前向传播。如果有输出,与期望输出比较,计算两者之间的距离,即误差。如果这个错误存在,您现在可以将它传播回来,更新每个重量和偏差,并尝试最小化这个错误。正如您所料,这部分被称为反向传播。使用导数计算反向传播步长,并返回到“梯度”。该值指示为了最小化成本,成本函数应该遵循哪个方向。

  现在我们打算更新权重矩阵W和偏差向量b。斜率下降的规则如下

  也就是说,新的权重/偏差值是最后的值减去接近成本函数的全局最小值的斜率。我们还将这个斜率乘以学习率,学习率控制舞步。

  这种经典的梯度下降法也被称为批量梯度下降法。在这种方法中,每个历元遍历所有训练数据,计算损失并更新W和b的值。这种方法具有稳定的收敛性和误差,但在大型机器学习数据集上非常慢,因为它使用了整个机器学习训练集。

  最小坝坡缩减

  想象一下将数据集分成几批。这样,算法不必在遍历整个数据集后更新权重和偏差,而是在所谓的最小批量结束时更新。这样,成本函数可以快速移动到全局最小值,并且权重和偏差可以在每个历元上更新多次。最常见的小批量是16、32、64、128、256和512。大多数项目使用最小坡度减小。这是因为大机器学习数据集中得很快。

  x=data _ inputy=labels parameters=initialize _ parameters(layers _ dims)for iinrange(0,num _ iterations)33666 mini _ batch _ size(forminibatchinminibatches:# selectaminbatch(mini batch _ x,mini batch _ y))mini batch # foor caches=forward _ propagation(x,parameters)computecost . cost=compute _ cost)A参数(# update parameters . parameters=update _ parameters(parameters,grads))。

  斜坡下降

  如上所述,在这个梯度下降中,每一批等于整个数据集。

  其中{1}代表小批量的第一批。缺点是每次迭代耗时太长。这种方法可以用来训练机器学习数据集,但是样本不到2000个。x=data _ inputy=labels parameters=initialize _ parameters(layers _ dims)for iinrange(0,num _ iterations)3365365306;parameters)compute cost . cost=compute _ cost)a,y ) #反向传播.分组缓存,参数(#更新平均

  随机梯度下降

  在这种方法中,每一批都与训练集的实例相同。

  其中,(1)给出了第一个训练实例。这里的缺点是失去了向量化的优势,振动更大,但收敛更快。

  x=data _ inputy=labels parameters=initialize _ parameters(layers _ dims)for iinrange(0,num _ iterations)3365365306;caches=forward _ propagation(x[:j],parameters)computecostcost=compute j))backward propagation grads=bace

  最后一次

  了解这些优化算法之间的差异非常重要。因为它构成了神经网络的重要功能。综上所述,批次梯度的降低比随机梯度的降低更准确,但随机梯度的降低更快。小批量梯度的降低将它们很好地结合起来,提供了良好的准确度和性能。

  batchvsstochastivsmini-batchgradientdescent

  所有版本的梯度下降只能通过使用最小梯度下降代码来实现。对于随机斜率下降,可以将mini_batch_size设置为1;对于批次斜率下降,可以将mini_batch_size设置为数据集中的实例数。因此,批量、小批量和随机梯度下降之间的主要区别是每个历元中使用的实例数量和达到成本函数的全局最小值所需的时间。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: