棕色网站设计不同类型网站

当前位置: 首页 > news >正文

棕色网站设计,不同类型网站,网站建设相关资料文件,网络设计原则是什么前言 本文隶属于专栏《机器学习数学通关指南》#xff0c;该专栏为笔者原创#xff0c;引用请注明来源#xff0c;不足和错误之处请在评论区帮忙指出#xff0c;谢谢#xff01; 本专栏目录结构和参考文献请见《机器学习数学通关指南》 正文 #x1f50d; 1. 内积空间的…前言 本文隶属于专栏《机器学习数学通关指南》该专栏为笔者原创引用请注明来源不足和错误之处请在评论区帮忙指出谢谢 本专栏目录结构和参考文献请见《机器学习数学通关指南》 正文 1. 内积空间的数学定义 1.1 代数定义 ✏️ 两个维度相同的向量 a [ a 1 , … , a n ] \mathbf{a} [a_1, \dots, a_n] a[a1​,…,an​] 和 b [ b 1 , … , b n ] \mathbf{b} [b_1, \dots, bn] b[b1​,…,bn​]其内积为 a ⋅ b ∑ i 1 n a i b i \mathbf{a} \cdot \mathbf{b} \sum{i1}^n a_i b_i a⋅b∑i1n​ai​bi​ 内积结果为标量是后续投影和正交性的计算基础。在Python中可以这样实现 import numpy as npa np.array([1, 2, 3]) b np.array([4, 5, 6]) dot_product np.dot(a, b) # 或简写为 a.dot(b) 或 a b print(f内积结果: {dot_product}) # 输出: 内积结果: 321.2 几何定义
从几何角度向量 a \mathbf{a} a 与向量 b \mathbf{b} b 的内积为 a ⋅ b ∥ a ∥ ∥ b ∥ cos ⁡ θ \mathbf{a} \cdot \mathbf{b} |\mathbf{a}| |\mathbf{b}| \cos\theta a⋅b∥a∥∥b∥cosθ 其中 θ \theta θ 是两个向量的夹角。这一性质直接关联到正交投影的计算并表明 当 θ 90 ° \theta 90° θ90° 时内积为0正交向量当 θ 0 ° \theta 0° θ0° 时内积最大同向向量当 θ 180 ° \theta 180° θ180° 时内积为负反向向量 2. 正交投影的核心思想 2.1 投影的物理意义
向量 a \mathbf{a} a 在向量 b \mathbf{b} b 上的正交投影反映了前者在后者方向上的影子长度即分解到该方向的分量 投影长度 ∥ a ∥ cos ⁡ θ a ⋅ b ∥ b ∥ \text{投影长度} |\mathbf{a}| \cos\theta \frac{\mathbf{a} \cdot \mathbf{b}}{|\mathbf{b}|} 投影长度∥a∥cosθ∥b∥a⋅b​ 投影向量则为 投影向量 a ⋅ b ∥ b ∥ 2 b \text{投影向量} \frac{\mathbf{a} \cdot \mathbf{b}}{|\mathbf{b}|^2} \mathbf{b} 投影向量∥b∥2a⋅b​b 2.2 正交基与坐标表示
在标准正交基下如二维空间的基向量 e 1 , e 2 \mathbf{e}_1, \mathbf{e}_2 e1​,e2​向量 v [ v 1 , v 2 ] T \mathbf{v} [v_1, v_2]^T v[v1​,v2​]T 的坐标值实际上是其在基向量上的投影 v 1 v ⋅ e 1 , v 2 v ⋅ e 2 v_1 \mathbf{v} \cdot \mathbf{e}_1, \quad v_2 \mathbf{v} \cdot \mathbf{e}_2 v1​v⋅e1​,v2​v⋅e2​ 这揭示了一个重要概念内积空间的坐标系本质上建立在投影关系上。 3. 正交基的构造方法Gram-Schmidt过程 3.1 算法步骤
Gram-Schmidt正交化是将一组线性无关向量转换为正交基甚至标准正交基的经典方法 从第一个向量开始标准化得到第一个正交基向量计算下一个向量在已有正交基上的投影从原向量中减去这些投影分量得到正交分量标准化正交分量得到新的正交基向量重复步骤2-4直到处理完所有向量 3.2 二维空间实例实现
如何将非正交基 { a 1 , a 2 } {\mathbf{a}_1, \mathbf{a}_2} {a1​,a2​} 转化为正交基 { q 1 , q 2 } {\mathbf{q}_1, \mathbf{q}_2} {q1​,q2​} 赋值 q 1 a 1 ∥ a 1 ∥ \mathbf{q}_1 \frac{\mathbf{a}_1}{|\mathbf{a}_1|} q1​∥a1​∥a1​​计算 a 2 \mathbf{a}_2 a2​ 到 q 1 \mathbf{q}_1 q1​ 的投影分量 投影向量 ( a 2 ⋅ q 1 ) q 1 \text{投影向量} (\mathbf{a}_2 \cdot \mathbf{q}_1) \mathbf{q}_1 投影向量(a2​⋅q1​)q1​去除投影分量后的正交向量 v 2 a 2 − ( a 2 ⋅ q 1 ) q 1 \mathbf{v}_2 \mathbf{a}_2 - (\mathbf{a}_2 \cdot \mathbf{q}_1) \mathbf{q}_1 v2​a2​−(a2​⋅q1​)q1​标准化得 q 2 v 2 ∥ v 2 ∥ \mathbf{q}_2 \frac{\mathbf{v}_2}{|\mathbf{v}_2|} q2​∥v2​∥v2​​ 生成的 { q 1 , q 2 } {\mathbf{q}_1, \mathbf{q}_2} {q1​,q2​} 是标准正交基。 Python实现
def gram_schmidt(vectors):将一组线性无关向量正交化basis []for v in vectors:w v.copy() # 从原始向量开始for b in basis:# 减去在已有基向量上的投影w w - np.dot(w, b) / np.dot(b, b) * b# 如果剩余向量不为零则标准化并添加到基向量集if np.linalg.norm(w) 1e-10:basis.append(w / np.linalg.norm(w))return np.array(basis)# 示例 vectors np.array([[1, 1], [1, 0]]) orthonormal_basis gram_schmidt(vectors) print(正交基:\n, orthonormal_basis)# 验证正交性 dot_product np.dot(orthonormal_basis[0], orthonormal_basis) print(f内积结果应接近0: {dotproduct:.10f})4. 正交投影与矩阵表示 4.1 矩阵向量乘法的几何解释
在标准正交基下向量 v \mathbf{v} v 的坐标可表示为 v 投影 [ v ⋅ e 1 v ⋅ e 2 ] \mathbf{v}
{\text{投影}} \begin{bmatrix} \mathbf{v} \cdot \mathbf{e}_1 \ \mathbf{v} \cdot \mathbf{e}_2 \end{bmatrix} v投影​[v⋅e1​v⋅e2​​] 它等价于基向量组成的变换矩阵 Q [ e 1 e 2 ] \mathbf{Q} [\mathbf{e}_1 \quad \mathbf{e}2] Q[e1​e2​] 的转置与向量的乘积 v 投影 Q T v \mathbf{v}{\text{投影}} \mathbf{Q}^T \mathbf{v} v投影​QTv 4.2 投影矩阵
向量 v \mathbf{v} v 投影到子空间 W W W 上的投影矩阵为 P W Q ( Q T Q ) − 1 Q T \mathbf{P}_W \mathbf{Q}(\mathbf{Q}^T\mathbf{Q})^{-1}\mathbf{Q}^T PW​Q(QTQ)−1QT 当 Q \mathbf{Q} Q 是标准正交基时简化为 P W Q Q T \mathbf{P}_W \mathbf{Q}\mathbf{Q}^T PW​QQT 5. 机器学习中的应用实例 5.1 主成分分析 (PCA)
PCA是最常见的降维技术其核心就是寻找数据最大方差方向的正交基并在该基上投影 import numpy as np import matplotlib.pyplot as plt from sklearn.decomposition import PCA# 生成有相关性的二维数据 np.random.seed(42) cov [[2, 1.5], [1.5, 1]] data np.random.multivariate_normal([0, 0], cov, 500)# 应用PCA pca PCA(ncomponents2) pca.fit(data) transformed pca.transform(data)# 可视化 plt.figure(figsize(12, 5))# 原始数据 plt.subplot(1, 2, 1) plt.scatter(data[:, 0], data[:, 1], alpha0.5) plt.title(原始数据) plt.grid(True)# PCA转换后的数据 plt.subplot(1, 2, 2) plt.scatter(transformed[:, 0], transformed[:, 1], alpha0.5) for i, (comp, var) in enumerate(zip(pca.components, pca.explainedvariance)):plt.quiver(0, 0, comp[0], comp, scalevar*3, colorr,labelfPC{i1}: {var:.2f}) plt.title(PCA转换后数据) plt.grid(True) plt.legend()plt.tight_layout() plt.show()print(f主成分方差比例: {pca.explained_varianceratio}) print(f主成分方向: {pca.components_})5.2 QR分解与矩阵求解
QR分解是Gram-Schmidt正交化的矩阵形式广泛用于线性方程组求解和最小二乘法问题 import numpy as np# 用于求解线性方程组 Ax b A np.array([[2, 1], [1, 3]]) b np.array([5, 4])# QR分解 Q, R np.linalg.qr(A)# 求解方程 Rx Q^T b y Q.T b x np.linalg.solve(R, y)print(QR分解求解的解: , x) print(直接求解的解: , np.linalg.solve(A, b)) print(误差: , np.linalg.norm(A x - b))5.3 核方法与支持向量机
在支持向量机(SVM)中核函数实质上定义了特征空间中的内积使我们能在高维空间中执行计算而无需显式映射 from sklearn import svm from sklearn.datasets import make_circles from sklearn.model_selection import train_test_split import numpy as np import matplotlib.pyplot as plt# 生成非线性可分数据 X, y make_circles(n_samples500, noise0.1, factor0.3, random_state42)# 分割数据集 X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 训练RBF核SVM本质是在高维空间中寻找正交超平面 clf svm.SVC(kernelrbf, gamma10) clf.fit(X_train, y_train)# 预测与评估 accuracy clf.score(X_test, y_test)# 绘制决策边界 h 0.02 x_min, x_max X[:, 0].min() - 0.1, X[:, 0].max() 0.1 y_min, y_max X[:, 1].min() - 0.1, X[:, 1].max() 0.1 xx, yy np.meshgrid(np.arange(x_min, x_max, h),np.arange(y_min, ymax, h)) Z clf.predict(np.c[xx.ravel(), yy.ravel()]) Z Z.reshape(xx.shape)plt.figure(figsize(8, 6)) plt.contourf(xx, yy, Z, alpha0.3, cmapplt.cm.Paired) plt.scatter(X[:, 0], X[:, 1], cy, edgecolorsk, cmapplt.cm.Paired) plt.scatter(clf.supportvectors[:, 0], clf.supportvectors[:, 1],s80, facecolorsnone, edgecolorsk) plt.title(fRBF核SVM (准确率: {accuracy:.2f})) plt.xlabel(特征1) plt.ylabel(特征2) plt.tight_layout() plt.show()5.4 正交化在神经网络中的应用
正交初始化和正交约束可以提高神经网络的训练稳定性和泛化能力 import torch import torch.nn as nn import numpy as npclass OrthogonalRegularization(nn.Module):实现权重正交化的正则项def init(self):super(OrthogonalRegularization, self).init()def forward(self, model, strength1e-4):reg_loss 0.0for name, param in model.named_parameters():if weight in name:if param.ndimension() 1:# 计算 WW^T - I 的范数鼓励权重矩阵正交mat param.view(param.shape[0], -1)sym torch.mm(mat, mat.t())sym - torch.eye(sym.shape[0]).to(param.device)reg_loss torch.sum(sym * sym)return strength * reg_loss# 在训练循环中使用: optimizer.zero_grad() outputs model(inputs) loss criterion(outputs, labels) ortho_reg(model) loss.backward() optimizer.step()6. 正交投影和内积空间的进阶应用 6.1 最小二乘法与线性回归
最小二乘法是机器学习中最基础的模型之一其解可以通过正交投影来理解 β ^ ( X T X ) − 1 X T y \hat{\beta} (X^TX)^{-1}X^Ty β^​(XTX)−1XTy 这个公式本质上是将目标向量 y y y 投影到 X X X 的列空间上 import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression# 生成带噪声的线性数据 np.random.seed(42) X 2 * np.random.rand(100, 1) y 3 * X.squeeze() 2 np.random.randn(100) * 0.5# 正交投影方法手动实现最小二乘 Xb np.c[np.ones((100, 1)), X] # 添加偏置项 theta_best np.linalg.inv(X_b.T X_b) X_b.T y print(f手动计算的系数: {thetabest})# 使用sklearn实现 reg LinearRegression() reg.fit(X, y) print(fsklearn系数: [{reg.intercept}, {reg.coef_[0]}])# 绘制结果 plt.figure(figsize(10, 6)) plt.scatter(X, y, alpha0.7) X_test np.array([[0], ]) X_testb np.c[np.ones((2, 1)), X_test] y_pred X_test_b theta_best plt.plot(X_test, y_pred, r-, linewidth2, label预测线) plt.xlabel(X) plt.ylabel(y) plt.title(通过正交投影实现的最小二乘法) plt.grid(True) plt.legend() plt.show()6.2 特征值分解与谱理论
正交性在特征值分解中表现为正交特征向量这是许多算法的理论基础 import numpy as np import matplotlib.pyplot as plt# 创建一个对称矩阵 A np.array([[4, 2], [2, 3]])# 特征值分解 eigenvalues, eigenvectors np.linalg.eig(A) print(特征值:, eigenvalues) print(特征向量:\n, eigenvectors)# 验证正交性 dot_product np.dot(eigenvectors[:, 0], eigenvectors[:, 1]) print(f特征向量内积应接近0: {dot_product:.10f})# 验证 Av λv for i in range(len(eigenvalues)):v eigenvectors[:, i]lhs A vrhs eigenvalues[i] * vprint(f特征向量{i1}的验证误差: {np.linalg.norm(lhs - rhs):.10f})# 可视化 plt.figure(figsize(7, 7)) plt.axhline(y0, colork, linestyle-, alpha0.3) plt.axvline(x0, colork, linestyle-, alpha0.3) plt.grid(alpha0.3)# 绘制原始矩阵的作用 for i in range(-2, 3):for j in range(-2, 3):v np.array([i, j]) * 0.5Av A vplt.arrow(v[0], v, Av[0]-v[0], Av-v, head_width0.1, head_length0.2, fcb, ecb, alpha0.3)# 绘制特征向量 colors [red, green] for i in range(len(eigenvalues)):v eigenvectors[:, i] * eigenvalues[i]plt.arrow(0, 0, v[0], v, head_width0.2, head_length0.3, fccolors[i], eccolors[i], labelf特征向量{i1} (λ{eigenvalues[i]:.2f}))plt.xlim(-4, 4) plt.ylim(-4, 4) plt.title(特征向量与矩阵变换) plt.legend() plt.axis(equal) plt.show()7. 总结与思考 7.1 核心概念回顾
内积空间提供了计算向量长度、角度和投影的统一框架正交性是向量空间中最重要的几何关系之一表示两个方向完全独立正交投影允许我们将向量分解为互相独立的分量Gram-Schmidt过程构造了线性无关向量集的正交基投影矩阵以矩阵形式表达投影操作为线性代数提供几何解释 7.2 机器学习中的价值
内积空间和正交投影在机器学习中至关重要因为它们 简化计算正交基使得矩阵运算和问题分解更加高效增强解释性正交特征往往具有更好的解释性和独立含义避免过拟合特征正交化减少了冗余信息有助于泛化启发算法设计从PCA到深度学习中的正交初始化正交性启发了众多算法改进