【问题标题】:Time step in Adam optimizerAdam 优化器中的时间步长
【发布时间】:2022-01-10 11:36:56
【问题描述】:
我正在尝试为我的神经网络实现 Adam 优化器(一切都是从头开始编写的)。
我已经实现了,但有一件事我不确定。时间步长什么时候递增?
我的意思是,每个小批量后它都会增加吗?我会在每个时代之后增加它吗?我是否在每个 epoch 之后重置计算的先前时刻和时间步长?
我正在尝试所有选项,但每件事都会产生不同的结果,所以我不确定哪个是正确的。
【问题讨论】:
标签:
deep-learning
neural-network
gradient-descent
【解决方案1】:
Adam 优化器与神经网络无关,因此它的定义方式是根据标准的迭代过程来定义的
theta_{t+1}, state_{t+1} = adam(loss, theta_t, state_t)
请注意,没有“批次”、“时期”或任何东西。每次更新权重时,都会更新统计信息(状态)。
如果您现在碰巧使用小批量来估计您的梯度,并据此更新您的权重,那么此时您的统计数据也会更新。如果你决定使用全梯度,这就是状态更新的时候,等等。