AI
文章平均质量分 64
Echo-J
2023年:喜欢网安—逆向,喜欢算法,想搞AI逆向。
2024年:现在专注于AI安全研究,想法实现,如果你也对AI安全感兴趣,欢迎与我讨论。
展开
-
One-Class SVM
它只有一个类,然后识别的结果就是:“是”或者“不是”这个类。这听起来和2分类问题貌似一样,它们的区别在于,在2分类问题中,训练集中有2个类,通常称为正例和负例,而在one class classification中,就。:通过最大化超平面与正常数据之间的间隔(如图2 所示),寻找一个最优的分割超平面,使得异常点尽可能远离该超平面。:对于新的数据点,通过计算其与超平面的距离,来判断该数据点是否为异常。找一个超平面将样本中的正例圈出来,预测就是用这个超平面做决策,在圈内的样本就认为是正样本,如图1所示。原创 2024-07-18 16:15:47 · 50 阅读 · 0 评论 -
拉格朗日乘子法和KKT条件
拉格朗日乘子法(Lagrange Multiplier) 和 KKT(Karush-Kuhn-Tucker) 条件是求解约束优化问题的重要方法,在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 KKT 条件。当然,这两个方法求得的结果只是必要条件,只有当目标函数是凸函数的情况下,才能保证是充分必要条件。原创 2024-07-18 13:49:52 · 146 阅读 · 0 评论 -
最大均值差异(Maximum Mean Discrepancy (MMD))
最大均值差异是用来衡量两个分布之间的差异,广泛应用于域适应、生成对抗网络(GANs)等场景。——MMD评价两堆数据是否具有相似性。寻找一个"well-behaved"函数f:x——>R∈F,使得下面的目标最大:函数f将分布P和Q中的所有样本映射成一个实数,遍历函数空间F中所有的函数,将这两堆实数的均值差最大值用于衡量分布的差异。如果P=Q,则对于任意的f,都有,故最大差异R=0。如果P和Q很相似,则可能存在很多f使得,因此这些f并不能客观反映出P和Q之间的差异,所以需要选择一个合适的f,使得两个分布最不相似原创 2024-07-17 21:42:46 · 78 阅读 · 0 评论 -
泛化能力(Model generalization)
学习到的模型对未知数据的预测能力,这个未见过的测试数据必须是和训练数据处于同一分布,不在同一分布的数据是不符合独立同分布假设的(对同一规律不同的数据集的预测能力)。通常通过测试误差来评价学习方法的泛化能力。就是通过数据训练学习的模型,拿到真实场景去试,这个模型到底行不行,如果达到了一定的要求和标准,它就是行,说明泛化能力好,如果表现很差,说明泛化能力差。机器学习-泛化能力-CSDN博客。原创 2024-07-17 12:06:50 · 63 阅读 · 0 评论 -
F1-score(标准度量)
F1分数(F1-score)是分类问题的一个衡量指标。一些多分类问题的机器学习竞赛,常常将F1-score作为最终测评的方法。它是精确率和召回率的调和平均数,最大为1,最小为0,如公式1所示。公式1。原创 2024-07-17 11:00:54 · 253 阅读 · 0 评论 -
利用联邦学习和基于自动编码器模型的分布式学习架构
首先,在每个训练回合中,随机选择一个客户子集𝑚 = 𝑚𝑎𝑥(𝐶×𝐾, 1)参加当前回合,使得 C 是被选中参与的客户的比例;其次,每个客户端接收全局模型,并使用其本地数据D进行本地迭代对其进行优化。优化是使用小批量梯度下降技术完成;最后,重复这些步骤,直到我们达到收敛。整体的架构如图1所示。然后,一旦训练完成,客户端将本地权重。该步骤可以参考中心化联邦学习,原创 2024-07-16 20:09:10 · 232 阅读 · 0 评论 -
对抗自动编码器(AAE)
如图1所示为AAE的结构图,其中 p(z) 是我们想要施加给 z 的先验分布,q(z) 是潜在变量的分布。图1的上半部分是一个标准的自动编码器,发挥着生成器的作用。图1的下把那部分是判别器𝐷𝜒 (𝑧),用于预测数据是编码器生成的假数据z,还是预先得知数据z'。学习如何区分真实样本(从前验样本中抽取)和虚假样本(由编码器生成)。,仅对编码器和解码器的参数进行优化,以最小化输入的重建损失,而在。训练过程分为重建阶段和正则化阶段两个过程。,同时训练判别器和生成器(编码器)。然后,对判别器进行固定,并训练。原创 2024-07-16 19:13:12 · 252 阅读 · 0 评论 -
变分编码器(VAE)
变分编码器将输入向量x映射到均值μ和标准差σ的正态分布中,并从中对潜在向量 Z 进行采样。原创 2024-07-16 16:42:21 · 152 阅读 · 0 评论 -
联邦学习(Federated learning)—— 去中心化联邦&中心化联邦
需要将本地模型参数加密传输给其余参与联合训练的数据持有方。因此,假设本次联合训练有n个参与方,则每个参与方至少需要传输2(n-1)次加密模型参数。中央服务器先将初始模型分发给各参与方,然后各参与方根据本地数据集分别对所得模型进行训练。:基于分布在多个设备上的数据集构建机器学习模型,同时防止数据泄露。各参与方将本地训练得到的模型参数加密上传至中央服务器。,因为难以从多家企业中选出进行协调的服务器方。,企业作为服务器,起着协调全局模型的作用;进行模型训练的场景,一般可以采用。的联邦学习场景,一般采用的是。原创 2024-07-16 08:58:00 · 510 阅读 · 0 评论 -
先验概率 & 后验概率 & 最大似然估计 & 自编码器AE
贝叶斯公式:P(B|A)=P(A|B)P(B)/P(A),其中P(B|A)为后验概率,P(A|B)为先验概率。,这部分称为Encoder,可用函数 h=f(x) 表示,然后再利用Decoder将code重构成为。,根据一些发生的事实,分析结果最可能产生的原因,然后才能有针对性地去解决问题。是一种特定的神经网络结构,其目的是为了将输入信息映射到某个更低维度的空间,生成。作用:后验概率是比较难以计算的,我们通常使用。:执果寻因中的因(条件概率),用函数 r=g(h)。由先验概率计算后验概率。原创 2024-07-16 08:23:11 · 242 阅读 · 0 评论 -
pixelRNN与pixelCNN
训练这个RNN时,一次前向传播需要从左上到右下串行走一遍,然后根据上面的公式求出似然,并。公式解释:p(x)是每个图像x的概率;右侧为第i个像素在1至i-1像素条件下的条件概率。——》效率低——》CNN代替RNN来构建未知像素的分布律——》使用一个CNN来接收之前的所有像素,并预测下一个像素的出现概率。以对参数做一轮更新。(像素值是逐个构建和更新的)目的:为了找到一个最能解释得到的生成样本的模型。实际应用阶段生成图像的速度是很慢的。,也就是每个通道生成概率的乘积。我们需要利用概率链式法则将。原创 2024-07-15 22:21:03 · 252 阅读 · 0 评论 -
AI安全系列——[第五空间 2022]AI(持续更新)
最近很长时间没有更新,其实一直在学习AI安全,我原以为学完深度学习之后再学AI安全会更加简单些,但是事实证明理论转实践还是挺困难的,但是请你一定要坚持下去,因为“不是所有的坚持都有结果,但总有一些坚持,能从冰封的土地里,培育出十万朵怒放的蔷薇”题目来源:NSSCTF题目描述:噪声在大数据场景下有着重要的地位。工程师们苦于被噪声污染的数据,同时也使用噪声保护着隐私数据。这个挑战分为两个部分。挑战1:从噪声中恢复隐私向量有A,B两个实体。其中B是普通实体,A则是恶意攻击者。原创 2024-07-15 16:27:13 · 992 阅读 · 0 评论 -
深度学习pytorch——RNN从表示到原理、应用、发展、实战详细讲解(终结)
RNN全称为Recurrent Neural Network,中文名字“循环神经网络”。具体是什么,往下看:当我们去做一个情感分析的时候,会尝试去评价一个句子是积极的还是消极的,先让我们以CNN的角度来看:现在我们要分析I hate this boring movies这句话是消极的,还是积极的,我们将此句话使用一个[5, 100]的序列来表示,其中5表示一共有5个单词,100表示每个单词使用100个维度来表示。原创 2024-04-07 09:12:00 · 1391 阅读 · 0 评论 -
深度学习pytorch——基于CIFAR-10数据集的Lenet5、Resnet的实战(持续更新)
想的时候都是困难,做的时候才是答案。原创 2024-04-06 16:07:22 · 570 阅读 · 0 评论 -
深度学习pytorch——数据增强(持续更新)
大量的数据是防止过拟合的关键,但是我们如何去获取大量的数据,是自己去拍摄、录制吗?显然这种方式有极高的成本。我们可以对同一张图片进行变换得到多张图片,比如原来只有10张图片,通过变换变成了20张图片,但是并不能无限的增长,也是有限制的,这种方法就叫做数据增强。数据增强的成本基本为0,虽然最后得到的图片效果也没有原图片好,但是有总比没有强,会在一定程度上增强我们的模型。原创 2024-03-30 15:48:19 · 810 阅读 · 0 评论 -
深度学习pytorch——全连接层(持续更新)
【代码】深度学习pytorch——全连接层(持续更新)原创 2024-03-30 13:02:25 · 320 阅读 · 0 评论 -
深度学习pytorch——nn.Module(持续更新)
1、nn.Module是所有层的父类,比如Linear、BatchNorm2d、Conv2d、ReLU、Sigmoid、ConvTranposed、Dropout等等这些都是它的儿子(子类),你可以直接拿来使用。作为一个初学者,发现构建一个简单的线性模型都能看到nn.Module的身影,初学者疑惑了,nn.Module到底是干什么的,如此形影不离,了解之后,很牛。2、nn.Module还支持一个nn.Module嵌套另一个nn.Module。如果你还有什么更好的idea,欢迎分享!原创 2024-03-30 12:54:28 · 968 阅读 · 0 评论 -
深度学习pytorch——经典卷积网络之ResNet(持续更新)
我们将最后的输出设置为 H(x) ,我们将堆叠的非线性层去拟合F(x) = H(x) - x ,原来的映射就变成了F(x) + x (F(x)必须和x的维度相同,如果不相同可是使用1*1卷积或者增加padding)。相当于我们在一些非线性对叠层之间插入了一个短路(shortcut connection),如果堆叠之后的模型的训练Error比之前还要差,就会直接走短路通道,如果堆叠之后的模型比之前好了,就进行堆叠,至于在几个堆叠层之间插入一个短路,这取决于训练的参数。原创 2024-03-30 08:33:02 · 1035 阅读 · 0 评论 -
深度学习pytorch——正则化(持续更新)
由于Sigmoid函数在两边存在梯度趋于零的特性,这种特性会使梯度长久得不到更新,造成梯度离散的现象,如何处理这一种现象?压缩数据使数据位于Sigmoid梯度不趋于0区间,即批量正则化(Batch Norm )(图-1)。原创 2024-03-29 08:42:23 · 1404 阅读 · 0 评论 -
深度学习pytorch——卷积神经网络(持续更新)
标准的神经网络是全连接的方式,全连接会获取更多的信息,但同时也包含着巨大的算力需求。在以前,算力完全不足以支撑如此巨大的计算量,但是又要进行处理,因此当时的人们联想到了人类观察事物的过程,即结合人眼观察事物的角度——先观察吸引我们的点,忽略不吸引我们的点,这称为局部相关性(。应用到神经网络中,就出现了卷积的概念。卷积操作就是先仅仅观察一部分,然后移动视野观察下一部分,这就称为卷积操作(图-3)。图-3图-4图-5。原创 2024-03-29 07:30:04 · 1338 阅读 · 2 评论 -
深度学习pytorch——减少过拟合的几种方法(持续更新)
正则化:得到一个更加简单的模型的方法。以一个多项式为例:随着最高次的增加,会得到一个更加复杂模型,模型越复杂就会更好的拟合输入数据的模型(图-1),拟合的程度越大,表现在参数上的现象就是高次的系数趋近于0,如果直接将趋近于0的高次去掉,就可以得到一个更加简单的模型,这种方法称为。原创 2024-03-26 18:30:31 · 2574 阅读 · 0 评论 -
深度学习pytorch——可视化visdom(持续更新)
在命令行窗口使用python -m visdom.server,会出现一个web地址,在浏览器中访问,即可看见在python中生成的图。原创 2024-03-24 22:06:36 · 594 阅读 · 0 评论 -
深度学习pytorch——过拟合&欠拟合&测试深度学习模型(持续更新)
随着项数越来越多,函数的图形就更加复杂,多项式也更加的复杂。如果利用多项式建造复杂模型,从仅仅一个常数至一个多次方函数,将会发现在线上的点会变得越来越多,这种逐渐接近样本点的过程叫做拟合。原创 2024-03-24 20:53:58 · 434 阅读 · 0 评论 -
深度学习pytorch——GPU加速(持续更新)
GPU加速原创 2024-03-24 19:59:11 · 377 阅读 · 0 评论 -
深度学习pytorch——多分类问题(持续更新)
1、回归问题的目标是使预测值等于真实值,即pred=y。2、求解回归问题的方法是使预测值和真实值的误差最小,即minimize dist(pred,y),一般我们通过求其2-范数,再平方得到它的最小值,也可以直接使用1-范数。原创 2024-03-24 19:05:28 · 1372 阅读 · 0 评论 -
深度学习pytorch——2D函数优化实例(持续更新)
【代码】深度学习pytorch——2D函数优化实例(持续更新)原创 2024-03-24 10:50:03 · 400 阅读 · 0 评论 -
深度学习pytorch——多层感知机反向传播(持续更新)
pytorch公式的推导到这里基本结束了。经过每一次的公式的推导,我们发现公式都是通过求导问题来分析的,其中不仅含有基本数学公式的求导,还联系到链式法则,如果高数学的还不错,我相信这些都不是问题。在以后的实践,理解基本原理有助于我们更好的编写深度学习的代码。而且随着人工智能的发展,AI安全问题随之出现,想要做出更棒的智能产品,理解其内部原理,将会更好帮助我们的前进。分析求导过程,求导的时候记得我们求的时最后一层,并且注意各下角标的含义(都在。原创 2024-03-23 20:17:42 · 490 阅读 · 0 评论 -
深度学习pytorch——链式法则(Chain rule)(持续更新)
这篇文章将会以深度学习的角度解析链式法则。原创 2024-03-22 20:14:33 · 440 阅读 · 0 评论 -
深度学习pytorch——感知机(Perceptron)(持续更新)
感知机是由美国学者FrankRosenblatt在1957年提出来的。感知机是作为神经网络(深度学习)的起源的算法。因此,学习感知机的构造也就是学习通向神经网络和深度学习的一种重要思想。感知机接收多个输入信号,输出一个信号。这里所说的“信号”可以想象成电流或河流那样具备“流动性”的东西。像电流流过导线,向前方输送电子一样,感知机的信号也会形成流,向前方输送信息。但是,和实际的电流不同的是,感知机的信号只有“流/不流”(1/0)两种取值。这里我们认为0对应“不传递信号”, 1对应“传递信号”。原创 2024-03-22 19:55:24 · 526 阅读 · 0 评论 -
深度学习pytorch——激活函数&损失函数(持续更新)
论生物神经元与神经网络中的神经元联系——为什么使用激活函数?我们将生物体中的神经元与神经网络中的神经元共同分析。从下图可以看出神经网络中的神经元与生物体中的神经元有很多相似之处,由于只有刺激达到一定的程度人体才可以感受到刺激,并且人体对刺激做出的响应是有限的,所以在输出之前应该经过激活函数。这个激活函数可以将原来发散的数据变成收敛的数据。什么是梯度?函数在某一点的梯度是这样一个向量,它的方向与的方向一致,而它的模为方向。原创 2024-03-22 18:29:24 · 2297 阅读 · 0 评论 -
深度学习pytorch——高阶OP(where & gather)(持续更新)
我们经常需要一个数据来自好几个的取值,而这些取值通常是不规律的,这就会导致使用传统的拆分和合并会非常的麻烦。我们也可以使用for循环嵌套来取值,也是可以的,但是使用for循环就意味着是python,那并没有很好的利用pytorch提供的使用gpu加速计算,当数据量非常大的话,会很大的拉低效率,因此我们使用pytorch提供的where。原创 2024-03-20 15:55:21 · 695 阅读 · 0 评论 -
深度学习pytorch——统计属性(持续更新)
深度学习笔记原创 2024-03-20 15:14:53 · 1179 阅读 · 0 评论 -
数字图像处理——MATLAB基础(持续更新)
主要讲述以数字图像处理为目的的matlab基础原创 2024-03-19 16:53:14 · 1334 阅读 · 0 评论 -
深度学习pytorch——基本运算(持续更新)
但是这里应该注意 * 和 .matmul()的区别,* 是对于每个元素对应相乘,.matmul()是对于矩阵的相乘(矩阵相乘的不会的,建议复习一下线性代数)无善无恶心之体,有善有恶意之动,知善知恶是良知,为善去恶是格物。1、Torch.mm() # 仅仅适用于2维的。floor():floor地板的意思,就是向下取最大的整数。ceil():ceil天花板的意思,就是向上取最小的整数。trunc():裁剪整数部分。基本运算——加、减、乘、除。基本运算——加、减、乘、除。原创 2024-03-17 21:50:30 · 567 阅读 · 0 评论 -
深度学习pytorch——拼接与拆分(持续更新)
使用条件:合并的dim的size可以不同,但是其它的dim的size必须相同。语法:cat([tensor1,tensor2],dim = n) # 将tensor1和tensor2的第n个维度合并。原创 2024-03-17 20:51:57 · 766 阅读 · 1 评论 -
深度学习pytorch——Broadcast自动扩展
在 PyTorch 中,Broadcast 是指自动扩展(broadcasting)运算的功能。它允许用户在不同形状的张量之间执行运算,而。当进行运算时,PyTorch 会,使其能够顺利进行运算。具体来说,如果两个张量的形状不完全相同,但时,PyTorch 可以使用 Broadcast 功能来进行运算。这两个张量在进行运算时,会自动根据 Broadcast 规则进行大小扩展,使它们的形状变得兼容。这样一来,我们就可以直接对这两个形状不同的张量进行运算,而不需要手动将它们的形状改变为相同的大小。原创 2024-03-17 20:14:53 · 873 阅读 · 0 评论 -
深度学习pytorch——Tensor维度变换(持续更新)
需要注意的是打平之后的tensor是需要有物理意义的,根据需要进行打平,并且打平后总体的大小是不发生改变的。并且一定要谨记打平会导致维度的丢失,造成数据污染,如果想要恢复到原来的数据形式,是需要靠人为记忆的。现在给出一个tensor——a.shape=torch.Size([4, 1, 28, 28]),打平a.view(4,1*28*28),此时a.view(4,1*28*28).shape=torch.Size([4, 784])。原创 2024-03-17 19:31:25 · 1852 阅读 · 0 评论 -
深度学习pytorch——索引与切片(持续更新)
【代码】深度学习pytorch——索引与切片。原创 2024-03-16 19:02:28 · 376 阅读 · 0 评论 -
深度学习pytorch——基本数据类型&创建Tensor(持续更新)
声明:本深度学习笔记基于学习而来。原创 2024-03-14 12:18:50 · 878 阅读 · 0 评论 -
机器学习(选修)(持续更新)
1、一般我们会得到一组参数,它是由很多组weight和bias组成的。2、首先,我们在处理数据的时候,会选择一个初始化参数3、其次,我们计算每个与w的偏微分,把他们组成矩阵的形式,如下图:这个就是我们所求的梯度(gradient)。4、然后,我们将选定的初始参数减去我们的梯度乘于学习率,就得到了我们新的参数,如下图:5、我们一直按照2、3、4的方式持续计算,不断更新我们的参数。原创 2024-03-12 16:41:31 · 1059 阅读 · 0 评论