机器学习数学基础之向量:内积与正交性

5.1 内积

内积是两个向量之间的乘积,其结果是一个标量。在机器学习中,内积用于计算两个向量的相似性。对于向量 a 和 b,内积定义为:

a · b = |a| |b| cos(θ)

其中 |a| 和 |b| 是向量的模,θ 是它们之间的夹角。

示例代码:计算内积

以下示例计算两个向量的内积,并进行可视化。

python

import numpy as np
import matplotlib.pyplot as plt

# 创建两个向量
a = np.array([1, 2])
b = np.array([3, 1])

# 计算内积
inner_product = np.dot(a, b)

# 绘制向量
plt.figure(figsize=(6, 6))
plt.quiver(0, 0, a[0], a[1], angles='xy', scale_units='xy', scale=1, color='r', label='向量 a = (1, 2)')
plt.quiver(0, 0, b[0], b[1], angles='xy', scale_units='xy', scale=1, color='g', label='向量 b = (3, 1)')

# 添加辅助线
plt.plot([0, a[0]], [0, a[1]], 'r--', alpha=0.5)  # a 辅助线
plt.plot([0, b[0]], [0, b[1]], 'g--', alpha=0.5)  # b 辅助线

# 标注内积结果
plt.text(1.5, 0.5, f'内积 a · b = {inner_product}', fontsize=12)

plt.xlim(-1, 4)
plt.ylim(-1, 3)
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.grid(True)
plt.title('内积计算示例')
plt.legend()
plt.show()

图片

5.2 正交性

如果两个向量的内积为零,则称它们是正交的。在几何上,这意味着这两个向量垂直。

示例代码:验证正交性

以下示例中,我们验证两个向量是否正交,并进行可视化。

python

import numpy as np
import matplotlib.pyplot as plt

# 创建两个正交向量
a = np.array([1, 0])
b = np.array([0, 1])

# 计算内积
inner_product = np.dot(a, b)

# 绘制向量
plt.figure(figsize=(6, 6))
plt.quiver(0, 0, a[0], a[1], angles='xy', scale_units='xy', scale=1, color='r', label='向量 a = (1, 0)')
plt.quiver(0, 0, b[0], b[1], angles='xy', scale_units='xy', scale=1, color='g', label='向量 b = (0, 1)')

# 添加辅助线
plt.plot([0, a[0]], [0, a[1]], 'r--', alpha=0.5)  # a 辅助线
plt.plot([0, b[0]], [0, b[1]], 'g--', alpha=0.5)  # b 辅助线

# 标注内积结果
plt.text(0.5, 0.5, f'内积 a · b = {inner_product}', fontsize=12)

plt.xlim(-1, 2)
plt.ylim(-1, 2)
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.grid(True)
plt.title('正交性示例')
plt.legend()
plt.show()

图片

THE END