神经网络是目前很流行的深度学习的基础,也是一种很强大的算法。
我们先来看一种经典的神经网络图,
红色的是输入层,紫色的是中间层,也叫隐藏层,绿色的叫输出层,每一个圆圈代表一个节点,每一条线都对应一个权值,输入层的节点和输出层的节点一般是固定的,中间层的节点可以自由选择
神经网络的应用
神经网络最重要的功能是分类。现在还可以用它开发出许多功能,例如人脸识别
改变艺术风格
等等。
神经网络的背景
神经网络技术的启发来自于人们对人的神经系统的研究,如图,人的中枢神经系统由图中所示的一个一个的神经元组成,一个神经元通常有多根树突,用于接收来自其他神经元发出的信息,但只有一根轴突,轴突末梢分出许多“小枝”,这些小枝能传递给其它神经元信息。神经网络受此启发提出。
神经网络的提出及完善
心理学家McCulloch和数学家Pitts发表了抽象的神经元模型MP模型
每一个输入值乘以对应的权值并求和,再在函数的作用下输出的相应值。
但MP模型中的加权值是固定的,不能进行学习,计算科学家Rosenblatt提出了由两层神经元组成的神经网络叫做“感知机”,加权值是经过训练得到。
如果输出的是一个数值,那么输出层只有一个节点,如果输出的是一个n维向量,就有n个节点。
计算公式可以用矩阵表示,即g(W * a) = z;W是含参数的向量,z是输出的向量,
一般每层还隐藏一个偏置点,这个偏置点含有固定数1,没有箭头指向它,只有指出去的箭头,加上偏置点后的公式为 g(W * a(1) + b) = a(2)。单层神经网络与逻辑回归类似,都 用于分类。
感知机有很多不足,例如不能解决异或问题,
无论如何划线,都不能将两类结果分开,而且不能解决非线性问题。
一层神经网络神经网络的弊端,两层神经网络可以克服,但两层神经网络的计算量很大。
1986年,Rumelhar和Hinton等人提出了反向传播,解决了两层神经网络所需要的复杂计算量问题,使得两层神经网络解决问题成为可能。值得注意的是,在两层神经网络中激活函数g(x)从符号函数变为
Sigmoid函数。