本人硕渣一枚,之前研究方向为GPU并行计算。现在开始学习机器学习和深度学习。俗话说好记性不如烂笔头。仅以此记录我的学习过程。
线性代数在机器学习方面有着重要的应用,为了更好的理解机器学习,复习一下线性代数。以前不知道线性代数在机器学习中的应用,这里我推荐大家学习一下李宏毅教授的课程讲解的非常好。
这里以数字识别为例:
首先一副图像输入如下所示:
我们首先将图片16*16转换成一个256的一维向量,然后我们可以看到如果我们用256维向量作为输入数据,数据量较大。
我们可以用一个向量空间去表示输入图像的向量
我们假设u1、u2.....un都是一个标准向量空间,有人可能问 n 为多少呢 ,如果用标准向量表示256维的向量n还是256,数据维数病没有下降啊
但是我们这里要考虑一个问题 其实并不是所有的图像都可以表示成手写文字 如下图所示,因此我们并不需要使用256基本Basic 去表示,因为如果使用256Basic 我们可以表示任何图像,但是事实上我们并不需要所有图像,我们需要识别出数字首先图像,这样Basic 应该会小于256:
这里面 N便会小于256
如下图所示,我们可以把改成Basic 元素表示,如下乳所示:
从而将数据降低维数。
上图是使用4W张图片利用PCA算法找到的Basic.这里面白色为0.黑色为1.灰色介于0到1之间。
利用NMF找出的Basic,这里严格来讲不能算是Basic,因为有可能不是相互独立的