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

国外服务器租用网站如何让自己的网站快速被百度收录

国外服务器租用网站,如何让自己的网站快速被百度收录,wordpress 404跳转首页,手机app推荐目录 生成算法 生成对抗网络(GAN) “生成”部分 “对抗性”部分 GAN如何运作? 培训GAN的技巧? GAN代码示例 如何改善GAN? 结论 生成算法 您可以将生成算法分组到三个桶中的一个: 鉴于标签&#…

目录

生成算法

生成对抗网络(GAN)

“生成”部分

“对抗性”部分

GAN如何运作?

培训GAN的技巧?

GAN代码示例

如何改善GAN?

结论


生成算法

您可以将生成算法分组到三个桶中的一个:

  1. 鉴于标签,他们预测相关的功能(朴素贝叶斯)
  2. 给定隐藏的表示,他们预测相关的特征(变分自动编码器,生成对抗网络)
  3. 鉴于一些功能,他们预测其余的(修复,插补)

我们将探索生成对抗网络的一些基础知识!GAN具有令人难以置信的潜力,因为他们可以学习模仿任何数据分布。也就是说,GAN可以学习在任何领域创造类似于我们自己的世界:图像,音乐,语音。

示例GAN架构

生成对抗网络(GAN)

“生成”部分

  • 叫做发电机
  • 给定某个标签,尝试预测功能
  • EX:鉴于电子邮件被标记为垃圾邮件,预测(生成)电子邮件的文本。
  • 生成模型学习各个类的分布。

“对抗性”部分

  • 称为判别者
  • 鉴于这些功能,尝试预测标签
  • EX:根据电子邮件的文本,预测(区分)垃圾邮件或非垃圾邮件。
  • 判别模型学习了类之间的界限。

GAN如何运作?

一个称为Generator的神经网络生成新的数据实例,而另一个神经网络Discriminator则评估它们的真实性。

您可以将GAN视为伪造者(发电机)和警察(Discriminator)之间的猫捉老鼠游戏。伪造者正在学习制造假钱,警察正在学习如何检测假钱。他们都在学习和提高。伪造者不断学习创造更好的假货,并且警察在检测它们时不断变得更好。最终的结果是,伪造者(发电机)现在接受了培训,可以创造出超现实的金钱!

让我们用MNIST手写数字数据集探索一个具体的例子:

MNIST手写数字数据集

我们将让Generator创建新的图像,如MNIST数据集中的图像,它取自现实世界。当从真实的MNIST数据集中显示实例时,Discriminator的目标是将它们识别为真实的。

同时,Generator正在创建传递给Discriminator的新图像。它是这样做的,希望它们也将被认为是真实的,即使它们是假的。Generator的目标是生成可通过的手写数字,以便在不被捕获的情况下进行说谎。Discriminator的目标是将来自Generator的图像分类为假的。

MNIST手写数字+ GAN架构

GAN步骤:

  1. 生成器接收随机数并返回图像。
  2. 将生成的图像与从实际数据集中获取的图像流一起馈送到鉴别器中。
  3. 鉴别器接收真实和假图像并返回概率,0到1之间的数字,1表示真实性的预测,0表示假

两个反馈循环:

  1. 鉴别器处于反馈循环中,具有图像的基本事实(它们是真实的还是假的),我们知道。
  2. 发生器与Discriminator处于反馈循环中(Discriminator将其标记为真实或伪造,无论事实如何)。

培训GAN的技巧?

在开始训练发生器之前预先识别鉴别器将建立更清晰的梯度。

训练Discriminator时,保持Generator值不变。训练发生器时,保持Discriminator值不变。这使网络能够更好地了解它必须学习的梯度。

GAN被制定为两个网络之间的游戏,重要:保持它们的平衡。如果发电机或鉴别器太好,GAN可能很难学习。

GAN需要很长时间才能训练。在单个GPU上,GAN可能需要数小时,在单个CPU上,GAN可能需要数天。

GAN代码示例

class GAN():def __init__(self):self.img_rows = 28 self.img_cols = 28self.channels = 1self.img_shape = (self.img_rows, self.img_cols, self.channels)optimizer = Adam(0.0002, 0.5)# Build and compile the discriminatorself.discriminator = self.build_discriminator()self.discriminator.compile(loss='binary_crossentropy', optimizer=optimizer,metrics=['accuracy'])# Build and compile the generatorself.generator = self.build_generator()self.generator.compile(loss='binary_crossentropy', optimizer=optimizer)# The generator takes noise as input and generated imgsz = Input(shape=(100,))img = self.generator(z)# For the combined model we will only train the generatorself.discriminator.trainable = False# The valid takes generated images as input and determines validityvalid = self.discriminator(img)# The combined model  (stacked generator and discriminator) takes# noise as input => generates images => determines validity self.combined = Model(z, valid)self.combined.compile(loss='binary_crossentropy', optimizer=optimizer)def build_generator(self):noise_shape = (100,)model = Sequential()model.add(Dense(256, input_shape=noise_shape))model.add(LeakyReLU(alpha=0.2))model.add(BatchNormalization(momentum=0.8))model.add(Dense(512))model.add(LeakyReLU(alpha=0.2))model.add(BatchNormalization(momentum=0.8))model.add(Dense(1024))model.add(LeakyReLU(alpha=0.2))model.add(BatchNormalization(momentum=0.8))model.add(Dense(np.prod(self.img_shape), activation='tanh'))model.add(Reshape(self.img_shape))model.summary()noise = Input(shape=noise_shape)img = model(noise)return Model(noise, img)def build_discriminator(self):img_shape = (self.img_rows, self.img_cols, self.channels)model = Sequential()model.add(Flatten(input_shape=img_shape))model.add(Dense(512))model.add(LeakyReLU(alpha=0.2))model.add(Dense(256))model.add(LeakyReLU(alpha=0.2))model.add(Dense(1, activation='sigmoid'))model.summary()img = Input(shape=img_shape)validity = model(img)return Model(img, validity)def train(self, epochs, batch_size=128, save_interval=50):# Load the dataset(X_train, _), (_, _) = mnist.load_data()# Rescale -1 to 1X_train = (X_train.astype(np.float32) - 127.5) / 127.5X_train = np.expand_dims(X_train, axis=3)half_batch = int(batch_size / 2)for epoch in range(epochs):# ---------------------#  Train Discriminator# ---------------------# Select a random half batch of imagesidx = np.random.randint(0, X_train.shape[0], half_batch)imgs = X_train[idx]noise = np.random.normal(0, 1, (half_batch, 100))# Generate a half batch of new imagesgen_imgs = self.generator.predict(noise)# Train the discriminatord_loss_real = self.discriminator.train_on_batch(imgs, np.ones((half_batch, 1)))d_loss_fake = self.discriminator.train_on_batch(gen_imgs, np.zeros((half_batch, 1)))d_loss = 0.5 * np.add(d_loss_real, d_loss_fake)# ---------------------#  Train Generator# ---------------------noise = np.random.normal(0, 1, (batch_size, 100))# The generator wants the discriminator to label the generated samples# as valid (ones)valid_y = np.array([1] * batch_size)# Train the generatorg_loss = self.combined.train_on_batch(noise, valid_y)# Plot the progressprint ("%d [D loss: %f, acc.: %.2f%%] [G loss: %f]" % (epoch, d_loss[0], 100*d_loss[1], g_loss))# If at save interval => save generated image samplesif epoch % save_interval == 0:self.save_imgs(epoch)def save_imgs(self, epoch):r, c = 5, 5noise = np.random.normal(0, 1, (r * c, 100))gen_imgs = self.generator.predict(noise)# Rescale images 0 - 1gen_imgs = 0.5 * gen_imgs + 0.5fig, axs = plt.subplots(r, c)cnt = 0for i in range(r):for j in range(c):axs[i,j].imshow(gen_imgs[cnt, :,:,0], cmap='gray')axs[i,j].axis('off')cnt += 1fig.savefig("gan/images/mnist_%d.png" % epoch)plt.close()if __name__ == '__main__':gan = GAN()gan.train(epochs=30000, batch_size=32, save_interval=200)

如何改善GAN?

GAN刚刚在2014年发明 – 它们非常新!GAN是一个很有前途的生成模型家族,因为与其他方法不同,它们可以生成非常干净和清晰的图像,并学习包含有关基础数据的有价值信息的权重。但是,如上所述,可能难以使Discriminator和Generator网络保持平衡。有很多正在进行的工作使GAN培训更加稳定。

除了生成漂亮的图片之外,还开发了一种利用GAN进行半监督学习的方法,该方法涉及鉴别器产生指示输入标签的附加输出。这种方法可以使用极少数标记示例在数据集上实现最前沿结果。例如,在MNIST上,通过完全连接的神经网络,每个类只有10个标记示例,实现了99.1%的准确度 – 这一结果非常接近使用所有60,000个标记示例的完全监督方法的最佳已知结果。这是非常有希望的,因为在实践中获得标记的示例可能非常昂贵。

结论

http://www.dinnco.com/news/83159.html

相关文章:

  • app开发公司上市保定seo博客
  • 湖州做网站网络推广最好的网站有哪些
  • 在本地做改版如何替换旧网站会影响百度收录吗日照高端网站建设
  • 网站排名优化建设链接提交
  • 北京自己怎么做网站360手机助手
  • 一个空间做2个网站石家庄新闻网头条新闻
  • 珠海网站建设怎么样深圳网络营销外包公司推荐
  • 百度站长平台清退软文代写价格
  • 深圳快速网站制作服怎么找关键词
  • 湖南常德地图揭阳百度快照优化排名
  • 直播网站建设费用seo专业课程
  • 清远专业网站建设服务域名是什么 有什么用
  • 个人公众号做电影网站吗百度关键词竞价价格
  • 做外贸如何建立网站平台凡科建站app
  • 建一个com网站要多少钱重庆关键词排名推广
  • php做的卖水果网站有哪些哈尔滨百度网络推广
  • 网站的seo优化报告2345网址导航中国最好
  • 旅行社建设网站百度seo怎么优化
  • 做视频网站多大空间够如何建立独立网站
  • 手机网站导航菜单百度全网营销
  • 本地网站建设公司西安seo外包
  • 普洱网站建设优化中国人民银行网站
  • 查看网站是由什么开源做的营销策划公司收费明细
  • 网页设计中好的网站宁波seo在线优化公司
  • 莒县做网站和微信如何建立自己的网站平台
  • 图片站wordpress模板下载自己有网站怎么推广
  • 中小学生教育网站建设方案seo公司的选上海百首网络
  • 找兼职做网站建设外汇交易平台
  • 途谷网站建设网络优化工程师
  • 东莞营销网站建设免费推广网站排名