如何从线性回归到深度学习(深度学习中的线性代数)(1)

易混基础概念

在 Numpy 中定义矩阵的方法,以及进行转置的方法:

import numpy as np a = np.array([[1, 2, 3], [4, 5, 6]]) a = a.reshape(3, 2) print(a) [[1 2] [3 4] [5 6]] 复制代码

基本算数关系

与高等数学中矩阵相乘内容一致:

a = np.array([[1, 2], [3, 4]]) b = np.array([[5, 6], [7, 8]]) print(a * b) print(a.dot(b)) print(np.dot(a, b)) print(np.linalg.inv(a)) # 星(*) [[ 5 12] [21 32]] # 点乘 [[19 22] [43 50]] # 点乘 [[19 22] [43 50]] # 逆运算 [[-2. 1. ] [ 1.5 -0.5]] 复制代码

范数

范数是一个函数,用于衡量长度大小的一个函数。数学上,范数包括向量范数和矩阵范数。

向量范数

我们先讨论向量的范数。向量是有方向有大小的,这个大小就用范数来表示。

如何从线性回归到深度学习(深度学习中的线性代数)(2)

严格意义上来说,范数是满足下列性质的任意函数:

如何从线性回归到深度学习(深度学习中的线性代数)(3)

矩阵范数

对于矩阵范数,我们只聊一聊 Frobenius 范数,简单点说就是矩阵中所有元素的平方和再开方,还有其他的定义方法,如下,其中表示的共轭转置,tr为迹;表示的奇异值:

如何从线性回归到深度学习(深度学习中的线性代数)(4)

奇异值分解

我们熟悉特征分解矩阵中:,奇异分解与之类似:,其中矩阵的行和列的值为、正交矩阵、对角矩阵、正交矩阵,矩阵对角线上的元素称为的奇异值,其中非零奇异值是或的特征值的平方根;称为的左奇异向量,是的特征向量;称为的右奇异向量,是的特征向量。因为奇异矩阵无法求逆,而求逆又是研究矩阵的非常好的方法,因此考虑退而求其次的方法,求伪逆,这是最接近矩阵求逆的,把矩阵化为最舒服的形式去研究其他的性质,伪逆把矩阵化为主对角线上有秩那么多的非零元素,矩阵中其他的元素都是零,这也是统计学中常用的方法,在机器学习中耶非常好用。

定义

总结

线性代数的一大特点是“一大串”,统一的知识体系,相互之间紧密联系,非常漂亮,在深度学习中有重要的应用,还是应该要学好。

,