神经元,neuron
神经网络,Neural Networks
激活函数,activation function
权重,weight
输入层,input layer
输出层,output layer
隐藏层,hidden layer
向前传播,forward propagation
人工神经网络
人工神经网络是一种机器学习算法,兴起于上世纪八九十年代,但由于其本身计算量较大,受制于当时的硬件运算速度,因而应用较少,直至近几年才再度回到人们的视线。在我们已经学习了线性回归和逻辑回归的情况下,为什么还要研究神经网络呢?原因在于,该学习算法用于处理更加复杂的非线性假设。
举个例子。图片是以数字矩阵的方式存储的。例如,50x50像素的图片,包含2500个像素点,即50x50的点矩阵。若图片是RGB色图,每个点有红绿蓝三种颜色数值,那么,该图片样本将包含7500个特征值。若要将类似的图片样本,与其它样本区分开来,通过遍历所有二次项特征(即x_i*x_j)构建假设函数,则假设函数将包含7500*7500个特征值。这仅仅是50x50像素的图片,但无论线性回归还是逻辑回归,计算量是巨大的。
生物学中的许多神经重接实验,已能够间接证明,人脑皮层不同功能区域,似乎都具有某种相同的学习能力,用于学习其它不同区域的功能,而人工神经网络的目的正是模拟该学习功能。
人工神经元
人脑中存在大量的神经元细胞,人体所有的感知信息都是通过神经元来传递的。神经元细胞有两个重要的部分。一个是分叉树状的突起,称为树突,用于接收多个其它神经元传入的信息。一个是细长的轴突,用于向其它神经元发送信息。
人工神经网络是由一组人工神经元组成,人工神经元可以看做是一个运算单元。与人体神经元类似,人工神经元具有多个输入(N阶向量X),和一个输出。运行在人工神经元上,将输入映射为输出的函数,称为激活函数。激活函数中,每一个输入特征值都具有对应的参数,以表明该输入对于输出的影响。参数的集合(即)称为权重。
这里需要特别说明的是,可以是不同的函数模型,例如我们之前讲到的线性函数,或者对数函数。
人工神经网络示例
来看一个人工神经网络的例子。
如图所示的人工神经网络中,共分了四层。分别为,由特征值组成的Layer1,输入层。为输出的Layer4,输出层。
相对于用户可见的Layer1,Layer4两层,由组成的Layer2,以及组成的Layer3,都被称为隐藏层,对外不可见。
需要说明一下,
(1)神经元中的i,表示索引为i的隐藏层。j表示某一隐藏层中索引为j的神经元。
(2)权重,表示为索引为k的特征值(即),映射至第i层第j个神经元(即)时,所对应的权重。
若我们将运行在上的激活函数定义为,那么
那么,我们可以很容易的推算出该人工神经网络的假设函数
这里,我们称这种由输入层向前逐步计算出输出层的过程,称为向前传播。可看到向前传播的过程中,上层的输出成为下一层的输入。