机器学习01-发展历史

机器学习01-发展历史

文章目录

  • 机器学习01-发展历史
    • 1-传统机器学习的发展进展
      • 1. 初始阶段:统计学习和模式识别
      • 2. 集成方法和核方法的兴起
      • 3. 特征工程和模型优化
      • 4. 大规模数据和分布式计算
      • 5. 自动化机器学习和特征选择
      • 总结
    • 2-隐马尔科夫链为什么不能解决较长上下文问题
      • 1. 假设的简化性
      • 2. 状态空间爆炸
      • 3. 记忆能力的限制
      • 4. 计算复杂度和可扩展性
      • 5. 参数估计的困难
      • 总结
    • 3-最大熵ME为什么可以解决较长上下文问题
      • 优点
      • 限制
      • 与其他模型的比较
      • 结论
    • 4-SVM、隐马尔可夫模型、最大熵ME、最大马尔科夫、条件随机场 对比
    • 5-机器学习场景

1-传统机器学习的发展进展

某个大佬搞了一张很漂亮的图,地址:https://www.processon.com/view/6755412923bb5e5f8d1c4a15


传统机器学习自20世纪末以来经历了显著的发展和演变。以下是传统机器学习发展历程中的几个关键阶段及其主要进展:

1. 初始阶段:统计学习和模式识别

  • 时间:20世纪50年代至80年代
  • 代表性模型
    • 感知机(Perceptron):由Frank Rosenblatt于1957年提出,是最早的人工神经网络模型之一,用于二分类问题。
    • 贝叶斯分类器(Bayesian Classifier):基于贝叶斯定理,用于分类任务。
    • K近邻(K-Nearest Neighbors, KNN):一种基于实例的分类和回归方法。
    • 决策树(Decision Trees):由Ross Quinlan在1980年代提出,用于分类和回归任务。
  • 发展意义:这些早期的模型为后来的机器学习算法奠定了基础,尽管计算能力和数据量的限制使得这些方法在当时未能广泛应用。

2. 集成方法和核方法的兴起

  • 时间:20世纪90年代至2000年代初期
  • 代表性模型
    • 支持向量机(Support Vector Machines, SVM):由Vladimir Vapnik和Alexey Chervonenkis在1990年代提出,通过核技巧(Kernel Trick)在高维空间中解决分类问题。
    • 随机森林(Random Forests):由Leo Breiman在2001年提出,通过集成多个决策树提高预测性能。
    • AdaBoost:由Yoav Freund和Robert Schapire在1996年提出,是一种提升算法,通过迭代训练弱分类器来构建强分类器。
  • 发展意义:这些方法显著提升了模型的性能和泛化能力,特别是在处理高维数据和复杂分类问题时表现出色。

3. 特征工程和模型优化

  • 时间:2000年代中期至2010年代初期
  • 代表性模型
    • 梯度提升机(Gradient Boosting Machines, GBM):由Jerome Friedman在2001年提出,通过迭代优化损失函数来提升模型性能。
    • 线性回归和逻辑回归:进一步优化和推广,广泛应用于回归和分类任务。
  • 发展意义:这一阶段强调特征工程和模型优化,通过选择和处理特征来提升模型性能。特征工程成为机器学习流程中的重要步骤。

4. 大规模数据和分布式计算

  • 时间:2010年代中后期
  • 代表性模型
    • XGBoost:由Tianqi Chen在2014年提出,是GBM的优化版本,适合大规模数据和分布式计算。
    • LightGBM和CatBoost:分别由微软和Yandex在2017年提出,进一步优化了GBM的性能和速度。
  • 发展意义:随着数据量的增加和计算能力的提升,传统机器学习方法在大规模数据上的应用成为可能,极大提升了模型的预测性能。

5. 自动化机器学习和特征选择

  • 时间:2010年代末至今
  • 代表性模型
    • AutoML:自动化机器学习工具如Auto-sklearn和TPOT,通过自动化模型选择、超参数优化和特征工程,简化了机器学习流程。
    • 特征选择算法:如LASSO(Least Absolute Shrinkage and Selection Operator)和RFECV(Recursive Feature Elimination with Cross-Validation),通过自动选择重要特征提升模型性能。
  • 发展意义:自动化机器学习和特征选择工具的出现,使得非专业人士也能更容易地应用机器学习模型,推动了机器学习的普及。

总结

传统机器学习的发展经历了从基础模型的提出到集成方法、特征工程、大规模数据处理和自动化机器学习的多个阶段。这些进展不仅提升了模型性能,也使得机器学习方法能够应用于更广泛的实际问题,推动了人工智能领域的发展。


2-隐马尔科夫链为什么不能解决较长上下文问题

隐马尔可夫模型(Hidden Markov Model,HMM)在处理较长上下文问题时面临一些根本性的限制。这些限制主要源于其模型结构和假设,具体表现如下:

1. 假设的简化性

HMM 基于两个主要假设:

  • 马尔可夫假设:当前状态仅依赖于前一个状态,即状态转移是马尔可夫性质的,不考虑更远的历史状态。
  • 观察独立性假设:当前观察仅依赖于当前状态,与其他观察和状态无关。

这两个假设在实际应用中过于简化,无法捕捉长距离依赖关系。随着上下文长度的增加,HMM 无法有效建模复杂的依赖关系。

2. 状态空间爆炸

随着上下文长度的增加,状态空间的规模呈指数增长。对于较长上下文,状态空间变得难以管理,导致计算复杂度和存储需求的急剧增加。

3. 记忆能力的限制

HMM 的记忆能力有限,只能记住短期信息(即前一个状态的信息)。对于需要长期依赖关系的任务,HMM 的表现会显著下降。

4. 计算复杂度和可扩展性

HMM 的训练和推断算法(如前向-后向算法和维特比算法)在处理较长上下文时,计算复杂度高。随着上下文长度增加,算法的时间复杂度和空间复杂度都会显著增加,限制了其在实际应用中的可扩展性。

5. 参数估计的困难

在较长上下文情况下,HMM 的参数估计变得困难。由于数据稀疏性和模型复杂性,参数估计的误差会增大,进而影响模型的性能。

总结

隐马尔可夫模型由于其固有的简化假设、状态空间爆炸、记忆能力限制、计算复杂度和参数估计困难等问题,难以有效解决较长上下文问题。为了克服这些限制,研究人员开发了更多复杂的模型,如递归神经网络(RNNs)、长短时记忆网络(LSTM)和 transformer 等,这些模型在处理长距离依赖关系和较长上下文方面表现更优。


3-最大熵ME为什么可以解决较长上下文问题

最大熵模型(Maximum Entropy,ME)在一定程度上可以处理较长上下文问题,但其能力仍然有限。最大熵模型是一种统计学习方法,其目标是在给定的约束条件下,选择概率分布使得熵最大,即不确定性最大。这使得模型在没有额外信息的情况下,做出最保守的假设。

优点

  1. 灵活性:最大熵模型可以通过引入特征函数来捕获复杂的特征交互,包括上下文信息。

  2. 泛化能力:通过最大化熵,模型可以避免过拟合,具有较好的泛化能力。

  3. 可解释性:模型的参数与特征函数相关,使得模型具有一定的可解释性。

限制

  1. 特征工程:最大熵模型的效果高度依赖于特征的选择和设计。对于较长上下文问题,需要设计复杂的特征函数来捕捉长距离依赖关系,这通常较为困难且耗时。

  2. 计算复杂度:随着上下文长度的增加,特征的数量可能急剧增长,导致模型训练和预测的计算复杂度增加。

  3. 局部性:尽管可以通过特征函数引入上下文信息,但最大熵模型仍然主要关注局部的特征组合,对于非常长的上下文,其表现可能会受限。

与其他模型的比较

与隐马尔可夫模型(HMM)相比,最大熵模型在处理上下文问题时具有一定的优势,因为可以通过特征函数更灵活地引入上下文信息。然而,最大熵模型仍然面临特征工程的挑战,并且在处理极长上下文时可能不够高效。

近年来,深度学习模型,如卷积神经网络(CNNs)、循环神经网络(RNNs)、长短期记忆网络(LSTMs)和transformer等,展示了在处理长上下文问题上的优势。这些模型能够自动学习特征表示,并通过多层结构捕捉长距离依赖关系,从而在自然语言处理、语音识别和其他序列任务中取得显著成果。

结论

虽然最大熵模型通过特征函数可以处理一定程度的上下文信息,但其在处理较长上下文问题时仍然存在局限性。现代深度学习模型提供了更强大的能力来处理长距离依赖关系,是解决这类问题的更有效选择。


4-SVM、隐马尔可夫模型、最大熵ME、最大马尔科夫、条件随机场 对比

每个模型能力:

  1. 支持向量机(SVM)

    • 一种监督学习模型,主要用于分类和回归分析。
    • 通过寻找一个超平面来将不同类别的数据分开,目标是最大化边际。
  2. 隐马尔可夫模型(HMM)

    • 一种统计模型,用于表示隐藏状态序列的概率。
    • 广泛应用于语音识别、自然语言处理等领域。
  3. 最大熵(ME)

    • 一种统计学习方法,基于最大熵原则,用于分类和建模。
    • 尽量保持信息熵最大,以获得最不确定的模型。
  4. 最大熵马尔可夫模型(MEMM)

    • 结合了最大熵和马尔可夫模型的特点,用于序列标注任务。
    • 考虑当前观测和前一状态的影响。
  5. 条件随机场(CRF)

    • 一种判别式概率模型,用于标注和分类变量序列。
    • 能够考虑整个序列的信息,避免MEMM的标签偏差问题。

能力Markdown表格:

模型名称功能解决的问题优点缺点
SVM分类和回归在高维空间中分类和回归问题泛化能力强,适用于高维空间训练时间较长,参数调优复杂
HMM序列建模和预测隐藏状态序列的概率建模能够处理时序数据,概率解释性强假设状态独立性,可能不现实
ME分类和建模在给定约束下寻找最不确定的模型能够集成多个特征,概率解释性强可能过拟合,训练时间较长
MEMM序列标注标注序列数据考虑上下文信息,训练效率高存在标签偏差问题
CRF序列标注和分类标注序列数据,考虑全局特征能够考虑全局特征,无标签偏差训练和预测时间较长,参数多

简要概述了每个模型的主要功能、它们解决的问题、优点和缺点。


5-机器学习场景

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/62661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

想了解操作系统,有什么书籍推荐?

推荐一本操作系统经典书: 操作系统导论 《操作系统导论》虚拟化(virtualization)、并发(concurrency)和持久性(persistence)。这是我们要学习的3个关键概念。通过学习这3个概念,我们将理解操作系统是如何工作的,包括它如何决定接下来哪个程序…

[Collection与数据结构] 位图与布隆过滤器

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

微信小程序横屏页面跳转后,自定义navbar样式跑了?

文章目录 问题原因:解决方案: 今天刚遇到的问题,横屏的页面完成操作后跳转页面后,自定义的tabbar样式乱了,跑到最顶了,真机调试后发现navbar跑到手机状态栏了,它正常应该跟右边胶囊一行。 知道问…

Vivado ILA数据导出MATLAB分析

目录 ILA数据导出 分析方式一 分析方式二 有时候在系统调试时,数据在VIVADO窗口获取的信息有限,可结合MATLAB对已捕获的数据进行分析处理 ILA数据导出 选择信号,单击右键后,会有export ILA DATA选项,将其保存成CS…

《探索形象克隆:科技与未来的奇妙融合》

目录 一、什么是形象克隆 二、形象克隆的技术原理 三、形象克隆的发展现状 四、形象克隆的未来趋势 五、形象克隆的应用场景 六、形象克隆简单代码案例 Python 实现数字人形象克隆 Scratch 实现角色克隆效果(以猫为例) JavaScript 实现 Scratc…

MATLAB深度学习(七)——ResNet残差网络

一、ResNet网络 ResNet是深度残差网络的简称。其核心思想就是在,每两个网络层之间加入一个残差连接,缓解深层网络中的梯度消失问题 二、残差结构 在多层神经网络模型里,设想一个包含诺干层自网络,子网络的函数用H(x)来表示&#x…

前端入门之VUE--vue组件化编程

前言 VUE是前端用的最多的框架;这篇文章是本人大一上学习前端的笔记;欢迎点赞 收藏 关注,本人将会持续更新。 文章目录 2、Vue组件化编程2.1、组件2.2、基本使用2.2.1、VueComponent 2、Vue组件化编程 2.1、组件 组件:用来实现…

设计模式-装饰器模式(结构型)与责任链模式(行为型)对比,以及链式设计

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1.装饰器模式1.1概念1.2作用1.3应用场景1.4特点1.5类与对象关系1.6实现 2责任链模式2.1概念2.2作用2.3应用场景2.4特点2.5类与对象关系2.6实现 3.对比总结 前言…

操作系统:死锁与饥饿

目录 死锁概念 饥饿与饿死概念 饥饿和死锁对比 死锁类型 死锁条件(Coffman条件) 死锁恢复方法 死锁避免 安全状态与安全进程序列: 银行家算法: 死锁检测时机(了解): 死锁检测 死锁案…

RPO: Read-only Prompt Optimization for Vision-Language Few-shot Learning

文章汇总 想解决的问题对CoOp的改进CoCoOp尽管提升了性能,但却增加了方差(模型的准确率波动性较大)。 模型的框架一眼看去,跟maple很像(maple跟这篇文章都是2023年发表的),但maple的视觉提示是由文本提示经过全连接转换而来的,而这里是文本提示和视觉提示是独立的。另外m…

『MySQL 实战 45 讲』24 - MySQL是怎么保证主备一致的?

MySQL是怎么保证主备一致的? MySQL 主备的基本原理 基本的主备切换流程 状态 1:客户端的读写都直接访问节点 A,而节点 B 是 A 的备库状态 2:切换时,读写访问的都是节点 B,而节点 A 是 B 的备库注意&…

自荐一部IT方案架构师回忆录

作者本人毕业于一个不知名大专院校,所读专业计算机科学技术。2009年开始IT职业生涯,至今工作15年。擅长TSQL/Shell/linux等技术,曾经就职于超万人大型集团、国内顶级云厂商、央国企公司。参与过运营商大数据平台、大型智慧城市ICT、云计算、人…

python数据分析之爬虫基础:selenium详细讲解

目录 1、selenium介绍 2、selenium的作用: 3、配置浏览器驱动环境及selenium安装 4、selenium基本语法 4.1、selenium元素的定位 4.2、selenium元素的信息 4.3、selenium元素的交互 5、Phantomjs介绍 6、chrome handless模式 1、selenium介绍 (1…

【数据结构——查找】顺序查找(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:实现顺序查找的算法。 相关知识 为了完成本关任务,你需要掌握:1.根据输入数据建立顺序表,2.顺序表的输出,…

create-react-app react19 搭建项目报错

报错截图 此时运行会报错: 解决方法: 1.根据提示安装依赖法 执行npm i web-vitals然后重新允许 2.删除文件法 在index.js中删除对报错文件的引入,删除报错文件

Scratch 消灭字母小游戏

背景 最近尝试一边自学Scratch,一边尝试教给小孩,看他打字时在键盘上乱打一气,想起来自己小时候玩过的学习机打字母游戏,就想给他下载一个。结果网上看到的代码,要么质量太差(有26个字母就要写 26 个判断&…

python调用matlab函数(内置 + 自定义) —— 安装matlab.engine

文章目录 一、简介二、安装matlab.engine2.1、基于 CMD 安装2.2、基于 MATLAB 安装(不建议) 三、python调用matlab函数(内置 自定义) 一、简介 matlab.engine(MATLAB Engine API for Python):…

pytroch环境安装-pycharm

环境介绍 安装pycharm 官网下载即可,我这里已经安装,就不演示了 安装anaconda 【官网链接】点击下载 注意这一步选择just me 这一步全部勾上 打开 anaconda Prompt 输入conda create -n pytorch python3.8 命令解释:创建一个叫pytorch&…

Photoshop提示错误弹窗dll缺失是什么原因?要怎么解决?

Photoshop提示错误弹窗“DLL缺失”:原因分析与解决方案 在创意设计与图像处理领域,Photoshop无疑是众多专业人士和爱好者的首选工具。然而,在使用Photoshop的过程中,有时会遇到一些令人头疼的问题,比如突然弹出的错误…

上海亚商投顾:创业板指震荡调整 机器人概念股再度爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日冲高回落,深成指、创业板指盘中跌超1%,尾盘跌幅有所收窄。机器人概念股逆势爆…