8.2-无监督学习-线性降维( 三 )


3.3 主成分分析()
另外一个常见的方法叫做(PCA),PCA做的事情就是:这个是一个很简单的 ,这个input x跟这个 z之间的关系就是一个 ,你把这个x乘上一个 w,你就得到它的 z 。现在要做的事情就是:根据一大堆的x(我们现在不知道z长什么样子)我们要把w找出来
接下来我们来介绍一下PCA,我们刚才讲过PCA要做的事情就是找这个W(z=Wx),这个W咋样找呢?假设我们现在考虑一个比较简单的case,我们考虑一个one 的case 。我们现在假设只要把我们的data 到一维的空间上,也就是z是一个scale,w其实就是一个row 。那我们就用w1w1来表示W的第一个row,把x跟w1w1做内积就得到了z_1z1 。接下来我们要问的问题是:我们要找的这个W1W1,应该要长什么样子 。我们先假设w1w1的长度是1(这个假设是有必要的,等下你会更清楚我们为什么要这个假设)如果的长度是1的话,那w1w1跟x做内积得到的z_1z1意味着:w跟x是高维空间中的一个点,w1w1是高维空间中的,z_1z1就是x在w1w1上的投影 。所以我们现在做的事情就是把一堆x通过w1w1变成z_1z1(得到一堆z_1z1,每个x都变成z_1z1)那现在的问题就是这个w1w1应该长什么样子呢,怎么选取这个w1w1呢?
举例来说,这个x的分布(图中蓝色的点,每一个点代表宝可梦),这个分布的横坐标是攻击力,纵坐标是防御力 。那今天我要把二维投影到一维,我应该要选什么样的w1w1呢?我可以选w1w1指向这个方向(红色的箭头),也可以选w1w1指向那个方向(橙色的箭头),我选不同的方向得到的结果会是不一样的 。那你总得给我们一个目标,我们才能知道要选咋样的w1w1 。我们的目标是这样的:我们希望选一个w^1w1,它经过以后得到这些z_1z1的分布是越大越好,也就是我们不希望说通过这个以后所有的点通通挤在一起,把本来的data point跟data point之间的奇异度拿掉了 。我们是希望说:经过以后,不同的data point他们之间的区别我们仍然是可以看的出来,所以找一个方向它可以让后的是越大越好 。如果我们看这个例子的话,你就会觉得说:如果是选这个方向的话(红色箭头),经过以后,可能会分布在这个range(large );如果选这个方向的话(橙色箭头),那么你的点可以是这个range(small ) 。所以你要选择w1w1的时候,你可能会选择w1w1的方向是large 这个方向 。从这个图上,你可以看出w^1w1其实是代表宝可梦的强度,宝可梦可能有一个代表它的强度,这个隐藏的同时影响了它的防御力跟攻击力,所以防御力跟攻击力是会同时上升的 。
数学推导
那我们要用来表示的话,你就会说:我们现在要去的对象是z_1z1的,z_1z1的就是 over所有的z_1z1,然后z_1z1减去(\bar z_1)^2(zˉ1)2 。
假设你知道咋样来做(等一下来讲怎么做),你找到一个w1w1,你就可以让z_1z1最大,然后就结束了 。你现在不只是想要投影到一维,你想要投影到更多维(二维) 。现在你想要投影到二维的平面的时候,这时候你就把x跟另外一个w2w2做内积,w1,w2w1,w2就是W的第一个row和第二个row 。那我们咋样来找w2w2呢?跟刚才找z_1z1一样,首先假设w2w2的长度为1,z_2z2的分布也是越大越好,但是你只是要让z_2z2的越大越好,这样你找出不就 是w1w1吗,但是你w1w1刚才已经找过了,这样的话你就等于什么事都没有做 。所以你要再加一个,刚才已经找到w1w1了,这次要w2w2跟w^1w1是垂直的(w1 * w2=0w1?w2=0) 。你先把w1w1,再找w2w2,等等,这就看你要到几维了 。(要几维是你自己要决定的) 。把w1,w^2,…w1,w2,…排起来成W就结束了 。
这个W是一个 (正交矩阵),这时候,你看它的row(w1,w2w1,w2)是,w1,w2w1,w2的长度都是1,所以它是一个。
接下里的问题就是怎样来找w1,w2w1,w2(咋样来解这个问题),这个解法是蛮容易的 。经典的方法:z_1z1等于w^1xw1x,z_1z1的平均值 (公式里面少除n),也就是 ,w1w1跟data point无关,可以提出来变为先 over x在w^1 \sum xw1∑x得到w^1w1跟\bar{x}xˉ 。接下来我们要的对象是z_1z1的(\sum_{z_1} (z_1-\bar{z_1})^2∑z1(z1?z1ˉ)2)公式整理为\sum( w1(x-\bar{x}))2∑(w1(x?xˉ))2 。可以把这个式子做一个转化:w^1w1是一个,x- \bar{x}x?xˉ是一个 。假设w^1w1是a,x-\bar{x}x?xˉ是b,可以写成a的乘 b的平方,可以写成a的 乘以b再乘以a的乘以b,可以写成a的乘以b再乘以a的乘以b的(a的乘以b是一个scale):找一个w1w1,它可以(w1)TSw1(w1)TSw1(S=Cov(x)S=Cov(x)) 。但这个是要有,如果没有的话,这个问题会有无聊的,把每个值都变无穷大,这样就结束了,所以这个问题是要有 。这个问题是:w^2w2的L-Norm等于1