神经网路中使用挤压函数(也就是阶跃函数,主要是sigmoid函数)可以将输入值转化到0-1范围内,此时的阶跃函数的输出就是单个神经元的输出。
感知机模型实战:
感知机是两层神经元。其中使用大量的逻辑关系来实现神经元的输出。
同时感知机中的激活函数中的权值wi和阈值theta可以通过学习获得。其中涉及到的学习率将用来对权重进行调整。同时,需要说明的一点是:感知机中的权值只出现在神经元的输入函数和输出层之间,并且感知机的输出只通过输出层实现。
感知机只解决的是线性可分的问题,对于非线性可分的问题需要使用多个感知机。其中包含了隐含层的设置。
多层反馈神经网络:实际上该种神经网络的学习过程就是确定每一层的阈值和连接权的过程。使用BP误差逆传播算法进行对多层反馈神经网络的训练。
BP算法的定义:设置对应的输入层 隐含层 输出层对应之间的权值和阈值之后,当神经网络输出之后计算其中的均方误差。然后使用迭代方法进行参数的更新。这里基于梯度下降算法进行更新参数,向着目标的负梯度下降方向对参数进行调整。给定学习率,因为第j个的隐含层的输出与输出层之间的权值设定为whj,whj先影响到的第j个输出层神经元的输入值bj而后再影响该输出层神经元的输出值yjk。那么可以将误差反过来对于输出层的输出和输出层的输入进行求导,而后可以获得whj的更新公式,然后可以获得对应的每一个输出层神经元的阈值theta j、vjh、对隐含层中阈值rh进行更新的公式。直到达到停止条件为止。BP算法中的目标是最小化训练集D上的累积误差。
重点:对于累计误差下降到一定程度之后,便无法实现对参数等的进一步更新。这时,使用标准BP算法可以更快获得较好的解,在训练集D非常大时更明显。
同时为了避免BP算法产生了过拟合现象,那么可以使用早停、正则化策略进行。
对于上述的早停策略来说,可以将数据集分为训练集和验证集,如果当验证集误差升高但训练集误差降低,那么停止训练,因为即将产生过拟合。
对正则化来说,基本思想是将误差目标函数中增加一个用于描述网络复杂度的部分。用于对经验误差和网络复杂度进行折中。常通过交叉验证法来估计。
全局最小和局部最小:使用梯度下降方法将对应的目标函数的值下降到全局最小值。
为了解决训练陷入局部最小值,使用的方法为:
其他常见的神经网络:
RBF网络:径向基函数网络,是一种单隐层的前馈神经网络,使用的是一种到数据中心ci之间的欧式距离的单调函数。常用的是高斯径向基函数。分为两步:1.确定神经元的中心,常用的是随机取样和聚类等;第二步是:使用BP算法来确定参数:权值wi和bi。(上述的两个参数是径向基函数中的参数)。
ART网络:竞争型学习是神经网络中一种常用的无监督学习策略。该种类型的网络中的输出神经元相互竞争,每一个时刻仅有一个竞争获胜的神经元被激活,其他神经元的状态被抑制。这种机制是:胜者通吃原则。
ART网络中,使用比较层接收输入样本,将其传递给识别层的神经元,识别层每个神经元对应一个模式类。神经元数目可以在动态训练的过程动态地增加。
而后其中的识别层神经元之间的相互竞争以获得神经元,最简单的竞争方式是:计算输入向量与每个识别层神经元所对应的模式类的代表向量之间的距离,距离最小的胜利。然后获胜的神经元向其他的神经元发送信号抑制其激活。如果其中的输入向量和获胜神经元对应的代表向量之间的距离大于阈值,那么就将该样本划归为该向量所代表的类别,同时网络之间的连接值将会更新。使得之后接收到相似的输入样本的时候会有更大的概率获胜。如果相似度不大于识别的阈值,那么重置模块将在识别层设置一个新的神经元,其代表向量就设置为当前的输入向量。
SOM网络:自组织映射网络。是一种竞争学习型的无监督神经网络,它将高维输入数据映射到低维空间。同时保持数据在高纬度状态下的拓扑结构,即将高纬空间中相似的样本点映射到网络输出层中的邻近神经元。
SOM网络的训练目标就是为每个输出层神经元找到合适的权向量,以达到保持拓扑结构的目的。
将输入向量和输出层的神经元计算距离,根据距离的最小值得到获胜神经元,然后将获胜神经元周围的权值调整,使得输入向量与这些调整后的神经元之间的距离缩小,不断迭代。
级联相关网络:是结构自适应网络的重要代表。其中的级联表示:建立层次连接的层级结构。开始训练的时候只有输入层和输出层,处于最小拓扑结构,随着训练的进行,新的隐层神经元逐渐加入,从而创建起层级结构。当新的隐层神经元加入时,输入端链接权值是冻结固定的。相关是通过最大化神经元的输出与网络误差之间的相关性来训练相关的参数。
该种的神经网络在数据集规模较小的时候容易陷入过拟合。
Elman网络:可以处理与时间有关的动态变化。是最常用的递归神经网络之一。
和前馈神经网络的训练过程不同的是:该种类的神经网络训练的时候,可以将隐含层的输入作为下一次训练的时候与新输入的样本输入层一起作为下一次隐含层的输入。
Boltzmann机:是一种基于能量的模型,其中的神经元都是布尔型的。状态1表示激活,状态0表示抑制。现实中,常使用受限的Boltzmann机,(不是全连接图)。简称为:RBM。其中RBM常用的是对比散度来进行训练。
对于每一个训练样本v来说,先计算出隐层神经元状态的概率分布,然后根据该概率进行分布采样之后得到h,然后根据h产生v’,再从v’产生h’,连接全的更新公式为:dolta w = yita(学习率) * (vhT - v’h’T)。
深度学习:增加隐层的数目显然要比增加隐层神经元的数目更有效。但是这个时候使用BP算法来训练,会导致权值和阈值的发散。
无监督逐层训练可以是多隐层网络训练的有效手段。先对每一个隐含层进行训练,之后对训练之后的模型进行微调。
另外一种方法是:使用权共享策略。CNN中使用的很好。
CNN详细介绍:包含输入层 采样层 卷积层 连接层 输出层。其中,每个卷积层包含多个特征映射,每一个特征映射是由多个神经元构成的平面。通过一种卷积滤波器提取特征。采样层也是会和层,是进行对于局部数据进行亚采样。最后的连接层和输出层完成识别任务。CNN可以使用BP算法进行训练。
此处,可将深度学习理解成特征学习或表示学习。