关于凸优化的一些简单概念
没有系统学过数学优化,但是机器学习中又常用到这些工具和技巧,机器学习中最常见的优化当属凸优化了,这些可以参考Ng的教学资料:http://cs229.stanford.edu/section/cs229-cvxopt.pdf,从中我们可以大致了解到一些凸优化的概念,比如凸集,凸函数,凸优化问题,线性规划,二次规划,二次约束二次规划,半正定规划等,从而对凸优化问题有个初步的认识。以下是几个重要相关概念的笔记。
凸集的定义为:
其几何意义表示为:如果集合C中任意2个元素连线上的点也在集合C中,则C为凸集。其示意图如下所示:
常见的凸集有:
n维实数空间;一些范数约束形式的集合;仿射子空间;凸集的交集;n维半正定矩阵集;这些都可以通过凸集的定义去证明。
凸函数的定义为:
其几何意义表示为函数任意两点连线上的值大于对应自变量处的函数值,示意图如下:
凸函数的一阶充要条件为:
其中要求f一阶可微。
二阶充要条件为:
其中要求f二阶可微,表示二阶导数需大于0才是凸函数。
常见的凸函数有:指数函数族;非负对数函数;仿射函数;二次函数;常见的范数函数;凸函数非负加权的和等。这些可以采用上面2个充要条件或者定义去证明。
凸优化问题(OPT)的定义为:
即要求目标函数是凸函数,变量所属集合是凸集合的优化问题。或者目标函数是凸函数,变量的约束函数是凸函数(不等式约束时),或者是仿射函数(等式约束时)。
对于凸优化问题来说,局部最优解就是全局最优解。
常见的凸优化问题包括:
线性规划(LP):该问题是优化下面的式子:
其中那个不常见的奇怪符号表示按元素小于等于,后面出现类似符号可以类似理解。
二次规划(QP):该问题是优化下面的式子:
二次约束的二次规划(QCQP):该问题是优化下面的式子:
半正定规划(SDP):该问题是优化下面的式子:
按照文章说SDP在机器学习领域应用很广,最近很流行,不过我好像没太接触到过。
参考资料:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗