第3次作业:卷积神经网络

第3次作业:卷积神经网络

第一部分

心得体会

寇金娣

​ 这次卷积神经网络视频的学习比上次收获更多一些,老师的讲解深入浅出,让我对卷积神经网络有了个大体的了解。之前耳熟能详的人脸识别,自动驾驶原来都与卷积神经网络有关,它主要应用在计算机视觉,可以做到对图片的分类、检索、检测、分割、图像生成。CNN主要应用在就深度学习的第一步——搭建神经网络结构中,剩余的两步分别是找到一个合适的损失函数和找到一个合适的优化函数。CNN在全连接网络的基础上进行优化,加入了卷积层和池化层。卷积层做到了局部关联,参数共享;池化层的在保留了主要特征的同时减少参数和计算量,防止过拟合,提高模型泛化能力。此外,我还了解到了一些卷积网络典型结构,比如AlsxNet,ZFNet等。
虽然对卷积神经网络大体有个了解,但更值得探讨的是具体实现,比如二维输入的数据是何种形式?局部关联如何确定局部的大小来提升识别准确率?何种训练函数最有效?不得不说,人类的智慧才是最无穷的,将人脑思考方式通过数据,模型,函数影射到机器上,真的很神奇。

李晓庆

​ 本周的视频学习,主要内容就是卷积神经网络。这一部分的内容在上周的基础上,拓展了更多更深的内容。学习视频过程中,记录了学习笔记,对于卷积神经网络CNN的基本结构以及典型网络结构有了较为全面的学习。
​ 但通过视频的学习,对于卷积神经网络的认识还是不够的,对于AlexNet、ZFNet等结构还只是处于大体了解基本原理,基本明白各结构间的区别。但更多地,关于如何合理地应用,可能还需要后续的继续学习。

李洁

​ 视频中提到,玻尔兹曼机和变分自编码器是目前最重要的概率生成式模型,变分自编码器是非监督生成模型,与对抗式生成网络GAN关系密切,是深度学习-概率图模型的桥梁。去噪自编码器能够提取鲁棒特征表达。深层网络的局部极小值主要是多个隐层复合导致的。矩阵的低秩近似是可以保留决定数据分布的最主要的方向。卷积神经网络的主要应用:分类、检索、检测、分割、人脸验证和识别、人脸表情识别、图像生成、图像风格转化、自动驾驶等。卷积神经网络典型结构:AlexNet,ZFNet,VGG,GoogleNet,ResNet.
​ 对于一些基本概念有了初步了解,并且大部分都能看懂,但是对于比如卷积神经网络它的运用方法,训练时模型所使用的过程,代码还没有完全掌握,个人感觉python相对来说比较难学一些,语法不太一样,函数以及库比较多一些。

慕洁

自编码器变种:去噪自编码器,稀疏自编码器,正则自编码器,变分自编码器。
机器学习的数学基础:概率论(模型假设、策略设计的基础),线性代数(数据表示、空间变换的基础),最优化(求解目标函数的具体算法)。
特征向量的定义:对于某一个矩阵来说,它对某一个向量施加线性变化之后只有尺度上的变化,但没有方向上的变化,则这个向量为这个矩阵的特征向量。Ax=λx
矩阵秩的定义:
​ 从线性方程组的角度:度量矩阵行列之间的相关性。
→如果矩阵的各行或列是线性无关的,矩阵就是满秩的,即秩等于行数。
​ 从数据点分布的角度:表示数据需要的最小的基的数量。
→数据分布模式越容易被捕捉,即需要的基越小,秩就越小。
→数据冗余度越大,需要的基就越少,秩越小。
→若矩阵表达的是结构化信息,如图像、用户-物品表等,各行之间存在一定相关性,一般是低秩。

数据降维:较大奇异值包含了矩阵的主要信息。
频率学派:参数估计只依赖观测数据。
贝叶斯学派:参数估计同时依赖观测数据和先验知识。
因果性=相关性+被忽略的因素

深度学习三部曲:
搭建神经网络 → 找到一个合适的损失函数 → 找到一个合适的优化参数,更新参数
损失函数是用来衡量吻合度的。
全连接网络处理图像的问题:权重矩阵的参数太多→过拟合
卷积神经网络的解决方式:局部关联,参数共享
相同之处:卷积层、激活层、池化层、全连接层
全连接:通常全连接层在卷积神经网络尾部。

卷积是对两个实变函数的数学操作,未加padding时输出的特征图大小:
$$
(N-F)/stride+1,
$$
有padding时输出的特征图大小:
$$
(N+padding*2-F)/stride+1。
$$
Pooling的类型:Max pooling最大值池化,Average pooling平均池化。

王佳伟

个人学习笔记

深度学习的数学基础:主要介绍了玻尔兹曼机和自编码器的特殊形式和应用,深度学习的数学基础包括:矩阵线性变换、矩阵的秩、低秩近似、概率函数形式统一、过拟合和欠拟合的概念,损失函数等。

卷积神经网络:主要介绍了卷积神经网络的基本结构(卷积层、池化层、全连接层)、基本概念及其应用,对比了传统神经网络和卷积神经网络,简述了卷积神经网络的经典结构 (AlexNet, ZFNet, VGG, GoogleNet, ResNet)。

补充关于卷积和池化的理解:卷积网络通过一系列方法,成功将数据量庞大的图像识别问题不断降维,最终使其能够被训练。最典型的卷积网络,由卷积层、池化层、全连接层组成。其中卷积层与池化层配合,组成多个卷积组,逐层提取特征,最终通过若干个全连接层完成分类。
​ 卷积核来对图像进行卷积操作(可以理解为有一个滑动窗口,把卷积核与对应的图像像素做乘积然后求和),得到了3x3的卷积结果。这个过程我们可以理解为我们使用一个过滤器(卷积核)来过滤图像的各个小区域,从而得到这些小区域的特征值。在实际训练过程中,卷积核的值是在学习过程中学到的。卷积层完成的操作,可以认为是受局部感受野概念的启发,而池化层,主要是为了降低数据维度。
​ 池化是采样的过程,即使减少了许多数据,特征的统计属性仍能够描述图像,而且由于降低了数据维度,有效地避免了过拟合。
​ 综合起来说,CNN通过卷积来模拟特征区分,并且通过卷积的权值共享及池化,来降低网络参数的数量级,最后通过传统神经网络完成分类等任务。

姚博涵

​ 通过对深度学习的数学基础视频学习,了解一些关于玻尔兹曼机的知识,多种的自编码器,深度学习的部分数学基础如线性代数的矩阵、秩等,以及机器学习三要素等。学习笔记

​ 通过对卷积神经网络视频学习,了解到卷积网络可以说是无处不在的,卷积网络相较于传统神经网络实现了局部关联以及参数共享。视频主要介绍了卷积神经网络的基本组成结构,卷积,池化,全连接以及卷积神经网络的几种典型结构。学习笔记

问题

1.深度学习与函数息息相关,那么如何快速有效的找到一个合适的损失函数或优化函数?(寇金娣)

2.对卷积神经网络的一些典型结构还是没太看明白(慕洁)

3.在理论上学习了几种CNN的典型结构,但对于应用方面不是很懂,还需要后续的学习(李晓庆)

4.AlexNet中DropOut那一步是怎么做到的?AlexNet分层解析没看太懂。(李洁)

5.代码虽然都跑完了,但理解不好,占坑,留着写一份详细的代码注释报告(王佳伟)

6.损失函数部分,卷积神经网络的典型结构比较模糊(姚博涵)

第二部分

代码练习及想法解读

附:以下是挑选的部分同学代码截图及代码练习链接

姚博涵

代码练习及想法解读

李晓庆

代码练习及想法解读

寇金娣

1.在CIFAR10数据集分类代码练习中,示范样例中数据集在CNN中的准确率是64%,但是我运行的结果是62%。我猜想原因是CNN并不是全连接层,结果会受函数的影响,其图片本身所用的局部参数可能也会不一样。

2.在colab上练习时,弹出提示:colab可用的GPU资源超额,于是,我选择我了非网络连接运行代码。我不禁好奇,网络GPU的作用是什么,查找资料,如下解释:GPU有加速效果,主要用在CNN算法中矩阵乘法的加速中。GPU处理矩阵算法能力很强大,刚好CNN中涉及大量的卷积,包括矩阵乘法等,所以在这方面可以加速。下图我运行出错的截图,尽管如此,但是还是可以运行成功,这也正说明了GPU主要是起加速作用。

3.代码完成截图

李洁

1.这两张图片是用CIFAR10来进行数据分类,识别图片,输出的结果正确率只有一半。应该是样本数量太少,对于某些具体的特征不能分辨,或者因为某些图片的局部实在很相似。

2.明明代码一样,咱也不知道为啥结果就不一样呢,我感觉是第一步文件下载出了问题,实在是不知道为啥了。

posted @ 2020-10-25 19:56  瓦菲  阅读(563)  评论(0)    收藏  举报