机器学习:西瓜书 神经网络 学习笔记

神经元模型

神经网络的定义:神经网络是具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。神经网络是一种难解释的“黑箱模型”。
神经元与M-P神经元模型:神经元是神经网络中最基本的成分。M-P神经元接收到来自多个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将于神经元的阈值进行比较,然后通过激活函数处理以产生神经元的输出。
激活函数的概念:实际情况中常使用Sigmoid函数作为激活函数。激活函数的作用是把较大范围内变化的输入值挤压到(0,1)输出值范围内,由此控制神经元的激活或静止,因此也被称为挤压函数。
神经元和神经网络的关系:多个神经元按照一定的层次结构连接起来就构成了神经网络。

感知机与多层网络

感知机的定义:感知机由两层神经元组成,输入层接受外界输入信号后传递给输出层,输出层由M-P神经元构成。感知机能够处理与或非等线性可分问题。
感知机的简单原理:如果感知机对训练样例预测正确,则感知机不发生变化,否则将根据错误的程度进行权重调整。
感知机的结构特点:感知机只有输出层神经元进行激活函数处理,也就是只有一层功能神经元,因此其学习能力十分有限。如果两类模式是线性可分的,也就是存在一个线性超平面可以将两个类别进行划分,则感知机的学习过程一定收敛;否则学习过程会发生振荡,权重难以确定,不能得到合适解。
解决非线性可分问题的方法:使用多层功能神经元可以解决非线性可分问题。输入层和输出层之间的神经元层称为隐含层,隐含层和输出层都是拥有激活函数的功能神经元。
多层前馈神经网络的层级结构:常见的神经网络,每一层神经元与下一层神经元全互连,但是神经元之间不存在同层连接和跨层连接。这样的神经网络结构称为“多层前馈神经网络”(前馈意味着神经网络的拓扑结构上不存在回路)。其中输入层神经元接受外界输入,隐含层和输出层神经元对信号进行加工,最终结果由输出层神经元输出。
多层神经网络:任意包含了隐含层的神经网络都可以称为多层神经网络。
神经网络的学习过程:神经网络的学习就是根据训练数据来调整神经元之间的连接权重以及每个功能神经元的阈值;也就是说,神经网络学习到的东西蕴含在神经元连接的权重和神经元的阈值之中。

误差逆传播算法

多层神经网络的优点:多层神经网络的学习能力比单层的感知机强得多。但是也需要更加强大的学习算法。
BP算法的概念:BP算法就是误差逆传播算法,也被称为反向传播算法,是迄今为止最成功的神经网络学习算法。现实中使用神经网络时,大多数情况下都是BP算法进行训练。
BP算法的适用范围:BP算法不仅适用于多层前馈神经网络,同时叶可以用于其他类型的神经网络,如训练递归神经网络。
BP算法的参数调整策略:BP是一个迭代学习算法,,在迭代的每一轮中采用广义的感知机学习规则对参数进行更新估计。BP算法基于梯度下降原则,以目标的负梯度方向对参数进行调整。
学习率的作用:学习率控制着算法每一轮迭代中的更新步长。学习率如果太高容易导致振荡,学习率太低会使得模型收敛过慢。学习率一般设置为一个小正数,如0.1。
BP算法的基本流程:首先将输入示例提供给输入层神经元,然后逐层将信号前传直到产生输出层的结果;接着计算输出层的误差,再将误差逆向传播到隐藏层神经元,最后根据隐含层神经元的误差对连接权和阈值进行调整。迭代过程循环进行,直到达到某些停止条件为止(如训练误差小于一定值),停止条件与缓解BP过程过拟合的策略有关。
标准BP算法和累积BP算法:标准BP算法参数每次更新参数只针对单个样例,参数更新非常频繁,并且对不同样例的更新结果可能相互抵消,因此为了达到最小误差往往需要更多轮的迭代过程。累积BP算法直接针对累积误差最小化,更新参数的频率要慢得多,但是在很多情况下,累积误差下降到一定值后进一步下降将会非常缓慢,这时标准BP往往可以更快获得较好的解,尤其是在训练集很大时更加明显。读取训练集一遍称为进行了一轮学习(epoch)。
隐层神经元的个数设定:到目前为止,如何设置隐含层中神经元的个数仍然是一个没有解决的问题,实际情况中通常使用“试错法”对隐层神经元个数进行调整。
BP算法存在的问题:BP算法的表示能力太强,以至于经常产生过拟合现象,训练误差不断降低,但是测试误差却不断升高。
解决BP过拟合的方法
①早停法:将数据分为训练集和验证集,训练集用来计算相关参数,验证集用来估计误差,如果训练集误差降低但验证集误差升高,则停止训练并返回具有最小验证集误差的参数。
②正则化法:在误差目标函数中增加一个用于描述网络复杂性的部分,例如连接权重与阈值的平方和。

全局最小和局部极小

全局最小解和局部极小解的理解:全局最小解相当于函数的最值,而局部极小解相当于函数的极值。因此全局最小解一定是局部极小解,但是反过来不成立。
寻找最小解的方法:基于梯度的搜索时使用最广泛的参数寻优方法。在此类方法中,从某些初始解除法,通过迭代的方式寻找最优参数值。每一次迭代中,首先计算误差函数在当前点的梯度,然后根据梯度确定搜索方向。
跳出局部极小解的方法:(大多是启发式算法,暂时缺少理论依据)
①从多个不同的初始点开始搜索。这样就可能陷入不同的局部极小解,从中选择出最小的一个作为接近全局最小解的解。
②使用模拟退火技术或遗传算法。这些算法在迭代的每一步都有一定的概率接受比当前解更差的结果。
③使用随机梯度下降的方法。该方法使得即使陷入局部极小点,计算出的梯度仍有可能不为零,有机会跳出该极小点。

其他常见神经网络

RBF网络

RBF网络的概念:RBF网络的全称为径向基函数网络,是一种单隐层前馈神经网络,使用径向基函数作为隐含层神经元的激活函数,而输出层是对隐含层神经元输出的线性组合。具有足够多隐层神经元的RBF网络可以以任意精度逼近任意连续函数。

ART网络

竞争性学习的概念:竞争性学习是神经网络中一种常用的无监督学习策略。使用该策略时,网络的输出神经元相互竞争,每一时刻仅有一个竞争获胜的神经元被激活,其他神经元的状态被抑制。
ART网络的概念:ART神经网络全称为自适应谐振理论网络,是竞争式学习的重要代表。ART网络的一个重要优点是可以进行增量学习和在线学习。增量学习是指学习完模型后,接收到新的训练样例后仅需要根据新样例对模型进行更新,而不必重新训练整个模型;在线学习是指每获得一个新样本就进行一次模型更新。

SOM网络

SOM网络的概念:SOM网络的全称是自组织映射网络,是一种竞争学习型的无监督神经网络。它能将高维输入数据映射到低维空间中,同时保持输入数据在高维空间的拓扑结构,也就是将高维空间中相似的样本点映射到网络输出层中的邻近神经元。

级联相关网络

结构自适应网络定义:一般的神经网络模型都假设网络结构事先固定,训练的目的是利用训练样本来确定合适的连接权、阈值等参数,而结构自适应网络把网络结构本身也作为学习的目标之一,并希望能够在训练过程中找到最符合数据特点的网络结构。ART网络也是一种结构自适应网络。
级联相关网络概念:级联相关网络是结构自适应网络的重要代表,与一般的神经网络相比,级联相关网络不需要设置网络层数、隐含神经元个数,并且训练速度较快,但是在数据较少时容易出现过拟合现象。

Elman网络

递归神经网络简介:递归神经网络允许网络中出现环形结构,从而使得一些神经元的输出反馈回来作为输入信号。Elman网络是最常用的递归神经网络之一。

Boltzmann机

Boltzmann机简介:Boltzmann机是一种“基于能量的模型”,该模型的目标是使得网络的“能量”达到最小化。Boltzmann机中的神经元都是布尔型的。标准Boltzmann机训练网络的复杂度非常高,难以用于解决现实任务;现实中常使用受限Boltzmann机。

深度学习

深度学习的产生背景:理论上来说,越复杂的模型越能完成复杂的学习任务,但是一般情况下,复杂模型的训练效率低并且容易产生过拟合,因此传统机器学习中不太青睐复杂模型。但是如今计算能力的大幅度提高和训练数据的大幅增加,使得以“深度学习”为代表的复杂模型开始受到关注。深度学习模型中的参数个数非常多。
深度学习和神经网络的关系:典型的深度学习模型就是很深层的神经网络,也就是包含隐含层很多的神经网络。多隐含层相较于多隐层神经元方法,不仅增加了拥有激活函数的神经元的个数,同时增加了激活函数嵌套的层数。但是,多隐层神经网络难以直接使用经典的例如BP算法进行训练。
无监督逐层训练:无监督逐层训练是多隐层网络训练的有效手段,其基本思想是每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,而本层隐结点的输出作为下一层的输入,这个过程称为“预训练”;在“预训练”全部完成后,再对整个网络进行“微调”训练。
对深度学习的理解:深度学习可以视为对输入信号进行逐层加工,从而把初始的与输出目标之间关联不太密切的输入表示转化为与输出目标联系更紧密的描述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值