像如图这样显示cpu和主板有没有问题?

一、计算机图形学的范畴

1、图形主要分为两类,一类是基于线条信息表示的,如工程图、等高线地形图、曲面的线框图等;另一类是明暗图,也就是通常所说的真实感图形;
2、计算机图形学利用计算机建立图形所描述的场景和物体的几何表示,再用某种光照模型计算在假想的光源、纹理、材质属性下的光照明效果;
3、数字图像强调计算机内以位图(Bitmap)形式存储的灰度信息;而计算机图形则强调景物的几何属性,计算机生成的景物由几何模型(位图或向量方式)和物理属性信息共同描述;
4、三维多面体物体的图形称为几何形体(Shape)或景物,由二维图像运动产生的动态图像称为视频(Video, Movie),又将使某一图形随时间变化或运动得到的动态图形称为动画(Animation)。通常意义上的图像(Image)就是绘画、照片、影像等的总称。照片、影像等是从现实世界中直接采样获得的,但是在计算机中都被数字化了,因此称之为数字图像(Digital Image)
5、在计算机内以二维方式来定义和存储几何图形称为二维计算机图形学(2D CG),以三维方式来表示和存储几何形体(景物)称为三维计算机图形学(3D CG)。在计算机内定义或表示图形、物体以及场景称为图形生成或几何建模(Geometric Modeling),所定义的对象称为几何模型(GeometricModel)。图形及景物模型由点、线、面以及球、立方体、圆锥、多面体等基本数学形状描述,并在计算机内变成用它们的几何信息(坐标值)和相位信息(连接关系)表示和存储的数学模型。
6、给图形或景物模型着色,以真实感的效果表现它们的技术称为绘制(Rendering),也称渲染。特别地,称模拟光照产生阴影的技术为明暗处理(Shading)。在图形与景物的数学模型上应用绘制技术,就能将其变换成作为数字图像数据的显示模型(Display Model)。
7、计算机图形学的主要内容就是图形或景物模型的建模和绘制,并在此基础上增加了把三维图形或景物模型在二维平面上表示的投影变换、在计算机内使景物变形的几何变换和进一步使景物运动作为动态图像显示的动画等。
8、把现实世界中的景物用图像输入设备(如数码相机、扫描仪、手绘板等)作为像素的集合采集进来,并在计算机内进行适当处理,最后作为图像从图形输出设备输出。这种情况一般不属于计算机图形学的范畴,通常属于数字图像处理技术这一重要领域

二、计算机图形学的研究内容

  • 建模:对景物的形状和外观属性进行数学定义,并且存储在计算机内。例如,一只咖啡壶可以表示为有序的三维点的集合,这些三维点按一定的插值规则连接起来构成了咖啡壶的模型。
  • 绘制:在艺术和建筑等领域也称为渲染、绘制效果图等。即根据三维计算机模型生成带光照明暗效果的具有真实感的图像。例如,可以建立咖啡壶受光线照射的反射模型,生成十分逼真的咖啡壶图像。
  • 动画:利用图像序列产生物体运动视觉效果的一种技术。这里也要用到建模和绘制,但加入了控制时间这个关键因素。而控制时间这个因素在基本建模和绘制中一般不予考虑。
  • 其他相关技术:GUI人机交互、虚拟现实、可视化、三维扫描。

1.线框模型(Wire-frame Model):这种模型以线条来表现三维形体的轮廓线,没有面,不能消隐、着色和绘制真实感图形
2.表面模型(Surface Model):表面模型在线框的基础上添加了表面,可以进行消隐、着色和绘制,从而得到具有真实感的视觉效果。包括:

  • 多边形(Polygon):物体、场景或地形采用多边形,特别是平面小三角组成的网格来近似表示
  • 参数曲面片(Parametric Patch):这些曲面片是“弯曲的四边形”。这种表示方法与多边形网格相似,只是这时各个多边形的表面变成了弯曲的
  • 基于点的模型(Point-based Model):基于对景物表面的非均匀采样所得到的景物的点云表示,点云模型可以描述景物表面的三维几何与光反射性质

3.实体模型(Solid Model):常见的有构造实体几何和体素两种

  • 构造实体几何(Constructive Solid Geometry, CSG):通过将简单形状的几何图元(如正方体、球、圆柱等)进行布尔运算,可以表示很多构造出来的立体几何模型
  • 体素(Voxel):这是一种被称为空间细分(Spatial Subdivision)的技术。把几何形体(或景物)空间细分为基本的立方体,称为体素,再把每一个体素标记为空或含有几何形体(或景物)的某一部分
  • 变换(Transformation)和几何变换:变换就是对景物几何模型施加某种处理,把处理前的景物形状数据转变成处理后的景物形状数据的数学过程。例如,当表示三维景物模型时,如果想从各个方位来观察它,就需要把景物形状模型在三维空间移动、旋转甚至缩放。像这样移动、旋转、缩放三维景物模型的变换称为几何变换(Geometric Transformation)
  • 视点变换:如果想从不同的方向来表示三维景物模型,我们不是移动模型,而是让投影的方向(观察方向或视线的方向)移动、旋转。我们把这种坐标系的移动、旋转称为观察点变换或者视点变换(ViewingTransformation),有时也称为坐标变换。
  • 投影变换:把三维景物模型表示成能在图像显示器屏幕上显示的二维图像时,需要进行三维空间景物模型向二维平面的投影变换(ProjectiveTransformation)。
  • 绘制(Rendering):指用具有现场真实感的方式来表现模型的技术,一般包含消去在三维景物投影中不可见的面(隐藏面)的处理、景物在光照时的表面明暗处理(Shading)、以及表现景物表面形状及凹凸的纹理映射(Texture Mapping)技术、光照技术——光线追踪(RayTracing)方法与辐射度(Radiosity)方法等
  • 显示:完成了三维景物建模和绘制之后,还必须将其在显示器屏幕等二维平面上呈现出来。要实现这一目的,首先要借助投影变换制作投影图。其次,在图像显示器等光栅输出设备上图形是用像素(Pixel)的集合来表示的。例如,图2.9中左图所示的三维几何形体的部分棱线及顶点的向量表示就被投影成右图的像素集合表示,即把作为向量数据记录于计算机内的棱线数据转变成像素集合表示的图像数据。这种像素数据集合也被称为数字图像。同时,为了正确地在显示器上绘制所要求的图像,还要为每个像素配上适当的颜色。在图形学里将上述处理过程称为光栅化(Rasterization)或者扫描转换(Scan
  • 走样(Aliasing)与反走样(Antialiasing):用像素表示简单的线段(水平或垂直情况),只要保存相当于线段某一位置的像素着色(如涂黑)的信息即可。但是,对于呈某一角度倾斜的线段,如果用像素的集合来表示,就会呈现锯齿状的情况,因为像素点实际上是有一定的面积的。这种情况称为走样(Aliasing)。当然这只是计算机图形学中诸多走样现象之一。在实际显示时,并不是简单地把各个像素用黑白两色来表示,而是给予各像素色彩的明暗度及多级灰度。同时还要对斜线段进行其他处理,使其看上去更像直线。这种处理称为反走样(Antialiasing)。

图形流水线的基本结构由三个主要阶段构成:应用程序、几何处理和光栅化,如图2.12(a)所示。而这三个主要阶段还可以进一步划分为若干个功能阶段,如图2.12(b)所示。换句话说,每一个阶段也可以是流水线结构。

  1. 应用程序阶段(Application Stage):这一阶段最重要的任务是建模,将需要绘制的几何体以及纹理数据输出到图形流水线的下一阶段。这些几何体都是绘制图元(如点、线、三角形、多边形、曲面片等)。同时,碰撞检测、纹理动画、几何变形、人机交互、键盘、鼠标、传感器等的输入检查都是这个阶段的任务。这个阶段的计算通常由CPU来执行。

  2. 几何处理阶段(Geometry Stage):这一阶段主要负责大部分多边形和顶点操作。可以将这个阶段(也是流水线)进一步划分为如图2.13所示的几个独立的功能阶段——模型与观察点变换、光照和着色、投影、裁剪、屏幕映射。很显然,几何处理阶段的计算量非常大。

  3. 光栅化阶段(Rasterizer Stage):在这一阶段,根据几何处理阶段处理后的顶点、颜色和纹理坐标,将二维屏幕空间的图形顶点扫描转化成像素,即负责显示屏上每个像素的填充、纹理映射及可见性计算等工作。

需要指出的是,就目前计算机图形学技术发展水平而言,图形流水线中的应用程序阶段的功能通常是用软件方式实现的,即图形硬件加速常常位于图形流水线的后期。而几何处理和光栅化过程几乎都用硬件来实现。总的来说,软件实现和硬件实现之间经常性地交替推进,而且存在着将软件算法硬件化的趋势。近年来,图形硬件,特别是GPU(GraphicsProcessing Unit)的不断升级换代有力地支持了图形流水线这一概念,甚至连比较高级的应用程序阶段的算法都尽可能地利用硬件来实现。

数字图像显示器(如CRT、LCD等)屏幕的像素示意图。屏幕上的基本可显示单位为像素,即图像元素(Picture Element, Pixel)的简称。程序通常假设像素排列成矩形阵列,称为光栅(Raster)。从左至右水平排列的一行像素的集合称为扫描线(Scan-line)。把一屏称为一帧(Frame)。需要用实际的二维屏幕坐标来表示像素的位置。计算机图形处理硬件具有存储像素信息的帧缓存(Frame Buffer)。

计算机生成的图形是数字化的。它们多数情况下是通过光栅设备展现给用户的。计算一个景物(多边形)在屏幕上的投影位置就是确定它在屏幕上的显示区域中覆盖了哪些像素。这一过程称为光栅化(Rasterization)或扫描转换(Scan Conversion)。也可以这样来理解,光栅化是对屏幕上一片连续的显示区域进行离散化采样的过程。在光栅显示器的屏幕上生成一个对象,实际上是往帧缓存的相应存储单元中写入数据。图形的光栅化过程一般分为两个步骤:首先确定像素位置(坐标);再用图形的颜色或其他属性对像素进行某种写操作,即着色。因此,光栅化就是确定屏幕空间中最佳逼近于图形的像素集合。

如果给每个像素分配一位来存储,就只能够显示黑白或单色图像。如果对每个像素分配n位来存储,就能够显示2的n次方级的灰度(Gray Scale)图像。所谓灰度级,就是给每个像素的明暗分配的等级。把像素从最暗到最亮分成等级(依照惯例最暗表示为0,最亮表示为1),用相应的整数来表示各等级。如果在单色图像显示时,各个像素分配8位来存储,则最多可以显示2的8次方= 256级灰度的单色图像。

对于彩色图像的显示,通常用红(R)、绿(G)、蓝(B)三原色混合产生新颜色。这称为RGB颜色空间。注意,红、绿、蓝三原色是以叠加方式混合的。这种加性颜色混合与另一种常见的减性颜色混合不同,后者控制着画家使用颜料进行调色以及各种画笔软件。

把整个图像用数字图像来表示或显示,实际上就是这样为每个像素分配位存储信息的。如果每一种颜色都用8位存储,256级灰度显示,各像素的颜色存储位数就是3×8=24位,能够表示2的24次方级即16兆种颜色的彩色图像。

在表示彩色数字图像时除了可以采用24位模式外,还可以采用32位模式,即附加一个8位的α(Alpha)通道,用来控制图像的透明性或者不透明性。图像可以用下面的公式来表示:c(x, y)=((r(x, y),g(x, y),b(x, y),α(x, y))

α = 1意味着像素是完全不透明的,即任何以前显示在像素上的背景颜色都被图像的颜色所重写。α = 0意味着像素是完全透明的,即任何以前显示在像素上的背景颜色将不受图像RGB颜色的影响。对于0<α<1,图像原有颜色cimage与像素当前颜色cpixel合成得到像素的最终颜色:

医生你好 ,昨天刚向你问诊。 今天好像病情加重了。中午12:30吃了粥和蔬菜,下午上班工作基本没任何痛楚和不适,但上了个大便 拉了有点稀 臭味还很重的。之后就没什么事,很不定时感觉到右上腹隐痛,也就两三次很短暂。接着晚上7:30回家吃饭 吃白切鸡饭和蔬菜,一开始还挺有胃口,后来吃几口就吃不太下去东西,吃了就感觉肚子有一些绞痛的,右上胸胸肋骨位置开始闷痛,胀气,然后全身无力,还轻微身体发热的感觉。之后改吃南瓜粥,一样没两口就感觉全身乏力。事后吃了个消化片 如图下所示。然后站起来走动休息后,又稍微好受点。但感觉右腑下位置有不定时轻微疼痛感。然后不定时想放屁,也没很多次。也不想上厕所大便。坐着静息又好点了。 请问这个症状是不是胆囊炎? 应该怎么缓解? 用药情况:如图所示 没用别的了

为保护用户隐私不显示图片

MNIST是计算机视觉领域的“hello world”数据集。 自1999年发布以来,这种手写图像的经典数据集已经成为基准分类算法的基础。 随着新的机器学习技术的出现,MNIST仍然是研究人员和学习者的可靠资源。

这个题目,您的目标是正确识别数以万计的手写图像数据集中的数字。
每一张图片,图片里面写了一个数字可能是0-9,然后需要设计算法判断出这个数字是0-9中哪一个数字。 我们鼓励您尝试不同的算法,以便第一手掌握哪些方法或者技术可行。

  • 若对神经网络比较熟悉,可以直接建立一个单层神经网络,输入是784个像素,经过一个全链接层,然后激励函数和,输出为一个的预测结果,共10个类别,分别代表0-9,选择对应概率最大的作为预测数字。

  • 以上是没有数据预处理的方法。但如果我们对数据做一个小处理:比如提取每行像素值最大的元素和每列最大的元素,则输入数据从784维降到了28+28=56维。这个时候再经过一个单层神经网络,也可以获得一个很好的预测结果,而且由于数据降维,我们的训练时间会大大减少。

  • :在机器学习和认知科学领域,人工神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统。现代神经网络是一种非线性统计性数据建模工具。典型的神经网络具有以下三个部分:

    1、结构:结构指定了网络中的变量和它们的拓扑关系。例如,神经网络中的变量可以是神经元连接的权重和神经元的激励值。

    2、激励函数:大部分神经网络模型具有一个短时间尺度的动力学规则,来定义神经元如何根据其他神经元的活动来改变自己的激励值。一般激励函数依赖于网络中的权重(即该网络的参数)。

    3、学习规则:学习规则指定了网络中的权重如何随着时间推进而调整,这一般被看做是一种长时间尺度的动力学规则。一般情况下,学习规则依赖于神经元的激励值,它也可能依赖于监督者提供的目标值和当前权重的值。例如,用于手写识别的一个神经网络,有一组输入神经元,输入神经元会被输入图像的数据所激发。在激励值被加权并通过一个函数(由网络的设计者确定)后,这些神经元的激励值被传递到其他神经元。这个过程不断重复,直到输出神经元被激发。最后,输出神经元的激励值决定了识别出来的是哪个字母。

  • :在机器学习中,支持向量机(SVM)是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个。SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

  • :在模式识别领域中,最近邻居法(KNN算法,又译K-近邻算法)是一种用于分类和回归的非参数统计方法。在这两种情况下,输入包含特征空间中的k个最接近的训练样本。在k-NN分类中,输出是一个分类族群。一个对象的分类是由其邻居的“多数表决”确定的。k个最近邻居(k为正整数,通常较小)中最常见的分类决定了赋予该对象的类别。若k = 1,则该对象的类别直接由最近的一个节点赋予。在k-NN回归中,输出是该对象的属性值。该值是其k个最近邻居的值的平均值。

本次比赛的目标是拍摄一个手写的单个数字的图像,并确定这个数字是什么。
对于测试集中的每个ImageId,请预测是什么数字。

你提交的submission.csv文件,将使用作为最后评判标准。

准确率(accuracy)是用来衡量算法预测结果的准确程度,具体指测试集中算法预测正确的数量占总数的比例。

采用PyTorch构建三层网络做识别预测。

#训练数据存放的文件路径 #跳过第一行 csv文件的分隔符为, #转换成PyTorch张量、添加梯度 #定义损失 分类损失使用交叉熵 #读取需要做预测的CSV文件 #将结果写回CSV文件 # 1. 创建文件对象 # 2. 基于文件对象构建 csv写入对象

为了提高效果,本文将使用AlexNet网络(附上中英文对照个人翻译版-待更新):

我们训练了一个大型的、深度卷积神经网络,用于对ImageNet LSVRC-2010竞赛中的包含了1000个不同类别的1.2百万张高分辨率的图片进行分类。在测试数据中,我们获得了top-1错误率为37.5%,top-5错误率为17%的成绩,这比先前的最先进的模型都要优秀很多。这个新的模型,含有6千万个参数和650000个神经元,由5层卷积层配合最大池化层,以及3个全连接层组成,最后一层有1000个输出,这些输出经由softmax函数处理得到结果。为了使得训练更快,我们使用了非饱和神经元和一个非常高效的GPU实现卷积操作的方式。为了减少全连接层的过拟合现象,我们运用了一个最近刚刚被发明的正则化方法-drouput(随机丢弃),它被证明是十分有效的。我们也将这个模型的变体用于ILSVRC-2012竞赛中,并且以top-5测试错误率15.3%的成绩斩获了第一名,这比第二名的26.2%高出很多。

[注]top-1:指输出概率中最大的那个类别正确的概率;top-5:指输出概率中最大的5个中含有那个正确类别的概率;

当前目标识别的都是充分利用了机器学习方法。为了提高他们的性能,我们能够手机大量的数据集,下也许带更加健壮的模型,并且使用更好的技巧预防过拟合。直到最近,带标签图像的数据集相对来说比较小,只有数以万计得到图片。简单的目标任务用这种规模的数据集足以很好解决,特别是他们使用了一些保留标签的变换进行数据增强的时候。例如,当前在MNIST手写数字数据集上的最好错误率(<0.3%)已经接近了人类的水平。但是现实场景中的目标具有相当大的可变性,所以学习识别这些目标是很有必要使用更大的训练集的。并且的确,小数据集的缺陷已经被广泛意识到了,但是仅仅最近才有可能手机百万数据量的标签数据集。这个新的大数据集包含LabelME和ImageNet,LabelMe数据集包含数十万的完全分割的图像,ImageNet包含超过22000个种类的共超过张带标签的高分辨率图片。

为了从百万级的图片中认出数以千计的目标,我们需要一个具有很强学习能力的模型。但是,目标识别任务的巨大复杂性意味着这个问题即使使用像ImageNet这样庞大的数据集也不能被具体阐释,所以我们的模型也应该具有一些先验知识弥补我们没有方法获得全部数据导致的缺陷。卷积神经网络(CNNs)构成了这样一种模型[16,11,13,18,15,22,26]。他们的能力可以通过改变他们的深度和尺寸来控制,并且他们也能够针对自然图像做出强健且大部分情况下都正确的假设(也就是,考虑到数据的稳定性和像素间依赖的局部性)。因此,相比于具有类似尺寸的标准的前馈神经网络,CNNs具有更少的连接和参数,也正因为如此,他们相较之下更容易训练,尽管他们的理论最好表现可能相对来说会有一点点弱。

尽管CNNs具有许多吸引人的特性,并且尽管他们的局部结构相对高效,但是大规模运用在高分辨率图像中仍然代价高昂。幸运的是,当前的GPU,配合双显卡可以充分利用性能实现2维卷积,这将拥有足够强大的性能促进大型CNN网络的训练,并且最近的数据集如ImageNet,它包含足够的标签数据,这些数据可用来训练这个模型,也不会造成过拟合的问题。

这篇论文的详细贡献如下:我们训练了一个最大的卷积神经网络,针对了ImageNet数据集中被用在ILSVRC-2010和ILSVRC-2012竞赛中的那一部分子集,并且获得了比曾经报道在这些数据集上的指标更好的效果。我们写了一个充分利用GPU实现2维卷积的实现方式,所有的其他在训练卷积神经网络的过程中是固定的,我们公开提供了这些。我们的网络包含了若干新的以及不一般的特点,这些提升了它的性能,也减少了它的训练时间,这将在小节3详细阐述。我们的网络的尺寸使得过拟合成为一个重要的问题,甚至是在有1200万个打上了标签的训练样本的情况下,因此使用一些有效的技巧来预防过拟合,这些技巧将在小节4详述。我们最终的网络包含5个卷积层和3个全连接层,并且深度(通道数)似乎很重要:我们发现移除一些卷积层(每一个卷积层的参数量都没有超过模型的1%)会导致表现变差。

最后,网络大小的受限主要是受到了当前GPU的显存数量以及我们愿意等待的训练时间影响。我们的网络花费了5到6天在两张GTX 580 3GB的显卡上训练。我们所有的实验表明我们的结果,仅仅在等待更快的GPU并且更大的数据集的情况下,就能够被改进。

ImageNet是一个拥有超过22000个类共计1500万打上标签的高分辨率图像的数据集。这些图像是从网络上收集并由人工标注者使用亚马逊的 Mechanical Turk 众包工具打上标签。始于2010年,作为Pascal 视觉目标挑战赛的一部分,一年一度的被叫做ImageNet大规模视觉识别挑战赛举行。ILSVRC使用了ImageNet的一个子集,大约每个类别有1千张图片。总之,大约有1200张训练图片,50000张验证图片,以及150000张测试图片。

ILSVRC-2010是ILSVRC中的唯一一个拥有测试集标签的版本,所以它是我们用来测试实验结果性能时使用最多的版本。由于我们也在ILSVRC-2012竞赛中提交了模型,在第6节我们也说明了我们的模型在这个版本的数据集上的结果,这个数据集的测试集标签并不是可获得的(防作弊)。在ImageNet上,人们习惯于说明两个错误率:top-1和top-5,top-5错误率就是由模型推理出的具有最大可能性的5个类别标签中并不含有正确的类别标签的概率。

ImageNet由多种分辨率的图像组成,然而我们的系统需要一个恒定的输入维度。因此,我们将图像降采样到一个固定的分辨率 256 * 256。考虑一个矩形的图像,我们首先调整图像的大小,使得短边的长度变为256,然后从调整后的图像中裁剪出中心区域的 256*256大小的部分。我们不采用其他方式预处理图片,除非是为了减去训练集上的像素均值。因此我们在(中间部分的)未经处理的RGB通道的像素值。

我们网络的结构在图2中概述。它包含了8个可学习的层,5个卷积层和3个全连接层。下面,我们描述一些我们网络结构的创新颖的或者说不平常的特点。节3.1-3.4的顺序安排是根据我们对他们带来的提升评估安排的,最重要的放在第一个。

标准的模仿神经元输出f的方式就是用一个关于输入x的函数,像或者。从梯度下降的训练时间来说,这些饱和非线性单元比非饱和非线性单元f(x)=max(0,x)要慢得多(饱和指梯度接近于0,当处于函数饱和区时,梯度下降算法运行的很慢)。跟随Nair和Hinton的步伐,我们提出携带了这种非线性单元如线性整流单元的神经元(ReLUs)。携带ReLU深度卷积神经网络比携带tanh函数的同结构网络训练的更快。这在图1中得到了论证,这张图展示了对于一个特定的四层卷积网络,使用这两种激活函数在CIFAR-10数据集上想要达到25%的训练错误情况需要的迭代次数。这张图展示了如果我们使用传统的饱和神经元模型,我们或许不能用如此大的神经网络做实验。

我们不是第一个=批考虑传统CNNs中神经元模型替代物的那群人。例如,Jarrett宣称在Caltech-101数据集上,非线性单元后接上平均池化与对比度归一化一起运行地非常好。但是,在这个数据集上,最重要的关注点还是预防过拟合,因此他们所关注的影响并不同于我们所指出的当使用ReLU时加速网络拟合训练数据的能力。更快的学习对于训练在大型数据集上的大型网络模型具有很重大的影响。

图1:一个4层的携带ReLU(实线)卷积神经网络在CIFAR-10数据集上得到25%的错误率只需要6个周期,比同样结构下使用tanh神经元(虚线)的网络要快得多。他们各自的学习率都是选择了使得训练速度最快的。没有运用正则化方法。这个效果的重要性有力地论证了网络结构的修改,携带了ReLU的网络始终比使用了饱和神经元的网络学习的时间要短。

显卡只有3GB的显存,这限制了能够在它上面训练的最大网络的规模。结果120万的训练样本足够训练这个网络,但是网络因为太大而不能在一张显卡上进行拟合。因此我们将网络分割在两张显卡上。目前的GPU能够很好地做到GPU并行交火,因为他们能够直接读写另一方的显存,而不需要经过机器的内存。我们实施的并行化处理方式本质上是将一般的核(或者说神经元)放置在各自的显存中,还有一个小技巧:GPU的数据交互旨在一些特定的层。这意味着,例如,第三层的核将第二层的映射结果当作输入。但是,第四层的核只会从的第三层的映射输出中拿到输入,这都是在同一张显卡上的。选择连接方式是交叉验证的一个问题,但是这将允许我们精确地调整交流的数量直到它是一个可接受的运算中的很小一部分。

因此而产生的结构与Cirespan提出的“columnar”CNN有些类似,除了我们的列并不是的独立的。这个方式与只在一张显卡上训练一般的的卷积层核的网络相比,降低了1.7%的top-1错误率和1.2%的top-5错误率。训练双GPU网络比单GPU网络略微节省了点时间。

3.3 局部响应标准化

ReLUs有可取的属性,他们不要求输入的标准化来防止他们陷入过饱和。如果至少一些训练样本造成了ReLU的输入是正数,那么这个神经元就会得到学习。但是,我们仍然发现下面的局部归一化能够帮助归纳。用表示运用卷积核i在(x,y)位置上得到的神经元的响应值,然后运用ReLU非线性单元,响应归一化值可由如下公式计算得到:

这个和的计算是依靠n个"相邻的"核图在图像上相同而空间位置计算得到的,N是这一层的总的核个数。在训练开始之前,核图的排列理所当然是任意的且固定的。这种响应归一化实现了一种真正的神经元能实现的横向抑制激活,创造了使用不同核计算得出的神经元高响应输出之间的竞争。常量都是超参数,它们的值使用验证集来决定;我们使用;我们在某些特定的层的ReLU非线性单元输出后运用了标准化(详见节3.5)。

这个操作与Jarrett提出额局部响应标准化存在一定的相似性,但是我们的网络能被更准确地称之为"白度标准化(白化)",因为我们并没有减去平均值。响应标准化各自将我们的top-1错误率降低了1.4%,将我们的top-5错误率降低了1.2%。我们也在CIFAR-10数据集上验证了这个操作带来的效果:一个四层的CNN在不带有百花操作时获得13%的测试错误率,在带有白化操作时获得11%错误率。

CNNs(卷积神经网络)中的池化层对处于同一个核内的相邻输出单元做了一个整合。传统上,相邻单元的整合是通过没有重叠的相邻池化单元完成的(例如核大小为17*17,11*11,4*4)。为了更加精确,一个池化层可以被认为是由一个网格上间隔一个像素的池化单元组成,每一个单元整合了以这个池化单元所在中心周围的z*z个相邻输入单元。如果我们设 s = z,我们获得传统上普遍应用于CNNs的局部池化。如果我们设 s < z,我们就获得了带像素重叠的池化(z为池化核大小,s为池化步长)。在我们的网络中,我们设定s=2且z=3。这个方案与使用s=2且z=2的非重叠池化方案相比,在同样的输出维度下,将我们的top-1错误率降低了0.4%,top-5错误率降低了0.3。我们在训练带有重叠池化的模型时发现它有些许不容易过拟合(重叠池化有一些放止过拟合的效果)。

现在我们准备描述我们的CNNs的大体结构。正如图2描绘的那样,这个网络包含八层带权重的层,首先是5层卷积层,然后是3层全连接层。最后一层全连接层的输出的1000个值被用来做softmax,这将产生一个高达1000个类别标签的概率分布。我们的网络最大化了多项逻辑回归目标,这等价于最大化了在预测分布条件下的正确标签的概率的训练样本的均值。

第二、四、五层的卷积层仅仅被连接到这些在前层的核图(卷积后输出的特征图),这些前层分布在同样的GPU上(见图2)。第三层的卷积核被连接到第二层的所有核图。全连接层的神经元被连接到前层的所有神经元。响应标准化层跟在第一、第二层的卷积层后面。我们在节3.4锁描述的这种最大池化层,分布在响应归一化层核第五层卷积层的后面。ReLU这个非线性单元被应用在每一层卷积层和全连接层。

图2:这是我们CNNs结构的图,清晰地展示了在两个GPU之间的任务轮廓。一个GPU运行包含图像的顶层部分,另一个运行底层部分。GPU仅仅在特定的层进行数据交互。网络的输入是150,528维,并且网络中剩余的层的神经元数量为253,440-186,624-64,896-64,896-43,264-00。

第一个卷积层使用96个核对输入的224*224*3的图形进行卷积,每个核的尺寸为11*11*3,步长为4个像素,(这个就是在一个核图上相邻单元的感受野的中心距离)。第二层卷积层采用的输入是第一层卷积层的输出,并且携带了256个过滤器,每个过滤器的尺寸为5*5*48。第三、第四、第五层被连接,之间没有池化层和标准化层。第三层有384个核(384组过滤器),每个核的尺寸为3*3*256,他们被连接到第二层卷积层的输出。第四个卷积层有384个核,每个核的尺寸为3*3*192,并且第五个卷积层有256个核,每个核的尺寸为3*3*192。每个全连接层有4096个神经元。

我们的神经网络结构有6亿个参数。尽管ILSVRC的1000个类别使得每个训练样本采用映射上的有限的10位将图像转换为标签,但是这被证明是很容易在学习这些参数的过程中造成过拟合。下面,我们将叙述我们用于防止过拟合的两个初级方法。

最简单且普遍的防止对图像数据产生过拟合的方法是使用保存标签的变化对数据集进行人工增强(标签的变换与图像的变换相对应,如图像旋转,bounding box也跟着旋转)。我们采用了两种清晰的数据增强形式,这两个都允许从原始图像进行少许的计算就可以生成变化后的数据,所以甚至没有必要特地在硬盘存储下这些变换后的数据。在我们的实现中,转换图像的工作由Python代码在进行以前批次的图像训练的同时在GPU上完成。实际上,这些数据增强的方法是不太消耗计算资源的。

第一种形式的数据增强包括生成图像映射和水平镜像。我们完成这种操作通过在256*256的图像上随机提取224*224个块(以及他们的水平镜像),并且使用这些提取出来的块训练我们的网络。这通过2048的一个因子增加了我们的训练集。当然,尽管这个结果的训练样本是高度依赖的。没有这个方案,我们的网络就很容易过拟合,这回强制我们使用小得多的网络。在测试阶段,网络通过对输入提取5块224*224的区域(5块区域为四个顶角和中心区域)以及他们的水平镜像(总共10块区域)进行预测,并且对应用在10块的上的网络的softmax层的输出进行了值的平均。

第二种数据增强的方式包括修改训练图像上的RGB通道的数据密度。特别地,我们对ImageNet训练集图像的RGB像素值采用了PCA(主成分分析)。对于每一个训练图像,我们增加了多种已建立的主成分,伴随着振幅比例相应的特征值乘上从均值为0标准差为0.1的高斯分布中获取的随机值。因此对于每一个RGB图像的像素向量,我们使用了如下的量:

在这个公式中,和是RGB像素值的协方差矩阵的第i个特征向量与特征值,且是上述的随机值。对于一张特定的训练图像而言,直到这幅图像再次用于训练之前,每一个只产生一次,再次训练时会重新生成。这个方案大概捕捉了自然图像的一个重要属性,也就是说,目标的识别对于密度或者颜色的亮度是恒定的(也就是说不受影响)。这个方案将top-1错误率将降低了1%。

结合预测的许多不同的模型的预测是一个减少错误率的十分成功的方法[1,3],但它似乎对于大型的神经网络来说是代价高昂的,特别是那种已经花费了好几天训练的大型网络。但是,这有一个很高效的模型结合版本,这使得训练时间只需要1/2。这个最近被发明的技术,叫做"drouput"[10],它的实现是对于每个隐层的输出都有0.5的概率置为0。用这种方式"丢弃"的神经元不会影响前向传播,也不会参与反向传播。所以每一次输出被展现的时候,神经网络都好像是不同的结构,然而这些不同的结构是共享权重的。由于一个神经元不能依靠特定的其他神经元的存在,因此这项技术减少了神经元复杂的相互适应。因此,它强制学习更多健壮的特征,这对于每个神经元与许多不通的随机子集的连接来说是有用的。在测试阶段,我们使用所有的神经元,但是将他们的输出*0.5,这对于采用由数量指数级多的drouput网络预测分布的几何平均是一种合理的近似。

我们使用一个批次大小为128个样本的随机梯度下降算法训练了我们的模型,动量为0.9,权重衰减为0.0005。我们发现这个值很小的权重衰减对于模型的训练来说很重要,这里的权重衰减不仅仅是一个正则项:他减少了模型的训练误差。权重的更新规则为:

图3:尺寸为11*11*3的96个卷积核(一个卷积核对应一组滤波器)由第一层卷积层在224*224*3的输入图像上进行学习。前48个在GPU1上训练,后48个在GPU2上训练。节6.1有更多细节。

是迭代次数,是动量变量,是学习率,是第i个批次的梯度平均值,是由估计的目标的衍生值。

我们从一个均值为0、标准差为0.01的高斯分布中取值用于初始化每一层的权重。我们也对第二、第四、第五层卷积层的偏置值进行了初始化,同时还有隐藏层中的全连接层,将他们设置为1。这种初始化方案通过提供正值给ReLU函数们,加速了早期的学习。我们初始化剩下的层的神经元的偏置值为0。

我们对所有的层都是用相同的学习率,在训练过程中我们会手动调整学习率。我们遵从了这项启发,当使用当前的学习率使得验证集错误率停止上升,我们就将学习率除10。学习率被初始化为0.01并且直到结束前会衰减3次。我们使用一个包含1200万张的图像的训练集在两张NVIDIA GTX 580 3GB的显卡上训练了网络大概90个周期,这总共花费了5-6天。

我们在ILSVRC-2010的结果被总结在表1中。我们的网络在测试集上的top-1错误率为37.5%,top-5错误率为17.0%。在ILSVRC-2010竞赛中的最好成绩为top-1错误率47.1%,top-5错误率为28.2%,它使用的方法为平均6个针对不同特征的稀疏编码模型的预测结果。之后最好的发表结果为45.7%和25.7%,采用的方法为平均化两个训练在Fisher Vectors上的分类器的预测结果,他们从两种浓密采样的特征中得出。

表1:与ILSVRC-2019测试集的表现结果相比。斜体字表示的结果为最优的。

我们也开始着手准本我们的模型,用于ILSVRC-2012竞赛,并且在表2报告我们的成果。由于ILSVRC-2012的测试集标签并不是公开的,我们无法报告我们训练的所有模型的测试错误率结果。在这幅图的剩余部分,我们交替地使用验证和测试误差率,因为根据我们的经验他们的误差不会超过0.1%(见表2)。这部所述的CNN结构得到的top-5错误率只有18.2%。平均化5个相似的CNN网络的预测结果后,top-5错误率为16.4%。训练一个CNN,在最后一层池化层前面有6层卷积层,这是为了对发布的整个ImageNet Fall 2011进行分类的训练(这个数据集有1.5亿张图片,2200个类别),再使用ILSVRC-2012进行微调,获得了16.6%的错误率。平均化我们在整个已经发布的的Fall 2012数据集上预训练的两个CNN,与上述的5个CNN一同,我们得到的错误率只有15.3%。竞赛的第二名错误率为26.2%,使用的方法为对一些分类器取平均,这些分类器是使用不同种类的密集特征计算得到的FVs进行训练的。

图3展示了学习到的网络的数据连接的卷积层。这个网络学习到了许多带有频率和方向选择性的核,还有许多有颜色的斑点。注意这种使用两张GPU的特别的展现方式,这是节3.5所描述的有限连接的结果。在GPU1上的核大部分都没有感知到颜色的存在,而GPU2上的核大都特别注意了颜色信息。这种专一性每次运行都会发生,并且与任何特定的随机权重初始化无关(对GPU群的编号取模)。

图4:(左边)有8张来自于ILSVRC-2010测试集中的图片以及由我们的模型推理出来的他们的5个概率大的标签。图片下面直接写的是正确的标签,正确的标签对应的概率由红色进度条展示(如果正确的标签出现在这5个类别中)。(右边)5张ILSVRC-2010的测试集图片在第一列。剩下的列显示了6张训练中的图,这些图来自于最后一层隐藏层的特征向量,从测试图片得到的特征向量的欧氏距离最小。

在图4的左半边图像块中,我们通过计算模型在这8张测试图片上的top-5预测,从质量上评估了网络学习到的东西。注意到这些图片甚至由不处在图片中心位置的目标,例如左上角那幅图像中的螨,是能够被网络识别的。大部分的top-5标签输出都是合理的(含有正确标签且其概率值较高)。例如,仅仅另一些类别的猫会被认为是相似的豹。在一些例子中(铁栅栏,樱花),关于图像本身到底应该关注哪一个是存在歧义的。

另一种观察网络学习到的视觉方面的知识的方法是考虑一张图像在最后一层4096维度的隐藏层输出的特征激活值。如果两幅图生成的特征激活向量之间的差距很小,我们可以认为更高级的神经网络会认为他们就是相似的。图4展示了5副来自于测试集的图像以及6副来自于训练集的图像,这些图像采用上述的相似性判定方法可知他们是相似的。注意在像素级别,被检索出来的训练图像通常不会在第一列的L2范数上得到意味着很接近的结果。例如,被检索到的狗们和大象们会以各种各样的姿态出现在图片中。我们在补充材料中会对更多的测试图片呈现我们的结果。

在两个4096维度的向量间通过计算欧氏距离来判断他们的相似性,这种方式对于真值向量是很低效的,但它不能通过训练一个自动的编码器压缩这些向量去剪短2进行代码来变得高效。与对每一行的像素应用自编码器相比,这应该产生一个更好的图像检索方法,因为自编码器不能利用图像标签并且因此有一种使用相似的边缘模式的趋势,而不管他们是否是语义上相关的。

我们的结果展示了一个大型的深度卷积网络通过使用纯粹的有监督学习方法在一个具有高度挑战性的数据集上能够获得打破记录的结果。值得注意的是,如果移除一层,我们网络的性能会变差。例如,移除中间的任何一层后,我们的网络在top-1指标上会损失2%的正确率。所以为了获得我们实验得到的结果,深度是非常重要的。

为了简化我们的实验,我们步使用任何的无监督预训练方案,即使我们预期这个方案是有帮助的,特别是当我们获得足够的计算能力能够极大地增大我们的网络尺度,而不需要获得相应的标签数据量的增加。说到这儿,随着我们使得我们的网络更大并且训练它更久,我们的结果提高了,但是我们仍然有许多数量级的神经元,这是为了与人类视觉系统的下颞叶路径相匹配。最终我们将要在视频序列上使用非常大得到深度卷积网络,在视频序列上,实时的结构会提供非常有用的信息,而这些信息在静态图片上会少得多甚至是完全没有。

我要回帖

更多关于 怎么检查cpu有没有问题 的文章

 

随机推荐