04.卷积神经网络
第一周 卷积神经网络
1.1 计算机视觉
1.2 边缘检测示例
垂直边缘检测vertical
1.3 更多边缘检测内容
边缘过渡
水平边缘检测horizontal
1.4 padding
问题:
- 卷积后图片缩小;
- 边缘信息丢失
过滤器(卷积核)一般都为奇数(原因:1、可以对称填充;2、有中心点)
输出行=n+2*p-f+1
Valid卷积:不填充;
Same卷积:填充
要使输出行与输入行相等,即n+2*p-f+1=n
那么填充行p=(f-1)/2
1.5 卷积步长
输出卷积大小:
(n+2p-f)/s+1 * (n+2p-f)/s+1
若不能整除,就向下取整 floor(z)
数学中定义卷积是需要对卷积核进行翻转的。
卷积运算:按照机器学习操作,通常不进行翻转操作,直接对应元素相乘,实际上这个操作叫互相关更好。
1.6 卷积为何有效
卷积核与输入的通道数一致
一个过滤器(卷积核)可以检测到1中特征
通道数:又叫做三位立方体的深度,表示第三个维度的大小。
需要多个过滤器怎么办?
可以用输入与不同的k个卷积核分别相乘,得到k个通道的输出。输出的通道数就等于你检测的特征数。
1.7 单层卷积网络
避免过拟合:无论图像多大,参数数量可以是一样多的
1.8 简单卷积网络示例
1.9 池化层
池化层:缩减模型的大小,提高计算速度,同时提高提取特征的鲁棒性。
最大化操作的功能:只要任何一个象限内提取到某个特征,都会保留在最大池化的输出里。
最大池化:在过滤器提取特征,保留其最大值。
池化,信道数量相同。即:如果输入是三维立体的,那么输出也是三维立体的。每个信道都单独执行池化计算。
平均池化
最大池化比平均池化更长用。(也有例外:深度很深的神经网络)
一般只用:f(过滤器大小)、s(步幅)(常用f=2、s=2,相当于高度宽度都缩减一半)(也有:f=3、s=2)
一般很少用padding
池化过程中没有需要学习的参数
执行反向传播时,反向传播没有参数适用于最大池化。
池化只是计算神经网络某一层的静态属性。
1.10 卷积神经网络的示例
计算神经网络有多少层的时候,只统计具有权重和参数的层。
尽量不要自己设置超级参数,而是要查看文献看看别人才用了哪些超级参数。
选一个在别人任务中效果很好的架构。
随着神经网络深度的加深,高度、宽度通常都会减少,信道数量会增加(过滤器越来越多)。
通常,一个或者多个卷积后面跟一个池化层,然后是几个全连接层(类似单层的神经网络wx+b),最后是是softmax。
神经网络激活值:
如果激活值下降太快,会影响网络性能。
卷积层的参数越来越多,绝大部分参数都在全连接层。
- 卷积层的参数个数=卷积核(过滤器)nf*nf*nc的个数;
- 池化层没有参数;
- 全连接层参数个数=上层激活值大小*本层激活值大小(即:上层输出数*本层输出数)
- softmax参数个数=上层激活值大小*所求最终结果个数