概述
深层神经网络问题导入
常见的神经网络
(NN,CNN,RNN)
不同神经网络的应用
根据不同的问题,需要不同的算法。
一般的神经网络存在的问题
之前介绍的一般的神经网络也可以称为全连接神经网络。
所有节点之间相互连接,计算量仍然很大。
图像模式的特性
考虑图像识别问题
对于一张位图(一般像素的,不是矢量的),
要识别其内容,我们并不需要考虑所有的像素,即识别东西靠的是一部分特征,
因此,我们需要一种提取局部特征的方法。
另外,这种特征在一定程度的缩放下仍然有效。(图片放大缩小也认得出来)
\(\Rightarrow\)
1、关键的是局部特征。
2、特征可以缩放。
神经网络概念引出
对图像模式特性的两个问题的分析
对于第一个问题,
需要定义一种提取局部特征的方法,
然后用这种方法遍历整张图片。
\(\Rightarrow\)
卷积
对于第二个问题,
在神经网络逐层累加的过程中,可以直接对图像进行缩放。
\(\Rightarrow\)
池化
CNN结构基础
卷积层——激活函数——池化层——全连接层
简单解释一下
卷积
(又称空域滤波)
对一定范围内的输入进行线性运算,输出结果到下一层。
以上图为例子,输入为\(f\)输出(下一层)为\(g\),
用了一个\(3\times3\)的卷积核(又称滤波器,即一组运算的参数和方法)
\[ g\left(x,y\right)=\sum_{s=-a}^{a}\sum_{t=-b}^{b}w\left(s,t\right)f\left(x+s,y+t\right) \]
(显然,就是二维卷积)
再拿个有数字的实例
常用滤波器举例
盒滤波器
简单的求平均,显然,可以把图片模糊化。
高斯滤波器
同理,这就叫高斯模糊。
锐化用的滤波器的基础设计
池化
降低数据复杂度的运算,
比如“最大池化‘,选取特定范围输入中的最大值,输出到下一层。
(感觉其实就是把线性运算改成其他功能的函数的卷积)
CNN基本框架
输入层——卷积层——激活层——池化层——全连接层
(卷积、激活、池化即类似隐层,可以有多层,
全连接层即最后的结果经过一次全连接的运算后输出)
输入层
没啥好说的,略。
卷积层
计算机如何知道图上有什么物体——检测图像的边缘
灰度图像上的单核卷积
感受野:一个神经元连接到的输入区域。
RGB图像上的单核卷积
输入有三层,那么需要的卷积核深度为三。
卷积核深度=输入数据的层数(channel)
多个卷积核
一个卷积核,提取一种模式,对应一层输出,
多个卷积核就有多层输出。
stride
卷积核一次滑动的步长。
padding
一般选项有两种padding=valid/same(不补零/补零)
即在输入的周围补不补零。
显然,stride和padding都会影响输出层的大小。
05_p13:
\(W_1×H_1×D_1\)
超参数:
层数,\(K\)
维数,\(F\)(一般每层都是\(F\times F\)方阵)
步长stride,\(S\)
补零padding,\(P\)(补充的维数)
输出:
\(W_2×H_2×D_2\)
\(W_2=\frac{W_1+2P-F}{S}+1\)
\(H_2=\frac{H_1+2P-F}{S}+1\)
\(D_2=K\)
激活层
往模型中加入非线性元素,能表示更大范围的函数。
一般不在同一个网络中使用多种激活函数。
池化层
在width和height的维度上进行下采样,不改变depth的维度。
池化过程举例
上面即使用\(2\times2\),stride=2的卷积核进行池化,
相当于缩小为50%。
该卷积核是人为定义的,不是通过学习获得,不算做参数。
这样能成倍减少计算量。
不同的池化方法
最大池化、平均池化……
全连接层
将多层的特征映射抻直成一个一维的向量。
采用全连接的方式将向量连接向输出层。