我可以在scipy中使用SQP(序列二次规划)进行神经网络回归优化吗?

2024-10-16 20:40:44 发布

您现在位置:Python中文网/ 问答频道 /正文

作为标题,在python中训练和测试了我的神经网络模型之后。在

我可以使用scipy中的SQP函数来优化神经网络回归问题吗?在

例如,我使用温度、湿度、风速这三个特征作为输入,预测某个地区的能源使用情况。在

所以我用神经网络来模拟这些输入和输出的关系,现在我想知道一些能量消耗的最低点,什么样的输入特性(比如温度、湿度、风种子等),这个例子听起来可能不现实。在

因为据我所知,并不是很多人仅仅使用scipy来优化神经网络。但在某些限制下,scipy是我目前拥有的最理想的优化工具(注:我不能使用cvxopt)。在

有人能给我一些建议吗?我会非常感激的!在


Tags: 函数模型标题关系情况神经网络scipy特征
1条回答
网友
1楼 · 发布于 2024-10-16 20:40:44

当然,这是可能的,但是你的问题太宽泛了,无法给出完整的答案,因为所有的细节都不见了。在

但是:SLSQP不是正确的工具!

  • 这是有原因的,NN训练是由一阶方法控制的,比如SGD和它的所有变体
    • 快速计算梯度,易于在小批量模式下进行(不支付完整梯度的费用;内存更少)
    • 随机梯度下降的不同收敛理论通常对大规模问题更好
    • 总的来说:迭代速度快(例如每历元的时间),同时可能需要更多的周期(为了完全收敛)
  • NN是无约束连续优化
    • SLSQP是一个非常通用的优化,能够处理约束,您将为此付出代价(性能和健壮性)
    • LBFGS实际上是唯一一个有时用来做这件事的工具(在scipy中也有)
      • 它是一个有约束的优化器(没有SLSQP那样的一般约束)
      • 它近似于逆hessian,因此与BFGS和SLSQP相比,内存使用量大大降低
    • 这两种方法都是全批次方法(与SGD的在线/小批量性质相反
      • 他们也在使用线搜索或类似的方法来调整较少的超参数:没有学习率!在

我认为你应该坚持新加坡元和它的变种。在

如果你想采用二阶方法:learn from sklearn's implementation using LBFGS

相关问题 更多 >