机器学习中的高数

导数与梯度下降

简单来说,导数就是曲线的斜率,是曲线变化快慢的体现。二阶导数就是曲线斜率变化快慢的反映。
我们知道,如果函数z=f(x,y)在点P(x,y)处的导数存在,则函数在该点任意方向L上的偏导数都存在,并且有:

∂(f)∂(l)=∂(f)∂(x)cosφ+∂(f)∂(l)sinφ
∂(f)∂(l)=∂(f)∂(x)cosφ+∂(f)∂(l)sinφ

其中φφ为X轴到方向L的转角。
上述公式可用矩阵表述为:

∂(f)∂(l)=(∂(f)∂(x),∂(f)∂(l))⋅(cosφ,sinφ)T
∂(f)∂(l)=(∂(f)∂(x),∂(f)∂(l))⋅(cosφ,sinφ)T

两个向量在什么时候点乘最大呢?由于:a⋅b=|a||b|cosφa⋅b=|a||b|cosφ
答案是同方向的时候,点乘最大,所以机器学习的一个经典算法–梯度下降,形如从山顶走到山脚,以最快的速度下降,采用的就是当前所在位置的偏导数,沿着偏导数的方向下降,能以最快的速度到达目的地。
(∂(f)∂(x),∂(f)∂(l))(∂(f)∂(x),∂(f)∂(l))为函数z=f(x,y)在P点的梯度,记做gradf(x,y)
梯度的方向是函数在当前点变化最快的方向。

组合数背后的秘密

先看一个典型的古典概率问题:将12个正品和3个次品,随机装在3个箱子中,每箱装5件,则每个箱子恰好有一个次品的概率是多少?
先把15个产品装入3个箱子,共有装法:15!/(5!5!5!)
3个次品装入3个箱子,共有:3!种装法。然后把12个正品装入3个箱子,每个4件,共有装法:12!/(4!4!4!)
所以概率P(A)=(3!*12!/(4!4!4!))/(15!/(5!5!5!))

一个通用的问题:N个物品分成k组,使得每组物品的个数分别为n1、n2、……、nk(N=n1+n2+……+nk),则不同的分组方法有:N!n1!n2!…nk!N!n1!n2!…nk!
当N趋于无穷大时,我们来求一个特殊的值:
H=1NlnN!n1!n2!…nk!
H=1NlnN!n1!n2!…nk!

由于N趋于无穷大时,lnN!—–>N(LnN-1)
上述计算等价于:
lnN−1−1N∑i=1kni(lnni−1)=−1N(∑i=1kni(lnni)−NlnN)=−1N∑i=1k(ni(lnni)−nilnN)=−1N∑i=1k(nilnniN)=−∑i=1k(niNlnniN)
lnN−1−1N∑i=1kni(lnni−1)=−1N(∑i=1kni(lnni)−NlnN)=−1N∑i=1k(ni(lnni)−nilnN)=−1N∑i=1k(nilnniN)=−∑i=1k(niNlnniN)

共有N个盒子,niNniN相当于第i个盒子的频率,即p,上述H最后转换为:
H=−∑i=1k(pi)ln(pi)
H=−∑i=1k(pi)ln(pi)

这个式子我们认识有木有,熵由此引出。

猜你喜欢

转载自blog.csdn.net/qq_38851184/article/details/106506182