Day6 神经网络的向量基础
向量基本概念
向量是数学中的一个基本概念,指具有大小和方向的量。
- 向量通常用箭头表示,如 a⃗\vec{a}a
- 也可以用数对或坐标形式表示,如a⃗=(x,y)\vec{a} = (x, y)a=(x,y)在二维空间中,或a⃗=(x,y,z)\vec{a} = (x, y, z)a=(x,y,z)在三维空间中。
- 也可以用不带箭头的加粗黑色斜体字母 a 表示
向量的坐标表示
将向量的箭头起点放在坐标系的原点,箭头终点的坐标即为该向量的坐标表示。
例如,二维向量a⃗=(a1,a2)\vec{a} = (a_1, a_2)a=(a1,a2)表示一个从原点指向点(a1a_1a1, a2a_2a2)的箭头。在三维空间的情况下也是同样的。下图右 a = (1, 2, 2) 表示右图所示的向量。
向量的大小
- 向量的大小,也称为向量的模或长度,记作 ∥A⃗∥\| \vec{A} \|∥A∥。向量的模表示向量的大小,可以通过勾股定理计算。例如,对于二维向量 A⃗=(a1,a2)\vec{A} = (a_1, a_2)A=(a1,a2),其模为 ∥A⃗∥=a12+a22\| \vec{A} \| = \sqrt{a_1^2 + a_2^2}∥A∥=a12+a22。模为1的向量称为单位向量。模为零的向量称为零向量,记作 0⃗\vec{0}0,零向量的方向是任意的。
向量的内积
-
向量的内积(点乘/数量积)是对两个向量执行点乘运算,即对这两个向量对应位一一相乘之后求和的操作。内积的几何意义包括表征或计算两个向量之间的夹角,以及向量在一个方向上的投影。
-
对于两个向量 a⃗=(a1,a2,…,an)\vec{a} = (a_1, a_2, \ldots, a_n)a=(a1,a2,…,an) 和 b⃗=(b1,b2,…,bn)\vec{b} = (b_1, b_2, \ldots, b_n)b=(b1,b2,…,bn),它们的内积为:
-
a⃗⋅b⃗=a1b1+a2b2+…+anbn\vec{a} \cdot \vec{b} = a_1 b_1 + a_2 b_2 + \ldots + a_n b_na⋅b=a1b1+a2b2+…+anbn
-
内积的性质包括
- 对称性:a⃗⋅b⃗=b⃗⋅a⃗\vec{a} \cdot \vec{b} = \vec{b} \cdot \vec{a}a⋅b=b⋅a
- 线性性:a⃗⋅(λb⃗+μc⃗)=λ(a⃗⋅b⃗)+μ(a⃗⋅c⃗)\vec{a} \cdot (\lambda \vec{b} + \mu \vec{c}) = \lambda (\vec{a} \cdot \vec{b}) + \mu (\vec{a} \cdot \vec{c})a⋅(λb+μc)=λ(a⋅b)+μ(a⋅c)
- 正定性:a⃗⋅a⃗≥0\vec{a} \cdot \vec{a} \geq 0a⋅a≥0,且 a⃗⋅a⃗=0\vec{a} \cdot \vec{a} = 0a⋅a=0 当且仅当 a⃗=0⃗\vec{a} = \vec{0}a=0
- 投影公式:向量a⃗\vec{a}a在向量b⃗\vec{b}b方向上的投影为 a⃗⋅b⃗∥b⃗∥\frac{\vec{a} \cdot \vec{b}}{\| \vec{b} \|}∥b∥a⋅b
- 夹角公式:向量a⃗\vec{a}a与b⃗\vec{b}b的夹角余弦为 cos∠(a⃗,b⃗)=a⃗⋅b⃗∥a⃗∥∥b⃗∥\cos \angle (\vec{a}, \vec{b}) = \frac{\vec{a} \cdot \vec{b}}{\| \vec{a} \| \| \vec{b} \|}cos∠(a,b)=∥a∥∥b∥a⋅b
二维和三维空间中的向量性质可以照搬到任意维空间中。神经网络虽然处理的是高维空间(如数万维),但二维和三维空间中的向量性质仍然适用。
-
利用夹角公式,我们可以计算两个向量的内积:
- a⃗⋅b⃗=∥a⃗∥∥b⃗∥cos∠(a⃗,b⃗)\vec{a} \cdot \vec{b} = \| \vec{a} \| \| \vec{b} \| \cos \angle (\vec{a}, \vec{b})a⋅b=∥a∥∥b∥cos∠(a,b)
- ① 当两个向量方向相反时,内积取得最小值.
- ② 当两个向量不平行时,内积取平行时的中间值。
- ③ 当两个向量方向相同时,内积取得最大值。
性质①就是后述的梯度下降法的基本原理。
另外,可以认为内积表示两个向量在多大程度上指向相同方向。如果将方向相似判定为“相似”,则两个向量相似时内积变大。这个观点对于后续学习卷积神经网络时十分重要。
-
柯西-施瓦茨不等式
柯西-施瓦茨不等式是数学中的一个基本且重要的不等式,它定义了在内积空间中,两个向量的内积与其各自范数(或长度)之间的关系。具体形式为:
∣a⃗⋅b⃗∣≤∥a⃗∥∥b⃗∥| \vec{a} \cdot \vec{b} | \leq \| \vec{a} \| \| \vec{b} \|∣a⋅b∣≤∥a∥∥b∥ 或者 −∥a⃗∥∥b⃗∥≤a⃗⋅b⃗≤∥a⃗∥∥b⃗∥-\| \vec{a} \| \| \vec{b} \|\leq \vec{a} \cdot \vec{b} \leq \| \vec{a} \| \| \vec{b} \|−∥a∥∥b∥≤a⋅b≤∥a∥∥b∥
证明方法:利用夹角公式
根据夹角公式,我们有:
a⃗⋅b⃗=∥a⃗∥∥b⃗∥cos∠(a⃗,b⃗)\vec{a} \cdot \vec{b} = \| \vec{a} \| \| \vec{b} \| \cos \angle (\vec{a}, \vec{b})a⋅b=∥a∥∥b∥cos∠(a,b)
由于余弦函数的值域是 [−1,1][-1, 1][−1,1],因此:
∣cos∠(a⃗,b⃗)∣≤1| \cos \angle (\vec{a}, \vec{b}) | \leq 1∣cos∠(a,b)∣≤1
将上述不等式代入夹角公式中,我们得到:
∣a⃗⋅b⃗∣=∣∥a⃗∥∥b⃗∥cos∠(a⃗,b⃗)∣≤∥a⃗∥∥b⃗∥| \vec{a} \cdot \vec{b} | = | \| \vec{a} \| \| \vec{b} \| \cos \angle (\vec{a}, \vec{b}) | \leq \| \vec{a} \| \| \vec{b} \|∣a⋅b∣=∣∥a∥∥b∥cos∠(a,b)∣≤∥a∥∥b∥
这就证明了柯西-施瓦茨不等式。
张量
张量(Tensor)是向量的推广,是一个多维数组。在神经网络中,张量常用于表示多维数据,如图像数据(三维张量:高度、宽度、颜色通道)或更高维的数据结构。谷歌提供的人工智能学习系统 TensorFlow 的命名中就用到了这个数学术语。
附
柯西-施瓦茨不等式证明方法二:构造二次函数并利用其性质
构造二次函数:
考虑二次函数 f(t)=∥a⃗+tb⃗∥2f(t) = \| \vec{a} + t \vec{b} \|^2f(t)=∥a+tb∥2,其中 ttt 是一个实数。
展开二次函数:
利用向量的模和内积的定义,我们可以将 f(t)f(t)f(t) 展开为:
f(t)=(a⃗+tb⃗)⋅(a⃗+tb⃗)=∥a⃗∥2+2t(a⃗⋅b⃗)+t2∥b⃗∥2 f(t) = (\vec{a} + t \vec{b}) \cdot (\vec{a} + t \vec{b}) = \| \vec{a} \|^2 + 2t (\vec{a} \cdot \vec{b}) + t^2 \| \vec{b} \|^2 f(t)=(a+tb)⋅(a+tb)=∥a∥2+2t(a⋅b)+t2∥b∥2
分析二次函数的性质:
由于 f(t)f(t)f(t) 是一个关于 ttt 的二次函数,并且其系数 $ | \vec{b} |^2 $ 是非负的,因此 f(t)f(t)f(t) 是一个开口向上的抛物线。这意味着对于所有的 ttt,f(t)f(t)f(t) 的值都是非负的,即 f(t)≥0f(t) \geq 0f(t)≥0。
利用二次函数的判别式:
对于二次函数 f(t)=At2+Bt+Cf(t) = At^2 + Bt + Cf(t)=At2+Bt+C,其判别式 Δ=B2−4AC\Delta = B^2 - 4ACΔ=B2−4AC。当 Δ≤0\Delta \leq 0Δ≤0 时,二次函数没有实数根,即在整个实数域内都是非负的。
将我们的二次函数与标准形式对比,我们可以得到:
A=∥b⃗∥2,B=2(a⃗⋅b⃗),C=∥a⃗∥2 A = \| \vec{b} \|^2, \quad B = 2 (\vec{a} \cdot \vec{b}), \quad C = \| \vec{a} \|^2 A=∥b∥2,B=2(a⋅b),C=∥a∥2
因此,判别式为:
Δ=[2(a⃗⋅b⃗)]2−4∥a⃗∥2∥b⃗∥2=4(a⃗⋅b⃗)2−4∥a⃗∥2∥b⃗∥2 \Delta = [2 (\vec{a} \cdot \vec{b})]^2 - 4 \| \vec{a} \|^2 \| \vec{b} \|^2 = 4 (\vec{a} \cdot \vec{b})^2 - 4 \| \vec{a} \|^2 \| \vec{b} \|^2 Δ=[2(a⋅b)]2−4∥a∥2∥b∥2=4(a⋅b)2−4∥a∥2∥b∥2
得出不等式:
由于 f(t)≥0f(t) \geq 0f(t)≥0 对于所有的 ttt 都成立,因此判别式 Δ≤0\Delta \leq 0Δ≤0。将判别式的表达式代入,我们得到:
4(a⃗⋅b⃗)2−4∥a⃗∥2∥b⃗∥2≤0 4 (\vec{a} \cdot \vec{b})^2 - 4 \| \vec{a} \|^2 \| \vec{b} \|^2 \leq 0 4(a⋅b)2−4∥a∥2∥b∥2≤0
除以4并整理,我们得到柯西-施瓦茨不等式:
(a⃗⋅b⃗)2≤∥a⃗∥2∥b⃗∥2 (\vec{a} \cdot \vec{b})^2 \leq \| \vec{a} \|^2 \| \vec{b} \|^2 (a⋅b)2≤∥a∥2∥b∥2
取平方根,我们得到最终的不等式形式:
∣a⃗⋅b⃗∣≤∥a⃗∥∥b⃗∥ | \vec{a} \cdot \vec{b} | \leq \| \vec{a} \| \| \vec{b} \| ∣a⋅b∣≤∥a∥∥b∥