最简单的Softmax回归模型是先将输入层通过一个全链接层获得的特征,而后直接经过softmax 函数进行多分类git
输入层的数据$X$传到输出层,在激活操做以前,会乘以相应的权重$W$,并加上偏置变量 $b$,具体以下:github
$ y_i = {softmax}(\sum_j W_{i,j}x_j + b_i)$网络
其中 $ {softmax}(x_i) = \frac{e^{x_i}}{\sum_j e^{x_j}}$函数
对于有 N 个类别的多分类问题,指定 N 个输出节点,N 维结果向量通过softmax将归一化为 N 个[0,1]范围内的实数值,分别表示该样本属于这 N 个类别的几率。此处的 $y_i$ 即对应该图片为数字 i 的预测几率。学习
在分类问题中,咱们通常采用交叉熵代价损失函数(cross entropy),公式以下:spa
$\text{crossentropy}(label, y) = -\sum_i label_ilog(y_i)$blog
Softmax回归模型采用了最简单的两层神经网络,即只有输入层和输出层,所以其拟合能力有限。为了达到更好的识别效果,咱们考虑在输入层和输出层中间加上若干个隐藏层教程
在多层感知器模型中,将图像展开成一维向量输入到网络中,忽略了图像的位置和结构信息,而卷积神经网络可以更好的利用图像的结构信息。LeNet-5是一个较简单的卷积神经网络。图4显示了其结构:输入的二维图像,先通过两次卷积层到池化层,再通过全链接层,最后使用softmax分类做为输出层。下面咱们主要介绍卷积层和池化层。图片
卷积层是卷积神经网络的核心基石。在图像识别里咱们提到的卷积是二维卷积,即离散二维滤波器(也称做卷积核)与二维图像作卷积操做,简单的讲是二维滤波器滑动到二维图像上全部位置,并在每一个位置上与该像素点及其领域像素点作内积。卷积操做被普遍应用与图像处理领域,不一样卷积核能够提取不一样的特征,例如边沿、线性、角等特征。在深层卷积神经网络中,经过卷积操做能够提取出图像低级到复杂的特征。ip
输入图像大小为H=5,W=5,D=3,即$5 \times 5$大小的3通道(RGB,也称做深度)彩色图像。这个示例图中包含两(用K表示)组卷积核,即图中滤波器$W_0$和$W_1$。在卷积计算中,一般对不一样的输入通道采用不一样的卷积核,如图示例中每组卷积核包含(D=3)个$3 \times 3$(用$F \times F$表示)大小的卷积核。另外,这个示例中卷积核在图像的水平方向(W方向)和垂直方向(H方向)的滑动步长为2(用S表示);对输入图像周围各填充1(用P表示)个0,即图中输入层原始数据为蓝色部分,灰色部分是进行了大小为1的扩展,用0来进行扩展。通过卷积操做获得输出为$3 \times 3 \times 2$(用$H_{o} \times W_{o} \times K$表示)大小的特征图,即$3 \times 3$大小的2通道特征图,其中$H_o$计算公式为:$H_o = (H - F + 2 \times P)/S + 1,W_o$同理。 而输出特征图中的每一个像素,是每组滤波器与输入图像每一个特征图的内积再求和,再加上偏置$b_o$,偏置一般对于每一个输出特征图是共享的。
在卷积操做中卷积核是可学习的参数,通过上面示例介绍,每层卷积的参数大小为$D \times F \times F \times K$。在多层感知器模型中,神经元一般是所有链接,参数较多。而卷积层的参数较少,这也是由卷积层的主要特性即局部链接和共享权重所决定。
局部链接:每一个神经元仅与输入神经元的一块区域链接,这块局部区域称做感觉野(receptive field)。在图像卷积操做中,即神经元在空间维度(spatial dimension,即上图示例H和W所在的平面)是局部链接,但在深度上是所有链接。对于二维图像自己而言,也是局部像素关联较强。这种局部链接保证了学习后的过滤器可以对于局部的输入特征有最强的响应。局部链接的思想,也是受启发于生物学里面的视觉系统结构,视觉皮层的神经元就是局部接受信息的。
权重共享:计算同一个深度切片的神经元时采用的滤波器是共享的。例如图4中计算o[:,:,0]的每一个每一个神经元的滤波器均相同,都为W_0,这样能够很大程度上减小参数。共享权重在必定程度上讲是有意义的,例如图片的底层边缘特征与特征在图中的具体位置无关。可是在一些场景中是无心的,好比输入的图片是人脸,眼睛和头发位于不一样的位置,但愿在不一样的位置学到不一样的特征 (参考斯坦福大学公开课)。请注意权重只是对于同一深度切片的神经元是共享的,在卷积层,一般采用多组卷积核提取不一样特征,即对应不一样深度切片的特征,不一样深度切片的神经元权重是不共享。另外,偏重对同一深度切片的全部神经元都是共享的。
经过介绍卷积计算过程及其特性,能够看出卷积是线性操做,并具备平移不变性(shift-invariant),平移不变性即在图像每一个位置执行相同的操做。卷积层的局部链接和权重共享使得须要学习的参数大大减少,这样也有利于训练较大卷积神经网络。
池化是非线性下采样的一种形式,主要做用是经过减小网络的参数来减少计算量,而且可以在必定程度上控制过拟合。一般在卷积层的后面会加上一个池化层。池化包括最大池化、平均池化等。其中最大池化是用不重叠的矩形框将输入层分红不一样的区域,对于每一个矩形框的数取最大值做为输出层,如图6所示。
更详细的关于卷积神经网络的具体知识能够参考斯坦福大学公开课和图像分类教程。
sigmoid激活函数: $f(x) = sigmoid(x) = \frac{1}{1+e^{-x}}$
tanh激活函数:$ f(x) = tanh(x) = \frac{e^x-e^{-x}}{e^x+e^{-x}}$
实际上,tanh函数只是规模变化的sigmoid函数,将sigmoid函数值放大2倍以后再向下平移1个单位:$tanh(x) = 2sigmoid(2x) - 1$ 。
ReLU激活函数: $f(x) = max(0, x)$
更详细的介绍请参考维基百科激活函数