【第3次作业】卷积网络神经

一. 视频学习心得及问题总结

曹阳:

1. 深度学习的数学基础

0. 自编码器

正则自编码器:使用提取的特征表达符合某种性质

稀疏自编码器:提取特征表达

稀疏约束:可以限制神经元平均激活度在一个很小的值.

去噪自编码区:能够对被污染,包括噪声的原始数据编码,解码,提取鲁棒性特征表达

变分自编码器:主要基于隐空间表达来填补数据.

深层网络的局部极小值主要是多个隐层复合导致的,和非凸性有一定关系.但这并不是主要因素.

1. 数学基础

这部分讲解了一些概率论,线性代数和微积分的数学知识, 尤其是线性代数部分, 海大的线性代数课更偏向于纯数学理论, 对矩阵相关的物理意义很少涉及, 能有这部分补充对在算法中的应用会有很大的帮助.

2.策略设计

机器学习采用什么策略主要考虑到泛化的性能.

泛化误差:

image-20201025171120993

训练误差:

image-20201025171206757
3.欠拟合,过拟合的解决方案
对于欠拟合,可以再决策树算法中拓展分支,在神经网络算法中增加训练的轮次
对于过拟合,可以通过剪枝,earlystop,dropout等方式处理,还可以做一些数据增广来扩大训练集.

2.卷积神经网络(CNN)

从结构上看相对于传统的神经网络,CNN并不完全使用全连接层,而是使用卷积层,激活层,全连接层交叉堆叠来学习.CNN能捕获图片的局部性质,所以可以很好地被用来进行图像有关的识别。卷积操作可以减少参数,但会增加计算量.

1.卷积神经网络的应用方向

卷积神经网络是目前计算机图形学应用中被广泛使用的算法.图像识别,图形分类,图像分割,乃至图像生成,自动驾驶.

2.卷积神经网络的组成结构

卷积神经网络的结构可以分为

1.卷积:对两个实变函数的一种数学操作,这里只输入和卷积核(滤波器)的运算.

2.池化:保留了主要特征的同时,减少参数和计算量,防止过拟合,提高模型泛化能力

3.全连接:通常在卷积神经网络的尾部

3.卷积神经网络的典型结构

AlexNet, ZFNet, VGG, GoogleNet, ResNet等

薛华丰:

一、深度学习的数学基础

  1. 机器学习三要素:模型、策略、算法

  2. 机器学习中的数学基础:线性代数、概率论、信息论、微积分

二、卷积神经网络

  1. 一个典型的卷积神经网络是由卷积层、池化层、全连接层交叉堆叠而成

  2. 卷积神经网络的基本应用:分类、检索、检测、分割

  3. 深度学习三部曲:搭建神经网络结构、找到一个合适的损失函数、找到一个合适的优化函数更新参数

  4. 卷积是对两个实变函数的一种数学操作

  5. 池化保留了主要特征的同时减少参数和计算量,防止过拟合,提高模型泛化能力。它一般处于卷积层与卷积层之间,全连接层与全连接层之间

  6. 全连接层通常在卷积神经网络尾部,两层之间所有神经元都有权重链接,参数量通常最大

  7. 典型网络结构:

AlexNet(2012年ImageNet图像分类竞赛的冠军)

ZFNet(2013年ImageNet图像分类竞赛的冠军)

VGG(2014年ImageNet图像分类竞赛的亚军)

GoogleNet(2014年ImageNet图像分类竞赛的冠军)

ResNet(2015年ILSVRV竞赛冠军)

通过本次作业,我对Pytorch有了进一步的了解,通过前后代码以及运行结果,大致能猜测出某些语句的意义,希望能进一步学习,更加了解Pytorch。

王宏基:

深度学习三部曲:搭建神经网络、找到合适的损失函数、找到合适的优化函数,更新参数


卷积神经网络与全连接神经网络异同

异:

  • 全连接网络处理图像的问题:参数太多->过拟合(过度地拟合了训练集中数据的特征,导致难以泛化)

  • 卷积神经网络则采用:局部关联、参数共享(一个神经元与一个局部块连接,以块为单位提取特征,提取过程中共用参数;)

同:

  • 均为层级结构(全连接层->卷积层、激活层、池化层、全连接层)

卷积层需要注意的概念:

  • 卷积核kernel/滤波器filter
  • 感受野receptive filed
  • 特征图activation map/feature map
  • 步长stride
  • 深度depth/channel
  • padding

池化层

池化(最大值池化(也有filter、stride概念)、平均值池化),类似于缩放过程,过程中保留主要特征,同时减少参数量和计算量,防止过拟合;通常处于卷积层与卷积层之间、全连接层和全连接层之间。


全连接层

两层间所有神经元都有连接,通常放在网络尾部,参数量通常最大

典型的卷积网络是由卷积层、池化层、全连接层交叉堆叠的


几代网络

AlexNet

  • Sigmiod函数->ReLu函数,解决梯度消失问题、计算速度快、收敛速度快

  • DropOut(随机失活):训练时随即关闭部分神经元,测试时整合所有神经元,避免过拟合

  • 数据增强(data augmentation): 平移、翻转、对称、改变RGB强度

ZFNet

结构与AlexNet相同,参数调细

VGG

较AlexNet更深,参数量大

GoogleNet

  • Inception结构
  • 除了输出没有额外的全连接层
  • 多卷积核增加特征多样性--插入1*1卷积核进行降维--用小卷积核代替大卷积核-->降低参数量、增加了非线性激活函数,表征能力更强、训练更快

ResNet

残差学习网络:去掉相同的主体部分,从而突出微小变化,不存在梯度消失,可用于训练较深的网络

吴文敏:

总结:

在这两个视频中,第一个偏向数学基础讲解,第二个重点强调卷积神经网络。

第一个视频中对一个数学概念有了一个全新的了解,尤其是在看了关于矩阵的一些讲解中,对矩阵有了一些更深的认识,了解了矩阵的相乘可以对原始向量施加方向和尺度变化。同时也是对矩阵秩有了重新的认识。

第二个视频对卷积神经网络有了一个基本的了解,尤其是卷积网络较传统神经网络的优势。对其中一些概念和基本结构有了一个初步的认识。

索欢:

总结:

​ CNN是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。它由一个或多个卷积层和顶端的全连通层组成,同时也包括关联权重和池化层。这一结构使得卷积神经网络能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网络在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网络,卷积神经网络需要考量的参数更少。

​ 卷积层是一组平行的特征图,它通过在输入图像上滑动不同的卷积核并运行一定的运算而组成。此外,在每一个滑动的位置上,卷积核与输入图像之间会运行一个元素对应乘积并求和的运算以将感受野内的信息投影到特征图中的一个元素。这一滑动的过程可称为步幅 Z_s,步幅 Z_s 是控制输出特征图尺寸的一个因素。卷积核的尺寸要比输入图像小得多,且重叠或平行地作用于输入图像中,一张特征图中的所有元素都是通过一个卷积核计算得出的,也即一张特征图共享了相同的权重和偏置项。线性整流层使用线性整流f(x)=max(0,x)作为这一层神经的激励函数。它可以增强判定函数和整个神经网络的非线性特性,而本身并不会改变卷积层。池化实际上是一种非线性形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化”是最为常见的,一个特征的精确位置远不及它相对于其他特征的粗略位置重要,它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的网络结构中的卷积层之间都会周期性地插入池化层。池化操作提供了另一种形式的平移不变性。因为卷积核是一种特征发现器,我们通过卷积层可以很容易地发现图像中的各种边缘。但是卷积层发现的特征往往过于精确,通过池化层我们可以降低卷积层对边缘的敏感性。池化层每次在一个池化窗口上计算输出,然后根据步幅移动池化窗口。最后,在经过几个卷积和最大池化层之后,神经网络中的高级推理通过完全连接层来完成。就和常规的非卷积人工神经网络中一样,完全连接层中的神经元与前一层中的所有激活都有联系。因此,它们的激活可以作为仿射变换来计算,也就是先乘以一个矩阵然后加上一个偏差偏移量。

​ 以下是几个经典CNN模型:AlexNet、VGG、GoogleNet、ResNet。AlexNet包含八层:前五层是卷积层,之后一些层是最大池化层,最后三层是全连接层。它使用了非饱和的ReLU激活函数,显示出比tanh和sigmoid更好的训练性能。(其他几个听的有点迷)

张子明:

一、视频学习

  1. 对可能性的不同解读促生了概率论的两个学派:频率学派和贝叶斯学派。频率学派关注可独立重复的随机试验中单个事件发生的频率,可能性是事件发生频率的极限值。其参数估计只依赖于观测数据。而贝叶斯学派更加关注随机事件的“可信程度”,其参数估计同时依赖观测数据和先验知识
  2. 一个典型的卷积网络是由卷积层、池化层、全连接层交叉堆叠而成。 卷积是对两个事变函数的一种数学操作。

二. 问题汇总

  1. 有些算法中用到了1x1大小的卷积核,它有什么作用?

  2. 第一个视频主要还存在的问题是关于矩阵秩的一个解释不太清楚。同时对它在图片处理的一个应用不太熟悉。在第二个视频中,一是对卷积的定义还不太了解,视频中说卷积是对两个实变函数的一种数学操作,但没有说这种操作的具体行为和功能作用,所以还是比较糊涂。

  3. 如何将图像的图形特征转换为数字特征?

  4. 卷积操作的实际意义是什么?

  5. 全连接层的长度和宽度如果增多对模型会有什么影响?

  6. 如何防止、解决过拟合?

  7. 滤波器的参数是如何初始化、如何调整的?

三. 代码练习(整合)

>1. MNIST 数据集分类

image-20201025193549491

image-20201025193605322

image-20201025193624725

image-20201025193641953

image-20201025193655437

image-20201025193706685

image-20201025193714962

image-20201025193735056

image-20201025193745449

image-20201025193807765

image-20201025193824154

image-20201025193833637

image-20201025193842427

image-20201025193849960

可以看到打乱像素顺序以后,全连接网络的性能没有太大的区别,不过由于CNN依赖于像素的局部关系,在打乱像素顺序后,性能会下降.

>2. CIFAR10 数据集分类

image-20201025195336273

image-20201025195401983

image-20201025195417271

image-20201025195425976

image-20201025195434912

image-20201025195441924

image-20201025195448178

image-20201025195455835

>3. 使用 VGG16 对 CIFAR10 分类

image-20201025202520449

image-20201025202531337

image-20201025202545274

image-20201025202821506

可以看到使用了VGG16模型得到的结果还是比较理想的.

posted @ 2020-10-25 20:44  软件工程丨代号X  阅读(406)  评论(0)    收藏  举报