吴恩达神经网络和深度学习-学习笔记-32-卷积神经网络示例

一个典型的神经网络

吴恩达神经网络和深度学习-学习笔记-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和参数个数的计算

吴恩达神经网络和深度学习-学习笔记-32-卷积神经网络示例
Activation size = W × H × C
parameters = numWeight + numbias
对于卷积层:parameters = [ (f × f)Weight + 1bias ] × numfilter
对于全连接层:parameters = (n[l-1] × n[l])Weight + 1bias

有几点要注意:

  • 池化层没有参数
  • 卷积层参数相对较少,许多参数都存在于神经网络的全连接层。
    随着神经网络的加深,**值会逐渐减小,如果**值下降太快也会影响网络性能。

根据吴恩达老师的经验,整合这些基本模块确实需要深入的理解和感觉,而找到这种感觉的最好的方法,就是大量阅读别人的案例。