CS231n学习笔记——介绍神经网络、卷积神经网络

CS231n学习笔记——介绍神经网络、卷积神经网络

————————————————————————————————————————————

神经网络

之前提到的线性分类器训练的重点在权重W上,但是只要将W和非线性函数(例如图中的max函数)组合并连接在一起,就组成了非线性的分类器——神经网络。
CS231n学习笔记——介绍神经网络、卷积神经网络
这些接在矩阵相乘操作之后的非线性函数叫做**函数,以下是几种常见的**函数:CS231n学习笔记——介绍神经网络、卷积神经网络
每种不同的**函数都有各自的优点和缺点,这些会在之后讨论。

在神经网络中,因为隐藏层之间的连接关系,这些线性计算层被称为全连接层
CS231n学习笔记——介绍神经网络、卷积神经网络
下图是一个典型的前馈神经网络feed-forward neural network)结构图
CS231n学习笔记——介绍神经网络、卷积神经网络
图中每一个隐藏层在矩阵运算之后的结果都经过函数f()的运算,在第一行可以看到函数f()的定义,是一个sigmoid函数,经过sigmoid(**函数)加工后的结果再传递给下一层继续计算。

在理解了之前线性分类器的知识后,神经网络其实是一个很简单的概念,它只不过将线性分类器的运算结果加上非线性运算,然后重复这个步骤,这样通过多个线性运算和非线性运算的组合就能得到一个很复杂的非线性分类器,而在复杂的样本空间中,非线性分类器的效果当然比单纯的线性分类器效果好很多。

————————————————————————————————————————————————

卷积神经网络

与普通神经网络相比多了卷积层(convolutions)需要训练,因为卷积层更能保留输入的空间结构。
2012年alexnet的出现是卷积神经网络在视觉领域确定地位的里程碑。

在每一个位置,都会取卷积核和图像特定部分之间的一个点积,从而得到一个数值结果。
卷积层的结构:
5x5的一个卷积核(filter),也被称为这个神经元的5x5的感受野,即这个神经元所能感受到的视野。
CS231n学习笔记——介绍神经网络、卷积神经网络
这个卷积核就像图像处理里面的滤波器一样,把5x5范围内的数值与卷积核内对应的数值相加求和,所以32x32的图片被压缩成28x28
CS231n学习笔记——介绍神经网络、卷积神经网络
如果这一个卷积层有5个卷积核,那么会生成28x28x5网络,卷积核的数量5就是他的深度。
CS231n学习笔记——介绍神经网络、卷积神经网络
与之前的全连接层把输入图像展开输入相比,之前的神经元与展开后的所有输入元素都直接相连,而在卷积层神经元只与图像的局部相连。
CS231n学习笔记——介绍神经网络、卷积神经网络
而整个卷积神经网络在卷积部分,每个卷积层之后都有一个**函数,每两层都会有一个池化层(POOLING),最后再连接到全连接层。
CS231n学习笔记——介绍神经网络、卷积神经网络
池化层的作用是让所生成的表示更小更容易控制,这样最后才会有更少的参数。池化层所做的工作是降低采样率处理,但是这种操作只在平面上,而不会对深度方向上的池化操作。
最常见的方法是最大池化法(MAX POOLING)
CS231n学习笔记——介绍神经网络、卷积神经网络
即在滤波器范围内只取最大值来代表这一个区域。
用最大池化而不用均值池化的原因是,最大池化有一个最大**的意义,前一层一般是**函数ReLU层,需要把没被ReLU**的值去掉 。现在也有越来越多的人利用步长滑动代替池化了。池化层的常用设置是2x2的卷积核加上2的步长。
卷积网络的最后一层输出得到的是一个固定矩阵(长宽高),直接拉平得到一个一维输入与朴素神经网络相连。可以理解为到了最后一层不需要维持之前的结构了,只需要把所有信息都输入到神经网络里分析并得出结论。