本节中,我们先来介绍一些深度学习中必备的数学知识,有些是大学课堂讲过的,还有些可能没有,对于第一次见到的知识,可以先不用深究,了解概念即可,再后面应用的时候可以翻过头再看。
1.1 线性代数
深度学习中有4种核心数据结构:标量、向量、矩阵和张量。都对应大学课堂中线性代数中的知识。
向量
向量的点乘(注意点乘结果是个标量);对应项相乘;矩阵乘法;都可用python的numpy库完成。
范数
范数是一种距离的表示,或者说向量的长度。常见的范数有 L0 范数、L1 范数和 L2 范数,我们通过一个向量来看:
x =(x,x2,x3.… xn)
L0 范数:指这个向量中非 0 元素的个数。我们可以通过 L0 范数减少非 0 元素的个数,从而减少参与决策的特征,减少参数。这样一来,自然模型就运算得更快,模型的体积也更小了。
L1 范数:指的是向量中所有元素的绝对值之和,它是一种距离的表示(曼哈顿距离),也被称为稀疏规则算子,L0 范数和 L1 范数都能实现权值稀疏。但 L1 范数是 L0 范数的最优凸近似,它比 L0 范数有着更好的优化求解的特性,所以被更广泛地使用。
权值稀疏:模型中可能有大量特征,有一部分特征对于最后结果的贡献非常小,甚至近乎零。这些用处不大的特征,我们希望能够将其舍弃,以更方便模型做出决策
L2 范数:是向量中所有元素的平方和