注意对比左右两个框图,用神经网络代替模型,用学习规则代替机器学习。
因此,神经网络是实现机器学习的一种重要模型,确定模型(神经网络)的过程称为学习规则。
大脑与神经网络的类比:大脑的神经元对应神经网络的节点,大脑的神经元连接对应神经网络的连接权值。
三输入的神经网络节点示意图,其中x1、x2、x3为输入信号,w1、w2、w3为对应x1、x2、x3的权值,b为偏置,y为神经网络节点的输出。也就是说,神经网络的信息以权值和偏置的形式存储。三输入神经网络节点的计算如下:
如果权值w1=1,w2=5,那么信号x2产生的效果将比x1大5倍;当w1=0,则表明信号x1并不对节点发送任何信息。节点将加权和v输入激活函数φ得到:
激活函数决定了节点的行为。
神经网络的分层结构示意图:输入层、隐藏层、输出层。只有输入和输出层的神经网络,称为单层神经网络。
包含两个或多个隐藏层的多层神经网络被称为深度神经网络。在实际应用中使用的大多数神经网络都是深度神经网络。
节点的激活函数为线性函数示例,但是这种激活函数并不实用,节点中线性函数的使用否定了隐藏层的作用效果。(因为y = x不涉及任何变换)在这种情况下,该模型在数学上与单层神经网络相同,该神经网络不具有隐藏层。
增量规则是一种神经网络的学习规则,也被称为Adaline规则或者Widrow-Hoff规则。增量规则是一种称为梯度下降的数值方法。
单层神经网络的增量规则训练过程如下:
-
以适当的值初始化权值。(权值的初始化可以是随机的,也可以是预先优化的,或者是经验值)
-
从{输入、正确输出}的训练数据中提取“输入”数据,并将其输入神经网络。计算神经网络的输出yi与输入对应的正确输出di之间的误差。
ei= di - yi
-
根据以下增量规则计算权值更新:
Δwij = αeixj
-
调整权值:
wij= wij + Δwij
-
对所有训练数据执行第2 – 4步。
-
重复第2 – 5步,直到误差达到可接受的水平。
每训练迭代一次,所有训练数据都将步骤2 – 5执行一次,该过程也称为纪元或时代。(epoch)
对于任意激活函数,增量规则可表示为:
wij = wij + αδixj
其中δi=φ’(vi)ei,φ’为输出节点i的激活函数的导数。当激活函数为线性函数时,激活函数的导数为1。
广泛使用的激活函数:sigmoid函数。sigmoid函数的输出值范围为0 – 1之间,当神经网络产生概率输出时,sigmoid函数的这种行为是很有用的。
神经网络的有监督学习实现权值更新一般有三种典型方案:随机梯度下降(Stochastic Gradient Descent,SGD)、批处理(Batch)、小批量处理(Mini batch)。
上图从左到右为:随机梯度下降、批处理、小批量处理
如果我们有100个训练数据点,SGD将调整权值100次。在批处理中,由于平均加权更新的计算,批处理方法需要消耗大量的时间进行训练。为了降低批处理的计算量,小批量处理选择出训练数据中的一部分用于批量处理训练,当选择合适的处理数据规模时,小批量处理方法会获得SGD的收敛速度和批处理的稳定性。因此,在深度学习处理海量数据时,小批量处理方法经常被实际应用。
批处理方法中运用的平均特性使得训练过程相对于训练数据的敏感程度降低。批处理方法需要更多的时间来训练神经网络,以产生与SGD方法类似的精度水平,但批处理的优点是:收敛稳定性好。
以上圆圈中标为“0”的数据为一组,标为“1”的数据为另一组,左图为线性可分的两组数据,右图无法用直线区分两组数据,必须用曲线进行分组
单层神经网络只能解决左图中的线性可分问题。为了克服单层神经网络的本质局限性,必须研究更复杂的多层神经网络。
更多精彩文章请关注微信号: