国科大高级人工智能6-GAN
文章目录
- 生成式模型的基础:极大似然估计
- GANs
- 最终版本
- 问题
- 非饱和博弈
- DCGAN
- 不同类型的GAN
- conditional GAN
- 无监督条件GAN--cycle GAN
- 对抗学习
https://blog.csdn.net/suyebiubiu/category_9372769.html
生成式模型的基础:极大似然估计
- θ∗=argmaxθExpdatalogPmodel(x∣θ)\theta^*=argmax_\theta E_{x~p_{data}}logP_{model}(x|\theta)θ∗=argmaxθEx pdatalogPmodel(x∣θ)
生成式模型都源于极大似然估计
- 显示概率分布
- 马尔科夫链/BM
- 隐式概率分布
- GSN
- GAN—唯一一个从数据观测一步到位的模型
以前比较强大的模型都源于HMM模型
- 显示概率分布
人工智能两个阶段
- 感知阶段
- 认知阶段
GAN(生成式模型
- 生成数据样本的能力
- 反应了他的理解(不能产生就没有理解)
GANs
和以前模型的的区别
- 使用了 latent code(缺省编码)
- 数据会逐渐统一 (unlike variational methods)
- 不需要马尔可夫链
- 被认为可以生成最好的样本
- (没有办法评价No good way to quantify this
核心思想:博弈论的纳什均衡——对抗达到平衡(共同进步)
- 生成器:尽量生成真实的分布——努力让判别器认不出来
- 输入向量,输出图或序列。。。
- 不同的向量表示不同的特征
- 想要发现数据的分布Pdata(x)P_{data}(x)Pdata(x)
- 假设一个分布Pdata(x;θ),用极大似然去找θP_{data}(x;\theta),用极大似然去找\thetaPdata(x;θ),用极大似然去找θ
- 判别器:区分是生成的还是真实的(努力让他能认出生成器生成的数据)
- 输入:图片
- 输出:标量评分
- 分越大,越真实–1
- 分小则假–0.1
- 生成器:尽量生成真实的分布——努力让判别器认不出来
算法
固定生成器G,从真假图中采样,来更新(训练)判别器D–>D1
- 版本1:$对V(G_0,D)找到D_0^* $===>D1
- 版本2:实际使用最小化交叉熵来进行二分类
- 原来:V(G,D)=ExPdata[log(D(x))]+ExPG[log(1−D(x))](G固定)原来:V(G,D)=E_{x~P_{data}}[log(D(x))]+E_{x~P_{G}}[log(1-D(x))] (G固定)原来:V(G,D)=Ex Pdata[log(D(x))]+Ex PG[log(1−D(x))](G固定)
- 目标函数==》maxV~=1mΣi=1mlog(D(xi))+1mΣi=1mlog(D(x~i))\tilde{V}=\frac{1}{m}\Sigma_{i=1}^{m}log(D(x^i))+\frac{1}{m}\Sigma_{i=1}^{m}log(D(\tilde{x}^i))V~=m1Σi=1mlog(D(xi))+m1Σi=1mlog(D(x~i))——均值代替期望
- 原来是对概率求和–>期望–>均值(Σi=1mlogPG(xi;θ)\Sigma_{i=1}^mlog P_G(x^i;\theta)Σi=1mlogPG(xi;θ)
- 多迭代几次:$\theta_d<–\theta_d+\eta d \tilde{V} $
- 原来:V(G,D)=ExPdata[log(D(x))]+ExPG[log(1−D(x))](G固定)原来:V(G,D)=E_{x~P_{data}}[log(D(x))]+E_{x~P_{G}}[log(1-D(x))] (G固定)原来:V(G,D)=Ex Pdata[log(D(x))]+Ex PG[log(1−D(x))](G固定)
固定D1,训练生成器G–>G1
- v1:θG←θG−η∂V(G,D0∗)∂θG\theta_G \leftarrow \theta_G-\eta \frac{\partial V(G,D_0^*)}{\partial \theta_G}θG←θG−η∂θG∂V(G,D0∗)===>找到G1
- v2:假设D0∗≈D1∗−−−也就是G变化很小(更新不能太频繁D_0^*\approx D_1^*---也就是G变化很小(更新不能太频繁D0∗≈D1∗−−−也就是G变化很小(更新不能太频繁
- V~=1mΣi=1mlog(D(G(zi))),z来自Pprior(z)\tilde{V}=\frac{1}{m}\Sigma_{i=1}^{m}log(D(G(z^i))),z来自P_{prior}(z)V~=m1Σi=1mlog(D(G(zi))),z来自Pprior(z)–目标函数是一样的
- 1mΣi=1mlog(D(xi))\frac{1}{m}\Sigma_{i=1}^{m}log(D(x^i))m1Σi=1mlog(D(xi))与生成器无关,可以不考虑
- $\theta_G<–\theta_G- \eta d \tilde{V} $
- V~=1mΣi=1mlog(D(G(zi))),z来自Pprior(z)\tilde{V}=\frac{1}{m}\Sigma_{i=1}^{m}log(D(G(z^i))),z来自P_{prior}(z)V~=m1Σi=1mlog(D(G(zi))),z来自Pprior(z)–目标函数是一样的
重复到平衡
生成器
- 极大似然估计L=Πi=1mPG(xi;θ),L=\Pi_{i=1}^mP_G(x^i;\theta),L=Πi=1mPG(xi;θ),
- θ∗=argmaxθΠi=1mPG(xi;θ)\theta^*=argmax_\theta \Pi_{i=1}^mP_G(x^i;\theta)θ∗=argmaxθΠi=1mPG(xi;θ)
- θ∗=argmaxθΣi=1mlogPG(xi;θ)\theta^*=argmax_\theta \Sigma_{i=1}^mlog P_G(x^i;\theta)θ∗=argmaxθΣi=1mlogPG(xi;θ)
- θ∗=argmaxθExPdata(logPG(xi;θ))\theta^*=argmax_\theta E_{x~Pdata}(log P_G(x^i;\theta) )θ∗=argmaxθEx Pdata(logPG(xi;θ))—求和近似于期望
- =argmaxθ∫xPdata(x)logPG(x;θ)dx−∫xPdata(x)logPdata(xi)dx=argmax_\theta \displaystyle \int_x P_{data}(x)log P_G(x;\theta)dx-\displaystyle \int_x P_{data}(x)log P_{data}(x^i)dx=argmaxθ∫xPdata(x)logPG(x;θ)dx−∫xPdata(x)logPdata(xi)dx—后面的只与真实数据有关
- =argminθKL(Pdata∣∣PG)=argmin_\theta KL(P_{data}||P_G)=argminθKL(Pdata∣∣PG)----=最小化KL散度(就是最小化他俩的差别KL=Div
- 如何产生通用的PGP_GPG?(通过神经网络
- G∗=argminθKL(Pdata∣∣PG)G^* =argmin_\theta KL(P_{data}||P_G)G∗=argminθKL(Pdata∣∣PG)
- Pdata(从真实数据中),PG(生成的采样)未知−−通过采样得到P_{data}(从真实数据中),P_G(生成的采样)未知--通过采样得到Pdata(从真实数据中),PG(生成的采样)未知−−通过采样得到
- $D^*=-2log2+2JSD(P_{data}||P_G) $
- G∗=argminGKL(Pdata∣∣PG)=argminGmaxDV(G,D)G^*=argmin_G KL(P_{data}||P_G)=argmin_G max_D V(G,D)G∗=argminGKL(Pdata∣∣PG)=argminGmaxDV(G,D)
- 极大似然估计L=Πi=1mPG(xi;θ),L=\Pi_{i=1}^mP_G(x^i;\theta),L=Πi=1mPG(xi;θ),
判别器
- 希望判别器通过区分,以Pdata和以PG采样得到的数据
- 目标函数:V(G,D)=ExPdata[log(D(x))]+ExPG[log(1−D(x))](G固定)V(G,D)=E_{x~P_{data}}[log(D(x))]+E_{x~P_{G}}[log(1-D(x))] (G固定)V(G,D)=Ex Pdata[log(D(x))]+Ex PG[log(1−D(x))](G固定)真实的+虚假的
- =∫xPdata(x)logD(x)dx+∫xPG(x)log(1−D(x))dx=\displaystyle \int_x P_{data}(x)log D(x) dx +\displaystyle \int_x P_{G}(x)log (1-D(x)) dx=∫xPdata(x)logD(x)dx+∫xPG(x)log(1−D(x))dx
- =∫x(Pdata(x)logD(x)+PG(x)log(1−D(x)))dx=\displaystyle \int_x (P_{data}(x)log D(x)+ P_{G}(x)log (1-D(x))) dx=∫x(Pdata(x)logD(x)+PG(x)log(1−D(x)))dx
- 假设D(x)能够是任何函数–
- 所以D要足够强–深度神经网络
- 最大化(Pdata(x)logD(x)dx+PG(x)log(1−D(x)))(P_{data}(x)log D(x) dx + P_{G}(x)log (1-D(x)))(Pdata(x)logD(x)dx+PG(x)log(1−D(x)))
- 求导:
- d(f(D))dD=a∗1D+b∗11−D∗(−1)=0\frac{d(f(D))}{dD}=a*\frac{1}{D}+b*\frac{1}{1-D}*(-1)=0dDd(f(D))=a∗D1+b∗1−D1∗(−1)=0
- a∗1D∗=b∗11−D∗a*\frac{1}{D^*}=b*\frac{1}{1-D^*}a∗D∗1=b∗1−D∗1
- D∗(x)=aa+b=Pdata(x)Pdata(x)+PG(x)D^*(x)=\frac{a}{a+b}=\frac{P_{data}(x)}{P_{data}(x)+P_{G}(x)}D∗(x)=a+ba=Pdata(x)+PG(x)Pdata(x)(在(0,1)之间
- 求导:
- 带入$G^* $
- D∗=maxDV(G,D)=V(G,D∗)=ExPdata[log(Pdata(x)Pdata(x)+PG(x))]+ExPG[log(PG(x)Pdata(x)+PG(x))]D^*=max_DV(G,D)=V(G,D^*)=E_{x~P_{data}}[log(\frac{P_{data}(x)}{P_{data}(x)+P_{G}(x)})]+E_{x~P_{G}}[log(\frac{P_{G}(x)}{P_{data}(x)+P_{G}(x)})]D∗=maxDV(G,D)=V(G,D∗)=Ex Pdata[log(Pdata(x)+PG(x)Pdata(x))]+Ex PG[log(Pdata(x)+PG(x)PG(x))]
- =−2log2+∫x(Pdata(x)logPG(x)(Pdata(x)+PG(x))/2+PG(x)log(PG(x)(Pdata(x)+PG(x))/2))dx=-2log2+\displaystyle \int_x (P_{data}(x)log \frac{P_{G}(x)}{(P_{data}(x)+P_{G}(x))/2} + P_{G}(x)log (\frac{P_{G}(x)}{(P_{data}(x)+P_{G}(x))/2)}) dx=−2log2+∫x(Pdata(x)log(Pdata(x)+PG(x))/2PG(x)+PG(x)log((Pdata(x)+PG(x))/2)PG(x))dx
- =−2log2+KL(Pdata∣∣Pdata(x)+PG(x)2)+KL(PG∣∣Pdata(x)+PG(x)2)=-2log2+KL(P_{data}||\frac{P_{data}(x)+P_{G}(x)}{2})+KL(P_{G}||\frac{P_{data}(x)+P_{G}(x)}{2})=−2log2+KL(Pdata∣∣2Pdata(x)+PG(x))+KL(PG∣∣2Pdata(x)+PG(x))
- =−2log2+2JSD(Pdata∣∣PG)=-2log2+2JSD(P_{data}||P_G)=−2log2+2JSD(Pdata∣∣PG)
- JSD(Pdata∣∣PG)=12D(P∣∣M)+12D(Q∣∣M),M=12(P+Q)JSD(P_{data}||P_G)=\frac{1}{2}D(P||M)+\frac{1}{2}D(Q||M),M=\frac{1}{2}(P+Q)JSD(Pdata∣∣PG)=21D(P∣∣M)+21D(Q∣∣M),M=21(P+Q)
- 训练:D∗=argmaxDV(D,G)D^*=argmax_DV(D,G)D∗=argmaxDV(D,G)
最终版本
- 训练:SGD,同时训练两组数据——深度神经网络
- 真实的
- 生成的
- 优化
- 可以一组训练跑一次时,另一组跑k次
- 可以一组训练跑一次时,另一组跑k次
问题
- 在开始的时候,训练较慢
非饱和博弈
- 更换后,极值点不变
- 原来D=1/2时,就无法训练了,而这个里面,D=1/2时仍然可以对生成器进行训练
DCGAN
- 反卷积生成图像
不同类型的GAN
- 传统GAN–
- 没有任何条件的,
- 给定一个图片,生成类似的图片
- 有条件的GAN
- 给定图片+图片里的信息(条件)
- 传统的神经网络,容易输出一个图片的平均(不对)–用GAN
- 无监督有条件的GAN
- 给定两个领域的图片
- 由一个领域的图片可以生成另外一个领域的图片
- 真实图片–》漫画风?
conditional GAN
- 生成器
- 不仅要生成火车,还要满足条件
- 判别器
- 判别是不是真实图片
- 判别是不是满足条件
- 对于真实的图片,不满足条件也输出0
无监督条件GAN–cycle GAN
- 直接使用会趋向于直接拿过来一个梵高的画
- 需要用一个网络,使得X≈YX \approx YX≈Y
- 也可以用生成器的逆过程反过来生成X’,X≈X′X \approx X'X≈X′
对抗学习
- 区别
- 一般机器学习只有一个机制点
- 对抗学习基于博弈论
- 有两个player
- 一个取极大一个取极小—求个鞍点
- 用于
- 白天–>黑天
- 没有真实对应的信息,只能通过对抗GAN网络生成—视频
- 加噪音–让图片不可识别–安全(攻击分类器)
- 通过将对抗的x’加入分类其中,提高分类器的能力(稳定性)
- 白天–>黑天
- 损失函数
- 分类器loss(θ)=C(y0,ytrue)小,y0=fθ(x)loss(\theta)=C(y0,y_{true})小,y0=f_{\theta}(x)loss(θ)=C(y0,ytrue)小,y0=fθ(x)
- 对抗的就是loss(x′)=−C(y0,ytrue)+C(y′,yfalse,y0=fθ(x‘)loss(x')=-C(y0,y_{true})+C(y',y_{false},y0=f_{\theta}(x‘)loss(x′)=−C(y0,ytrue)+C(y′,yfalse,y0=fθ(x‘)–优化x’
- 约束:d(x0,x′)<=ϵd(x0,x')<=\epsilond(x0,x′)<=ϵ看着原图没啥变化
- 得到一个x’
国科大高级人工智能6-GAN相关推荐
- 国科大高级人工智能2020-2021年期末试题回顾
国科大高级人工智能2020-2021年期末试题回顾 题型 选择题 简答题 应用题 附件 题型 题型没有变,仍然为选择题(20道,每道1分),简答题(3道,每道10分),综合应用题(3道,15,15,2 ...
- 国科大高级人工智能-总结
文章目录 1.概论 2. 搜索 A\*最优性 三个传教士与野人 3.神经网络 RBM DBN DBM hopfield比较 结构及特性 逐层贪婪训练与CD BP GAN 4.逻辑 一个永远无法归结结束 ...
- 国科大.高级人工智能.2022期末考试真题回忆版
选择 通过图灵测试意味着? 图神经网络 因果中的条件独立性判断 GAN tanh的曲线 哪一个是时序差分? 判断 启发函数的可采纳.一致的含义 广搜是代价一致搜索的特例 贪心搜索是A星算法的特例 爬山 ...
- 国科大 - 高级人工智能(沈华伟等)- 期末复习 - 试卷
历年考点 2016 2017 2018 2019 2020 简答题 蚁群.粒子 蚁群.粒子 蚁群.粒子 蚁群.粒子 简答题 A* 最优性 BP GAN 感知机 BP BP 激活函数 简答题 语义网络 ...
- 国科大高级人工智能12-博弈
这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...
- 国科大高级人工智能10-强化学习(多臂赌博机、贝尔曼)
文章目录 多臂赌博机Multi-armed bandit(无状态) 马尔科夫决策过程MDP(markov decision process 1.动态规划 蒙特卡罗方法--不知道环境完整模型情况下 2. ...
- 国科大高级人工智能9-模糊数学和遗传算法
文章目录 1.模糊计算 笛卡尔积.关系 模糊集 连续的隶属度函数 运算 2.evolution 遗传算法 1.模糊计算 why模糊 取得精确数据不可能或很困难 没有必要获取精确数据 模糊性概念:对象从 ...
- 国科大高级人工智能8-归结原理和horn子句
只有一条规则的推理 resolution(消解,归结) CNF(conjunction normal form合取范式 (A∨B)∧(B∨C)(A∨B)∧(B∨C)(A∨B)∧(B∨C) 任何逻辑式都 ...
- 国科大高级人工智能7-命题逻辑
文章目录 命题逻辑(语法Syntax) 由枚举推理(inference by enumeration 区别 deduction(形式推演,演绎) 作业(定理证明) logics:逻辑,表达信息的形式语 ...
最新文章
- php的foreach
- OpenGL ES 纹理设置
- centos 计算器_Linux学习之CentOS(十五)--Linux常用命令之bc、man、shutdown...
- MySQL表设计基础
- Git 报错fatal: not a git repository (or any parent up to mount point /) Stopping at filesystem bounda
- Atitit mybatis业务流程配置化管理总结 目录 1. Mybatis	1 2. 流程模型常见的bpm模式	1 2.1. 活动task 流程,getway流程控制(分支跳转 循环等)	1 3
- 单片机毕业设计 超声波雷达可视化系统
- NNDL 实验三 线性回归
- Win11 WSA 安卓子系统 下载安装更新
- (152)IES光源概述文件
- mysql mariadb libs_mysql 安装 【解决】mariadb-libs is obsoleted by *** - Ctrl+CCtrl+V - ITeye博客...
- SpringCloudConfig分布式配置中心介绍与搭建使用以及ConfigClient实现动态刷新配置
- 定义矩形类(长length,宽widen)求面积(area)(简单例子)
- 容器部署在物理机还是虚拟机上?
- 未来公园怎么能少了广场舞?
- 14宽的键槽深度多少_平键和键槽标准尺寸规格表.doc
- 笔记本电脑常识:噪音
- 微博数据分析工具限时福利!购买西瓜微数加送会员时长 ,最多加赠1个月!
- 数字电路——与或非逻辑门电路
- openbsd运行Linux应用程序,OpenBSD操作系统(1)——服务管理程序rcctl 类似linux下的service或syst...
热门文章
- Linux 下的推迟执行
- html判断坐标,js判断鼠标位置是否在某个div中的方法
- DataWhale组队-Pandas(下)缺失数据(打卡)
- php博客文章修改,wordpress博客如何快速修改文章阅读数
- numpy中两个array数值比较,在IDE中显示完全相同,但是bool判断两个array是否相等却返回False
- 四、MySQL分页查询 + 子查询复习 学习笔记 (复习连接查询相关内容 详解)
- LeetCode 271. 字符串的编码与解码(4位16进制字符+字符串)
- LeetCode 第 29 场双周赛(890/2259,前39.4%)
- LeetCode 810. 黑板异或游戏(博弈推理)
- 程序员面试金典 - 面试题 04.12. 求和路径(二叉树递归)