导语:机器学习的主要应用之一是对随机过程建模。

“The only simple truth is that there is nothing simple in this complex universe. Everything relates. Everything connects”

— Johnny Rich, The Human Script

介绍

机器学习的主要应用之一是对随机过程建模。机器学习中一些随机过程的例子如下:

  1. 泊松过程:用于处理等待时间以及队列。

  2. 随机漫步和布朗运动过程:用于交易算法。

  3. 马尔可夫决策过程:常用于计算生物学和强化学习。

  4. 高斯过程:用于回归和优化问题(如,超参数调优和自动机器学习)。

  5. 自回归和移动平均过程:用于时间序列分析(如,ARIMA模型)。

在本文中,我将简要地向你介绍这些随机过程。

历史背景

随机过程是我们日常生活的一部分。随机过程之所以如此特殊,是因为随机过程依赖于模型的初始条件。在上个世纪,许多数学家,如庞加莱,洛伦兹和图灵都被这个话题所吸引。

如今,这种行为被称为确定性混沌,它与真正的随机性有着截然不同的范围界限。

由于爱德华·诺顿·洛伦兹的贡献,混沌系统的研究在1963年取得了突破性进展。当时,洛伦兹正在研究如何改进天气预报。洛伦兹在他的分析中注意到,即使是大气中的微小扰动也能引起气候变化。

洛伦兹用来描述这种状态的一个著名的短语是:

“A butterfly flapping its wings in Brazil can produce a tornado in Texas”
(在巴西,一只蝴蝶扇动翅膀就能在德克萨斯州制造龙卷风  )

— Edward Norton Lorenz
(爱德华·诺顿·洛伦兹)

这就是为什么今天的混沌理论有时被称为“蝴蝶效应”。

分形学

一个简单的混沌系统的例子是分形(如图所示)。分形是在不同尺度上不断重复的一种模式。由于分形的缩放方式,分形不同于其他类型的几何图形。分形是递归驱动系统,能够捕获混沌行为。在现实生活中,分形的例子有:树、河、云、贝壳等。

图1:MC. Escher, Smaller and Smaller [1] 

在艺术领域有很多自相似的图形。毫无疑问, MC. Escher是最著名的艺术家之一,他的作品灵感来自数学。事实上,在他的画中反复出现各种不可能的物体,如彭罗斯三角形和莫比乌斯带。在"Smaller and Smaller"中,他也反复使用了自相似性(图1)。除了蜥蜴的外环,画中的内部图案也是自相似性的。每重复一次,它就包含一个有一半尺度的复制图案。

确定性和随机性过程

有两种主要的随机过程:确定性和随机性。

在确定性过程中,如果我们知道一系列事件的初始条件(起始点),我们就可以预测该序列的下一步。相反,在随机过程中,如果我们知道初始条件,我们不能完全确定接下来的步骤是什么。这是因为这个过程可能会以许多不同的方式演化。

在确定性过程中,所有后续步骤的概率都为1。另一方面,随机性随机过程的情况则不然。

任何完全随机的东西对我们都没有任何用处,除非我们能识别出其中的模式。在随机过程中,每个单独的事件都是随机的,尽管可以识别出连接这些事件的隐藏模式。这样,我们的随机过程就被揭开了神秘的面纱,我们就能够对未来的事件做出准确的预测。

为了用统计学的术语来描述随机过程,我们可以给出以下定义:

  • 观测值:一次试验的结果。

  • 总体:所有可能的观测值,可以记为一个试验。

  • 样本: 从独立试验中收集的一组结果。

例如,抛一枚均匀硬币是一个随机过程,但由于大数定律,我们知道,如果进行大量的试验,我们将得到大约相同数量的正面和反面。

大数定律指出:

“随着样本规模的增大,样本的均值将更接近总体的均值或期望值。因此,当样本容量趋于无穷时,样本均值收敛于总体均值。重要的一点是样本中的观测必须是相互独立的。”

--Jason Brownlee

随机过程的例子有股票市场和医学数据,如血压和脑电图分析。

泊松过程

泊松过程用于对一系列离散事件建模,在这些事件中,我们知道不同事件发生的平均时间,但我们不知道这些事件确切在何时发生。

如果一个随机过程能够满足以下条件,则可以认为它属于泊松过程:

  1. 事件彼此独立(如果一个事件发生,并不会影响另一个事件发生的概率)。

  2. 两个事件不能同时发生。

  3. 事件的平均发生比率是恒定的。

让我们以停电为例。电力供应商可能会宣传平均每10个月就会断电一次,但我们不能准确地说出下一次断电的时间。例如,如果发生了严重问题,可能会连续停电2-3天(如,让公司需要对电源供应做一些调整),以便在接下来的两天继续使用。

因此,对于这种类型的随机过程,我们可以相当确定事件之间的平均时间,但它们是在随机的间隔时间内发生的。

由泊松过程,我们可以得到一个泊松分布,它可以用来推导出不同事件发生之间的等待时间的概率,或者一个时间段内可能发生事件的数量。

泊松分布可以使用下面的公式来建模(图2),其中k表示一个时期内可能发生的事件的预期数量。

图2:泊松分布公式[3] 

一些可以使用泊松过程模拟的现象的例子是原子的放射性衰变和股票市场分析。

随机漫步和布朗运动过程

随机漫步是可以在随机方向上移动的任意离散步的序列(长度总是相同)(图3)。随机漫步可以发生在任何维度空间中(如:1D,2D,nD)。

图3:高维空间[4]中的随机漫步 

现在我将用一维空间(数轴)向您介绍随机漫步,这里解释的这些概念也适用于更高维度。

我们假设我们在一个公园里,我们看到一只狗在寻找食物。它目前在数轴上的位置为0,它向左或向右移动找到食物的概率相等(图4)。

图4:数轴[5] 

现在,如果我们想知道在N步之后狗的位置是多少,我们可以再次利用大数定律。利用这个定律,我们会发现当N趋于无穷时,我们的狗可能会回到它的起点。无论如何,此时这种情况并没有多大用处。

因此,我们可以尝试使用均方根(RMS)作为距离度量(首先对所有值求平方,然后计算它们的平均值,最后对结果求平方根)。这样,所有的负数都变成正数,平均值不再等于零。

在这个例子中,使用RMS我们会发现,如果我们的狗走了100步,它平均会从原点移动10步(√100 = 10)。

如前面所述,随机漫步用于描述离散时间过程。相反,布朗运动可以用来描述连续时间的随机漫步。

隐马尔科夫模型

隐马尔可夫模型都是关于认识序列信号的。它们在数据科学领域有大量应用,例如:

  • 计算生物学(https://towardsdatascience.com/computational-biology-fca101e20412)。

  • 写作/语音识别。

  • 自然语言处理(NLP)。

  • 强化学习

HMMs是一种概率图形模型,用于从一组可观察状态预测隐藏(未知)状态序列。

这类模型遵循马尔可夫过程假设:

“鉴于我们知道现在,所以未来是独立于过去的"

因此,在处理隐马尔可夫模型时,我们只需要知道我们的当前状态,以便预测下一个状态(我们不需要任何关于前一个状态的信息)。

要使用HMMs进行预测,我们只需要计算隐藏状态的联合概率,然后选择产生最高概率(最有可能发生)的序列。

为了计算联合概率,我们需要以下三种信息:

  • 初始状态:任意一个隐藏状态下开始序列的初始概率。

  • 转移概率:从一个隐藏状态转移到另一个隐藏状态的概率。

  • 发射概率:从隐藏状态移动到观测状态的概率

举个简单的例子,假设我们正试图根据一群人的穿着来预测明天的天气是什么(图5)。

在这种例子中,不同类型的天气将成为我们的隐藏状态。晴天,刮风和下雨)和穿的衣服类型将是我们可以观察到的状态(如,t恤,长裤和夹克)。初始状态是这个序列的起点。转换概率,表示的是从一种天气转换到另一种天气的可能性。最后,发射概率是根据前一天的天气,某人穿某件衣服的概率。

图5:隐马尔可夫模型示例[6]  

使用隐马尔可夫模型的一个主要问题是,随着状态数的增加,概率和可能状态的数量呈指数增长。为了解决这个问题,可以使用维特比算法。

如果您对使用HMMs和生物学中的Viterbi算法的实际代码示例感兴趣,可以在我的Github代码库中找到它。

从机器学习的角度来看,观察值组成了我们的训练数据,隐藏状态的数量组成了我们要调优的超参数。

机器学习中HMMs最常见的应用之一是agent-based情景,如强化学习(图6)。

图6:强化学习[7]中的HMMs

高斯过程

高斯过程是一类完全依赖自协方差函数的平稳零均值随机过程。这类模型可用于回归和分类任务。

高斯过程最大的优点之一是,它们可以提供关于不确定性的估计,例如,给我们一个算法确定某个项是否属于某个类的确定性估计。

为了处理嵌入一定程度上的不确定性的情况,通常使用概率分布。

一个离散概率分布的简单例子是掷骰子。

想象一下,现在你的一个朋友挑战你掷骰子,你掷了50个trows。在掷骰子公平的情况下,我们期望6个面中每个面出现的概率相同(各为1/6)。如图7所示。

图7:掷骰子公平的概率分布 

无论如何,你玩得越多,你就越可以看到到骰子总是落在相同的面上。此时,您开始考虑骰子可能是不公平的,因此您改变了关于概率分布的最初信念(图8)。

图8:不公平骰子的概率分布 

这个过程被称为贝叶斯推理。

贝叶斯推理是我们在获得新证据的基础上更新自己对世界的认知的过程。

我们从一个先前的信念开始,一旦我们用全新的信息更新它,我们就构建了一个后验信念。这种推理同样适用于离散分布和连续分布。

因此,高斯过程允许我们描述概率分布,一旦我们收集到新的训练数据,我们就可以使用贝叶斯法则(图9)更新分布。

图9:贝叶斯法则[8]

自回归移动平均过程

自回归移动平均(ARMA)过程是一类非常重要的分析时间序列的随机过程。ARMA模型的特点是它们的自协方差函数只依赖于有限数量的未知参数(对于高斯过程是不可能的)。

缩略词ARMA可以分为两个主要部分:

  • 自回归=模型利用了预先定义的滞后观测值与当前滞后观测值之间的联系。

  • 移动平均=模型利用了残差与观测值之间的关系。

ARMA模型利用两个主要参数(p, q),分别为:

  • p = 滞后观测次数。

  • q = 移动平均窗口的大小。

ARMA过程假设一个时间序列在一个常数均值附近均匀波动。如果我们试图分析一个不遵循这种模式的时间序列,那么这个序列将需要被差分,直到分割后的序列具有平稳性。

这可以通过使用一个ARIMA模型来实现,如果你有兴趣了解更多,我写了一篇关于使用ARIMA进行股票市场分析的文章。

谢谢阅读!

参考文献

[1] M C Escher, “Smaller and Smaller” — 1956.访问: https://www.etsy.com/listing/288848445/m-c-escher-print-escher-art-smaller-and

[2]  机器学习中大数定律的简要介绍。Machine Learning Mastery, Jason Brownlee. 访问:https://machinelearningmastery.com/a-gentle-introduction-to-the-law-of-large-numbers-in-machine-learning/

[3]  正态分布,二项分布,泊松分布 , Make Me Analyst. 访问: http://makemeanalyst.com/wp-content/uploads/2017/05/Poisson-Distribution-Formula.png

[4] 通用维基百科. Accessed at: https://commons.wikimedia.org/wiki/File:Random_walk_25000.gif

[5]  数轴是什么?Mathematics Monste. 访问: https://www.mathematics-monster.com/lessons/number_line.html

[6] 机器学习算法: SD (σ)- 贝叶斯算法. Sagi Shaier, Medium. 访问: https://towardsdatascience.com/ml-algorithms-one-sd-%CF%83-bayesian-algorithms-b59785da792a

[7]  DeepMind的人工智能正在自学跑酷,结果非常令人惊讶。The Verge, James Vincent. 访问:https://www.theverge.com/tldr/2017/7/10/15946542/deepmind-parkour-agent-reinforcement-learning

[8]  为数据科学专业人员写的强大的贝叶斯定理介绍。KHYATI MAHENDRU, Analytics Vidhya. Accessed at:https://www.analyticsvidhya.com/blog/2019/06/introduction-powerful-bayes-theorem-data-science/

————

编辑 ∑Gemini

来源:雷锋网

☞泰勒定理的奇闻轶事

☞丘成桐:漫谈微分几何

☞Leibniz 如何想出微积分?(一)

☞线性相关和秩的物理意义

☞数学史上你认为最丑陋的公式是什么?

☞陶哲轩谈什么是好的数学

☞田渊栋:数学的用处(下篇)

☞你绝对没想过原来数学家这么流氓,一言不合就进行暴力证明

☞世界上最牛的五篇博士论文

☞数学中有哪些巧合让人眼前一亮?

☞算法立功!清华毕业教授美国被抢车,警察无能为力自己用“贪心算法”找回

☞学术史上的奇文:怎样用数学抓狮子

☞台大教授的反思:最难的一课 我们却没教给学生

☞麻省理工学院(MIT)研究生学习指导—— 怎样做研究生

☞分享 数学,常识和运气 ——投资大师詹姆斯·西蒙斯2010年在MIT的讲座

算法数学之美微信公众号欢迎赐稿

稿件涉及数学、物理、算法、计算机、编程等相关领域,经采用我们将奉上稿酬。

投稿邮箱:math_alg@163.com

随机过程在数据科学和深度学习中有哪些应用?相关推荐

  1. 哪些电脑最适合做机器学习、数据科学和深度学习呢?这里有份调研报告

    选自Medium 机器之心编译 作者:Towards AI Team 编辑:陈萍.杜伟 一份来自 Towards AI 的关于机器学习.数据科学和深度学习的最佳笔记本电脑.在预算范围内,入手最适合的笔 ...

  2. 报名 | 清华大数据论坛之深度学习技术与应用

    时光荏苒,春华秋实,厚重的积淀和改革创新的新发展给予清华人自信和力量.在清华大学108周年校庆的喜庆气氛里,清华大学大数据研究中心.清华-快手未来媒体数据联合研究院共同主办"清华大数据论坛之 ...

  3. 使用大规模数据注释和深度学习对具有人类水平性能的组织图像进行全细胞分割

    使用大规模数据注释和深度学习对具有人类水平性能的组织图像进行全细胞分割 摘要 绪论 Mesmer 2.1Mesmer是一种用于精确全细胞分割的深度学习算法 2.2Mesmer实现了人类级的分割性能 2 ...

  4. matlab 生成不重复的随机整数 打乱数据排列 生成深度学习数据集

    Matlab自带函数randperm(n)可以产生1到n的整数的无重复的随机排列,利用它就可以得到无重复的随机数.例如: randperm(n):产生一个1到n的随机顺序. >> rand ...

  5. 回归素材(part9)--PYTHON机器学习手册-从数据预处理到深度学习

    学习笔记,仅供参考,有错必纠 PYTHON机器学习手册-从数据预处理到深度学习 通过正则化减少方差 我们可以使用岭回归或者Lasso回归,介绍回归模型的方差.

  6. 基于岭回归的数据增强与深度学习模型

    作者:禅与计算机程序设计艺术 <基于岭回归的数据增强与深度学习模型>技术博客文章 <基于岭回归的数据增强与深度学习模型> 引言 随着深度学习技术的快速发展,模型压缩.数据增强成 ...

  7. 数据科学的完整学习路径—Python版

    从Python菜鸟到Python Kaggler的旅程(译注:Kaggle是一个数据建模和数据分析竞赛平台) 假如你想成为一个数据科学家,或者已经是数据科学家的你想扩展你的技能,那么你已经来对地方了. ...

  8. 初学大数据之Python中5个最佳的数据科学库的学习

    在下载了pycharm软件以及通过前两篇文章,配置了相应的模块包之后,那就开始对常用的模块的学习,以便后期利用这些模块对数据做模型化处理. 如果你已经决定把Python作为你的编程语言,那么,你脑海中 ...

  9. 麻省理工学院-面向生命科学的深度学习2021

    课程描述 提出了解决生命科学中计算问题的创新方法,重点是基于深度学习的方法与传统方法的比较.主题包括蛋白质-DNA相互作用,染色质可及性,法规变异解释,医学影像理解,病历理解,治疗设计和实验设计(干预 ...

最新文章

  1. 【关注】人类的智力是如何发展起来的?《自然》发布三大科学假说
  2. 设计模式(一)工厂模式Factory(创建型)
  3. iphone打字怎么换行_除了打字,iPhone的键盘还有这12个功能
  4. java中Mark接口_JVM源码分析之Java对象头实现
  5. Filezilla 服务器发回了不可路由的地址。使用服务器地址代替
  6. 深入浅出 MySQL 优先队列
  7. 洛谷P2463 [SDOI2008]Sandy的卡片(后缀数组SA + 差分 + 二分答案)
  8. Go语言基础进阶—程序结构—命名
  9. Java-输出100以内的质数
  10. FFmpeg 软编码h.264与H.265(从简到深)
  11. 写在NPL小书出版之时
  12. Hexo 好看且实用的主题推荐
  13. dns服务器未响应网速卡,DNS服务器未响应且网速突然变的不好是什么原因 怎样解决...
  14. 深入理解CAS算法原理
  15. 生物信息-related
  16. 安装Anaconda3时遇到的问题
  17. 个人开发者如何通过Android应用赚外快
  18. (C语言版)无迹卡尔曼滤波UKF和容积卡尔曼滤波CKF进行锂电池SOC估计的C语言版本实现
  19. 中文、英文、数字、特殊字符限制
  20. 更新cuda和英伟达驱动,多版本cuda切换使用软连接

热门文章

  1. verilog异步复位jk触发器_Verilog专题(九)DFF、Dlatch、JK flipflop
  2. 神经网络基本原理简明教程-0-Python-Numpy库的点滴
  3. Linux的实际操作:权限管理(chmod)
  4. 机器人踩滑板_不死神草、飞行滑板…超2000种创新发明在这里展出
  5. hash hashcode变化_Web安全 | 没想到 Hash 冲突还能这么玩,你的服务中招了吗?
  6. git 查看自己秘钥_gitlab配置ssh密钥及简单使用
  7. java动作监听退出程序_监听获取程序退出事件(Linux、Windows、Java、C++)
  8. html5 webrtc fir 请求关键帧_中信建投官网强调认可我们的投资理念的股民朋友请求 CTRL D 收藏、锁定本直播地址...
  9. cfiledialog 保存 扩展名_儿童美术:油画棒 插画一组超萌的大饼脸小孩 保存了跟小朋友一起画吧...
  10. linux win7 默认启动,请教:我的grub.cfg里面的内容如下,请教怎样改代码才能让WIN7设为默认启动...