zoukankan      html  css  js  c++  java
  • lesson9-小象学院cv

    www.sohu.com/a/159976204_717210

    生成模型:基于联合概率~共生关系
    判别模型:基于条件概率~因果关系

    生成模型之学习数据分布:1)概率密度函数估计 2)数据样本生成
    模型目标:训练模型,生成样本模型,学习过程是让两者接近
    解决问题:
     数据缺失-因为可以用生成模型自己生成数据弥补缺失
    生成模型的根节点就是最大似然估计
    1、显式密度估计
     1)精确密度估计
     2)近似密度估计
      《1》马尔科夫
      《2》变分
    2、隐式密度估计
     1)马尔科夫链
     2)直接生成 -GAN生成对抗网络
    GAN:
    特点:无监督(有监督的框架,学习是无监督的)、适用隐含码、高维数据
    结构:生成器~伪造数据 + 判别器~判别数据是生成的还是伪造的
          噪声输入 1*100的向量 -》生成器-》生成的样本数据(假想的真实数据) -》
          真是样本数据            -》   判别器

    先训练优化判别器,生成器基于判别器的判别不断优化自己的造假能力

    生成器:负责生成样本数据
     输入为高斯白噪声向量z
     输出为样本数据向量x
     必须可微分
     深度神经网络CNN   x = G(z,theda),theda为神经网络参数

    判别器:输入为真实或生成的样本数据
     输出为真假标签

    优化目标:
     价值函数
     生成器优化方:最小化价值函数-》最大化D(G(z)) ~判别器将生成数据识别为假的概率的log值
     判别器优化方:最大化价值函数-》最小化。,最大化D(x)
     交替优化达到纳什均衡点
     在训练过程中,会把生成模型生成的样本和真实样本随机地传送一张(或者一个 batch)给判别模型 D。判别模型 D 的目标是尽可能正确地识别出真实样本(输出为“真”,或者1),和尽可能正确地揪出生成的样本,也就是假样本(输出为“假”,或者0)。这两个目标分别对应了下方的目标函数的第一和第二项。而生成模型的目标则和判别模型相反,就是尽可能最小化判别模型揪出它的概率。这样 G 和 D 就组成了一个 min-max game,在训练过程中双方都不断优化自己,直到达到平衡——双方都无法变得更好,也就是假样本与真样本完全不可区分。
     而在生成器端,它希望让判别器对自己生成的图片尽可能输出为 1,相当于它在于判别器进行对抗。
    D-step和G-step :零和游戏

    最终的判别器总体 loss 在 1 左右波动,而 real loss 和 fake loss 几乎在一条水平线上波动,这说明判别器最终对于真假图像已经没有判别能力,而是进行随机判断。

    训练算法:
    1、执行D-step的minibatch优化k次
     随机生成m个随机噪声向量-》聪数据集随机选取m个真实样本-》使用梯度上升优化判别器的代价函数,即最大化价值函数
    2、执行G-step的minibatch优化1次
     随机生成m个随机噪声向量-》使用梯度下降优化生成器的代价函数,即最小化价值函数
    训练过程图:
     左边分布主要为真实数据,判别为真,蓝线为1;右边基本为生成的假数据,判别为假
     优化到最后蓝线为1/2,即已经判别不出为真还是假,完全靠猜了
    模型崩溃:
     判别器快速达到最优,能力明显强于生成器
     生成器将数据集中生成在判别器最认可的空间点上,即输出多样性很低
    WGAN:优化了生成器和判别器的损失函数

    模型稳定训练的技巧:
     判别器整数步长卷积,生成器小数步长卷积
     使用批归一化
     去除全连接层
     生成器使用relu,输出使用tanh
     判别器使用leaky relu

    Leaky ReLUs
        ReLU是将所有的负值都设为零,相反,Leaky ReLU是给所有负值赋予一个非零斜率。Leaky ReLU激活函数是在声学模型(2013)中首次提出的。以数学的方式我们可以表示为:
        https://www.cnblogs.com/chamie/p/8665251.html
        ai是(1,+∞)区间内的固定参数。

  • 相关阅读:
    Windows进程端口相关命令
    SpringMVC获取请求的匹配方法对应的路径
    Feign配置远程调用时携带原请求的token
    LINUX的patch文件 何打patch
    如何制作LINUX的patch文件及如何打patch
    (转) 跟我一起写 Makefile --- 陈皓
    u-boot移植到mini2440,增加DM9000驱动的学习笔记
    DNW PL2303驱动解决问题
    kermit的安装,配置
    wpf中bool按钮三种方式
  • 原文地址:https://www.cnblogs.com/rosyYY/p/8970629.html
Copyright © 2011-2022 走看看