指路: 深度学习轻松学(一).
此系列的参考书籍为:《深度学习轻松学–核心算法与视觉实践》冯超·著
数学与机器学习基础
线性代数基础
矩阵: 大小为m×n的矩阵 A 可以看做一个二维数组 A[m][n] ,其中第一维表示行,第二维表示列。相同维度的矩阵可以相加,矩阵可以和标量相乘,在维度匹配的情况下,矩阵和矩阵之间也可以相乘。矩阵满足加法交换律、乘法结合律。
对称矩阵: 矩阵的转置和矩阵本身相同。
矩阵和向量的乘法: 如果有大小为 m×n 的矩阵 A 和 n×1 的向量 x ,那么相乘得到 m×1 的向量 b 。实际上,这个公式中矩阵 A 的作用相当于一个映射,将不同维度的向量关联起来,而且他们之间是线性运算的关系,因此这种变换也可以被认为是线性变换。
线性变化可以从两个维度理解:
第一, 首先从常规的计算方法看, b 中的每一个元素都是由 A 中的一个行向量和 x 相乘得到的,在这种形式中, A 的每一个行向量是 x 中每一个元素的权重,相当于对 x 的元素做加权求和。在这种方式下,其实是两个向量的内积运算,内积运算其实表示了两个向量的某种相关度。
所以线性变换其实相当于对 x 完成了 m 次内积运算,每一次运算是在考察 A 的行向量与 x 之间的相关程度。
第二, 将这种运算方式视为 A 中的每一个列向量和 x 中的每一个元素依次相乘再相加得到 b 。这种方式实际上利用的是向量与标量数字相乘和向量相加两种运算,这样的 x 的每一个元素都变成了 A 列向量的权重,这个变换是加上变成了向量级别的加权平均。
线性独立: 对于 Ax=b 中,如果 A 中的列向量组不是线性独立的,那么为了求出结果 b,我们可以使用更小维度的 A 和 x。
对称矩阵的性质
特征值和特征向量: 当满足 x 和 b 的维度都为 n 维,那么 A 就是一个 n×n 的方阵 以及 x 和 b 共线,也就是说 b=λx 时,Ax=b 就可以变为 Ae=λe 。这时,当经过 A 的线性变换之后,向量 e 仅仅做了尺度的缩放,我们认为矩阵 A 和向量 e 有某种特殊的关系,于是人们将 e 称为特征向量,λ称为特征值。
对称矩阵的特征值和特征向量: 首先,由实数组成的对称矩阵的特征值全部为实数。其次,对称矩阵的特征向量相互正交。(证明在参考书上P23)
如果对称矩阵所有特征向量长度为1(标准化),那么这些特征向量组成的矩阵就是一个标准正交矩阵,其性质是逆矩阵=转置矩阵=自身。
对称矩阵的对角阵: 对角线为特征值,其余位置为0.
对称矩阵的任意次阶乘: A的n次阶乘=E*(对角阵的n次阶乘)*E。这在深度学习中简化了计算。
概率论
随机事件: 一件不确定的事件
随机变量: 把随机事件抽象成随机变量的一种取值。通过这样的定义,将随机变量的取值和概率值一一对应。随机变量分为离散随机变量和连续随机变量。
随机变量的描述量: 期望E和方差var。
离散随机变量的期望:
连续随机变量的期望:
离散随机变量的方差:
连续随机变量的方差:
贝叶斯定理:
P(B|A) = P(AB) / P(A) ,其中 P(AB) 是联合概率,联合概率的展开:
P(AB) = P(A)P(B|A) = P(B)P(A|B) ,因此
P(B|A) = P(B)P(A|B) / P(A) .其中,B 被称为隐含变量,A 被称为观察变量,P(B) 被称为 先验(prior) 表示我们对一个随机变量概率最初的认识;P(A|B) 被称作 似然(likelihood) 表示在承认先验的条件下另一个与之相关的随机变量的表现;P(B|A) 称为 后验(posterior) 表示当拥有 A 这个条件后 B 的概率;P(A) 是一个标准化常量。
两个随机变量的相关关系:协方差:
信息论基础
熵: 了解真相的“惊喜度”。如果一个随机事件发生的概率为100%,那么它的发生毫无惊喜可言,但是如果概率很低,那么发生的惊喜度越高。满足熵的全部性质的函数为:
所以离散随机变量的熵就是表示所有可能事件所产生的信息量期望:
连续随机变量的熵为:
如果是只有两种结果的离散变量的话,更为直观的“惊喜度”为:
KL散度
概念: 描述两个概率分布 P 和 Q 差异的一种方法。可以测量两个概率分布之间的距离,两个分布越接近,那么KL散度越小。KL散度结果非负。KL散度又叫做相对熵。
离散概率分布的KL散度是:
连续概率分布的KL散度是:
凸函数及其性质
凸集: 一个集合中的任意两点间的线段仍然包含在集合中。
凸函数的定义域是凸集。除此之外,凸函数要满足Jensen不等式:
给定函数中任意两点x,y和任意一个处于[0,1]之间的实数θ,有:
其他判定凸函数的条件: 其一是一阶导数条件:
其二是二阶导数条件:
这两个是凸函数成立的充要条件。如果一个点是凸函数的局部最优值,那么这个值是函数的全局最优值,更进一步,如果这个函数是强凸函数,那么这个点是函数唯一的全局最优值,有了这个性质,我们就可以大胆地做函数的优化了。
机器学习基本知识
回归和分类的根本区别在于:输出的值是连续的还是离散的。
机器学习最终函数的目标是最小化损失函数。
常见的损失函数有平方损失函数和交叉熵损失函数。
平方损失函数: 直接衡量模型输出和标准答案在数值上的差距,定义模型输出的向量为 y ,训练数据的标签向量为 t,那么平方损失函数为:
交叉熵损失函数: 我们将相对熵变形:
前半部分是 p(x) 的熵, 为一个常量, 后半部分就是我们的交叉熵:
即:
平方损失函数和交叉熵损失函数的区别: 一般如果最终输出的结果是回归问题的一个连续型变量,使用平方损失函数更为合适;如果最终输出是分类问题的一个离散one-hot变量,那么交叉熵损失函数更合适。一方面,平方损失函数除了让正确分类尽可能变大,还会让错误分类变得更平均;而交叉熵损失的梯度只和正确分类的预测结果有关,所以在回归问题上使用平方损失函数是很重要的。