| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 图像生成:GAN网络(数学原理) -> 正文阅读 |
|
[人工智能]图像生成:GAN网络(数学原理) |
GAN网络经常会见到或用到,但感觉对其理解不够深入,写此博客记录一下,方便今后查阅。只看笔记估计很难看懂,推荐两个视频: 1. 首先是GAN的基本原理#pic_center =x250) min ? G max ? D V ( D , G ) = E x ~ p data? ( x ) [ log ? D ( x ) ] + E z ~ p z ( z ) [ log ? ( 1 ? D ( G ( z ) ) ) ] \min _G \max _D V(D, G)=\mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}(\boldsymbol{x})}[\log D(\boldsymbol{x})]+\mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))] minG?maxD?V(D,G)=Ex~pdata??(x)?[logD(x)]+Ez~pz?(z)?[log(1?D(G(z)))] 其中G(generator)是想让整个式子的值V尽可能小,而D(discriminator)想让V尽可能大。
2. GAN的训练过程2.1 训练流程
2.2 实际训练时使用更好优化的损失函数
但我们肯定希望是G生成较差时(训练初期)会有较大梯度进行更新才对。 4. GAN的问题
5. 从数学方面看生成器G的学习
P
data?
(
x
)
P_{\text {data }}(\mathrm{x})
Pdata??(x) :真实图片分布, θ ? = arg ? max ? θ ∏ i = 1 P G ( x i ; θ ) = arg ? max ? θ log ? ∏ i = 1 m P G ( x i ; θ ) = arg ? max ? θ ∑ i = 1 m log ? P G ( x i ; θ ) ≈ arg ? max ? θ E z ~ P data? [ log ? P G ( x ; θ ) ] = arg ? max ? θ ∫ z P data? ( x ) log ? P G ( x ; θ ) d x ? ∫ x P data? ( x ) log ? P data? ( x ) d x = arg ? max ? θ ∫ x P data? ( x ) ( log ? P G ( x ; θ ) ? log ? P data? ( x ) ) d x = arg ? min ? θ ∫ x P data? ( x ) log ? P data? ( x ) P G ( x ; θ ) d x = arg ? min ? θ K L ( P data? ( x ) ∥ P G ( x ; θ ) ) \begin{aligned} \theta^* &=\arg \max _\theta \prod_{i=1} P_G\left(x^i ; \theta\right) \\ &=\arg \max _\theta \log \prod_{i=1}^m P_G\left(x^i ; \theta\right) \\ &=\arg \max _\theta \sum_{i=1}^m \log P_G\left(x^i ; \theta\right) \\ & \approx \arg \max _\theta E_{z \sim P_{\text {data }}}\left[\log P_G(x ; \theta)\right] \\ &=\arg \max _\theta \int_z P_{\text {data }}(x) \log P_G(x ; \theta) d x-\int_x P_{\text {data }}(x) \log P_{\text {data }}(x) d x \\ &=\arg \max _\theta \int_x P_{\text {data }}(x)\left(\log P_G(x ; \theta)-\log P_{\text {data }}(x)\right) d x \\ &=\arg \min _\theta \int_x P_{\text {data }}(x) \log \frac{P_{\text {data }}(x)}{P_G(x ; \theta)} d x \\ &=\arg \min _\theta K L\left(P_{\text {data }}(x) \| P_G(x ; \theta)\right) \end{aligned} θ??=argθmax?i=1∏?PG?(xi;θ)=argθmax?logi=1∏m?PG?(xi;θ)=argθmax?i=1∑m?logPG?(xi;θ)≈argθmax?Ez~Pdata???[logPG?(x;θ)]=argθmax?∫z?Pdata??(x)logPG?(x;θ)dx?∫x?Pdata??(x)logPdata??(x)dx=argθmax?∫x?Pdata??(x)(logPG?(x;θ)?logPdata??(x))dx=argθmin?∫x?Pdata??(x)logPG?(x;θ)Pdata??(x)?dx=argθmin?KL(Pdata??(x)∥PG?(x;θ))?
最后可推得:求 θ ? \theta^* θ?就是求使得 P data? ( x ) P_{\text {data }}(x) Pdata??(x) 与 P G ( x ; θ ) P_G(x ; \theta) PG?(x;θ)的KL散度最小(两者相等时)时 θ \theta θ的取值。
6. 训练:6.1 先固定G,训练D基于GAN的对抗过程: 那么固定G,且由上图的定律,那么V就可以由下式的结果表达 将解得的
D
?
(
x
)
D^*(x)
D?(x)带入原式中,得到下式: 最后V推导成了Jensen-Shannon散度与一个常数的和。 6.2 GAN为啥不好训练
前面有提到具体使用时一般使用非饱和启发式博弈替代零和博弈:
回顾全程: 7. 后续几种常见的GAN7.1 WGANJS散度问题很多,作者尝试换个指标去衡量:
K
L
?
P
1
∥
P
2
)
=
K
L
(
P
1
∥
P
2
)
=
{
+
∞
?if?
θ
≠
0
0
?if?
θ
=
0
J
S
(
P
1
∥
P
2
)
=
{
log
?
2
?if?
θ
≠
0
0
?if?
θ
?
0
W
(
P
0
,
P
1
)
=
∣
?
˙
∣
?(???)?
\begin{aligned} &K L\left\langle P_1 \| P_2\right)=K L\left(P_1 \| P_2\right)= \begin{cases}+\infty & \text { if } \theta \neq 0 \\ 0 & \text { if } \theta=0\end{cases} \\ &J S\left(P_1 \| P_2\right)= \begin{cases}\log 2 & \text { if } \theta \neq 0 \\ 0 & \text { if } \theta-0\end{cases} \\ &W\left(P_0, P_1\right)=|\dot{\phi}| \text { (???) } \end{aligned}
?KL?P1?∥P2?)=KL(P1?∥P2?)={+∞0??if?θ=0?if?θ=0?JS(P1?∥P2?)={log20??if?θ=0?if?θ?0?W(P0?,P1?)=∣?˙?∣?(???)?? 我们看如何使GAN去优化W距离: 所以对GAN做了如下修改:
GAN不好训练的问题得到了很好的解决。 7.2 CGAN
7.3 CycleGAN7.4 StyleGAN:可以精细控制生成的图像的属性
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 3:46:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |