机器学习简介
由来
阿瑟.萨缪尔Arthur Samuel,1952年研制了一个具有自学习能力的西洋跳棋程序,1956年应约翰.麦卡锡John McCarthy(人工智能之父)之邀,在标志着人工智能学科诞生的达特茅斯会议上介绍这项工作。他发明了“机器学习”这个词,将其定义为“不显示编程地赋予计算机能力的研究领域”。
假设空间hypothesis space
版本空间version space
归纳偏好inductive bias
机器学习算法在学习过程中对某种类型假设的偏好。如果没有偏好,产生的模型每次在进行预测时随机抽选训练集上的等效假设,那么对这个新输入,学得模型时而告诉我们它是好的、时而告诉我们它是不好的,这样的学习结果显然没有意义。
归纳偏好对应了学习算法本身所做出的关于”什么样的模型更好”的假设。在具体的现实问题中,这个假设是否成立,即算法的归纳偏好是否与问题本身匹配,大多数时候直服务器托管网接决定了算法能否取得好的性能。
“奥卡姆剃刀”Occam’s razor
常用的、自然科学研究中最基本的原则,即“若有多个假设与观察一致,则选最简单的那个”(在回归学习中一般认为更平滑意味着更简单)
“没有免费的午餐”定理No Free Lunch Theorm,NFL
无论学习算法1多聪明、学习算法2多笨拙,他们的总误差与学习算法无关,期望性能相同。
→ 若考虑所有潜在问题,则所有学习算法都一样好,要谈论算法的相对优劣,必须针对具体的学习问题,学习算法自身的归纳偏好与问题是否相配,往往会起到决定性作用。
机器学习5种学习方法
1、监督学习supervised learning:是利用已知类别的样本(即有标记的样本 labeled sample,已知其相应的类别),调整分类器的参数,训练得到一个最优模型,使其达到所要求性能,再利用这个训练后的模型,将所有的输入映射为相应的输出,对输出进行简单的判断,从而实现分类的目的,这样,即可以对未知数据进行分类。
2、无监督学习unsupervised learning:把相似度高的东西放在一起,对于新来的样本,计算相似度后,按照相似程度进行归类就好。
3、半监督学习semi-supervised learning:处在监督学习和无监督学习之间的是半监督学习。Semi-Supervised Learning中使用的数据,有一部分是标记过的,而大部分是没有标记的。因此和监督学习相比,半监督学习的成本较低,但是又能达到较高的准确度。
4、强化学习reinforcement learning:所谓强化学习就是智能系统从环境到行为映射的学习,以使奖励信号(强化信号)函数值最大,强化学习不同于连接主义学习中的监督学习,主要表现在教师信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习系统RLS(reinforcement learning system)如何去产生正确的动作。(相当于先无监督后有监督)
5、迁移学习t服务器托管网ransfer learning:考虑到大部分数据或任务是存在相关性的,所以通过迁移学习我们可以将已经学到的参数(parameter)分享给新模型从而加快并优化模型的学习,不用像之前那样从零开始,把已训练好的模型参数迁移到新的模型来帮助新模型训练数据集。
模型评估与选择
错误率error rate,精度accuracy,误差error,训练误差training error/经验误差empirical error(在训练集上的误差),泛化误差generalization error(在新样本上的误差)
过拟合overfitting(当学习器把训练样本学的太好了的时候,可能已经把训练样本本身的一些特点当做了所有潜在样本都会具有的一般性质,导致泛化性能下降→无法彻底避免,只能减小其风险)
欠拟合underfitting(对训练样本的一般性质尚未学好→容易克服)
模型选择问题model selection(选用哪个学习算法、使用哪种参数配置)
→无法直接获得泛化误差,而训练误差又由于过拟合现象的存在而不适合作为标准,那么,在现实中如何进行模型评估与选择呢?
2.1评估
分“测试集(验证集)”和“训练集”,以测试集上的“测试误差testing error”作为泛化误差的近似
留出法:直接将数据集D划分为两个互斥的集合,一个作为训练集S,另一个作为测试集T,划分尽可能保持数据分布的一致性,并且常见做法将大约2/3~4/5的样本用于训练,剩余样本用于测试
交叉验证法:将数据集D划分为k个大小相似的互斥子集,每次用k-1个子集作为训练集,余下的一个作为测试集,这样获得的k个测试结果取均值,k常取10
自助法:以自助采样法bootstrap sampling为基础,给定包含m个样本的数据集D,我们对它进行采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将该样本放回初始数据集中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集 D’,通过自助采样,初始数据集D中约有36.8%的样本未出现在D’中,于是可用D’做训练集,DD’做测试集
调参parameter tuning与最终模型
在模型选择完成后,学习算法和参数配置已选定,此时应用数据集D重新训练模型,这个模型在训练过程中使用了所有m个样本,才是最终提交给用户的模型。另外,通常把学得模型在实际使用中遇到的数据称为测试数据,为了加以区分,模型评估与选择中用于评估测试的数据集通常称为“验证集validation set”
性能度量performance measure
衡量模型泛化能力的评价标准
回归任务常用“均方误差mean squared error”
分类任务常用:错误率、精度、查准率precision:、查全率recall:、平衡点Break-Event Point(BEP,查准率=查全率时的取值,例如图中A优于B)、F1(基于查准率与查全率的调和平均:)、F(F1度量的一般形式,加权调和平均,其中>0度量了查全率对查准率的相对重要性,=1时退化为标准的F1,>1时查全率有更大影响,
混淆矩阵confusion matrix:
非均等代价unequal cost(为权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”)、代价矩阵cost matrix:
损失程度相差越大,cost01与cost10值的差别越大。一般情况下,重要的是代价比值而非绝对值,例如cost01:cost10=5:1与50:10所起效果相当。
→希望最小化总体代价total cost代价敏感cost-sensitive错误率(以表2.2中第0类作为正类、第1类作为反类,D+与D-分别代表样例集D的正例子集和反例子集):
代价曲线cost curve:
比较检验
比较泛化性能,而通过试验评估方法获得的是测试性能,两者的对比结果可能未必相同(以错误率为性能度量为例):
→ 统计假设检验hypothesis test:
→ 交叉验证t检验(成对t检验paired t-tests):基本思想是若两个学习器的性能相同,则它们使用相同的训练/测试集得到的测试错误率应相同,即
为缓解“由于样本有限,在使用交叉验证等实验估计方法时,不同轮次的训练集会有一定程度的重叠,使得测试错误率实际上并不独立,会导致过高估计假设成立的概率”的问题,采用52交叉验证法
→ McNemar检验:
→ Friedma检验与Nemenyi后续检验:
在一组数据集上对多个算法进行比较
偏差-方差分解bias-variance decomposition:解释学习算法泛化性能的一种重要工具泛化误差可分解为偏差(期望预测与真实结果的偏离程度,刻画学习算法本身的拟合能力)、方差(同样大小的训练集的变动导致的学习性能的变化,刻画数据扰动所造成的影响)与噪声(当前任务上任何学习算法所能达到的期望泛化误差的下界,刻画学习问题本身的难度)之和:
偏差-方差窘境bias-variance dilemma(一般偏差和方差是有冲突的)
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
下文对 Bytebase 和 Yearning 两个数据库管理工具进行了多维度比较🔍。 产品功能定位 Yearning:功能较为单一的独立数据库审核工具,适合小团队进行简单的 SQL 审核,若要应对复杂需求必须进行大量二次开发,用户群更偏向 DBA。 Byte…