从K-means到Sparse Coding

来源:互联网 发布:滴滴扫街软件 编辑:程序博客网 时间:2024/05/22 10:16

命题:K-means和SC很像很像。

 

K-means的可以简单理解为将样本集压缩投影到k个中心点(簇)上,这个k个中心点就相当于“基向量”,K-means的优化目标是:

 

从K-means到Sparse Coding

V是中心点,X是原始示例。这个公式可以进一步写为:

 

从K-means到Sparse Coding

Um表示Xm属于哪个中心点Vk。um是一个K维列向量,且只有一个元素为1,其它为0,哪行元素为1就代表属于哪个中心点。

上面这个优化函数对U的要求太高(一个示例只能属于一个簇),对这个条件放宽(一个示例可以属于多个簇,但不能属于太多的簇,就加一个L1正则项),就得到:

 

从K-means到Sparse Coding

 

这个函数跟Ng讲的sparsecoding是等价的:

 

从K-means到Sparse Coding

 

 

到此,可以看到K-means和sparse coding是如此的像,所以求解步骤也是很像的,K-means本质就是EM过程,即判断一个示例属于哪个中心点,重新更新中心点。

所以看到SC的求解步骤是:

Learning a set of basis vectors using sparse codingconsists of performing two separate optimizations,

the first being an optimization over coefficientsai for each training example

and the second an optimization over basisvectors across many trainingexamples at once.

原创粉丝点击