机器学习笔记(一)微积分
微积分
@(Machine Learning)[微积分, 概率论]
1.夹逼定理:
当x∈U(x0,r)x \in U(x_0,r)时,有g(x)≤f(x)≤h(x)g(x)\leq f(x)\leq h(x)成立,并且limx→x0g(x)=A,limx→x0h(x)=A\lim_{x \to x_0}g(x) =A , \lim_{x \to x_0}h(x) =A 那么:
\lim_{x \to x_0}f(x) = A
2.极限存在定理:
- 单调有界数列必有极限
- 单增数列有上界,则其必有极限
3.导数:
导数就是曲线的斜率,是曲线变化快慢的反应。
- 二阶导是斜率变化快慢的反应,表征曲线的凹凸性
,但是方向呢总是指向轨迹曲线凹
的一侧。
常用函数的导数:
C′=0C \prime = 0
(xn)′=nxn−1(x^n)\prime = nx^{n-1}
(sinx)′=cosx(sinx)\prime = cosx
(cosx)′=−sinx(cosx)\prime = -sinx
(ax)′=axlna(a^x)\prime = a^xlna
(ex)′=ex(e^x)\prime = e^x
(logax)′=1xlogae(log_ax)\prime = \frac{1}{x}log_ae
(lnx)′=1x(ln x)\prime = \frac{1}{x}(u+v)′=u′+v′(u+v)\prime = u\prime + v\prime
(uv)′=u′v+uv′(uv)\prime = u\prime v +u v\prime
重要应用:幂指函数
(牢记套路)
- 已知函数f(x)=xx,x>0f(x) = x^x, x>0 , 求f(x)f(x)的最小值:
- 解:
- t=xxt = x^x
- 取指数———>lnt=xlnxlnt = xlnx
- 两边对x求导———>1tt′=lnx+1\frac{1}{t}t\prime = lnx +1
- 令t′t\prime等于0(取驻点求最小值)———>lnx+1=0lnx + 1 = 0
- x=e−1x = e^{-1}
- t=e−1et = e^{-\frac{1}{e}}
上面就是求幂指函数的一般套路,像求
最大似然估计
一定会用到这个套路
看一下结果和代码:
# -*- coding:utf8 -*-
import math
import matplotlib.pyplot as pltif __name__ == '__main__':x = [float(i)/100 for i in range(1,150)]y = [math.pow(i,i) for i in x]plt.plot(x, y, 'r-', linewidth = 3, label = 'y(x)=x^x')plt.grid(True)plt.xlabel('X')plt.ylabel('Y')plt.show()
4.Taylor公式 — Maclaurin公式
如果我们知道了函数的一阶导,二阶导。。n阶导就可以写出x0x_0泰勒公式:一阶导×差距+二阶导×差距除以阶乘到最后x的一个高阶无穷小(扔掉)。
f(x)=f(x0)+f′(x0)(x−x0)+f′′(x0)2!(x−x0)2+....+fn(x0)n!(x−x0)n+Rn(x)f(x) = f(x_0)+f\prime(x_0)(x-x_0)+\frac{f\prime\prime(x_0)}{2!}(x-x_0)^2+....+\frac{f ^n(x_0)}{n!}(x-x_0)^n+R_n(x)
如果我们把x0x_0换成0便得到了迈克劳林公式。f(x)=f(0)+f′(0)x+f′′(0)2!x2+....+fn(0)n!xn+o(xn)f(x) = f(0)+f\prime(0)x+\frac{f\prime\prime(0)}{2!}x^2+....+\frac{f ^n(0)}{n!}x^n+o(x^n)
Taylor公式的应用:
数值计算
:初等函数值的计算(在原点展开)- sinx=x−x33!+x55!−x77!+x99!+......+(−1)m−1x2m−1(2m−1)!+R2m
sinx = x - \frac{x^3}{3!}+ \frac{x^5}{5!} - \frac{x^7}{7!} + \frac{x^9}{9!}+ ......+(-1)^{m-1} \frac{x^{2m-1}}{(2m-1)!} + R_{2m}
- ex=1+x+x22!+x33!+.....+xnn!+Rn
e^x = 1 + x + \frac{x^2}{2!}+ \frac{x^3}{3!}+.....+ \frac{x^n}{n!} + R_n
当一个公式不好求的时候,我们可以把他泰勒展开,并且可以把泰勒公式看成一个
多项式加权的和
。
当然实践中我们往往需要做一定程度的变换:
比如给定一个正实数x,计算ex=?e^x = ?
- 当x=0.01x = 0.01的时候,带入泰勒求解就可以,但是如果x=100x=100的话,那这个计算量和误差就会发散,
- 所以我们用另一种思路:
- 求整数k和小数r,使得
- x=k∗ln2+r,|r|<=0.5∗ln2x = k*ln2 + r, |r|
- 从而:
- ex=ek∗ln2+re^x = e ^{k*ln2+r}
=ek∗ln2∗er = e^{k*ln2} *e^r
=2k∗er = 2^k * e^r (这里rr是小于1的,所以ere^r必收敛,而且2的k次方也容易计算)
5.方向导数:
如果函数z=f(x,y)z = f(x,y)在点P(x,y)P(x,y)是可微分的,那么,函数在该点沿任意方向L L 的方向导数都存在,且有:
∂f∂l=∂f∂xcosϕ+∂f∂ysinϕ\frac {\partial f}{\partial l} = \frac {\partial f}{\partial x}cos \phi + \frac {\partial f}{\partial y}sin \phi
- 等式的右侧第一项的系数∂f∂x\frac {\partial f}{\partial x}其实就是假定y是常数求x的导数,∂f∂y\frac {\partial f}{\partial y}同理
- 其中, ϕ\phi为xx轴到方向LL的转角。
6.梯度:
那么梯度是什么呢?梯度就是把上面方向导数的系数提出来组成的向量。
- 设函数z=f(x,y)z = f(x,y)在平面区域D内具有一阶连续偏导数,则对于每一个点P(x,y)∈DP(x,y)\in D,向量(∂f∂x,∂f∂y)(\frac {\partial f}{\partial x},\frac {\partial f}{\partial y})
为函数在点P的梯度,记做gradf(x,y)gradf(x,y),总之就是各对xy求偏导形成的向量
-梯度的方向是函数在该点变化最快的方向
退化一点想,如果只含有一个变量x,即z=x2z = x^2 ,那么我们的轨迹就退化成一个简单的二次函数,梯度也就变成了∂f∂x\frac {\partial f}{\partial x}或者说是dfdx\frac {d f}{dx}。
所以说梯度就是一元的导数在高元的推广而已,一个数换成了一个向量。
7.凸函数:
7.1凸函数的定义:
若函数f的定义域domf为凸集,且满足∀x,y∈domf,0≤θ≤1\forall x,y \in domf, 0\leq\theta\leq1,有
f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y)f( \theta x + (1-\theta)y) \leq \theta f(x) + (1-\theta)f(y)
换句话说凸函数两个点之间的连线一定在曲线之上。
- 假设θ=0.9\theta = 0.9,不等式左边就是曲线上的点,右边就是割线上的点。我们在图上直观画出来就是:
简单来说就是:割线在上,函数在下。
在机器学习领域,我们就把他叫做凸函数,不是什么数学上翻译的下凹,凹函数 。。。。
7.2凸函数的判定:
定理:f(x)f(x)在区间[a,b][a,b]上连续在(a,b)(a,b)内二阶可导,那么:
- 若f′′(x)>0f\prime\prime(x)> 0,则f(x)f(x)是凸的
- 若f′′(x)<0f\prime\prime(x),则f(x)f(x)是凹的
即:一元二阶可微的函数在区间上是凸的,当且仅当它的二阶导数是非负的。
7.3凸函数定义的扩展:
定义里我们的θ\theta是0.9,另一项是0.1。其实这些系数就是两个项的权重,现在我们变成n个项,分散一下权重,就有了另一公式:
f(θ1x1+....+θnxn)≤θ1f(x1)+....+θnf(xn)f( \theta_1 x_1+....+ \theta_nx_n) \leq \theta_1 f(x_1) +....+ \theta_nf(x_n) , 其中0≤θi≤1,θ1+θ2+....+θn=10\leq\theta_i\leq 1 ,\theta_1+\theta_2+....+\theta_n = 1
- 当我们知道了函数是凸函数时,我们往往会利用这个不等式进行一些证明。
7.4凸性质的应用(很简单大家耐心看):
我们用这个性质来证明一下:在x中取值的两个概率分布p(x),q(x)p(x),q(x)为什么相对熵(KL散度)是≥0\geq0的:
D(p||q)=∑xp(x)logp(x)q(x)=Ep(x)logp(x)q(x)≥0D(p||q) = \sum_x p(x)log \frac{p(x)}{q(x)} = E_{p(x)}log \frac{p(x)}{q(x)}\geq0
- 在推到过程中我们把p(x)q(x)\frac{p(x)}{q(x)} 看成一个数,那么第二步中,p(x)logp(x)q(x)p(x)log \frac{p(x)}{q(x)}就相当于一个权值乘以一个数,回顾上面的凸函数公式,不难看出它就是绿色的线上的某个点。
- 在第三步里,我们把p(x)p(x)移到loglog里面,所以可以看成它代表红色的线上的某个点。
- 但是别忘了前面的负号,所以是绿色的值大于等于红色。注意上图是loglog曲线。−log-log大家自行脑补了。
- q<script type="math/tex" id="MathJax-Element-77">q</script>的加和是1,所以最后为0
并不难是吧~
参考文献:
邹博:七月算法-机器学习
Christopher M. Bishop, Pattern Recognition and Machine Learning,
Springer-Verlag, 2006
Kevin P. Murphy, Machine Learning:A Probabilistic Perspective,
The MIT Press, 2012
李航,统计学习方法,清华大学出版社,2012
Stephen Boyd,Lieven Vandenberghe, Convex Optimization,
Cambridge University Press, 2004
Thomas M. Cover, Joy A. Thomas, Elements of Information
Theory,2006
各章节特定的经典论文,如:
Alex Rodriguez, Alessandro Laio, Clustering by fast search and find of
density peak, Science 344.6191(2014)
David M. Blei, Andrew Y. Ng, Michael I. Jordan, Latent Dirichlet
Allocation, 2003
机器学习笔记(一)微积分相关推荐
- 七月算法机器学习笔记1 微积分与概率论
七月算法(http://www.julyedu.com) 12月份 机器学习在线班 学习笔记
- 一份520页的机器学习笔记!附下载链接
点击上方"视学算法",选择"星标"公众号 第一时间获取价值内容 近日,来自SAP(全球第一大商业软件公司)的梁劲(Jim Liang)公开了自己所写的一份 52 ...
- 700 页的机器学习笔记火了!完整版开放下载
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 作者 梁劲(Jim Liang),来自SAP(全球第一大商业软件公司). 书籍特点 条理清晰 ...
- 吴恩达机器学习笔记第一周
第一周 吴恩达机器学习笔记第一周 一. 引言(Introduction) 1.1 欢迎 1.2 机器学习是什么? 1.3 监督学习 1.4 无监督学习 二.单变量线性回归(Linear Regress ...
- 机器学习笔记 (第一周)
机器学习笔记 (第一周) 目录 机器学习笔记 (第一周) 引言(Introduction) 1.1 什么是机器学习,机器学习能做些什么事情 1.2 机器学习是什么? 1.3 监督学习 1.4 无监督学 ...
- 迷人的神经网络——机器学习笔记1
目录 迷人的神经网络--机器学习笔记1 第1章 神经元模型及网络结构 1.1 神经元模型 1.1.1 单输入神经元 1.1.2 激活函数 1.1.3 多输入神经元 1.2 网络结构 1.2.1 单层神 ...
- 超给力的 520 页机器学习笔记!图文并茂可能更适合你,文末附下载方法
点击"开发者技术前线",选择"星标????" 在看|星标|留言, 真爱 来自:AI派 前段时间,来自SAP(全球第一大商业软件公司)的梁劲(Jim Liang ...
- 吴恩达机器学习笔记整理(Week1-Week5)
吴恩达机器学习笔记整理 1. Week1 1.1 什么是机器学习(What is Machine Learning) 1.2机器学习算法分类 1.3 单变量线性回归(Linear Regression ...
- 机器学习笔记十四:随机森林
在上一篇机器学习笔记十三:Ensemble思想(上)中,简要的提了一下集成学习的原理和两种主要的集成学习形式. 而在这部分要讲的随机森林,就算是其中属于bagging思路的一种学习方法.为了篇幅,b ...
- 机器学习笔记七:损失函数与风险函数
一.损失函数 回顾之前讲过的线性回归模型,我们为了要学习参数使得得到的直线更好的拟合数据,我们使用了一个函数 这个函数就是比较模型得到的结果和"真实值"之间的"差距&qu ...
最新文章
- 前端js判断上传是否为EXCEL表格问题
- go的打包依赖构建工具-dep
- php中的网页漂浮代码,JavaScript_Javascript实现带关闭按钮的网页漂浮广告代码,复制代码 代码如下: html - phpStudy...
- .NET Core 3.0 即将结束生命周期,建议迁移 3.1
- android p正式版,国内首家!一加正式推送Android P正式版
- Python基础(随笔)
- java的数组(二维)
- 致软件测试员——面试,你准备好了么?
- Spring Boot 搭建 Eureka Servrer 单机模式、高可用模式
- 屏蔽广告(广告终结者)-- CSDN 第一步
- 2+22+222+2222+。。。。
- 多元线性回归—异方差
- 【3D音效增强神器】Boom 3D for Mac中文版 v1.2.2
- NIUSHOP wap端底部导航设置
- linux 根目录变为只读了,如何在 Web 服务器文档根目录上设置只读文件权限 | Linux 中国...
- BroadCastReceiver 与 startService
- quartz获取定时任务下次执行的时间
- 『数据稽核』的相关知识
- 宽字符至多字符的相互转换方法
- Ansible安装与配置