fwalker 发表于 2022-2-16 14:41

学习几小时凸优化的一些想法

凸优化解决的问题如下:


可以看到,凸优化的本质是多目标优化。不仅仅要优化目标函数,约束条件同样要得到满足,得到优化。
多优化问题的基本方法,就是将优化目标进行线性叠加,综合考虑。构成拉格朗日问题,我个人称为总优化问题。


由此带来了一个整体的优化目标。这就是拉格朗日函数的一个来源。
另外一方面,生活哲学上,对于一个理想的可能,总是先对他进行猜测,但是往往会限定一个范围空间来猜测。机器学习,数字信号,大量都是这种思想,因为如果不限定范围,那真正解可能存在的空间太大了,算不过来。
这个逻辑如下:

[*]对于原问题来说,假设解一定存在。解是哪一个呢?
[*]将优化目标线性集合,用(lambda,niu)组合,综合考虑。
[*]总有一个(lambda,niu)使得总优化问题的解,和多优化问题的解,一致。
[*]求出这个(lambda,niu),得到此时的x。
针对上述3的逻辑,有很大的概率,总优化的解中包含了多优化问题。因为总的优化综合的考虑了各个优化目标。这个大概率是需要满足条件的,数学总是先猜测模型,然后学各种条件。
针对上述4的逻辑,x将是一个(lambda,niu)函数,是一个猜测空间。上述已经说明解大概率在这个空间中,所以,需要找出来是哪一个。如果仔细观察总优化问题,可以发现(lambda,niu)的变化,由正变负,由大变小,各个优化目标的偏重程度就不同,x也随之移动。这里也可以看到这个模型的表达能力很强。
再仔细观察,对于等式约束,正负的变化,对该目标的偏好发生巨大的变化。所以这个点是一个鞍点,也即不稳定点,一旦偏离,圆珠立刻掉下来,即发生很大变化。
我认为上述可以部分的解释拉格朗日函数和KKT条件的由来。
上述鞍解释也可以用极大极小来解释。其实就是鞍。
完毕。
-------------------------------------------------
另外,有的优化问题有解析解,其中以最小二乘法为主。这个千万要注意。以前我从事硬件苦力时,处理最小二乘问题,居然是用迭代求解,真是坑爹,完全把本科的线代忘了,毕竟学了六七年,从来没用过。什么导数等于零更是离大谱。
另外优化解x=f(y),我们知道,函数可以表达成积分形式或者微分形式(递归形式),所以最小二乘法有递归最小二乘,本质就是微分或变分,还有其他种类的递归形式,这种在传统数字信号处理中,很常见。什么卡尔曼滤波,贝叶斯滤波。都是基于前一刻更新的微分形式。
做硬件的时候,对算法软件很向往。但我现在感觉硬件软件都是一样的,他们的设计哲学,他们的载体都是一样的,都是人。都是可以交流的人,思想也都是一样的。甚至可以说,软件算法完全在模仿硬件,硬件也在逼近算法。
如果在学校有这种想法,我一定早早转计算机,做纯码农,在年轻的时候先捞一票。在这边,你懂的,干啥都一样,都能从设计变成调参,变成纯苦力。可惜没有如果。可惜啊。浪费了年轻的生命。一年稳稳30W,干个6年,150W也够了,早回家买房,和我爹妈继续卖豆腐去了。
七八年前很喜欢看理论书,现在看几个小时就看不下去了,多看看工具箱文档就行了。
记录给未来的自己看看吧。
页: [1]
查看完整版本: 学习几小时凸优化的一些想法