深度学习部分实验(粗略)

近一个月在做实验的时候光顾着截图一个最后的结果,没有给保留代码等,这篇博客里是最近一个月做的一些小实验。后续发实验类的博客的时候尽量把必要背景知识、代码等加上。这次就先勉强看看吧

在生成领域,自编码器是GAN的前身,今天用VAE在MNIST做了生成实验,图1是10个class到latent space的投影,从投影就可以看出,同一类会尽量分在一起,说明latent space是很好的表示。图2是解码器输出的情况。整个流程就是图像-》编码器-》采用-》解码器-》图像
深度学习部分实验(粗略)_第1张图片

图一
深度学习部分实验(粗略)_第2张图片

图二
另外今天在跑实验的时候由于vs code的terminal,系统terminal在进入conda环境后对应的python的路径不同,会导致调包的时候出现混乱,揪出这个问题花了不少时间,同学们如果有时候发现安装的包和代码实际使用时的不一致,可能会是这个原因。

PGGAN实验:
训练比较麻烦,用tfhub上预训练好的
结果如下
深度学习部分实验(粗略)_第3张图片

SGAN(半监督GAN),和一般GAN不同,SGAN训练完成后用的是D,将D训练为分类器,可以在半监督场景下取得好的表现。实验结果表明,在有标签的数据量相同时,使用GAN训练出的D用作分类器时与相同架构的单独训练出的分类器相比,泛化性能更好

深度学习部分实验(粗略)_第4张图片

CGAN,换了个x和y叠加的方式跑CGAN,似乎效果更好,上次做的实验是直接把标签放到噪声向量后面去了,这次是将标签embed为和噪声向量相同维度的稠密向量,然后将其与噪声向量相乘作为G的input’

深度学习部分实验(粗略)_第5张图片

CycleGAN,设计得很漂亮,代码量也很大,跑了一会儿就报错了,定位比较麻烦
深度学习部分实验(粗略)_第6张图片

对抗样本实验,梯度下降直接跑,针对inception v3进行定向攻击,把我从运动衫识别成了书架。书架这个定向标签可以随意指定,只要inception v3有就可以
深度学习部分实验(粗略)_第7张图片

对抗噪声实验,把对抗噪声叠加到任何图像上都会导致定向误分类(这里是分类到3)
深度学习部分实验(粗略)_第8张图片

迁移学习
预测叉子时效果不好,是因为inception在imagenet上训练,训练集中只有10多张叉子的图片;跑CIFAR-10时效果不错
深度学习部分实验(粗略)_第9张图片

使用谷歌19年公开的技术NSL(神经结构化学习),利用其对抗性正则化,在训练过程中注入对抗损失进行对抗训练,结果如右,进一步利用其他生产对抗扰动的方法对训练好的模型进行攻击,证明模型会再次被攻击(也就是证明了说一种对抗技术进行对抗训练得到的模型无法抵御另一种技术的对抗攻击),把图中的花识别成了郁金香
深度学习部分实验(粗略)_第10张图片

平滑对抗训练(smooth adversarial training),学界指出RELU会影响模型的对抗鲁棒性,更平滑的激活函数可以得到更好的梯度,使得在生成harder 对抗样本,如果在此基础上进行训练,那么模型在面对对抗样本时就有更好的鲁棒性。建议使用Swish,GELU等代替,这次就做了相关实验。首先分别训练RELU,GELU和Swish模型,他们在正常数据的测试集上accuracy差不多。然后进行对抗测试:1)在Relu模型上生成对抗样本,然后使用该模型自身在生成的对抗样本上进行评估;并在RELU,Swish上重复,结果可以看到Relu差了很多;2)在Swish上生成对抗样本,Relu模型在其上测试;反过来再实验,可以看到前者效果更好;3)加入nsl对抗正则化进行实验得到swish-adv模型,将其与swish比较,可以看到加了对抗正则化的其效果更好
深度学习部分实验(粗略)_第11张图片

RNN(GRU)做时间序列预测,预测天气,从结果可以看到效果还不错,主要是学了早停+callback_function+checkpoint(在模型停止训练之前可能在测试集上性能就变差了,所以在推理时用最好保存的检查点的权重来用)
深度学习部分实验(粗略)_第12张图片

实现编码器-解码器做机器翻译,从翻译结果和真实结果来看,虽然不是一模一样,但是语义是相近的
深度学习部分实验(粗略)_第13张图片

你可能感兴趣的:(AI)