首页科技 › 微软宾夕法尼亚州立探讨院15三页最新GAN教程(附代码)

微软宾夕法尼亚州立探讨院15三页最新GAN教程(附代码)

原标题:微软哈佛商讨院一伍3页最新GAN教程(附代码)

人生苦短笔者用GAN

【导读】SebastianNowozin在机械学习夏日课程(MLSS
二〇一八年一月)做了关于GAN的教学,1五三页PPT详尽的演说了GAN的升高系统和最新进展,其它她所提供原版大小为2八陆MB
的pptx中带有大批量动画效果,对学科的明亮很有扶持。

率先声雅培下,本教程面向入门五毛党,大腕能够绕道,闲话不多说,先方1波广告。(高端GAN游戏的方法),怎么说,小编越来越觉获得人工智能正在迎来生成模型的年代,在此以前海量数据磨练模型的措施有个别急功近利,看似效果很好,实际上机器什么卵都未有学到(至少从迁移性上看不够一点暗意,不过就图片领域来说另当别论,在CV领域监督检查学习或然相当成功)。
唯独难点来了,GAN这么屌这么牛逼,笔者怎么搞?怎么入门?何人带作者?慌了!

SebastianNowozin是微软宾夕法尼亚钻探院首席研讨院,专注于无监察和控制于表示学习。他在GAN领域做了汪洋的行事,同时也是名满天下的f-GAN的作者。

莫慌,50行代码你就足以形成无监察和控制学习大腕

本人最讨厌这么些,嘴里一堆算法,算法达成不出来的人。因为小编爱不释手看看结果啊!越发是部分学科,正是将舆论,鸡巴故事集奖那么多有哪些用?你码代码给小编看呀,笔者不掌握数码是何等,不清楚输入维度是何许,输出什么,里面到底发生了什么样变化自己怎么学?那就有点像,标准的在大漠里教您钓鱼,以作者之见,杂谈应该是终极才去看的东西。然则难题在于,你要有2个入门的学科啊。笔者想那是一个边境线,实验钻探里面,理论和伊始的边境线。
那篇教程正是辅导人了。应接参加生成模型队五。那一个科目会直接维持更新,因为科技(science and technology)每日风云突变,同时笔者还会加盟过多新剧情,革新一些在之后看来是错误的传道。

第3,我们废话不多说了,直接show you the code:

import numpy as np
import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.autograd import Variable
import matplotlib.pyplot as plt
from scipy import stats


def generate_real_data_distribution(n_dim, num_samples):
    all_data = []
    for i in range(num_samples):
        x = np.random.uniform(0, 8, n_dim)
        y = stats.lognorm.pdf(x, 0.6)
        all_data.append(y)
    all_data = np.array(all_data)
    print('generated data shape: ', all_data.shape)
    return all_data


def batch_inputs(all_data, batch_size=6):
    assert isinstance(all_data, np.ndarray), 'all_data must be numpy array'
    batch_x = all_data[np.random.randint(all_data.shape[0], size=batch_size)]
    return Variable(torch.from_numpy(batch_x).float())


def main():
    # 给generator的噪音维数
    n_noise_dim = 30
    # 真实数据的维度
    n_real_data_dim = 256
    num_samples = 666
    lr_g = 0.001
    lr_d = 0.03
    batch_size = 6
    epochs = 1000

    real_data = generate_real_data_distribution(n_real_data_dim, num_samples=num_samples)
    print('sample from real data: \n', real_data[: 10])

    g_net = nn.Sequential(
        nn.Linear(n_noise_dim, 128),
        nn.ReLU(),
        nn.Linear(128, n_real_data_dim)
    )

    d_net = nn.Sequential(
        nn.Linear(n_real_data_dim, 128),
        nn.ReLU(),
        nn.Linear(128, 1),
        nn.Sigmoid()
    )

    opt_d = torch.optim.Adam(d_net.parameters(), lr=lr_d)
    opt_g = torch.optim.Adam(g_net.parameters(), lr=lr_g)

    for epoch in range(epochs):
        for i in range(num_samples // batch_size):
            batch_x = batch_inputs(real_data, batch_size)
            batch_noise = Variable(torch.randn(batch_size, n_noise_dim))

            g_data = g_net(batch_noise)

            # 用G判断两个输出分别多大概率是来自真正的画家
            prob_fake = d_net(g_data)
            prob_real = d_net(batch_x)

            # 很显然,mean里面的这部分是一个负值,如果想整体loss变小,必须要变成正直,加一个负号,否则会越来越大
            d_loss = -torch.mean(torch.log(prob_real) + torch.log(1 - prob_fake))
            # 而g的loss要使得discriminator的prob_fake尽可能小,这样才能骗过它,因此也要加一个负号
            g_loss = -torch.mean(torch.log(prob_fake))

            opt_d.zero_grad()
            d_loss.backward(retain_variables=True)
            opt_d.step()

            opt_g.zero_grad()
            g_loss.backward(retain_variables=True)
            opt_g.step()

            print('Epoch: {}, batch: {}, d_loss: {}, g_loss: {}'.format(epoch, i, d_loss.data.numpy()[0],
                                                                        g_loss.data.numpy()[0]))

if __name__ == '__main__':
    main()

那一个代码,总共,也正是90行,宗旨代码50行,基本上,比你写二个别的程序都端,什么红黑算法,什么排序之类的。作者个人相比欣赏简约,小编不少时候不喜欢太鸡巴隆昌的代码。

在演练 GAN
方面仿佛有两多少个阵营:先是个自然就是GAN的发明IanGoodfellow以及她所供职的OpenAI和谷歌(Google)的壹帮切磋人口;**其次个有力的营垒也即是以那篇教程我塞Bath蒂恩Nowozin 为表示的微软阵营**;第壹就是其余了

一直起初练习呢

这个GAN很简单,三部分:

  • real data生成,这些real
    data大家怎么去模拟呢?注意那里用的多寡是二维的,不是图表,图片是三个维度的,贰维你能够视作是csv,大概是种类,在那么些中我们每一行,相当于二个样书,是sample自某些布满的数额,那里用的布满式lognorm;
  • d_net 和
    g_net,那里五个net都是非常的小,小到爆炸,那借使1旦用tensorflow写就有点蛋疼了,小编选拔PyTorch,一目理解;
  • loss,loss在GAN中至极关键,是接下去的首要。

OK,一阵复制粘贴,你就可以陶冶一个GAN,这一个GAN用来做什么样?正是您轻便输入1个噪音,生成模型将会转移3个和lognorm分布1致的多寡。也正是说,生成模型学到了lognrom布满。那能表达怎么着?神经互连网学到了几率!用到图片里面正是,他领略哪个颜色快也许是怎么事物,那也是前几日的CycleGAN,
DiscoGAN的原理。

亚洲城手机客户端登录,本次教程首要有以下几个部分:

自己吃饭去了

未完待续...

概率模型

来了

持续刚才的,好像作者写的稿子未有人看呀,伤感。自身写本身看呢,哎,小编骚味改了1晃代码,loss函数部分,在此以前的写错了,笔者偷一张图把。

亚洲城手机客户端登录 1

以此是公式,原始GAN故事集里面给的公式,不过毫无疑问,正如过江之鲫人说的那样,GAN很轻巧漂浮:

Epoch: 47, batch: 66, d_loss: 0.7026655673980713, g_loss: 2.0336945056915283
Epoch: 47, batch: 67, d_loss: 0.41225430369377136, g_loss: 2.1994106769561768
Epoch: 47, batch: 68, d_loss: 0.674636960029602, g_loss: 1.5774009227752686
Epoch: 47, batch: 69, d_loss: 0.5779278874397278, g_loss: 2.2797725200653076
Epoch: 47, batch: 70, d_loss: 0.4029145836830139, g_loss: 2.200833559036255
Epoch: 47, batch: 71, d_loss: 0.7264774441719055, g_loss: 1.5658557415008545
Epoch: 47, batch: 72, d_loss: 0.46858924627304077, g_loss: 2.355680227279663
Epoch: 47, batch: 73, d_loss: 0.6716371774673462, g_loss: 1.7127293348312378
Epoch: 47, batch: 74, d_loss: 0.7237206101417542, g_loss: 1.4458404779434204
Epoch: 47, batch: 75, d_loss: 0.9684935212135315, g_loss: 1.943861961364746
Epoch: 47, batch: 76, d_loss: 0.4705852270126343, g_loss: 2.439894199371338
Epoch: 47, batch: 77, d_loss: 0.4989328980445862, g_loss: 1.5290288925170898
Epoch: 47, batch: 78, d_loss: 0.44530192017555237, g_loss: 2.9254989624023438
Epoch: 47, batch: 79, d_loss: 0.6329593658447266, g_loss: 1.7527830600738525
Epoch: 47, batch: 80, d_loss: 0.42348209023475647, g_loss: 1.856258749961853
Epoch: 47, batch: 81, d_loss: 0.5396828651428223, g_loss: 2.268836498260498
Epoch: 47, batch: 82, d_loss: 0.9727945923805237, g_loss: 1.0528483390808105
Epoch: 47, batch: 83, d_loss: 0.7551510334014893, g_loss: 1.508225917816162
Epoch: 47, batch: 84, d_loss: 2.4204068183898926, g_loss: 1.5375216007232666
Epoch: 47, batch: 85, d_loss: 1.517686128616333, g_loss: 0.6334291100502014
Epoch: 47, batch: 86, d_loss: inf, g_loss: 0.7990849614143372
Epoch: 47, batch: 87, d_loss: nan, g_loss: nan
Epoch: 47, batch: 88, d_loss: nan, g_loss: nan
Epoch: 47, batch: 89, d_loss: nan, g_loss: nan
Epoch: 47, batch: 90, d_loss: nan, g_loss: nan
Epoch: 47, batch: 91, d_loss: nan, g_loss: nan

你一旦train一下的话会开采,到一定程度就会nan,这一个nan笔者就不可能清楚了,按道理而言,从loss来看我们定义的来自以log,固然为Infiniti那么应该是log(0)了,不过我们的discriminator出来的函数是sigmoid啊,sigmoid不容许为0,只看是0-一且不包蕴闭区间。这一个标题比较玄学。

既然nan的话,小编也不追究是因为什么了,同理可得这么些首要在于loss,因为背后GAN的变种基本上皆以在loss的磨练方式上。

GANs的多少个示范应用

GAN 生成mnist

小编们明日玩一下mnist把。

评说规则

交流

作者见了2个GAN群,加我微信让自家拉进去。jintianiloveu,
顺便下载三个自家做的app吧,内侧中,专门用来看仙女图片的,你知道。。传送门

GAN 模型

  • 差别性与f-GAN 家族
  • 依靠积分可能率衡量(IPM)的GAN: MMD
  • 依照积分可能率衡量(IPM)的GAN: Wasserstein GANs

标题与什么核查:方式崩溃(modecollapse)与不安静(Instability)

隐式模型

开放性钻探难题

GAN网络是近两年深度学习世界的后起之秀,权且天气无两。从Computer视觉顶会盛会CVPSportage201八收受的舆论总结就可知一斑:依照谷歌 Research的钻研物管理学家JordiPont-Tuset做的一个计算,它经过翻看那几个故事集的连串,看到了前途深度学习的发展趋势。结果,他意识变化对抗网络(GAN)强势出击,大有顶替“深度学习”(Deep
Learning)之势。

下边那张图彰显了CVPLacrosse201八的诗歌题目中,关键词GAN、Deep,以及LSTM的对峙统一:

亚洲城手机客户端登录 2

在平日的“深度学习”走下坡路的还要,GAN逐步的造成新宠,总计显示有八%的随想题目中蕴藏GAN(那壹数目相比较201七年提升了2倍多)。

别的用尽字母表的各个GAN的变体 X-GAN
的舆论数量也是激烈增加:

亚洲城手机客户端登录 3

  • 后台回复“GANMLSS” 就能够得到最新PPT下载链接~

参照链接:

附PPT全文:

亚洲城手机客户端登录 4

亚洲城手机客户端登录 5

亚洲城手机客户端登录 6

亚洲城手机客户端登录 7

亚洲城手机客户端登录 8

亚洲城手机客户端登录 9

亚洲城手机客户端登录 10

亚洲城手机客户端登录 11

亚洲城手机客户端登录 12

亚洲城手机客户端登录 13

亚洲城手机客户端登录 14

亚洲城手机客户端登录 15

亚洲城手机客户端登录 16

亚洲城手机客户端登录 17

亚洲城手机客户端登录 18

亚洲城手机客户端登录 19

亚洲城手机客户端登录 20

亚洲城手机客户端登录 21

亚洲城手机客户端登录 22

亚洲城手机客户端登录 23

亚洲城手机客户端登录 24

亚洲城手机客户端登录 25

亚洲城手机客户端登录 26

亚洲城手机客户端登录 27

亚洲城手机客户端登录 28

亚洲城手机客户端登录 29

亚洲城手机客户端登录 30

亚洲城手机客户端登录 31

亚洲城手机客户端登录 32

亚洲城手机客户端登录 33

亚洲城手机客户端登录 34

亚洲城手机客户端登录 35

亚洲城手机客户端登录 36

亚洲城手机客户端登录 37

亚洲城手机客户端登录 38

亚洲城手机客户端登录 39

亚洲城手机客户端登录 40

亚洲城手机客户端登录 41

亚洲城手机客户端登录 42

亚洲城手机客户端登录 43

亚洲城手机客户端登录 44

亚洲城手机客户端登录 45

亚洲城手机客户端登录 46

亚洲城手机客户端登录 47

亚洲城手机客户端登录 48

亚洲城手机客户端登录 49

亚洲城手机客户端登录 50

亚洲城手机客户端登录 51

亚洲城手机客户端登录 52

亚洲城手机客户端登录 53

亚洲城手机客户端登录 54

亚洲城手机客户端登录 55

亚洲城手机客户端登录 56

亚洲城手机客户端登录 57

亚洲城手机客户端登录 58

亚洲城手机客户端登录 59

亚洲城手机客户端登录 60

亚洲城手机客户端登录 61

亚洲城手机客户端登录 62

亚洲城手机客户端登录 63

亚洲城手机客户端登录 64

亚洲城手机客户端登录 65

亚洲城手机客户端登录 66

亚洲城手机客户端登录 67

亚洲城手机客户端登录 68

亚洲城手机客户端登录 69

亚洲城手机客户端登录 70

亚洲城手机客户端登录 71

亚洲城手机客户端登录 72

亚洲城手机客户端登录 73

亚洲城手机客户端登录 74

亚洲城手机客户端登录 75

亚洲城手机客户端登录 76

亚洲城手机客户端登录 77

亚洲城手机客户端登录 78

亚洲城手机客户端登录 79

亚洲城手机客户端登录 80

亚洲城手机客户端登录 81

亚洲城手机客户端登录 82

亚洲城手机客户端登录 83

亚洲城手机客户端登录 84

亚洲城手机客户端登录 85

亚洲城手机客户端登录 86

亚洲城手机客户端登录 87

亚洲城手机客户端登录 88

亚洲城手机客户端登录 89

亚洲城手机客户端登录 90

亚洲城手机客户端登录 91

亚洲城手机客户端登录 92

亚洲城手机客户端登录 93

亚洲城手机客户端登录 94

亚洲城手机客户端登录 95

亚洲城手机客户端登录 96

亚洲城手机客户端登录 97

亚洲城手机客户端登录 98

亚洲城手机客户端登录 99

亚洲城手机客户端登录 100

亚洲城手机客户端登录 101

亚洲城手机客户端登录 102

亚洲城手机客户端登录 103

亚洲城手机客户端登录 104

亚洲城手机客户端登录 105

亚洲城手机客户端登录 106

亚洲城手机客户端登录 107

亚洲城手机客户端登录 108

亚洲城手机客户端登录 109

亚洲城手机客户端登录 110

亚洲城手机客户端登录 111

亚洲城手机客户端登录 112

亚洲城手机客户端登录 113

亚洲城手机客户端登录 114

亚洲城手机客户端登录 115

亚洲城手机客户端登录 116

亚洲城手机客户端登录 117

亚洲城手机客户端登录 118

亚洲城手机客户端登录 119

亚洲城手机客户端登录 120

亚洲城手机客户端登录 121

亚洲城手机客户端登录 122

亚洲城手机客户端登录 123

亚洲城手机客户端登录 124

亚洲城手机客户端登录 125

亚洲城手机客户端登录 126

亚洲城手机客户端登录 127

亚洲城手机客户端登录 128

亚洲城手机客户端登录 129

亚洲城手机客户端登录 130

亚洲城手机客户端登录 131

亚洲城手机客户端登录 132

亚洲城手机客户端登录 133

亚洲城手机客户端登录 134

亚洲城手机客户端登录 135

亚洲城手机客户端登录 136

亚洲城手机客户端登录 137

亚洲城手机客户端登录 138

亚洲城手机客户端登录 139

亚洲城手机客户端登录 140

亚洲城手机客户端登录 141

亚洲城手机客户端登录 142

亚洲城手机客户端登录 143

-END-

专 · 知

事在人为智能领域二多少个大旨知识资料全集获取与插足专知人工智能服务群:
迎接微信扫一扫参预专知人工智能知识星球群,获取专门的学问知识教程录制素材和与专家交换咨询!

请PC登入www.zhuanzhi.ai大概点击阅读原著,注册登6专知,获取更加多AI知识资料!

请加专知小帮手微信(扫一扫如下二维码增加),参加专知大旨群(请备注核心项目:AI、NLP、CV、
KG等)交换~

AI 项目才具 & 商务合营:bd@zhuanzhi.ai,
或扫描下边2维码联系!

请关心专知公众号,获取人工智能的专业知识!回来乐乎,查看越多

主要编辑:

转载本站文章请注明出处:亚洲城手机客户端登录 https://www.little-lily.com/?p=7046

上一篇:

下一篇:

相关文章