Machine Learning and having it deep and structured - Hung-yi Lee

Ref:

1-1 Deep why

由于Universality Theory,理论上shallow能fit任何continuous function,到任何精准度ε都可以(只需要2L/ε个neuron就行,L的定义见在这里插入图片描述

但是!相同的参数下,deep能产生更多pieces:
在这里插入图片描述
如图在最佳情况下,八个neuron最多能产生28的pattern,即28个linear pieces,虽然某些pattern是不合理的,但也只是少部分不行而已。
在这里插入图片描述

3-1 Intro of GAN

如果GAN只用Generator的话就只能用VAE的做法,但需要考虑的东西会多很多,因为需要每一个pixel与隔壁的pixel有联系,这样就需要更深的network:
在这里插入图片描述
也有只用Discriminator的,相比只用Generator能识别的更好,但问题是生成图片比较麻烦…需要求解这个来训练:
在这里插入图片描述

虽然好像能实现,所以还是Generator和Discriminator分开会比较好。

GAN
在这里插入图片描述
在这里插入图片描述
Discriminator训练需要Realistic Negative Examples来进行训练,训练是一个迭代过程(通过对argmaxD(X)进行generation,然后输出后重新丢回去当negative examples):
在这里插入图片描述
用图像表示的话过程是这样的(学习的时候会有认为那些没有example的部分分数高(找弱点
),那么就生成那部分分数高的又不是real的来作为negative example):
在这里插入图片描述
这按理说Discriminator就可以自己生成图了,但实际上对argmaxD(X)进行Generation是比较复杂的过程(线性假设限制,非线性解不出),所以可以用Generator代替:
在这里插入图片描述

3-2 Conditional GAN

传统方法做Test-to-Image会出现典型问题(如输入train他输出的实际上是多张image的平均)
在这里插入图片描述
而且传统的GAN的D只能评分,不管他输出的是什么,这样会导致G产生的图片没有类别,只要求真实。
在这里插入图片描述
CGAN与GAN的区别分别在D和G上有了不同,G多了Condition为参数,D则从单纯的真实度打分器变成了还要考虑类别正误的打分器:
在这里插入图片描述
算法就是这样了:
在这里插入图片描述
如今有的D的设计有这两种,第一种用的比较多但第二种似乎更合理因为它能得出低分的原因:
在这里插入图片描述
StackGAN的做法:先train出小图,再拿小图train大…
在这里插入图片描述

Image-to-Image也是一样,用传统Supervised Learning的话会产生很模糊的图像。
在这里插入图片描述
用GAN能很好解决这个问题,但GAN由于产生出来的图太过真实反而没有符合原来输入的pattern,这时候如果再结合supervised learning的话效果会出奇的好。
在这里插入图片描述
生成图太大给D的话就会很慢很麻烦,可以做Patch GAN(不过需要自己调参,控制检查区域的大小
在这里插入图片描述

声音处理上的思路
在这里插入图片描述
影像处理的思路
在这里插入图片描述

3-3 Unsupervised Conditional Generation

Point: Transform an object from one domain to another without paired data.
两种方法:

  1. 还是会保留input的整体信息,只是在纹理以及色彩等方面进行改变
  2. input和output可能就完全不一样了
    在这里插入图片描述

Direct Transformation方式

  • 方法1:直接用GAN框架:
    在这里插入图片描述
  • 方法2:在直接产生的基础上,希望 G X → Y G_{X\to Y} GXY的输出与输入经过Encoder Network之后的code尽可能接近(其中的Encoder Network可以直接使用类似VGG等训练好的模型)在这里插入图片描述
  • 方法3:CycleGAN,即通过 G X → Y G_{X\to Y} GXY G Y → X G_{Y\to X} GYX能够将"变化"转回去在这里插入图片描述
    CycleGAN会有将一些细节隐藏,藏信息在G生成的图片里且肉眼看不出来,来让还原出来的图与原来更像,但那样偷懒并不是我们想要的。

CycleGAN, a Master of Steganography(大屁眼子)

  • 方法4:用StarGAN实现不同的风格转换(一般来说如下图(a)可能就需要设计 C k 2 C_{k}^2 Ck2个CycleGAN来实现,但StarGAN只用一个统一的架构就完成了!在这里插入图片描述
    他是这样实现的:
    在这里插入图片描述

Projection to Common Space方式

这种方法的思想在于希望两个Domain经过转换可以有一个"公共的code域",即希望 E N X EN_X ENX E N Y EN_Y ENY(两者参数是不一样的)产生的Code具有相同的域(比如第一维代表同一个特征—如戴眼镜等等)
在这里插入图片描述

  • 方法1:共用参数,即将 E N X EN_X ENX E N Y EN_Y ENY的后面部分参数,以及 D E X DE_X DEX D E Y DE_Y DEY的前面部分参数共享—这样带来的好处就是,强制code变成同一个域了,且不共享的参数部分又允许各个域之间确实能够存在差异;而共享的部分又能够提取出公共的特点。在这里插入图片描述

这种方法有用在了CoupleGAN里。

  • 方法2:加一个Domain Discriminator,望 E N X EN_X ENX产生的code能够被Domain Discriminator误以为是 E N Y EN_Y ENY产生的在这里插入图片描述
  • 方法3:Cycle Consistency在这里插入图片描述

这种方法有用在了ComboGAN里。

  • 方法4:Semantic Consistency,其实和方式3基本一样的,只是在比较的时候采用: E N X EN_X ENX产生的code1和经过 D E Y + E N Y DE_Y+EN_Y DEY+ENY产生的code2尽可能相近在这里插入图片描述

然后这个又用在了XGAN里。

名言警句

Hungyi Lee:学这个有什么用?到时候外星人来了时候会对我们进行降维打击啊!我们学会这个技术就能先把自己二维化就能躲开外星人的降维打击。

声音转换的思路

在这里插入图片描述
Supervised的方式,我们必须收集一堆两个人讲的一一对应的话;可是Unsupervised的方式则完全不需要,只需要有一堆两个人的话就好,我们就可以运用类似CycleGAN等上面介绍的方式达到一句话从一个人的声音转为另一个人的声音

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值