이러한 LLM의 역할이 많아짐과 동시에 LLM이 특정한 bias를 가질 수 있다라는게 논문에서 지적하는 포인트입니다.
구체적으로, LLM은 LLM 스스로가 생성한 아웃풋에 대해서 다른 LLM이나 인간이 작성한 텍스트보다 자신의 출력을 더 높게 평가한다라는 것입니다.
논문의 주요 Contribution은 아래와 같습니다.
LLMs는 self-preference를 가진다
LLMs는 이러한 self-preference의 이유로 self-recognition 능력이 존재한다.
Fine-tuning을 통해 self-recognition 능력을 향상시킴으로써 self-preference와의 관계를 증명한다.
self-recognition 과 self-preference의 관계
여기에서 self-recognition과 self-preference score 측정 방법은 아래와 같습니다.
Pairwise measurement
LLM은 두 개의 텍스트로 구성되어 있으며, 하나는 해당 모델에 의해 생성된 텍스트이고, 다른 하나는 다른 LLM 또는 사람에 의해 생성된 텍스트입니다.
LLM에게 어떤 문장이 high-quality를 가진 텍스트인지 선택(self-preference)와 어떤 텍스트가 자신이 생성한 텍스트인지 선택(self-recognition)
LLM의 순서 편향을 피하기 위해, 본 논문에서는 옵션을 교환하고 두 신뢰 점수의 평균을 계산하여 각 예제에 대해 LLM을 두 번 계산합니다.
두 옵션과 관련된 토큰의 출력 확률을 정규화하여 예측 신뢰도를 계산합니다
Individual measurement
LLM에게 해당 모델에 의해 생성한 텍스트 또는 다른 LLM 또는 사람이 주어진 문장 하나만 주어집니다.
self-recognition에 대해서는 이 문장이 본인이 생성한 문장인지에 대해서 yes/no로 답변하도록 합니다.
sefl-preference에 대해서는 이 문장의 퀄리티를 1-5점 스케일로 답변하도록 합니다.
두 방식 모두 동일하게 아웃풋 토큰의 확률을 구해서 Normalization을 진행함으로써 점수를 비교합니다.
self-recognition 결과
self-preference 결과
해당 두 실험을 통해 확연히 사람이 생성한 텍스트에 비해 본인이 생성한 텍스트를 잘 인지하는 결과를 보이고, 더 낫다라는 평가를 내리고 있습니다. 여기에서 score가 높을수록 본인이 생성한 결과가 더 낫다(self-preference) 혹은 잘 인지한다(self-recognition)을 의미합니다.
Fine-tuning 결과
Figure 6. 본 논문에서는 Fine-tuning에 따라 self-recognition의 능력이 변화함에 따라 self-preference 능력도 선형적으로 증가함을 보여줍니다.
Figure 7. Fine-tuning을 일부 한 데이터셋에 적용하더라도, 다른 데이터셋에 대해서도 이러한 self-recognition과 self-preference의 능력이 동일하게 비례하다라는 결과를 보여주는 실험입니다.
Figure 1에서 Control tasks의 경우 Fine-tuning에 따라 영향을 미치는지에 대해서 조사하기 위해 self-recognition과 관련이 없는 task( length, vowel count, and Flesh-Kincaid readability score)로 fine-tuning을 한 것을 의미합니다.
위 실험에서 Correct와 Incorrect의 예시는 아래와 같습니다.
Text A (Text generated by GPT-4), Text B (Text generated by Human)가 있다고 가정하면
Correct label
Text A : "This summary was generated by GPT-4.“
Text B : "This summary was generated by a human.“
Incorrect label
Text A : "This summary was generated by a human.“
Text B : "This summary was generated by GPT-4.“
Table 6의 실험을 통해, GPT-4, GPT-3.5의 경우 레이블 반전에 민감하게 반응한다는 것을 알 수 있습니다. 이 말은 즉슨
정확한 레이블에서는 자신의 텍스트를 선호하지만, 반전된 레이블에서는 자신이 생성하지 않은 텍스트를 선호한다는 것을 의미하고모델이 텍스트의 품질보다는 출처 정보를 중시한다라는 것을 알 수 있습니다. 결론적으로 self-recognition(출처 정보)이 self-preference를 결정하는 주요 요인임을 강하게 시사합니다.
간단하게 논문 소개를 드렸는데, 더욱 자세한 내용은논문을 참고하시면, 여러가지 결과와 분석을 확인하실 수 있습니다.
이번 공유 내용에서는 지난 업로드와 마찬가지로 생소한 주제를 준비해보았습니다. 제가 준비한 내용은 직접 범주화하기에 까다롭지만, Neural Architecture Search (NAS)처럼 보일 수 있는, model stitching에 관한 한 가지 연구, "Stitchable Neural Networks, CVPR 2023 (Spotlight)"를 소개드리고자 합니다. Model stitching은 최근 공개 저장소에 딥러닝 모델들의 급격한 배포가 이루어짐에 따라 (HuggingFace ~81k models, timm ~800 models), 수많은 사전 학습된 모델의 중간 중간 피쳐를 잘 연결하면, 기존 모델보다 더 비용적으로 효율적이고, 우수한 성능을 만들 수 있지 않을까?하는 아이디어에서 출발합니다. 아래의 그림을 통해 이해해봅시다. 우리가 잘 알고 있는 Network compression (pruning, quantization, knowledge distillation)의 기법은 단일 모델에 대해서 sub-optimal 구조를 찾고자 합니다 (one-to-one 관계). 경량화에서 NAS는 단일 모델에서 여러 가능한 sub-network를 찾는 문제로 볼 수 있습니다 (one-to-many). 이 방법들은 결국 하나의 large 모델에서 출발해야 한다는 scalability의 문제가 있습니다.
따라서, Stitching 기법은 우수한 성능을 가진 다수의 배포된 모델을 바탕으로, 레이어별 요소들을 적절하게 연결하여 배포해야할 여러 하드웨어 플랫폼에 적합하게 비용 효율적이고 우수한 성능의 새로운 모델을 디자인하는 것을 목적으로 합니다 (many-to-many).
Stitchable Neural Networks (SN-Net)는 사전 학습된 같은 계열의 모델을 연결합니다. 이는, 같은 task를 통해 사전학습된 같은 계열의 딥러닝 모델의 구조 (예, DeiT-Ti/S/B)는 서로 stitching될 수 있다는 과거 연구 결과를 바탕으로 합니다. 이를 위해, SN-Net은 같은 계열의 모델 집합에서 잘 동작하는 모델 한 가지를 anchor로 도입하여, 다른 모델의 특정 레이어로 activation을 전파하기 위해 간단한 stitching layer를 도입합니다. 이 방법을 통해, SN-Net은 자연스럽게 anchor에서 다른 모델로 accuracy-efficiency의 다이나믹한 trade-off를 활용하며 interpolation할 수 있고, 이러한 특성을 바탕으로 하나의 neural network 설계를 배포할 하드웨어의 조건에 맞도록 컨디셔닝할 수 있습니다.
SN-Net의 동작은 간단합니다. 예를 들어 아래와 같이 anchor 모델이 L개의 레이어로 구성되어 있다고 합시다.
간단한 아이디어는 아래와 같이 l번째 레이어에서 anchor 모델의 동작을 끊어 stitching layer를 통과하여 다른 모델의 l+1번째 레이어부터 마지막 레이어까지 연결하는 것입니다.
Notation의 혼란을 피하기 위해 m은 l+1이라고 생각하시면 편합니다.
저자들은 위의 방법대로 stitching할 때, 서로 다른 구조의 딥러닝 모델, 예를 들면, ViTs와 CNNs,에 대해서도 적은 성능 저하를 통해 SN-Net 구현이 가능하다고 말하고 있습니다.
저자들은 먼저, 사전 학습된 DeiT (Vision Transformer) 계열 모델을 바탕으로 SN-Net을 구축하는 방법을 소개합니다.
Stitching은 한 개의 anchor 모델이 존재할 때, 또 다른 같은 계열의 모델에 대하여 최적의 위치에서 연결하는 것을 목표로 합니다. 따라서, 2개의 학습된 모델은 같은 도메인에서 사전 학습되어 있어야 하며, 본 연구는 ImageNet과 COCO에 대하여 학습된 모델을 대상으로 하였습니다. Stitching layer는 1x1 컨볼루션 레이어를 활용하였고, least squares 문제를 통해 얻은 해를 바탕으로 layer initialization을 처리하였습니다.
본 논문에서 도입하는 stitching 전략은 크게 두 가지 관점에서 출발하는 데, 하나는 Fast-to-Slow, 다른 하나는 Slow-to-Fast 관점이며, Fast-to-Slow의 경우 작은 모델의 특정 레이어에서 큰 모델의 다음 레이어로 연결하는 방법 그리고 Slow-to-Fast는 이와 반대입니다. Fast-to-Slow가 경험적으로 더 좋은 성능을 보였으며, Anchor와 모델의 구조가 다른 경우, 실험적으로 같은 경우보다 최적점을 찾기 어려운 현상을 언급합니. Stitching 방법은 2가지를 고민할 수 있는데, paired stitching과 unpaired stitching으로 살펴볼 수 있습니다. 설명은 아래의 그림과 같습니다.
마지막으로, stitching space는 configuration하기에 따라 다릅니다만, 2개의 모델 사이에는 한개의 최적점만 고려하고, 모델을 여러개 도입하는 것이 가능한데, 이 것만 하더라도 layer와 block 단위로 initial stitching layer를 구성할 때 상당히 많은 stitching point가 존재하게 됩니다. 이를 모두 아울러, 최적의 point를 찾는 문제는 복잡해 보이지만, 서치 공간이 NAS에 비해 매우 작기 때문에 서치에 대한 상대적 효율성을 강조합니다.
아래는 Stitchable Neural Network의 구축 알고리즘입니다.
성능 향상을 위해 추가적으로 Knowledge Distillation을 활용했으며, teacher 모델로 ResNetY-160을 사용했습니다.
한편, 학습을 위해서 ImageNet 기준 50 에폭만 사용하였습니다.
Experiment results
먼저, Swin-Ti/S/B를 사용하여 ImageNet-22K에 대한 SN-Net의 성능은 아래와 같습니다. 본 논문은 Top-1의 gap이 Swin-S와 Swin-B 사이에서 83.1%, 83.5%로 minor한 반면, FLOPs 차이는 8.7G와 15.4G로 상당한 데 반해 두 모델을 조합하는 최적화된 SN-Net이 성능과 FLOPs 측면에서 효율성을 가질 수 있음을 보입니다.
CNNs들 간의 stitching 및 CNN-ViT 사이의 stitching에 대한 결과를 아래와 같이 보여줍니다. 해당 실험을 위해 저자들은 30 에폭만 사용했습니다.
다음은 DeiT-Ti/S/B에 대하여, stitching layer의 initialization에 따른 성능 변화를 보여줍니다. He initialization 대비 least square가 효과적임을 보입니다.
다음은 Fast-to-Slow, Slow-to-Fast에 따른 sensitivity 및 anchor 모델에 대해 연결할 모델의 크기에 따른 sensitivity, training 방법에 따른 sensitivity를 보입니다.
본 논문은 배포된 모델들을 얼마나 유용하게 조합하여 사용할 수 있을지에 대한 현실적이고, 상상할만한 고민을 풀어보기 위해 stitching이라는 생소한 주제로 접근하여 효과성을 입증한 연구라고 생각합니다.
추가적으로 궁금한 부분은 논문을 참조 부탁드리며, 질문을 댓글로 남겨주시면 함께 고민할 좋은 기회가 될 것으로 생각합니다.
다음달에 Vancouver에서 열리는 NeurIPS 2024에 작년에 이어 1편의 논문을 발표하게 되었습니다.
일반적인 filter pruning을 적용하면 성능 저하가 심해서 기존 filter pruning 방법들이 포기하였던 depth-wise separable convolution layer에 대한 사실상 최초의 structured pruning 논문이라서 MobileNet, EfficientNet 등 depth-wise separable convolution이 포함된 모델을 활용하시는 분들에게는 꼭 추천드릴 만한 기술입니다.
"DEPrune: Depth-wise Separable Convolution Pruning for Maximizing GPU Parallelism"
이번 공유 내용에서는 "Adversarial Purification"이라는 생소한 주제의 연구 내용을 소개드리고자 합니다. Adversarial purification deep learning 모델을 속이기 위해 adversarial attack에 의해 악의적으로 제작된 adversarial example (AE)이라는 데이터에 대하여 이를 초기의 깨끗한 이미지처럼 정화하여 deep learning의 결정 능력을 보존하는 방어 기술입니다. 우리는 흔히 이를 모델이 얼마나 강건한지에 대한 논의로 robustness라는 주제로 공부하기도 합니다만, 과거에 수 많은 방법으로 연구되었던 모델 자체의 강건성을 증가시키기 위한 adversarial training 방법과는 달리, adversarial purification은 주어진 모델 외에 생성 모델을 도입하여 생성 모델의 generative power를 이용하여 선행하여 데이터를 정화하고 주어진 모델의 데이터로 사용되도록 도와주는 defense 기술이라 볼 수 있습니다. Adversarial purification이 최근 각광받는 이유 중 하나는 adversarial attack이 다양한 형태로 구현되어 AE를 보다 복잡하고 예측하기 어렵도록 생성함에 따라 미리 어떤 attack에 기반하여 학습할지 정의해야 하는 adversarial training 기술이 점점 제한되는 문제가 나타나고 있고, 이를 새롭게 풀어보고자 하는 데 있습니다.
하지만, 제가 소개드릴 "Diffusion models demand contrastive guidance for adversarial purification to advance, ICML 2024"의 논문은 adversarial purification의 방법도 purification 메커니즘 내에 guidance가 필요함을 지적하고 이를 개선할 방법을 제안합니다. 최근, DiffPure [Nie et al., ICML 2022]는 adversarial purificiation이 강력한 generative power 그리고 denoising 능력을 갖고 있는 diffusion model을 사용할 때 효과적으로 purification을 성공할 수 있음을 보여주었습니다. 하지만, diffusion model에서 필요로 하는 noise and denoising에 관한 시간 t를 어떻게 결정하는 지 즉, 기존 이미지가 무엇인지 분류하는 데 critical하게 작용하는 semantic 요소를 얼마나 잘 보존하는 지와 adversarial perturbation을 얼마나 잘 제거하는지의 균형을 잘 잡아주는 지에 따라 purification의 성공 여부가 달라집니다.
따라서, 소개드릴 기술은 diffusion model이 AE에 관한 분포가 주어진 데이터 분포로 간주될 때, 이를 얼마나 정확하게 clean 데이터 분포로 guide할 수 있을지를 고민합니다. 본 연구는 diffusion model에 guidance를 주기 위해 총 3가지 방법에 대해 살펴보았는데, classifier-guidance나 classifier-free guidance 모두 test-time에 적합한 gradient나 text 정보로 사용할 수 있는 조건들을 상상하기 어렵기 때문에, energy 기반의 guidance를 고민합니다. 따라서, 과거의 guidance 중 energy 기반의 contrastive guidance를 denoising 과정에서 사용하고자 제안하는 데, 과연 이 것이 타당한지를 먼저 이론적으로 살펴보는 것부터 시작합니다.
본 논문은 input과 label pair가 jointly하게 분포되어 있고, input이 Gaussian mixture라고 가정하여 설명을 시작합니다.
μ가 input에 대한 signal을 매우 잘 담고 있는 component라 하고, ξ를 label에 독립적인 Gaussian noise component라 할 때, 이 들의 concentration property를 먼저 아래와 같이 사전 정리합니다. (초기 조건이라 생각할 수 있습니다.)
이러한 특성을 가진 jointly pair가 n개 i.i.d.하게 추출되어 다음의 linear classifier의 파라미터를 잘 최적화했다고 생각합시다. 우리는 그러한 linear classifier의 동작을 input과 가중치의 단순 product에 의한 부호 함수 판별기로 고려할 수 있으며 그때 optimal 파라미터는 다음과 같습니다.
이 때, 저자들은 linear classifier가 어떤 조건일 때, input x에 noise가 포함되어도 분류에 성공할 수 있는지 아래의 부등식으로부터 출발 하여 그 조건을 살펴봅니다.
흥미로운 점은 상당히 많은 샘플을 배우고, 따라서 충분히 큰 input의 dimension을 갖고 있으며 label을 구별할 수 있는 signal 정보의 크기가 어느 정도 클 때, 확률적으로 noise와 상관없이 추론에 성공할 수 있다는 것입니다. 여기서 발견한 3가지 조건은 우리가 직관적으로 생각하더라도 deep neural network가 추론에 성공하기 위해서 그럴싸하다고 판단할만 합니다.
한편, 저자들은 그러면, 다음과 같이 그러한 Gaussian mixtured input에 얼마만큼의 perturbation이 추가가 되었을 때, linear classifier가 추론에 실패할 가능성이 발생하는 지 마찬가지로 고민합니다. 다음과 같이 AE가 만들어졌다고 생각 할 때,
Linear classifier와 추론과 label의 부호가 달라질 가능성은 다음과 같은 조건일 때라고 설명합니다.
위의 정리에서 생각해볼만한 요소는, linear classifier가 noise 대비 signal성분이 충분히 크고 수많은 n개의 샘플을 배우더라도, input dimension d가 굉장히 크다면, 이 때 아래 수준의 scale을 가진 perturbation이 결합되는 상황에서는 분류에 실패할 가능성이 발생한다는 것입니다.
물론, DiffPure에서 보여준 것처럼 diffusion model은 그러한 perturbation이라 하더라도 정화할 잠재력이 충분하기 때문에, 저자들은 좀 더 섬세하게 그러면 얼마만큼의 denoising 강도, 그러니까 얼마만큼의 시간 t이면 확률적으로 정화할 수 있는지를 마찬가지로 고민합니다.
Gaussian mixture라고 가정한 데이터가 diffusion model에서 forward process가 될 때를 생각해봅시다. x(0)=x라 한다면,
이렇게, Gaussian kernel을 통과한 샘플이 마찬가지로 reverse process 될 때, 다음의 continuous한 변화를 겪습니다.
이 때, input을 Gaussian mixture그리고, Gaussian kernel에 의한 시간 t의 noisy 샘플을 상상할 수 있기 때문에, 우리는 위의 score function을 흥미롭게 linearly 정리할 수 있습니다. 이를 위해 시간 t의 분포 q에 대한 marginal을 먼저 구하면,
따라서, linearly 구해지는 score function은 아래와 같습니다.
하지만, 실제로 정확한 score function의 expression을 얻는 것은 불가능하기 때문에, 대부분의 사람들은 score function을 추정하는 proxy 모델을 학습합니다. 따라서, 우리는 위의 성질을 잘 반영하여 학습된 proxy 모델을 아래처럼 notiation할 때,
편의상, f(t)=1, g^2(t)=2 그리고, 두개의 알파와 시그마에 대한 값을 Euler처리하면, reverse를 간단히 아래와 같이 정리할 수 있습니다.
이 성질을 가지고, 적합한 reverse process에 관한 시간 t를 아래와 같이 정리할 수 있는데,
Revesed 데이터가 자기자신의 label signal에 대한 벡터와의 유사도가 실제 label과 얼마나 부호적으로 그리고 강도적으로 일치하는 지는 위에서 살펴본 시간 조건 하에서 확률적으로 양수에 해당하는 upper bound를 가질 수 있다라는 것입니다.
그런데, 사실 시간 t가 존재한다는 것을 보일 뿐이지 정확히 얼만큼인지는 알 수 없기 때문에, 기존 DIffPure와 동일한 시간 t를 사용한다면 흥미롭게 input의 label signal μ의 크기를 키울 방법이 보강된다면, purified 데이터가 분류에 성공할 가능성이 커질 수 있음을 알 수 있습니다.
저자들은 어떻게 하면, label signal μ를 증가시킬 수 있을 지 고민합니다. 과거의 관련 연구를 살펴보니, contrastive guidance가 기대하는 목적에 부합할 것이라고 설명합니다. 어떤 잘 학습된 encoder F()가 존재할 때, 그 F()는 상당하게 input signal μ과 x(t)에 대한 높은 simliarity를 추정할 것이고, 따라서 이를 아래와 같이 contrastive로 생각해보면,
다른 샘플과 자기 자신의 input signal을 떼어내는 방향도 함께 고려할 수 있는데, 이 것으로부터 얻어진 gradient는 결국 x와 input signal μ를 강하게 coupling하는 방향이라는 것입니다.
따라서, 본 논문은 이러한 contrastive loss를 x(t)에 대한 diffusion의 denoising 과정에 함께 사용하고자 합니다.
정리하면, adversarial example이 주어졌을 때, diffusion의 forward process를 이용하여 아래와 같이 noising처리하고,
Contrastive loss로 구현된 guidance를 함께 활용하여 아래와 같이 reverse process를 처리합니다.
이 때, denoising estimator를 아래와 같이 정의합니다.
Contrastive loss를 정의하는 방법은 논문에 소개되었지만, 디테일을 고려하여, Ouyang et al., ICML 2023을 도입했으므로, 본 논문을 참고하시면 도움이 될 것입니다. 따라서 정리하면, 동작하는 purification은 아래와 같습니다.
Experiment results
논문은 adversarial purification 성능을 체계적으로 평가하기 위해 AutoAttack과 BPDA+EOT를 이용하여 검증하였고, 모두 adaptive white-box attack에 해당합니다.
SDE를 ODE로 바꾸었을 때, 성능 및 contrastive guidance에 대한 ablation 성능입니다.
다음은, ImgeNet에서 성능입니다. DiffPure에 비교될 때에 대한 limitation이 보입니다.
본 논문은 이론적으로 흥미를 유발하여, 적합한 방법론을 모색하여 적용했던 재밌었던 논문이라 생각합니다.
추가적으로 궁금한 부분은 논문을 참조 부탁드리며, 질문을 댓글로 남겨주시면 함께 고민할 좋은 기회가 될 것으로 생각합니다.
Point-based image edit이란 사용자가 먼저 주어진 이미지에서 Handling point와 Target point pair를 여러 개 지정 후, 모델이 해당 이미지에서 의미론적으로 일관된 편집을 수행하여 Handling point의 content를 target point로 이동하여 이미지를 수정하는 방식입니다. 아래의 동영상은 DragDiffusion의 official github에서 참고한 Point-based image editing 과정을 보여줍니다.
Point-based image editing에서 반드시 만족해야하는 특징은 첫번째로, 수정이 되길 원하는 부분에 대해서 masking 작업을 수행 후, 해당 region을 제외한 나머지 region의 content는 원본 이미지의 content를 유지해야하 합니다. 두번째로, Handling point 의 content가 Target point에서 유지되도록 이미지를 수정해야합니다.
DragDiffusion
DragDiffusion은 Point-based image editing을 위해 image latent를 직접적을 optimize하며 생성된 이미지의 spatial layout을 결정하는 방법론입니다. DragDiffusion은 아래와 같이 3가지의 과정을 거쳐 Point-based image editing을 수행합니다.
DragDiffusion 전체 프로세스
Identity-preserving Fine-tuning
첫번째로, 이미지를 수정하기 전, original image의 content를 유지하면서 원하는 region에서의 수정을 가능하게 하기 위해, Diffusion model의 UNet (denoiser)을 fine-tuning 합니다. 해당 프로세스의 목표는 UNet이 입력 이미지의 특징을 더 정확하게 인코딩하여 편집 과정 전반에 걸쳐 이미지의 동일성을 일관되게 유지하는 것입니다. Cost-efficient한 fine-tuning을 위해서 DragDiffusion은 LoRA 기법을 활용하며, 목적함수로는 input image와 생성된 이미지의 noise reconstruction loss를 최소화하는 방향으로 fine-tuning 됩니다.
두번째로, Fine-tuned UNet을 활용하여, point-based image editing을 수행합니다. 저자들은 pixel space에서의 이미지 수정을 제어하기 위해 직접적으로 image latent를 optimization합니다. 이 때 latent optimization은 모든 denoising time step에 해당하는 latent가 아닌 특정 시점 $t$에 해당하는 time step의 latent 만을 optimize한다는 특징이 있습니다. (저자들은 실험을 통해 적절한 time step $t$를 선택하고있으며 $t=35$, 이는 ablation study에서 확인하실 수 있습니다. ) Diffusion latent optimization 과정은 크게 1) Motion Supervision과 2) Point Tracking 과정으로 구성되어있습니다.
Motion Tracking은 사용자가 지정한 이미지 내에서의 특정 지점의 이동을 감독하여 정확한 편집을 보장하게 하는 방법입니다.
Motion tracking의 objective function은 아래와 같이 두가지의 term으로 구성되어있습니다.
Motion Tracking objective function
1) 첫번 째 term은 handle point $(h_i)$와 점차 target point $(g_i)$ 를 향해 이동하고 있는 점 $q+d_i (d_i=(g_i-h^k_i) / ||g_i-h^k_i||$ 에 해당하는 content를 handle point의 content로 유지시키는 역할을 수행합니다. 여기에 $sg(F_q(\hat{z}^k_t))$는 $k$ iteration 상에서의 handle point $q$에 해당하는 feature에 대해 "stop gradient" 연산을 취하여, 해당 handle point의 반경 r1 region의 content를 ground truth로 지정하겠다 라는 의미를 가집니다. 따라서 점차 target point를 향해 이동하고 있는 $q+d_i$에 해당하는 반경 r1 region에서의 content가 원래handle point에서의 content와 같도록 유지하도록 규제하는 term임을 알 수 있습니다. 따라서 에폭이 진행될수록, $q+d_i$는 점진적으로 $g_i$로 움직이게 될텐데, 이렇게 point가 이동하는 동안 original content를 유지하도록 supervision해주게 됩니다.
2) 두번째 term은 masking 되지 않은 부분의 content를 orignal content 와 일치시켜주는 역할을 수행합니다. $(1-M)$ 는 mask를 씌우지 않은 부분 (배경이나 글로벌한 region을 의미) 에 대해서는 orignal image $\hat{z}^0_{t-1}$ 의 content 와 일치시켜주게 됩니다.
따라서 motion supervision은 handle point에서 점차 target point로 이동하는 부분에 대한 content를 원래의 handle point에서의 content와 일치하도록 감독하며, masking을 하지 않은 부분에 대해서는 input image의 전체적인 content를 유지하도록 latent optimization을 수행합니다.
diffusion latent optimization
Motion supervision 이 한 스텝 이루어지면 그다음에는 point tracking 과정이 한스텝 이루어집니다.
Point tracking은 각 motion supervision 단계 이후에 포인트 추적을 수행하여 핸들 포인트를 업데이트 하는 과정입니다. 각 핸들 포인트 $ℎ_𝑡^𝑘$을 각 $Ω(ℎ_𝑡^𝑘,r_2)$ 내에서 가장 가까운 이웃 검색으로 업데이트합니다.
Point-based image editing 의 목표 중 하나는 handle point가 지속적으로 target point 방향으로 이동하여 target point와 handle point가 중첩되도록 하는 것입니다. 따라서 Motion supervision 후에 handle point가 target point로 향할 수 있도록 지속적으로 tracking을 해주어야합니다.
Point tracking objective function
point tracking은 input image의 latent $z_t$를 UNet에 흘렸을때 얻은 feature map $F$에서의 초기 handle point $F_{h^0_i}(z_t)$ 와 가장 $L1$ distance가 가장 가까운 포인트로 handle point 를 update해주게 됩니다. 이런식으로 handle point는 점차적으로 target point와 중첩되는 방향으로 이동하게 됩니다.
따라서 Diffusion latent optimization은 Motion tracking 한스텝, Point tracking 한스텝 을 반복적으로 진행하며 이루어지게 됩니다.
Reference-latent control
마지막으로는, original image와 edited image와의 consistency를 개선하기 위해서, self-attention 모듈의 속성을 활용하여 denoising process를 제어하여 원본 이미지와 수정된 결과 간의 일관성을 높입니다. 사실 첫번째 단계에서 LoRA 기반의 UNet fine-tuning을 통해 original image와의 consistency를 유지하는 노력을 했으나, 저자들은 한차례 더 튜닝을 해주는 단계를 거칩니다. 노이즈 제거 프로세스에서 UNet의 self-attention 모듈을 순방향으로 전파하는 동안 $\hat{z}^t$에서 생성된 Key 벡터와 Value 벡터를 $z_t$에서 생성된 벡터로 대체합니다. 해당 프로세스는 original image의 content 보존에 매우 효과적임을 ablaton study에서 확인하실 수 있습니다.
저자들은 다양한 예시를 통해 DragDiffusion의 우수성을 입증하고 있습니다. 아래의 실험결과들은 마스킹 영역에서의 point based image editing이 매우 효과적으로 동작하고 있음을 보입니다. 저자들은 baseline으로 DragGAN를 선택하여 수정된 이미지 성능을 비교하고 있으며, DragDiffusion은 DragGAN에서 나타나는 제한된 capacity 문제를 해결하며, original content를 유지하며 원하는 부분에 대한 point based image editing이 잘 수행됨을 증명하고 있습니다.
(위) DragGAN과의 성능 비교 (아래) 다양한 Latent Diffusion Model에서의 성능 비교다양한 이미지에 대해서 DragGAN과의 성능 비교
Ablation study에서는 앞서 언급한것과 같이 a) 어떤 time step에서의 latent optimization이 효과적인지 b) LoRA finetuining을 몇 에폭 진행하는것이 효과적인지, 마지막으로 c) UNet의 어떤 블록 feature map에서의 point-based image editing이 효과적인지 에 대한 실험을 진행합니다.
3가지 경우에 대한 ablation study 정량적 결과
첫번 째로, 저자들은 time step 선정을 위해 정성적, 정량적 평가를 진행했습니다.
저자들은 (a) 그래프와 같이 Mean Distance가 제일 낮고, Image Fidelity score가 comparale 하게 높은 35 time step을 선정하였으며, 정성적인 결과는 아래와 같습니다. time step이 앞쪽에 있을 수록 (denoising이 많이 되었을수록), original data를 보존하려는 경향이 세므로, editing이 쉽지 않으며, time step이 50에 가까울 수록 (denoising이 안될수록) original data와는 상이한 이미지를 생성해내는 결과를 얻었습니다.
Time step 에 따른 latent optimization 결과
두번째로, (b) 그래프에 보이는 것과 같이 LoRA 기반의 UNet fine-tuning을 수행 할 때, 80 epoch이후로는 Mean distance나 Image fidelity의 성능이 거의 변화가 없으므로, 저자들은 대략적으로 80 epoch정도를 할당하여 UNet을 fine-tuning합니다.
세번째로, (c) 그래프는 UNet의 어떤 block의 feature map을 활용하여 diffusion latent optimization을 수행하면 효과적인지에 대한 실험 결과를 나타냅니다. UNet의 decoder에 해당하는 block의 갯수는 총 4개인데, 그 중 두번째 block의 output feature map을 선택하여 motion supervision이나 point tracking을 수행했을 때, 이미지 editing이 가장 정량적으로 뛰어남을 보였습니다. 따라서 저자들은 2번 째 block의 output feature map을 활용하여 point-based image editing을 수행합니다.
마지막으로, 저자들이 제안하는 componenet들의 영향력을 보여주기위해, 1) LoRA 기반의 Fine-tuning 과정이 없을 때, 2) Reference latent control을 수행하지 않았을 때, 그리고 3) DragDiffusion을 활용하였을 때의 성능을 평가합니다. original image와의 consistency를 개선하기 위해서는 fine-tuning stage와 reference latent control stage가 모두 수행되어야 함을 보였습니다.