卷积神经网络matlab

为什么CNN中的卷积核要旋转180度?

家住魔仙堡 提交于 2020-02-03 01:47:05
目录 1 CNN介绍 2 Why Reference 1 CNN介绍 推荐看这位大佬的文章: 卷积思想理解、Convolutional Neural Network(CNN)卷积神经网络初探 2 Why CNN(卷积神经网络)的误差反传(error back propagation)中有一个非常关键的的步骤就是将某个卷积(Convolve)层的误差传到前一层的池化(Pool)层上,因为在CNN中是2D反传,与传统神经网络中的1D反传有点细节上的不同,下面通过一个简单的例子来详细分解一下这个反传步骤。 假设在一个CNN网络中,P代表某个池化层,K代表卷积核,C代表卷基层,首先来看一下前向(feed forward)计算,从一个池化层经过与卷积核(Kernel)的运算得到卷积层: 将前向计算的步骤进行分解,可以得到以下公式: 下面根据这个前向计算的步骤来分解出反向传播的步骤: 首先要确定误差传播的目的地,从deltaC到deltaP,所以先从deltaP1开始分析 从前面的前向计算过程中可以找出P1参与了C中哪些元素的计算,并且可以根据对应的前向计算得出反向传播的计算公式: 依次类推,还有如下公式: 对于P2 对于P3 对于P4 对于P5 一直可以推到P9 总结这9个反向传播的公式到一起: 进一步可以发现,这9个公式可以用如下的卷积过程来实现: 至此

深度学习-DCGAN论文的理解笔记

泪湿孤枕 提交于 2019-12-05 16:53:29
训练方法 DCGAN 的训练方法跟GAN 是一样的,分为以下三步: (1)for k steps:训练D 让式子[logD(x) + log(1 - D(G(z)) (G keeps still)]的值达到最大 (2)保持D 不变,训练G 使式子[logD(G(z))]的值达到最大 (3)重复step(1)和step(2)直到G 与D 达到纳什均衡 Alec Radford等人于2016年初提出DCGAN以改善GAN的可训练性。他们认为传统GAN之所以不稳定,一个原因便是判别器D搭载的是初级的多层感知机模型,为了将火热的CNN纳入GAN的体系中,作者将多层感知机用CNN进行替换,并做了如下改进:  1 将池化层用stride=1stride=1的卷积层代替 2 将输给生成器G的100维噪声映射为四维张量用作CNN输入而不是向量 3 每进行一次卷积操作就进行批规一化(Batch Normalization) 4 使用ReLU层替换传统的Sigmoid函数,并对输出层使用Tanh激活 5 对判别器D使用LeakyReLU函数作为激活函数 6 移除所有全连接层   在以上改进的支撑下,论文给出了生成器G的网络结构:     经实验验证,该模型生成的图像较为稳定,虽然只能生成64*64大小的图像,但是这可以通过一些基本的图像处理方法,如金字塔来提升生成图像的分辨率

深度学习-DCGAN论文的理解笔记

懵懂的女人 提交于 2019-11-26 12:36:19
训练方法 DCGAN 的训练方法跟GAN 是一样的,分为以下三步: (1)for k steps:训练D 让式子[logD(x) + log(1 - D(G(z)) (G keeps still)]的值达到最大 (2)保持D 不变,训练G 使式子[logD(G(z))]的值达到最大 (3)重复step(1)和step(2)直到G 与D 达到纳什均衡 Alec Radford等人于2016年初提出DCGAN以改善GAN的可训练性。他们认为传统GAN之所以不稳定,一个原因便是判别器D搭载的是初级的多层感知机模型,为了将火热的CNN纳入GAN的体系中,作者将多层感知机用CNN进行替换,并做了如下改进:  1 将池化层用stride=1stride=1的卷积层代替 2 将输给生成器G的100维噪声映射为四维张量用作CNN输入而不是向量 3 每进行一次卷积操作就进行批规一化(Batch Normalization) 4 使用ReLU层替换传统的Sigmoid函数,并对输出层使用Tanh激活 5 对判别器D使用LeakyReLU函数作为激活函数 6 移除所有全连接层   在以上改进的支撑下,论文给出了生成器G的网络结构:     经实验验证,该模型生成的图像较为稳定,虽然只能生成64*64大小的图像,但是这可以通过一些基本的图像处理方法,如金字塔来提升生成图像的分辨率