卷积神经网络的深入理解
卷积神经网络的深入理解
1.神经元是什么?
答:按照我个人的理解,神经元是一个物体的定义的标签,比如一个零件我们考虑两个标签,重量w和长度l,那么神经网络就有两个输入神经元,比如输入是图片,那么图片中的每一个像素就是一个神经元。
2.卷积神经网络各层的理解
(1)卷积层最重要的一个优点就是减少训练的参数,这里的参数一般指的是权重w,通过权值共享减少参数,在原图上通过滑动不同权重的卷积核获得不同的特征图,在原图滑动的卷积核其共用同一组权重值,而不像全连接层每一个每一个像素都需要一个权重值,参数量会很大。
(2)**函数层,主要是为了增加神经网络的非线性功能,如果不加**函数,神经网络只能处理简单的线性问题,,这个博客对**函数的作用解释的挺好的,看了能懂,本来要上链接,难不成我不会,博客写的题目是:神经网络**函数的作用是什么?
(3)池化层不需要训练参数,不需要学习新的特征,只是为了降低参数,防止过拟合等,改变了特征图的大小,特征图的通道数即个数没有改变。
(4)全连接层每个神经元与前后相邻层的每一个神经元都有连接关系,输入是特征,输出为预测的结果。全连接层就是高度提纯的特征,方便交给最后的分类器或者回归。如下图所示,怎么样把3x3x5的输出,转换成1x4096的形式
可以理解为在中间做了一个卷积,我们用一个3x3x5的filter 去卷积**函数的输出,得到的结果就是一个fully connected layer 的一个神经元的输出,这个输出就是4096中的一个值。因为我们有4096个神经元,我们实际就是用一个3x3x5x4096的卷积层去卷积**函数的输出
这个操作就是它把特征representation整合到一起,输出为一个值。这样做,有一个什么好处?就是大大减少特征位置对分类带来的影响。
这篇知乎解释的挺清楚,https://zhuanlan.zhihu.com/p/33841176
(5)softmax层,这篇博文介绍的很清楚,附上链接https://blog.****.net/weixin_38145317/article/details/89448988
至此神经网络的前向传播介绍的差不多
下面说说反向传播
随机梯度下降是听的很熟悉的神经网络优化算法,什么是优化算法?就是通过这个算法不断调整参数w使得神经网络的输出值与真实值无限接近,就是数学中的从最后损失函数不断向前求偏导进而更新参数达到损失函数最小(损失函数=输出值与真实值的差值)发现的一篇好文章关于反向传播的,https://blog.****.net/program_developer/article/details/78977798