考虑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中.
没有评论:
发表评论