机器学习笔记三—卷积神经网络与循环神经网络

系列文章目录

  1. 机器学习笔记一—机器学习基本知识
  2. 机器学习笔记二—梯度下降和反向传播
  3. 机器学习笔记三—卷积神经网络与循环神经网络
  4. 机器学习笔记四—机器学习可解释性
  5. 机器学习笔记五—机器学习攻击与防御
  6. 机器学习笔记六—模型压缩

前言

  本节介绍一些有关卷积神经网络(CNN)和循环神经网络(RNN)的相关知识

一、卷积神经网络

  人在认知图像时是分层抽象的,首先理解的是颜色和亮度,然后是边缘、角点、直线等局部细节特征,接下来是纹理、几何形状等更复杂的信息和结构,最后形成整个物体的概念。
  卷积神经网络工作时模拟人认知图像的过程,它由多个卷积层构成,每个卷积层包含多个卷积核,用这些卷积核从左向右、从上往下依次扫描整个图像,得到称为特征图(feature map)的输出数据。网络前面的卷积层捕捉图像局部、细节信息,有小的感受野,即输出图像的每个像素只利用输入图像很小的一个范围。后面的卷积层感受野逐层加大,用于捕获图像更复杂,更抽象的信息。经过多个卷积层的运算,最后得到图像在各个不同尺度的抽象表示。

1.卷积

  根据Filter 1 我们可以了解到,Filter 1的作用就是用来寻找3*3单位阵,从结果我们可以看见3出现在左上角和左下角,也就是说在原始数据中存在3*3的单位阵,同理我们还可以使用Filter 2寻找中间一排是1的3*3矩阵,并且他的位置位于原始输入数据的右下角   所有的Filter扫描过后输出的结果共同构成了 特征图(Feature Map)

2.多通道卷积

  对于多通道输入,实际上卷积核的维度会相应改变,卷积核通道数和输入通道数相同,也就是说如果输入的是d*m*n的数据,在pytorch中如果卷积核我们定为2*2,那么实际上的卷积核是d*2*2,如果我们想要p通道输出,那么实际上是使用了p个卷结核

3.特征提取原理

  由于大多数的情况下我们通常使用最大池化,所以我们定义ak为第k个特征图的和
假定有一个训练好的模型,我们通过梯度上升的方法寻找x使得ak取最大值

  由结果图可知当图片存在一些有规律的条纹的时候ak的值是最大的,这也就是卷积核提取特征的原理,不同的卷积核可以提取不同的特征,网络最后通过这些特征来做出判断

  采用同样的办法,我们也可以找到使得全连接某一个节点最大的x

  同样的方法,我们去计算输出层的某一个节点,寻找最大x使得yi最大,我们输入的是数字的图片,所以yi对应着数字i,按照常理推断,我们所得出的x应该是一个非常具有辨识性的数字i的图片,但是实际上并不是,也就是说实际上计算机学习到的东西和人脑不相同

  但是我们也有办法让神经网络反向生成的x和我们人脑看到的类似,例如可以调整计算x的方法,通过寻找x使得

y i − ∑ i , j ∣ x i j ∣ {y^i-}\sum_{i,j}|x_{ij}| yii,jxij
最小,减去xij的绝对值的和原因是要让找出来的图像尽量黑白分明

实际上还有很多方法去进一步计算更加符合人脑的x

  有兴趣还可以去了解一下Deep Dream和Deep Style

二、循环神经网络(RNN)

1.循环神经网络

   循环神经网络是一种具有记忆力的网络,它可以记忆前边的输入,使得前边的输入n对后边n+1的输出产生影响

注:蓝色框为记忆单元,初始值赋值为(0,0),所有的权重设置为1,bias为0
   我们输入的数据值是[[1,1],[1,1],[2,2]],我可以观察到第一个[1,1]的输出值为[4,4],然后更新记忆单元数值为[2,2]

   输入第二个[1,1],这时的输出结果为[12,12],也就是说前一个[1,1]对后一个[1,1]的输出结果产生影响,同时如果调换输入的顺序,RNN会有一个完全不同的输出,RNN对于输入顺序的变化很敏感,所以,RNN对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,它可以区分出ABC和CBA

   而对于全连接神经网络在训练时ABC和CBA是没有区别的

2.Jordan network和Elman network

   Jordan network和Elman network是RNN的两种不同形式,其中Elman network是我们常用的一种形式,LSTM、GRU都是采用的Elman network,传说Jordan network的准确率是要高于Elman network的,但是Elman network每一个循环层都是相互独立的,网络结构的设计更加灵活。另外,而当Jordan network的输出层与循环层的维度不一致时还需要额外的调整,而Elman network则不需要。因此当前主流的循环神经网络都是基于Elman network的,所以,通常我们所说的循环神经网络(RNN),默认指的就是Elman network结构的循环神经网络。

3. RNN 的一些特性

   由于RNN本身的原因,它的损失可能会出现断崖,所以在程序没有bug的时候程序的损失值也有可能是绿色线条的样子    那产生损失断言的原因是什么什么呢?    我们设置一个最简单的RNN除了记忆单元的权重为w,其余的权重都为1,当我们一共有999步的时候,我们发现w对于y的影响非常大,当w大于1的时候会非常容易造成梯度爆炸,小于又会造成梯度消失,所以为了解决这个问题,研究人员提出了LSTM,然后有进一步提出了GRU

4.LSTM和GRU

   LSTM和GRU这里就不细说了,有两篇写LSTM计算原理的博文非常不错,感兴趣的可以参考一下

https://blog.csdn.net/zhengxqq27/article/details/90481590
https://www.cnblogs.com/bonelee/p/12106075.html

总结

  对于CNN和RNN的一些相关知识进行了一些介绍

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值