GAN生成对抗性网络

一、GAN原理

出发点:机器学习中生成模型的问题

                无监督学习是机器学习和未来人工智能的突破点,生成模型是无监督学习的关键部分

特点:

  1. 不需要MCMC或者变分贝叶斯等复杂的手段,只需要在G和D中对应的多层感知机中运行反向传播或者梯度下降算法
  2. 模型通常使用神经网络,其拟合能力最好

G(Generator):用于捕获数据分布的生成模型(生成图像的网络);接收到随机的噪声z,通过噪声z生成图像。尽可能多地模拟、建模和学习真实数据的分布规律。

D(Discriminator):用于判别数据是真实数据还是生成数据(伪数据)的判别模型(判别图像真伪的网络):输入一张图像,输出代表其为真实图像的概率值,100%即判断该图像是真的。

训练过程:

        通过对抗性过程同时训练两个模型,训练过程中,生成器逐渐擅长创建更为真实的图像,鉴别器逐渐擅长判断真伪,当鉴别器没有办法判断图像真伪时,该训练过程达到平衡。

  • 动态博弈过程:G尽可能生成真实的图像欺骗判别网络D,D尽量区别G生成的图像和真实的图像
  • 博弈结果:理想情况下,达到纳什均衡点,G生成可以“以假乱真”的图像

D(x):D网络判断真实图片是否真实的概率,因为x本来就是真实的,所以该值越接近1越好

D(G(z)):D网络判断G生成的图片是否真实的概率

对于G:G希望自己生成的图片越接近真实越好,即G希望D(G(z))尽可能大,V(D, G)会变小,所以对于G是min_G

对于D:D的能力越强,D(x)越大,D(G(x))越小,V(D,G)会变大,所以对于D是求最大max_D

二、GAN框架

第一步训练D时,V(G, D)越大越好,所以加上梯度ascending

第二步训练G时,V(G, D)越小越好,所以减去梯度descending

整个训练过程交替进行

体系结构:

  • 传统生成模型的优化目标:数据的似然
  • GAN创新地使用另外一个优化目标:①引入判别模型②优化过程是在生成模型和判别模型之间找纳什均衡

三、GAN实现过程

1.前向传播阶段

模型输入:
        随机产生一个随机向量作为生成模型的输入数据,然后经过生成模型后产生一个新的向量,即为Fake Image

        从数据集中随机选择一张图片,将图片转化成向量,即为Real Image

模型输出:

        fake image和real image是判别网络的输入,根据输入的图片类型是Fake Image或Real Image将判别模型的输入数据的label标记为0或者1。即判别模型的输入类型为(xfake,0)或者(xreal,1)。

        经过判别网络后输出一个0到1之间的数,用来表示输入图片为真实图像的概率。

2.反向传播阶段—优化目标

①优化D

②优化G

3.损失函数

        希望生成样本和真实样本拥有相同的概率密度函数

        GAN的损失函数源自于二分类对数似然函数的交叉熵损失函数。第一项是使正样本的识别结果尽量为 1 ,第二项是使负样本的预测值尽量为 0 

损失函数:

4.迭代更新

得到损失函数后按照单个模型的更新方法进行修正

四、GAN特性

        采用对抗思想的原因:评估一个生成样本的质量,是一个很难量化的指标。对抗思想,把评估生成样本的质量的任务交给一个判别器模型去做

特点:

        传统模式相比,有两种不同的网络,采用对抗训练方法

缺点:

        训练GAN需要达到Nash均衡,有时候可以通过梯度下降方法实现,有时候不能;

        GAN不适用于处理离散数据,如文本;

        GAN存在训练不稳定、梯度消失和模态崩溃等问题

五、GAN应用

        用于无监督学习和半监督学习

        GAN与强化学习相结合

        图像样式转换、图像降噪和恢复、图像超分辨率

        计算机视觉,图像、文本、语音,或者任何含有规律的数据合成

        用于分类领域:将判别器替换为分类器,执行多个分类任务

六、其他

①早停法(Early Stopping):

        生成器或鉴别器损失突然增加或减少

        损失函数随机上升或下降,可能得到生成器的损失远远高于判别器的损失

②处理Mode Collapse(模式坍塌|生成器”崩溃”,总是将每一个输入的隐向量生成单一的样本)问题时,尝试使用较小的学习率,并从头开始训练

③添加噪声:在真实数据和合成数据中添加噪声,提高判别器的训练难度有利于提高系统的整体稳定性

④标签平滑:将标签值设置成一个低一些的值,阻止判别器对分类标签过于确信

⑤多尺度梯度(处理不太小的尺度时使用):由于两个网络之间的多个跳连接,梯度流从判别器流向生成器,和传统的用于语义分割的U-Net类似

⑥双时间尺度更新规则:使用不同的学习速率;为判别器选择一个更高的学习率(生成器必须用更小的更新幅度来欺骗判别器,不会选择快速、不精确和不现实的方式赢得博弈)。使用TTUR时,生成器有更大的损失量

⑦谱归一化:应用于卷积核的一种特殊的归一化,可以极大地提高训练的稳定性

参考链接:GAN-生成对抗性神经网络 - 知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/471077.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日OJ题_递归②_力扣21. 合并两个有序链表

目录 力扣21. 合并两个有序链表 解析代码 力扣21. 合并两个有序链表 21. 合并两个有序链表 难度 简单 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4]…

Android 9.0 禁用adb shell input输入功能

1.前言 在9.0的系统rom产品开发中,在进行一些定制开发中,对于一些adb shell功能需要通过属性来控制禁止使用input 等输入功能,比如adb shell input keyevent 响应输入事件等,所以就需要 熟悉adb shell input的输入事件流程,然后来禁用adb shell input的输入事件功能,接…

OpenTitan- 开源安全芯片横空出世

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

春晚后台撒贝宁意外“踩高跷”,尼格买提内增高秘密笑翻全场。

♥ 为方便您进行讨论和分享,同时也为能带给您不一样的参与感。请您在阅读本文之前,点击一下“关注”,非常感谢您的支持! 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 龙年春晚无疑是观众们热议的焦点!除了尼格买提表演…

[BUUCTF]-PWN:ciscn_2019_final_3解析

查看保护 RELRO保护为FULL,got表不可修改,只能修改hook表了 查看ida 这里的大致功能为alloc创建堆块(可填充内容)、free释放堆块(但是不清空指针) 值得注意的就是创建堆块大小不可以超过0x78(…

代码随想录刷题笔记-Day17

1. 路径总和 112. 路径总和https://leetcode.cn/problems/path-sum/ 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true …

微信小程序的疑惑总结

未解决&#xff1a; 1.storebindings 这里的storebindings是什么 2.空行怎么写&#xff1f; 我用这个<text>\n</text>写&#xff0c;在模拟器上好使&#xff0c;在真机上显示\n 解决方法&#xff1a;在组件里写class类名&#xff0c;wxss里面改高度 已解决&am…

Selenium图表自动化开篇

目录 前言&#xff1a; 使用 Canvas 或者 SVG 渲染 选择哪种渲染器 代码触发 ECharts 中组件的行为 前言&#xff1a; 图表自动化一直以来是自动化测试中的痛点&#xff0c;也是难点&#xff0c;痛点在于目前越来越多公司开始构建自己的BI报表平台但是没有合适的自动化测试…

STM32 HAL库 STM32CubeMX -- IWDG(独立看门狗)

STM32 HAL库 STM32CubeMX -- IWDG 一、IWDG简介二、独立看门狗的工作原理三、驱动函数初始化函数HAL IWDG Init()初始化函数HAL IWDG Init()其他宏函数 四、超时时间计算第一种办法第二种办法&#xff08;推荐&#xff09; 一、IWDG简介 看门狗(Watchdog)就是MCU上的一种特殊的…

09、全文检索 -- Solr -- SpringBoot 整合 Spring Data Solr (生成DAO组件 和 实现自定义查询方法)

目录 SpringBoot 整合 Spring Data SolrSpring Data Solr的功能&#xff08;生成DAO组件&#xff09;&#xff1a;Spring Data Solr大致包括如下几方面功能&#xff1a;Query查询&#xff08;属于半自动&#xff09;代码演示&#xff1a;1、演示通过dao组件来保存文档1、实体类…

docker (一)-简介

1.什么是docker Docker 是一个开源的应用容器引擎&#xff0c;由于docker影响巨大&#xff0c;今天也用"Docker" 指代容器化技术。 2.docker的优势 一键部署&#xff0c;开箱即用 容器使用基于image镜像的部署模式&#xff0c;image中包含了运行应用程序所需的一…