欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    人工智能tensorflow实验报告.docx

    • 资源ID:9005879       资源大小:3.22MB        全文页数:26页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    人工智能tensorflow实验报告.docx

    1、人工智能tensorflow实验报告一、软件下载为了更好的达到预期的效果,本次tensorflow开源框架实验在Linux环境下进行,所需的软件及相关下载信息如下:1.CentOS软件介绍:CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的 CentOS都会获得十年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。CentOS是Community Enterpr

    2、ise Operating System的缩写。CentOS 是RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。软件下载:本次实验所用的CentOS版本为CentOS7,可在CentOS官网上直接下载DVD ISO镜像文件。下载链接:2.Tensorflow软件介绍:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,Tensor

    3、Flow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。TensorFlow可被用于语音识别或图像识别等多项机器深度学习领域,对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,它可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。TensorFlow将完全开源,任何人都可以用。软件下载:本次实验所用的Tensorflow版本为Tensorflow0.5.0,因为实验是在Linux下进行的,所以须在Tensorflow官网或GitHub上下载Linux版本的。下载链接:3.Anaco

    4、nda软件介绍:Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。软件下载:本次实验所用的Anaconda版本为Anaconda2-4.2.0,因为实验环境在Linux中进行,所以需在Anaconda官网上下载Linux版本的。下载链接:https:/www.continuum.io/downloads/#

    5、linux.4.VMware Workstation软件介绍:VMware Workstation(中文名“威睿工作站”)是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。对于企业的 IT开发人员和系统管理员而言,VMware在虚拟网路,实时快照,拖曳共享文件夹,支持 PXE 等方面的特点使它成为必不可少的工具。软件下载:本次实验所用的VMware W

    6、orkstation版本为VMware Workstation10.7z,可以在XX搜索的相关网站下载,也可以在VMware Workstation官网上下载。下载链接: 5.Xshell软件介绍:Xshell是一个强大的安全终端模拟软件,它支持SSH1,SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。软件下载:本次实验所用的Xshell版本为Xshe

    7、ll5.0.0964,可直接在XX软件中心下载,也可以在Xshell官网上下载(包含中文汉化版的)。下载链接:二、软件安装本次实际桌面操作系统为Windows7,但实验需在Linux环境下进行,所以需要安装一个虚拟机,其软件的安装如下:1.VMware Workstation10.7z本次实验的VMware Workstation10.7z为一个可执行的exe文件,选择好安装目录,双击便可安装。安装截图如下:成功安装后截图:2.CentOS7本次实验的CentOS7为一个ISO镜像文件,需在VMware Workstation10.7z中新建虚拟机来进行安装。由于安装步骤比较繁琐,这里选取主要

    8、截图(其具体安装可参考链接成功安装后截图:运行截图:3.本次实验的Anaconda2-4.2.0为一个sh文件,通过命令bash Anaconda2-4.2.0-Linux-x86_64.sh进行安装。安装截图如下:成功安装后,调用ipython界面:4.Tensorflow本次实验的Tensorflow0.5.0为一个whl文件,可以直接通过命令pip install tensorflow-0.5.0-cp27-none-linux_x86_64.whl进行安装。安装截图如下:成功安装截图:5.Xshell本上实验的Xshell5.0.0964为一个可执行的exe文件,选择好安装目录,双击即

    9、可进行安装。安装截图如下:成功安装后截图:运行截图:三、算法原理本次实验的inception模型主要运用了CNN卷积神经网络,下面主要就CNN卷积神经网络和inception模型做一个简单的介绍:CNN卷积神经网络:卷积神经网络是近年发展起来,并引起广泛重视的一种高效识别方法。20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络(Convolutional Neural Networks-简称CNN)。现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网

    10、络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。 K.Fukushima在1980年提出的新识别机是卷积神经网络的第一个实现网络。随后,更多的科研工作者对该网络进行了改进。其中,具有代表性的研究成果是Alexander和Taylor提出的“改进认知机”,该方法综合了各种改进方法的优点并避免了耗时的误差反向传播。一般地,CNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,

    11、平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。由于CNN的特征检测层通过训练数据进行学习,所以在使用CNN时,避免了显示的特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大

    12、优势。卷积神经网络以其局部权值共享的特殊结构在语音识别和图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点避免了特征提取和分类过程中数据重建的复杂度。1.Convolution Layers 卷积层在一个卷积层,上一层的特征maps被一个可学习的卷积核进行卷积,然后通过一个激活函数,就可以得到输出特征map。每一个输出map可能是组合卷积多个输入maps的值:这里表示选择的输入maps的集合,那么到底选择哪些输入maps呢?有选择一对的或者三个的。但下面我们会讨论如何去自动选择需要组合的特征maps。每一

    13、个输出map会给一个额外的偏置b,但是对于一个特定的输出map,卷积每个输入maps的卷积核是不一样的。也就是说,如果输出特征map j和输出特征map k都是从输入map i中卷积求和得到,那么对应的卷积核是不一样的。(1)Computing the Gradients梯度计算 (公式1)这里的“”表示每个元素相乘。 (公式2)我们假定每个卷积层都会接一个下采样层+1 。对于BP来说,我们知道,要想求得层的每个神经元对应的权值的权值更新,就需要先求层的每一个神经节点的灵敏度(也就是权值更新的公式(2)。为了求这个灵敏度我们就需要先对下一层的节点(连接到当前层的感兴趣节点的第+1层的节点)的灵

    14、敏度求和(得到),然后乘以这些连接对应的权值(连接第层感兴趣节点和第+1层节点的权值)W。再乘以当前层的该神经元节点的输入u的激活函数f的导数值(也就是那个灵敏度反向传播的公式(1)的的求解),这样就可以得到当前层每个神经节点对应的灵敏度了。 然而,因为下采样的存在,采样层的一个像素(神经元节点)对应的灵敏度对应于卷积层(上一层)的输出map的一块像素(采样窗口大小)。因此,层中的一个map的每个节点只与+1层中相应map的一个节点连接。 为了有效计算层的灵敏度,我们需要上采样upsample 这个下采样downsample层对应的灵敏度map(特征map中每个像素对应一个灵敏度,所以也组成一

    15、个map),这样才使得这个灵敏度map大小与卷积层的map大小一致,然后再将层的map的激活值的偏导数与从第+1层的上采样得到的灵敏度map逐元素相乘(也就是公式(1)。 在下采样层map的权值都取一个相同值,而且是一个常数。所以我们只需要将上一个步骤得到的结果乘以一个就可以完成第层灵敏度的计算。 我们可以对卷积层中每一个特征map j重复相同的计算过程。但很明显需要匹配相应的子采样层的map(参考公式(1):up(.)表示一个上采样操作。如果下采样的采样因子是n的话,它简单的将每个像素水平和垂直方向上拷贝n次。这样就可以恢复原来的大小了。实际上,这个函数可以用Kronecker乘积来实现:到

    16、这里,对于一个给定的map,我们就可以计算得到其灵敏度map了。然后我们就可以通过简单的对层中的灵敏度map中所有节点进行求和快速的计算bias基的梯度了: (公式3)最后,对卷积核的权值的梯度就可以用BP算法来计算了(公式(2)。另外,很多连接的权值是共享的,因此,对于一个给定的权值,我们需要对所有与该权值有联系(权值共享的连接)的连接对该点求梯度,然后对这些梯度进行求和,就像上面对bias基的梯度计算一样:这里,是中的在卷积的时候与逐元素相乘的patch,输出卷积map的(u, v)位置的值是由上一层的(u, v)位置的patch与卷积核逐元素相乘的结果。2.Sub-sampling La

    17、yers 子采样层对于子采样层来说,有N个输入maps,就有N个输出maps,只是每个输出map都变小了。down(.)表示一个下采样函数。典型的操作一般是对输入图像的不同nxn的块的所有像素进行求和。这样输出图像在两个维度上都缩小了n倍。每个输出map都对应一个属于自己的乘性偏置和一个加性偏置b。(1)Computing the Gradients 梯度计算这里最困难的是计算灵敏度map。一旦我们得到这个了,那我们唯一需要更新的偏置参数和b就可以轻而易举了(公式(3)。如果下一个卷积层与这个子采样层是全连接的,那么就可以通过BP来计算子采样层的灵敏度maps。 我们需要计算卷积核的梯度,所以

    18、我们必须找到输入map中哪个patch对应输出map的哪个像素。这里,就是必须找到当前层的灵敏度map中哪个patch对应与下一层的灵敏度map的给定像素,这样才可以利用公式(1)那样的递推,也就是灵敏度反向传播回来。另外,需要乘以输入patch与输出像素之间连接的权值,这个权值实际上就是卷积核的权值(已旋转的)。到这里,我们就可以对b和计算梯度了。首先,加性基b的计算和上面卷积层的一样,对灵敏度map中所有元素加起来就可以了:而对于乘性偏置,因为涉及到了在前向传播过程中下采样map的计算,所以我们最好在前向的过程中保存好这些maps,这样在反向的计算中就不用重新计算了。我们定义:这样,对的梯

    19、度就可以用下面的方式计算:3.Learning Combinations of Feature Maps 学习特征map的组合大部分时候,通过卷积多个输入maps,然后再对这些卷积值求和得到一个输出map,这样的效果往往是比较好的。在一些文献中,一般是人工选择哪些输入maps去组合得到一个输出map。但我们这里尝试去让CNN在训练的过程中学习这些组合,也就是让网络自己学习挑选哪些输入maps来计算得到输出map才是最好的。我们用表示在得到第j个输出map的其中第i个输入map的权值或者贡献。这样,第j个输出map可以表示为:需要满足约束:这些对变量的约束可以通过将变量表示为一个组无约束的隐含权

    20、值的softmax函数来加强。(因为softmax的因变量是自变量的指数函数,他们的变化率会不同)。因为对于一个固定的j来说,每组权值都是和其他组的权值独立的,所以为了方面描述,我们把下标j去掉,只考虑一个map的更新,其他map的更新是一样的过程,只是map的索引j不同而已。Softmax函数的导数表示为:这里的是Kronecker delta。对于误差对于第层变量的导数为:最后就可以通过链式规则去求得代价函数关于权值的偏导数了:(1)Enforcing Sparse Combinations 加强稀疏性组合为了限制是稀疏的,也就是限制一个输出map只与某些而不是全部的输入maps相连。我们

    21、在整体代价函数里增加稀疏约束项()。对于单个样本,重写代价函数为:然后寻找这个规则化约束项对权值求导的贡献。规则化项()对求导是:然后,通过链式法则,对的求导是:所以,权值最后的梯度是inception模型:自2012年AlexNet做出突破以来,直到GoogLeNet出来之前,大家的主流的效果突破大致是网络更深,网络更宽。但是纯粹的增大网络有两个缺点过拟合和计算量的增加。解决这两个问题的方法当然就是增加网络深度和宽度的同时减少参数,为了减少参数,那么自然全连接就需要变成稀疏连接,但是在实现上,全连接变成稀疏连接后实际计算量并不会有质的提升,因为大部分硬件是针对密集矩阵计算优化的,稀疏矩阵虽然

    22、数据量少,但是所耗的时间却是很难缺少。所以需要一种方法,既能达到稀疏的减少参数的效果,又能利用硬件中密集矩阵优化的东风。Inception就是在这样的情况下应运而生。第一步,将卷积分块,所谓的分块就是其实就是将卷积核分组,既然是分组索性就让卷积和不一样吧,索性使用了11,33,55的卷积核,又因为pooling也是CNN成功的原因之一,所以把pooling也算到了里面,然后将结果在拼起来。这就是最naive版本的Inception。对于这个Inception,有两点需要注意:层级越高,所对应的原始图片的视野就越大,同样大小的卷积核就越难捕捉到特征,因而层级越高,卷积核的数目就应该增加。11,3

    23、3,55 只是随意想出来的,不是必须这样。这个naive版的Inception,还有一个问题,因为所有的卷积核都在上一层的所有输出上来做,那55的卷积核所需的计算量就太大了。因而,可以采用NIN中的方法对上一层的输出进行Merge。这样就衍生出了真正可用的Inception。这个结构利用了NIN结构中非线性变换的强大表达能力。同时,正如决策森林和卷积神经网络二道归一中的隐式数据路由,计算量也大大减少,因为四个分支之间是不需要做计算的。再同时,还具有不同的视野尺度,因为不同尺寸的卷积核和pooling是在一起使用的。GoogLeNet的模型参数详细如下:inception模型就是在这样的背景下产

    24、生的,这里只是简单介绍其原理,后期还有很多改进的版本,这里不再赘述,其基本原理几乎一样,只是在算法的优化方面做了改进和升级。四、数据描述本次tensorflow实验主要实现了谷歌的deep dream,而deep dream作为谷歌的一个“艺术品”,其主要是将图片进行扭曲(本次采用inception模型),生成具有艺术感的图片,所以本次实验的输入数据为任意格式的图片,输出数据也为图片。由于图片大小和分辨率的不同,程序在计算处理的过程中,所花费的时间也会有所不同。本次实验中,为了更好地对比和发现实验效果的不同,我主要采用了5张图片,其中3张为风景图片,1张为动物图片,1张为人物图片,通过对比结果

    25、来发现inception模型对不同类型图片的扭曲效果,以便发现inception模型的缺陷和不足,从而对模型进行进一步的修改,以达到更好的扭曲效果,生成更具有艺术感的图片。五、测试过程及结果本次实验所采用的5张图片(3张风景,1张动物,1张人物)实验效果如下:1.原始图片(风景):扭曲后的图片:2.原始图片(风景):扭曲后的图片:3.原始图片(风景):扭曲后的图片:4.原始图片(动物):扭曲后的图片:5.原始图片(人物):扭曲后的图片:六、总结在本次实验中,利用Tensorflow实现谷歌deep dream,基本达到了预期的实验结果,inception模型扭曲后的图片,相较于原始图片有了一个

    26、较大的改变,在某些程度上具有一定的艺术感,但还有许多不足之处有待改进:1.inception模型在对图片进行扭曲的时候,极易在颜色较深的地方产生形变,产生类似于动物眼睛或形态的形状,这种扭曲效果不是很好,尤其在对人物图片或动物图片扭曲时,结果差强人意。2.inception模型在训练的时候,绝大部分训练图片都为动物图片,所提取的特征也主要为动物特征,导致inception模型的泛化性较差,在对不同类型图片扭曲时,产生的效果不尽相同,有的好,有的差,对比明显。3.本次inception模型,共有59层神经网络,提取了7458个主要特征,前几层提取了底层特性,像线、角等,后几层提取了较高层次的特性,中间层主要进行图片的计算和扭化,在编写算法对图像进行处理的时候,由于理论知识的不足,许多地方都是凭借经验进行,而没有考虑到特殊的情况,导致所扭曲的图片效果不好,尤其是对颜色较深的像素点的处理上,效果较差,程序只是考虑到某点的特征,而没有顾全到整体图片效果,没有一定的智能性。以上不足之处为最主要的几点,还需在以后的实验中不断改进和拓展。总的来说,通过本次实验,进一步加深了我对Tensorflow的理解和实践,进一步提高了我的编程能力和理论水平,对inception模型和CNN卷积神经网络有了一个全面而深刻的认识,这对于我以后的学习和研究是非常有必要的。


    注意事项

    本文(人工智能tensorflow实验报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开