受限玻尔兹曼机准备知识——蒙特卡洛方法

先了解几个基本概率知识,不急着看蒙特卡洛方法的定义,具体的MC方法参考网上各种资料。

两个比较好的学习MC方法的文章:蒙特卡洛方法入门 (结合了实例)和 蒙特卡洛方法 (推荐,非常详细)

更新日志:2016-11-19,补充三个网站

从随机过程到马尔科夫链蒙特卡洛方法:http://www.cnblogs.com/daniel-D/p/3388724.html

MCMC: The Metropolis Sampler译文:http://www.cnblogs.com/yinxiangnan-charles/p/5018876.html

MCMC: The Metropolis Sampler原文:https://theclevermachine.wordpress.com/2012/11/19/a-gentle-introduction-to-markov-chain-monte-carlo-mcmc/

数学期望(期望,均值)的计算:

                            


大数定律:

主要描述大数量随机试验平均结果的稳定性。解释了随机现象的一种统计规律。

具体定义参考书本。它主要是利用大量的随机试验,用观察值的平均值去预测整个样本的数学期望值。


当实验可重复,且次数n充分大时,伯努利大数定律表明用频率估计概率的误差可任意小,可靠性可任意大。辛钦大数定律表明用样本均值估计理论均值的误差可任意小,可靠性可任意大。


中心极限定律:

主要研究大数量独立随机变量和分布函数的极限,揭示了大量独立随机因素综合影响的一种统计规律。大量的相互独立的随机变量的线性组合在一定条件下近似服从正态分布的一系列定理称为中心极限定理。



蒙特卡洛方法:

先看一个式子


然后对比上面介绍的连续性数据的数学期望计算方法,是不是感觉特别像。蒙特卡洛方法又称为统计模拟法或者随机抽样技术,使用随机数(伪随机数)来解决很多计算问题的方法,将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以获得问题的近似解。

依据:

大数定律:均匀分布的算术平均收敛于真值。

中心极限定理:置信水平下的统计误差。

基本原理:

某些事件的概率,可以用大量实验中该事件发生的频率估算,当样本的容量足够大时,可以认为该事件的发生频率即为其概率。

就拿计算圆周率π来说:主要过程就是给定一个圆和它的外接正方形,通过数学方法可以计算得到圆和正方形的面积比为π/4。然后用概率的方法,在正方形内(包括圆内)撒很多点,比如有N个点,数出撒到圆内的点数S,然后便可得到π/4=S/N,这样便可用概率的方法计算得到π的近似值,可以看出,这个近似值与N有关,N越大则越准确。回头看那个积分的式子,f(x)就代表这个圆,积分就代表面积,g(x)就代表这些点,p(x)就代表点在圆内的点数,即点落在圆里面的概率密度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
深度受限玻尔兹曼机(Deep Belief Network, DBN)是一种用于特征融合的机器学习模型,它可以通过学习数据中的特征来进行模式识别和分类。在Python中,我们可以使用现有的库来实现深度受限玻尔兹曼机模型,比如使用TensorFlow或者PyTorch等深度学习框架。 首先,我们需要导入相应的库和模块,比如TensorFlow或者PyTorch。然后,我们需要准备数据集,并对数据进行预处理和特征提取。接下来,我们可以使用深度受限玻尔兹曼机模型来训练数据,并获取特征表示。最后,我们可以利用这些特征表示来进行分类或者其他机器学习任务。 下面是一个简单的使用Python实现深度受限玻尔兹曼机模型的示例: ```python import tensorflow as tf from tensorflow.keras import layers, models # 准备数据集 (train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data() train_images = train_images.reshape((60000, 28 * 28)).astype('float32') / 255 test_images = test_images.reshape((10000, 28 * 28)).astype('float32') / 255 # 构建深度受限玻尔兹曼机模型 model = models.Sequential([ layers.Dense(128, activation='relu', input_shape=(28 * 28,)), layers.Dense(64, activation='relu'), layers.Dense(10, activation='softmax') ]) # 编译模型 model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(train_images, train_labels, epochs=10) # 使用模型进行预测 test_loss, test_acc = model.evaluate(test_images, test_labels) print('Test accuracy:', test_acc) ``` 在这个示例中,我们使用TensorFlow来构建一个简单的深度受限玻尔兹曼机模型,并使用MNIST数据集进行训练和测试。通过这样的方式,我们可以利用深度受限玻尔兹曼机来进行特征融合和模式识别任务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风翼冰舟

额~~~CSDN还能打赏了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值