前言
博主初次接触机器学习,记录个人学习历程。内容可能有诸多重复,但是我尽量用自己的话来讲,觉得写得还行就点赞转载。写博客的好处有二:一是总结学习内容,二是记录学习历程与同道这交流。在此,也希望读者能有一点点收获吧!如果不对的地方,还请多多指教!
上一篇 决策树
概述
《机器学习》第五章讲的是关于神经网络这一方面,内容上包括:神经元模型、感知机与多层网络、误差逆传播算法、全局最小与局部极小、其他常见的神经网络、深度学习。本章涉及到基本神经网络的组成与基本概念、常见的神经网络学习算法以及相关优化问题、常见的神经网络(RBF网络,SOM网络,级联相关网络等)的介绍,可以作为入门的基础资料进行阅读。
5.1 神经元模型
神经网络:神经网络是由具有适应性的简单单元组成的广泛互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。那么在机器学习中所讨论的神经网络主要指的是神经网络学习。
神经元模型:神经网络中简单单元就可以称为神经元。
神经网络的提出也是得益出于生物神经网络的思考,模拟生物大脑的网络处理方式。在生物神经网络中,每个神经元之间互连,当神经元接收了外部的输入,其神经元电位处于较高时,神经元会处于“兴奋”状态时会向其他神经元传递化学物质。而人工神经网络正是出于这种思考,我们假设每个神经元电位高于某个“阈值”时会处于兴奋,则对于每个神经元,如图5.1所示,我们可以通过将神经元的输入的线性组合量减去该阈值化作为函数变量的函数来量化是否处于兴奋状态,这个函数我们常常称之为激活函数。而这个模型在业界称为"M-P神经元模型"。
M-P神经元:神经元收到n个其他神经元传递过来的信号Xi,通过权重Wi连接,超过阈值θ就用f函数激活。
这里的f,是激活函数,可以是Sigmoid函数,也可以是其他函数。分类的话用S型函数,其的健壮性比较好,也易于求导,故选用它来gank neural network。对于激活函数,理想的激活函数应当是阶跃函数,因为阶跃函数能够将输入值映射为“0”或者“1”,这两个输出结果很好的对应了“兴奋”与“抑制”状态。但是由于阶跃函数具有不连续,不光滑等不太友好的数学性质,会导致后期最优解问题的棘手,估在神经网络的激活函数不采用阶跃函数,而是采用sigmod函数,两者在坐标轴如图5.2所示。
将单个神经元以一定的层次结构连接起来就得到神经络,如图5.6所示。
5.2 感知机与多层网络
感知机和多层网络:感知机就是指由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,也称“阈值逻辑单元”。可以看出感知机是只有一层功能神经元,因此学习能力非常有限,在解决一些复杂问题时,我们就需要提供多层的功能神经元去处理,也就是说在输入层和输出层之间加入一层功能神经元,这一层常常称为隐层。这样隐层和输出层都有了激活函数的功能神经元。
多层前馈神经网络:每层神经元与下层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接,称为“多层前馈神经网络”。这种网络中的输入层神经元只接受输入,不进行函数处理,隐层和输出层包含功能神经元。
如图5.3所示,图中是一个只有2个输入x1,x2的感知机网络。当然输入不限制,文中只是举例只有2个输入的感知机网络。
5.3 误差逆传播算法
误差逆传播算法(BP):先将输入层输入的数据提供给输入层神经元,然后逐层将信号前传,直到产生输出层的结构;然后计算输出层的误差,再将误差逆向传播至隐层神经元,最后根据隐层神经元的误差来对连接权和阈值进行调整,如此循环迭代,直到达到某些条件为止。
注:BP算法的目标是要最小化训练集D上的误差积累,因此正因为强大的表示能力,BP神经网络经常出现过拟合,因此训练误差持续降低,而测试误差逐渐升高。那么常用“早停”和“正则化”两种测量来解决过拟合问题。
5.4 全局最小与局部极小
由于BP学习算法强大的学习能力,因此在这个过程中常常会遇到过拟合问题。体现在虽然训练集的误差是持续降低的,但是验证集的误差是在提升的,严重影响了泛化能力。如何跳出局部最小?常用模拟退火技术、随机梯度下降以及多组不同参数值初始化多个神经网络三种手段进行缓解,跳出局部极小,从而进一步接近全局最小。
通常来说有两种策略来防止过拟合问题:
(1)早停策略:
将样本集分为训练集和测试集,在训练的过程中通过计算训练集的误差以及测试集的误差,理想情况是两者的误差都在减小,假若出现了训练集的误差在减小 而测试集的误差在增大的话则停止训练,同时返回具有最小测试集误差的连接权和阈值。
(2)正则化策略:
正则化是对学习过程中的目标函数进行调整,在目标函数中引入连接权与阈值的平方和一项,训练过程中会比较偏好较小的连接权与阈值,从而使得网络输出更加光滑,对于过拟合问题有所缓解。
误差目标函数修改为:
其中λ∈(0,1)用于对经验误差与网络复杂度这两项进行这种,通常通过交叉验证法来估计。
5.5 其他常见的神经网络
径向基函数网络、自适应谐振理论网络、自组织映射网络、级联相关网络、递归神经网络、Boltzmann机 。
5.6 深度学习
预训练—微调训练
局部寻优—全局寻优
参考资料
下一篇 支持向量机