From 74ebcfc666edf5c542ecc8323e471a11d10b2b29 Mon Sep 17 00:00:00 2001 From: Lee Donghwan <79500470+dhlee-work@users.noreply.github.com> Date: Sun, 7 Aug 2022 23:40:40 +0900 Subject: [PATCH] fix typo (#512) --- beginner_source/fgsm_tutorial.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/beginner_source/fgsm_tutorial.py b/beginner_source/fgsm_tutorial.py index 67235b869..2257a24a1 100644 --- a/beginner_source/fgsm_tutorial.py +++ b/beginner_source/fgsm_tutorial.py @@ -46,7 +46,7 @@ # 이안 갓펠로우가 기고하였습니다. # 이 공격법은 놀랍도록 강력하지만 직관적입니다. 학습 방식, *변화도(gradients)* 를 활용하여 신경망을 공격하도록 # 설계 되었습니다. 아이디어는 간단합니다. 역전파 변화도를 기반으로 가중치를 조정하여 손실을 최소화하기보다는 -# 공격이 동일한 역전파 변화도를 기반으로 *손실을 최대화하하는 방향으로 입력 데이터를 조정* 합니다. +# 공격이 동일한 역전파 변화도를 기반으로 *손실을 최대화하는 방향으로 입력 데이터를 조정* 합니다. # 다시 말해 공격은 입력 데이터에서 계산된 손실 변화도를 사용하고 입력 데이터를 조정하여 손실이 최대가 되게 합니다. # 코드로 넘어가기 전에 유명한 `FGSM `__ 판다 예제를 # 보고 몇 가지 표기법을 정리하겠습니다. @@ -117,9 +117,9 @@ # 공격을 받는 모델 # ~~~~~~~~~~~~~~~~~~ # -# 앞서 말한대로, 공격을 받는 모델은 `pytorch/examples/mnist `__ +# 앞서 말한대로, 공격받는 모델은 `pytorch/examples/mnist `__ # 와 동일한 MNIST 모델입니다. 본인의 MNIST 모델을 학습 및 저장하는 방식으로 하거나 제공된 모델을 다운로드 해 사용하는 식으로 진행할 수 있습니다. -# 여기서 *Net* 정의 및 테스트 데이터 로더는 MNIST 예제에서 복사 하였습니다. +# 여기서 *Net* 정의 및 테스트 데이터 로더는 MNIST 예제에서 복사하였습니다. # 이 섹션의 목적은 모델과 데이터 로더를 정의한 다음, 모델을 초기화하고 미리 학습된 가중치를 읽어오는 것입니다. # @@ -168,8 +168,8 @@ def forward(self, x): # ~~~~~~~~~~~ # # 이제 원래 입력을 교란시켜 적대적인 예를 만드는 함수를 정의 할 수 있습니다. -# ``fgsm_attack`` 함수는 입력 파라미터로 3가지를 가집니다. 첫번째는 원본 *이미지* ( :math:`x` ), -# 두번째는 *엡실론* 으로 픽셀 단위의 작은 변화를 주는 값입니다 ( :math:`\epsilon` ). +# ``fgsm_attack`` 함수는 입력 파라미터로 3가지를 가집니다. 첫 번째는 원본 *이미지* ( :math:`x` ), +# 두 번째는 *엡실론* 으로 픽셀 단위의 작은 변화를 주는 값입니다 ( :math:`\epsilon` ). # 마지막은 *data_grad* 로 입력 영상 ( :math:`\nabla_{x} J(\mathbf{\theta}, \mathbf{x}, y)` ) 에 대한 변화도 손실 값입니다. # 아래 식에 따른 작은 변화가 적용된 이미지를 생성합니다. # @@ -196,9 +196,9 @@ def fgsm_attack(image, epsilon, data_grad): # ~~~~~~~~~~~~~~~~ # # 마지막으로 본 튜토리얼의 핵심 결과는 ``테스트`` 함수에서 오게 됩니다. -# 이 테스트 기능을 호출 할 때마다 MNIST 테스트 셋에서 전체 테스트 단계를 수행하고 최종 정확도를 보고합니다. +# 이 테스트 기능을 호출할 때마다 MNIST 테스트 셋에서 전체 테스트 단계를 수행하고 최종 정확도를 보고합니다. # 그러나 이 함수에는 *엡실론* 입력도 필요합니다. 이는 ``테스트`` 함수가 :math:`\epsilon` 크기에 따라 공격자의 공격을 받는 모델의 -# 정확도을 보고하기 때문입니다. 더 구체적으로 보면 테스트 셋의 각각의 샘플에서 테스트 함수는 입력 데이터에 대한 손실 변화도( :math:`data\_grad` )를 계산하고, +# 정확도를 보고하기 때문입니다. 더 구체적으로 보면 테스트 셋의 각각의 샘플에서 테스트 함수는 입력 데이터에 대한 손실 변화도( :math:`data\_grad` )를 계산하고, # ``FGSM 공격`` (:math:`perturbed\_data`) 을 받은 작은 변화가 적용된 이미지를 만들고 나서 작은 변화가 적용된 이미지가 적대적인지 확인을 합니다. # 추가로 모델의 정확도를 테스트하기 위해서 테스트 함수는 나중에 시각화하여 볼 수 있도록 성공적으로 얻은 적대적 이미지를 저장하고 반환합니다. #