Fork me on GitHub

数据分析与数据挖掘 - 06线性代数

一 导数的意义

导数是高等数学中非常重要的知识点,也是人工智能的算法应用中比较常用的一个知识,这一章我们的重点就是讲解一下导数和其求导法则。首先我们来看一下导数的基本概念:函数的变化率,即函数的变化速度,叫做函数的导数。

设函数y = f(x) 在函数x0的某邻域内有定义,当x在点x0有增量∆x(x0+∆x仍在该邻域内)。这时y=f(x)有增量∆y=f(x0+∆x)-f(x0),当∆x无限趋近于零时,∆y/∆x存在,则这个极限值就叫做函数y=f(x)在点x0处的导数,公式如下:
image.png
导数的公式除了以上的写法,还可以写作下边的这种方式:
image.png此时,我们称函数f(x)在x0处可导,当然我们也可以使用导数的几何意义-斜率来理解,如下图所示:
WechatIMG75.png
我们可以把导数理解为函数在几何曲线中某一点处切线的斜率,在这基础上加一个拓展,也很好理解。函数可导一定连续,但连续不一定可导。如果你感兴趣,可以证明一下这个过程,但我们现在记住这个定理就可以。

二 导数的求导法则

1 加减运算的求导法则

若函数u = u(x) 和 v = v(x) 在点x处可导,则函数 y = u+v 在点x处也必可导,并且 (u + v)' = u' + v',其证明过程如下:

\[设:x有增量 \Delta x,u=u(x),v=v(x)和y=u(x)+-v(x)有增量\Delta u,\Delta v和\Delta y \\ 已知:\Delta u=u(x+\Delta x)-u(x), \Delta v=v(x+\Delta x)-v(x) \\ 所以:\Delta y = [u(x+\Delta x)+-v(x+\Delta x)]-[u(x)+-v(x)] \\ \Delta y =[u(x+\Delta x)-u(x)]+-[v(x+\Delta x)-v(x)] \\ \Delta y = \Delta u +-\Delta v \\ 于是:\Delta y/\Delta x = (\Delta u +-\Delta v)/\Delta x \\ 即: \Delta y/\Delta x = \Delta u/\Delta x +-\Delta v/\Delta x \\ 所以:当x趋近于0时,y'= (u+v)'= u'+v' \]

2 函数积的求导法则

若函数u = u(x) 和 v = v(x) 在点x处可导,则函数 y = uv 在点x处也必可导,并且 (uv)' = u'v + v'u,其证明过程也是类似的,这里我们不再花费篇幅论证了,有兴趣的同学可以自己验证一下。

3 函数商的求导法则

若函数u = u(x) 和 v = v(x) 在点x处可导,并且v(x)在点x处不为0,则函数 y = u/v 在点x处也必可导,并且 (u/v)' = (u'v - v'u)/v^2,其证明过程也是类似的,这里我们不再花费篇幅论证了,有兴趣的同学可以自己验证一下。

4 导数常见的公式

学习导数时,有一些基本公式需要我们记住的,虽然我们可以推导出其过程,但是这一些公式就相当于定理一样,记住就好,这样就不用每一次都自己去推导了。

下面是一些常见的公式:
image.png

5 复合函数的求导法则

若函数u = k(x) 在点x处可导,y=f(u) 在点u处可导,则复合函数 f = [k(x)] 在点x处也必可导,并且 f(x)' = y_u'*u_x',其证明过程稍微你有点麻烦,具体过程如下:
WechatIMG3.png
多说一句,虽然我们可以通过Numpy及SciPy这样的科学计算库轻松实现导数计算,并且也可以轻松的实现矩阵、微分、积分等运算,但只有我们掌握其推导过程,才能够真正明白未来要学习的那些算法真正的意义。

三 矩阵乘法运算

像下图中,将数列排成m行n列后,然后用括号将它们围起来,我们将这种形式的组合叫做矩阵。
WechatIMG4.png
我们将其中的m和n分别叫做行标和列标,由m行和n列数排成的矩阵又称作m*n矩阵或m行n列矩阵,就像下边这样。
image.png
我们把其中的数字叫做元素,比如有一个矩阵是[1,2],那么元素就是1和2,当行数和列数相等时,我们把这样的矩阵称之为"n阶方阵"。
image.png
这个时候我们把对角线上的元素叫做对角元素。矩阵的出现,简化了方程组的书写方式,比如像下图中的简写方式:
WechatIMG5.png
下面让我们来看一下如何进行矩阵运算吧,首先我们来看一下矩阵的"和"运算,矩阵的"和"运算就是其对应位置相加的运算,如下图所示:
WechatIMG6.png
矩阵的减法也很简单,就是把上边的加号变成减号,我们下边看一下矩阵的倍数运算吧。
WechatIMG7.png
倍数运算也是一种特殊的矩阵的"积"运算,现在我们来学习一下矩阵的"积"运算吧。

\[\begin{bmatrix}1&2\\3&4\\5&6 \end{bmatrix} * \begin{bmatrix}x_1&y_1\\x_2&y_2\\ \end{bmatrix} = \begin{bmatrix}x_1+2x_2&y_1+2y_2\\3x_1+4x_2&3y_1+4y_2\\5x_1+6x_2&5y_1+6y_2 \end{bmatrix}\\ \]

另外有一点需要注意,两个矩阵相乘,如果交换位置,那么结果是不一样,我们举一个例子来展示一下:

\[\begin{bmatrix}1&2\\3&4\\ \end{bmatrix} * \begin{bmatrix}2&4\\3&5\\ \end{bmatrix} = \begin{bmatrix}1*2+2*3&1*4+2*5\\3*2+4*3&3*4+4*5\\ \end{bmatrix} = \begin{bmatrix}8&14\\18&32\\ \end{bmatrix}\\ \\ \begin{bmatrix}2&4\\3&5\\ \end{bmatrix} * \begin{bmatrix}1&2\\3&4\\ \end{bmatrix} = \begin{bmatrix}2*1+4*3&2*2+4*4\\3*1+5*3&3*2+5*4\\ \end{bmatrix} = \begin{bmatrix}14&18\\18&26\\ \end{bmatrix}\\\]

显然,矩阵的积运算交换位置之后的结果是不同的。

现在我们考虑一个问题,这个问题就是两个符合什么形状的矩阵才能够进行相乘的运算?这个问题的答案是只有左边矩阵的列数等于右边矩阵的行数时,两个矩阵才能够进行乘法运算,也就是必须要是mn的矩阵与np的矩阵来做运算,因为运算的时候是第一个矩阵的列数与第二个矩阵的行数来做运算的。

接下来我们再来一起认识一下一些特殊的矩阵。

零矩阵:所有的元素都为0的矩阵。
image.png
转置矩阵:把行和列对应的位置交换
image.png
对称矩阵:以对角元素为对称轴对称的n阶方阵。对称矩阵的转置矩阵和自己完全相同。
image.png
上三角矩阵:在矩阵左下角都是0的n阶方阵。
image.png
下三角矩阵:在矩阵右上角都是0的n阶方阵。
image.png
对角矩阵:对角元素以外的元素都是0的n阶方阵。对角矩阵的n次方结果是对角元素的n次方的对角矩阵。
image.png
单位矩阵:对角元素都是1,其他元素都是0的n阶方阵。任何矩阵乘以单位矩阵结果都是原来的矩阵。
image.png

四 逆矩阵

逆矩阵运算比之前的运算要复杂一点,我们先来通过一个例子看一下什么是逆矩阵。
WechatIMG10.png
下面来看一下逆矩阵的求解方法及确认是否存在逆矩阵的方法,求逆矩阵的方法有代数余子式法和消元法,利用代数余子式的方法来计算逆矩阵非常麻烦,用的也比较少。而与之相比,消元法就简单的多啦,所以我们主要来学习一下消元法。

消元法和解方程是非常类似的,如果矩阵是为了书写方便,那么方程则是为了计算方便。
image.png
上面的式子是一个二元一次方程组,但同时它也是一个矩阵。

\[\begin{bmatrix}3&1\\1&2\\ \end{bmatrix} * \begin{bmatrix}x_1\\x_2\\ \end{bmatrix} = \begin{bmatrix}1\\0\\ \end{bmatrix}\\ \]

下面我们来做一个小练习,求一下下面这个2阶方阵的逆矩阵。
image.png
我们先把问题整理成矩阵的形式:

\[\begin{bmatrix}3&1\\1&2\\ \end{bmatrix} * \begin{bmatrix}x_1&x_2\\y_1&y_2\\ \end{bmatrix} = \begin{bmatrix}1&0\\0&1\\ \end{bmatrix} \\ \]

再把它转化成方程组:

\[\left\{ \begin{array}{c} 3x_1+y_1=1 \\ 3x_2+y_2=0\\ x_1+2y_1=0\\ x_2+2y_2=1 \end{array} \right. \\\]

显然这个方程组,我们可以很容易的求出x1 = 0.4,y1 = -0.2,x2 = -0.2,y2 = -0.6。

逆矩阵其实还可以有下边这种表达方式:
WechatIMG11.png
其实关于二阶方阵的逆矩阵,还存在着这样一个公式:
image.png
注意:这个公式只适用于2阶方阵,当3阶以上的方阵时,最好我们还是使用消元法。最后补充一句,我们把存在逆矩阵的n阶方阵叫做可逆矩阵。关于矩阵的知识点还有行列式以及多阶方阵的逆矩阵求法,当我们讲到算法模型时,有需要的时候我们再进行更多的讲解。

posted @ 2020-09-21 02:16  马一特  阅读(763)  评论(1编辑  收藏  举报