编程语言
首页 > 编程语言> > 微分,偏导数和梯度以及梯度下降算法笔记

微分,偏导数和梯度以及梯度下降算法笔记

作者:互联网

摘自各个视频,为个人笔记,勿喷我抄袭谢谢。

一:关于微分

补一下数学知识。有些遗忘了。又想起了去年刚开始考研的日子,还挺怀念。

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处的切线方程。点斜式。

 

二:偏导数和梯度

动画演示:https://www.bilibili.com/video/BV1sW411775X?spm_id_from=333.337.search-card.all.click&vd_source=d626468b26cb071e232b1cfc6c787990

对于:z=F(x,y)

1:坐标系:

 

 2:z对y和x的偏导数

 

 此时,我们固定x不动,沿着这条线改变y值,z值在不停变化。从此图的正面看,不就是,关于z和y的一元函数图像么。z的增量除以y的增量,为对应的图中的斜率。此即为Z对Y的偏导数

同样的,固定y,得Z对X的偏导数

3:向量相加

 

如果我们将这两个箭头以向量相加,就得到了一个新箭头。  

 

 

 

为该点最大的变化率,方向为该点最大的变化方向。

三:梯度下降算法

参考视频:https://www.bilibili.com/video/BV18P4y1j7uH?spm_id_from=333.337.search-card.all.click&vd_source=d626468b26cb071e232b1cfc6c787990

机器学习的一个常见任务是,通过学习算法,自动发现数据背后的规律,不断改进模型,然后做出预测

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