机器学习第29周周报 Beyond Dropout

news2025/3/1 1:11:47

文章目录

  • week29 Beyond Dropout
  • 摘要
  • Abstract
  • 一、泛化理论
  • 二、文献阅读
    • 1. 题目
    • 2. abstract
    • 3. 网络架构
      • 3.1 特征图失真
      • 3.2 失真优化
    • 4. 文献解读
      • 4.1 Introduction
      • 4.2 创新点
      • 4.3 实验过程
        • 4.3.1 全连接层实验
        • 4.3.2 卷积网络上的实验
      • 4.4 结论
    • 小结
    • 参考文献

week29 Beyond Dropout

摘要

本文主要讨论Dropout方法及其改进。本文简要介绍了泛化理论。其次本文展示了题为Beyond Dropout: Feature Map Distortion to Regularize Deep Neural Networks的论文主要内容。该文研究了与深度神经网络中间层相关的经验Rademacher复杂度,在此基础上提出了一种特征失真的方法。实验表明,与传统的dropout方法相比,该方法能够更加有效的训练神经网络。

Abstract

This article mainly talks about the Dropout method and its improvements. This article briefly introduces the theory of generalization. Secondly, this paper presents the main content of the paper titled Beyond Dropout: Feature Map Distortion to Regularize Deep Neural Networks. This paper studies the empirical Rademacher complexity associated with the middle layer of deep neural networks and proposes a feature distortion method on this basis. Experiments show that compared with the traditional dropout method, the proposed method can train the neural network more effectively.

一、泛化理论

泛化理论关注预期风险与经验风险之间的关系。考虑 L − l a y e r L-layer Llayer 神经网络 f L ∈ F f^L ∈ F fLF,以及从真值分布 Q ∈ X × Y Q ∈ X × Y QX×Y 采样的标记数据集 D = { ( x i , y i ) } i = 1 N \mathcal D = \{(x_i, y_i)\}^N_{i=1} D={(xi,yi)}i=1N,其中$ x_i ∈ X, y_i ∈ Y$。权重矩阵为 K l ∈ R d l × d l − 1 K^l ∈\mathbb R^{d^l×d^{l−1}} KlRdl×dl1,其中 d l d^l dl 为第 l 层特征图的维度,第 l 层激活函数 φ φ φ 前后对应的输出特征为 o l ∈ R d l , f l ∈ R d l o^l ∈ \mathbb R^{d^l}, f^l\in \mathbb R^{d^l} olRdl,flRdl 。忽略偏差,有 f l + 1 ( x i ) = φ ( o l + 1 ( x i ) ) = φ ( K l + 1 f l ( x i ) ) f^{l+1}(x_i) = φ(o^{l+1}(x_i)) = φ(K^{l+1}f^l(x_i)) fl+1(xi)=φ(ol+1(xi))=φ(Kl+1fl(xi))。为了简单起见,进一步将使用 K : l K^{:l} K:l表示 { K 1 , ⋅ ⋅ ⋅ ⋅ , K l } \{K^1,····,K^l\} {K1⋅⋅⋅⋅Kl}

以图像分类任务为例,总体上的预期风险 R ( f L ) R(f^L) R(fL) 和训练集上的经验风险 R ^ ( f L ) \hat R(f^L) R^(fL)可表示为:
R ( f L ) = E ( x , y ) ∼ Q [ l ( f l ( x , K : L ) , y ) ] (1) R(f^L)=\mathbb E_{(x,y)\sim Q}[l(f^l(x,K^{:L}),y)] \tag{1} R(fL)=E(x,y)Q[l(fl(x,K:L),y)](1)

R ^ ( f L ) = 1 N ∑ ( x i , y i ) ∈ D l ( f L ( x i , K : L ) , y i ) (2) \hat R(f^L)=\frac1N\sum_{(x_i,y_i)\in \mathcal D}l(f^L(x_i,K^{:L}),y_i) \tag{2} R^(fL)=N1(xi,yi)Dl(fL(xi,K:L),yi)(2)

其中 l ( ⋅ ) l(·) l()​表示0-1损失。

ERC的正式定义如下: 对于给定的由分布Q生成的具有N个实例 D = { ( x i , y i ) } \mathcal D = \{(x_i, y_i)\} D={(xi,yi)}的训练数据集,网络函数类 f L f^L fL的经验Rademacher复杂度定义为:
∼ R D ( f L ) = 1 N E σ ∣ s u p k , K : L ∑ i = 1 N σ i f L ( x ) ∣ \sim R_D(f^L)=\frac1N\mathbb E_{\sigma}|sup_{k,K^{:L}}\sum_{i=1}^N\sigma_if^L(x)| RD(fL)=N1Eσsupk,K:Li=1NσifL(x)
其中 Rademacher 变量 σ = σ 1 , ⋅ ⋅ ⋅ , σ N σ = {σ_1, · · · , σ_N} σ=σ1,⋅⋅⋅,σN, σ i σ_i σi 是 {-1,+1} 中的独立均匀随机变量, f L ( x i , K : L ) [ k ] f^L(x_i, K^{:L})[k] fL(xi,K:L)[k] f L ( x i , K : L ) f^L(x_i,K^{:L}) fL(xiK:L)​ 中的第 k 个元素。

使用经验 Rademacher 复杂度和 MaDiarmid 不等式,预期风险 R(fL) 的上限可以通过定理 1 得出

定理1:给定固定的 ρ > 0 ρ > 0 ρ>0,对于任何 δ > 0 δ > 0 δ>0,对于所有 f L ∈ F f^L ∈ F fLF,概率至少为 1 − δ 1 - δ 1δ
R ( f L ) ≤ R ^ ( f L ) + 2 ( d L ) 2 ρ R ^ D ( f L ) + ( 1 + 2 ( d L ) 2 ρ ln ⁡ 1 θ 2 N ) (4) R(f^L)\leq\hat R(f^L)+\frac{2(d^L)^2}{\rho}\hat R_D(f^L)+(1+\frac{2(d^L)^2}{\rho}\sqrt{\frac{\ln\frac{1}{\theta}}{2N}})\tag{4} R(fL)R^(fL)+ρ2(dL)2R^D(fL)+(1+ρ2(dL)22Nlnθ1 )(4)
其中 d L d^L dL​ 表示网络的输出维度。

根据定理 1,预期风险和经验风险之间的差距可以借助特定神经网络和数据集上的经验 Rademacher 复杂度 R∼ D(f) 来限制。直接计算 ERC 是很困难的,因此 ERC 的上限或近似值通常在训练阶段使用,以获得具有更好泛化能力的模型。通过减少与 ERC 相关的正则化项,获得了具有更好泛化能力的模型。

二、文献阅读

1. 题目

题目:Beyond Dropout: Feature Map Distortion to Regularize Deep Neural Networks

作者:Yehui Tang, Yunhe Wang, Yixing Xu, Boxin Shi, Chao Xu, Chunjing Xu, Chang Xu

链接:https://arxiv.org/abs/2002.11022

发表:AAAI2020

2. abstract

基于 dropout 的方法在训练阶段禁用输出特征图中的某些元素,以减少神经元的共同适应。尽管这些方法可以增强所得模型的泛化能力,但传统的二元 dropout 并不是最佳解决方案。因此,该文研究了与深度神经网络中间层相关的经验Rademacher复杂度,并提出了一种特征失真方法(Disout)来解决上述问题。

Dropout based methods disable some elements in the output feature maps during the training phase for reducing the co-adaptation of neurons. Although the generalization ability of the resulting models can be enhanced by these approaches, the conventional binary dropout is not the optimal solution. Therefore, this paper investigate the empirical Rademacher complexity related to intermediate layers of deep neural networks and propose a feature distortion method (Disout) for addressing the aforementioned problem.

3. 网络架构

该文的目标不是固定扰动值,而是通过降低网络的ERC来学习特征图的失真。一般来说,对输入数据 x i x_i xi的第l层的输出特征 f l ( x i ) f^l(x_i) fl(xi)进行的干扰操作可以表示为
f ^ l ( x i )   =   f l ( x i ) − m i l ∘ ϵ i l (6) \hat f^l(x_i)\ =\ f^l(x_i)-m_i^l\circ \epsilon_i^l \tag{6} f^l(xi) = fl(xi)milϵil(6)
其中 ϵ i l ∈ R d l \epsilon_i^l\in \mathbb{R}^{d^l} ϵilRdl是作用于特征图 f l ( x i ) f^l(x_i) fl(xi)的失真。相较于原始的dropout方法,上式自动学习是根据ERC推导的失真形式。由于ERC在最后一层上计算的,故在神经网络上直接使用ERC是困难的。在训练阶段很难追踪神经网络的中间特征。故需要考虑任意层的输出特征来重新表征 R ~ D ( f L ) \tilde R_D(f^L) R~D(fL),从而有以下定理

T h e o r e m   2 \mathbf{Theorem\ 2} Theorem 2 K l [ k , : ] \mathcal{K}^l[k,:] Kl[k,:]表示参数矩阵 K l \mathcal{K^l} Kl的k行,而 ∣ ∣ ⋅ ∣ ∣ p ||\cdot||_p ∣∣p是向量的p范数。假定 ∣ ∣ K l [ k , : ] ∣ ∣ p ≤ B l ||K^l[k,:]||_p\leq B^l ∣∣Kl[k,:]pBl,则输出的ERC可以由中间特征的ERC限制:
R ~ D ( f L ) ≤ 2 R ~ D ( o L ) ≤ 2 B L R ~ D ( f L − 1 ) ≤ … ≤ 2 L − t R ~ D ( f t ) ∏ l = t + 1 L B l ≤ 2 L − t + 1 R ~ D ( o t ) ∏ l = t + 1 L B l (7) \tilde R_D(f^L)\leq2\tilde R_D(o^L)\leq2B^L\tilde R_D(f^{L-1})\leq\dots\\\leq2^{L-t}\tilde R_D(f^t)\prod_{l=t+1}^L B^l\leq 2^{L-t+1}\tilde R_D(o^t)\prod_{l=t+1}^LB^l \tag{7} R~D(fL)2R~D(oL)2BLR~D(fL1)2LtR~D(ft)l=t+1LBl2Lt+1R~D(ot)l=t+1LBl(7)
其中 o l , f l o^l, f^l ol,fl分别是激活函数之前和之后的特征映射。

上述理论展示了网络 R ~ D ( f L ) \tilde R_D(f^L) R~D(fL)的ERC由第t层的输出特征 R ~ D ( f t ) \tilde R_D(f^t) R~D(ft) R ~ D ( o t ) \tilde R_D(o^t) R~D(ot)的ERC确定上界。故降低 R ~ D ( f t ) \tilde R_D(f^t) R~D(ft) R ~ D ( o t ) \tilde R_D(o^t) R~D(ot)可以降低 R ~ D ( f L ) \tilde R_D(f^L) R~D(fL) f t f^t ft是网络任意中间层t的特征图,且失真也能应用于中间特征。故 R ~ D ( f t ) \tilde R_D(f^t) R~D(ft) R ~ D ( o t ) \tilde R_D(o^t) R~D(ot)可以作为失真操作的根据。

3.1 特征图失真

本节说明通过在第l层的特征图上应用失真来降低 f l ( x i ) f^l(x_i) fl(xi)的ERC。通过该操作,后续层中所有ERC都会受到影响,满足 l < t ≤ L l<t\leq L l<tL R ~ D ( o t ) \tilde R_D(o^t) R~D(ot)可以影响第l层的失真 ϵ i \epsilon_i ϵi。距离输出层越近的层,整个网络的ERC上限越紧,且能更有效地减少 R ~ D ( f L ) \tilde R_D(f^L) R~D(fL)。但若 t ≤ l t\leq l tl R ~ D ( o t ) \tilde R_D(o^t) R~D(ot) ϵ \epsilon ϵ之间的关系更加复杂,且很难使用 R ~ D ( o t ) \tilde R_D(o^t) R~D(ot)影响 ϵ l \epsilon_l ϵl。故使用第l+1层 R ~ D ( o l + ) \tilde R_D(o^{l+}) R~D(ol+)的ERC来引导第l层。即通过优化 ϵ l \epsilon_l ϵl来降低 R ~ D ( o l + 1 ) \tilde R_D(o^{l+1}) R~D(ol+1),从而有下式
g l ( x ) = ∑ i = 1 N σ i f ^ l ( x i ) (8) g^l(x)=\sum_{i=1}^N\sigma_i\hat f^l(x_i) \tag{8} gl(x)=i=1Nσif^l(xi)(8)
g l ( x ) ∈ R d l g^l(x)\in \mathbb{R}^{d^l} gl(x)Rdl与特征图 f l ( x i ) f^l(x_i) fl(xi)维度相同,则 R ~ D ( o l + 1 ) \tilde R_D(o^{l+1}) R~D(ol+1)如下式
R ~ D ( o l + 1 ) = 1 N E ϵ sup k , K : l + 1 ∣ < K l + 1 [ k , : ] T , g l ( x ) > ∣ (9) \tilde R_D(o^{l+1})=\frac1N\mathbb{E}_\epsilon \text{sup}_{k,\mathcal K^{:l+1}}|<\mathcal K^{l+1}[k,:]^T,g^l(x)>| \tag{9} R~D(ol+1)=N1Eϵsupk,K:l+1<Kl+1[k,:]T,gl(x)>(9)
其中 K l + 1 [ k , : ] ∈ R 1 × d l \mathcal K^{l+1}[k,:]\in \mathbb R^{1\times d^l} Kl+1[k,:]R1×dl表示参数矩阵 K l + 1 \mathcal K^{l+1} Kl+1第k行, K : l + 1 = { K 1 , K 2 , ⋯   , K l + 1 } \mathcal K^{:l+1}=\{\mathcal K^1, \mathcal K^2,\cdots, \mathcal K^{l+1}\} K:l+1={K1,K2,,Kl+1}。理想情况下, ϵ l \epsilon^l ϵl将减少下一层 R ~ D ( o l + 1 ) \tilde R_D(o^{l+1}) R~D(ol+1)ERC的同时保持表示能力。

在训练阶段,考虑一个具有 N ‾ \overline N N 样本的小批量 x ‾ = x 1 , x 2 , ⋅ ⋅ ⋅ x N ‾ \overline x = {x_1, x_2, ··· x_{\overline N}} x=x1,x2,⋅⋅⋅xN,第 l 层的掩模和畸变为 m l = m 1 l , m 2 l , … , m N ‾ l m^l = {m^l_1,m^l_2, \dots, m^l_{\overline N} } ml=m1l,m2l,,mNl ε l = ε 1 l , ε 2 l , … , ε N ‾ l ε^l = {ε^l_1, ε^l_2, \dots, ε^l_{\overline N}} εl=ε1l,ε2l,,εNl。以分类问题为例,通过最小化交叉熵损失来更新网络的权重。基于当前更新的权值 K l \mathcal K^l Kl和Rademacher变量 σ ‾ = σ 1 , σ 2 , … , σ N ‾ \overline \sigma= {\sigma_1, \sigma_2, \dots, \sigma_{\overline N}} σ=σ1,σ2,,σN,通过求解优化问题得到优化后的扰动 ϵ ^ l \hat \epsilon^l ϵ^l
ϵ ^ l = arg ⁡ min ⁡ ϵ l T ( x ‾ , ϵ l ) ,   l = 1 , 2 , … , L (10) \hat \epsilon^l=\arg \min_{\epsilon^l}\mathcal T(\overline x,\epsilon^l),\ l=1,2,\dots,L \tag{10} ϵ^l=argϵlminT(x,ϵl), l=1,2,,L(10)
其中
T ( x ‾ , ϵ l ) = 1 N [ s u p k ∣ < K l + 1 [ k , : ] T , g l > ∣ + λ 2 ∑ i = 1 N ‾ ∣ ∣ ϵ i l ∣ ∣ 2 2 ] (11) \mathcal T(\overline x,\epsilon^l)=\frac1N[sup_k|<\mathcal K^{l+1}[k,:]^T,g^l>|+\frac{\lambda}2\sum_{i=1}^{\overline N}||\epsilon_i^l||_2^2] \tag{11} T(x,ϵl)=N1[supk<Kl+1[k,:]T,gl>+2λi=1N∣∣ϵil22](11)
其中 ∣ ∣ ⋅ ∣ ∣ 2 ||\cdot||_2 ∣∣2表示l2范数, λ \lambda λ是平衡目标函数和失真强度的超参数

3.2 失真优化

微信图片_20240302150611

4. 文献解读

4.1 Introduction

由于深度网络通常会过度参数化以在训练集上获得更高的性能,因此一个重要的问题是避免过度拟合。经验风险应该接近预期风险。为此,首先提出了传统的二元dropout方法,该方法通过在训练阶段随机丢弃部分神经元来减少神经元的共同适应。该操作可以被视为模型集成技术或数据增强方法,它显着增强了测试集上所得网络的性能。现有的 dropout 变体为最小化预期风险和经验风险之间的差距做出了巨大的努力,但它们都遵循禁用神经网络中任意层的部分输出的一般思想。

本文提出了一种根据特征图上的失真增强深度神经网络泛化能力的新方法。给定深度神经网络的泛化误差界是根据其中间层的Rademacher复杂度建立的。在特征图上引入失真以降低相关Rademacher复杂度,这有利于提高神经网络的泛化能力。基准图像数据集的实验结果表明,使用所提出的特征失真方法训练的深度网络比使用最先进的方法生成的深度网络表现更好。

4.2 创新点

  1. 对dropout方法及其改进方法进行了研究
  2. 使用Rademacher复杂度作为依据设计新方法,从而提高了神经网络的泛化能力

4.3 实验过程

在本节中,在几个基准数据集上进行实验,以验证所提出的特征图失真方法的有效性。该方法在 FC 层和卷积层上实现,并分别使用传统 CNN 和现代 CNN(例如 ResNet)进行验证。为了为不同层设置统一的超参数γ,将γ乘以每一层中特征图的标准差,并交替更新失真和权重以提高效率。失真概率(dropout 和 dropblock 的丢弃概率)从 0 线性增加到指定的失真概率 p(Ghiasi、Lin 和 Le 2018[2])。

4.3.1 全连接层实验

数据集:在 CIFAR-10 和 CIFAR100 数据集上的传统 CNN 上进行了实验。将所提出的方法与多种最先进的 dropout 变体进行比较。CIFAR-10和CIFAR-100数据集均包含60000张尺寸为32×32的自然图像。其中50000张图像用于训练,10000张图像用于测试。图像分别分为10类和100类。 20%的训练数据被视为验证集。数据增强方法不用于公平比较。

实施细节:传统的 CNN 具有三个卷积层,分别具有 96、128 和 256 个滤波器。每层由步幅为 1 的 5 × 5 卷积运算组成,后跟步幅为 2 的 3 × 3 最大池运算。然后将特征发送到两个全连接层,每个层有 2048 个隐藏单元。调整每个 FC 层上的失真方法。畸变概率 p 从 {0,4, 0.5, 0.6} 中选择,步长 γ 设置为 5。模型训练 500 个 epoch,批量大小为 128。学习率初始化为 0.01,衰减系数为10 在 200、300 和 400 epoch。使用不同的随机种子运行方法 5 次,并汇总平均准确度和标准差。

比较方法:使用一般的没有额外正则化操作的CNN模型作为基础模型。此外,将该文中的方法与广泛使用的dropout方法和几个最先进的变体进行比较,包括Vardrop、Sparse Vardrop、RDdrop

结果:下表总结了 CIFAR-10 和 CIFAR-100 上的测试精度。在该方法的帮助下训练的 CNN 达到了 85.24% 的准确率,这使得最先进的 RDdrop 方法在 CIFAR-10 和 CIFAR-100 数据集上的性能分别提高了 2.13% 和 1.58%。

image-20240302172916134

4.3.2 卷积网络上的实验

将所提出的方法应用于卷积层,并在 CIFAR-10 和 CIFAR-100 数据集上进行了多次实验

实现细节:广泛使用的 ResNet-56包含三组块,被用作基线模型。 使用DropBlock 方法作为本文方法的比较对象。二者都是在最后一组块大小=6 中的每个卷积层之后实现的,并且失真概率(DropBlock 的丢弃概率)p ∈ \in ​ {0.01, 0.02, …, 0.1}。根据经验,步长γ设置为30。训练期间进行标准数据增强,包括随机裁剪、水平翻转和旋转(±15度以内)。网络训练了 200 个 epoch,批量大小设置为 128,权重衰减设置为 5e-4。初始学习率设置为 0.1,并在 60、120 和 160 epoch 时衰减 5 倍。使用不同的随机种子将所有方法重复 5 次,并报告带有标准差的平均准确度。

结果:CIFAR-10和CIFAR-100数据集上的结果如下表。所提出的方法优于DropBlock方法,性能分别提高了0.32%和0.63%。

image-20240302174225120

训练曲线: CIFAR-100数据集上的训练曲线如下图所示。实线和虚线分别表示测试阶段和训练阶段,红线和蓝线表示提出的特征图失真方法和基线模型。当训练收敛时,基线ResNet-56陷入过拟合问题,取得了较高的训练精度但较低的测试精度,而所提出的特征图失真方法克服了这一问题并实现了较高的测试精度,这表明模型泛化能力的提高。

image-20240302174545904

特征图失真(红色)与Dropblock(绿色)在不同失真概率p下在CIFAR-100数据机上的测试精度如下图所示。增大p可以增强正则化效率,将p设置在适当的范围内可提高测试精度。

image-20240302174556691

此外,该文还在ImageNet上进行了实验,同样取得了较好的效果。

4.4 结论

基于 Dropout 的方法已成功运用增强深度神经网络的泛化能力。然而,消除神经网络中的一些单元可以被视为一种启发式方法,用于最小化所得网络的预期风险和经验风险之间的差距,这在实践中并不是最佳方法。该文建议通过利用 Rademacher 复杂度将扭曲嵌入到给定深度神经网络的特征图上。大量的实验结果表明,特征失真技术可以轻松嵌入到主流深度网络中,以在基准数据集上获得比传统方法更好的性能。

小结

本周主要学习了dropout相关技术。首先,简要学习了泛化理论。其次,本周阅读了一篇改进dropout技术的论文,该文引入特征图失真以降低相关Rademacher复杂度,这有利于提高神经网络的泛化能力。

下周将继续阅读环境领域的人工智能相关论文,并继续学习接下来可能使用的数学工具。

参考文献

[1] Yehui Tang, Yunhe Wang, Yixing Xu, Boxin Shi, Chao Xu, Chunjing Xu, Chang Xu: Beyond Dropout: Feature Map Distortion to Regularize Deep Neural Networks.[J].arXiv:2002.11022

[2] Ghiasi, G.; Lin, T.-Y.; and Le, Q. V. 2018. Dropblock: A regularization method for convolutional networks. In Advances in Neural Information Processing Systems, 10727–10737.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1504357.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

visualization_msgs::Marker 的pose设置,map坐标系的3d box显示问题

3D框显示 3D框显示可以使用visualization_msgs::Marker::LINE_LIST或者LINE_STRIP&#xff0c;前者使用方法需要指明线的两个端点&#xff0c;后者自动连接相邻两个点。 姿态问题 网上看了一些&#xff0c;没有涉及到朝向设置&#xff0c;Pose.orientation默认构造为4个0 至…

Spring官网中查看MongoDB的API文档的详细步骤

目录 Spring官网中查看MongoDB的API文档的详细步骤1、进入 Spring 官网2、选择 Mongodb的文档介绍3、点击API文档4、进入文档查询页面 Spring官网中查看MongoDB的API文档的详细步骤 1、进入 Spring 官网 首先进入Spring的官网&#xff0c;然后点击【Spring Data】 2、选择 Mon…

JAVA实战开源项目:大学兼职教师管理系统(Vue+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 学生教师管理3.3 课程管理模块3.4 授课管理模块3.5 课程考勤模块3.6 课程评价模块3.7 课程成绩模块3.8 可视化图表 四、免责说明 一、摘要 1.1 项目介绍 大学兼职教师管理系统&#xff0c;旨…

王阳明:在心里中一个春天!吃好喝好不等于吃饱喝足,出租屋的第二个周末——早读(逆天打工人爬取热门微信文章解读)

种一个春天&#xff0c;等下一个天亮 引言Python 代码第一篇 霸王别坤第二篇 &#xff08;跳&#xff09;洞见 王阳明&#xff1a;人生若是太苦寒&#xff0c;在心里种一个春天第三篇 人民日报 来了&#xff01;新闻早班车要闻社会政策 结尾 屋宽不如心宽&#xff0c;物整亦是心…

模拟框图的表示

微分方程的建立 目的&#xff1a;为建立LTI系统的数学模型&#xff0c;需要列写微分方程式。 以RLC电路为例&#xff1a; 以Us为输入&#xff0c;Uc为输入&#xff0c;则可以得出以下微分方程式&#xff1a; 抽去物理意义后&#xff0c;得到一般的常微分线性方程&#xff1a;…

YOLOv5-Openvino-ByteTrack【CPU】

纯检测如下&#xff1a; YOLOv5-Openvino和ONNXRuntime推理【CPU】 YOLOv6-Openvino和ONNXRuntime推理【CPU】 YOLOv8-Openvino和ONNXRuntime推理【CPU】 YOLOv9-Openvino和ONNXRuntime推理【CPU】 注&#xff1a;YOLOv5和YOLOv6代码内容基本一致&#xff01; 全部代码Github&…

思维调试:为什么FormatMessage提示找不到资源?

在不调试的情况下解决下面的问题&#xff0c;说明你的思维调试能力又进阶了。 问题 我在调用 FormatMessage 函数加载一个插入的资源字符串&#xff0c;由于某种未知的原因&#xff0c;它没能按预期那样工作。 我要加载的字符串类似于这样的 “Blah blah blah %1. Blah blah …

VIM编译器的安装

文章目录 前言一、VIM软件安装二、遇到问题三、VIM使用1.文档创建命令touch2.VIM编译器输入模式3.VIM编译器指令模式3.VIM编译器底行模式4.VIM编译器使用小技巧 前言 &#x1f4a6; 我们如果要在终端模式下进行文本编辑或者修改文件就可以使用 VIM 编辑器&#xff0c;VIM 编辑…

腾讯云轻量应用服务器流量用完了怎么办?

腾讯云轻量服务器流量用完了怎么办&#xff1f;超额流量另外支付流量费&#xff0c;流量价格为0.8元/GB&#xff0c;会自动扣你的腾讯云余额&#xff0c;如果你的腾讯云账号余额不足&#xff0c;那么你的轻量应用服务器会面临停机&#xff0c;停机后外网无法访问&#xff0c;继…

如何修复advapi32.dll丢失无法启动程序的问题

如果你在运行Windows程序时遇到了“advapi32.dll丢失无法启动程序”的错误消息&#xff0c;那么这意味着你的计算机缺少这个DLL文件。在本文中&#xff0c;我们将提供一些解决方案&#xff0c;帮助你解决这个问题并恢复计算机的正常运行。 一.advapi32.dll丢失电脑的提示 关于…

BUUCTF----[极客大挑战 2019]HardSQL

输入1’ 单引号闭合 进行永真式判断 竟然说我是臭弟弟----八嘎&#xff08;肯定是进行了过滤&#xff09; 经过手法判断&#xff0c;过滤了&#xff0c;空格&#xff0c;and等报错注入updatexml() 报错注入顾名思义就是&#xff0c;通过特殊函数错误使用并使其输出错误结果来获…

RLAIF(0)—— DPO(Direct Preference Optimization) 原理与代码解读

之前的系列文章&#xff1a;介绍了 RLHF 里用到 Reward Model、PPO 算法。 但是这种传统的 RLHF 算法存在以下问题&#xff1a;流程复杂&#xff0c;需要多个中间模型对超参数很敏感&#xff0c;导致模型训练的结果不稳定。 斯坦福大学提出了 DPO 算法&#xff0c;尝试解决上面…

VMware下载与安装

准备一个Linux的系统&#xff0c;成本最低的方式就是在本地安装一台虚拟机&#xff0c;VMware是业界最好用的虚拟机软件之一 官网&#xff1a;https://www.vmware.com/ 下载页面&#xff1a;https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html …

Python 3 教程(3)

958 在 Windows 下可以不写第一行注释: #!/usr/bin/python3 第一行注释标的是指向 python 的路径&#xff0c;告诉操作系统执行这个脚本的时候&#xff0c;调用 /usr/bin 下的 python 解释器。 此外还有以下形式&#xff08;推荐写法&#xff09;&#xff1a; #!/usr/bin/env p…

C# 高级特性(十一):多线程之async,await

之前使用Thread和Task启动多线程时都会遇到一个麻烦&#xff0c;就是如何反馈结果。在代码里就是如何设计回调函数。如果带界面还得考虑UI线程的问题。 而使用async&#xff0c;await可以达到两个效果。 1 不用设计回调函数&#xff0c;直接按单线程的格式写。 2 不用考虑UI…

【NR 定位】3GPP NR Positioning 5G定位标准解读(十)-增强的小区ID定位

前言 3GPP NR Positioning 5G定位标准&#xff1a;3GPP TS 38.305 V18 3GPP 标准网址&#xff1a;Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;一&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;…

面向对象高级编程下

面向对象高级编程下 面向对象高级编程下一. 转换函数二. non-explict-one-argument ctor三. explicit-one-argument ctor四. pointer-like classes1. 智能指针2. 迭代器 五. function-like classes六. namespace七. 模板1.类模板2.函数模板3.成员模板 八.模板特化和偏特化1. 模…

C语言——函数指针——函数指针变量详解

函数指针变量 函数指针变量的作用 函数指针变量是指向函数的指针&#xff0c;它可以用来存储函数的地址&#xff0c;并且可以通过该指针调用相应的函数。函数指针变量的作用主要有以下几个方面&#xff1a; 回调函数&#xff1a;函数指针变量可以作为参数传递给其他函数&…

CIA402协议笔记

文章目录 1、对象字典1.1 Mode of Operation&#xff08; 606 0 h 6060_h 6060h​)1.2 Modes of opration display( 606 1 h ) 6061_h) 6061h​) 2、状态机2.1 控制字&#xff08;ControlWord、6040h&#xff09;2.2 状态字&#xff08;StatusWord、6041h&#xff09;2.3 shutd…

C语言书籍——A/陷阱之处

文章参考于文献&#xff1a;《C陷阱与缺陷》[美]Andrew Koening &#x1f308;个人主页&#xff1a;慢了半拍 &#x1f525; 创作专栏&#xff1a;《史上最强算法分析》 | 《无味生》 |《史上最强C语言讲解》 | 《史上最强C练习解析》 &#x1f3c6;我的格言&#xff1a;一切只…