深度学习与对抗样本

2023-05-16

1、深度学习的概念

     深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。

    同机器学习方法一样,深度学习方法也有监督学习和无监督学习之分,不同的学习框架下建立的学习模型很是不同。例如,卷积神经网络(Convolutional neural networks)就是一种深度的监督学习下的机器学习模型,而深度置信网(DBNs)就是一种无监督学习下的机器学习模型。

   讨论深度学习,所谓的深度是指,网络的层数。深度超过8层的神经网络才叫深度学习。含多个隐层的多层学习模型是深度学习的架构。深度学习可以通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。

    深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。 因此,“深度模型”是手段,“特征学习”是目的。深度学习强调了模型结构的深度,突出了特征学习的重要性,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。

2、深度学习的特性

     2.1、其基本的架构是人工神经网络,针对不同的应用目标会有不同的表达结构,目的是为了更好的提取相应领域的特征。

     2.2、神经网络具有四个基本特征:

            2.2.1   非线性

                    非线性关系是自然界的普遍特征。大脑的智慧就是一种非线性现象。人工神经元处于激活或抑制二种不同的状态,这种行为在数学上表现为一种非线性关系。具有阈值的神经元构成的网络具有更好的性能,可以提高容错性和存储容量。

             2.2.2 非局限性

                    一个神经网络通常由多个神经元广泛连接而成。一个系统的整体行为不仅取决于单个神经元的特征,而且可能主要由单元之间的相互作用、相互连接所决定。

            2.2.3 非常定性

                   人工神经网络具有自适应、自组织、自学习能力。神经网络不但处理的信息可以有各种变化,而且在处理信息的同时,非线性动力系统本身也在不断变化。经常采用迭代过程描写动力系统的演化过程。

          2.2.4 非凸性

                   一个系统的演化方向,在一定条件下将取决于某个特定的状态函数,例如能量函数,它的极值相应于系统比较稳定的状态。非凸性是指 这种函数有多个极值,故系统具有多个较稳定的平衡态,这将导致系统演化的多样性。         

       2.3  神经网络中包含语义信息的部分并不是在每个独立的神经元,而是整个空间

       2.4  神经网络学习到的从输入到输出的映射在很大程度上是不连续的

 

3、深度学习的优点

      1、深度学习提出了一种让计算机自动学习出模式特征的方法,并将特征学习融入到了建立模型的过程中,从而减少了人为设计的不完备性。

      2、把特征学习纳入到整个过程,使目标进行归一化,围绕着一个目标来进行就行了。

      3、有点像数学中的级数,能够不断逼近。是一个万能函数逼近器。(但是要生成怎样一个函数,视任务而定)。(体现了连续性归纳比离散性好)。

4、深度学习的缺点

      1、对数据量要求高。为了达到很好的精度,需要大数据支撑,因为所要学习的参数多了。

      2、模型正确性验证复杂且麻烦。

      3、存在对抗样本问题

 

5、对抗样本概念

    对抗样本的概念:对抗样本是指在数据集中通过故意添加细微的干扰所形成的输入样本,会导致模型以高置信度给出一个错误的输出。(这里怎么理解呢?原先样本是能通过网络分类正确的,但是经过一个细微的扰动,却分类错误了,同时这里也可以看到并不是所有使网络分类错误的样本都叫对抗样本,有些仅仅是网络欠拟合)。

6、对抗样本产生的原因分析

     1)2013年,Szegedy等人在题为《Intriguing properties of nerual networks》的论文中指出了神经网络的两个有趣的特性:其一:  神经网络中包含语义信息的部分并不是在每个独立的神经元,而是整个空间;  其二是:神经网络学习到的从输入到输出的映射在很大程度上是不连续的。首先提出了对抗样本。

    2)GoodFellow等人在2014年发表的《Explaining and harnessing adversarial examples》,文中提出了产生对抗攻击根本的原因猜测: 深度学习在高维空间的线性特性已经足以产生这种攻击行为

    3)在16年Boundary tilting perspective论文中提到高维空间的线性模型并没有更容易出现对抗样本现象,也并非所有线性模型都会有对抗样本存在,作者认为存在的根本原因是分类器的分类器决策面(红色)和样本manifold (黑色)不严格重合但是很贴近,稍微很小的扰动就从一个界面到另一个界面。如图:

    4)在19年Andrew等人认为,对抗样本的产生可直接归因于非稳健特征的出现:某些来自数据分布模式的特征具备高度预测性,但对于人类来讲是脆弱且难以理解的。

        对抗脆弱性是模型对数据中泛化较好的特征具备敏感性的直接结果。

他们的假设也对 对抗可迁移性给出了解释,对抗可迁移性即为一个模型计算的对抗扰动通常可以迁移到另一个独立训练的模型。由于任意两个模型有可能学习类似的非稳健特征,因此操控此类特征的扰动可以应用于二者。最后,该研究提出的新观点将 对抗脆弱性作为 完全{以人为中心}(human-centric)的现象,因为从标准监督学习的角度来看,非稳健特征和稳健特征具备同等的重要性。

6、如何理解对抗攻击(从高维空间线性原因理解)

     GoodFellow提出的这种方法的根基是目前神经网络为了提高训练效率所使用的激活函数在局部都过于线性,怎么理解呢?

在局部看起来确实接近直线,这与前面看到的Olah对神经网络与拓扑学的对比中有些类似,在最后的表征层都是通过直线或超平面完成的分类。

GoodFellow对高维空间线性假设的实验如图:

解释一下这张图,这张图是对数据集CIFAR-10的分类器的决策边界示意图,其中每个小格子代表是CIFAR-10样本,每个小格子中,横向从左往右代表的是FGSM算法的梯度方向,纵向代表的是FGSM梯度的正交方向,白色表示模型能分类正确的情况,而彩色代表预测出错的情况,不同的颜色代表不同的错误预测分类。可以明显看出,在出错的区域都程线性分布,另外,如果横轴的方向走的不够远,即使再往其他方向都无法使模型出错,而一旦进入这个区域,就会出现大量的对抗样本。

7、对抗样本生成

    当前业界主要有两大类生成对抗样本的方法,第一类是基于优化的方法,最大化模型输出error,同时最小化样本的改变,这里我们通常使用梯度下降法来进行优化;  

    第二类是基于模型输入输出之间的雅可比矩阵,找出对模型输出影响最大的输入进行改变。两种方法都需要知道模型的参数以实现计算。

   基于的一个前提知识:

其中w是训练好的参数向量,x表示真实样本数据向量,n表示给图像加入的噪音向量,x表示加入噪音后新生成的样本,当加入足够小的n时,肉眼无法区分出x的变化,直观上左边的式子可能也不会变化很大,然而n方向与w的方向完全一致的时候,即使很小,也会使整个激活值变化很大,有多大呢?如果w是一个n维向量,而其权重的平均大小为m,那么激活值将会增加enm(e为参数)。但是神经网络是非线性的,所以直接与w同方向可能不可用。

   1、FGSM

    论文介绍:

    生成公式:

     

      原理解释:J是代表损失函数,其实,作者发现,y=wx+wn+b,当w维度很高的时候,wn的值就会很大。所以,在生成攻击,我们的目的是使y不一样。为啥要用损失函数呢?  在误差反向传播的过程中,x是定的,y是定的,我们是将y与y(pre)之间差距,然后,用最小二乘法反向回参数,修改的是参数w。   现在,其实我们,我们的目的是w是不变的(定的),变量是x与y,我们对y无法估算,所以用的是损失函数。将损失函数的指向性传给x,从而达到改变y的目的。

     在论文中还说到,对于线性模型来说,FGSM是有效的,但是神经网络就不是百分之百成立。

2、deepfool

    介绍:

            deepfool这篇论文,提出robustness的量化与计算,并提出了deepfool算法。

        

    原理解释:

           这里作者,是从点到面的距离角度去考虑的。就是作者认为,将一个样本沿着分类界面的法向量方向是一定能将样本进行误分类的(如果想改变其中某点的分类结果,一定要跨过分割平面)。

           作者在推导过程中是二分类问题到多分类,多分类到多分类非线性。(其中生成过程是个迭代的过程)。

          1、二分类:             

       

        2、多分类:

 

代表的是第k个子分类器,即第k个输出。

如果是非线性的话,想法与二分类相同。

    值得注意的是,本算法的输出不是最优的,但实验中已经能够大概率实现小幅度扰动了.

3、CW攻击

     论文: Towards evaluating the robustness of neural networks

     介绍:CW攻击是一种基于优化的攻击,攻击的名称是两个作者的首字母。

该算法将对抗样本当成是一个变量,那么现在如果要使得攻击成功就要满足两个条件(其实FGSM也是看成变量):(1)对抗样本和对应的干净样本应该差距越小越好;  (2)对抗样本应该使得模型分类错,且错的那一类的概率越高越好。

    公式解释: Rn对应着干净样本和对抗样本的差(即前面是对抗样本,后面是干净样本),但这里有个小trick,他把对抗样本映射到了tanh空间里面,这样做有什么好处呢?如果不做变换,那么x只能在(0,1)这个范围内变换,做了这个变换,x可以在-inf 到+inf做变换,有利于优化。

    再来说说第二部分,公式中的Z(x)表示的是样本x通过模型未经过softmax的输出向量,对于干净的样本来说,这个向量的最大值对应的就是正确的类别(如果分类正确的话),现在我们将类别t(也就是我们最后想要攻击成的类别)所对应的逻辑值记为Z(x')t,将最大的值(对应类别不同于t)记为,如果通过优化使得变小,攻击不就离成功更近嘛。那么式子中的k是什么呢?k其实就是置信度(confidence),可以理解为,k越大,那么模型分错,且错成的那一类的概率越大。最后就是常数c这是一个超参数,用来权衡两个loss之间的关系,文中使用二分查找来确定c值。

     CW是一个基于优化的攻击,主要调节的参数是c和k。

4、PGD

     介绍:对FGSM的迭代扩展。

     Towards Deep Learning Models Resistant to Adversarial Attacks

     https://www.zybuluo.com/wuxin1994/note/916616

5、UAP

    介绍:  一步攻击推导分类界面。

6、R-FGSM

   论文: Adversarial Training

7、JSMA(jacobian Sailency Map)

    论文:The  Limitations of Deep Learning in Adversarial Setting

    介绍:这篇 文章由papernot 等人发表在EuroS&P 2016会议上,是对抗样本攻击研究中非常重要的一篇文章。不同于该领域之前对抗样本的构造方法,本文主要介绍了一种新的对抗样本攻击方法,利用输入特征到输出值之间的对抗性显著性,达到只需要修改少量的输入值即可误分类的目的。该攻击方法属于targeted攻击

     

前向导数越大的地方越容易构建对抗样本。

算法的主要步骤有三个:

1、计算前向导数: 

值得注意的是,前向导数计算的梯度与Backpropagation反向传播计算的梯度不同,分别是:

   (1)本文前向导数是直接对神经网络函数F进行梯度计算,而Backprogation计算的梯度是对代价函数而言的;

   (2)本文是对输入特定求偏导数,而Backpropagation是对神经网络的参数求偏导数的。

2、基于前向导数构造显著图S;

   利用之前显著图的研究,作者扩展成对抗性显著图,用来表示输入空间中哪些特征对输出结构影响最大。为了达到将对抗样本误分类成t的目的,的概率必须不断增大,且当j=/t时 F(x)应该不断减少,直到t = argmaxiFj(x).

 

 

3、

     通过对抗性显著图确定需要修改的输入特征后,对应的特征(像素点)应该修改为多少呢?文章引入参数 表示输入特征的修改量。在MNIST实验中,作者设置参数为 

8、对抗样本的防御

    8.1、检测样本

    8.2、修改网络

            8.2.1防御性蒸馏

          防御性蒸馏是papernot等人基于蒸馏学习(一种迁移学习)中训练深度神经网络的蒸馏法提出来的。首先简单的介绍一下蒸馏法的原理。在机器学习领域中有一种最为简单的提升模型效果的方式,在同一训练集上训练多个不同的模型,在预测阶段采用综合均值作为预测值。但是运用这样的组合模型需要太多的计算资源,特别是当单个模型都非常复杂的时候,已经有相关的研究表明,复杂模型或者组合模型中的“知识”通过合适的方式是可以迁移到一个相对简单模型之中,进而方便模型推广。有一种直观的概念就是,越是复杂的网络具有越好的描述能力,可以用来解决更为复杂的问题。我们所说的模型学习得到“知识”就是模型参数,说到底我们想要学习的是一个输入向量到输出向量的映射,而不必太过于关心中间的映射过程。

        防御性蒸馏的思想就是希望将训练好的模型推广能力“知识”迁移到一个结构更为简单的网络中,或者通过简单的网络去学习复杂模型中“知识”。防御的具体思路就是:首先根据原始训练样本X和标签Y训练一个初始的深度神经网络,得到概率分布F(X)。然后在利用样本X并且将第一步的输出结果F(X)作为新的标签 训练一个架构相同、蒸馏温度T也相同的蒸馏网络,得到新的概率分布Fd(X),再利用整个网络来进行分类或预测,这样就可以有效的防御对抗样本的攻击:

        原理解释:

        我们在分析防御性蒸馏的原理之前,先来看一下对抗样本产生的工作框架。(cw之前的工作框架)

     对抗样本的产生主要分为两步:(1)方向敏感性估计(Direction Sensitivity Estimation),是指攻击者会评估DNN模型对X样本每一个输入分量所做的改变的敏感性信息,例如FGSM这种方法就是根据神经网络的输入计算代价函数的梯度来得到敏感性信息。JSMA是根据雅可比显著图来找出影响特征点。  (2)扰动选择,是说攻击者会根据第一步中计算所得的敏感性信息选择可以以最小的扰动达到攻击目的的维度添加扰动,来生成对抗样本。  所以对于基于梯度的攻击方法的攻击效果与模型的梯度陡峭程度非常相关。

    如果梯度方向陡峭,小扰动就会对模型产生很大的影响,为了防止这种扰动,必须通过网络更好地泛化训练数据集以外的样本来平滑训练过程中学到的模型梯度。当遇到这种对抗样本攻击时,改变网络结构,重新训练出一个更复杂的模型固然能防御这种攻击。防御性蒸馏就满足了这种要求。

      8.2.2 去噪网络

      去噪的思想是使得去噪后的对抗样本更接近于原始样本,相当于想把生成对抗样本的加入的噪声去掉,尽可能恢复成原始样本,从而对对抗样本能够准确地分类。

      作者尝试使用了两个不同架构的神经网络作为去噪器来进行去噪一个是Denoising Autoencoder(DAE),另一个是Denoising Additive U-Net(DUNET)。两者结构如下:

作者首先提出了一种以像素为导向的去噪器(PGD),去噪器的损失函数为:

其中x表示原始图片,x'表示去噪后的图片,所以损失函数表示原始图片和去噪后的图片的差异,然后最小化损失函数就可以得到尽可能接近原始图片的去噪后图片。但是这种去噪器在实验过程中,出现了一个现象,就是输入经过去噪以后,正确率反而有点下降,通过实验进行分析,首先给模型输入一个干净图片,再输入一个对抗图片,然后计算每一层网络在这两张图片上表示的差异,因为去噪器不可能完全消除扰动,剩下的微小扰动在预训练好的卷积网络模型中是逐层放大的,对卷积网络的高维特征产生较大的扰动,最终使得网络得出错误的分类结果。

所以针对这个问题 作者又提出了一种以高级表示为导向的去噪器(HGD),结构如下图所示:

从图中可以看出,HGD与PGD最大的区别在于不再以去噪后图片与原始图片的差异作为损失函数,而是将去噪后的图片和原始图片都输入到预训练好的深度神经网络模型中,将最后几层的高级特征的差异作为损失函数来训练去噪器,这样就避免了PGD的扰动逐层放大的问题。定义的损失函数是:

--------------------------

对抗样本是我研究的一个小方向  以上部分含有自己观点仅供参考。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度学习与对抗样本 的相关文章

  • 遥控三通直升机飞行原理简介

    首先我们了解一下什么是三通道 xff1f 通道其实就是遥控器对飞机的控制功能 xff0c 三通道就是说遥控器可以控制飞机的三种功能 xff01 其中 xff0c 一个通道就是控制上升下降 xff0c 另一个通道就是前进后退 xff0c 还有
  • 视觉SLAM十四讲:第2讲 初识SLAM

    第2讲 xff1a 初识SLAM 2 1 引言 定位和建图是感知的 内外之分 xff1a 前者任务是明白自身的状态 xff08 即位置 xff09 xff1b 后者任务是了解外在的环境 xff08 即地图 xff09 传感器 xff1a 携
  • 使用Python实现Hadoop MapReduce程序

    转自 xff1a 使用Python实现Hadoop MapReduce程序 英文原文 xff1a Writing an Hadoop MapReduce Program in Python 根据上面两篇文章 xff0c 下面是我在自己的ub
  • nginx1.15与tomcat8.5整合,多https域名指向同一tomcat服务

    一 安装nginx 1 安装依赖包 安装依赖之前检查是否已经安装这些依赖包 1 rpm包安装的 xff0c 可以用 rpm qa 看到 xff0c 如果要查找某软件包是否安装 xff0c 用 rpm qa grep 34 软件或者包的名字
  • 平衡车之角度环分析及调试

    1 直立环pd xff1a d参数的引入是为了抑制震荡 p xff0c 比例参数 xff0c 它的作用是反应了控制的响应速度 xff0c 过小的话平衡车表现是pwm明显不够直立不起来 xff0c 过大的话小车过于震荡 xff0c 震荡的时候
  • 平衡车之速度环分析及调试

    平衡车为什么只有角度环不够 xff0c 还需要速度环 xff1a 因为当角度环有偏差的时候 xff0c 根据角度环的pid是可以给小车输出pwm波维持小车平衡的 xff0c 但是小车要以什么样的速度维持平衡角度环是做不到的 xff0c 加上
  • 平衡车之转向环分析及调试

    转向环 xff1a 一般的控制系统单纯的 P 控制或者 PI 控制就可以了 xff0c 转向环就是这种 一般的控制系统 xff0c 对响应要求不高 xff0c 所以我们只使用 P 控制即可 int turn int encoder left
  • 倒立摆 角度环和位置环 分析以及参数整定

    倒立摆为什么有了角度环还必须有位置环呢 xff1f 答案是 xff1a 和平衡小车类比可得 xff0c 当只有角度环的时候 xff0c 倒立摆是可以对摆锤偏向做出pwm的反应的 xff0c 但是具体要反应合适程度到哪里 xff0c 还是应该
  • 关于新版XP光盘不能自动播放

    光驱自动运行 xff0c 首先要求在光盘中必须有一个autorun inf文件 xff0c 系统检测到这个文件后 xff0c 将调用AutoPlay来运行该文件 在autorun inf中写入了需要运行的光盘应用程序的路径 其次在注册表子键
  • 一、进程的概念、组成和特征

    一 进程与程序的区别 程序 xff1a 程序是静态的 xff0c 就是个存放在磁盘里的可执行文件 xff0c 就是一系列的指令集合 进程 xff1a 进程是动态的 xff0c 是程序的一次执行过程 xff0c 同一个程序多次执行会对应多个进
  • Ubuntu保存终端内容到日志

    Ubuntu保存终端内容到日志 1 在终端中执行 sudo script screen span class token punctuation span log 内容将保存到当前目录的screen log文件中 2 执行以下命令停止保存
  • 平衡小车从原理到实践

    平衡小车从原理到实践 作者 xff1a 公众号 xff1a 小白学移动机器人 关于内容 xff1a 参考很多网上大佬的博客加上自己的理解而成 xff0c 适合平衡车初学者和想要了解原理的小伙伴 1 平衡小车控制原理 先记住一句话 xff0c
  • 我手写了个SLAM算法!

    1 前言 前一段时间看过我文章的都知道 xff0c 我打算写一个SLAM源码阅读的文章 xff0c 然后 xff0c 我就去读了Gmapping的源码 xff0c 感受良多 xff0c 不足的地方是源码太乱了 xff0c 阅读起来真的不香
  • 我手写了个SLAM算法(二)!

    1 前言 看过之前两篇文章的大朋友们应该都知道 xff0c 我们在这里分享了SLAM算法gmapping的大刀阔斧删减版的源码和2D激光雷达运动畸变去除的源码 没看过的朋友可以点击下方文章查看 我手写了个SLAM算法 xff01 详解2D激
  • linux logrotate 配置及测试

    一 logrotate 配置 logrotate 程序是一个日志文件管理工具 用来把旧的日志文件删除 xff0c 并创建新的日志文件 xff0c 我们把它叫做 转储 我们可以根据日志文件的大小 xff0c 也可以根据其天数来转储 xff0c
  • Ubuntu Gnome屏幕旋转设置

    开始安装或启用新账户时 xff0c 屏幕自动旋转 xff0c 笔记本上很不方便 可通过如下命令设置成正常状态 xrandr o normal 通过命令完全关闭旋转功能 gsettings set org gnome settings dae
  • ubuntu之tools

    文章目录 系统图形界面优化 xff1a tweakgenome TODOFrameshot截图软件Nomacs看图软件计算器比较工具 xff1a Meld比较工具 xff1a Diffuse3 2 gif录制工具peek 编辑器 xff1a
  • python之lmdb

    文章目录 lmdb介绍安装lmdb使用 lmdb介绍 参考 LMDB的全称是Lightning Memory Mapped Database 快如闪电的内存映射数据库 它的文件结构简单 xff0c 包含一个数据文件和一个锁文件LMDB文件可
  • ubutnu系统维护

    文章目录 1 参考知识点 2 分区3 内核系统版本号查看是uefi还是leagcy启动升级设置时区自动清理手动清理 xff08 推荐 xff09 4 软件修改主机名修改用户名修改用户秘密root密码添加新用户用户组 生成随机密码管理命令温控

随机推荐

  • python之pcl

    pcl是点云可视化软件 xff0c 安装 conda create n py36 python 61 3 6 conda activate py36 方法1 xff0c 推荐 conda install c sirokujira pytho
  • 从零开始学习verilog:1

    在线资料 Verilog 教程 verilog tutorial 推荐书籍 verilog数字系统技术和实例分析 环境搭建 vscode verilog HDL SystemVerilog verilog语言高亮 Verilog Testb
  • verilog之环境记录

    操作系统 xff1a ubuntu18 04 环境安装 参考 span class token function sudo span span class token function apt span span class token f
  • Qt之程序打包发布

    文章目录 linux环境1 QtCreate使用Release版本编译2 使用ldd命令查看和导出需要的库3 编写执行程序的sh文件4 执行程序 Windows环境 qt程序发布打包方法如下 linux环境 原文链接 xff1a https
  • conda常用命令:安装,更新,创建,激活,关闭,查看,卸载,删除,清理,重命名,换源,问题

    文章目录 下载安装升级卸载Anaconda软件conda环境使用基本命令查看指定包可安装版本信息命令更新 xff0c 卸载安装包 xff1a 删除虚拟环境清理 xff08 conda瘦身 xff09 复制 重命名 删除env环境conda自
  • python之os文件路径、文件名、后缀分割

    直接垒代码 import os file path 61 span class hljs string 34 E tt abc py 34 span filepath fullflname 61 os span class hljs pre
  • 目前很火的SD-WAN是什么意思

    SD WAN SD WAN xff0c 即广域软件定义网络 xff0c 是将SDN技术应用到广域网场景中所形成的一种服务 xff0c 这种服务用于连接广阔地理范围的企业网络 数据中心 互联网应用及云服务 这种服务的典型特征是将网络控制能力通
  • cmd-bat 命令延时方法

    参考 xff1a https blog csdn net jk110333 article details 41869053 按照建议使用方法4 命令
  • Qt5中文教程

    1 教程 PyQt5中文教程PyQt5英文教程Qt5中文教程Qt 编程指南 下拉式复选框QComboCheckBox https blog csdn net LJX4ever article details 78039318 http qa
  • train,val,test的区别

    参考 xff1a https www mobibrw com 2017 7966
  • ubuntu18.04下搭建PX4编译环境

    Ubuntu18 04 Development Environment of PX4 Firmware 1安装Ubuntu2开始配置环境2 1下载PX4的固件源码2 2环境配置Bash ScriptsGazebo JMAVSim and N
  • PIX4中CAN调试——学习记录

    PIX4中CAN调试 学习记录 一 先行知识 nuttx驱动二 PX4中CAN驱动设置 固件版本 xff1a V1 13 0 编译版本 xff1a make px4 fmu v3 default 一 先行知识 nuttx驱动 Nuttx驱动
  • 蓝牙 舵狗 openmv通信相关

    总的思路是以openmv 接收蓝牙的指令 xff0c 如果是自动选项 xff0c 就在openmv 运行识别红球进行固定距离跟踪的程序 xff1b 如果是手动选项 xff0c openmv就直接把所得到的数据传给STM xff13 xff1
  • TM4C123G开发板学习记录(八)存储和安全管理(上)

    前言 TM4C123GH6PM有四种类型内存 xff1a FlashSRAMEEPROMROM 芯片设计厂商提供了灵活的操作 xff0c 性能优化 xff0c 和安全控制设计 本章学习目标 四种内存的特点和操作BitBang技术和使用MPU
  • 11-16 Fluent结果查看及后处理功能(做动画、监控点)

    lt
  • 如果你也23岁(2)

    接着上一篇 xff0c 跟大伙分享一下原来的这篇文章 xff1a 23 岁那年你正处在哪个状态 xff1f 现在呢 xff1f 我 xff0c 23岁 xff0c 应届毕业生 生活 xff0c 工作 xff0c 爱情都处于人生的低谷 xff
  • (实测可用)STM32 CubeMx安装教程

    一 STM32CubeMX 简介 xff08 1 xff09 STM32 是Cortex ARM内核架构的芯片 xff0c 中文名称为意法半导体 xff0c 是目前市面上应用自广泛的MCU芯片 STM32CubeMX 是 ST 意法半导体近
  • 25个国内外文献数据库

    1 国家哲学社会科学文献中心 网址 xff1a http www ncpssd org 2 中国国家数字图书馆 网址 xff1a http mylib nlc cn web guest home 3 中国科技论文在线 网址 xff1a ht
  • 巧用 IOPS 提升 Etcd 30% 的写入性能

    Laf 公众号已接入了 AI 聊天机器人 x1f916 xff0c 支持 GPT Claude 以及 Laf 专有模型 xff0c 可通过指令来随意切换模型 欢迎前来调戏 x1f447 本文转自博客园 xff0c 原文 xff1a http
  • 深度学习与对抗样本

    1 深度学习的概念 深度学习是机器学习中一种基于对数据进行表征学习的方法 观测值 xff08 例如一幅图像 xff09 可以使用多种方式来表示 xff0c 如每个像素强度值的向量 xff0c 或者更抽象地表示成一系列边 特定形状的区域等 而