微分,偏导数和梯度以及梯度下降算法笔记
作者:互联网
摘自各个视频,为个人笔记,勿喷我抄袭谢谢。
一:关于微分
补一下数学知识。有些遗忘了。又想起了去年刚开始考研的日子,还挺怀念。
1:
对于y = f(x) = 3x
x0->x0+Δx
Δy = f(x0+Δx)-f(x0) = 3(x0+Δx)-3x0 = 3Δx
发现,Δy和Δx两者成线性关系。
对于y = f(x) = x^2
Δy = f(x0+Δx)-f(x0) = (x0+Δx)^2-x0^2 = 2x0Δx+Δx^2
发现,Δy和Δx两者非线性关系了。
对于y = f(x) = x^3
Δy = 3x0^2*Δx+3x0(Δx)^2+(Δx)^3
但是当Δx——>0 ,以上平方,三次方都是高阶无穷小了,几乎可以忽略。
可微的定义:在点处,Δy=AΔx+o(Δx) , 满足线性关系。可以发现,以上三个函数都符合此。
对于:Δy=AΔx+o(Δx) (Δx——>0)
(1) A = ?
A,即为导数了。
(2)几何意义
Δy=f'(x0) * Δx+o(Δx) 此式在Δx很小的时候成立,x0领域内
Δy=f'(x0) * Δx
y-y0 = f'(x0) * (x-x0)
那么,f'(x0) = (y-y0)/(x-x0),此即为y = f(x)在x0处的切线方程。点斜式。
二:偏导数和梯度
对于:z=F(x,y)
1:坐标系:
2:z对y和x的偏导数
此时,我们固定x不动,沿着这条线改变y值,z值在不停变化。从此图的正面看,不就是,关于z和y的一元函数图像么。z的增量除以y的增量,为对应的图中的斜率。此即为Z对Y的偏导数
同样的,固定y,得Z对X的偏导数
3:向量相加
如果我们将这两个箭头以向量相加,就得到了一个新箭头。
为该点最大的变化率,方向为该点最大的变化方向。
三:梯度下降算法
机器学习的一个常见任务是,通过学习算法,自动发现数据背后的规律,不断改进模型,然后做出预测
1:举个例子:
设计一个算法,让机器能够拟合这些数据,帮助算出w
(1)
一个简单的方法:随机选择一条直线,计算所有样本点和它的偏离程度。再根据误差大小,再来调整w
此处y=wx为预测函数
(2)找到差距--代价函数
我们需要量化数据的偏离程度,即误差。一个常见的方法:均方误差,即误差平法和的平均值。
对于一个点 p1(x1,y1) ,对应的误差为e1
得到这些:
而目的是求所有点误差的平均值。e=(e1+e2....+en) / n
即:
将框内的用abc表示有:
e=a*w^2+b*w+c ,此被称为代价函数(loss function),a>0,因此对应一个开口向上的抛物线。
(3)明确搜索方向--梯度计算
机器学习的目标:拟合出最接近训练数据分布的直线,也就是找到使得误差代价最小的参数w。对应到代价函数的图像上,就是它的最低点,寻找最低点的过程,就是:梯度下降要做的事。
对于代价函数图像,假定起始点在曲线上任意一处。直觉告诉我们,只要向陡峭程度最大的方向走,就能更快到达最低点。这个陡峭程度就是梯度:Gradient。它是代价函数的导数。对抛物线而言就是曲线的斜率。
(4)大胆地往前走吗?--学习率
步子该迈多大?
新w = 旧w - 斜率*学习率
学习率通俗的说就是步长 每一次训练梯度下降的效率。
(5)不达目标不罢休--循环迭代
梯度下降的完整过程为:
直到找到最低点。
2:实际情况
实际情况并没有如此简单了。代价函数可能是波浪线,可能是起伏不定的曲面,或者更复杂的~ 但是无论有多少维度,都可以使用梯度下降法,来寻找误差最小的点。
标签:误差,函数,导数,梯度,微分,x0,代价 来源: https://www.cnblogs.com/liyexin/p/16684081.html