声明:该文章翻译自MIT出版的《DEEP LEARNING》,博主会定期更新文章内容。由于博主能力有限,中间有过错之处希望大家给予批评指正,一起学习交流。
一个简单的机器学习算法,主成分分析(PCA) 可以只使用基本的线性代数知识推导出来。
假设我们有
m
个点
我们编码这些点的一种方式是将它们表示成低维版本。对每个点
x(i)∈Rn
,我们找到一个对应的码向量
c(i)∈Rl
。如果
l
比
PCA 是根据解码函数的选择定义的。特别地,为了使解码器简单,我们选择矩阵乘法将码映射回
Rn
。让
g(c)=Dc
,其中
D∈Rn×l
是定义解码地矩阵。
为解码器计算最优码是非常棘手的问题。为了让编码容易,PCA限制
D
的列是相互正交的。(注意
D
不是一个正交矩阵除非
l=n
)
到目前为止讨论的问题,有许多可行的解决方法,因为如果我们按比例减小所有点的 ci ,那么我们可以增加 D:,i 的规模。为了给出一个唯一的解,我们限制 D 的所有列都有单位范数。
为了将这个基本想法转成我们可以实现的算法,我们要做的第一件事是搞清楚如何对每个输入点 x 产生最优码点 c∗ 。一种方式是最小化输入点 x 和它的重构 g(c∗) 之间的距离。我们可以使用范数来衡量这个距离。在主成分算法里,我们使用 L2 范数:
我们现在改变函数形式,省去第一项,因为该项不依赖于 c :