Ist meine Geräuschfunktion differenziell privat? Ist das Abflachen und anschließende Umformen richtig? Oder zerstört es Python

Python-Programme
Anonymous
 Ist meine Geräuschfunktion differenziell privat? Ist das Abflachen und anschließende Umformen richtig? Oder zerstört es

Post by Anonymous »

Die Hauptfunktion ist apply_noise, die das Rauschen mithilfe der Laplace-Verteilung anwendet. Der Maßstab der Verteilung ist b, der mit einem Epsilon-Wert und dem Empfindlichkeitswert berechnet wird, der aus der Funktion berechne_sensitivität stammt.

Code: Select all

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))
Es scheint zu funktionieren, wie Sie unten sehen können:
Bilder mit Rauschen bei unterschiedlichen Epsilon-Werten
Ich denke, es funktioniert, bin mir aber nicht ganz sicher, ob es der richtige Ansatz ist. Ich wende Rauschen auf ein Bild mit mehr als einem Kanal an und verwende die Funktion flatten(), um die Empfindlichkeit des Bildes einfacher zu berechnen. Später verwende ich die Funktion reshape(), um das Bild wieder in seine ursprüngliche Form zu bringen. Ist das richtig? Oder sollte ich das Rauschen auf jeden Kanal einzeln anwenden?
Selbst wenn ich das Rauschen auf jeden Kanal einzeln anwenden würde, müsste ich das Bild dann nicht reduzieren? Zum Beispiel ein Bild mit (C, H, W) = (3, 160, 160). Wenn ich das Rauschen auf jeden Kanal anwende, müsste ich immer noch die Höhe und Breite reduzieren. Das Problem wäre also das gleiche.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post