안녕하세요 KDST 학부연구생 구미진입니다.

 

오늘 소개해드릴 논문은 CVPR 2023 Highlight 논문인 Feature Separation and Recalibration for Adversarial Robustness 입니다.

 

본 논문에서는 적대적 공격에 대한 방어 방법 중 Adversarial Training 방법과 결합해서 사용할 수 있는 FSR 모듈을 제안했습니다.

 

Motivation

딥러닝 모델은 위 그림처럼 이미지의 Feature representation을 학습하여 의사 결정을 내립니다. 적대적 공격은 이미지에 미세한 노이즈를 추가하여 모델의 오분류를 유도하는데, 기존의 방어 방법은 변화가 생긴 활성화를 그냥 무시함으로써 공격에 대응하고자 했습니다. 그러나 이 방법은 중요한 정보의 손실을 초래할 우려가 있어, 이 논문에서는 더 어댑티브한 방법을 제안합니다.

 

적대적 공격으로 인한 활성화의 변화를 무시하는 대신, 해당 변화에서 유용한 정보를 추출하여 모델이 올바른 예측을 할 수 있도록 재보정하는 새로운 방식을 도입했습니다.

 

본 논문의 contribution은 다음과 같습니다.

1. 중요한 정보가 소실되는 기존의 방법에 대한 새로운 접근 방식을 제안함

2. easy-to-plugin, 다른 adversarial training method와 결합해서 사용 가능함

3. White box attack과 Black box attack 모두에 대한 효과적인 방어 성능을 실험적으로 입증함

 

Proposed Approach

레이어 간에 FSR 모듈을 추가하여 Feature를 robust feature와 non-robust feature로 분리하고, non-robust feature를 재보정하여 모델 예측에 사용합니다.

 

모듈은 크게 separation stage와 recalibration stage로 나뉩니다. Separation network S는 robustness map과 dot product 연산을 통해 robust, non-robust feature를 분리하며, Separation loss를 활용해 학습됩니다. Recalibration network R은 non-robust feature에서 중요한 정보를 추출하고, recalibration loss를 통해 학습됩니다.

 

각각을 어떻게 구현한 건지 살펴보면 다음과 같습니다.

Separation Stage
Recalibration Stage

 

FSR module은 다른 네트워크와 결합되어 end-to-end로 학습되어 사용할 수 있으므로 다른 Adversarial training framework에도 같이 사용할 수 있습니다. 이때 사용하는 Loss function은 classification, feature separation, recalibration loss를 모두 합쳐 놓은 형태입니다.

 

Limitation

Adversarial defense의 고질적인 문제이기도 한데, 바로 natural image에 대한 성능 저하가 있다는 것이 이 연구의 한계로 언급됩니다. FSR 모듈은 모든 이미지에 adversarial perturbation이 있다는 가정 하에 동작하므로, natural image의 정확도는 감소합니다. 하지만 occasionally하게 데이터셋과 adversarial training method에 따라 오히려 정확도가 증가하는 경우도 있긴 했습니다.

One paper accepted at NeurIPS 2023

카테고리 없음 2023. 11. 26. 17:45 Posted by KDST

올해 12월에 뉴올리언스에서 열리는 NeurIPS 2023에 아래 논문이 채택되었습니다. 

이 논문은 딥러닝 초기에 중요한 역할을 했던 tanh 활성화 함수가 왜 ReLU 등 그 이후의 활성화 함수에 비해서 상대적으로 성능이 좋지 않은지 그 이유를 분석합니다. 또한, 그 단점들을 극복하고, ReLU 활성화 함수와 비슷한 성능을 달성하는 방법을 제시합니다. 결론적으로 활성화 함수의 비대칭성이 얼마나 중요한지를 보여주며, 이를 통해 활성화 함수에 대한 이해를 깊게 하고 있습니다.

 

"Tanh Works Better with Asymmetry"

 

안녕하세요, KDST 김동진입니다.

 

오늘 소개해드릴 논문 What Can Transformers Learn In-Context? A Case Study of Simple Function Classes

 NeurIPS2022에서 좋은 평가를 받은 논문입니다.

 

GPT-3 모델의 등장으로 번역과 같은 다양한 downstream task에서 Zero-shot 또는 few-shot으로도 준수한 성능을 낼 수 있게 되었습니다. 이러한 발전으로 prompt engineering에 관한 관심 또한 높아졌으며, 이번 논문은 prompt engineering의 방식 중 하나인 in-context learning에 관한 내용입니다. (In-context learing이란 모델의 weight가 update가 되지 않는 상황에서 query 입력과 in-context 예제로 구성된 prompt에서 in-context 예제들을 기반으로 query에 대한 예측을 수행하는 것을 말합니다.)

 

논문의 주요 내용은 아래와 같습니다. 

본 논문은 in-context learning을 inference 때에 새로운 함수를 학습하는 문제로 정의하고, 구성된 실험을 통해 GPT 모델이 in-context learing을 통해 간단한 함수들(linear function, sparse linear function, decision tree, 2-layer NN)을 특정 가중치를 넘어서 해당 함수들의 class에 대한 학습을 꽤 잘 수행할 수 있음을 보여줍니다.

 

또한, 더 나아가 training 때와 inference때의 함수와 입력 분포의 차이 그리고 inference때 in-context example과 query의 입력 분포의 차이가 존재하는 상황에서의 in-context learning에 대한 실험도 진행하였습니다. 개인적인 생각으로 training과 inference때의 분포 차이를 만들어낸 실험에서도 좋은 성능을 보이는 것으로 보아 in-context learning이 training 데이터에 대한 memorization에 의존하지 않는다는 것을 보여주는 것 같아 흥미로웠습니다.

 

논문에서 진행된 실험들이 자연어를 다루지는 않아 실험 결과들이 우리에게 친숙하게 다가오지는 않을 수 있지만, decoder-only transformer 모델의 in-context learning에 대한 가능성을 실험적으로 보여주어 다른 분들도 읽어보시길 추천해 드립니다. 감사합니다.

Segment Anything (arxiv 2023)

카테고리 없음 2023. 9. 30. 23:30 Posted by 3neutronstar

안녕하세요, KDST 팀 강민수입니다.

 

오늘 소개해드릴 논문은 "Segment Anything," 이고 Meta AI에서 공개한 논문입니다.

 

Segment anything은 모델과 데이터셋을 제안한 논문으로 foundation 모델을 지향하는 논문입니다.

NLP에서는 prompt engineering으로 이를 달성할 수 있었고, web-scale dataset이 있었기에 가능했습니다. 하지만, vision field에서는 이것이 매우 어렵습니다. CLIP이나 ALIGN도 language-vision model을 통해서 비슷하게 가능하게 했지만, foundation모델로 인정받지 못하는 것이 그것입니다.

 

본 논문의 목표는 segmentation task에서 foundation model을 만드는 것으로 3가지 방향으로 이를 가능하게 해보고 싶은 것입니다. 이를 위해서 3가지 의문점을 던집니다.

1. zero-shot generalization이 가능하게 되는 task는 어떤 것인가?

2. model architecture는 어떤 것을 선택해야하는가?

3. 어떤 데이터로 해당 task와 model을 학습시킬 것인가?

 

각 요소별로 살펴보면 첫번째는 promptable model을 생각해보아야 하고, architecture를 학습시키기 위해 broad dataset이 필요해집니다.

 

본 논문에서는 크게 4가지 task를 제안합니다.

1. 포인터 (이미지 내의 점을 찍는 prompt)

2. bounding box (detection의 bounding box)

3. region (ppt 그물)

4. text

 

모델을 구성하기 위해서 논문에서는 2가지를 고려했다고 합니다. Real-time과 ambiguity aware인데, real-time은 prompt encoder를 경량화해서 활용하고, web에서도 빠르게 돌 수 있는 모델을 제안했다고 합니다. 일단 이미지의 embedding만 되면 50ms 이내로 경량화해서 prediction에 활용할 수 있다고 합니다.

 

ambiguity aware는 각 prompt가 1개의 답만을 고르지 않게 하는 것을 말합니다. 아래 예시 이미지를 보시면 가방에 prompt를 찍었다고 해서 가방 사람, 지퍼 등 어떤 group으로 하느냐에 따라 prediction이 다를 수 있습니다. 해당 논문에서는 이를 한 개의 답안으로만이 아닌 여러 개의 답안이 나올 수 있도록 학습해야함을 의미합니다.

 

마지막으로는 이러한 architecture 를 학습할 수 있게 만드는 데이터를 어떻게 수집할 것인가에 대한 부분입니다. Real world에는 dataset이 부족하기 때문에 이를 효과적으로 늘릴 수 있는 engine을 제안합니다. 크게 3가지 stage로 구성되며, stage를 거듭할수록 사람이 annotation을 해줄 필요성이 적어집니다.

이를 통해서 지금까지는 없었던 dataset size를 만들 수 있었고, 이를 통해서 SAM을 최종적으로 학습시키게 됩니다.

위 이미지 처럼, 더 나은 annotation을 만들어 내기도 하고, 아래 이미지처럼 데이터셋에 대한 정보를 공개하기도 하니 자세한 내용은 원문을 참조해주시기 바랍니다. 감사합니다.

Energy-based Out-of-distribution Detection(NeurIPS 2020)

카테고리 없음 2023. 9. 27. 17:59 Posted by 김치말이삼겹살

안녕하세요. KDST에서 현장실습을 하고 있는 성균관대학교 데이터사이언스융합전공 김지환이라고 합니다.

 

제가 오늘 소개드릴 논문은 2020년 NeurIPS에 나온 논문으로, OOD 탐지할 때 사용할 수 있는 score로 Energy score를 제시합니다. 기존에 사용하였던 softmax score의 단점인 overconfidence를 줄일 수 있는 차별화된 방법이라고 저자들은 주장합니다.

 

NeurIPS 버전과 아카이브 버전이 달라서 두 버전 모두 링크를 달아두겠습니다.

 

[NeurIPS 버전]

https://proceedings.neurips.cc/paper/2020/file/f5496252609c43eb8a3d147ab9b9c006-Paper.pdf

 

[아카이브 버전]

https://arxiv.org/pdf/2010.03759.pdf

 

저자들은 이 논문의 contribution으로 아래와 같은 점들을 주장합니다.

 

1. Energy score는 기존 OOD score 보다 학습 데이터 x에 대한 확률적 분포를 잘 잡아낼 수 있다.

2. Energy score는 inference 시에 사용하여 OOD를 잘 탐지한다.

3. Energy score로 fine-tuning 시의 loss 함수로도 사용하여 OOD detection을 할 수 있으며, 성능도 준수하다.

 

 


1. Preliminary

 

리뷰에 앞서, 알아야 할 것들이 몇 가지 있습니다.

 

1. OOD가 무엇인지?

2. Energy가 무엇인지?

 

1-1. OOD detection

 

출처: https://hoya012.github.io/blog/anomaly-detection-overview-2/

 

0부터 9까지의 숫자가 적힌 사진 데이터로 0부터 9까지 분류할 수 있는 모델이 있다고 생각해볼 수 있습니다.

 

이때 모델에 고양이 사진이 들어간다면, 모델은 어떤 값을 결과값으로 도출해야할까요?

 

당연히 0부터 9까지 숫자 중 어떤 값으로라도 결과값으로 도출해서는 안될 것입니다.

 

모델이 0부터 9까지의 확률값으로 결과를 뱉어낸다면, [0.1, 0.1, 0.1, ..., 0.1]로 모두 동일하게 도출해내야 할 것입니다.

 

위와 같이 모델이 학습했던 0~9 사이의 숫자 사진이 아닌 고양이 사진을 모델이 학습했던 데이터의 분포에 바깥에 있다는 의미에서 Out of Distribution이라고 합니다.

 

모델의 결과값으로 아무런 결과를 도출해내지 않는 (각 라벨에 동일한 확률값을 뱉어내는) 것을 OOD를 탐지해낸다고 합니다.

 

1-2. Energy

 

Statistical learning이나 machine learning의 주요 목적을 "여러 변수들(X,Y)간의 상관관계를 어떻게 하면 잘 인코딩해볼까" 라고 합니다.

 

이렇게 변수들간의 상관관계(X, Y 간의 상관관계)를 데이터로부터 잘 학습하고 나면, 모르는 변수의 값이 들어왔을 때 이미 알고 있는 변수들의 값을 바탕으로 모델이 질문에 답을 할 수 있을 것입니다.

 

따라서 학습을 energy의 관점에서 얘기해보면, 데이터를 바탕으로 어떤 energy surface를 만들어 나가되 데이터가 살고 있는 부분 혹은 공간에 대해서는 낮은 energy를 할당하고 다른 부분에는 높은 energy를 할당하도록 하는 그런 과정이라고 생각할 수 있습니다.

 

즉, 인코딩을 해줄 값 = energy가 되는 것이고 이를 인코딩하는 함수 = energy function이 되는 것입니다.

 

energy function이 학습되는 과정, 즉 energy surface가 만들어지는 과정은 아래와 같이 생각해볼 수 있습니다.

 

(a) -> (d) 방향으로 읽어주세요

 

여기서 학습한 데이터와 가까울 때 에너지가 낮은 이유는, 에너지가 낮을수록 안정적이라는 물리적 개념을 차용하기 위함이라고 합니다.

 

현재 우리가 하고자 하는 OOD detection task를 떠올려보면, 우리는 ID와 OOD를 구분하는 energy surface를 만들어주는 energy function을 학습하고자 하는 것으로 이해할 수 있습니다.

 

이때 에너지 값은 스칼라 값으로, 우리는 이 값을 이용해서 특정 threshold보다 작으면 ID로, 이보다 크면 OOD로 판별할 것입니다.

 

이해를 돕기 위해 위 논문에서 발췌한 그림을 첨부하겠습니다.

 

 

1-3. Energy function

 

이 논문에서 사용하는 Energy function은 흔히 사용하는 logit에 temperature scaling을 한 버전입니다.

 

저자들은 이전에 나온 ODIN이라는 논문에서 제안한 temperature scaling이 OOD detection에 효과적이었다는 아이디어를 착안하여, temperature scaling을 제안한다. 이때 temperature T는 1보다 큰 값으로 해서 1/T를 logit에 곱해 softmax를 취합니다.

 

위의 식은 K개의 클래스, 즉 K차원의 logit vector의 output에 T의 역수를 곱하고, 이를 Negative Log Likelihood를 계산합니다.

 

그리고 energy based model의 pdf는 아래와 같습니다. (T가 1인 상황에서)

 

그리고 이를 우리가 사용하고자 하는 pdf로 변환하면 아래와 같이 표현할 수 있습니다.

이때 분모의 경우는 전체 데이터 x에 대한 energy를 더하는 항(partition function)인데, 이를 우리가 구할 수 없습니다. 따라서 로그 연산을 취해 분모의 영향을 지워버립니다.

위 식이 중요한 이유는 softmax와는 달리, x의 확률적 분포와 일치하게 energy 함수를 사용할 수 있다는 것에 있습니다. 또한, 두번째 term이 모든 x에 대해 상수값이므로 ID에 대해 낮은 에너지를 부여할 수 있고, OOD에 대해 높은 에너지를 부여할 수 있습니다.

 

그리고 분류기를 하나 두어서, 에너지가 특정 threshold를 넘으면 OOD로 그렇지 않으면 ID로 판별할 수 있도록 구성합니다.

 


 

2. Energy Score vs. Softmax Score

 

이전에 OOD를 탐지할 때는 softmax를 취해 가장 높은 값을 score로 두고, 이 값을 threshold와 비교하여 OOD를 판별했습니다.

 

하지만 저자들은 이 방법에 문제가 있다고 합니다.

 

아래에 우리가 알고 있는 softmax값 중 가장 큰 값을 뽑아내는 softmax confidence score로부터 enegy score를 유도해보도록 하겠습니다. (이때 energy score의 T는 1이라고 가정합니다.)

 

 

앞선 공식에서,

를 이용해 softmax confidence를 다시 한번 써보면 아래와 같이 쓸 수 있습니다.

우리의 OOD score는 ID에 대해 낮고, OOD에 대해 높길 원하는데, 위의 식에서 뒤의 두 항은 ID에 대해 높은 값을 부여할 수 있습니다.

 

때문에 Energy score에 비해 bias가 생길 수밖에 없다.

 

 


3. Energy-bounded Learning for OOD Detection 

 

저자들은 fine-tuning 시에 OOD를 탐지할 수 있도록 기존 cross entropy loss 함수에 새로운 term을 제시합니다. 

 

fine-tuning할 때는 ID 데이터와 보조 OOD data가 쌍으로 동시에 들어가는 상황입니다.

 

이 규제항은 아래와 같습니다.

이 항은 hinge loss로, ID data가 m_in이라는 ID data에 대한 energy threshold(m_in)보다 크면 loss를 부여하고, 반대로 OOD data가 OOD data에 대한 energy threshold(m_out)보다 작으면 loss를 부여하는 방식입니다.

 


4. Experiment

 

실험 결과를 보기 전, FPR95라는 metric을 소개하고자 합니다.

 

이 논문에서 FPR95는 ID 샘플에 대해 true positive 비율이 95%일 때, OOD 샘플의 false positive 비율을 뜻합니다.

 

저자들은 CIFAR10으로 사전학습한 WideResNet에 대해 SVHN 데이터셋으로 inference할 때의 OOD Metric인 FPR95와 softmax score(a)와 energy score(b), 그리고 사전학습한 WideResNet에 대해 CIFAR10과 SVHN 쌍으로 inference 할 때의 FPR95와 softmax score(c)와 energy score(d)를 보여주는 figure를 제시했습니다.

 

 

확실히 softmax score의 overconfidence를 줄여주는 것을 (a)와 (b)를 통해 알 수 있습니다.

 

그리고 다양한 데이터셋으로 실험하였을 때의 FPR95 performance를 제시하였습니다.

 

 

fine-tuning한 것과 inference 결과를 같이 report 해둔 figure도 함께 첨부합니다.

 

 


이렇게 Energy-based Out-of-distribution Detection 논문에 대한 리뷰를 마쳐보도록 하겠습니다.

 

읽어주셔서 감사합니다.