type
status
date
slug
summary
tags
category
icon
password
Last edited time
Sep 1, 2023 04:40 AM
Created time
May 31, 2023 11:30 AM
定义
一门通过编程让计算机从数据中进行学习的科学(和艺术)
一个研究领域,让计算机无须进行明确编程就具备学习能力。
一个计算机程序利用经验E来学习任务T,性能是P,如果针对任务T的性能P随着经验E不断增长的学习过程。
机器学习是什么?
机器学习是关于如何让机器可以更好地处理某些特定任务的理论,它从数据中学习,而无须清晰地编码规则。机器学习系统有很多类型:有监督学习和无监督学习,批量学习和在线学习,基于实例的学习和基于模型的学习,等等。在一个机器学习项目中,从训练集中采集数据,然后将数据交给学习算法来计算。如果算法是基于模型的学习,它会调整一些参数来将模型适配于训练集(即对训练集本身做出很好的预测),然后算法就可以对新的场景做出合理的预测。如果算法是基于实例的学习,它会记住这些示例,并根据相似度度量将它们与所学的实例进行比较,从而泛化这些新实例。如果训练集的数据太少或数据代表性不够,包含太多噪声或者被一些无关特征污染(垃圾进,垃圾出),那么系统将无法很好地工作。最后,模型既不能太简单(会导致欠拟合),也不能太复杂(会导致过拟合)。还有最后一个要讲的重要主题是:一旦训练了一个模型,就不能只是“希望”它可以正确地对新的场景做出泛化,还需要评估它,必要时做出一些调整。
机器学习的一些概念
无监督学习
训练数据都是未经标记,系统在无标签 的情况下学习。
相关算法:聚类算法,k-均值算法,DBSCAN,分层聚类分析(HCA),异常检测,新颖性检测,单类SVM,孤立森林,可视化,降维,主成分分析(PCA),核主成分分析,局部线性嵌入(LLE),t-分布随机近邻嵌入(t-SNE),关联规则学习,Apriori和Eclat。
有监督学习
通过已有标签、属性和特征的训练样本去训练得到最优数据模型。
分为:分类和回归任务。
相关算法:k-近邻算法,线性回归,逻辑回归,支持向量机(SVM),决策树,随机森林和神经网络。
半监督学习
大多数半监督学习算法是无监督学习算法和有监督学习算法的结合:深度信念网络(DBN)基于一种互相堆叠的无监督组件,这种组件叫作受限玻尔兹曼机(RBM)。
训练样本中包含有标签 和无标签 的数据。
强化学习
它的学习系统(在其语境中称为智能体)能够观察环境,做出选择,执行动作,并获得回报(或者是以负面回报的形式获得惩罚)。
它必须自行学习什么是最好的策略,从而随着时间的推移获得最大的回报。
策略代表智能体在特定情况下应该选择的动作。
在线学习
循序渐进地给系统提供训练数据,逐步积累学习成果。
提供数据的方式可以是单独的,也可以采用小批量的小组数据来进行训练。
每一步学习都很快速并且便宜,这样系统就可以根据飞速写入的最新数据进行学习。
对于超大数据集——超出一台计算机的主存储器的数据,在线学习算法也同样适用(这称为核外学习)。
在线学习系统的一个重要参数是其适应不断变化的数据的速度,这就是所谓的学习率。
提示
- 如果设置的学习率很高,那么系统将会迅速适应新数据,但同时也会很快忘记旧数据。
- 如果学习率很低,系统会有更高的惰性,也就是说,学习会更缓慢,同时也会对新数据中的噪声或者非典型数据点(离群值)的序列更不敏感。
批量学习
系统无法进行增量学习——即必须使用所有可用数据进行训练。
需要大量时间和计算资源,所以通常都是离线完成的。
离线学习就是先训练系统,然后将其投入生产环境,这时学习过程停止,它只是将其所学到的应用出来。
如果希望批量学习系统学习新数据,需要在完整数据集(包括新数据和旧数据)的基础上重新训练系统的新版本,然后停用旧系统,用新系统取而代之。
基于实例的学习
系统用心学习已有示例,然后通过使用相似度度量来比较新实例和已经学习的实例(或它们的子集),从而泛化新实例。
基于模型的学习
从一组示例集中实现泛化的另一种方法是构建这些示例的模型,然后使用该模型进行预测。
机器学习的类型
是否在监督下分为:有监督学习,无监督学习,半监督学习和强化学习。
是否动态地进行增量学习分为:在线学习和批量学习。
是简单地将新的数据点和已知的数据点进行匹配,还是像科学家那样,对训练数据进行模式检测然后建立一个预测模型:基于实例的学习和基于模型的学习。
机器学习的作用
有解决方案(但解决方案需要进行大量人工微调或需要遵循大量规则)的问题:机器学习算法通常可以简化代码,相比传统方法有更好的性能。
传统方法难以解决的复杂问题:最好的机器学习技术也许可以找到解决方案。
环境有波动:机器学习算法可以适应新数据。
洞察复杂问题和大量数据。
分类
是一种输出是离散型变量的有监督学习方法。
目的是从给定标签的样本数据集中学习具有区分决策边界的模型,当新的数据到来时,可以根据这个函数进行预测,将新数据项映射到给定类别中的某一个类中。
评价方法:精度(accuracy)、混淆矩阵等。
回归
是一种输出是连续型变量的有监督学习方法。
目的是从给定标签的样本数据集中学习出一个最优拟合线, 这个线条可以最好的接近数据集中的各个点。
评价方法:SSE(sum of square errors)或拟合优化。
标签
提供给算法的包含所需解决方案的训练集。
属性
在机器学习里,是一种数据类型。
特征
取决于上下文,对属性某种计算得到其值。
受限玻尔兹曼机(RBM)
以无监督学习方式进行训练,然后使用有监督学习技术对整个系统进行微调。
核外学习
算法每次只加载部分数据,并针对这部分数据进行训练,然后不断重复这个过程,直到完成所有数据的训练。
特征工程
只有训练数据里包含足够多的相关特征以及较少的无关特征,系统才能够完成学习。一个成功的机器学习项目,其关键部分是提取出一组好的用来训练的特征集。
正则化
通过约束模型使其更简单,并降低过拟合的风险的过程。
FAQ
机器学习的主要挑战?
- 训练数据的数量不足。数据的不合理有效性。
- 训练数据不具代表性。
- 低质量数据。
- 无关特征。需要通过特征工程处理。
- 过拟合训练数据。
- 欠拟合训练数据。
特征工程包括以下几点?
- 特征选择(从现有特征中选择最有用的特征进行训练)。
- 特征提取(将现有特征进行整合,产生更有用的特征,像降维)。
- 通过收集新数据创建新特征。
当模型相对于训练数据的数量和噪度都过于复杂时,会发生过拟合。解决方案?
- 简化模型:可以选择较少参数的模型(例如,选择线性模型而不是高阶多项式模型)也可以减少训练数据中的属性数量,或者是约束模型。在学习时,应用正则化的程度可以通过一个超参数来控制。超参数是学习算法(不是模型)的参数。
- 收集更多的训练数据。
- 减少训练数据中的噪声(例如,修复数据错误和消除异常值)。
欠拟合训练数据的解决方式?
- 选择一个带有更多参数、更强大的模型。
- 给学习算法提供更好的特征集(特征工程)。
- 减少模型中的约束(例如,减少正则化超参数)。
了解一个模型对于新场景的泛化能力的唯一办法就是让模型真实地去处理新场景,方法有二:
- 将其部署在生产环境中,然后监控它的输出。这种做法不错,不过如果模型非常糟糕,用户就会抱怨,所以这显然不是最好的办法。
- 将数据分割成两部分:训练集和测试集。可以用训练集的数据来训练模型,然后用测试集的数据来测试模型。应对新场景的误差率称为泛化误差(或者样例外误差),通过测试集来评估模型,就可以得到对这个误差的评估。这个估值可以告诉模型在处理新场景时的能力如何。通常更好的办法是第二种,一般做法会把80%的数据用于训练,而保持20%的数据用于测试。
若您有更好的见解,请您在评论区评论!内容持续更新中,敬请期待更多内容!!!
- 作者:Chance Sha
- 链接:https://www.chancesha.com/article/deep-learning
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。