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