误差分析Error Analysis
如果你想得到一个训练算法来做人类可以做的任务,而且你的算法没有达到人类的效果,你需要手动检查算法中的错误,来得到你的下一步应该做什么?这个过程叫做错误分析。
假如你的算法对猫的分类中总是将狗误判为猫,你可以采取的措施有很多侧重点,比如收集更多狗的图片,或者设计对狗特有的特征等以让狗不再误认为猫。
问题在于你是否应该继续并且开始一个项目侧重于狗的问题?它重要么?
错误分析的方法可以让你很快的判断值不值得这么做。
所以我的建议是:
1.拿大约100张分类错误的验证集图片进行手动检测,数一数看看有几张验证集中标错的样本实际上是狗的图片。即得到一个上限,通过处理狗的问题能提高多少准确率?机器学习中,称之为表现上限。
如果你在构建应用系统时,这个简单的计数过程也就是错误分析,可以节省你很多时间,来决定什么是重要的,或者哪个方向有希望,值得关注?
可解释性
Model interpretability
可解释性是什么?
广义上的可解释性指在我们需要了解或解决一件事情的时候,我们可以获得我们所需要的足够的可以理解的信息。比如我们在调试bug的时候,需要通过变量审查和日志信息定位到问题出在哪里。比如在科学研究中面临一个新问题的研究时,我们需要查阅一些资料来了解这个新问题的基本概念和研究现状,以获得对研究方向的正确认识。反过来理解,如果在一些情境中我们无法得到相应的足够的信息,那么这些事情对我们来说都是不可解释的。
参数和超参数Hyperparameters and Parameters
什么是模型参数?
简单来说,模型参数就是模型内部的配置变量,可以用数据估计它的值。
具体来讲,模型参数有以下特征:
进行模型预测时需要模型参数。
模型参数值可以定义模型功能。
模型参数用数据估计或数据学习得到。
模型参数一般不由实践者手动设置。
模型参数通常作为学习模型的一部分保存。
通常使用优化算法估计模型参数,优化算法是对参数的可能值进行的一种有效搜索。
模型参数的一些例子包括:
人造神经网络中的权重。
支持向量机中的支持向量。
线性回归或逻辑回归中的系数。
什么是模型超参数?
模型超参数是模型外部的配置,其值不能从数据估计得到。
具体特征有:
模型超参数常应用于估计模型参数的过程中。
模型超参数通常由实践者直接指定。
模型超参数通常可以使用启发式方法来设置。
模型超参数通常根据给定的预测建模问题而调整。
怎样得到它的最优值:对于给定的问题,我们无法知道模型超参数的最优值。但我们可以使用经验法则来探寻其最优值,或复制用于其他问题的值,也可以通过反复试验的方法。
Visualising Data数据可视化
降维Dimensionality Reduction
机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达形式。 y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然提高维度也是可以的)。f可能是显式的或隐式的、线性的或非线性的。
目前大部分降维算法处理向量表达的数据,也有一些降维算法处理高阶张量表达的数据。之所以使用降维后的数据表示是因为在原始的高维空间中,包含有冗余信息以及噪音信息,在实际应用例如图像识别中造成了误差,降低了准确率;而通过降维,我们希望减少冗余信息所造成的误差,提高识别(或其他应用)的精度。又或者希望通过降维算法来寻找数据内部的本质结构特征。
在很多算法中,降维算法成为了数据预处理的一部分,如PCA。事实上,有一些算法如果没有降维预处理,其实是很难得到很好的效果的。
主成分分析算法(PCA)
Principal Component Analysis(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。
通俗的理解,如果把所有的点都映射到一起,那么几乎所有的信息(如点和点之间的距离关系)都丢失了,而如果映射后方差尽可能的大,那么数据点则会 分散开来,以此来保留更多的信息。可以证明,PCA是丢失原始数据信息最少的一种线性降维方式。(实际上就是最接近原始数据,但是PCA并不试图去探索数 据内在结构)