본문 바로가기
étude/논문 리뷰

[논문 리뷰] Amnesiac Unlearning

by mummoo 2025. 2. 7.

Abstract

GDPR는 EU 거주자의 요청 시 데이터(훈련 데이터 포함)를 지울 수 있도록 보장한 법령이다. 근데 딥러닝 신경망은 공격에 취약해서 Model Inversion Attack (클라스 정보를 빼감)나 Membership Inference Attack (특정 example이 데이터에 있는지 확인함) 시 정보 유출이 심각해질 수 있다. 

이 논문은 Model Inversion Attack 과 Membership Inference Attack에 취약하지 않도록 모델에서 데이터를 지우는 효과적인 두 가지 방식을 제시한다. 일단 현실적인 threat 모델을 제시해서 단순히 데이터를 지우는 것만으로는 모델이 공격에 취약함을 보여주고, Unlearning과 Amnesiac Unlearning이라는 두 가지 데이터 제거 방식을 제시한다. 이 두 가지 방식이 efficacy를 유지하면서, 데이터 제거도 효과적이고 적용하기에도 안전하다는 것을 보여줄 것이다.

 

Introduction

연구 배경

  • EU에서 GDPR이 제정된 이후 기업은 기업에서 취할 수 있는 최고의 보안 조치를 취했고, GDPR 조항 17번에 따른 Right To be Forgotten(잊힐 권리) 또한 보장해야 했다. 근데 만약 EU 거주자의 데이터로 모델이 훈련된 후, GDPR에 근거해서 해당 데이터에 대한 삭제 요청이 들어온다면 단순히 데이터를 삭제하는 것만으로는 데이터가 완전히 제거되었음을 보장하기 어렵다.  Model Inversion Attack, Membership Inference Attack등의 공격으로 인해 데이터가 유출될 수 있기 때문이다. (그니까 삭제하기 이전에 저 공격들로 미리 정보가 빠져나갈 수 있기 때문임) 그래서 만약 위의 공격들로 '삭제 요청이 들어온 데이터'가 유출된다면, 데이터를 가지고 있는 기관에서 책임을 져야 한다. 

논문 요약

  • 데이터 제거에 드는 비용과 데이터 제거 후 모델 성능을 고려해, 이미 훈련된 모델에서 성능을 저해하지 않고 데이터를 효과적으로 제거하는 방식을 제시한다. 
  • 사실 이를 위해 가장 효과적인 방법은 제거해야 할 데이터가 없는 데이터셋으로 아예 원점에서부터 학습시키는 방식일 것이다. 다만 모델의 훈련에는 시간과 비용이 천문학적으로 들기 때문에, 데이터 삭제 요청이 들어올 때마다 법령 준수만을 위해 이러한 방식으로 모델을 원점에서부터 훈련시키는 방식은 현실적이지 않다. 

Contribution

  • 성능 저하를 일으키지 않고 효과적으로 데이터를 제거하는 방법 두 가지 : Unlearning, Amnesiac Unlearning 제시
    • 이 방법들은 데이터 제거와 성능 보존에도 효과적이지만, 공격을 통해 데이터의 흔적이 유출되는 것을 막는 데에도 효과적이다. 
    • Unlearning
      • training time method 
      • 언러닝 시간을 줄이는 방식 (training time method)이다. 
    • Amnesiac Unlearning
      • single step method
      • 데이터의 집중된 일부 부분을 지우는 데에 특화된 방식(laser-focused removal)이다.
  • SOTA 공격(Model Inversion Attack, Membership Inference Attack) 실험을 통해 Amnesiac Unlearning이 다른 방법에 비해 데이터 제거, 효율성, 데이터 유출 관점에서 가장 성능이 좋았음을 보인다. 또한 Unlearning과 Amnesiac Unlearning의 efficacy를 증명하고, 이 경우 비용도 많이 들지 않음을 보인다. 마지막으로 제거되지 않은 데이터에 대한 성능 저하는 거의 일어나지 않았음을 보인다. 
    • 여기서 SOTA는 State-Of-The-Art의 줄임말로 최고의 성능에 도달했다는 뜻이다. 여기서 SOTA 공격은 기존에 제시되었던 공격 중 가장 공격 성능이 좋은 모델을 말한다. 특히 Inversion Attack의 경우 웬만한 공격에는 뚫리지 않는 복잡한 CNN에서도 높은 공격 성능(SOTA)을 보였다. 

 

Proposed Methods

훈련된 모델에서 데이터를 제거하는 방법들에 다룬다. 

 

Naive Retraining

  • 제거해야 할 데이터셋을 제거한 데이터셋으로 아예 원점에서부터 훈련하는 모델이다.
  • Catastrophic Interference
    • 학습된 모델이 새로운 데이터셋을 받으면, 이전의 데이터셋에 대한 정보는 잊는 경향이 있다.
    • D로 학습된 모델이 D 중 S를 제거한 데이터셋 (D\S)를 받으면, S에 대한 정보는 잊을 가능성이 높다. 
    • catastrophic interference를 이용해서, 새롭게 학습하는 데이터는 제거 데이터를 제거한 데이터를 넣어주니까 제거한 데이터에 대한 정보는 잊을 수 있도록 하는 것
  • 장점
    • 데이터를 확실하게 잊을 수 있다.
  • 단점
    • 모델 훈련은 시간이 너무 오래 걸리기 때문에, 데이터 하나를 지우기 위해 소요되는 시간을 보장할 수 없다. 
    • 큰 데이터셋에서는 전체 데이터가 다 지워지는 것도 아니다(?).

Unlearning

  • 제거해야 할 데이터에 잘못된 라벨을 랜덤으로 배정한 후 특정 iteration에 대해 학습시키는 relabeling 방식으로 모델이 해당 데이터에 대한 유의미한 정보를 잊도록(mud) 한다.
  • 제거 대상
    • 특정 class인 경우
      • 특정 class 속 모든 example에 랜덤으로 라벨을 배정한다.
    • class 속 특정 example인 경우
      • 제거 대상 example을 모두 지우고, 해당 example에 랜덤으로 라벨을 붙인 복사본을 넣는다. 
  • 장점
    • 비용이 많이 들지 않는다.
    • 아주 적은 반복학습(iteration)만으로도 데이터 제거 성능이 뛰어났다. 
  • 단점
    • 언러닝 중 제거 대상 example에 대한 복사본을 가지고 있어야 해서 이 부분이 법적으로 문제가 될 수 있다. 다만 GDPR에서는 데이터 삭제 기간을 요청 후 한 달까지 보장해주기 때문에 이 기간 안에 복사본을 지운다면 큰 문제는 없다. 

 

Amnesiac Unlearning

  • 제거 대상 데이터가 학습된 과정을 되돌린다. 
  • 언러닝 중에는 제거 대상 데이터가 속한 batch 속 example, 각 batch의 가중치 업데이트에 대한 정보를 모두 리스트로 저장해놓는다. 

모델 학습법

  • 초기의 파라미터에 대해 파라미터 업데이트가 연속적으로 일어나면서 학습된다. 
  • 모델 M, epoch E, batch B

  • 훈련하면서 민감한 데이터를 가지고 있었던 batch인 SB에 대한 정보를 기록한다.
  • 이때 정보는 index로 기록하는데, 이 index는 각 example이 속한 batch의 index, example이 속한 class의 index, 등등 학습 상황에 맞게 적절한 index를 설정해서 학습한다.
  • 가장 포괄적인 방법은 각 batch가 업데이트될 때마다 그걸 기록하는 방법일 것이다. 다만 데이터의 현실적인 제러를 고려한다면 해당 데이터가 속한 batch에서의 가중치 업데이트만 기록해도 될 것이다.

 

AU 학습법

  • 학습된 가중치로부터 SB 리스트에 기록된 각 batch에 대한 가중치를 모두 제거한다.
  • AU 후 모델 M', SB에 속하는 요소 sb

 

  • 여기서 중요한 건, 각 파라미터가 학습 시 이전 학습 단계에서의 파라미터를 고려해서 학습된다는 것이다(학습이 연속적으로 일어남). 예를 들어서 b0, b1, b2에 대해서 훈련된 모델에서 b1배치에 대한 가중치 업데이트 정보를 잊은 결과는 b0, b2에서만 학습된 결과와 다르다.
  • SB 속 batch의 개수가 적으면 M과 M' 의 성능 차이는 비교적 작고, 따라서 언러닝 후 성능 차이(efficacy) 역시 낮다.
  • 따라서 amnesiac unlearning의 경우 laser focused removal(국소 부위에 대한 제거)에서의 성능이 높다.
  • 이 방법은 데이터셋에 본인의 데이터가 적은 개인의 언러닝에 잘 이용될 것이다. 삭제해야 할 데이터가 적으면, 언러닝할 batch도 적어지는 것이다. 만약 SB의 batch가 많아진다면 모델은 amnesiac unlearning 후 fine tuning 과정을 거쳐서 성능을 개선해야 한다. 
  • 장점
    • 제거하지 않은 데이터에 대한 학습 성능을 최대한 보장한다. 
    • 시간 효율적이다.
    • 제거해야 할 데이터가 적다면, 모델의 efficacy(얼마나 잘 제거하는지)가 보장된다. 
  • 단점
    • 언러닝 대상 batch에 대한 가중치 업데이트 요소가 모두 저장되어야 해서 비용 효율적이지 않다. 하지만 다른 SOTA 모델, 즉 naive retraining에 비해서는 이 비용이 상대적으로 낮다. naive retraining의 비용이 문제라면 amnesiac unlearning이 낫다.

Threat Model

  • SOTA를 달성한 두 개의 공격 모델 model inversion, membership inference attack을 사용해서 데이터 유출량을 측정한다.
  • 모델의 가장 최근 버전에만 접근 가능한 white-box access를 가진 상황을 상정한다. (즉 모델의 이전 버전에는 접근할 수 없다)
  • 공격 모델 소개
    • model inversion
      • class에 대한 정보, 즉 특정 데이터에 대한 일반화된 정보를 얻는다. 
      • e.g. class 정보가 유출된다면  'cancer에 속하는 개인' class에는 노년 남성이 보통 많다는 일반화된 정보를 얻을 수 있다. 이건 노년층을 보호하는 GDPR 법령을 위반한다. 
      • 공격 시 각 class가 무엇을 대표하는지는 모른다 -> 공격을 통해 각 class가 어떤 정보를 가지고 있는지 주울 수 있는지를 측정한다. 
    • membership inference attack
      • 데이터 속 특정 데이터의 존재 여부를 확인한다.
      • e.g. 개인의 파산 위험을 판단할 수 있는 데이터셋에서는 이 개인의 파산 히스토리를 알아낼 수 있다. 
      • 공격 시 target 모델이 학습한 데이터와 비슷한 분포의 데이터에 접근 가능하다. 이때 target 모델이 학습한 데이터와 공격 모델이 접근 가능한 데이터 사이에는 공통된 기록이 있을 수 있는데 항상 그런 건 아니다. 
      •  

Empirical Evaluation

  • naive retraining과 각 언러닝 방식의 efficacy를 측정한다.
  • 먼저 메소드 중 각 모델의 accuracy를 측정한다. 이때 target data에 대한 모델의 accuracy를 측정하고, non-target data에 대한 accuracy (model performance)를 측정한다.
  1. 데이터 제거 과정의 각 단계에서의 model inversion attack을 수행
    • 어떻게 데이터가 유지되는지, 그리고 모델 accuracy 저하 후 데이터가 유출되는지를 확인한다.
    • 데이터 유출을 막기 위한 각 언러닝 방식들의 efficacy를 측정한다. 
  2. 데이터 제거 전후의 membership inference attack을 수행
    • 언러닝 방식의 record 레벨에서의 데이터 유출에 대한 효과성을 측정한다.
  3. amnesiac unlearning의 각 단계에서의 accuracy를 측정
    • amnesiac unlearning한 양과 모델 성능 저하 사이의 관계를 측정한다.

 

Experimental Environment

 

Setup

  • python 3.7
  • pytorch
  • Amazon Sagemaker platform : 4vCPU, 1 GPU, 16GB 메모리
  • Dataset
    • MNIST
    • CIFAR100
  • Neural Network
    • Resnet18 (SOTA residual learning architecture)
  • Attack Algorithm
    • Model Inversion Attack
      • 원래 공격 모델은 PROCESS function을 사용해 각 기울기 업데이트 후 이미지 처리를 통한 인식 향상이 일어났는데, 이게 각 생성 이미지의 화질을 저하한다. 그래서 이 이미지 처리를 n번의 기울기 업데이트 후 (500번 이상, 1000번 이하)에 실행되도록 했다.
      • 원래 공격 모델은 공격 시작 시의 모델 상태를 모두 똑같이 맞춰놔서 각 공격의 결과만 알 수 있도록 했다. 하지만 논문에서 사용된 모델에서는 각 공격 시 feature에 노이즈를 추가해서 각 공격이 다를 수 있도록 했다.
      • 원래 공격 모델은 손실이 특정 기준치 이하일 때까지 계속되는데, 이 논문에서는 손실 변화량이 작더라도 몇번의 반복(iteration)까지만 공격을 수행하면 더 효과적이라는 것을 이용했다. 이 특성으로 복잡한 CNN (Resnet18)에서도 공격을 수행할 수 있었다. 
    • Membership Inference Attack
      • 공격 모델의 훈련은 각 example x에 대한 softmax prediction vector y=f shadow_model i (x) 로 만들어진 클래스 y에 대해 생성된 Dy 데이터셋을 이용했다 . 각 라벨은 shadow model에 있었는지에 따라 0 또는 1의 값을 가졌다. 이렇게 훈련된 모델 세트가 테스트에 사용되었다. (fully connected network라서 세트) shadow 모델을 증가시키면 공격 성능은 좋아지지만 비용이 많이 든다.
      • 은닉층은 각각 256 레이어, 128개의 레이어의 2개의 층, ReLU 활성화 함수를 사용했고 출력층에는 sigmoid를 사용했다. 

Results

Model Accuracy on Target and Non-Target Data

  • MNIST

  • (a) target data에 대해 꽤 오랜 기간동안 정확도가 높다가, retraining 기간동안 아주 서서히 정확도가 떨어진다. 
  • (b) 언러닝 후 성능이 급격하게 감소한다.
  • (c) 언러닝 후 성능이 급격하게 감소한다. 
    • 초록색 그래프 (non target data)가 언러닝 직후 살짝 감소하는데, 이건 batch learning이 초기에 reverse되었기 때문이다. 하지만 amnesiac unlearning 특성상 아주 적은 training set으로 학습되기 때문에 그 감소량은 복구된다.
  • CIFAR100
    • (a) 언러닝 결과가 MNIST보다도 덜 효과적이다. (같은 수의 epoch에 대해서 정확도가 더 완만하게 감소한다.)
      • retain 데이터에 대해서는 정확도가 높게 유지된다. (retain 데이터에 대한 성능 저하가 일어나지 않는다.)
    • (b) (a)보다 정확도가 훨씬 급격히 감소한다. epoch 2번만에 (epoch 12) 0에 가까운 정확도를 얻고, epoch 5번만에 모델이 데이터를 인지할 수 있는 능력을 사실상 다 지운다고 볼 수 있다.
      • retain 데이터에 대해서는 정확도가 높게 유지된다. (retain 데이터에 대한 성능 저하가 일어나지 않는다.)
    • (c) 언러닝 직후 모델의 데이터 인지 능력을 모두 제거한다. 
      • batch가 reverse됐을 때(= 언러닝이 일어났을 때)에는 정확도가 감소한다. 다만 언러닝 데이터가 적어서 적은 수의 훈련만으로도 정확도가 복구된다. 이 경우 batch의 6% 정도가 제거되었고, 이는 모델의 나머지 부분에 중요한 영향을 미친다. 

Model Inversion Attacks

  • MNIST 중 class 3에 대한 공격
  • 데이터 제거 전
    • amnesiac unlearning : target class 보유한 모든 batch에 대해 언러닝 수행한 뒤, 각 epoch 후마다 공격
  • 데이터 제거 후
    • retraining : 각 epoch 후마다 공격
    • unlearning : 각 epoch 후마다 공격

 

  • 전체 공격이 다르기 때문에(노이즈 추가) 각 모델에 대해 다양한 공격을 할 수 있었고, 그 중에서 target class와 가장 비슷한 모델을 골랐다. 다만 거꾸로 된 이미지들의 "인식 가능성"을 비교할 수 있는 정량화 기법을 찾기는 어려워서, 육안으로 평가해야만 했다. 

 

naive retraining

  • naive retraining은 클라스 정보를 보호하기 위해 별다른 조치를 취하지 않는다. 10번의 epoch 후에도 inversion은 여전히 인식 가능하다. accuracy 결과와 합쳐서 생각하면 이건 개인정보를 보호하기 위해 naive retraining 방식이 그다지 적합하지 않다는 것을 보여준다. 

 

Unlearning

  • 공격으로 얻을 수 있는 유의미한 정보를 거의 완전히 지운다(epoch 1부터 알아보기가 힘듦). 
  • Unlearning 방식은 데이터 유출 공격을 보호하는 데에 아주 효과적이라는 것을 알 수 있다.

Amnesiac Unlearning

  • 공격에서 벗어날 수 있는 기울기 정보가 현저히 적어서 거의 다 어둡고 형체를 알아보기 힘들다. 다만 생김새가 3과 비슷해보이긴 한다. 
  • 예상했던대로 데이터 제거 후 더 훈련시킬수록 3에 대한 유의미한 정보를 인지할 수 있는 능력이 사라지고, 두번째, 세번째 그림의 경우 거의 알아볼 수가 없다. 
  • 적은 수의 데이터 포인트가 제거되어야 할 때 Amnesiac Unlearning 성능이 가장 뛰어날 것이라는 것을 말한다. 

Membership Inference Attacks

  • 16개의 shadow model에 공격을 수행했고, 각각 CIFAR100에 10epoch동안 수행되었으며 target model 역시 10 epoch 수행되었다. 
  • recall metric을 사용해서 이 공격의 효과성을 평가한다
    • recall metric
      • 이 공격이 데이터 유출에 얼마나 효과적인지에 대한 통찰력을 준다.
      • 우리가 양성반응을 정확히 인지해야 할 때 이 방법이 가장 효과적이다. 
      • 우리 방법이 inference 데이터 유출을 막는 데에 얼마나 효과적인지에 대한 정보를 준다. 
  • 모든 공격은 각각의 example을 타겟으로 수행했고, 그 후에 언러닝 방법들이 적용되었다. 

 

  • 이 공격은 trained model에 수행되었고, 이 공격의 recall value는 epoch 0에서 볼 수 있다.
  • 데이터 제거 기법은 그 후 적용되었고, 데이터 제거 후, 나머지 데이터로 훈련 전의 결과는 epoch 0'에 나와 있다. 
  • naive retraining
    • 데이터 제거 후 훈련을 2번이나 했는데도 점수가 epoch0과 비슷하다. 
  • unlearning
    • 데이터 제거 후 훈련 전에 바로 점수가 내려간다. 
  • amnesiac unlearning
    • 데이터 제거 후 훈련 전에 바로 점수가 내려간다. 

 

Effect of Amnesiac Unlearning on Model Efficacy

  • 제거해야 할 데이터가 적으면 매우 효과적이지만 (Figure 4, 5, 6 참고) 많이 쓰이면 모델의 efficacy에 큰 영향을 줄 수 있다. 
  • 제거 데이터가 전체 batch의 1%내외라면 모델의 정확도는 amnesiac unlearning 적용되기 전과 비슷한데, 제거 batch가 늘어날 수록 (figure 7) 정확도가 급격히 떨어진다. 

  • 정확도가 감소한 것은 fine tuning으로 복구 가능하지만, 이렇게까지 하면서 amnesiac unlearning을 선택할 이유는 없다. 

 

Discussion

Metric

  • 정확도, model inversion attack, inference attack에서 모델의 데이터 유출에 대한 방지 정도를 알 수 있긴 하지만 얼마나 많은 정보가 유지됐는지에 대한 정량화 방법은 없는 상황이다. 개인정보 유출량에 대한 측정 방식이 나오면 좋을 텐데, 최근 연구는 아직 이 연구에 대해서는 진척이 미미한 상황이다. 

 

Black-box Attack

  • 위에서 White-box 접근을 했었는데, 추출하는 공격 (inference, inversion attack) 모두 black box access만으로도 모델의 기능을 저하시킬 수 있다. 일부 경우엔 추가된 예측 벡터만 가지고도 가능한 경우도 있다. 이런 공격의 존재는 black box 접근만을 제한하는 건 black box로 훔친 뒤 white box 세팅에서 공격하는 공격자들에 대해 방어하기엔 아직 부족하다는 것을 알려준다. 

 

소감

다음 SalUN 논문리뷰 발표 준비 싹 다 했는데 약간의 변수로 다음 발표까지 2주라는 아주아주 어마어마한 시간이 남아서ㅎㅎ그동안 논문 리뷰를 쓰려고 한다. 파이토치 공부도 중요한 거 추려서 여기다 올려야징 근데 PPT 만드는 게 논문 전체 이해까지 훨씬 시간이 덜 걸린다. 논문 리뷰 이거 시간도 너무 오래 걸리고, ppt보다 기억에 남는 내용이 없다. 아마 ppt는 무슨 내용 말할지, 뭐가 중요한지 위주로 보고 직접 말하면서 만드는데 얘는 입꾹닫하고 키보드만 개패서 그런 것 같다. 그래도 논문리뷰 최초로 하루만에 끝낼 수 있었던 리뷰였다. 하루에 다섯시간씩 발레하고(심지어 오늘 작품 하나도 끝냈닼 히히) 필라테스도 했는데도 글은 일단 완료했다. 아직 질문은 해결 안 됐지만...그 sisa 논문은 진짜 일주일 내내 통번역만 하다가 인턴 시작하고 다른 논문들 읽기 시작하면서 끝내지도 못함 힝 10페이지에서 그냥 얼음이되 근데 지금은 좀 아는 내용이 생겼으니까 더 잘 읽힐 수도...시간 남으면 sisa논문 리뷰도 이어서 해봐야징><

근데 교수님이 연구실 사이트에 올릴 논문 리뷰 통번역하지 말라고 하셨다. 아니 어떻게 아셨지?;;; 역시 그정도 혜안을 가져야 최연소 교수 하나보다ㅗㅜ

 

이게 내가 최근에 읽었던 논문들에 비하면 비교적 초창기에 발표된 논문이다. 그래서 그런지 최근 논문에서는 설명해주지 않는 기본 개념이나 특정 기법을 수행한 이유, 과정, 연구 배경에 대한 설명이 상세하다. 예를 들어 amnesiac unlearning에 대해서 설명할 때 어떤 기법이 쓰였는지, 기존 방법과는 뭐가 다른지, 그리고 어떤 장점을 가지고 있는지에 대해서만 설명했어도 됐을 것이다. 이 논문에서는 상세한 이해를 위해 모델의 학습 기법 자체에 대해 설명해줄 정도로 친절하다(그냥 장수 채우려고 썼을 수도 있지만). 이 논문을 읽고, 앞으로 최신 논문도 읽어야 되긴 하겠지만 일단 언러닝 연구 초창기의 논문들을 먼저 섭렵하는 것이 이 분야를 이해하는 데에 더 도움이 될 것 같다고 판단했다.

굉장히 당연한 얘기인데 아직 머신러닝 입문자라, 이 분야에 대해 모든 걸 알아야 이해할 수 있다는 생각이 컸다. 그래서 정작 어떤 논문을 읽어야 효율적으로 똑똑해질 수 있을지에 대해서는 생각해보지 못했다. 앞으로 논문을 읽을 때 우선순위를 두고 무작정 어려워 보이는 논문, 긴 논문이 아닌 발행 년도를 기준으로 선택해야겠다. 나는 아직 알아야 할 것이 많으니까 기초 내용을 계속 되새겨서 단단하게 만들 필요가 있다. 

 

직전 논문을 읽을 때 Amnesiac Unlearning에 대한 설명이 나왔었다. 이때 amnesiac unlearning에서 연속적으로 언러닝하는 것과 모든 데이터를 한번에 언러닝하는 것은 같은 성능을 가진다는 말이 있었는데, amnesiac unlearning의 학습 방법을 모르는 상태에서는 이 말의 의미를 이해하기 어려웠지만 이 논문을 읽고 나서 더 이해가 됐다. 언러닝 자체가 배치를 연속적으로 언러닝하는 방법이기 때문에 iterative 방식이랑 batch forgetting 결과가 같다는 

 

궁금한 점 :

amnesiac unlearning에서는 batch 단위로 언러닝이 이루어진다. batch 단위의 parameter update를 계산하는데, 만약에 mini batch로 나뉘어서 학습이 되었다면 그 mini batch에서의 가중치 변화량을 적용하는건가? 아니면 그 mini batch가 포함된 batch 전체의 parameter update를 적용하는건가? 전자가 더 비용 효율적일 것 같긴 한데, 확실하게 하기 위해서..

 

학습 방법에서 class에 대한 batch의 index를 학습하게 되면 example에 대한 batch의 index 리스트를 저장하는 것보다 훨씬 많은 index를 저장해야 할 것이다. 이런 방식은 왜 고려하게 된 거지?

 

recall metric? 이게 왜 숫자로 표현되지? 어떻게 계산한거지? 이게 어떻게 계산된 건지 알아야 저 table 1의 결과를 해석할 수 있을 것 같다.