elman神经网络 python实现_使用python+sklearn实现神经网络模型

1. 受限玻尔兹曼机器(Restricted Boltzmann machines)

受限玻尔兹曼机(RBM)是基于概率模型的无监督非线性特征学习器。将RBM或RBM的层次结构提取的特征输入到线性分类器(如线性支持向量机或感知器)中,往往能得到较好的效果。 该模型对输入的分布作了假设。目前,scikit-learn只提供 BernoulliRBM ,它假设输入是二值(0或1)或介于0和1之间的值,每个值都编码成特定特征被激活的概率。 RBM试图使用特定的图形模型最大化数据的可能性(likelihood)。所使用的参数学习算法(随机最大似然)可防止特征表示偏离输入数据,从而使它们捕获有趣的规律,但使模型对小型数据集的用处不大,且通常对密度估计不起作用。 该方法在具有独立RBMs权值的深层神经网络初始化中得到了广泛的应用。这种方法被称为无监督预训练(unsupervised pre-training)。

47bbd312e80229f665292de2fdb831cc.png

示例:
  • 用于数字分类的受限玻尔兹曼机器特性

1.1. 图形模型与参数化

RBM的图形模型是一个全连接的二分图(bipartite graph)。

f89296eedf09675178577fba12bdc0d2.png

节点是随机变量,其状态取决于它们连接到的其他节点的状态。因此,该模型由连接的权重以及每个可见和隐藏单元的一个偏置(bias)项参数化,为简单起见,将偏置项从上图中省略。 使用能量函数测量联合概率分布的质量: 在上面的公式中, 和 分别是可见层和隐藏层的偏置向量。模型的联合概率是根据能量定义的: 受限一词指的是模型的二分结构,它禁止隐藏单元之间或可见单元之间的直接交互。这意味着假设以下条件独立: 二分结构允许使用有效的块Gibbs采样(block Gibbs sampling)进行推断。

1.2. 伯努利限制玻尔兹曼机(Bernoulli Restricted Boltzmann machines)

BernoulliRBM 中,所有单元都是二元随机单元(binary stochastic units)。这意味着输入数据要么是二值的(0或1),要么是0到1之间的实数,表示可视单元打开或关闭的概率。这是一个很好的字符识别模型,关注的是哪些像素处于激活状态,哪些像素未激活。对于自然场景的图像,由于背景,深度和相邻像素采用相同值的趋势而不再适合。 每个单元的条件概率分布由其接收的输入的logistic sigmoid激活函数给出: 其中,是logistic sigmoid函数:

1.3. 随机最大似然学习(Stochastic Maximum Likelihood learning)

BernoulliRBM 中实现的训练算法称为随机最大似然(Stochastic Maximum Likelihood learning,简称SML)或持续对比发散(Persistent Contrastive Divergence,简称PCD)。由于数据似然的形式,直接优化最大似然是不可行的: 为了简单起见,以上公式是针对单个训练示例。相对于权重的梯度由与上述相对应的两个项构成。由于它们各自的符号,它们通常被称为正梯度和负梯度。在这个实现中,梯度是在小批量样本上估计的。 在最大化对数似然的情况下,正梯度使模型更倾向于与观测到的训练数据相容的隐藏状态。由于RBMs的二分结构,可以有效地进行计算。然而,负梯度是难以克服的。它的目标是降低模型所偏好的联合状态的能量,从而使其与数据保持一致。它可以通过马尔可夫链蒙特卡罗(Markov chain Monte Carlo)近似,马尔可夫链蒙特卡罗使用块吉布斯抽样,通过迭代抽样每个给定的v和h,直到链混合。以这种方式生成的样本有时称为幻想粒子(fantasy particles)。这种方法低效且很难确定马尔可夫链是否混合。 对比发散法(Contrastive Divergence method)建议经过少量迭代次数 k (通常是1) 后停止链。该方法速度快,方差小,但样本距离模型分布较远。 持续对比发散(Persistent Contrastive Divergence,即PCD)解决了这个问题。在PCD中,我们不是每次需要梯度时就开始一个新的链,只执行一个Gibbs采样步骤,而是在每次权值更新后保留多个更新了k个Gibbs步骤的链(幻想粒子)。这使得粒子能够更彻底地探索太空。 参考文献:
  • “A fast learning algorithm for deep belief nets” G. Hinton, S. Osindero, Y.-W. Teh, 2006
  • “Training Restricted Boltzmann Machines using Approximations to the Likelihood Gradient” T. Tieleman, 2008

文壹由“伴编辑器”提供技术支持

☆☆☆为方便大家查阅,小编已将scikit-learn学习路线专栏 文章统一整理到公众号底部菜单栏,同步更新中,关注公众号,点击左下方“系列文章”,如图:

29132adc99211d6b985b4da8aa788a35.png

欢迎大家和我一起沿着scikit-learn文档这条路线,一起巩固机器学习算法基础。(添加微信:mthler备注:sklearn学习,一起进【sklearn机器学习进步群】开启打怪升级的学习之旅。)

f9ddd4f9ad748280cff9cd100f68d128.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值