zoukankan      html  css  js  c++  java
  • 第3次作业:卷积神经网络

    【前言】

    本次作业是关于卷积神经网络的,附上一张 卷人神经网络图

    ...下面进入正题

    【第一部分】视频学习心得及问题总结

    视频学习心得以及问题

    丁泽中:这次的视频学习了一些数学的相关知识,同时对卷积神经网络的相关知识进行复习。学习了Alex Net,VGG和Google net网络结构。目前Google net是较好的网络结构。Google net加深了深度,而且对全连接层FC做出了改变,致使虽然层数增加但是参数量大大减少,出错率大大降低了。卷积神经网络学习笔记深度学习的数学基础笔记

    李航:深度学习的数学基础主要先再次简要介绍了前一节讲的自编码器和玻尔兹曼机,然后又从线性代数、概率论、统计学习的相关方法、信息论等数学方法结合机器学习的模型、策略和算法三和方面对机器学习中的数据降维、支持向量机、梯度下降等进行了数学基础的介绍,在策略设计中又介绍了训练误差和泛化误差在机器学习中需要足够接近且训练误差要足够小的机制,其中还有奥卡姆剃刀原理和欠拟合过拟合的相应解决方案以及优化策略,同时介绍了sigmoid激活函数的定义以及它的平方损失,我在看完后对数学原理想要解决的问题的大致方向有了很好的一个理解,但是数学方法具体的实现步骤和原理的使用我还看的一知半解。卷积神经网络主要先介绍了卷积神经网络的应用以及与传统神经网络的比较,然后介绍了卷积神经网络的基本结构中卷积、池化和全连接的概念以及含义,简要介绍了神经网络中Feature map的计算原理,之后又介绍了一些卷积神经网络的典型结构,AlexNet dropout训练时随时关闭神经元防止产生过拟合,高斯扰动可以使图像发生颜色的变化VGG将AlexNet的卷积层由8层变成了16层,同时通过迁移学习降低了错误率,GoogleNet在VGG的基础上从模型结构进行了改进增加了一些模块并且只有AlexNet十二分之一的数据量,原理是将大的卷积核裂变为小的卷积核,从而降低了参数量,裂变的过程同时增加了激活函数的使用次数,从而提高了准确率,ResNet将错误率降到了百分之3.57,可以通过学习网络层数来解决梯度消失问题,最后用代码进行了图像分类实例操作。总的来说,通过这次学习我对卷积神经网络有了一个系统的了解和认识,对其中的解决、分类识别的原理有了一个大概的认知,但是对于具体的实现还是很不明白,需要在后续的学习和实战中加以理解。

    蒋四海:这次学习内容主要有深度学习的数学基础,在线性代数部分的学习中,我重温了之前学过的一些概念,如秩,奇异值等以及他们在深度学习中的意义,以及基于这些的应用,还有概率统计的相关知识。总的来说这次学习使我增进了对数学中一些概念的理解,并了解了他们在深度学习中的应用。另一个视频中又学习了卷积神经网络的原理和几种结构,对此有了大概的了解。但也只是初步学习,想要了解更深还要继续不断地学习。

    廖鑫源:首先了解了深度学习的一些数学基础,包括一些线代和概率的知识点,明白了深度学习的数学基础其实不是特别的难。而后了解了卷积网络的工作领域和工作原理,往往是一个卷积核对一个图片做一个步长确定的矩阵乘法运算,对每个部分做出不同的针对处理。再然后就是了解了池化,全连接,数据强化等,池化是对一个图片或数据进行“提纯”,提取其中的重点来进行分析,全连接进行数据输出储存大量参数,数据强化通过水平翻转,图片截取等手段,提升数据集大小,增强训练效果。接下来就是介绍了Alex Net,VGG和Google net这几个错误率越来越低的网络结构,其中VGG是对Alex net的结构做出加深的处理,大体不变,而Google net则是做出大胆的处理,不仅加深了深度,而且对全连接层FC做出了改变,除了数据输出的必要全连接,不包含其他的全连接结构,致使虽然层数增加但是参数量大大减少,大约为Alex net的1/12,出错率大大降低。

    徐凯新:通过本次学习,学习了卷积神经网络和相关数学知识的应用。通过这次学习我对卷积神经网络有了一个系统的了解和认识,对其中的解决、分类识别的原理有了一个大概的认知。

    杨宗富:通过本次学习,我对玻尔兹曼机(BM、DBM)、正则编码器、稀疏编码器、去噪编码器、变分自编码器有了初步的了解。其中变分自编码器似乎应用的点比较多,例如:文字修复、语料生成等。
    矩阵可以通过数据降维来进行图像压缩,但是原理看得不怎么懂。对训练误差和繁花误差不太理解。损失函数看不懂。
    其中提到奥卡姆剃刀原理:如无必要,勿增实体。可用于解决欠拟合/过拟合问题。
    我对频率学说和贝叶斯学说的理解是,频率学说的观点是事件概是客观存在的,实验是一个验证过程。贝叶斯学说的观点是一个修正的过程,事件是根据假设+数据来不断修正的。
    第一个视频后面提到了相关性和因果性。主要提到了识别时的相关性造成的识别错误。可见深度学习过程中还有很多问题要解决。

    【第二部分】代码练习

    2.1 MNIST 数据集分类

    2.1.1 加载数据 (MNIST)

    实验运行部分截图:

     2.1.2 创建网络

      2.1.3 在小型全连接网络上训练(Fully-connected network)

    准确率百分之88

    2.1.4 在卷积神经网络上训练

     准确率百分之95!!!

    含有相同参数的 CNN 效果要明显优于简单的全连接网络,CNN可以通过卷积和池化进行优化

    2.1.5 打乱像素顺序再次在两个网络上训练与测试


    从打乱像素顺序的实验结果来看,全连接网络的性能基本上没有发生变化,但是 卷积神经网络的性能明显下降。

    这是因为对于卷积神经网络,会利用像素的局部关系,但是打乱顺序以后,这些像素间的关系将无法得到利用。

    2.2  CIFAR10 数据集分类

    2.2.1 CIFAR10数据集介绍

    它包含十个类别:‘airplane’, ‘automobile’, ‘bird’, ‘cat’, ‘deer’, ‘dog’, ‘frog’, ‘horse’, ‘ship’, ‘truck’。CIFAR-10 中的图像尺寸为3x32x32,也就是RGB的3层颜色通道,每层通道内的尺寸为32*32。

    2.2.2 图像数据分类与识别

     发现出现错误。

    2.2.3 准确率分析

      发现准确率大概为64%

     2.3  使用 VGG16 对 CIFAR10 分类

    2.3.1 定义 dataloader

    2.3.2  VGG 网络定义

    2.3.3 网络训练

     

     准确率提高至83.13%!!!VGG更具有优势。

  • 相关阅读:
    dotnet 新项目格式与对应框架预定义的宏
    dotnet 线程静态字段
    dotnet 线程静态字段
    dotnet 通过 WMI 拿到显卡信息
    dotnet 通过 WMI 拿到显卡信息
    dotnet 通过 WMI 获取指定进程的输入命令行
    dotnet 通过 WMI 获取指定进程的输入命令行
    dotnet 通过 WMI 获取系统信息
    dotnet 通过 WMI 获取系统信息
    PHP show_source() 函数
  • 原文地址:https://www.cnblogs.com/lightac/p/13872481.html
Copyright © 2011-2022 走看看