首页 > 编程知识 正文

深度学习算法详解及应用,深度学习的发展历程

时间:2023-05-04 00:30:18 阅读:157605 作者:2348

关于epoch、batch_size、iteration,一直以来都有点难理解,特别是关于epoch和iteration这个概念,在多次看了多个博客的过程中,我个人认为转载的这个更容易理解

深度学习框架包含很多参数,如果不了解一些基本参数,我想去看哪个深度学习框架都很难。 “了解基本概念有助于加深对深度学习知识的理解,也是必然要掌握的。” 以下是初学者经常听到的几个参数。

1、batch深度学习优化算法简单地说是梯度下降。 每次参数更新有两种方法。

第一,循环所有数据(样品集中的所有数据)计算一次损失函数,然后计算各参数的函数斜率,更新斜率。 此方法的***缺点***是每次更新参数时都要查看数据集中的所有样本。 计算量开销大,计算速度慢,不支持在线学习。 这称为Batch gradient descent,这会降低批梯度。

另一种是每次看到一个数据就计算损失函数,求出梯度更新参数。 这被称为随机梯度下降、静态梯度设计。 这种方法比较快,但***缺点***收敛性能不太好,可能在最优点的附近晃悠。 hit是最没有优势的。 两次参数的更新也相互抵消,目标函数的振动可能会变得激烈。

为了克服两种方法的缺点,目前普遍采用折中手段。 最小梯度,小批量梯度下降。 该方法将数据分成若干批次,逐批次更新参数。 这样,一批中的一组数据共同确定了此次坡度的方向,下降后不易偏移,减少了随机性。 另一方面,批量的样本数与整个数据集相比非常小,所以计算量也不是很多。

这就是为什么batch_size经常出现在深度学习框架函数中的原因,因为目前的坡度降基本上是基于mini-batch。

有关将培训示例转换为batch_size格式的信息,请参阅准备培训示例的batch_size数据。

2、每次迭代(iterations iterations )也更新权重,每次更新权重时,都需要对batch_size个数据进行Forward运算以获得丢失函数,并以BP算法来更新参数。 一个iteration等于使用batchsize个样本训练一次。

3、epochs epochs定义为所有批次(所有样品)向前和向后传播1次的1次训练迭代。 这意味着一个周期是整个输入数据的一次前进和后退。 简单来说,epochs是指在训练中数据被“回合”了多少次。

举一个例子

训练集有1000个样本,batchsize=10,那么:

要训练整个样本集,请执行以下操作:

100次iteration,1次epoch。

具体计算公式如下

one epoch=numbersofiterations=n=训练样本数/batch_size

注:

在LSTM中也会遇到seq_length,其实

batch _ size=num _ steps * seq _ length

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。