在这篇文章当中,我们将会用根据MNIST的数据集,跟大家介绍神经网络进行分类的基本原理和方法。
1.神经网络的正向计算
如果我们把神经网络当作一个黑盒来看,它的结构大概是这样的:
输入(层):一张图片
计算过程 : 神经网络
输出 (层): 这张图片属于每种分类的概率(或者说是分数)
现在我们来解释一下
输入是一张图片,也就是这张图片的各个像素的值,向量化了之后的向量,对于MNIST来说,就是一个( 1, 28*28 )的向量。通过训练,我们要让这个神经网络自己提取这些像素值的某种特征,这样当出现一个从来没有见过的图像的时候,也能根据识别的特征进行分类
计算过程:
众所周知,神经单元的基本结构是这样的
表示成向量,就是这样的
W1 = [ w1, w2, w3 ]
假设我们输入的图片向量是I = [ i1, i2, i3 ]
那我们计算出的分数其实是 S = W1 * I = w1 * i1 + w2 * i2 + w3 * i3
但是这样的表现力是不够的,还需要加入偏移量 B1 = [ b1, b2, b3 ]
所以我们计算出的分数其实就是S = W1 * I + B1
虽然这是最最简化的版本,但是基本的东西就是这样,很简单
根据现在的这个结构,我们只能算出一个分数,但是我们要对一个输入的图像算出多个分数,才知道该把它分成那一类,我么你现在要对权值矩阵做一定的调整
原来我们的权值是
W1 = [ w1, w2, w3 ]
现在我们的权值调整为
输入仍然是