机器学习算法和函数整理——助力快速查阅

损失函数

  1. 0-1 损失函数

    公式:L(Y,f(x))={1,Y≠f(x)0,Y=f(x)L(Y, f(x)) = \begin{cases} 1, & Y \neq f(x) \\ 0, & Y = f(x) \end{cases}L(Y,f(x))={1,0,Y=f(x)Y=f(x)

    这是最直观的分类损失函数,仅关注预测结果是否正确。如果预测类别与真实类别一致,损失为0;否则为1。虽然它直接对应分类准确率,但由于它是非连续、非凸且不可导的离散函数,无法直接使用梯度下降法进行优化,因此在实际训练深层模型时,通常使用对数损失或Hinge损失等作为其代理函数。

  2. 绝对损失函数

    公式:L(Y,f(x))=∣Y−f(x)∣L(Y, f(x)) = |Y - f(x)|L(Y,f(x))=∣Y−f(x)∣

    计算预测值与真实值之间差值的绝对值。与平方损失相比,绝对值损失不会对较大的误差进行平方放大,因此对数据中的异常值具有更好的鲁棒性。它的梯度是恒定的(除了零点不可导),这意味着无论误差大小,参数更新的步长相对稳定,适合处理含有噪声的数据集。

  3. 平方损失函数

    公式:L(Y,f(x))=(Y−f(x))2L(Y, f(x)) = (Y - f(x))^2L(Y,f(x))=(Y−f(x))2

    通过计算误差的平方来衡量差异。平方操作使得较大的误差会被显著放大,这促使模型在训练过程中优先修正那些偏离严重的样本。该函数是连续可导的凸函数,拥有全局最优解,数学性质非常优良。但在数据包含大量异常值时,模型容易受到干扰而产生过拟合。

  4. 指数损失函数

    公式:L(Y,f(x))=e−Yf(x)L(Y, f(x)) = e^{-Y f(x)}L(Y,f(x))=e−Yf(x)

    主要用于集成学习中的 Boosting 算法(如 AdaBoost)。当预测值与真实标签符号相反(即分类错误)时,指数项会迅速增大,导致损失急剧上升。这种特性使得算法在迭代过程中会赋予被错分的样本更高的权重,迫使后续的弱分类器更加关注这些"难分"样本,从而不断提升整体模型的准确率。

  5. Hinge 损失函数

    公式:L(Y,f(x))=max⁡(0,1−Yf(x))L(Y, f(x)) = \max(0, 1 - Y f(x))L(Y,f(x))=max(0,1−Yf(x))

    不仅要求样本被正确分类,还要求分类的置信度足够大。当样本被正确分类且距离决策边界足够远时,损失为0;否则产生线性惩罚。这种机制使得支持向量机能够最大化分类间隔,从而获得更好的泛化能力。只有靠近边界的样本(支持向量)才会对损失产生贡献。

  6. 对数损失函数

    公式:L(Y,P(Y∣X))=−log⁡P(Y∣X)L(Y, P(Y|X)) = -\log P(Y|X)L(Y,P(Y∣X))=−logP(Y∣X)

    基于极大似然估计推导而来,用于衡量预测概率分布与真实分布的差异。它要求模型输出的不仅仅是类别,而是属于该类别的概率。当预测概率接近真实标签时,损失趋近于0;反之,如果预测概率与真实标签背道而驰,损失将趋向于无穷大,从而对错误的预测施加严厉惩罚。

  7. 交叉熵损失

    公式:C=−1n∑ylog⁡(y\^)+(1−y)log⁡(1−y\^)C = -\frac{1}{n} \sum y \\log(\\hat{y}) + (1-y) \\log(1-\\hat{y})C=−n1∑ylog(y\^)+(1−y)log(1−y\^)

    这是信息论中衡量两个概率分布差异的指标,在二分类问题中应用极广。其中 yyy 是真实标签(0或1),y^\hat{y}y^ 是模型预测为正类的概率。交叉熵损失本质上与对数损失一致,它能够很好地配合 Sigmoid 或 Softmax 激活函数,在梯度下降时避免出现梯度消失的问题,加速模型收敛。

  8. L1 损失

    公式:loss(x,y)=1n∑i=1n∣yi−f(xi)∣\text{loss}(x, y) = \frac{1}{n} \sum_{i=1}^{n} |y_i - f(x_i)|loss(x,y)=n1∑i=1n∣yi−f(xi)∣

    即所有样本绝对误差的平均值,也就是平均绝对误差。它反映了预测值与真实值之间误差的实际情况。由于没有平方项,L1 损失对异常值不敏感,具有稀疏性解的特性(常配合正则化使用)。但在 y=f(x)y=f(x)y=f(x) 处导数不连续,优化时可能需要使用次梯度方法。

  9. L2 损失

    公式:loss(x,y)=1n∑i=1n(yi−f(xi))2\text{loss}(x, y) = \frac{1}{n} \sum_{i=1}^{n} (y_i - f(x_i))^2loss(x,y)=n1∑i=1n(yi−f(xi))2

    即所有样本平方误差的平均值,也就是均方误差的一种形式。L2 损失函数处处可导且光滑,便于使用梯度下降等优化算法求解。它假设误差服从高斯分布,但在面对非高斯分布或含有离群点的数据时,由于平方项放大了大误差的影响,模型的稳定性不如 L1 损失。

  10. 均方误差

    公式:J(w,b)=12m∑i=1m(ai−yi)2J(w, b) = \frac{1}{2m} \sum_{i=1}^{m} (a_i - y_i)^2J(w,b)=2m1∑i=1m(ai−yi)2

    这是线性回归中常用的目标函数形式。其中 aia_iai 为预测值,yiy_iyi 为真实值,mmm 为样本总数。公式前的系数 12\frac{1}{2}21 是为了在求导时,利用幂函数的求导法则抵消平方项产生的系数 2,从而简化梯度的表达式,使参数更新公式更加整洁,不影响优化的最终结果。

求解算法

  1. 梯度下降法

    公式:∇L(w,b)=(∂L∂w,∂L∂b)\nabla L(w, b) = (\frac{\partial L}{\partial w}, \frac{\partial L}{\partial b})∇L(w,b)=(∂w∂L,∂b∂L)

    这是最基础的迭代优化算法。形象地说,就像一个人被困在山上(损失函数的高点),为了最快下山(找到最小值),他每一步都沿着当前位置最陡峭的方向(负梯度方向)走。根据每次更新使用的样本量不同,可分为批量梯度下降、随机梯度下降和小批量梯度下降。

  2. 牛顿法

    公式(Hessian 矩阵):H(f)=∇2f(x)=∂2f∂x12⋯∂2f∂x1∂xn⋮⋱⋮∂2f∂xn∂x1⋯∂2f∂xn2H(f) = \nabla^2 f(x) = \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \cdots & \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_n \partial x_1} & \cdots & \frac{\partial^2 f}{\partial x_n^2} \end{bmatrix}H(f)=∇2f(x)= ∂x12∂2f⋮∂xn∂x1∂2f⋯⋱⋯∂x1∂xn∂2f⋮∂xn2∂2f

    牛顿法不仅利用了梯度(一阶导数,切线斜率),还利用了 Hessian 矩阵(二阶导数,曲率信息)。它通过二阶泰勒展开来拟合目标函数,相当于用曲面去逼近函数。因此,牛顿法通常比梯度下降收敛速度更快(二次收敛),但计算 Hessian 矩阵及其逆矩阵的开销非常大。

  3. 阻尼牛顿法

    这是对经典牛顿法的改进。经典牛顿法在步长选择不当时可能导致函数值不降反升。阻尼牛顿法在牛顿方向确定后,引入了一维搜索来确定最佳步长,或者加入一个阻尼因子,确保每次迭代都能使目标函数值下降,从而提高了算法的全局收敛性和稳定性。

  4. 拟牛顿法

    为了解决牛顿法计算 Hessian 矩阵及其逆矩阵成本过高的问题,拟牛顿法(如 BFGS、L-BFGS)通过构造一个正定矩阵来近似 Hessian 矩阵的逆。它只需要利用一阶导数信息,就能达到接近牛顿法的收敛速度,同时大大降低了计算复杂度,是实际应用中非常高效的优化算法。

线性回归

  1. 普通线性回归

    公式(R-squared):Score=1−∑(yi−y^i)2∑(yi−yˉ)2Score = 1 - \frac{\sum (y_i - \hat{y}_i)^2}{\sum (y_i - \bar{y})^2}Score=1−∑(yi−yˉ)2∑(yi−y^i)2

    R2R^2R2 决定了系数,用于评估回归模型的拟合优度。分子是残差平方和(模型未能解释的变异),分母是总离差平方和(数据本身的总变异)。R2R^2R2 越接近 1,说明模型解释了数据中大部分的波动,拟合效果越好;越接近 0,说明模型拟合效果越差。

  2. Lasso 回归

    公式(正则项):α∥w∥1,α≥0\alpha \|w\|_1, \alpha \ge 0α∥w∥1,α≥0

    Lasso 在普通线性回归的损失函数中加入了权重向量的 L1 范数作为惩罚项。L1 正则化的特性是倾向于产生稀疏解,即它可以将许多不重要的特征对应的权重压缩为严格的 0。因此,Lasso 回归不仅可以防止过拟合,还能进行特征选择,自动筛选出对预测最有用的特征。

  3. 岭回归

    公式(正则项):α∥w∥22,α≥0\alpha \|w\|_2^2, \alpha \ge 0α∥w∥22,α≥0

    岭回归在损失函数中加入了权重向量的 L2 范数平方作为惩罚项。它通过限制权重的大小,防止模型参数过大导致的过拟合。与 Lasso 不同,岭回归会将权重压缩得很小但不会为 0,因此它保留了所有特征,适合处理特征之间存在多重共线性的问题,能提高模型的稳定性。

  4. 弹性网络回归

    公式(正则项):αρ∥w∥1+α(1−ρ)2∥w∥22,α≥0,1≥ρ≥0\alpha \rho \|w\|_1 + \frac{\alpha(1-\rho)}{2} \|w\|_2^2, \alpha \ge 0, 1 \ge \rho \ge 0αρ∥w∥1+2α(1−ρ)∥w∥22,α≥0,1≥ρ≥0

    弹性网络结合了 Lasso 和岭回归的优点。它同时包含 L1 和 L2 正则项,通过超参数 ρ\rhoρ 来调节两者的比例。当特征数量远大于样本数量,或者特征之间存在强相关性时,弹性网络通常比单独使用 Lasso 或岭回归表现更好,既能进行特征选择,又能保持模型的稳定性。

聚类分析

一种无监督学习方法,目标是将数据划分为若干个簇。其核心思想是使得同一簇内的样本相似度高,而不同簇之间的样本相似度低。常见的聚类算法包括 K-Means、层次聚类等,常用于市场细分、社交网络分析等。

  1. 欧氏距离

    公式:d=∑k=1n(x1k−x2k)2=(α⃗−β⃗)(α⃗−β⃗)Td = \sqrt{\sum_{k=1}^{n} (x_{1k} - x_{2k})^2} = \sqrt{(\vec{\alpha} - \vec{\beta})(\vec{\alpha} - \vec{\beta})^T}d=∑k=1n(x1k−x2k)2 =(α −β )(α −β )T

    最常见的距离度量,即空间中两点间的直线距离。它计算的是各维度数值差的平方和的平方根,符合人们对几何距离的直观认知。

  2. 标准化欧氏距离

    公式(标准化):X∗=X−μSX^* = \frac{X - \mu}{S}X∗=SX−μ d=∑k=1n(x1k−x2kSk)2d = \sqrt{\sum_{k=1}^{n} ({\frac{x_{1k} - x_{2k}}{S_k}})^2}d=∑k=1n(Skx1k−x2k)2

    针对普通欧氏距离受量纲影响的缺点,先将数据标准化(减去均值除以标准差)再计算距离。这种方法消除了不同维度量纲和方差的影响,使得各个特征在距离计算中具有平等的地位。

  3. 曼哈顿距离

    公式:d=∑k=1n∣x1k−x2k∣d = \sum_{k=1}^{n} |x_{1k} - x_{2k}|d=∑k=1n∣x1k−x2k∣

    也称为城市街区距离。它计算的是在标准坐标系上,两点在各个维度上绝对轴距的总和。想象你在棋盘式的城市街道中从一个路口走到另一个路口,只能沿街道直角转弯行走,所经过的最短路径长度就是曼哈顿距离。

  4. 切比雪夫距离

    公式:d=max⁡i(∣x1i−x2i∣)=lim⁡k→∞(∑i=1n∣x1i−x2i∣k)1kd = \max_{i} (|x_{1i} - x_{2i}|) = \lim_{k \to \infty} (\sum_{i=1}^{n} |x_{1i} - x_{2i}|^k)^{\frac{1}{k}}d=maxi(∣x1i−x2i∣)=limk→∞(∑i=1n∣x1i−x2i∣k)k1

    各坐标数值差的最大值。在国际象棋中,国王从一个格子走到另一个格子所需的最少步数就是切比雪夫距离,因为国王可以向周围8个方向移动。它关注的是维度间差异最大的那个分量。

  5. 闵可夫斯基距离

    公式:d=∑k=1n(x1k−x2k)ppd = \sqrtp{\sum_{k=1}^{n} (x_{1k} - x_{2k})^p}d=p∑k=1n(x1k−x2k)p

    这是一组距离的通用定义,不是指某一个特定的距离。通过调整参数 ppp 的值,它可以演变成不同的距离度量:当 p=1p=1p=1 时为曼哈顿距离;当 p=2p=2p=2 时为欧氏距离;当 p=3p=3p=3 时,则为切比雪夫距离。

  6. 余弦距离

    公式:cos⁡θ=A⃗⋅B⃗∥A⃗∥∥B⃗∥=∑k=1nx1kx2k∑k=1nx1k2∑k=1nx2k2\cos\theta = \frac{\vec{A} \cdot \vec{B}}{\|\vec{A}\| \|\vec{B}\|} = \frac{\sum_{k=1}^{n} x_{1k} x_{2k}}{\sqrt{\sum_{k=1}^{n} x_{1k}^2} \sqrt{\sum_{k=1}^{n} x_{2k}^2}}cosθ=∥A ∥∥B ∥A ⋅B =∑k=1nx1k2 ∑k=1nx2k2 ∑k=1nx1kx2k

    通过计算两个向量夹角的余弦值来衡量相似度。余弦值越接近 1,夹角越小,相似度越高。与欧氏距离关注数值大小的差异不同,余弦距离更关注向量在方向上的差异,常用于文本分类、信息检索中衡量文档的相似性。

  7. 马氏距离

    公式:D(x)=(x−μ)TS−1(x−μ)D(x) = \sqrt{(x-\mu)^T S^{-1} (x-\mu)}D(x)=(x−μ)TS−1(x−μ) D(xi⃗,xj⃗)=(xi⃗−xj⃗)TS−1(xi⃗−xj⃗)D(\vec{x_i}, \vec{x_j}) = \sqrt{(\vec{x_i} - \vec{x_j})^T S^{-1} (\vec{x_i} - \vec{x_j})}D(xi ,xj )=(xi −xj )TS−1(xi −xj )

    一种考虑了数据分布特性的距离度量。其中 SSS 是协方差矩阵。马氏距离排除了变量之间相关性的干扰,并且不受量纲(单位)的影响。它表示一个点与一个分布中心的距离,常用于异常点检测和分类任务。

  8. 海明距离

    公式:dH(x,y)=∑i=1nxi≠yid_H(x, y) = \sum_{i=1}^{n} x_i \\neq y_idH(x,y)=∑i=1nxi=yi

    主要用于衡量两个等长字符串(通常是二进制串)之间的差异。它定义为将一个字符串变换成另一个字符串所需要替换的字符个数。例如,1011101 和 1001001 的海明距离是 2。在编码理论和信息论中应用广泛。

  9. 杰卡德距离

    公式(杰卡德相似系数):J(A,B)=∣A∩B∣∣A∪B∣J(A, B) = \frac{|A \cap B|}{|A \cup B|}J(A,B)=∣A∪B∣∣A∩B∣

    公式(杰卡德距离):J′(A,B)=1−J(A,B)=∣A∪B∣−∣A∩B∣∣A∪B∣J'(A, B) = 1 - J(A, B) = \frac{|A \cup B| - |A \cap B|}{|A \cup B|}J′(A,B)=1−J(A,B)=∣A∪B∣∣A∪B∣−∣A∩B∣

    基于杰卡德相似系数。相似系数是两个集合交集大小与并集大小的比值。杰卡德距离则用 1 减去相似系数,用来衡量两个集合的不相似度。它非常适合处理符号度量或布尔值度量的数据,如计算两个用户购买商品的集合差异。

  10. 相关距离

    公式(相关系数):ρXY=Cov(X,Y)D(X)D(Y)=E{X−E(X)Y−E(Y)}D(X)D(Y)\rho_{XY} = \frac{Cov(X, Y)}{\sqrt{D(X)}\sqrt{D(Y)}} = \frac{E\{X-E(X)Y-E(Y)\}}{\sqrt{D(X)}\sqrt{D(Y)}}ρXY=D(X) D(Y) Cov(X,Y)=D(X) D(Y) E{X−E(X)Y−E(Y)}

    公式(相关距离):DXY=1−ρXYD_{XY} = 1 - \rho_{XY}DXY=1−ρXY

    基于皮尔逊相关系数。相关系数衡量的是两个变量之间的线性相关程度,取值在 -1, 1 之间。相关距离通过 1−ρ1 - \rho1−ρ 将相关性转化为距离度量。如果两个变量完全正相关,距离为 0;如果完全不相关或负相关,距离则较大。

  11. 信息熵

    公式:Entropy(X)=−∑i=1npilog⁡piEntropy(X) = -\sum_{i=1}^{n} p_i \log p_iEntropy(X)=−∑i=1npilogpi

    信息熵是衡量系统不确定性或混乱程度的指标。熵越大,系统的不确定性越高,包含的信息量越大;熵越小,系统越有序。在决策树算法中,通过计算信息增益(熵的减少量)来选择最优的特征进行分裂。

卷积神经网络卷积后尺寸计算

公式:Output=Input−Kernel+2×PaddingStride+1Output = \frac{Input - Kernel + 2 \times Padding}{Stride} + 1Output=StrideInput−Kernel+2×Padding+1

是计算卷积层输出特征图尺寸的通用公式。其中 Input 为输入图像的尺寸,Kernel 为卷积核的尺寸,Padding 为在输入边缘填充的像素层数,Stride 为卷积核滑动的步长。该公式确保了在网络设计时,能够精确控制每一层输出数据的维度。

相关推荐
hangyuekejiGEO5 小时前
GEO技术服务选型指南
大数据·人工智能·python
普通攻击往后拉6 小时前
Leetcode 206. 反转链表
算法·leetcode·链表
阿里云大数据AI技术6 小时前
EMR Serverless Spark AI Function 的双维降本实践
人工智能·sql·spark
维基框架6 小时前
GitHub源码处理提速 一趟扫描反而更慢
人工智能·github
冬奇Lab6 小时前
代码库知识库系列(05):向量检索 vs 知识图谱——加了调用图并没有变更好
人工智能
AKAMAI6 小时前
你的源服务器可能是你做出的最昂贵决定
运维·人工智能·云计算
@syh.6 小时前
【贪心】矩阵消除游戏
算法·游戏·矩阵
冬奇Lab6 小时前
【无标题】
人工智能·开源
专业贴准7 小时前
苏州SMT供料器设备选型分析:本地主流自动化企业技术特点与行业趋势
人工智能·自动化·制造
可编程芯片开发7 小时前
基于零极点配置的PID控制系统simulink建模与仿真
算法