机器学习——机器学习概述

相关词汇:
有监督学习、无监督学习、半监督学习、强化学习
增量学习、在线学习(核外学习)、批量学习
基于实例学习、基于模型学习、相似度
训练集、标签、预测器、特征
降维、智能化
自动化、训练、评估、启动学习
学习率、噪声(非代表性数据被选中)、适用度函数、成本函数
拟合训练、研究数据、选择模型、训练(成本函数最小化)、预测推断
坏算法、坏数据
采样偏差、无反应偏差
低质量数据、无关特征
特征工程:特征选择、特征提取、创建新特征
过拟合训练(训练数据数量大、噪度复杂):简化模型、收集更多训练数据、减少噪声
正则化:约束模型、降低过拟合
超参数
欠拟合:模型太过简单
评估、训练集、测试集、泛化误差
保持验证、验证集合

1 什么是机器学习

机器学习是一门通过编程让计算机从数据中进行学习的科学。
机器学习是一个研究领域,让计算机无须进行明确编程就具备学习能力。 ——亚瑟·萨缪尔
一个计算机程序利用经验E来学习任务T,性能是P,如果针对任务T的性能P能随着经验E不断增长,则称为机器学习。 —— 汤姆·米切尔

2 为什么使用机器学习

机器学习可以快速解决以下问题:

  • 有解决方案(但解决方案需要大量人工微调或需要遵循大量规则)的问题:机器学习算法通常可以简化代码,相比传统该方法有更好的性能。
  • 传统方法难以解决的复杂问题:最好的机器学习技术也许可以找到解决方案。
  • 环境有波动:机器学习算法可以适应新的数据。
  • 洞察复杂问题和大量数据。

3 常用术语和示例

  1. 分析生产线上的产品图像来对产品进行自动分类。——这是图像分类问题,使用卷积神经网络(CNN)
  2. 通过脑部扫描发现肿瘤。——这是语义分割,图像中的每个像素都需要被分类,也是用CNN。
  3. 自动分类新闻。——这是自然语言处理(NLP),更具体的是文本分类,可以使用循环神经网络(RNN)、CNN、或者 Transformer。
  4. 论坛中自动标记恶评。——文本分类,使用相同的自然语言处理工具。
  5. 自动对长文章做总结。——这是自然语言处理的一个分支,叫做文本总结,使用的是相同的工具。
  6. 创建一个聊天机器人或者个人助理。——这个涉及到自然语言处理的很多分支,包括自然语言理解(NLU) 和问答模块
  7. 基于很多性能指标来预测公司下一年的收入。——这是一个回归问题(如预测值),需要使用回归模型进行处理。例如线性回归或多项式回归、SVM回归、随机森林回归或者人工神经网络,如果考虑过去的指标,可以使用RNN、CNN、或者Transfromer。
  8. 让应用对语音命令做出反应。——这是语音识别,要求能处理音频采样。因为音频是很长、很复杂的序列,所以一般使用 RNN、CNN或Transformer进行处理。
  9. 检测信用卡欺诈。——这是异常检测
  10. 给予客户的购买记录来对客户进行分析,对每一类客户设计不同的市场策略。——这是聚类问题
  11. 用清晰而有洞察力的图标来表示复杂的高维数据。——这是数据可视化,经常设计降维技术。
  12. 基于以前的购买记录给客户推荐可能感兴趣的产品。——这是推荐系统,一个版是是将以前的购买记录输入人工神经网络,从而输出客户最可能购买的产品。这个神经网络是在所有客户的购买记录上训练的。
  13. 为游戏建造智能机器人。——者通常是通过强化学习来解决。 例如 AlphaGo。

4 机器学习系统的类型

  1. 有监督学习、无监督学习、半监督学习(是否在人类监督下训练)和强化学习。
  2. 在线学习和批量学习(是否可以动态地进行增量学习)。
  3. 基于实例的学习和基于模型的学习(是简单地将新的数据点和已知的数据点进行匹配,还是像科学家那样,对训练数据进行模式检测然后建立一个预测模型)。

4.1 有监督学习

有监督学习中,提供给算法的包含所需解决方案的训练集成为标签

常见的有监督学习算法:

  • k-近邻算法
  • 线性回归
  • 逻辑回归
  • 支持向量机(SVM)
  • 决策树和随机森林
  • 神经网络

4.2 无监督学习

无监督学习的训练数据都是未经标记的,系统会在没有“老师”的情况下学习。
常见的无监督学习的常见算法:

  • 聚类算法
    • k-均值算法
    • DBSCAN
    • 分层聚类分析(HCA)
  • 异常检测和新颖性检测
    • 单类SVM
    • 孤立森林
  • 可视化和降维
    • 主成分分析(PCA)
    • 核主成分分析(LLE)
    • 局部线性嵌入(t-SNE)
  • 关联规则学习
    • Apriori
    • Eclar

4.3 半监督学习

由于通常给数据做标记是非常耗时和昂贵的,往往会有很多未标记的数据而很少有已标记的数据。有些算法可以处理已标记的数据。这称为半监督学习
大多数半监督学习算法是无监督算法和有监督算法的结合(无监督学习负责分类,有监督学习使用分类好的样本进进行下一步训练)。

4.4 强化学习

强化学习的学习系统(其语境中称为智能体)能够观察环境、做出选择、执行动作,并获得回报(或者是以负面汇报的形式获得惩罚)。比如 AlphaGo。

4.5 批量学习

批量学习中,系统无法进行增量学习——即必须使用所有可用数据进行训练。这需要大量时间和计算资源,所以i通常都是离线完成的。离线学习就是先训练系统,然后将其投入生产环境这时学习过程停止,它只是将其所学到的应用出来。
如果希望批量学习新数据,需要在完整数据集的基础上重新训练系统的新版本,然后停用旧系统,用新系统取而代之。
批量学习可以在 训练、评估、和自动启动机器学习的过程中实现自动化,来适应数据的变化。

4.6 在线学习(核外学习)

在线学习可以持续地给系统提供训练数据,逐步积累学习成果,这种提供数据的方式可以是单独的,也可以采用小批量的小组数据来进行训练。
需要接收持续的数据流,同时对数据流的变化做出快速或自主的反应,使用在线学习是一个很好的方式。
对于超大数据集,在线学习同样也适用,算法每次只加载部分数据,并针对这部分数据进行训练,然后不断重复这个过程,知道完成所有的数据的训练,这称为核外学习

4.7 基于实例的学习

举个垃圾邮箱识别的例子,最简单的学习方式是标记垃圾邮箱,然后将所有相同的邮箱标记为垃圾邮箱。
基于实例的学习可以使用相似度度量的方式,一种相似度度量方式是计算他们之间相同的单词数目,如果新邮件与垃圾邮件有很多相似单词,系统可以标记为垃圾邮箱。
基于实例的学习就是系统用心学习示例,然后通过相似度度量来比较新的实例和已经学习的实例,从而泛化新实例。

4.8 基于模型的学习

基于模型的学习是构建示例的模型,然后使用该模型进行预测。
模型选择是根据研究数据得出数据的数学规律(比如结果是一个线性函数)的过程。
效用函数(或适应度函数) 用来衡量模型的性能表现有多好。
成本函数用来衡量模型有多差。
训练模型指的是根据提供的训练样本,找出最符合提供数据的线性模型的参数。
模型可以指一个模型的类型(例如线性回归),也可以指一个完全特定的模型架构(例如有一个输入和一个输出的线性回归),或者可用于预测的训练模型(例如有一个输入和一个输出的线性回归,使用参数θ0 和 θ1 ).模型选择包含选择模型的类型和完全指定它的架构。

5. 机器学习的主要挑战

5.1 训练数据不足

大部分机器学习算法需要大量的数据才能正常工作,即使是最简单的问题,很可能需要成千上万个示例。

5.2 训练数据不具代表性

使用不具代表性的训练集训练出来的模型不可能做出准确的预估。针对想要泛化的案例使用具有代表性的训练集至关重要。不过做起来的时候很难:如果样本集太小,将会出现采样噪音(即非代表性数据被选中);非常大的样本数据,如果采样方式欠妥,也同样可能导致非代表性数据集,这就是所谓的样本偏差

5.3 低质量数据

训练集满是错误、异常值和噪声(例如低质量的测量产生的数据),所以花时间来清理训练数据是非常值得的投入。

5.4 无关特性

训练数据里包含足够多的相关特征以及较少的无关特征,系统才能够进行学习。
特征工程:提取出一组好的用来训练的特征集。包含以下几个特点:

  • 特征选择(从现有特征中选择最有用的特征进行训练)
  • 特征提取(将现有特征进行整合,产生更有用的特征,降维算法可以提供帮助)
  • 通过收集新数据创建新特征。

5.5 过拟合训练数据

过拟合指的是模型在训练数据上表现良好,但是泛化时却不尽人意(假如你在国外旅游,被出租车司机敲诈,可能会过度认为那个国家的所有出租车司机都是强盗,机器学习也会陷入同样的陷阱)。
当模型相对于训练数据的数量和噪度都过于复杂时,会发生过拟合,可能的解决方案有如下措施:

  • 简化模型:可以选择较少参数的模型,也可以减少训练数据中的属性数量,或者是约束模型。
  • 收集更多的训练数据。
  • 减少训练数据中的噪声(例如修复数据错误和消除异常值)。
    正则化:通过约束模型使其更简单,并降低过拟合的风险,这个过程称为正则化。应用正则化的成都可以通过一个超参数来控制。
    超惨数:超参数是学习算法的参数,因此它不受算法本身的影响。超参数必须在训练之前设置好,并且在训练期间保持不变。

5.6 欠拟合数据

欠拟合和过拟合正好相反,它的产生通常是因为对于底层的数据结构来说,模型太过简单(例如用线性模型来描述生活满意度就是欠拟合,现实情况远比模型复杂)。
解决欠拟合的主要方式有:

  • 选择一个带有更多参数、更强大的模型。
  • 给学习算法提供更好的特征集(特征工程)。
  • 减少模型中的约束(例如,减少正则化超参数)

相关推荐

  1. 机器学习——机器学习概述

    2024-07-16 08:10:02       21 阅读
  2. 机器学习概述(一)

    2024-07-16 08:10:02       34 阅读
  3. 机器学习概述

    2024-07-16 08:10:02       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 08:10:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 08:10:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 08:10:02       58 阅读
  4. Python语言-面向对象

    2024-07-16 08:10:02       69 阅读

热门阅读

  1. 深入理解 Vue.js 的生命周期:从创建到销毁

    2024-07-16 08:10:02       26 阅读
  2. 2024.7.10 day 3 比赛总结

    2024-07-16 08:10:02       19 阅读
  3. 大模型 GPT 到 GPT-3.5 知识点总结

    2024-07-16 08:10:02       21 阅读
  4. Python 和 R两者的主要区别和优缺点对比

    2024-07-16 08:10:02       25 阅读
  5. k8s怎么配置secret呢?

    2024-07-16 08:10:02       22 阅读
  6. vue $refs

    2024-07-16 08:10:02       23 阅读
  7. 【php开发系统遇到CPU飙升的思考记录】

    2024-07-16 08:10:02       24 阅读
  8. AppML 案例:Products

    2024-07-16 08:10:02       22 阅读
  9. 深度学习--基础语法

    2024-07-16 08:10:02       18 阅读
  10. QT在PC开发中多串口通信有哪些方法

    2024-07-16 08:10:02       22 阅读