机器学习数学基础之向量:内积与正交性
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