首先,结合手写数字分类来说说什么是训练集(traning set),目标向量(target vector),训练(traning),学习(learning),测试集(test set),泛化(generalization),预处理(pre-processed),特征抽取(feature extraction)。
例:现在有个手写数字识别的例子,如下图所示。每个数字对应一个28*28像素的图片,在实际的操作过程中我们会把28*28的图片展成一个784(28*28=784)的向量记为x。目标是建立一个机器,能够以这样的向量x作为输入,以数字0到9作为输出。
- 训练集(traning set): 以数字分类分类为例子,由N个数字图片[x1,x2,...,xn ](其中Xi代表一个数字图片)组成的一个大的集合被叫做训练集,用来调节模型参数。训练集中数字的类别实现已知,通常是被独立考察、人工标注的。
- 目标向量(target vector):通常用向量t来表示,在此例中,t表示数字的类别,代表对数字的标签。例如用一个10维的向量t来表示 ,第一个图片5 对应的目标向量为[0 0 0 0 0 1 0 0 0 0 ],第二个图片0对应的目标向量为[1 0 0 0 0 0 0 0 0 0 ],哪一位为1就代表此数字是几。需要注意的是每个数字图像x只有一个目标向量t.
- 训练(traning), 学习(learning): 假设运行完机器学习算法的结果可以表示为一个函数y(x), 它以一个新的数字的图像x为输入,产生向量y(x), y(x)的形式与目标向量相同(在此例中同为维度为10 的向量)。我们的目标是让产生的y(x)尽可能接近目标向量t,假设这个例子的结果y(x) = w(T)x +b (实际上不是啦)其中w叫做权重(weight)在这里是个 784*10 的权重矩阵,b叫做偏执(bias)维度为10,x 是输入向量维度为784,w(T)代表 w的转置,我们要训练的其实就是w和b的值。训练和学习做的事情就是通过不断优化w和b的值使得y(x)与t 越来越接近。
- 测试集(test set):一旦模型别训练出来,它就能确定新的数字的图像集合中图像标签。这些新的数字的图像集合就是测试集。
- 泛化(generalization):正确分类与训练集不同的新样本的能力。
- 预处理(pre-processed),特征抽取(feature extraction):原始的输入向量变换的新的变量空间,在新的变量空间中往往问题可以更容易的解决。以数字分类为例,数字的图像通常被转化缩放,舍得每个数字被包含在一个固定大小的盒子中,使得所有数字的位置和大小相同,极大的减小了每个数字类别的变化性,这使得后续的是被算法变得更容易。需要注意的是测试集必须使用与训练集相同的方法进行预处理。
然后说下监督学习(supervised learning)和非监督学习(unsupervised learning)
- 监督学习(supervised learning):训练数据的样本包含输入向量以及对应的目标向量,例如像数字识别中的训练集每张图片都有个标签指定这张图片对应的是数字几。
- 非监督学习(unsupervised learning) :训练数据由一组输入向量x组成,没有对应得目标向量。
分类(classification)与回归(regression)
分类(classification):目标是给每个输入向量分配到有限个离散标签中的一个,例如数字识别。一般属于监督学习(supervised learning)。
回归(regression): 输出由一个或者多个连续变量组成。例如多项式回归。一般属于监督学习(supervised learning)。
聚类(clustering)、密度估计(density estimation)、数据可视化(visualization)
聚类(clustering): 发现数据中相似的样本的分组,与分类不同,训练集没有标签,一般属于非监督学习(unsupervised learning)。
密度估计(density estimation):决定输入空间的数据分布,一般属于非监督学习(unsupervised learning)。
数据可视化(visualization): 把数据从高维空间投影到地位空间,一般属于非监督学习(unsupervised learning)。