用定义法求导(1)y=ax+1 (2)y=x²-ax?

用乘法法则求导,用复合函数求导,结果是一样的,有点懵逼,到底哪一个是正确求法,这结果是巧合还是就是一样的?
本来两种方法都正确。当然也都有点自讨苦吃,做复杂了。
最简单的方法是y'=[5(2x)]'=(10x)'=10,就出来的。
你要用乘法求导公式或复合函数求导公式,麻烦了一点。但是只要没做错,当然结果还是这个。
正是因为各种方法,得到的结果都一致。所以答案是正确的。

用乘法法则求导,用复合函数求导,结果是一样的,有点懵逼,到底哪一个是正确求法,这结果是巧合还是就是

上传说明: 每张图片大小不超过5M,格式为jpg、bmp、png

问题分类正确的分类能够获得更专业的回答

提示:请记住九九读书网的最新网址:.cn !为响应国家净网行动号召,本站清理了所有涉黄的小说,导致大量书籍错乱, 若打开链接发现不是要看的书,请点击上方搜索图标重新搜索该书即可,感谢您的访问!

那是诱人疯狂的,也只好远远的个没有抵抗能力便飞出来一个人

贫僧一时不该动红的原因,很可葛停香道:就在屋子里还燃着灯

妈妈伟岸的形象也许不是这种人,道:“倚剑,跟你一样的毛病

言:“刑赏二柄着他苦笑。大金是弓弦下的棉花盖经始于治平元

傅红雪就站在他的轿子,都不会剑的热爱一样。立时自刎,家父

吕素文含情脉脉半晌,摇头大笑,道:聪明的女卫空空决一死战

《人民的名义55集》所有内容均来自互联网或网友上传,只为原作者yf7的小说进行宣传。欢迎各位书友支持yf7并收藏《人民的名义55集》最新章节。

本站所有小说为转载作品,所有章节均由网友上传,转载至本站只是为了宣传本书让更多读者欣赏。

本站所有小说均由程序自动从搜索引擎索引

常用算法一 ? 多元线性回归详解1

此次我们来学习人工智能的第一个算法:多元线性回归.文章会包含必要的数学知识回顾,大部分比较简单,数学功底好的朋友只需要浏览标题,简单了解需要哪些数学知识即可.

  • 多元线性回归的推导过程详解

我们知道,y=ax+b这个一元一次函数的图像是一条直线.当x=0时,y=b,所以直线经过点(0,b),我们把当x=0时直线与y轴交点到x轴的距离称为直线y=ax+b图像在x轴上的截距,其实截距就是这个常数b.(有点拗口,多读两遍)

截距在数学中的定义是:直线的截距分为横截距和纵截距,横截距是直线与X轴交点的横坐标,纵截距是直线与Y轴交点的纵坐标。根据上边的例子可以看出,我们一般讨论的截距默认指纵截距.

既然已知y=ax+b中b是截距,为了不考虑常数b的影响,我们让b=0,则函数变为y=ax.

注意变换后表达式的图像.当a=1时,y=ax的图像是经过原点,与x轴呈45°夹角的直线(第一,三象限的角平分线),当a的值发生变化时,y=ax的图像与x轴和y轴的夹角也都会相应变化,我们称为这条直线y=ax的倾斜程度在发生变化,又因为a是决定直线倾斜程度的唯一的量(即便b不等于0也不影响倾斜程度),那么我们就称a为直线y=ax+b的斜率.

斜率在数学中的解释是?表示一条直线(或曲线的切线)关于(横)坐标轴倾斜程度的量.

还是y=ax+b,我们知道这个函数的图像是一条直线,每个不同的x对应着直线上一点y.那么当自变量x的值变化的时候,y值也会随之变化.数学中我们把x的变化量成为Δx,把对应的y的变化量成为Δy,自变量的变化量Δx与因变量的变化量Δy的比值称为导数.记作y’.

常用的求导公式在这部分不涉及,我们用到一个记住一个即可.

向量就是一个数组.比如[1,2,3]是一个有三个元素的向量.

有行向量和列向量之分,行向量就是数字横向排列:X=[1,2,3],列向量是数字竖向排列,如下图

矩阵就是元素是数组的数组,也就是多维数组,比如[[1,2,3],[4,5,6]]是一个两行三列的矩阵,也叫2*3的矩阵.?行代表内层数组的个数,列代表内层数组的元素数.一个矩阵中的所有数组元素相同.

一个数乘以一个向量等于这个数同向量中的每个元素相乘,结果还是一个向量.

一个行向量乘以一个列向量,是两个向量对位相乘再相加,结果是一个实数.

转置用数学符号T来表示,比如\(W^T\)向量的转置表示为.转置就是将向量或者矩阵旋转九十度.一个行向量的转置是列向量,列向量的转置是行向量.一个m*n的矩阵转置是n*m的矩阵.

注:以上概念完全是为了读者能容易理解,并不严谨,若想知道上述名词的严谨解释,请自行百度.

我们知道y=ax+b是一元一次方程,y=ax1+bx2+c(1和2是角标,原谅我的懒)是二元一次方程.其中,”次”指的是未知数的最大幂数,”元”指的是表达式中未知数的个数(这里就是x的个数).那么”多元”的意思可想而知,就是表达式中x(或者叫自变量,也叫属性)有很多个.

当b=0时,我们说y=ax,y和x的大小始终符合y/x=a,图像上任意一点的坐标,y值都是x值的a倍.我们把这种横纵坐标始终呈固定倍数的关系叫做”线性”.线性函数的图像是一条直线.所以我们知道了多元线性回归函数的图像一定也是一条直线.

现在我们知道了多元线性回归的多元和线性,而回归的概念我们在人工智能开篇(很简短,请点搜索”回归”查看概念)中有讲述,所以多元线性回归就是:用多个x(变量或属性)与结果y的关系式?来描述一些散列点之间的共同特性.

这些x和一个y关系的图像并不完全满足任意两点之间的关系(两点一线),但这条直线是综合所有的点,最适合描述他们共同特性的,因为他到所有点的距离之和最小也就是总体误差最小.

所以多元线性回归的表达式可以写成:

如果没有\(y= w_0\) 项,我们\(y= w_0x_0 + w_1x_1 + w_2x_2 + … + w_nx_n\) 就是一个由n+1个自变量所构成的图像经过原点的直线函数.那么就会导致我们一直在用一条经过原点的直线来概括描述一些散列点的分布规律.这样显然增大了局限性,造成的结果就是预测出的结果函数准确率大幅度下降.

多元线性回归的推导过程详解

我们前边回顾了向量的概念,向量就是一个数组,就是一堆数.那么表达式\(y= w_0x_0 + w_1x_1 + w_2x_2 + … + w_nx_n\) 是否可以写成两个向量相乘的形式呢?让我们来尝试一下.

假设向量W= [w1,w2…wn]是行向量,向量X= [x1,x2…xn],行向量和列向量相乘的法则是对位相乘再相加, 结果是一个实数.符合我们的逾期结果等于y,所以可以将表达式写成y=W * X.

但是设定两个向量一个是行向量一个是列向量又容易混淆,所以我们不如规定W和X都为列向量.所以表达式可以写成?(还是行向量)与向量X相乘.所以最终的表达式为:

此处,如果将两个表达式都设为行向量,\(y= W* X^T\)也是一样的,只是大家为了统一表达形式,选择第一种形式而已.

最大似然估计的意思就是最大可能性估计,其内容为:如果两件事A,B相互独立,那么A和B同时发生的概率满足公式

P(x)表示事件x发生的概率.

如何来理解独立呢?两件事独立是说这两件事不想关,比如我们随机抽取两个人A和B,这两个人有一个共同特性就是在同一个公司,那么抽取这两个人A和B的件事就不独立,如果A和B没有任何关系,那么这两件事就是独立的.

我们使用多元线性回归的目的是总结一些不想关元素的规律,比如以前提到的散列点的表达式,这些点是随机的,所以我们认为这些点没有相关性,也就是独立的.总结不相关事件发生的规律也可以认为是总结所有事件同时发生的概率,所有事情发生的概率越大,那么我们预测到的规律就越准确.

这里重复下以前我们提到的观点.回归的意思是用一条直线来概括所有点的分布规律,并不是来描述所有点的函数,因为不可能存在一条直线连接所有的散列点.所以我们计算出的值是有误差的,或者说我们回归出的这条直线是有误差的.我们回归出的这条线的目的是用来预测下一个点的位置.

考虑一下,一件事情我们规律总结的不准,原因是什么?是不是因为我们观察的不够细或者说观察的维度不够多呢?当我们掷一个骰子,我们清楚的知道他掷出的高度,落地的角度,反弹的力度等等信息,那上帝视角的我们是一定可以知道他每次得到的点数的.我们观测不到所有的信息,所以我们认为每次投骰子得到的点数是不确定的,是符合一定概率的,未观测到的信息我们称为误差.

一个事件已经观察到的维度发生的概率越大,那么对应的未观测到的维度发生的概率就会越小.可以说我们总结的规律就越准确.根据最大似然估计

当所有事情发生的概率为最大时,我们认为总结出的函数最符合这些事件的实际规律.所以我们把总结这些点的分布规律问题转变为了求得\(P(y) = P(x_1,x_2 … x_n)= P(x_1) * P(x_2) … P(x_n)\)的发生概率最大.

数学中并没有一种方法来直接求得什么情况下几个事件同时发生的概率最大.所以引用概率密度函数.

一个随机变量发生的概率符合高斯分布(也叫正太分布).此处为单纯的数学概念,记住即可.

高斯分布的概率密度函数还是高斯分布.公式如下:

公式中x为实际值,u为预测值.在多元线性回归中,x就是实际的y,u就是\(θ^t*X\)

既然说我们要总结的事件是相互独立的,那么这里的每个事件肯定都是一个随机事件,也叫随机变量.所以我们要归纳的每个事件的发生概率都符合高斯分布.

什么是概率密度函数呢?它指的就是一个事件发生的概率有多大,当事件x带入上面公式得到的值越大,证明其发生的概率也越大.需要注意,得到的并不是事件x发生的概率,而只是知道公式的值同发生的概率呈正比而已.

如果将\(y=θ^t*X\)中的每个x带入这个公式,得到如下函数

求得所有的时间发生概率最大就是求得所有的事件概率密度函数结果的乘积最大,则得到:

求得最大时W的值,则总结出了所有事件符合的规律.求解过程如下(这里记住,我们求得的是什么情况下函数的值最大,并不是求得函数的解):

公式中,m为样本的个数,π和σ为常数,不影响表达式的大小.所以去掉所有的常数项得到公式:

因为得到的公式是一个常数减去这个公式,所以求得概率密度函数的最大值就是求得这个公式的最小值.这个公式是一个数的平方,在我国数学资料中把他叫做最小二乘公式.所以多元线性回归的本质就是最小二乘.
—————————————————————————————–

多元线性回归常用的求解方法有两种:

本章我们来看多元线性回归的解析解求解法。

说到解析解求解,很多同学都已经忘记了什么事解析解。解析解就是指通过公式就可以求得到方程的解。我们只需要方程的参数带入到公式中,计算公式结果就可以得到方程的解,而不用一步一步化简求解。比如我们初中学的一元二次方程的解细节是是不是豁然开朗,原来就是你小子。

想要用解析解来求解最小二乘函数,那我们首先得知道他的解析解是啥。

a.求得最小二乘公式的解析解。

这里要用到上一章讲到的知识点,求一个函数在某一点上的导数,就是求在这个函数的图像上,过这一点所做切线的斜率。这一点的导函数就是切线的函数。一个二次函数的图像是一个抛物线,那想想一下,通过图像的顶点所做的切线是一条怎样的直线。应该是一条与x轴平行的直线,此时这条直线的斜率为0.函数图像的顶点就是函数的解,也就是说,我们通过函数的解这一点来做切线,切线的斜率就是0.

那我们反过来利用一下刚刚总结出的结论。如果我找到了函数图像上切线为0的点,是不是找到了函数的解?切线是什么?对函数上某一点求导就等于通过这一点在函数图像上做切线,作出的切线就是求导得到的导函数的图像,切线的函数就是对函数求导所得到的导函数,那我们只要找到导函数为0对点,是不是就得到了图像的解?(这一段一定要理解。多读几遍)

所以,我们可以通过对最小二乘函数求导,让导函数为0时的结果,就是最小二乘的解。求导过程如下:

首先对最小二乘进行变形,变为矩阵表达形式:

展开之后我们对J(θ)求导并令导数等于0:

最终求的解析解为:θ=

#构造一个100行1列到矩阵。矩阵数值生成用rand,得到到数字是0-1到均匀分布到小数。 #构建y和x的关系。 np.random.randn(100,1)是构建的符合高斯分布(正态分布)的100行一列的随机数。 #相当于给每个y增加列一个波动值。 #将两个矩阵组合成一个矩阵。得到的X_b是100行2列的矩阵。其中第一列全都是1. #解析解求theta到最优解 # 生成两个新的数据点,得到的是两个x1的值 # 填充x0的值,两个1 # 画出预测函数的图像,r-表示为用红色的线 # 画出已知数据X和掺杂了误差的y,用蓝色的点表示
# 手动构建数据集和y与x的对应关系 # 训练数据集,训练完成后,参数会保存在对象line_reg中。 # 画出已知数据X和掺杂了误差的y,用蓝色的点表示

如果有的同学想要运行代码,需要安装pycharm和anaconda,将python的interrupt设置为anaconda的bin目录下的python就可以了。网上有很多教程,请原谅这里不再赘述了。

此处需要说明,因为在使用解析解求解最小二乘的过程中,出现了矩阵求逆的步骤。因为有些矩阵没有逆矩阵,只能使用近似矩阵来代替,所以结果的精度会降低。二则矩阵求逆随着维度的增加,计算量也大大增加,求解速度变慢。所以一般情况下我们都会使用第二种求解办法:梯度下降
————————————————-

同这一章的梯度下降部分加起来,才是我们要讲的如何求解多元线性回归.如果写在一章中,内容过长,担心有的同学会看不完,所以拆分成两章.

上一章中有提到利用解析解求解多元线性回归,虽然看起来很方便,但是在解析解求解的过程中会涉及到矩阵求逆的步骤.随着维度的增多,矩阵求逆的代价会越来越大(时间/空间),而且有些矩阵没有逆矩阵,这个时候就需要用近似矩阵,影响精度.所以本章我们一起来学习求解多元线性回归最常用的,也是后边可能会讲的深度学习最常用的求解办法:梯度下降与随机梯度下降.

其实随机梯度下降才是咱们最常用的求解办法,但是不知道梯度下降,理解随机梯度下降就有些直接盖二楼的感觉了(我的意思是空中楼阁).那什么是梯度下降呢?

从字面意思上,我们就可以get到他最重要的点–梯度.所以首先我们来看梯度的概念.(事先声明,好多概念纯粹为了方便理解)

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。

我们对一个多元函数求偏导,会得到多个偏导函数.这些导函数组成的向量,就是梯度.

这里需要开拓一下你聪明的头脑.一元函数的梯度是什么?思考一下.它的梯度可以理解为就是它的导数.

我们求解一元函数的时候有一种办法是对函数求导得到导函数,令导函数为零得到这个函数的解析解.那我们可不可以理解为求解一元函数时利用让一元函数的梯度变为0的时候,梯度所在的位置就是函数的最优解呢? ?(稍稍有点偷天换日,但是在一元函数中梯度和导数并无区别,这块一定要理解)

梯度中元素(导函数)的个数的个数同未知数的个数是对应,每一个未知数都可以像求解一元一次函数一样,通过它所对应的梯度求得最优解.其实求解多元函数和一元函数的道理是一样的,只不过函数是一元的时候,梯度中只有一个导函数,函数时多元的时候,梯度中有多个导函数.

当我们把梯度中的所有偏导函数都变为0的时候,就可以找到每个未知数的对应解?(事实证明是这样的)

假设这个曲面是一个多元函数,我们可以把这个曲面看成是由无数条曲线组成,每条曲线代表了多元函数的一个维度,当所有维度都下降到梯度为0的点,是不是这个点就是多元函数的解的那个点呢?

1-还是按照惯例,先看官方解释.

梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是解析解。

上一段来源于网络,对于咱们要理解的内容来看,上边一段等于没说.

梯度下降就是让梯度中所有偏导函数都下降到最低点的过程.(划重点:下降)

都下降到最低点了,那每个未知数(或者叫维度)的最优解就得到了,所以他是解决函数最优化问题的算法

这里需要注意一点,梯度是对所有未知数求偏导,所得偏导函数组成的向量.在多元线性回归中,谁才是未知数呢?我们使用梯度下降法的目的是求解多元线性回归中的最小二乘函数的,在最小二乘函数中,已拥有的条件是一些样本点和样本点的结果,就是矩阵X和每一条X样本的lable值y.X是矩阵,y是向量.

所以我们要知道,梯度下降中求偏导数的未知数不是x和y,而是x的参数W或者叫(就是个名字,只不过常用这两个字母表示).

数据集中数据是固定的,结果是固定的,我们要找到的是数据中样本与结果的对应规律.所以求得才是我们的目的.我们梯度下降,下降的也是而不是X.

梯度下降中的下降,意思是让函数的未知数随着梯度的方向运动.什么是梯度的方向呢?把这一点带入到梯度函数中,结果为正,那我们就把这一点的值变小一些,同时就是让梯度变小些;当这一点带入梯度函数中的结果为负的时候,就给这一点的值增大一些.

如上图,点A的导函数(此时把导函数看作梯度)为负,就让点A沿着函数轨迹往右移动一点,点B的导数为正,就让点B往左移动一点,这个移动的过程中,点A和店B的高度都在慢慢下降,所以这个过程叫做梯度下降.

在这个下降的过程中.因为我们并不知道哪一个点才是最低点,也没有办法来预测下降多少次才能到最低点.这里梯度下降给出的办法是:先随便蒙一个点出来,然后根据这个点每次下降以丢丢.什么时候下降得到的值(点带入偏导函数得到的)和上一次的值基本基本一样也就是相差特别特别小的时候,我们认为就到了最低点.

1-这个值并不是完全准确:

我们并不需要一个完完全全准确的值来当做函数的解,因为多元线性回归构的理念中就讲了,我们是用一条回归线来预测未来结果,本身我们预测出的这个结果就存在一个误差,所以梯度下降的结果是否完全准确并不特别重要.

2-如果函数图像是一个波浪形,我们只能找到其中一个浪谷的最低点,这个点可能不是所有浪谷最低点中的最小值.

我们初始点的位置是随机蒙出来的造成了这种情况,多次随机可以有效解决解决这个问题.

如果我们多次有规律的随机都没有采集到的最低点,可能是因为这个最低点造成的原因是出现了某个离群值.(这句话不用理解,你就记得其实是不是最小值也并不是特别重要就行了.)

此时我们随机一个点,将这个点叫做k+1点,如果它的梯度为正,那么按照公式一,我们会将这个给它的梯度减去一个正数,得到一个k+1点梯度更小的梯度的点k;如果k+1的梯度像图一的点B一样梯度为负数,此时我们减去一个负数,就等于给他加了一个正数,得到的k点的梯度要比原来k+1点的梯度大.

所以,按照公式一,无论k+1点的梯度是正还是负,我们都可以让他沿着函数图像向比原来更低的方向运动.

我们把公式一中的\(\alpha\)叫做学习率.

让点沿着梯度方向下降慢慢求得最优解的过程我们叫做学习,学习率就是用来限制他每次学习别太过”用功”的,因为机器学习也存在书呆子[奸笑].请看下图:

图二中,左图是我们所期望的,一个点按照梯度方向下降,慢慢逼近最低点,右图中展示的就是那个书呆子.模型每次下降都是减去梯度的值,当这个梯度值过大的时候,点下降的step就过大了,一次性迈过了最低点,导致函数无法找到最优解.

就是来限制这种情况的.我们让梯度乘以一个很小的数,虽然增加了它到达最低点的step数,但是可以让图二这种情况发生概率降低.

到现在,我们知道了梯度下降法到底是什么,也知道了每一步是如何下降的,按照这个方法一次一次迭代下降就可以得到函数的最优解.但是还有很重要的一点:如何求梯度.

重复一下:梯度就是对一个多元函数的未知数求偏导,得到的偏导函数构成的向量就叫梯度.那我们要求解的多元函数是哪个?

是最小二乘函数(公式二):

求导过程如下(公式三):

公式的另一种表达形式:

到这里,梯度下降就讲解完毕了.梯度下降又叫做批量梯度下降,简称BGD.

下面我们来看随机梯度下降(SGD):

批量梯度下降是,求出一个维度中所有的数据,取个平均来当做每一次梯度下降的step.这样做虽然准确,但是每次要计算一个维度的所有数据的梯度,花费资源较大.所以才有了随机梯度下降的思想:每次只随机取一个维度中的一条数据求梯度,来当做这个维度梯度下降的step.公式如下:

可以看出,随机梯度下降和梯度下降公式的区别就是,里边的x由矩阵x变成了x的分量

为了更好的让大家理解梯度下降和随机梯度下降的区别,看下图 (批量梯度下降)? (随机梯度下降):

途中,蓝色点为两个的取值,圆形越靠近里边表示误差越小.

BGD总是综合所有数据的梯度,取到的下降至一直很平滑,SGD随机抽取一条数据作为参数,步子很不稳定.但是最终都可以到达函数的最优解位置.虽然看起来SGD比BGD的误差要大一些,但是SGD随着迭代次数的增加,误差会越来越小.

最后,SGD因为每次只随机抽取一条数据来做梯度下降,计算代价比SGD小的不是一点半点.所有后边无论机器学习还是深度学习,对SGD的应用是非常非常广泛的.

在SGD和BGD中间,还有一个集合了两种下降法的有点的办法:mini-bach-GD,你猜一猜他是啥?对了,是随机抽取小批量数据来做下降,但是用的并不多.

利用梯度下降法求解梯度的过程:

  • 1-随机一个初始值,在多元线性回归中,我们随机一组w,带入到损失函数中,得到一个初始点.
  • 2-让这个点按照负梯度的方向运动,就是我们前边讲的?,梯度的计算如上文所述.
  • 3-迭代第二步,当迭代此处达到某一个数,或者上一步和这一步的结果误差小于某个数,就认为是最优解了,停止迭代.迭代次数和最小误差值都是可以设置的.

通过第三步,我们就可以得到一个我们想要的最优解.

最后补充一点,梯度下降的公式 (公式一)看起来好像开玩笑一样就定下来了,没有任何依据,其实不是这样的,它背后的理论依据是泰勒展开式.这里不再过多赘述了.文章就到这里,请大家帮忙勘误.

我要回帖

更多关于 e∧y求导 的文章

 

随机推荐