相关文章:

AI算法连载01:数学基础之线性代数

AI算法连载02:概率论基础

AI算法连载03:数学基础之数值计算

导语:不懂算法的工程师做不了AI,不懂算法的产品经理将把AI带入泥潭。

一、前言

在人工智能AI如火如荼的大潮下,越来越多的工程师们意识到算法是AI的核心。而面对落地的应用,不懂算法的AI产品经理将是空谈,不仅无法与工程师沟通,更无法深刻理解应用的性能与方式。所以业界逐渐形成一种共识:

不懂算法的工程师做不了AI,不懂算法的产品经理将把AI带入泥潭。

而其实,AI算法没有想象的那么难,为此,机器人网整理了一整套AI算法知识,包括:

从最基本的数学基础,譬如线性代数、概率论、牛顿法等数值计算、蒙特卡洛方法与MCMC采样等;

到统计学,如:机器学习、向量、贝叶斯定理、决策树、梯度、模型评估、降维、聚类、边际、模型等等;

再到深度学习,如:前馈神经网络、反向传播算法、卷积升级网络、CNN图片分类、循环神经网络等等;

以及自然语言处理NLP等等;

还有AI算法中的各种工具和模型。

我们将把这些AI基础理论和算法以连载的形式在机器人网公众号和网站上发布,供AI爱好者免费学习。

本次连载将历时一月有余,通过这一个月的学习,AI初学者也将可能跃变成AI大神,进入未来二十年科技的金字塔尖。

当然,这需要你的坚持、专注,和努力。感兴趣的同学可以关注我们,并加微信(Aspencore6)入群分享交流。


二、理论理解与数学基础

蒙特卡洛方法与MCMC采样

作为一种随机采样方法,马尔科夫链蒙特卡罗(Markov Chain Monte Carlo,以下简称MCMC)在机器学习,深度学习以及自然语言处理等领域都有广泛的应用,是很多复杂算法求解的基础。比如分解机(Factorization Machines)推荐算法,还有受限玻尔兹曼机(RBM)原理总结,都用到了MCMC来做一些复杂运算的近似求解。

从名字我们可以看出,MCMC由两个MC组成,即蒙特卡罗方法(Monte Carlo Simulation,简称MC)和马尔科夫链(Markov Chain ,也简称MC)。要弄懂MCMC的原理我们首先得搞清楚蒙特卡罗方法和马尔科夫链的原理。

蒙特卡罗原来是一个赌场的名称,用它作为名字大概是因为蒙特卡罗方法是一种随机模拟的方法,这很像赌博场里面的扔骰子的过程。最早的蒙特卡罗方法都是为了求解一些不太好求解的求和或者积分问题。

蒙特卡罗方法的关键是得到xx的概率分布。如果求出了xx的概率分布,我们可以基于概率分布去采样基于这个概率分布的n个xx的样本集,带入蒙特卡罗求和的式子即可求解。但是还有一个关键的问题需要解决,即如何基于概率分布去采样基于这个概率分布的n个xx的样本集。

不过很多时候,我们的xx的概率分布不是常见的分布,这意味着我们没法方便的得到这些非常见的概率分布的样本集。那这个问题怎么解决呢?

对于概率分布不是常见的分布,一个可行的办法是采用接受-拒绝采样来得到该分布的样本。既然 p(x)p(x) 太复杂在程序中没法直接采样,那么我设定一个程序可采样的分布 q(x)q(x) 比如高斯分布,然后按照一定的方法拒绝某些样本,以达到接近 p(x)p(x) 分布的目的,其中q(x)q(x)叫做 proposal distribution。

整个过程中,我们通过一系列的接受拒绝决策来达到用q(x)q(x)模拟p(x)p(x)概率分布的目的。

使用接受-拒绝采样,我们可以解决一些概率分布不是常见的分布的时候,得到其采样集并用蒙特卡罗方法求和的目的。但是接受-拒绝采样也只能部分满足我们的需求,在很多时候我们还是很难得到我们的概率分布的样本集。比如:

1)对于一些二维分布p(x,y)p(x,y),有时候我们只能得到条件分布p(x|y)p(x|y)和p(y|x)p(y|x)和,却很难得到二维分布p(x,y)p(x,y)一般形式,这时我们无法用接受-拒绝采样得到其样本集。

2)对于一些高维的复杂非常见分布p(x1,x2,...,xn)p(x1,x2,...,xn),我们要找到一个合适的q(x)q(x)和kk非常困难。

从上面可以看出,要想将蒙特卡罗方法作为一个通用的采样模拟求和的方法,必须解决如何方便得到各种复杂概率分布的对应的采样样本集的问题。而我们下一篇要讲到的马尔科夫链就是帮助找到这些复杂概率分布的对应的采样样本集的白衣骑士。下一篇我们将总结马尔科夫链的原理。

三、具体算法


本文理论部分部分引用了刘建平Pinard的博客:https://www.cnblogs.com/pinard/p/6625739.html。

本文算法部分作者华校专,曾任阿里巴巴资深算法工程师、智易科技首席算法研究员,现任腾讯高级研究员,《Python 大战机器学习》的作者。这是作者多年以来学习总结的笔记,经整理之后开源于世。考虑到出版时间周期较长,而且书本购买成本高不利于技术广泛传播,因此作者采取开源的形式。笔记内容仅供个人学习使用,非本人同意不得应用于商业领域。

————

编辑 ∑Gemini

来源:机器人

☞泰勒定理的奇闻轶事

☞丘成桐:漫谈微分几何

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

投稿邮箱:math_alg@163.com

AI算法连载04:数学基础之蒙特卡洛方法与MCMC采样相关推荐

  1. AI算法连载03:数学基础之数值计算

    相关文章: AI算法连载01:数学基础之线性代数 AI算法连载02:概率论基础 导语:不懂算法的工程师做不了AI,不懂算法的产品经理将把AI带入泥潭.数值计算是AI的具体结果,因此,学好AI,首先要学 ...

  2. AI算法连载01:数学基础之线性代数

    导语:不懂算法的工程师做不了AI,不懂算法的产品经理将把AI带入泥潭.数学是AI基础的基础,代数是AI的敲门砖. 在人工智能AI如火如荼的大潮下,越来越多的工程师们意识到算法是AI的核心.而面对落地的 ...

  3. AI算法连载22:统计之边际概率推断

    导语:在人工智能AI如火如荼的大潮下,越来越多的工程师们意识到算法是AI的核心.而面对落地的应用,不懂算法的AI产品经理将是空谈,不仅无法与工程师沟通,更无法深刻理解应用的性能与方式.所以业界逐渐形成 ...

  4. AI算法连载21:统计之概率图模型

    导语:在人工智能AI如火如荼的大潮下,越来越多的工程师们意识到算法是AI的核心.而面对落地的应用,不懂算法的AI产品经理将是空谈,不仅无法与工程师沟通,更无法深刻理解应用的性能与方式.所以业界逐渐形成 ...

  5. AI算法连载20:统计之隐马尔可夫模型

    导语:在人工智能AI如火如荼的大潮下,越来越多的工程师们意识到算法是AI的核心.而面对落地的应用,不懂算法的AI产品经理将是空谈,不仅无法与工程师沟通,更无法深刻理解应用的性能与方式.所以业界逐渐形成 ...

  6. AI算法连载19:统计之最大熵算法

    导语:在人工智能AI如火如荼的大潮下,越来越多的工程师们意识到算法是AI的核心.而面对落地的应用,不懂算法的AI产品经理将是空谈,不仅无法与工程师沟通,更无法深刻理解应用的性能与方式.所以业界逐渐形成 ...

  7. AI算法连载18:统计之EM 迭代算法

    导语:在人工智能AI如火如荼的大潮下,越来越多的工程师们意识到算法是AI的核心.而面对落地的应用,不懂算法的AI产品经理将是空谈,不仅无法与工程师沟通,更无法深刻理解应用的性能与方式.所以业界逐渐形成 ...

  8. AI算法连载17:统计之半监督学习

    导语:在人工智能AI如火如荼的大潮下,越来越多的工程师们意识到算法是AI的核心.而面对落地的应用,不懂算法的AI产品经理将是空谈,不仅无法与工程师沟通,更无法深刻理解应用的性能与方式.所以业界逐渐形成 ...

  9. AI算法连载16:统计之聚类

    导语:在人工智能AI如火如荼的大潮下,越来越多的工程师们意识到算法是AI的核心.而面对落地的应用,不懂算法的AI产品经理将是空谈,不仅无法与工程师沟通,更无法深刻理解应用的性能与方式.所以业界逐渐形成 ...

最新文章

  1. python使用什么注释语句和运算-Python代码注释的用法和意义
  2. Python分析年度爆款“网抑云”热评,看看哪些文案触动了你的内心世界?
  3. python爬虫加强版!!!!想爬哪个队伍就爬那个
  4. uml建模工具_Visual Paradigm 教程[UML]:绘制UML配置文件图
  5. [ACM训练] 算法初级 之 搜索算法 之 广度优先算法BFS (POJ 3278+1426+3126+3087+3414)
  6. Could Not find resource [logback.groovy] ; Cound Not find resource [logback-test.xml]
  7. python爬取双色球2003-2022年所有数据
  8. IT人论房价 (七) 城市置业乱谈
  9. JS鼠标移入移出事件:onmouseover事件和onmouseout事件实例
  10. 实现内网穿透的两种方式
  11. ESP32开发路程——环境搭建、引脚、烧录、UART、ADC、WS2812、RFID、DAC、FreeRTOS、CJSON
  12. C#窗体Winform,如何嵌入图片添加图片,使用图片资源?
  13. 别克汽车常见疑难故障1000实例
  14. 通俗易懂解释Docker是什么
  15. c#webservice接口調用_Windows 桌面应用开发之 C# 调用 WebService 接口
  16. 社交网络分析的 R 基础:(三)向量、矩阵与列表
  17. 【前端面试题】01—42道常见的HTML5面试题(附答案)
  18. 河道水面漂浮物识别检测系统 YOLOv7
  19. python多分类评估指标acc、f1、auc
  20. 链表中倒数第k个结点——《剑指offer》

热门文章

  1. linux查端口被占用情况,Linux系统中如何查询端口被占用情况
  2. php7 str split,PHP7.4新特性预览
  3. 模拟网页行为之工具篇二
  4. arraylist 的扩容机制_每天都用ArrayList,你读过它的源码么?
  5. JAVA入门级教学之(static静态代码块)
  6. 数字加密c语言程序_国外程序员整理的 C++ 资源大全
  7. 无限流量手机怎样改服务器,无限流量手机服务器
  8. 苹果x计算机按键有声音吗,iPhoneX拍照总有声音怎么办?拨动静音键即可关闭拍照声!...
  9. long mode 分页_在Spring Boot中使用Spring-data-jpa实现分页查询(转)
  10. asp.mvc 4项目发布文件目录结构_Spring Boot项目搭建与启动