我可以使用 scipy 中的 SQP(Sequential quadratic programming)进行神经网络回归优化吗?
Can I use SQP(Sequential quadratic programming) in scipy for neural network regression optimization?
如标题,在 python 中训练和测试我的神经网络模型后。
我可以使用 scipy
中的 SQP 函数来优化神经网络回归问题吗?
比如我正在使用温度、湿度、风速这三个特征作为输入,预测某个区域的能源使用情况。
所以我使用神经网络来模拟这些输入和输出的关系,现在我想知道一些能量使用的最低点,输入特征是什么(即温度、湿度、风力种子是什么)。这只是一个例子,听起来可能不现实。
因为据我所知,没有那么多人只是用scipy
进行神经网络优化。但在某些限制下,scipy
是我目前拥有的最理想的优化工具(p.s。:我不能使用cvxopt
)。
有人可以给我一些建议吗?我将不胜感激!
当然可以,但是您的问题过于宽泛,无法给出完整的答案,因为缺少所有细节。
但是:SLSQP 不是正确的工具!
- 这是有原因的,NN 训练以一阶方法为主,例如 SGD 及其所有变体
- 梯度计算速度快,在小批量模式下也很容易做到(不为整个梯度付费;内存更少)
- 非常不同的随机梯度下降收敛理论,通常对大规模问题更好
- 总的来说:迭代速度快(例如每个时期的时间),同时可能需要更多的时期(为了完全收敛)
- NN是无约束连续优化
- SLSQP 是一种非常通用的优化,能够解决约束,您将为此付出代价(性能和稳健性)
- LBFGS 实际上是唯一有时用于执行此操作的工具(我看到的)(并且在 scipy 中也可用)
- 它是一个边界约束优化器(没有 SLSQP 的一般约束)
- 它近似于逆黑森矩阵,因此与 BFGS 和 SLSQP 相比,内存使用量大大减少
- 两种方法都是全批处理方法(与SGD的online/minibatch性质相反
- 他们还使用线搜索或类似的方法来调整更少的超参数:没有学习率!
我认为您应该坚持使用 SGD 及其变体。
如标题,在 python 中训练和测试我的神经网络模型后。
我可以使用 scipy
中的 SQP 函数来优化神经网络回归问题吗?
比如我正在使用温度、湿度、风速这三个特征作为输入,预测某个区域的能源使用情况。
所以我使用神经网络来模拟这些输入和输出的关系,现在我想知道一些能量使用的最低点,输入特征是什么(即温度、湿度、风力种子是什么)。这只是一个例子,听起来可能不现实。
因为据我所知,没有那么多人只是用scipy
进行神经网络优化。但在某些限制下,scipy
是我目前拥有的最理想的优化工具(p.s。:我不能使用cvxopt
)。
有人可以给我一些建议吗?我将不胜感激!
当然可以,但是您的问题过于宽泛,无法给出完整的答案,因为缺少所有细节。
但是:SLSQP 不是正确的工具!
- 这是有原因的,NN 训练以一阶方法为主,例如 SGD 及其所有变体
- 梯度计算速度快,在小批量模式下也很容易做到(不为整个梯度付费;内存更少)
- 非常不同的随机梯度下降收敛理论,通常对大规模问题更好
- 总的来说:迭代速度快(例如每个时期的时间),同时可能需要更多的时期(为了完全收敛)
- NN是无约束连续优化
- SLSQP 是一种非常通用的优化,能够解决约束,您将为此付出代价(性能和稳健性)
- LBFGS 实际上是唯一有时用于执行此操作的工具(我看到的)(并且在 scipy 中也可用)
- 它是一个边界约束优化器(没有 SLSQP 的一般约束)
- 它近似于逆黑森矩阵,因此与 BFGS 和 SLSQP 相比,内存使用量大大减少
- 两种方法都是全批处理方法(与SGD的online/minibatch性质相反
- 他们还使用线搜索或类似的方法来调整更少的超参数:没有学习率!
我认为您应该坚持使用 SGD 及其变体。