当前位置: 首页 > news >正文

网站安全认证去哪做百度推广网页版

网站安全认证去哪做,百度推广网页版,网站产品详情用哪个软件做的,北京疫情最新情况最新消息生成对抗网络GAN 欢迎访问Blog总目录! 文章目录 生成对抗网络GAN1.学习链接2.GAN结构2.1.生成模型Generator2.2.判别模型Discrimintor2.3.伪代码 3.优缺点3.1.优势3.2.缺点 4.pytorch GAN4.1.API4.2.GAN的搭建4.2.1.结果4.2.2.代码 4.3.示意图:star: 1.学习链接 …

生成对抗网络GAN

欢迎访问Blog总目录!

文章目录

  • 生成对抗网络GAN
  • 1.学习链接
  • 2.GAN结构
    • 2.1.生成模型Generator
    • 2.2.判别模型Discrimintor
    • 2.3.伪代码
  • 3.优缺点
    • 3.1.优势
    • 3.2.缺点
  • 4.pytorch GAN
    • 4.1.API
    • 4.2.GAN的搭建
      • 4.2.1.结果
      • 4.2.2.代码
    • 4.3.示意图:star:

1.学习链接

Generative Adversarial Networks

生成对抗网络(GAN) - 知乎 (zhihu.com)

深度学习----GAN(生成对抗神经网络)原理解析_gan神经网络-CSDN博客

图解 生成对抗网络GAN 原理 超详解_生成对抗网络gan图解-CSDN博客

2.GAN结构

GAN包含两个模型:

  • 生成模型(Generator):接收随机噪声,生成看起来真实的、与原始数据相似的实例。
  • 判别模型(Discrimintor):判断Generator生成的实例是真实的还是人为伪造的。(真实实例来源于数据集,伪造实例来源于生成模型)

最终得到效果极好的生成模型,其生成的实例真假难辨。

GAN的灵感来源于 “零和博弈” (完全竞争博弈),GAN就是通过生成网络G(Generator)和判别网络D(Discriminator)不断博弈,进而使G学习到数据的分布,即达到纳什均衡

【纳什均衡】博弈中这样的局面,对于每个参与者来说,只要其他人不改变策略,他就无法改善自己的状况。对于GAN,即生成模型 G 恢复了训练数据的分布(造出了和真实数据一模一样的样本),判别模型D判别不出来结果(乱猜),准确率为 50%(收敛)。这样双方网络利益均最大化,不再改变自己的策略(不再更新自己的权重)。
在这里插入图片描述

2.1.生成模型Generator

  • 输入: 数据集的某些向量信息,此处使用满足常见分布(高斯分布、均值分布等)的随机向量。
  • 输出: 符合像素大小的图片
  • 结构: 全连接神经网络或者反卷积网络。

在这里插入图片描述

2.2.判别模型Discrimintor

  • 输入: 伪造图片和数据集图片
  • 输出: 图片的真伪标签
  • 结构: 判别器模型(全连接网络、卷积网络等)
    在这里插入图片描述

2.3.伪代码

在这里插入图片描述

3.优缺点

3.1.优势

  • GAN采用的是一种无监督的学习方式训练,可以被广泛用在无监督学习和半监督学习领域
  • 模型只用到了反向传播,而不需要马尔科夫链

3.2.缺点

  • 难以学习离散数据,如文本

4.pytorch GAN

4.1.API

生成对抗网络 - PyTorch官方教程中文版 (panchuang.net)

4.2.GAN的搭建

绘制在upper_bound和lower_bound之间的一元二次方程画

4.2.1.结果

4.2.2.代码

import torch
import torch.nn as nn
import numpy as np
import matplotlib.pyplot as plttorch.manual_seed(1)    # reproducible
np.random.seed(1)# Hyper Parameters
BATCH_SIZE = 64
LR_G = 0.0001           # learning rate for generator
LR_D = 0.0001           # learning rate for discriminator
N_IDEAS = 5             # 噪声点个数
ART_COMPONENTS = 15     # 15个Y轴数据点
PAINT_POINTS = np.vstack([np.linspace(-1, 1, ART_COMPONENTS) for _ in range(BATCH_SIZE)])# show our beautiful painting range
# plt.plot(PAINT_POINTS[0], 2 * np.power(PAINT_POINTS[0], 2) + 1, c='#74BCFF', lw=3, label='upper bound')
# plt.plot(PAINT_POINTS[0], 1 * np.power(PAINT_POINTS[0], 2) + 0, c='#FF9359', lw=3, label='lower bound')
# plt.legend(loc='upper right')
# plt.show()def artist_works():     # painting from the famous artist (real target)a = np.random.uniform(1, 2, size=BATCH_SIZE)[:, np.newaxis]paintings = a * np.power(PAINT_POINTS, 2) + (a-1)paintings = torch.from_numpy(paintings).float()return paintingsG = nn.Sequential(                      # Generatornn.Linear(N_IDEAS, 128),            # random ideas (could from normal distribution)nn.ReLU(),nn.Linear(128, ART_COMPONENTS),     # making a painting from these random ideas
)D = nn.Sequential(                      # Discriminatornn.Linear(ART_COMPONENTS, 128),     # receive art work either from the famous artist or a newbie like Gnn.ReLU(),nn.Linear(128, 1),nn.Sigmoid(),                       # tell the probability that the art work is made by artist
)opt_D = torch.optim.Adam(D.parameters(), lr=LR_D)
opt_G = torch.optim.Adam(G.parameters(), lr=LR_G)plt.ion()   # something about continuous plottingfor step in range(10000):artist_paintings = artist_works()  # real painting from artistG_noise = torch.randn(BATCH_SIZE, N_IDEAS, requires_grad=True)  # random ideas\nG_paintings = G(G_noise)                    # fake painting from G (random ideas)prob_artist0 = D(artist_paintings)  # 判断真画prob_artist1 = D(G_paintings)  # 判断假画# D增加真画概率,减少伪画概率; 梯度下降法为减小误差,所以添加-号# D_loss越小,prob_artist0越大,prob_artist1越小D_loss = - torch.mean(torch.log(prob_artist0) + torch.log(1. - prob_artist1))opt_D.zero_grad()D_loss.backward(retain_graph=True)  # reusing computational graphopt_D.step()# 重新采样G_noise = torch.randn(BATCH_SIZE, N_IDEAS, requires_grad=True)  # random ideas\nG_paintings = G(G_noise)  # fake painting from G (random ideas)prob_artist1 = D(G_paintings)  # 判断假画# G_loss越小,prob_artist1越大G_loss = torch.mean(torch.log(1. - prob_artist1))opt_G.zero_grad()G_loss.backward()opt_G.step()if step % 50 == 0:  # plottingplt.cla()plt.plot(PAINT_POINTS[0], G_paintings.data.numpy()[0], c='#4AD631', lw=3, label='Generated painting', )plt.plot(PAINT_POINTS[0], 2 * np.power(PAINT_POINTS[0], 2) + 1, c='#74BCFF', lw=3, label='upper bound')plt.plot(PAINT_POINTS[0], 1 * np.power(PAINT_POINTS[0], 2) + 0, c='#FF9359', lw=3, label='lower bound')# D 的判断准确度=50%最优plt.text(-.5, 2.3, 'D accuracy=%.2f (0.5 for D to converge)' % prob_artist0.data.numpy().mean(),fontdict={'size': 13})plt.text(-.5, 2, 'D score= %.2f (-1.38 for G to converge)' % -D_loss.data.numpy(), fontdict={'size': 13})plt.ylim((0, 3));plt.legend(loc='upper right', fontsize=10);plt.draw();plt.pause(0.01)plt.ioff()
plt.show()

4.3.示意图⭐️

在这里插入图片描述

http://www.rdtb.cn/news/2547.html

相关文章:

  • 定制鞋子的app百度关键词优化多少钱
  • 网站建设企业宣传微博seo营销
  • 轴承推广做哪个网站张家界百度seo
  • 房地产网站建设联系方式外贸网站搭建
  • 无锡梅村网站建设seo诊断分析报告
  • 网站建设技术发展现状网站推广策划思路的内容
  • shopex网站 css乱了谷歌关键词搜索
  • 甜品网站设计与实现毕业设计软文营销的三个层面
  • 美国做试管婴儿 网站怎么做好市场宣传和推广
  • 网站产品展示代码百度热门
  • 长沙网站建设政府补贴怎么学seo基础
  • 网络查控系统设计方案qq群排名优化软件购买
  • 网站装修用什么软件做免费推广软件哪个好
  • 广东的网站备案湖北短视频搜索seo
  • 重庆公司注册网站做游戏推广一个月能拿多少钱
  • kali wordpressseo综合查询爱站
  • 常州网站建设包括哪些免费的seo教程
  • 软慧网站建设网站seo方案撰写
  • 免费虚拟主机网站源码西安今天刚刚发生的新闻
  • 家居建材网站源码如何做网站seo排名优化
  • 北京网站优化诊断推广途径有哪些
  • 淄博市住房和城乡建设局官方网站宁波seo推广服务电话
  • 播州区建设局网站市场调研报告范文
  • 网站制作公司天强科技百度收录推广
  • 和田知名网站建设企业如何自己开发网站
  • ps做网站编排关键词优化seo外包
  • 做网站的女生多么免费网站提交入口
  • 网站 国外空间不需要icp许可证吗网站如何赚钱
  • 淄博 做网站博客
  • 做纹身注册什么网站好百度有几种推广方式