深度卷积生成对抗网络(DCGAN)简介及图像生成仿真(附代码)
深度卷积生成对抗网络(DCGAN)和图像生成模拟(带代码)简介
卷积神经网络简介
近年来,作为热机学习模型,生成的对抗网络(GAN)受到了极大的关注,但是生成的对抗网络仍然存在一些问题。因此,研究人员将生成性对抗网络与卷积生成的对抗网络相结合,即深卷积生成的对抗网络(DCGANS)并取得了良好的结果。因此,我们将首先简要介绍深度学习 - 卷积神经网络领域中最重要的神经网络。
图像识别什么是图像识别
图像识别技术背后的原理不是很困难,但是它需要处理的信息非常麻烦。没有稀薄的空气来生产计算机的处理技术。它的灵感来自生活实践的学者,并使用程序模拟它。在原则上,计算机图像识别技术与人类图像识别之间没有根本区别,但是机器缺乏人类对感觉和视觉差异的影响。人类形象识别不仅是由整个图像心灵中存储的记忆所识别的。当我们识别图像时,我们首先根据图像的特征对这些图像进行分类,然后通过每个类别的特征识别图像。但是,很多时候我们没有意识到这一点。当我们看到图像时,我们的大脑很快就会感觉到我们看过此图像还是类似的图像。实际上,“看到”和“传感”之间已经经历了快速的识别过程,并且这种识别过程与搜索有些相似。在此过程中,我们的大脑将基于在存储内存中已经分类的类别识别,以查看是否存在与图像相同或相似功能的存储记忆,从而识别是否已经看到了图像。机器图像识别技术也是如此,该技术通过分类和提取重要功能并消除不必要的信息来标识图像。这些机器提取的功能有时非常明显,有时很普通,这极大地影响了机器识别率。简而言之,在计算机视觉识别中,图像的内容通常由图像特征描述。
图像识别中的挑战
不足和过度拟合
过度拟合:培训数据太单一,未知数据的预测效果很差:
过度拟合的解决方案是增加数据量
不足:培训数据太复杂,训练效果很差
解决不足问题的方法是增加模板数量(增加模型能力)
卷积网络的基本结构
卷积的含义
对于在不同位置的动漫图像,如果使用了模板匹配方法,则至少需要4个神经元才能一一匹配。这样,计算量相对复杂,需要大量参数。如果我使用的是卷积内核kaiyun全站app登录入口,我只需要一个卷积内核,然后扫描代码以完成它。因此,参数的数量很少,它易于训练,更方便地控制。此外,也可以降低过度拟合现象,并提高性能。这是卷积神经网络的最终意义。
如何计算卷积
我们可以理解卷积内核是一个观察者,他以几个权重观察,偏见以执行特征加权操作。
卷积是卷积内核执行从上到下从左到右进行加权操作的卷积内核的过程。
如何计算卷积 - 步长
您需要移动卷积内核以观察此图片,并且所需的参数是步长大小。假设运动的步长为1,那么此人的最终观察结果就是一个例子:
5x5图片,使用步长计算来获得3x3尺寸的观察结果
如果移动的步长为2,则结果是:通过确定两个步骤,使用5x5图片和3x3卷积大小来获得2×2大小的观察结果。
如何计算卷积 - 零填充尺寸
零填充意味着填充图片像素周围0的像素圆。有两种方法:相同且有效
如果卷积提取后图像变小,则提取后的图像不会减少。我们可以在像素的外围填充0。有两种填充方法开元棋官方正版下载,相同和有效。
相同:填充0像素kaiyun全站网页版登录,以使卷积提取后图像大小保持不变。
有效:图像变小
合并层结构
合并层的计算
合并类似于卷积,但没有重量
输入:输入大小
F:卷积内核大小
P:零填充大小
S:罢工大小
著名的卷积神经网络简介Alexnet
googleleenet
重新连接
主要特征:跨层网络连接,跨层向前传播,因此可以快速传播到低层网络
Densenet
DCGAN的基本简介DCGAN的原始论文简介
近年来,使用卷积网络的监督学习已被广泛用于计算机视觉应用程序中。相反,使用CNN的无监督学习受到了较少的关注。在本文中,我们希望在监督的学习CNN和无监督的学习之间建立一个桥梁。我们介绍了一类称为深卷积生成对抗网络(DCGAN)的结构类,它们具有一些建筑约束,并证明它们是无监督学习的有力候选方法。作者在各种图像数据集上进行培训,有力的证据表明,我们深层的卷积对抗对手可以在发电机和歧视器中学习图像的表示。此外,我们将学习的功能用于新任务 - 将其适用性作为一般图像表示。
摘要提出的问题是,CNN很少用于无监督的学习,其目标是在监督学习和无监督学习之间建立桥梁。因此,作者提出了DCGAN。实验结果证明GAN可以学习层次结构特征。
介绍和作者的贡献:
DCGAN网络结构
发电机以100维噪声开始,在提取第一层卷积后,它是4×4×1024卷积内核。
DCGAN实际上是CNN+GAN,结构保持不变。只是发电机和歧视器使用卷积神经网络。发电机使用上述网络结构来生成假图片。原始论文中未指定歧视者使用的特定网络。我们可以使用一般的CNN,例如Densenet。
DCGAN培训的方法类似于训练的步骤。
DCGAN摘要和潜在客户
2D图像生成应用简介
二维图像生成是在DCGAN网络的作用下将一堆随机噪声转换为二维图片的过程。
数据阅读和预处理
读取磁盘图像,将图像大小调整到指定的大小,然后将图像归一化为-1和1之间。
关键代码如下:
// An highlighted block
def read_img2numpy(batch_size=64,img_h=64,img_w=64,path="data/faces"):
"""
读取磁盘图像,并将图片重新调整大小
:param batch_size: 每次读取图片数量
:param img_h: 图片重新调整高度
:param img_w: 图片重新调整宽度
:param path: 数据存放路径
:return: 图像numpy数组
"""
file_list = os.listdir(