人工智能深度学习之对抗生成网络实战(cyclegan,stargan,gan)

一。介绍

cyclegan:例马变成斑马,地图合成

stargan:例人脸合成,变声器

gan:例图像超分率重构与补全

二。对抗生成网络架构原理与实战解析

(1)对抗生成网络通俗解释

1)对抗生成网络:主要是“生成”,即由手上数据生成你想要的效果。

2)超分辨率重构:低分辨率图像经计算机学习,损失函数生成高分辨率图像。例公安人员要求对犯人生成高分辨率图像。

(2)生成器(G)------>判别器(D),生成器最终目的是骗过判别器(预测生成的图片与真实的图片很像);判别器技术也要不断升级,目的是识别出生成出来的东西。例如造假币的技术越来越好,生成出假币出来;然后银行就是判别器(有真币),结合真假两类进行分类,对这些真,假币能判断出来;最后还有一个损失函数的定义。生成器与判别器就是矛盾关系,相互对抗。

(2)损失函数解释说明

损失函数: loss(o,t)=-1/n *(y),其中y=t[i]*log(o[i])+(1-t[i])*log(1-o[i]), y是指以i为变量求总和后的值,t是指概率值(例如标签值)。例如 输入的是三行三列的矩阵,有些值不是0到1范围之间的,故先对这些数据进行一个sigmoid()操作把全部数据搞成0到1之间;标签值也是由三行三列的矩阵构成(0和1构成);然后结合这两种值调用损失函数计算出损失函数值。例如:先求出第一行中的三个损失函数值,r11=y=0*math.log(0.8707)+(1-0)*math.log((1-0.8707));

r12=y=1*math.log(0.7517)+(1-1)*math.log((1-0.7517));

r13=y=1*math.log(0.8162)+(1-1)*math.log((1-0.8162));

r1=loss(o,t)=-1/n *(y)=(-1/3)*(r11+r12+r13);

这里假设输入的第一行的三个值分别是0.8707,0.7517,0.8162;而t[i]分别是0,1,1,也是标签值中的一行三列中的值。同理其它第二行,第三行的损失函数值也是这样求出来即可(例如r2,r3),

最后求出损失函数值是bceloss=(r1+r2+r3)/3; print(bceloss);

上面步骤是说怎样计算损失函数的值。上面的计算损失函数值的步骤其实在torch中已经封装好from torch import nn;

loss=nn.BCEWithLogitsLoss();print(loss(输入的矩阵值,标签的矩阵值));

(3)数据读取模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_58351028

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值