凸优化定义 就定义而言,凸优化是:在最小化(最大化)的优化要求下,目标函数是凸函数且约束条件所形成的可行域集合是一个凸集的优化方法,因此凸优化的判定条件有两个,1.函数定义域是凸集 2.目标函数是凸函数。 凸集的定义:假设对于任意 x, y ∈ C and 任意参数 α ∈ [0, 1], 我们有 αx + (1 − α)y ∈ C,集合 C 为凸集。
凸集的理解:对凸集的理解,我们可以分别从理论定义的角度和函数图像的角度两方面理解。从定义上讲,对于集合 C 中的任意两个元素 x 和 y,需要满足 αx + (1−α)y 的值也需要在集合 C 中;从函数图像角度讲,这个定义中的式子含义是,x、y 两点连线上的任意一个点都需要属于集合 C,如下图所示,任何证明集合是凸集的方法都可以通过定义和函数图像两方面进行。
针对一个 AI 问题,我们都可以将 AI 问题拆解为建立模型+优化模型这两块内容的,对于任何一个 AI 问题,其目标函数都可以用以下形式表示:
我将解决业务问题中的常用套路称为算法思维,并总结了以下 4 个重要步骤:
将业务场景中需要解决的问题转化为数学问题,并写出严格的数学模型(目标函数)
针对写出的数学模型判断凹凸性
根据目标的函数的凹凸性判断问题类型(如果目标函数是凸函数,我们需要判断该函数所属问题类型,常见的问题类型有 Linear Programming、Quadratic Programming 等;如果目标函数是非凸函数,也需要判断其所属问题类型,常见有 Setcover Problem,Max flow Problem 等)