【问题标题】:MATLAB constrained optimization with theta constraints具有 theta 约束的 MATLAB 约束优化
【发布时间】:2018-05-03 02:08:01
【问题描述】:

我想找到最小化 y-X*theta 的 l2 范数的 theta,并且约束是 theta 的某些元素应该等于 0。我如何在 MATLAB 中做到这一点?

我的 y 是 10x1,X 是 10x9,theta 是 9x1

我认为使用梯度下降可能会有所帮助,但不确定

【问题讨论】:

    标签: matlab optimization linear-regression gradient-descent


    【解决方案1】:

    由于非正式的描述,这里可能有多种解释。

    如果您只想解决线性最小二乘问题并将一些变量先验为零,请使用 matlab 的 lsqlin 并为这些变量使用 upper-bound=lower-bound=0

    如果您的任务是以某种方式解决相同的目标,例如:at least w values of theta are 0,这可能是 NP-hard(在一般设置中),您将需要混合整数二次规划或混合整数秒阶锥编程。在这种情况下,我不确定是否有可用的求解器。一些开源求解器可能是 Bonmin(Couenne,程度较低)或大多数商业求解器,如(Gurobi、CPLEX、Mosek)。

    【讨论】:

    • 添加第二种解释,如果我们想找到一个稀疏的 theta,这意味着最小化 theta 的 L0 范数。相反,如果我们放宽问题以最小化 L1 范数(它是凸的),那么问题在某些约束下是等价的。 Good read!
    • 是的,l1-norm 是稀疏诱导的。是的,它可以由同一个求解器求解。但它并不顺利,需要重新制定(例如,通过使用约束;这里的原始问题是有界但不受约束的)。它也不同于 at-least-w-val 问题。
    • 好的,我解决了我自己的问题,只是使用了我的 X 的一个子集来满足约束。然后使用子集求解 theta
    猜你喜欢
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 2012-12-08
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    相关资源
    最近更新 更多