【问题标题】:how to add 50% random normal noise to Mnist dataset in python如何在 python 中向 Mnist 数据集添加 50% 的随机正常噪声
【发布时间】:2019-07-01 11:41:32
【问题描述】:

我正在尝试根据一篇按百分比添加噪声的文章来使 MNIST 数据集变得嘈杂。我不知道如何计算添加到图像中的噪声百分比。

这是我的 Python 代码:

from keras.datasets import mnist
import numpy as np

(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')
X_train /= 255
X_test /= 255
noise_factor = 0.5
x_train_noisy = X_train + noise_factor * np.random.normal(loc=0.0, scale=1.0, size=X_train.shape) 
x_test_noisy = X_test + noise_factor * np.random.normal(loc=0.0, scale=1.0, size=X_test.shape) 
x_train_noisy = np.clip(x_train_noisy, 0., 1.)
x_test_noisy = np.clip(x_test_noisy, 0., 1.)

1.这个噪音的百分比是50%吗(基于noise_factor)?噪声因子可以告诉我们百分比吗?

2.还有其他方法可以用百分比添加噪音吗?

3.确定性分布和非随机性是一回事吗?我看到一篇文章,他们根据确定性分布添加了百分比噪声,但寻找它却一无所获。

【问题讨论】:

  • 通常,噪声不会以百分比形式添加。相反,您可以指定正态分布的方差以选择噪声量。对于初学者,您可以尝试使用 0.1 的值。
  • 这个其实我知道。但是我必须按百分比添加。因为我在模拟一篇文章,他们使用百分比,我们的结果应该和那篇文章一样。
  • 请查看我的回答,如果您还有其他问题,请在下方评论
  • 能给我一个链接吗?
  • 我对您的问题的回答,就在这个页面本身。如果您没有看到它,请刷新您的页面

标签: python noise deterministic


【解决方案1】:
  1. 噪声不是以百分比表示的。通常,您从标准正态分布中提取噪声并将其乘以一个因子(在您的情况下,它是 0.5)

  2. 在处理百分比时,您需要指定相对于 what 的百分比。如果你有,那么你可以从那里随机抽取(但我在实践中没有看到它)。

  3. 提供更多信息,但如果某些东西是确定性的,则意味着它不是随机的。通过指定种子值可以使随机模型具有确定性,但这通常是为了在实验之间产生完全相同的随机值。

【讨论】:

  • 我被否决了。如果有任何原因,请说明以便改进此答案
  • 那么人们通常如何指定它?你能说出一些吗?
  • 它们来自正态分布。通过选择分布的方差来改变数量(或者他们只是从标准正态分布中提取并乘以一个因子)
  • 顺便说一句,这就是我正在谈论的那篇文章。他们使用百分比,但没有提及如何计算它。ieeexplore.ieee.org/document/8079976
  • 我会说它只是高斯的强度。所以你可以将标准法线乘以 0.5(就像你一样)
猜你喜欢
  • 1970-01-01
  • 2019-12-24
  • 1970-01-01
  • 1970-01-01
  • 2021-03-14
  • 2015-03-31
  • 2022-12-13
  • 2020-11-01
  • 1970-01-01
相关资源
最近更新 更多