深度学习的数学基础

深度学习的数学基础

矩阵

矩阵是线性代数种非常核心的内容,其优势就是能够进行大规模的并行运算,所以将矩阵的计算方式引入大计算机中能够很大程度的提示计算机效率。在深度学习方法种有很多地方会涉及到矩阵计算,所以掌握矩阵相关的计算方法和原理对我们理解深度学习的算法流程会有很大的帮助。

标量、向量、矩阵和张量

  • 标量(Scalar):
    标量其实就是一个独立存在的数,比如在线性代数中一个实数5就看一看做是一个标量,所以表里的运算相对简单,与我们平常做的数字算数运算类似。

  • 向量(vector):
    向量指一列按顺序排列的元素,我们通常习惯用括号将这一列元素括起来,其中的每个元素都由一个索引值来唯一地确定其在向量中的位置,假设这个向量中的第1个元素是为x1,它的索引值就是1,第2个元素是x2,它的索引值就是2,以此类推。如下所示是一个由三个元素组成的向量,这个向量的索引值从1到3分别对应了从x1到x3的这三个元素:向量还有一个特性:向量中的不同数字还可以用于表示不同坐标轴上的坐标值。比如,我们可以把下面这个向量看作三个不同的坐标轴上的坐标值,可以假设2是x轴上的坐标值,3是y轴上的坐标值,8是z轴上的坐标值:
    深度学习的数学基础_第1张图片

  • 矩阵(Matrix):
    矩阵就是一个二维数组结构,我们会用括号将其中的全部元素括起来。向量的索引值是一维的,而矩阵的索引值是二维的,所以在确定矩阵中每个元素的位置时需要两个数字。举例来说,假设在一个矩阵的左上角存在一个元素x11,那么确定这个元素的索引值就是山两个1构成的二维索引值,即“ll”这个二维索引值代表矩阵中第1行和第1列交汇处的数字,所以前面的一个数字1可以被定义为当前矩阵的行号,后面的一个数字1可以被定义为当前矩阵的列号。如下就是一个三行两列的矩阵:
    在这里插入图片描述

    这个矩阵由6个儿索组成,其中x1的位置是第1行和第1列的交汇处,所以x11的索引值就是11,同理,x21的位置是第2行和第1列的交汇处,所以x21的索引值就是21;x12的位置是第1行和第2列的交汇处,所以2的索引值是12:以此类推,最后得到的索引值是22,x31的索引值是31,.x32的索引值是32。下面举一个具体的实例,有如下矩阵:
    深度学习的数学基础_第2张图片

    如果我们想要获取索引值是12和33的值,则根据之前索引值定义的规则,可以得到对应的值分别是3和6.

  • 张量(Tensor) :若數组的维度超过了二维,我们就可以用张量來表示,所以我
    们可以将张量理解为高维数组·同理,张量的索引值用两个维度的数字*表示己经不够了,
    其中的元素的索引值会随着张量维度的改变而改变.

矩阵的基本运算

通常的数学运算包括:加法运算,减法运算,乘法运算和除法运算。但是在矩阵的算数运算中,不能直接进行除法运算,要解决矩阵的出发运算,就需要引入矩阵的逆来实现矩阵的出发运算。我们这里重点讨论矩阵的加法,减法,和乘法。
我们先定义三个矩阵的结构:深度学习的数学基础_第3张图片
在这里插入图片描述
矩阵的算数运算公式:
深度学习的数学基础_第4张图片
我们观察到这两个矩阵在进行加法运算和减法运算时,矩阵中对应的矩阵元素具有相同的行索引值 i 和列索引值 j ,这也是矩阵进行加法和减减法运算的前提条件,即参与运算的矩阵必须具有相同的行数和列数。
不过,矩阵乘法运算的前提条件和加法、减法运算不同:在参与运算的元索索引值中多了一个k值,而且这个k值同时出现在两个参与矩阵乘法运算的元素索引值中,前一个元素的k值代表的是列索引值,后一个元素的k值代表的是行索引值。不仅如此,我们还能从矩阵的乘法运算中得到如下有用的信息:若两个矩阵能进行乘法运算,那么前一个矩阵的列数必须和后一个矩阵的行数相等,同时矩阵的乘法运算要满足乘法的分配率和乘法的结合律,即
在这里插入图片描述
下面可以看一下示例:
深度学习的数学基础_第5张图片

导数的求解

导数是微积分中非常核心的概念,它又包括一阶导数、二阶导数和高阶导数(或者说多阶导数),不过阶层不同的导数不仅在导数求解使用的运算方式和方法上存在i者多差异,其几何意也完全不同,所以我们很难掌握各阶导数的求解方法和几何意义。这里重点介绍一阶导数的求解方法和其对应的几何意义,因为一阶导数的求解相对于高阶导数会简单很多,而且几何意义比较直观,所以掌握这些内容会有助于我们理解后续要讲的深度学习中后向传播的内容。

一阶导数的几何意义

我们高中的时候都知道,在求一个函数的导数,其实就是在求这个函数曲线的在某点x0的切线斜率。
深度学习的数学基础_第6张图片
上面的曲线特征还不是很明显。我们可以看一下其他的曲线:
深度学习的数学基础_第7张图片

左边的是凹曲线,右边的曲线是凸曲线。这两个曲线有一个明显的特点,凹函数一定存在一个函数的最低点,凸函数一定存在一个函数的最高点。 如果凸函数和凹函数在某一点的导数求解为0,那么这个点一定是该函数的最值。
其实在实际的的应用中, 存在多个斜率为0的情况,这类函数不是完全的凹函数,也不是完全的凸函数。如下:
深度学习的数学基础_第8张图片
在该函数曲线中既有一部分凸曲线,又有一部分凹曲线,其中的凸曲线最高点的斜率为0,但是我们不把该点叫作最大值点,而把它叫作极大值点,同理,凹曲线的最低点是极小值点。我们需要明白的是,极大值点和极小值点只代表整个数局部的最大和最小,在该类函数中极大值点不一定就是最人值点,极小值点也不一定就是最小值点,所以我们又可以将最人值点叫作函数个局最人值,将最小值点叫作函数个局最小值,除此之外,我们可以将其他极值点都叫作函数局部最大值或者函数局部最小值。

初等函数的求导公式

深度学习的数学基础_第9张图片

深度学习的数学基础_第10张图片
复合函数其实就是有限个承数使用不同的运算方氵去嵌套而成的,那么复合函数的导数就是有限个函数在相应的点的导数的乘积,就像锁琏一样一环套一环,故将复合函数的求导方法称为涟式法则。
在实际应用中,复合数的求导史复杂:因为复合函数嵌套的函数数量会相对较多,而且在嵌套的函数中用到的不仅有简单的加减乘除运算,还有复杂的幂运算、正弦余弦运算等高级运算。
深度学习的数学基础_第11张图片
以上就是个人学习笔记的总结。
有兴趣的朋友可以去买《深度学习之PyTorch实战计算机视觉 (唐进民) 》的这本书进行学习,也可以联系我发你PDF 版本。

你可能感兴趣的:(机器学习,深度学习,人工智能,机器学习)