卷积神经网络

CNN笔记:通俗理解卷积神经网络

烈酒焚心 提交于 2019-11-30 12:51:01
CNN笔记:通俗理解卷积神经网络 2016年07月02日 22:14:50 v_JULY_v 阅读数 250368 更多 分类专栏: 30.Machine L & Deep Learning 机器学习十大算法系列 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/v_JULY_v/article/details/51812459 通俗理解卷积神经网络(cs231n与5月dl班课程笔记) 1 前言 2012年我在北京组织过8期machine learning读书会,那时“机器学习”非常火,很多人都对其抱有巨大的热情。当我2013年再次来到北京时,有一个词似乎比“机器学习”更火,那就是“深度学习”。 本博客内写过一些机器学习相关的文章,但上一篇技术文章“LDA主题模型”还是写于2014年11月份,毕竟自2015年开始创业做在线教育后,太多的杂事、琐碎事,让我一直想再写点技术性文章但每每恨时间抽不开。然由于公司在不断开机器学习、深度学习等相关的在线课程,耳濡目染中,总会顺带着学习学习。 我虽不参与讲任何课程(我所在公司“ 七月在线 ”的所有在线课程都是由目前讲师团队的60位讲师讲),但依然可以用最最小白的方式 把一些初看复杂的东西抽丝剥茧的通俗写出来。这算重写技术博客的价值所在

神经网络4:卷积神经网络

耗尽温柔 提交于 2019-11-30 11:11:07
▶ 卷积神经网络 ● 代码,参考【https://zybuluo.com/hanbingtao/note/541458】。主要实现了卷积层神经 ConvLayer 和池化层神经 MaxPoolLayer。 1 import numpy as np 2 3 globalIta = 0.05 4 globalEpsilon = 1e-3 5 6 class ReluActivator(object): # ReLU 激活函数 7 def forward(self, x): 8 return max(0, x) 9 10 def backward(self, x): 11 return int(x > 0) 12 13 class IdentityActivator(object): # 激活函数 14 def forward(self, x): 15 return x 16 17 def backward(self, x): 18 return 1 19 20 def subArray(sArray, i, j, fRow, fCol, stride): # 获取卷积区域 21 startI = i * stride 22 startJ = j * stride 23 if sArray.ndim == 2: 24 return sArray[ startI : startI +

使用mxnet实现卷积神经网络LeNet

一笑奈何 提交于 2019-11-30 06:21:23
1.LeNet模型 LeNet是一个早期用来识别手写数字的卷积神经网络,这个名字来源于LeNet论文的第一作者Yann LeCun。LeNet展示了通过梯度下降训练卷积神经网络可以达到手写数字识别在当时最先进的成果,这个尊基性的工作第一次将卷积神经网络推上舞台 上图就是LeNet模型,下面将对每层参数进行说明 1.1 input输入层 假设输入层数据shape=(32,32) 1.2 C1卷积层 卷积核大小: kernel_size=(5,5) 步幅:stride = 1 输出通道为6 可训练参数为: (5 * 5 + 1) * 6 激活函数:采用relu 输入层数据经过C1卷积层后将得到feature maps形状(6 * 28 * 28),注:28 = 32 -5 + 1 1.3 S2池化层 池化层(Max Pooling)窗口形状均为2 2,步幅度为2,输出feature maps为(6 14 * 14),6为feature map的数量 1.4 C3卷积层 卷积核大小: kernel_size=(5,5) 步幅:stride = 1 输出通道为16 激活函数:采用relu得到feature maps为(16 * 10 * 10),(10*10)为每个feature map形状,16为feature map数量 1.5 S4池化层 池化层(Max Pooling

VggNet学习笔记

微笑、不失礼 提交于 2019-11-30 03:34:24
VggNet(2014) 论文 Abstract 本文研究了卷积神经网络的深度对其准确率的影响,通过使用3×3的卷积核(very small),我们发现了当深度达到16-19层时准确率有重大提高。这一成功赢得了2014 ImageNet冠军。 Network Configurations 输入为224*224 RGB图,预处理为均值化,大量使用3×3卷积核(有时也用1×1卷积核作为线性变换),stride=1,padding=1,max-pooling使用2×2window,stride=2. 最后使用3层全连接层。所有hidden layer使用ReLU函数,除了一种网络外其他均未使用Local Response Normalisation因为它并不能改善性能。 1×1卷积层的作用是在不影响接收野的情况下增加决策函数的非线性(利用ReLU) 与其他网络最大的不同是在整个网络中都使用了小的卷积核 使用多个小卷积核代替大卷积核有助于减少参数,唯一的不足是反向传播时中间层可能会占用较多内存 来源: https://www.cnblogs.com/cititude/p/11552672.html

Alexnet网络与Vgg网络

社会主义新天地 提交于 2019-11-30 00:32:48
迁移学习 使用迁移学习来实现猫狗分类。 迁移学习的个人理解:就是把一个训练好的神经网络从中分开,在拼接到其他的神经网络上,在迁移的过程中,卷积模块的结构不会发生改变,并且权重也不会发生改变。迁移学习分为两种:1.预训练模式,迁移过来的权重作为新网络的初始权重,然后不断训练,改变参数的值。2.固定模式,迁移过来的网络结构和权重都不会改变,训练过程只针对全连接层,在反向传播过程中,在迁移模块停止,不改变迁移模块中的权重,只训练全连接层的参数。 Alexnet网络的结构 Alexnet网络是由五个卷积层和三个全连接层构成,其中最后的输出被送到1000维的softmax函数 在卷积层的第一、第二和第五层使用了最大池化函数,并且在卷积层的第一和第二层使用了标准化 LRN函数。在全连接层的前两层使用了Dropout函数,来解决神经网络的过拟合问题。Relu激活函 数应用在每个卷积层和全连接层。 第一个卷积层的输入为224×224×3的图像,对其使用96个大小为11×11×3、步长为4的卷积核来处 输入图像。第二个卷积层将第一个卷积层的输出(响应归一化以及池化)作为输入,并使用256个 卷积核处理图像,每个内核大小为5×5×48。第三个、第四个和第五个卷积层彼此连接而中间没有任 何池化或归一化层。第三个卷积层有384个卷积核,每个的大小为3×3×256,其输入为第二个卷积层 的输出

卷积神经网络概念

妖精的绣舞 提交于 2019-11-29 21:04:55
卷积神经网络   卷积神经网络(CNN)是深度学习的代表算法之一 。具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,因此也被称为“平移不变人工神经网络” 。 随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被应用于 计算机视觉 、 自然语言处理 等领域 。   卷积是通过两个函数 f,g 生成第三个函数的一种数学算子,表征函数 f 与 g 经过翻转和平移的重叠部分的面积。数学定义公式:   事实上,在卷积网络上使用的离散卷积,也就是不连续的,它是一种运算方式,也就是按照卷积核,将输入对应位置的数据进行加权和运算,接下来结合卷积核的概念,就会很好理解了。 卷积神经网络最重要的两个知识点就是 卷积核 和 卷积神经网络的结构 卷积核 卷积核定义 卷积操作 深度 步幅 零填充 卷积神经网络的结构 输入层 INPUT 卷积层 CONV 激活函数层 RELU 池化层 POOL 全连接层 FC 卷积核 ​  卷积核是整个网络的核心,训练 CNN 的过程就是不断更新卷积核参数直到最优的过程。    卷积核的定义 :对于输入图像中的一部分区域,进行加权平均的处理,其中这个过程的权重,由一个函数定义,这个函数就是卷积核。 如下图彩色图像有RGB三个色值通道,分别表示红、绿、蓝,每个通道内的像素可以用一个像下图右边的二维数组表示,数值代表0-255之间的像素值

12大经典CNN模型的架构(1)

爷,独闯天下 提交于 2019-11-29 12:06:35
从LeNet 到AlexNet 到VGGNet LeNet LeNet是第一个真正意义上的卷积神经网络模型,LeNet5在识别手写数字中取得了非常好的成绩 结构:3个卷积层,2个池化层,2个全连接层。卷积层的卷积核都为5*5,stride-1,池化层都为Maxpooling,激活函数都为sigmoid AlexNet 网络比LeNet更深,结构包括五个卷积层和3个全连接层 使用ReLu激活函数,收敛速度很快,克服了sigmoid函数在网络较深时出现的梯度发散现象 加入Dropout层,防止过拟合 使用了归一化层,增强了模型的泛化性能 使用了裁剪翻转等操作做数据增强 分块训练 VGGNet 增加了网络的深度,证明了使用更小的卷积核且增加网络的深度可以有效改变模型的性能。 参考资料:“有三AI”公众号 来源: https://blog.csdn.net/qq_40330604/article/details/100806490

卷积到底有什么作用?如何做到特征提取?

寵の児 提交于 2019-11-29 10:11:06
[学习笔记] 经过前面的神经网络的基础学习,终于进入我们这章的核心部分,卷积神经网络(CNN, Convolutional Neural Networks)。很多同学学了半天卷积神经网络,但一直有一个最最根本的问题没有搞懂,他也知道怎么做卷积了,也知道怎么做池化了,就是不知道在为什 么这么干?马克-to-win @ 马克java社区:一直云里雾里的。一般的视频或书中从来也不提及这件事,总是一步到位高大上的各种动图,显示怎么卷怎么卷。没办法,这任务落我肩上了, 我尽量深入浅出地把它讲明白吧!卷卷积到底有什么作用?如何做到特征提取?积和池化怎么做,最重要的是为什么要这么做。 文章转载自原文: https://blog.csdn.net/qq_44639795/article/details/100603849 来源: https://www.cnblogs.com/haima1949/p/11512844.html

【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(2)

元气小坏坏 提交于 2019-11-29 09:38:07
本文为【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(2) 从上文的计算中我们可以看到,同一层的神经元可以共享卷积核,那么对于高位数据的处理将会变得非常简单。并且使用卷积核后图片的尺寸变小,方便后续计算,并且我们不需要手动去选取特征,只用设计好卷积核的尺寸,数量和滑动的步长就可以让它自己去训练了,省时又省力啊。 为什么卷积核有效? 那么问题来了,虽然我们知道了卷积核是如何计算的,但是为什么使用卷积核计算后分类效果要由于普通的神经网络呢?我们仔细来看一下上面计算的结果。通过第一个卷积核计算后的feature_map是一个三维数据,在第三列的绝对值最大,说明原始图片上对应的地方有一条垂直方向的特征,即像素数值变化较大;而通过第二个卷积核计算后,第三列的数值为0,第二行的数值绝对值最大,说明原始图片上对应的地方有一条水平方向的特征。 仔细思考一下,这个时候,我们设计的两个卷积核分别能够提取,或者说检测出原始图片的特定的特征。此时我们其实就可以把卷积核就理解为特征提取器啊!现在就明白了,为什么我们只需要把图片数据灌进去,设计好卷积核的尺寸、数量和滑动的步长就可以让自动提取出图片的某些特征,从而达到分类的效果啊! 注 :1.此处的卷积运算是两个卷积核大小的矩阵的内积运算,不是矩阵乘法。即相同位置的数字相乘再相加求和。不要弄混淆了。 2.卷积核的公式有很多,这只是最简单的一种

利用卷积神经网络对大规模可穿戴传感器数据进行运动分类

痞子三分冷 提交于 2019-11-29 08:11:16
Exercise Motion Classification from Large-scale Wearable Sensor Data Using Convolutional Neural Networks 利用卷积神经网络对大规模可穿戴传感器数据进行运动分类 本文使用CNN来对可穿戴传感器收集的大规模运动数据进行分类,同时对传感器数据转换为不同的图像格式输入做出了比较。最佳性能配置以92.1%的准确率将50种健身房运动分类。 作者在这里使用的是CNN而不是RNN(常用来处理时序数据),是因为每次的重复运动练习(如举哑铃)是花费的时间是非常短的少于4秒,训练时不需要长时间的记忆。 数据集使用的是从PUSH(一种戴在前臂上的可穿戴设备,用于测量运动员的运动)收集的,该数据是由1441名男运动员和307名女运动员的449260个重复运动练习组成的49194个集合组成。 因为CNN的输入长度是固定的,所以将每条序列的长度固定为784。拥有超过784个样本的代表被简单地裁剪出来784个样本,不足的采用zero-paded。 该装置紧紧地绑在上臂上,分别用内置加速度计和陀螺仪测量加速度和方向,因此,时间序列数据具有9个特征(Acc x, Acc y,Acc z) in the local frame, (Acc x, Acc y, Acc z) in the world frame and