为了账号安全,请及时绑定邮箱和手机立即绑定

【TensorFlow基本功】正太分布的使用

标签:
算法

正态分布(Normal distribution),也称“常态分布”,又名高斯分布(Gaussian distribution)。

正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为钟形曲线。

在TF中会大量使用到正态分布,熟练的使用它,也是使用TF的基本功之一。下面来看一下在Python中如何使用。

一维正态分布

webp

正态分布公式.PNG

用numpy来获取一个标准正态分布的样例

num = 100000mu = 0sigma = 1s = np.random.normal(mu, sigma, num)

一维正太分布如上面定义所说,正如一个“钟形”


webp

标准正太分布.png

或者如下两者

s = sigma * np.random.randn(num) + mu

s = sigma * np.random.standard_normal(num) + mu

效果都如之前的图片

mu控制函数中心位置左右移动,如下mu=6的场景


webp

mu=6.png


sigma=10的场景


webp

sigma=10.png

可见,mu为正数,函数曲线向右移动,反之,向左移动;sigma越大,分布越宽;sigma越小分布越窄。

记住这个特性,在获取一维正太分布数据时很有帮助。

二维正太分布

二维正太分布的公式如下,


webp

二维正态分布公式.PNG

二维正太分布使用不一样的numpy函数,multivariate_normal

num = 40000mean = np.array([0,0])
cov = np.eye(2)
ms = np.random.multivariate_normal(mean, cov, num)

二维标准正太分布如下,不在是一个“钟”,而像一个“圆”


webp

二维标准正太分布.png

这里的参数也有变化。
mean表示二维数组每一维的均值;是一个(1,2)矩阵。
cov表示二维数组的协方差;是一个(2,2)矩阵。

可以看出来mean是圆的圆点,那么是不是改变了mean,圆就会发生移动呢? 我们试一下。

num = 40000mean = np.array([4,8])
cov = np.eye(2)
ms = np.random.multivariate_normal(mean, cov, num)

webp

圆心在(4,8).png

那么cov协方差代表的意义也通过实验来看一下,

num = 40000mean = np.array([0,0])
cov = np.array([[5,0],[0,1]])
ms = np.random.multivariate_normal(mean, cov, num)

webp

[[5,0],[0,1]]



作者:安安爸Chris
链接:https://www.jianshu.com/p/0963abb476ef


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消