分类目录:《机器学习中的数学》总目录


连续数学在数字计算机上的根本困难是,我们需要通过有限数量的位模式来表示无限多的实数。这意味着我们在计算机中表示实数时,几乎总会引入一些近似误差。在许多情况下,这仅仅是舍入误差。舍入误差会导致一些问题,特别是当许多操作复合时,即使是理论上可行的算法,如果在设计时没有考虑最小化舍入误差的累积,在实践时也可能会导致算法失效。

一个极具破坏力的数值错误形式是上溢。当大量级的数被近似为+∞+\infty+∞或-\infty$时发生上溢。进一步的运算通常会导致这些无限值变为非数字。

另一种极具毁灭性的舍入误差是下溢。当接近零的数被四舍五入为零时发生下溢。许多函数在其参数为零而不是一个很小的正数时才会表现出质的不同。例如,我们通常要避免被零除或避免取零的对数。

必须对上溢和下溢进行数值稳定的一个例子是softmax函数。softmax函数经常用于预测与Multinoulli分布相关联的概率,定义为:
Softmax(x)=exi∑iexi\text{Softmax}(x)=\frac{e^{x_i}}{\sum_ie^{x_i}}Softmax(x)=∑i​exi​exi​​

当所有xix_ixi​都等于某个常数ccc时会发生什么。从理论分析上说,我们可以发现所有的输出都应该为1n\frac{1}{n}n1​。从数值计算上说,当ccc量级很大时,这可能不会发生。如果ccc是很小的负数,ece^cec就会下溢。这意味着softmax函数的分母会变成0,所以最后的结果是未定义的。当ccc是非常大的正数时,ece^cec的上溢再次导致整个表达式未定义。这两个困难能通过计算softmax(z)\text{softmax}(z)softmax(z)同时解决,其中z=x−maxixiz=x-max_ix_iz=x−maxi​xi​。简单的代数计算表明,softmax解析上的函数值不会因为从输入向量减去或加上标量而改变。减去maxiximax_ix_imaxi​xi​导致eee的最大参数为0,这排除了上溢的可能性。同样地分母中至少有一个值为1的项,这就排除了因分母下溢而导致被零除的可能性。

还有一个小问题。分子中的下溢仍可以导致整体表达式被计算为零。这意味着,如果我们在计算log⁡softmax(x)\log\text{softmax}(x)logsoftmax(x)时,先计算softmax再把结果传给log⁡\loglog函数,会错误地得到−∞-\infty−∞。相反,我们必须实现一个单独的函数,并以数值稳定的方式计算log⁡softmax\log\text{softmax}logsoftmax。我们可以使用相同的技巧来稳定\log\text{softmax}$函数。

机器学习中的数学——上溢和下溢相关推荐

  1. 数值计算中的上溢和下溢

    利用计算机实现数值计算,指的通常是利用迭代过程更新解来解决数学问题,而不是通过解析过程推到数学公式求解.常见得数值计算主要包括优化问题求解和解线性方程组. 上溢和下溢 通常实数在计算机内不能精确保存, ...

  2. 机器学习中的数学(上)

      上篇博文介绍了<机器学习之支持向量机>后发现利用到了梯度.凸优化.拉格朗日对偶性等数学问题.而且凸优化是本科非数学专业学不到的科目,所以这篇博文就要和大家分享一下机器学习中常用的数学概 ...

  3. 机器学习中的数学:一份新鲜出炉的热门草稿

    来源:机器之心 本文约1500字,建议阅读5分钟. 本文为你分享近日<Mathematics for Machine Learning>的全部草稿已放出,我们整理了这本书的简要概述. 近日 ...

  4. 我们该如何学习机器学习中的数学

    数学在机器学习中非常重要,不论是在算法上理解模型代码,还是在工程上构建系统,数学都必不可少.通常离开学校后很难有机会静下心学习数学知识,因此我们最好能通过阅读小组或读书会等形式营造环境,并专注学习那些 ...

  5. 机器学习中的数学(七)--凸优化的基础知识

    写在前面 <机器学习中的数学>系列主要列举了在机器学习中用到的较多的数学知识,包括微积分,线性代数,概率统计,信息论以及凸优化等等.本系列重在描述基本概念,并不在应用的方面的做深入的探讨, ...

  6. 机器学习中的数学(六)--信息论与激活函数

    写在前面 <机器学习中的数学>系列主要列举了在机器学习中用到的较多的数学知识,包括微积分,线性代数,概率统计,信息论以及凸优化等等.本系列重在描述基本概念,并不在应用的方面的做深入的探讨, ...

  7. 机器学习中的数学(四)--线性代数

    写在前面 <机器学习中的数学>系列主要列举了在机器学习中用到的较多的数学知识,包括微积分,线性代数,概率统计,信息论以及凸优化等等.本系列重在描述基本概念,并不在应用的方面的做深入的探讨, ...

  8. 机器学习中的数学(三)--牛顿法

    写在前面 <机器学习中的数学>系列主要列举了在机器学习中用到的较多的数学知识,包括微积分,线性代数,概率统计,信息论以及凸优化等等.本系列重在描述基本概念,并不在应用的方面的做深入的探讨, ...

  9. 机器学习中的数学(二)--梯度下降法

    写在前面 <机器学习中的数学>系列主要列举了在机器学习中用到的较多的数学知识,包括微积分,线性代数,概率统计,信息论以及凸优化等等.本系列重在描述基本概念,并不在应用的方面的做深入的探讨, ...

最新文章

  1. 第八章 工厂方法模式
  2. Jmeter性能测试之Switch控制器使用
  3. Linux防火墙命令
  4. Python中数字以及算数运算符的相关使用
  5. 你应该关注的几个网站
  6. java 张量运算,博客 | Tensorflow_01_运算符与张量值
  7. lte盲重定向_LTE重选、切换、重定向的区别
  8. 程序员5年工作经验,因频繁跳槽被面试官压工资!
  9. oracle system表空间有坏块,修复系统表空间坏块
  10. 【算法07】求子数组的最大和
  11. android多媒体学习笔记三___图像合成
  12. Xilinx FPGA 下载器驱动提示“系统找不到指定的路径”的解决办法
  13. tvb php 香港IP,优酷与TVB签订战略合作协议,实现内容IP与平台资源结合
  14. [维修笔记]关于红米2A手机无限重启的维修
  15. 统计|如何理解估计量的三条评价标准
  16. 如何将支付宝小程序迁移至微信/FinClip运行
  17. 姑娘们 你们够漂亮 但是一定还不够美丽
  18. 测试开发工程师mac电脑常用软件推荐
  19. 认识电脑的各大组件 【主板、CPU、内存条、硬盘、显卡、显示器】
  20. 使用HTML表格制作简易的个人简历表

热门文章

  1. 和平精英新手保姆级教程,游戏小白也能拥有单场高光!
  2. Android 百度地图获取两点之间的距离和推荐的驾车路线
  3. CocoaPods福利时间
  4. 微信企业号JS SDK
  5. 酷狗最新版自动安装脚本(代码)
  6. 程序设计大赛---多米诺效应
  7. 【单片机学习笔记】(28):图形用户界面(GUI),串口通信协议与匿名上位机,获取MPU6050欧拉角,H桥电路、制作风力摆(空心杯电机、TB6612)
  8. 时刻保持对生活不断探索的态度
  9. 关于Mac中窗口隐藏与最小化快捷键的多种用法
  10. 图片转换成文字怎么做?教你几种图片转文字方法