限制波尔兹曼机
2016-06-10 18:58
288 查看
1.玻尔兹曼分布
玻尔兹曼分布常用在热学中,对于一个有大量粒子的系统,如果系统处于或接近处于平衡,粒子的能量、速度、速率等就服从玻尔兹曼分布。
如果系统中有N个粒子,一共有j个能态,每个能态的简并度是gj,则体系的总状态数为:
用极大似然估计,需要找到Nj的分布使得W最大,由于有总粒子数和总能量数为定值的限制,这是一个约束最优化问题。
使用拉格朗日乘子法:
使用斯特灵公式,然后对每一项Ni做偏微分,令其为0,可得:
再使用其他热力学方法,可以得到最终的玻尔兹曼公式
2.玻尔兹曼机
当系统存在噪声时,处在局部最低的的分子收到扰动,不再停留在局部最低点,从而增大了移动到全局最低点的概率,玻尔兹曼机通过将“噪声”引入网络模型,使得神经网络脱离局部最低点。
如图,每条无向边都表示一对依赖关系,v是可见节点,h是隐藏节点,每个节点都是布尔值。全概率分布p(v, h)是玻尔兹曼分布。
玻尔兹曼机的训练方法为:
1.训练过程的目的是调整包含隐结点在内所有结点的联接权值;
2.将所见结点的状态一个接一个地按其所需概率锁定在所需状态上;
3.在这种锁定过程中计算每个
所联接两端同时处于激励状态的概率并存储下来;
4.让网络自由运行,对每个
记录其两端同时处于激励状态的概率;
5.对3与4所得结果进行比较,并因而调整其相应权值,使这两者越来越接近。
3.限制玻尔兹曼机
如果限制玻尔兹曼机为一个二分图,即只有可见层和隐层的节点之间有连接,而可见层与可见层、隐藏与隐层之间没有连接。设W是权重,可见层单元v的权重是a,隐层单元h的权重是h,则系统能量被定义为:
隐层和可见层的联合概率分布由能量函数给出:
因为限制玻尔兹曼机是一个二分图,层内没有边相连,所以层内的节点之间是条件独立的,所以:
其中,单个节点的激活概率为:
其中sigma是逻辑函数。
训练算法的目标是最大化可见单元的边缘概率的负对数:
可以在梯度下降的过程中使用吉布斯采样来最小化目标函数,步骤为:
1.取一个训练样本v,计算隐层节点的概率,在此基础上从这一概率分布中获取一个隐层节点激活向量的样本;
2.计算v和h的外积,称为“正梯度”;
3.从h获取一个重构的可见层节点的激活向量样本v',此后从v'再次获得一个隐层节点的激活向量样本h';
4.计算v'和h'的外积,称为“负梯度”;
5.使用正梯度和负梯度的差以一定的学习率更新权重 Wi,j:
玻尔兹曼分布常用在热学中,对于一个有大量粒子的系统,如果系统处于或接近处于平衡,粒子的能量、速度、速率等就服从玻尔兹曼分布。
如果系统中有N个粒子,一共有j个能态,每个能态的简并度是gj,则体系的总状态数为:
用极大似然估计,需要找到Nj的分布使得W最大,由于有总粒子数和总能量数为定值的限制,这是一个约束最优化问题。
使用拉格朗日乘子法:
使用斯特灵公式,然后对每一项Ni做偏微分,令其为0,可得:
再使用其他热力学方法,可以得到最终的玻尔兹曼公式
2.玻尔兹曼机
当系统存在噪声时,处在局部最低的的分子收到扰动,不再停留在局部最低点,从而增大了移动到全局最低点的概率,玻尔兹曼机通过将“噪声”引入网络模型,使得神经网络脱离局部最低点。
如图,每条无向边都表示一对依赖关系,v是可见节点,h是隐藏节点,每个节点都是布尔值。全概率分布p(v, h)是玻尔兹曼分布。
玻尔兹曼机的训练方法为:
1.训练过程的目的是调整包含隐结点在内所有结点的联接权值;
2.将所见结点的状态一个接一个地按其所需概率锁定在所需状态上;
3.在这种锁定过程中计算每个
所联接两端同时处于激励状态的概率并存储下来;
4.让网络自由运行,对每个
记录其两端同时处于激励状态的概率;
5.对3与4所得结果进行比较,并因而调整其相应权值,使这两者越来越接近。
3.限制玻尔兹曼机
如果限制玻尔兹曼机为一个二分图,即只有可见层和隐层的节点之间有连接,而可见层与可见层、隐藏与隐层之间没有连接。设W是权重,可见层单元v的权重是a,隐层单元h的权重是h,则系统能量被定义为:
隐层和可见层的联合概率分布由能量函数给出:
因为限制玻尔兹曼机是一个二分图,层内没有边相连,所以层内的节点之间是条件独立的,所以:
其中,单个节点的激活概率为:
其中sigma是逻辑函数。
训练算法的目标是最大化可见单元的边缘概率的负对数:
可以在梯度下降的过程中使用吉布斯采样来最小化目标函数,步骤为:
1.取一个训练样本v,计算隐层节点的概率,在此基础上从这一概率分布中获取一个隐层节点激活向量的样本;
2.计算v和h的外积,称为“正梯度”;
3.从h获取一个重构的可见层节点的激活向量样本v',此后从v'再次获得一个隐层节点的激活向量样本h';
4.计算v'和h'的外积,称为“负梯度”;
5.使用正梯度和负梯度的差以一定的学习率更新权重 Wi,j:
相关文章推荐
- 用Python从零实现贝叶斯分类器的机器学习的教程
- My Machine Learning
- 机器学习---学习首页 3ff0
- Spark机器学习(一) -- Machine Learning Library (MLlib)
- bp神经网络及matlab实现
- 反向传播(Backpropagation)算法的数学原理
- 关于SVM的那点破事
- 也谈 机器学习到底有没有用 ?
- TensorFlow人工智能引擎入门教程之九 RNN/LSTM循环神经网络长短期记忆网络使用
- TensorFlow人工智能引擎入门教程之十 最强网络 RSNN深度残差网络 平均准确率96-99%
- TensorFlow人工智能引擎入门教程所有目录
- 如何用70行代码实现深度神经网络算法
- 量子计算机编程原理简介 和 机器学习
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)
- 已经证实提高机器学习模型准确率的八大方法
- 基于神经网络的预测模型
- 初识机器学习算法有哪些?
- 机器学习相关的库和工具
- 10个关于人工智能和机器学习的有趣开源项目
- 人工智能扫盲漫谈篇 & 2018年1月新课资源推荐