2015-12-08

由拉格朗日乘数想到

考虑lagrange multiplier的构造.
\mathcal{L}(X) = f(X) + \lambda*g(X)

这里一个比较有趣的地方是constraint function g作为一个余项引入.

根据g的定义,g(X) = 0.
也就是说实际上等价于
\mathcal{L}(X) = f(X)

考虑\mathcal{L}(X)的stationary points.
即满足\nabla \mathcal{L}(X) = 0的集合S.

如果s \in S且g(s) = 0的话,那么就是一个可能的solution.

这里的思路其实是通过构造一个零项保证function的mapping空间/关系不变.
但同时把问题简化为简单的stationary的解.

换个角度考虑的话,其实就是对一个现有space的某种形式的cut/prune/classify.
在保证某种特性不变的前提下,以g做出一定形式的划分.

考虑把f(X)看作是一种feature -> object的函数.
比如X是一组feature,object是一个用户标识.

也就是说假设存在一种描述,使得这个描述对某个用户唯一.
即通过feature vector可以unique地locate到某个用户.

然后考虑有一个对用户的label函数.
使得每个用户对应一个label.

重新如lagrange multiplier的形式的等式.
\mathcal{L}(X) = f(X) + \lambda_a*g_a(X) + \lambda_b*g_b(X) + ...

当X被归类为a的时候,其余的\lambda*g(X) = 0.
即此时的\mathcal{L}(X) - f(X) = \lambda_a*g_a(X) != 0.

如果令lambda都等于1的话,则形式为:
\mathcal{L}(X) = f(X) + g_a(X) + g_b(X) + ...
->
\mathcal{L}(X) = f(X) + col_sum(G*X).
G为一个dim(label)行feature列的matrix,col_sum为对列做的算数和.

那么就有可能解出一个matrix G,使得col_sum(G*X) = 0

对于一个给定的x,apply之后有col_sum(x;G) == 0 意味着什么呢?

意味如果x是在X中,且其对于label a的话,
\lambda_a*g_a(X) + \lambda_b*g_b(X) + ... == 0
->
\lambda_a*g_a(X) == 0即与label a的前提矛盾.

所以如果col_sum(x;G) == 0 的话,则表明x必定不在X中.

那么如果col_sum(x;G) != 0的话呢?

明显也不能说明x就在X中.
因为可能存在g_b(X) != 0等的情况.

如果G*X得到的vector形式V是[1,0,0,0,...]的某个维度值为1的unit vector呢?

也不能.

因为如果把G看作是X向feature space的project的话.
对于某个vector来说,project成unit vector也不足以说明就是在原来的X space.

所以,某种程度上来说,这个只是一个dim(X) -> dim(label)的某种形式的类bloom filter.

即G*X != unit vector的话,则必然不在原来的X中.











没有评论:

发表评论

瑕不掩瑜

新加坡哪吒2终于上映了. 也终于有机会去看了. 客观地说, 剧本应该是还算可以的.但是叙事成熟度还是不太够. 虽然哪吒二阶重生的片段确实很打动人,但切割开来看的话,缺少一个比较明显的叙事主线. 或者说在剧情长短安排上还是有些不太平衡. 像第一关的土拨鼠. 作为一个单元片段放出来算...