- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
李剑博士,教授,博士生导师网络空间安全学院lijian@January23,2025第二章生成对抗网络的安全应用实践2-1基于生成对抗网络的sin曲线样本模拟
本章介绍本实践内容主要是Python语言编程来实现使用生成对抗网络模拟sin曲线样本。本实践内容是用来完成一个最基本的对抗生成网络模型,感兴趣的学生可以使用其它改进的生成对抗网络模型来学习。
1.实践目的理解生成对抗网络GANs的基本原理:通过实现一个简单的GANs模型,学习GANs的基本概念和工作原理,包括生成器和判别器的角色,生成器生成样本,判别器评估样本真实性,以及通过对抗训练优化GANs模型。熟悉GANs模型的组成部分和结构:通过编写代码实现生成器和判别器模型,了解它们的结构和参数设置,以及如何将它们组合成一个完整的生成对抗网络模型。实践训练和优化GANs模型:通过调整超参数、损失函数和优化器等设置,观察生成器和判别器在训练过程中的变化,最后通过可视化图像保存训练结果,直观地观察生成器的学习效果和生成样本的质量。
2.实践内容生成对抗网络GANs包含一个生成模型G和一个判别模型D,其流程如图所示。本实践例子要求编写代码实现简单的GANs模型,用于生成伪造样本。其中真实样本为二维数据,是x2=sin(x1),x1∈[-3,3]曲线上的随机点。最终得到2000至8000次迭代中每增加2000次迭代后的样本散点图。8000次迭代完成后生成的伪造样本与真实的正弦函数贴合度很高。
3.实践环境? python版本:3.10.12或以上版本? 深度学习框架:tensorflow2.15.0,keras2.15.0? 其他库版本:numpy1.25.2,matplotlib3.7.1? 运行平台:jupyternotebook? keras官方文档:https://keras-zh.readthedocs.io/why-use-keras/? tensorflow中的keras文档:/guide/keras?hl=zh-cn
4.实践前准备工作每个学生一台安装有pycharm或者可以在线运行python(或者jupyternotebook)文件的笔记本电脑,并提供给每个学生样例代码。
5.实践步骤(1)导入必要的库。深度学习程序依赖于这些库提供的功能和工具。(例如:numpy是Python中基于数组对象的科学计算库。)
5.实践步骤(2)定义生成器函数。生成器的作用是接收一个潜在向量作为输入,生成与训练数据相似的样本。其目标是产生逼真的样本,使得判别器无法准确区分生成样本与真实样本。生成器可以看作是一个生成模型,通过学习训练数据的分布特征,生成与之相似的新样本。
5.实践步骤(3)定义判别器函数。判别器的作用是接收样本(包括真实样本和生成器生成的样本)作为输入,并预测样本的真实性。其目标是对样本进行分类,判断其是真实的还是生成的。判别器可以看作是一个判别模型,通过学习如何区别真实样本与生成样本,并为生成器提供反馈信息,以改善生成样本的质量。
5.实践步骤(4)定义完整GANs模型。
5.实践步骤(5)编写函数用于生成真实样本。
5.实践步骤(6)编写函数用于在隐空间中生成随机点。隐空间,即潜在空间,是生成模型中用于表示数据的低维空间。在这个空间中,数据的特征被压缩,模型可以更容易地生成新样本。隐空间中的每个点通常对应于一个潜在的样本,通过解码可以还原为实际的数据。通过在潜在空间中采样不同的点作为生成器的输入数据,可以生成多样化的数据样本。
5.实践步骤(7)编写函数令生成器使用隐空间点生成伪造样本。
5.实践步骤(8)编写函数用于评估判别器的性能并绘制结果。目的是在每个迭代结束时评估判别器的性能,并可视化真实样本和伪造样本的分布情况。
5.实践步骤(9)编写训练函数。函数的目的是通过交替训练生成器和判别器来训练生成对抗网络模型。通过不断优化生成器和判别器的参数,使得生成器能够生成更逼真的伪造样本,同时判别器能够更准确地区分真实样本和伪造样本。通过调用性能评估函数,可以观察模型在训练过程中的性能变化,并可视化生成的样本。
5.实践步骤10.训练模型生成结果。所有函数编写完成后,按照题目要求设置所有常数,包括样本维度,隐空间维度,一批样本的数量,迭代次数等。创建生成器,判别器,并进一步创建GANs模型,调用训练函数训练模型并保存各阶段的生成器生成样本的效果。
6.实践结果运行程序,迭代8000次,得到如下结果:判别器在真实样本上的准确率为53%,而在伪造样本上的准确率为58%。
6.实践结果随着迭代次数增加,生成器和判别器逐渐优化自己的网络,使
文档评论(0)