1、原理介绍
神经网络的层次结构分为三大层:输入层,隐藏层,输出层。其中最为重要的是隐藏层,它包括四大部分:卷积层、激活层、池化层、全连接层。3层神经网络,最左边的一列称为输入层,最右边的一列称为输出层,中间的一列称为中间层,中间层也称为隐藏层。
2、实例讲解
本文利用手写数字识别来训练一个前馈神经网络。将设计并训练一个3层的神经网络,将数字图像作为输入,经过神经网络的计算,将会识别出图像中是数字几。从而实现数字图像的分类。
3、神经网络的设计与实现
设计一个图像数据的神经网络,需要首先明确图像数据的信息,包括大小和格式。手写数字图像为(28*28)大小的灰色通道图像。包括了28*28=784个数据点。将其展平为1*784大小的向量。再将向量输入到网络当中,输入图像中的每一个x都要有一个神经元接受,因此输入层为784个神经元。
隐藏层用于特征提取,将输入的特征向量处理为高级的特征向量。由于手写数字简单,将隐藏层神经元个数数字为256。
这样输入层与隐藏层之间有了一个784*256的线性层。这样就可以将784的输入向量转换为256的特征向量。然后隐藏层特征向量继续向前传播到达输出层。由于会将数字图像识别为0-9,10种数字,因此输出层为10,对应10种数字,这样数字图像经过神经网络得到了10纬的输出结果。这个10纬向量就是10个数字的预测得分。最后通过softmax层,将10纬向量转化为10个概率值。
Softmax函数的主要作用是将一组实数值转换为概率分布,常用于多类别分类问题中。