Является ли моя шумовая функция дифференциально частной? Правильно ли сглаживание, а затем изменение формы? Или это портPython

Программы на Python
Ответить
Anonymous
 Является ли моя шумовая функция дифференциально частной? Правильно ли сглаживание, а затем изменение формы? Или это порт

Сообщение Anonymous »

Основная функция — apply_noise, которая применяет шум с использованием распределения Лапласа. Масштаб распределения — b, который рассчитывается с помощью значения эпсилон и значения чувствительности, полученного из функции Calculation_sensitivity.

Код: Выделить всё

def calculate_sensitivity(image: np.ndarray) -> float:
if image.ndim > 1:
d = image.flatten()
else:
d = image
d_f = np.mean(d)
deviations_of_d = np.abs(d - d_f)
furthest_of_d = np.max(deviations_of_d)
argmax_furthest_of_d = np.where(deviations_of_d == furthest_of_d)[0][0]

dprime = np.delete(d, argmax_furthest_of_d)
dprime_f = np.mean(dprime)

return abs(d_f - dprime_f)

def apply_noise(image: np.ndarray, epsilon: float) -> np.ndarray:
image = image.flatten()
sensibility = calculate_sensitivity(image)
b = sensibility / epsilon
noise = np.random.laplace(0, b, image.shape)
output = image + noise
clip_output = np.clip(output, 0, 1) # -1, 1 for facenet
return clip_output.reshape((160, 160, 3))
Кажется, это работает, как вы можете видеть ниже:
Изображения с шумом при разных значениях эпсилон
Я думаю, что это работает, но я не совсем уверен, что это правильный подход. Я применяю шум к изображению с более чем 1 каналом и использую функцию Flatten(), чтобы упростить расчет чувствительности изображения. Позже я использую функцию reshape(), чтобы вернуть изображению его исходную форму. Это правильно? Или мне следует применять шум к каждому каналу индивидуально?
Даже если я применю шум индивидуально к каждому каналу, не придется ли мне сглаживать изображение? Например, изображение с (C, H, W) = (3, 160, 160), если я применю шум к каждому каналу, мне все равно придется сгладить высоту и ширину. Так что проблема будет та же.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ing-correc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»