首页 > 编程知识 正文

利用矩形窗函数法设计FIR,窗函数设计原理

时间:2023-05-03 12:44:34 阅读:148866 作者:4655

GAN的全名是Generative Adversarial Networks,中文名字是生成对抗网络。 原始的GAN是无监督的学习方法,巧妙利用“游戏”的思想学习生成型模型。

1 GAN原理

GAN的基本原理很简单,由两个网络构成。 一个是生成网络g(generator ),另一个是判别网络d )。 各自的功能如下

生成网络g :负责接收随机噪声$z$,从该噪声生成图像,并生成记录为$g(z ) $的图像。

判别网络d :负责判别一张图像是真图像还是由g生成的赝品图像。 输入为图像$x$,输出为0,1,0表示图像由g生成,1表示实际图像。

在训练过程中,生成网络g的目标是尽量生成真实图像欺骗判别网络d。 判别网络d的目标是尽量区别g生成的图像和实际图像。 这样,g和d构成了动态的游戏过程。 这是GAN的基本思想。

在最理想的状态下,g可以生成足以“以假乱真”的图像$g(z ) $。 D的情况下,很难判断g生成的图像是否是真的,$D(G(Z ) )=0.5$ )这里我们输入的真实图像和生成的图像各占一半。 在这样的情况下,可以使用所获得的生成网络g来生成图像。

2 GAN损失函数

从数学上看GAN,假设训练中使用的实际图像数据为$x$,图像数据的分布为$p_{data}(x ) $,为了生成网络g需要学习实际数据分布$p_{data}(x ) $ 假定噪声$z$的分布为$p_z(z ) $,其中$p_z ) z ) $是已知的,且$p_{data}(x ) x ) $是未知的。 在理想状态下$g(z ) $的分布应该尽可能接近$p_{data}(x ) x ) $,g将已知分布的$z$变量映射到位置分布的$x$变量。

根据交叉熵损失,可以构建以下损失函数:

$v(d,g )=E_{x~p_{data}(x ) x ) ) [ lnd ] x ] e _ { z~p _ z ) }[ln(1-d ) g(z ) ] ) $

其实从损失函数中可以看出与逻辑回归的损失函数基本相同,唯一不同的是反例的概率值为$1-d(g(z ) ) $。

损耗函数的加号的前一半是训练数据中的真实样本,后一半是取自已知噪声分布的样本。 详细说明这个损失函数。

1 )整个公式有两种结构。 $x$表示实际图像,$z$表示输入到g网络的噪声,$g(z ) $表示g网络生成的图像。

2 ) $d(x ) )表示d网络判断实际图像是否真实的概率,即$p(y=1|x ) $。 $d(g ) z ) $是d网络确定以$g ) $生成的图像是否真实的概率。

3 ) g的目的: g应该希望自己生成的图像越真实越好。 也就是说,g希望$d(g ) z ) $尽可能大,也就是说$p ) g )=1 | x ) $,此时$v ) d,g ) $尽可能小。

4 ) d的目的: d的能力越高,$D(X ) $越大,$D(X ) x ) ) $越小(也就是说假图像都被认为是0 ) )。 因此,d的目的和g的目的不同,d希望$v(d,g ) $越大越好。

3 GAN建模过程

在实际训练中,采用梯度下降法,交替优化d和g。 具体步骤如下。

1 )从已知噪声分布$p_z(z ) $中选择样本

${z_1,z_2,z_m}$

2 )从训练数据中选择相同数量的实际图像

${x_1,x_2,x_m}$

3 )设鉴别器d的参数为$theta_d$,其损失函数的梯度为

$nablafrac {1} { m } _ sum _ { I=1} ^ m [ lnd (x _ I ) ln(1-d ) g ) z_I ) ] $

4 )设发生器g的参数为$theta_g$,其损失函数的斜率为

$nablafrac {1} { m }sum _ { I=1} ^ m [ ln (1- d (g (z _ I ) ) ] $

在以上步骤中,每次更新d的参数时,都会立即更新g的参数。 有时可以更新$k$次d的参数,以再次更新g的参数。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。