近期因工作需要,开始学习机器学习。学习心得体会,定期更新梳理出来,首次接触,可能有理解和解释不到位的地方,望批评指正,也算是自我提升。
提到机器学习,楼主第一反应是各种复杂的公式,各种搞不定的矩阵计算、积分、微分、熵等,甚至还专门为此重新学习了线性代数。其实从机器学习的角度去看数学知识,基本的高等数学、概率论等已经满足需求。
以下回顾三个常用的数学知识,并和机器学习中的数学简单关联。
**
(1)、自然对数e的引出
**
先从一个问题出发,求如下s的值:
s=10!+11!+12!+13!+14!+...+1n!+...
问题分析:
如果令
f(x)=logax
我们知道所有对数函数都会经过点(1,0),则在底数a为何值时,(1,0)处的导数为1呢?我们知道f(x)的极限值:
f(x+Δx)−f(x)Δx=loga(x+Δx)−loga(x)Δx=loga(x+ΔxΔx)1Δx
由于在(1,0)处的导数为1,则当
Δx 趋于无穷小时:
loga(1+Δx)1Δx=1
等价于:
limn→∞(1+1n)n=?
由此引入自然对数e,上述问题的极限,即s的值也为e。
**
(2)、导数与梯度下降
**
简单来说,导数就是曲线的斜率,是曲线变化快慢的体现。二阶导数就是曲线斜率变化快慢的反映。
我们知道,如果函数z=f(x,y)在点P(x,y)处的导数存在,则函数在该点任意方向L上的偏导数都存在,并且有:
∂(f)∂(l)=∂(f)∂(x)cosφ+∂(f)∂(l)sinφ
其中
φ 为X轴到方向L的转角。
上述公式可用矩阵表述为:
∂(f)∂(l)=(∂(f)∂(x),∂(f)∂(l))⋅(cosφ,sinφ)T
两个向量在什么时候点乘最大呢?由于:
a⋅b=|a||b|cosφ
答案是同方向的时候,点乘最大,所以机器学习的一个经典算法–梯度下降,形如从山顶走到山脚,以最快的速度下降,采用的就是当前所在位置的偏导数,沿着偏导数的方向下降,能以最快的速度到达目的地。
(∂(f)∂(x),∂(f)∂(l)) 为函数z=f(x,y)在P点的梯度,记做gradf(x,y)。
梯度的方向是函数在当前点变化最快的方向。
**
(3)、组合数背后的祕密
**
先看一个典型的古典概率问题:将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趋于无穷大时,我们来求一个特殊的值:
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)
共有N个盒子,
niN 相当于第i个盒子的频率,即p,上述H最后转换为:
H=−∑i=1k(pi)ln(pi)
这个式子我们认识有木有,熵由此引出。