云计算必备知识-基于PyTorch机器学习构建生成对抗网络
生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。原始 GAN 理论中,并不要求 G 和 D 都是神经网络,只需要是能拟合相应生成和判别的函数即可。但实用中一般均使用深度神经网络作为 G 和 D 。一个优秀的GAN应用需要有良好的训练方法,否则可能由于神经网络模型的自由性而导致输出不理想。 生成对抗网络被广泛应用于广告、游戏、娱乐、媒体、制药等行业,可以用来创造虚构的人物、场景,模拟人脸老化,图像风格变换,以及产生化学分子式等等。下面两张图片,分别展示了图片到图片转换的效果,以及基于语义布局合成景物的效果。
本文将引领读者,从工程实践角度出发,借助 AWS 机器学习相关云计算服务,基于 PyTorch 机器学习框架,构建第一个生成对抗网络,开启全新的、有趣的机器学习和人工智能体验。 还等什么,让我们马上开始吧! 主要内容 课题及方案概览 模型的开发环境 生成对抗网络模型 模型的训练和验证 结论与总结 课题及方案概览 下面显示的两组手写体数字图片,您是否能从中够辨认出由计算机生成的『手写』字体是其中哪一组?
本文的课题是用机器学习方法『模仿手写字体』,为了完成这个课题,您将亲手体验生成对抗网络的设计和实现。『模仿手写字体』与人像生成的基本原理和工程流程基本是一致的,虽然它们的复杂性和精度要求有一定差距,但是通过解决『模仿手写字体』问题,可以为生成对抗网络的原理和工程实践打下基础,进而可以逐步尝试和探索更加复杂先进的网络架构和应用场景。 《生成对抗网络》(GAN)由 Ian Goodfellow 等人在 2014年提出,它是一种深度神经网络架构,由一个生成网络和一个判别网络组成。生成网络产生『假』数据,并试图欺骗判别网络;判别网络对生成数据进行真伪鉴别,试图正确识别所有『假』数据。在训练迭代的过程中,两个网络持续地进化和对抗,直到达到平衡状态(参考:纳什均衡),判别网络无法再识别『假』数据,训练结束。 2016年,Alec Radford 等发表的论文 《深度卷积生成对抗网络》(DCGAN)中,开创性地将卷积神经网络应用到生成对抗网络的模型算法设计当中,替代了全链接层,提高了图片场景里训练的稳定性。 Amazon SageMaker 是 AWS 完全托管的机器学习服务,数据处理和机器学习训练工作可以通过 Amazon SageMaker 快速、轻松地完成,训练好的模型可以直接部署到全托管的生产环境中。Amazon SageMaker 提供了托管的 Jupyter Notebook 实例,通过 SageMaker SDK 与 AWS 的多种云服务集成,方便您访问数据源,进行探索和分析。SageMaker SDK 是一套开放源代码的 Amazon SageMaker 的开发包,可以协助您很好的使用 Amazon SageMaker 提供的托管容器镜像,以及 AWS 的其他云服务,如计算和存储资源。 如上图所示,训练用数据将来自 Amazon S3 的存储桶;训练用的框架和托管算法以容器镜像的形式提供服务,在训练时与代码结合;模型代码运行在 Amazon SageMaker 托管的计算实例中,在训练时与数据结合;训练输出物将进入 Amazon S3 专门的存储桶里。后面的讲解中,我们会了解到如何通过 SageMaker SDK 使用这些资源。 我们将用到 Amazon SageMaker、Amazon S3 、Amazon EC2 等 AWS 服务,会产生一定的云资源使用费用。 模型的开发环境 创建Notebook实例 请打开 Amazon SageMaker 的仪表板(点击打开 北京区域 | 宁夏区域 ),请点击Notebook instances 按钮进入笔记本实例列表。 如果您是第一次使用Amazon SageMaker,您的 Notebook instances 列表将显示为空列表,此时您需点击 Create notebook instance 按钮来创建全新 Jupyter Notebook 实例。 进入 Create notebook instance 页面后,请在 Notebook instance name 字段里输入实例名字,本文将使用 MySageMakerInstance 作为实例名,您可以选用您认为合适的名字。本文将使用默认的实例类型,因此 Notebook instance type 选项将保持为 *ml.t2.medium*。如果您是第一次使用Amazon SageMaker,您需要创建一个 IAM role,以便笔记本实例能够访问 Amazon S3 服务。请在 IAM role 选项点击为 Create a new role。Amazon SageMaker 将创建一个具有必要权限的角色,并将这个角色分配给正在创建的实例。另外,根据您的实际情况,您也可以选择一个已经存在的角色。 在 Create an IAM role 弹出窗口里,您可以选择 *Any S3 bucket*,这样笔记本实例将能够访问您账户里的所有桶。另外,根据您的需要,您还可以选择 Specific S3 buckets并输入桶名。点击 Create role 按钮,这个新角色将被创建。 (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |