网站注册界面设计,wordpress 自定义注册,湖南省网站备案登记,深圳做二维码网站设计在提出LeNet后卷积神经网络在计算机视觉和机器学习领域中报有名气#xff0c;但是卷积神经网络并没有主导这些领域#xff0c;因为LeNet在小数据集上取得了很好的效果#xff0c;在更大#xff0c;更真实的数据集上训练卷积神经网络的性能 和可行性有待研究#xff0c;20世…在提出LeNet后卷积神经网络在计算机视觉和机器学习领域中报有名气但是卷积神经网络并没有主导这些领域因为LeNet在小数据集上取得了很好的效果在更大更真实的数据集上训练卷积神经网络的性能 和可行性有待研究20世纪90年代初到2012年间的大部分时间里神经网络往往被其他机器学习方法超越支持向量机。在计算机视觉中直接将神经网络与其他机器学习方法进行表也不公平卷积神经网络的输入事原始像素值经过简单预处理的像素值组成但是在使用传统机器学习方法时在传统机器学习方法中计算机视觉流水线时经过手工精心设计的特征流水线组成的这些传统方法大部分的进展都来自对特征有了更聪明的想法并且学习到的算法往往归于事后的解释。因此与训练端到端系统不同经典机器学习的流水线看起来更像下面这样。1获取一个有趣的数据集收集这些数据集需要传感器2根据光学几何学其他知识以及偶然的发现手动对待特征数据集进行预处理。3 通过标准的特征提取算法如SIFT或者其他手动调整的流水线来输入数据。4将提取的特征送入最喜欢的分类器中以训练分类器。当人们和机器学习研究人员交谈时会发现机器学习研究人员相信机器学习即重要又美丽7.1.1 学习表征一种预测这个领域发展的方法时观察图像特征的提取方法图像特征都是机械的计算出来的设计一套新的特征函数。改进结果并撰写论文。SIFTSURFHOG 定向梯度直方图都占据了主导地位。在合理的复杂性前提下特征应该由多个共同学习的神经网络层组成每个层都有课学习的参数机器视觉中底层可能检查边缘颜色和纹理实际上7.1.2 AlexNet2012年AlexNet横空出世证明了学习到的特征可以超越手动设计的特征AlexNet使用8层卷积神经网络以很大的优势赢得了2012年ImageNet图像识别挑战赛。AlexNet和LeNet非常类似。LeNet全连接层 10 -全连接层 84 -全连接层 120-2x2欧拿冠军汇聚层5x5卷积层 162x2 平均汇聚层5x5卷积层图片28x28AlexNet全连接层 1000全连接层 4096全连接层 40963x3最大汇聚层3x3卷积层3x3卷积层3x3最大汇聚层5x5卷积层3x3最大汇聚层11x11 卷积层图片 3x244x244AlexNet 和LeNet5要深得多AlexNet由8层组成5个卷积层2个全选接隐藏层和1个全连接层输出。2 AlexNet使用ReLU而不是sigmoid 作为其激活函数1 模型设计AlexNet第一层卷积窗口的形状是11x11由于imageNet中大多数图像的高和宽比MNIST图像的大10倍以上因此需要一个更大的卷积窗口来捕获目标第二层中的卷积窗口形状缩减为5x5然后是3x3此外在第一层第二层和第五层卷积层之后加入窗口形状为3x3步骤为2的最大汇聚层而且AlexNet是卷积通道数是LeNet的10倍。在最后一个卷积层后由两个全连接层分别有4096个输出这两个巨大的全连接层有近1GB的模型参数早期的GPU显存有限原始的AlexNet才用了双数据流设计使得每个GPU只负责存储和计算模型的一半参数幸运的是现在GPU现存相对充裕所以很少需要跨GPU分解模型2 激活函数AlexNet将sigmoid激活函数改为简单的ReLU激活函数一方面ReLU激活函数的计算更简单不需要加sigmoig激活函数复杂的求幂运算另一方面使用补同的参数初始化方法时ReLU激活函数使训练模型更加容易。当sigmoid激活函数的输出非常接近于0或者1时这些区域的梯度几乎为0因此反向传播无法继续更新一些模型参数。而ReLU激活函数在正区间的梯度总为1因此如果模型参数没有正确初始化sigmoid函数可以能在正区间得到几乎为0的梯度从而使模型无法的得到有效的训练。3 容量控制和预处理AlexNet通过暂退法 控制全连接层的模型复杂度而LeNet只使用了权重衰减为了进一步扩增数据AlexNet在训练时增加了大量的图像增强数据翻转载切和变色这使得模型更健壮更大的样本量有效减少了过拟合。import torchfrom torch import nnfrom d2l import torch as d2lnet nn.Sequential (#这里使用一个11x11的更大窗口来捕获对象#同时步幅为4以减少输出的高度和宽度#另外输出通道数远大于LeNetnn.Conv2d(1, 96, kernel_size11, stride4, padding1), nn.ReLU(),nn.MaxPool2d(kernel_size3, stride2)#减小卷积窗口使用填充为2来使得输入与输出的高和宽一致并且增大输出通道数nn.Conv2d(96, 256, kernel_size5,padding2), nn.ReLU(),nn.MaxPool2d(kernel_szie3, stride2)#使用3个链接的卷积层和较小的卷积窗口#除了最后的卷积层输出通道数进一步增加#在前两个卷积层之后汇聚层不用于减少输入的高度和宽度nn.Conv2d(256, 384, kernel_size3, padding1), nn.ReLU(),nn.Conv2d(384, 384, kernel_size3, padding1), nn.ReLU(),nn.Conv2d(384, 384, kernel_size3, padding1), nn.ReLU(),nn.MaxPool2d(kernel_szie3, stride2),nn.Flatten(),#这里全连接层输出的数量是LeNet的好几倍使用暂退层来缓解过拟合nn.Linear(6400, 4096), nn.ReLU(),nn.Dropout(p0.5),nn.Linear(4096, 4096), nn.ReLU(),nn.Dropout(p0.5),#最后是输出层因为这里使用Fashion - MNIST所以类别数为10nn.Linear(4096, 10)我们构造高度和宽度都为224的单通道数据来观察每一层输出的形状图7-2中AlexNet架构相匹配。x torch.randn(1,1,,224,224)for layer in net:xlayer(x))