jupyter notebook์ผ๋ก ์ฝ๋ ๋๋ฆฌ๋๋ฐ ์ง์ํ ์๋ฌ๊ฐ ์๊พธ ๋ ์ ์ค๋์ ์ฝ์ง ์ข ํ๋ค ๐ข
โ ์ฝ๋ ์๋ณธ :
Settings
target_name = 'toaster'
image_shape = (224, 224, 3)
clip_values = (0, 255)
nb_classes =1000
batch_size = 16
scale_min = 0.4
scale_max = 1.0
rotation_max = 22.5
learning_rate = 5000.
max_iter = 500
ํจ์น๊ฐ ๋ถ์ฐฉ๋ ์ด๋ฏธ์ง๋ target_name์ ์ ํด์ง๋๋ก ๋ถ๋ฅ๋๋ค. toaster ๋ง๊ณ ๋ค๋ฅธ ๊ฑธ๋ก ๋ช ๋ฒ ๋ฐ๊ฟ๋ดค๋๋ฐ ๋ค toaster์ผ ๋๋ณด๋ค ์ฑ๋ฅ์ด ์ ์ข์๋ค.
target_name ์ข ๋ฅ๋ https://github.com/nottombrown/imagenet-stubs/blob/master/imagenet_stubs/imagenet_2012_labels.py ์์ ํ์ธ ๊ฐ๋ฅ!
Model Definition
model = tf.keras.applications.resnet50.ResNet50(weights="imagenet")
mean_b = 100
mean_g = 110
mean_r = 120
tfc = TensorFlowV2Classifier(model=model, loss_object=None, train_step=None, nb_classes=nb_classes,
input_shape=image_shape, clip_values=clip_values,
preprocessing=([mean_b, mean_g, mean_r], np.array([1.0, 1.0, 1.0])))
๋ถ๋ฅ๊ธฐ์ ์์ ๊ฐ์ ์ ํด์ค๋ค.
Adversarial Patch Generation
ap = AdversarialPatch(classifier=tfc, rotation_max=rotation_max, scale_min=scale_min, scale_max=scale_max,
learning_rate=learning_rate, max_iter=max_iter, batch_size=batch_size,
patch_shape=(224, 224, 3))
label = name_to_label(target_name)
y_one_hot = np.zeros(nb_classes)
y_one_hot[label] = 1.0
# y_one_hot ๋ฐฐ์ด์ ์ด์ฉํด images.shape[0]ํ, 1์ด์ ๋ง๋ ๋ค.
# y_one_hot ๋ด์ฉ์ด ๋ฐ๋ณต๋๋ ํํ
y_target = np.tile(y_one_hot, (images.shape[0], 1))
patch, patch_mask = ap.generate(x=images, y=y_target)
art/attacks/evasion์ ์ ์๋ AdversarialPatch(~)๋ฅผ ์ฌ์ฉํ๋ฉด ์์์ ํจ์น๋ฅผ ์์ฑํด์ค๋ค. patch_shape๋ 224*224 ํฌ๊ธฐ์ ์ปฌ๋ฌ ํจ์น๋ฅผ ์์ฑํ๋ค๋ ์๋ฏธ์ด๋ค.
์์ฑ๋ ํจ์น๋ ์์ ๊ฐ๊ณ ์์ธํ ๋ณด๋ฉด ํ ์คํฐ๊ธฐ ํํ๊ฐ ๋ค์ด๊ฐ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
Evaluations
์ด์ง์ ์ธ ๋ญ๊ฐ๊ฐ ์ถ๊ฐ๋๋ค๋ ๊ฒ ๋ง์ด ํฐ๋์ง๋ง ์ด๋ฏธ์ง์ ํจ์น๊ฐ ๋ถ์ฐฉ๋ ํ ๋ชจ๋ธ์ด ๋ชฉํ ํ๊ฒ์ด์๋ ํ ์คํฐ๊ธฐ๋ก ๋ถ๋ฅํ๊ณ ์๋ค.
(์ ๋ต ๋ ์ด๋ธ์ bagel๊ณผ beagle)
'๐ฉโ๐ป' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฝ๋ ๋ฆฌ๋ทฐ] ๋ ธ๋ ์ธต ๋ํ ๊ฐ์ฑ ๋ถ๋ฅ ๋ชจ๋ธ ๊ตฌํ (2) : RNN (0) | 2022.12.21 |
---|---|
[์ฝ๋ ๋ฆฌ๋ทฐ] ๋ ธ๋ ์ธต ๋ํ ๊ฐ์ฑ ๋ถ๋ฅ ๋ชจ๋ธ ๊ตฌํ (1) : CNN (0) | 2022.12.13 |
[ART] attack_defence_imagenet.ipynb ์ฝ๋ ์ค์ต (0) | 2022.01.18 |
[ART] adversarial_training_mnist.ipynb ์ฝ๋ ๋ถ์ (0) | 2022.01.12 |
[ART] ART for TensorFlow v2 - Callable ์ฝ๋ ๋ถ์ (0) | 2022.01.03 |