自从电脑诞生后,人类就有一个梦想,让它像人类一样思考。随着人工智能技术的飞速发展,计算机的思考能力突飞猛进,在很多方面已经通过了所谓的“图灵测试”。特别是在深度学习这一领域技术上,电脑不但具备了很多原以为人类才可能具备的能力,而且某些认知能力已经超过了人的水平,例如在神经网络技术的支持下,电脑在图片识别上的准确率已经超过了人类。

然而电脑目前只具备识别力很难具有像人一样的创造力。识别力是你能知道这是个什么东西,然而创造力要求你在某个东西还没存在前你就能想象它,同时你还能将它创造出来,就像乔布斯创造iPhone那样。随着技术不断进步,人类在识别能力上与计算机比拼时会节节败退,唯有创造力领域计算机暂时还无法撼动,但这种情况正在发生变化。

近年来兴起一种全新深度学习技术叫生成型对抗性网络,它能让计算机具备创造力。前不久流行一种人工智能应用叫“变老相机”,用它给现在的你拍摄一张照片,它能够显示出你七八十岁的样子。同时现在还有一种天衣无缝的换脸技术,你对着摄像头说一段话,然后可以把你的脸换成任何一个人,而且这张脸能像你一样说相同的话,面部表情,脸部肌肉,嘴型变化跟你一模一样,也就是几乎没有人能发觉其中的猫腻,除了你之外,这种技术也引发了有关公共安全的广泛担忧。

本课程的目的就是想要以通俗易懂的方式将这种技术介绍给你,通过步步为营的方式让你扎实的掌握这种先进的前沿人工智能技术。首先我们比较一下这种技术与以前能识别图片的技术有什么区别。传统神经网络的功能在于,当它经过大量的数据训练后,它能够认知新数据,例如给定大量的猫狗图片给网络训练后,以后传给他新的图片时,它就能识别图片中是猫还是狗:

生成型网络在于,把大量猫狗图片对他进行训练后,它能够绘制出一只猫或狗的图片,图片里的猫或狗跟它用于训练时的图片不一样,这意味着它在原来识别过图片的基础上进行了创新,就像乔布斯从原来电话形态中创新出iPhone一样,iPhone是一种电话,但与以前的电话又决然不同,例如给网络识别很多人脸图片后网络能创造出不存在但你根本无法识别出它是假的人脸图片:

如上图,我告诉你左边三张大图所示的人脸是计算机虚拟出来的,你会不会觉得异常震惊。接下来我们看看网络时如何构造让人根本无法分辨真假的原理来的。假设我们现在有50个不同类型的人偶,如下图:

人偶主要有几个特征不同,第一是发型,第二是头发颜色,第三是眼镜类型,第四是衣服颜色,第五是衣服类型。根据观察发型有7中不同类别,头发颜色有6种类别,眼镜有3种类别,衣服的类型有4种,衣服颜色有8种,因此总共可以形成的搭配总数有7*6*3*4*8=4032种,那么我们怎么生成新类型的人偶呢,诀窍在于“混搭”,也就是从不同特征中选择一种形成当前图片中没有的风格。

但是“混搭”可不是蒙着眼睛随便乱来,我们需要在当前给定情况下进行合理搭配。当前有50个人偶,于是给定样本量就是50,我们先统计不同类型特征占据样本量中的比率,光头有7个因此比率为7/50=0.14,长披肩发有23个,比率为23/50=0.46,黑头发有7个对应比率为7/50=0.14,红色头发有8个,比率为8/50=0.16,其他的特征依次类推来统计相应特征在样本量中的比率。

接下来我们就得按照比率出现的情况来混搭,当某种比率出现几率越大,混搭时选择它的概率就越大。我们先看如何生成新人偶的头发,首先我们在区间[0,1]内生成一个随机数,如果随机数的值处于范围[0,0.14],我们就让新人偶对应光头,如果随机数处于区间[0.14, 0.14+0.46]之内,我们就让人偶对应长披肩发,其他不同特征也如此以随机化的方式来选择,这种依靠样本量呈现的概率统计对不同特征进行混搭而形成的最终情况就是我们所说的“生成”。由此我们对应50个人偶,通过给定混搭方式得到的新人偶如下:

我们要特别注意到,混搭算法具有不确定性。也就是你第一次执行混搭算法得到一种情况,第二次执行算法又得到不同情况,这是因为我们会以不同概率来选择不同特征,唯一可以确定的是,相应特征在给定样本量的情况下出现的概率越大,在执行混搭算法时它被选择的可能性就越大。

在很多情况下,混搭没那么简单。例如对于人脸生成来说,图片中每一个像素的取值对应于一种特征,如果图片的规格为32*32=1024,那么它对应于1024种特征,如果每个像素点有256种取值,这意味着每种特征有256种不同变化。如果我们按照前面描述的方式来对像素点进行“混搭”,那是不可能生成新的人脸来。

原因在于我们在对人偶进行混搭时,我们假设各个特征的出现情况与其他特征无关,但对于图片来说,某个像素点的取值与它周围像素点的取值高度相关,因此我们不能对单一像素点像前面那样进行随机化选择,但问题在于我们如何得知一个像素点与其他像素点的相互影响关系呢,这就需要使用深度学习技术来挖掘出像素点之间的相互影响关系。

在很多时候,我们不需要把所有特征都记录下来而是只要记录关键特征,例如下面图形所表示的圆柱体:

最简单的方法是记住图片中每个像素点的数值,如果图片大小为28*28,那么我们就需要记录784个特征,实际上我们不需要记录这么多信息,我们只需要记录圆柱底部圆心的左边,半径的大小,以及高度即可,这些信息合在一起形成一个向量[x,y,r,h],这个向量将关键向量,在英语中成为latent vector。一旦掌握这些信息,我们完全可以把圆柱绘制出来。

如果把上面圆柱全部换成人脸也是同样的道理。只不过对于人脸我们无法抽取出关键向量,这时候就得需要神经网络来完成,在后面章节中我们将介绍如何使用神经网络识别人脸以及构造出虚拟人脸。

更详细的讲解和代码调试演示过程,请点击链接

更多技术信息,包括操作系统,编译器,面试算法,机器学习,人工智能,请关照我的公众号:

生成型对抗性网络的基本定义和介绍:什么叫生成相关推荐

  1. (论文加源码)基于DEAP脑电数据集的脑电情绪识别(利用生成对抗性网络进行特征提取和数据扩充)

    本篇论文发表于2022年的顶级期刊,代码可以完整运行,详情见第八节或者个人主页 论文源码见个人主页:https://download.csdn.net/download/qq_45874683/876 ...

  2. 使用 PyTorch 建立您自己的生成对抗性网络

    Generative Adversarial Networks is the most interesting idea in machine learning in last ten years. ...

  3. 机器学习数学原理(3)——生成型学习算法

    机器学习数学原理(3)--生成型学习算法 在上一篇博文中我们通过广义线性模型导出了针对二分类的Sigmoid回归模型以及针对多项分类的Softmax回归模型,需要说明的是,这两种算法模型都属于判别学习 ...

  4. 电子商务计算机网络的定义,网络营销的定义概念是什么

    网络营销的定义概念是什么 随着互联网影响的进一步扩大,人们对网络营销理解的进一步加深,以及出现的越来越多网络营销推广的成功案例,网络营销到底是什么?下面是小编收集整理的网络营销的定义概念是什么,欢迎阅 ...

  5. 规模最小的计算机网络至少有几台,【单选题】按照网络规模大小定义计算机网络,其中规模最小的是 A. 广域网 B. Internet C. 城域网 D. 局域网...

    [单选题]按照网络规模大小定义计算机网络,其中规模最小的是 A. 广域网 B. Internet C. 城域网 D. 局域网 更多相关问题 [多选] 电梯设备进场后,由()单位共同开箱检验,并进行记录 ...

  6. CartoonGAN_CVPR_2018为照片卡通化而生的对抗网络论文阅读笔记

    CartoonGAN_CVPR_2018 好了 进入正题 话不多说 快上车 CartoonGAN: Generative Adversarial Networks for Photo Cartooni ...

  7. 网路分流器-网络分流器的定义与功能特点

    网络分流器的定义 当需要对网络中的流量进行监控,例如用户上网行为分析.异常流量监测.网络应用监控等,就需要收集网络流量,这里说收集可能不太准确,实际上就是copy一份当前网络流量发送给监控设备,当然这 ...

  8. (转)架构风格与基于网络的软件架构设计(介绍REST)

    随着软件水平在国内的发展,中国程序员的水平也逐渐的在提高,从当年英雄式,到后来的软件作坊,现在越来越多的人开始关注软件架构设计,软件架构师培训也越来越火了,,甚至也有国人自己编著软件架构设计方面的书籍 ...

  9. DL之DCGAN:基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成

    DL之DCGAN:基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成 目录 基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成 设计思路 ...

最新文章

  1. 2019如何学Python?这里有你需要的答案
  2. 从《2018年全球创新指数报告》看中国创新力!
  3. 一个简单好用的Android Tab 设计与实现
  4. 解决PL/SQL查询结果乱码的问题
  5. 【WIN7安装Github遇到的问题】
  6. (8)Python_分割numpy数组
  7. c语言 最大子段和,最大子段和 C语言源码
  8. Otsu最大类间方差法
  9. java使用POI导出Excel,下拉列表联动,单元格合并,日期校验,锁定指定列禁止修改
  10. MATLAB滑动T检验
  11. 实验2014062701:opencv对图像的点操作
  12. 声纹识别demo_声纹识别 · 科大讯飞MSC开发指南-iOS · 看云
  13. 深入浅出搞懂网络的五层协议
  14. teamviewer13绿色便携版
  15. 积分学在计算机行业的应用,浅谈积分激励在计算机项目教学中的应用.doc
  16. PostgreSQL入门
  17. mac安装nvm报错 :HTTP/2 stream 1 was not closed cleanly before end of the underlying stream 解决方案
  18. 4.19 亿条 Facebook 用户账号及电话号码被泄露【智能快讯】
  19. 2021-11-11阿里巴巴双十一高峰如何逆袭,高并发秘诀
  20. PWNHUB 五月公开赛+内部赛 writeup(【5月公开赛】MyNotes TemplatePlay 【胖哈勃内部赛|五月,你好】MockingMail)

热门文章

  1. 科骏达导航端口测试软件,全网最全的导航端口波特率汇总
  2. ubuntu下连接远程打印机
  3. micropython远程升级_Micropython之萝卜狗远程门禁控制系统
  4. 十一回老家买不到票,最后被黄牛套路
  5. 少的有点可怜,955 不加班的公司名单...
  6. 内存白菜,T410上8G了
  7. 透彻说明反正切atan2函数比反正切atan函数的区别
  8. 【QT】实现本地音乐播放器
  9. java集合详解之ArrayList
  10. 程序的本质(指令、数据及其组织形式);线程、进程的作用及其运行机制和区别