机器学习之神经网络与支持向量机

神经网络

定义

    神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应

神经元模型

    M-P神经元模型:接收到来自n个其他神经元通过带权重连接传递的输入信号,总输入值大于阈值则通过“激活函数”处理以产生神经元模型
    激活函数:阶跃函数(不连续、不光滑)、Sigmoid函数

感知机与多层网络

  • 感知机有两层神经元,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”。感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,可解决线性可分问题但不能解决非线性可分问题。
  • 隐层(隐含层):输出层与输入层之间的一层神经元
  • 包含隐层的神经网络即可称为多层网络
  • 多层前馈神经网络:输入层神经元接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出
  • 神经网络的学习过程就是根据训练数据来调整神经元之间的“连接权”以及每个功能神经元的阈值

误差逆传播算法(error BackPropagation, BP)

  • BP网络:用BP算法训练的多层前馈神经网络
  • 累积误差逆传播算法:基于累积误差最小化的更新规则进行误差逆传播

过拟合问题
    早停:将数据分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值,同时返回具有最小验证集误差的连接权和阈值
    正则化:在误差目标函数中增加一个用于描述网络复杂度的部分

全局最小与局部极小

  • 局部极小解:参数空间中的某个点,其领域点的误差函数均不小于该点的函数值
  • 全局最小解:参数空间中所有点的误差函数值均不小于该点的误差函数值

“跳出”局部极小策略:
    以多组不同的参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数
    使用“模拟退火”技术
    使用随机梯度下降
    遗传算法

其他常见的神经网络

    可塑性:神经网络要有学新知识的能力
    稳定性:神经网络在学习新知识时要保持对旧知识的记忆

  1. 径向基函数网络(RBF):一种单隐层前馈神经网络,使用径向基函数作为隐层神经元激活函数,而输出层是对隐层神经元输出的线性组合

  2. 自适应谐振理论网络(ART):竞争型学习的重要代表,该网络由比较层、识别层、识别阈值和重置模块构成,比较层负责接收输入样本,并将其传递给识别层神经元,识别层每个神经元对应一个模式类,神经元数目可在训练过程中动态增长以增加新的模式类

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

  4. Elman网络:最常用的递归神经网络之一,结构与多层前馈网络相似,但隐层神经元的输出被反馈回来,与下一时刻输入层神经元提供的信号一起,作为隐层神经元在下一时刻的输入

  5. Boltzmann机:一种基于能量的模型,其神经元分为两层:显层与隐层,显层用于表示数据的输入与输出,隐层则被理解为数据的内在表达。受限Boltzmann机仅保留显层与隐层之间的连接,从而将Boltzmann机结构由完全图简化为二部图,其常用“对比散度”算法

深度学习

  • 多隐层神经网络难以直接用经典算法进行训练,因为误差在多隐层内逆传播时,往往会“发散”而不能收敛到稳定状态
  • 无监督逐层训练:每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,而本层隐结点的输出作为下一层隐结点的输入,这称为“预训练”,在预训练全部完成后,再对整个网络进行“微调”训练

节省训练开销的策略:
    预训练+微调:将大量参数分组,对每组先找到局部看起来比较好的设置,然后再基于这些局部较优的结果联合起来进行全局寻优
    权共享:让一组神经元使用相同的连接权

支持向量机

间隔与支持向量

  • 划分超平面可通过如下线性方程来描述:w^T x+b=0
  • w为法向量,决定了超平面的方向,b为位移项,决定了超平面与原点之间的距离
  • 支持向量:两侧距离超平面最近的训练样本点
  • 间隔:两个异类支持向量到超平面的距离之和

核函数

机器学习之神经网络与支持向量机_第1张图片
【若两者均为核函数,则两者的线性组合、直积也为核函数】

软间隔与正则化

    软间隔:允许某些样本不满足约束
    常用替代损失函数:
机器学习之神经网络与支持向量机_第2张图片
支持向量回归

    支持向量回归(Support Vector Regression)假设能容忍f(x)与y之间最多有ϵ的偏差,即仅当f(x)与y之间的差别绝对值大于ϵ时才计算损失

核方法

基于核函数学习方法
最常见的,是通过“核化”(即引入核函数)来将线性学习器拓展为非线性学习器

你可能感兴趣的:(ML,机器学习,神经网络,支持向量机)