我们一起玩ai

我们一起玩AI 5 —— 偏导数与梯度下降

2019-11-05  本文已影响0人  ASRay明日丽科技

5秒导读,本文将讲述偏导数,梯度,方向导数,与线性回归权重向量θ的求法

大家好,我是玩ai时长两年半的个人程序猿ASRay,喜欢读,写,编程,数学....板砖!

要理解什么是偏导数,就必须先明白“鸡你太美”的奥义,这可不是瞎扯!因为偏导数指的是多元函数对某个自变量如y或x的导数,而鸡的眼睛长在侧边,当鸡看一个立体的函数,它只能看见一个面,所以鸡眼多元函数的导数正是偏导数!

不过在开始偏导数前我们先回顾一下线性回归的内容

线性回归,总结下来其实非常简单,为了根据工作年限等预测工资,我们把收集到的真实数据画在坐标中,然后用一条直线去拟合所有点,只要直线到点的平均距离足够近,那么我们的直线就能通过已知数据预测未知

图中,黑点为真实数据,红点为预测数据,直线方程为y=kx+b。

而到了空间中,“直线”方程则变为向量点乘:

为了找到适合的θ值,我们通过距离公式写下代价函数(图中蓝线的平均距离)

只要求出使该函数取得最小值的θ,那么我的线性回归则大功告成!(如果不太理解请回看第3期)

总结到此为止,让我们开始偏导的内容,music! 鸡你太美!鸡你实在是太美!别取关,我们认错!

之前我们习惯的的函数,都是单变量函数,比如y=2x, y=sinx等,但是其实函数可以有不止一个变量,比如裤裆函数(这名字我取的,至于为啥看图):

之前我们说过,函数的导数表示函数切线的斜率也即函数变化的快慢,那么什么是偏导数?——偏的导数,也就是某个方向的导数!考虑f(x,y),由于决定函数值的自变量不止一个,所以函数值的变化,会从不同方向进行,考虑一下爬山,假设你站在山顶准备下山,是不是每个方向的陡峭程度都不相同?

OK,让我们从简单的开始,比如x轴方向的斜率,如果我们把任意固定y=b带入函数,那么函数的变量自然就少了一个(可以看作对着函数图像切一刀),这时候x轴方向的斜率只需要当作单元函数处理就行。

如果用极限定义导数,那么f(x,y)对x的偏导为:

而用“套路”求导时,求对x的偏导,只需要把y看作常数就行,至于对y的偏导,只需要把x当常数就行!看见了吧,眼睛长在侧面,自有他的好处,鸡不但美,还能自动做偏导!

特别的,我们把

由f(x,y)对x和对y的偏导组成的向量叫做——函数的梯度,梯度也可以写作:

(备注下i为(1,0),j为(0,1)记不清的可以回看第二期复习下向量)

让我们回到爬山的问题,x和y只是无数个方向中的2个,那么我们想要任意的方向应该怎么办?

回答很简单,用函数的梯度点乘xy平面上的单位向量u

这个等式展开为

这玩意,就叫做函数的方向导数!

特别的,函数沿着梯度方向,函数上升的最快,方向导数大小为梯度的绝对值,而沿着与梯度相反的方向,函数下降的最快,方向导数大小为负的梯度的绝对值。

为什么?让我们看看方向导数

因为u为单位向量,所以大小恒为1,而cos最大值只能取到1!

偏导数的内容到此为止,让我们进入AI主题线性回归!现在我们的目标是要取到代价函数的最小值。想象一下,代价函数的图像是一个大山谷,你站在一点上,准备下到谷底,你先选择一个最陡峭的坡,向下走一段,再最陡峭的坡,向下走一段.......直到你再也找不到陡峭的坡,于是乎,就算你没到谷底,也已经不远了!

这个最陡峭的坡是什么,没错就是我们的梯度!

现在让我们从一个点开始下坡,用下式不断更新θ,就是从上图中的一个点跑到另一个点!直到梯度大小很小!

至于你问偏导数算出来是什么,见下图

当然计算这玩意,那可不是人干的事,还是交给计算机好了!毕竟计算机也是鸡啊!鸡你太美!

如果本期内容让您感到不适,请见谅,我们保证下次不会出现类似情况!

关注我们,获取更多有关 AI与大数据的信息。ASRay明日丽科技——科技助力企业发展,携手共创更美明天!

上一篇下一篇

猜你喜欢

热点阅读