自学参考:
一文搞懂卷积神经网络(CNN)的原理
视频课
课件+资料
笔记
一、引入
- cnn设计灵感来自于生物学中的视觉系统,旨在模拟人类视觉处理的方式。
- 常用场景:image classification
- 基本步骤:
- 把所有图片都先rescale成大小一样
- 把每一个类别,表示成一个one-hot的vector(dimension length决定了模型可以辨识出多少种类的东东)
- 把图像输入到模型中
直接摊开的话参数量过大。若输入的向量长度是100* 100*3,有1000个neuron,则第一层的weight就有1000 * 100 *100 * 3,即3 *107,是一个庞大的数量。
虽说随着参数的增加,可以增加模型的弹性,增加其能力,但也增加了overfitting的风险
⇒考虑到影像辨识问题本身的特性,无名并非一定需要fully connected,无需每一个neuron和input的每一个dimension都有一个weight
- 基本步骤:
二、神经元角度
-
思考①:模型通过识别一些“特定模式”来识别物体,而非“整张图”
⇒neuron也许并不需要把整张图片当作输入,只需把图片的一小部分当作输入,就足以让它们侦测某些特别关键的pattern是否出现
-
简化①:设定感受野receptive field
每个神经元只需要考察特定范围内的图像信息,把图像内容展平后输入到神经元即可。其中:- 感受野之间可重叠
- 一个感受野可有多个神经元选择(共享权重)
- 感受野大小可以“有大有小”(一般不做过大的kernal Size,常常设定为3*3)
- 感受野可以只考虑某些channel
- 感受野可以是“长方形”的
- 感受野理论上不一定要“相连”