监督学习(supervised learning)
从给定的训练数据集中学习出一个函数(模型参数),当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求包括输入输出,也可以说是特征和AI作业1-ML基础目标。训练集中的目标是由人标注的。监督学习就是最常见的分类(注意和聚类区分)问题,通过已有的训练样本(即已知数据及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优表示某个评价准则下是最佳的),再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的。监督学习是训练神经网络和决策树的常见技术。这两种技术高度依赖事先确定的分类系统给出的信息,对于神经网络,分类系统利用信息判断网络的错误,然后不断调整网络参数。对于决策树,分类系统用它来判断哪些属性提供了最多的信息。常见的有监督学习算法:回归分析和统计分类。最典型的算法是KNN和SVM。
无监督学习(unsupervised learning)
输入数据没有被标记,也没有确定的结果。样本数据类别未知,需要根据样本间的相似性对样本集进行分类(聚类,clustering)试图使类内差距最小化,类间差距最大化。通俗点将就是实际应用中,不少情况下无法预先知道样本的标签,也就是说没有训练样本对应的类别,因而只能从原先没有样本标签的样本集开始学习分类器设计。非监督学习目标不是告诉计算机怎么做,而是让它(计算机)自己去学习怎样做事情。非监督学习有两种思路。第一种思路是在指导Agent时不为其指定明确分类,而是在成功时,采用某种形式的激励制度。
分类和回归
不管是分类,还是回归,其本质是一样的,都是对输入做出预测,并且都是监督学习。说白了,就是根据特征,分析输入的内容,判断它的类别,或者预测其值。分类和回归的区别在于输出变量的类型。定量输出称为回归,或者说是连续变量预测;定性输出称为分类,或者说是离散变量预测。
聚类和降维
聚类
聚类是用于寻找数据内在的分布结构。既可以作为一个单独的过程,如异常检测等;也可作为分类等其他学习任务的前驱过程。聚类是标准的无监督学习。
降维
降维主要是为了缓解维数灾难的一个重要方法。主要是通过数学变换将原始的高维属性转变到一个低维的子空间。虽然人们平时观测到的数据基本都是高维的,但实际上真正与学习任务的分布相关的往往是低纬度的分布。所以,一般可以通过最主要的几个特征维度就可以实现对数据的描述。如kaggle上的泰坦尼克号生还问题。其主要是通过给定一个人的许多描述特征如年龄、姓名、性别和票价等来判断其是否能在海滩中生还。这就需要先进行特征筛选,从而找出主要的特征,让学校到的模型有更好地泛化性。
损失函数
简单的理解就是每一个样本经过模型后会得到一个预测值,然后得到的预测值和真实值的差值就成为损失(当然损失值越小证明模型越是成功),我们知道有许多不同种类的损失函数,这些函数本质上就是计算预测值和真实值的差距的一类型函数,然后经过库(如pytorch,tensorflow等)的封装形成了有具体名字的函数。
训练集、测试集、验证集
训练集(train set)用于训练模型以及确定参数。相当于老师教学生知识的过程。
测试集(test set)用于检验模型的泛化能力。相当于大考,上战场一样,真正的去检验学生的学习效果。
验证集(validation set)用于确定网络结构以及调整模型的超参数。相当于月考等小测验,用于学生对学习的查漏补缺。
过拟合、欠拟合
过拟合
是指模型在训练集上表现很好,到了验证和测试阶段就很差,即模型的泛化能力很差。
欠拟合
是指模型在训练集、验证集和测试集上均表现不佳的情况;
经验风险、期望风险
经验风险(empirical risk)模型在整个训练数据集上的误差的均值。
期望风险(expected risk)模型在所有可能出现的样本(包括训练集,测试集和其它未采集的样本)上的误差的均值。