【数学基础篇】---详解极限与微分学与Jensen 不等式
一、前述
数学基础知识对机器学习还有深度学习的知识点理解尤为重要,本节主要讲解极限等相关知识。
二、极限
1、例子
当 x 趋于 0 的时候,sin(x) 与 tan(x) 都趋于 0. 但是哪一个趋于 0 的速度更快一些呢?
我们考察这两个函数的商的极限,
所以当 x → 0 的时候,sin(x) 与 tan(x) 是同样级别的无穷小。
2、相关定理
如果三个函数满足 f(x) ≤ g(x) ≤ h(x), 而且他们都在 x0 处有极 限,那么
重要极限:
三、微分学
微分学的核心思想: 逼近.
1、函数导数:
如果一个函数 f(x) 在 x0 附近有定义,而且存在极限。
那么 f(x) 在 x0 处可导且导数 f ′ (x0) = L.
无穷小量表述: 线性逼近。
Definition (函数的高阶导数)
如果函数的导数函数仍然可导,那么导数函数的导数是二阶导 数,二阶导数函数的导数是三阶导数. 一般地记为
或者进一步
导数是对函数进行线性逼近,高阶导数是对导数函数的进一步逼 近,因为没有更好的办法,所以数学家选择继续使用线性逼近.
Example (初等函数的导数)
2、微分学:多元函数
且 Lx, Ly 分别是 f 在 x, y 方向上的偏导数. 一般记为
3、Definition (高阶偏导数)
并且二阶偏导数为
4、Example (偏导数的例子)
5、求导法则
6.总结
微分学的核心思想是逼近. 一阶导数:线性逼近 二阶导数:二次逼近 导数计算:求导法则
四、泰勒级数
1、泰勒/迈克劳林级数: 多项式逼近。
2、泰勒级数: 例子
3、应用
泰勒级数是一元微分逼近的顶峰,所以有关于一元微分逼近的问 题请尽情使用.
罗比塔法则
证明:
因为是在 x0 附近的极限问题,我们使用泰勒级数来思考这个问题
4、小结 (泰勒级数)
泰勒级数本质是多项式逼近
特殊函数的泰勒级数可以适当记一下
泰勒级数可以应用于很多与逼近相关的问题。
五、牛顿法与梯度下降法
很多机器学习或者统计的算法最后都转化成一个优化的问题. 也 就是求某一个损失函数的极小值的问题, 在本课范围内我们考虑 可微分的函数极小值问题.
1、优化问题
对于一个无穷可微的函数 f(x),如何寻找他的极小值点.
极值点条件。
全局极小值: 如果对于任何 x˜, 都有 f(x∗) ≤ f(˜x),那么 x∗ 就是全局极小值点.
局部极小值: 如果存在一个正数 δ 使得,对于任何满足 |x˜ − x∗| < δ 的 x˜, 都有 f(x∗) ≤ f(˜x),那么 x∗ 就是局部极 小值点.(方圆 δ 内的极小值点)
不论是全局极小值还是局部极小值一定满足一阶导数/梯度 为零,f ′ = 0 或者 ∇f = 0.
2、局部极值算法
这两种方法都只能寻找局部极值 这两种方法都要求必须给出一个初始点 x0
数学原理:牛顿法使用二阶逼近(等价于使用二阶泰勒级数),梯度下降法使用一阶逼近
牛顿法对局部凸的函数找到极小值,对局部凹的函数找到极 大值,对局部不凸不凹的可能会找到鞍点.
梯度下降法一般不会找到最大值,但是同样可能会找到鞍 点.
当初始值选取合理的情况下,牛顿法比梯度下降法收敛速度 快.
牛顿法要求估计二阶导数,计算难度更大.
3、牛顿法
首先在初始点 x0 处,写出二阶泰勒级数。
多变量函数二阶逼近
4、梯度下降法:多变量函数一阶逼近
如果函数 f(x) 是个多元函数,x 是一个向量. 在 x0 处对f做线性逼近。
5、小结 (牛顿法与梯度下降法)
牛顿法与梯度下降法本质上都是对目标函数进行局部逼近.
因为是局部逼近所以也只能寻找局部极值
牛顿法收敛步骤比较少,但是梯度下降法每一步计算更加简单,牛顿法不仅给出梯度的方向还给出具体应该走多少。梯度法的r只能自己定义。
不同的算法之间很难说哪一个更好,选择算法还要具体问题 具体分析(这也是数据科学家存在的意义之一)
梯度本身是向着最大方向的,加个负号才是向着最小方向的。
六、凸函数与琴生不等式
1、Definition (凸函数)
把如上定义中的 ≤ 换成 <, 那么这个函数就叫做严格凸函数。
2、(凸函数判断准则)
如果 f 是多元函数,x 是个向量, 那么 f 是凸函数的条件变为Hf 是一个半正定矩阵。
3、凸函数重要性质: 琴生不等式)
【数学基础篇】---详解极限与微分学与Jensen 不等式的更多相关文章
- PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
PHP函数篇详解十进制.二进制.八进制和十六进制转换函数说明 作者: 字体:[增加 减小] 类型:转载 中文字符编码研究系列第一期,PHP函数篇详解十进制.二进制.八进制和十六进制互相转换函数说明 ...
- 走向DBA[MSSQL篇] 详解游标
原文:走向DBA[MSSQL篇] 详解游标 前篇回顾:上一篇虫子介绍了一些不常用的数据过滤方式,本篇详细介绍下游标. 概念 简单点说游标的作用就是存储一个结果集,并根据语法将这个结果集的数据逐条处理. ...
- Scala进阶之路-Scala函数篇详解
Scala进阶之路-Scala函数篇详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传值调用和传名调用 /* @author :yinzhengjie Blog:http: ...
- CentOS 7 下编译安装lnmp之PHP篇详解
一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.PHP下载 官网 http ...
- CentOS 7 下编译安装lnmp之MySQL篇详解
一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.MySQL下载 MySQL ...
- CentOS 7 下编译安装lnmp之nginx篇详解
一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:CentOS Linux release 7.5.1804 (Core),ip地址 192.168.1.168 ...
- Canal:同步mysql增量数据工具,一篇详解核心知识点
老刘是一名即将找工作的研二学生,写博客一方面是总结大数据开发的知识点,一方面是希望能够帮助伙伴让自学从此不求人.由于老刘是自学大数据开发,博客中肯定会存在一些不足,还希望大家能够批评指正,让我们一起进 ...
- java提高篇-----详解java的四舍五入与保留位
转载:http://blog.csdn.net/chenssy/article/details/12719811 四舍五入是我们小学的数学问题,这个问题对于我们程序猿来说就类似于1到10的加减乘除那么 ...
- 组件--Fragment(碎片)第二篇详解
感觉之前看的还是不清楚,重新再研究了一次 Fragment常用的三个类: android.app.Fragment 主要用于定义Fragment android.app.FragmentManager ...
随机推荐
- Mybatis 系列2
上篇文章 写了一个Demo简单体现了一下Mybatis的流程.本次,将简单介绍一下Mybatis的配置文件: 上次例子中,我们以 SqlSessionFactoryBuilder 去创建 SqlSes ...
- Android layout_margin 无效的解决办法
http://www.aichengxu.com/view/31025 1.如果LinearLayout中使用Android:layout_marginRight不起作用,通过测试原来在android ...
- [Micropython]TPYBoard v10x MFRC522智能门禁系统
MF RC522 是应用于13.56MHz 非接触式通信中高集成度读写卡系列芯片中的一员.也就是射频卡. 经常忘带钥匙,最尴尬的上周竟然去开4楼的门,(家住五楼,无电梯),开了好一会没打开,事后对4楼 ...
- swagger在nginx下出现无法请求接口的问题
在Nginx配置绑定域名的时候,增加proxy_set_header即可 示例如下: server { listen ; server_name xxx.dev.internal.XXX.com; l ...
- Flux和ExtJS MVC框架的异同点介绍
Flux是Facebook在现有MVC框架数据流动复杂,难以设计和维护大型的前端应用的情况下设计的一种新的数据架构协议.叫做协议是因为Flux本身就像MVC一样,规定了一种机制,但是Facebook提 ...
- SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码)
SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码) 概述: 表由行和列组成,每个表都必须有个表名. SQL CREATE TABLE 语法 CREATE TABLE tabl ...
- .NET之IOC控制反转运用
当前场景: 如果有不同的用户.使用同一个系统.而不同的客户有某些不同的需求.在不改变系统主体的情况下,可以直接使用IOC控制反转依赖搭建项目 1.添加接口层 目前里面只有一个会员的类.里面有一个登录接 ...
- PAT1009:Product of Polynomials
1009. Product of Polynomials (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yu ...
- linux下c编程 基础
1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 5 .熟练使用gdb调试技术 6. 熟悉makefile基本原理 ...
- http://www.runoob.com/lua/lua-basic-syntax.html
Lua优点及特性 Lua 是一个小巧的脚本语言. 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能.Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行.Lua并没 ...