背景
我正在使用 scikit-learnMLPRegressor来学习具有以下参数的模型:
hidden_layer_sizes=(16, 16),
learning_rate_init=1e-2,
solver='sgd',
momentum=0.9,
activation='tanh',
learning_rate='constant'
我用partial_fit()增量拟合模型。有时我会FloatingPointError在MLPRegressor's 代码的这一行得到一个:
updates = [self.momentum * velocity - self.learning_rate * grad
for velocity, grad in zip(self.velocities, grads)]
>>> FloatingPointError: underflow encountered in multiply
问题
当模型通过乘以学习率、动量、速度和误差梯度来计算更新参数的数量时,我得到了一个下溢错误。
下溢不是意味着更新太小了吗?这是否意味着该模型已达到某个局部最小值?我是否应该以此为暗示:
- 我已经用尽了我的数据并且训练已经结束,
- 我应该提高学习率以保持更新
- 还有什么?