吴恩达神经网络和深度学习-学习笔记-32-卷积神经网络示例
一个典型的神经网络
第一卷积层Conv1输入数据:32×32×3。
- 第一卷积层Conv1过滤器:维度5×5,步长1,填充0,过滤器6个。
输出维度为32-5+1=28×28×6
第一池化层Pool1输入数据:28×28×6。
- 第一池化层Pool1过滤器:维度2×2,步长2,填充0。
输出维度为28/2=14×14×6
第二卷积层Conv2输入数据:14×14×6。
- 第一卷积层Conv2过滤器:维度5×5,步长1,填充0,过滤器16个。
输出维度为14-5+1=10×10×16
第二池化层Pool2输入数据:10×10×16。
- 第二池化层Pool2过滤器:维度2×2,步长2,填充0。
输出维度为10/2=5×5×16
拉直成1维:5×5×16=400
全连接层FC3输入数据:400×1,输出数据120×1
全连接层FC4输入数据:120×1,输出数据84×1
Softmax回归输入数据:84×1,输出数据10×1
关于超参数的设置方法,尽量不要自己设置超参数,而是在文献中看别人采用了哪些超参数。选一个在别人任务中效果很好的框架,那么它也有可能适用于你自己的应用程序。
在神经网络中,另一个常见模式是:一个或多个卷积层后面跟随一个池化层,重复几次,然后是几个全连接层,最后是一个Softmax。
**函数size和参数个数的计算
Activation size = W × H × C
parameters = numWeight + numbias
对于卷积层:parameters = [ (f × f)Weight + 1bias ] × numfilter
对于全连接层:parameters = (n[l-1] × n[l])Weight + 1bias
有几点要注意:
- 池化层没有参数
- 卷积层参数相对较少,许多参数都存在于神经网络的全连接层。
随着神经网络的加深,**值会逐渐减小,如果**值下降太快也会影响网络性能。
根据吴恩达老师的经验,整合这些基本模块确实需要深入的理解和感觉,而找到这种感觉的最好的方法,就是大量阅读别人的案例。