3

聊一下优化问题

 3 years ago
source link: https://blog.csdn.net/oqqYuan1234567890/article/details/89280536
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

写这篇文章的背景

由于笔者之前在搜索优化算法的时候,常常搜索到两种内容,一块是ML常用的LP问题的优化(SGD以及其变种AdaGrad/Adam…),另外一块就只有搜索运筹优化(OR)的关键词才能看到的优化(LP/MIP/NP)问题。
个人认为,运筹优化的范围要比ML优化问题更广更复杂,面对的难题也更多。毕竟ML的优化问题主要在性能优化上,而运筹的优化问题更多还在实现功能。而且ML优化已经大量工程化,而运筹优化的工程化相对来说要逊色一些,而且常常是作为决策用途,工程化的要求稍低一些。

一般来说,对于特定的问题,人们会关注其输入与输出,对于输出,会关注其边界,比如极大值或极小值。
以下是一些常见的极大极小问题:

  • 在可接受风险范围内的投资收益最大化问题
  • 在满足一定时效的物流网络中最小化运输成本问题
  • 在满足基本营养摄入的情况下,膳食菜单搭配最小化成本问题(Cplex官网的一个tutorial example,但这辈子是不可能为了省钱去选择食物的)

实际上在不同的实际环境中,以上这些问题的输入也会不一样,有时候是凸优化问题,有时候会是非凸优化问题(NP问题)
由于笔者不是数学出身,所以只简单讨论一下凸优化问题,基本的定义可以参考wiki

凸优化算法

这里所说的优化算法都是凸优化,机器学习与深度学习常常用到的都是LP问题的优化算法,对于非凸优化(例如TSP问题、背包问题),一般可以通过针对特定问题的精确解算法以及启发式算法(例如GA/SA)来求解。
下面是一些相关博文:

https://blog.csdn.net/xbinworld/article/details/79113218
http://www.cnblogs.com/tornadomeet/p/3300132.html


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK