실제 정상이미지로 학습되어있는 디퓨전 모델에 이미지가 추가로 학습될 때 생성된 정상 이미지나 이상 이미지가 학습되려고 하면 이상을 감지해서 학습하지 않고, 실제 정상 이미지만 추가로 학습하도록 하게 하는 연구
-> 결국에 모델에서 이상이미지라 판단하는 것은 기존의 학습분포에서 크게 벗어나있는 것일 테니 결국 임계값이 중요한것 아닌가
학습 데이터셋에 아예 다른 이미지나 생성이미지가 존재할 때 문제점
1. The distribution of the original data becomes distorted
2. diversity gradually decreases with each generation
3. Subtle errors in fake data are degrading model quality
4. Slower convergence rates and wasted computational resources
기존 연구 문제점
- 사전학습 필요하기 때문에 정해진 데이터셋 내에서만 기능
- anomaly detection와 같이 일부에만 이상이 있는 이미지를 검출하는것이 주류
- A High-Quality Robust Diffusion Framework for Corrupted Dataset와 같은 관련된 논문이 있지만 완벽하게 정제해내지는 못함
데이터를 정제하면 필연적으로 데이터 수 줄어들기 때문에 품질이 떨어질 것이라는 우려에 대해서는 DataComp: In search of the next generation of multimodal datasets 논문에서 데이터 양보다 질이 중요함을 입증 (12.8B 데이터셋에서 필터링된 1B만 사용해도 더 높은 성능 달성)
연구 목표
- 학습과정에서 자동적으로 학습에 적합하지 않은 데이터를 학습하지 않음으로써 사전학습이 필요하지 않을뿐만 아니라 학습되는 데이터의 종류에 영향을 받지 않는 디퓨전 모델 개발
- 최대한 완전히 정제하는 것을 목표로 함
DataComp: In search of the next generation of multimodal datasets
-> 데이터 양보다 질이 중요함을 입증 - 12.8B 데이터셋에서 필터링된 1B만 사용해도 더 높은 성능 달성
A High-Quality Robust Diffusion Framework for Corrupted Dataset
-> OT 기반 생성 모델을 이용하여 학습 과정 자체에 이상치 필터링
diffusion 생성 이미지를 구분할 때는 diffusion으로 생성된 이미지가 실제 이미지보다 복원 오차가 더 낮다는 것을 이용한다. 이는 생성 이미지가 실제 이미지가 모델 입장에서 더 익숙하기 때문이다.
'TruFor: Leveraging all-round clues for trustworthy image forgery detection and localization'
-> 조작된 부분은 노이즈 패턴이나 텍스처가 실제 부분과 다르니까, Noiseprint++와 RGB 정보를 합쳐서 어디가 이상한지 지도를 그리고, 신뢰도로 확실한 조작인지 체크함
but 이미지 전체가 생성된 이미지이면 판단하기 어려움
'Fake or JPEG? Revealing Common Biases in Generated Image Detection Datasets'
초기 GAN 생성 이미지는 주파수 스펙트럼에서 감지 가능한 인공물(격자 같은 패턴)을 포함했지만, 최신 노이즈 제거 확산 확률 모델(DDPM)은 실제 이미지의 스펙트럼 특성에 더 가깝게 근사하는 이미지를 생성하여 감지가 훨씬 어려워짐
일반적으로 인공적으로 생성된 이미지는 무손실 압축 방식인 PNG 파일로 저장되는 반면, 자연 이미지는 손실 압축 방식인 JPEG 형식으로 저장되어 눈에 띄는 압축 아티팩트가 발생
대부분의 AI 생성 이미지 감지 데이터셋에 사용된 생성기가 고정된 크기의 이미지를 생성하는 반면, 자연 이미지에서는 다양한 크기 분포가 발견됨
-> 감지기가 이러한 편향들에 의존하는지에 대해 조사한 결과 실제로 그러한 의존성이 드러남
또한 크기 조정에 의해 발생하는 아티팩트에 의존하기도 함
생성된 이미지와 실제 이미지의 크기, 압축을 일관화하여 편향을 제거한 뒤 학습하니 감지 능력이 크게 상승함
but 편향없는 데이터셋을 만들기 위한 제약이 많이 필요
A Solution to ACMMM 2024 on Artificial Intelligence Generated Image Detection
Learning to Detect AI-Generated Images via Frequency Domain Analysis
예를 들어 사람얼굴로 어느정도 학습된 모델에 대해 인터넷에서 무작위 사진을 무한히 크롤링해서 학습시키더라도 오염되지 않고 학습에 도움되는 데이터만 학습할 수 있게 하는 모델을 만드는 것이 목표
이때 학습하는 데이터의 class가 기존 학습한 것과 동일해야 하고, fake 이미지는 학습하지 않아야 하고, 그냥 전부 학습하는 것과 큰 차이 없을 정도로 빨리 학습되어야 함
-> 이 모델은 지금까지 학습했던 데이터들과 얼마나 비슷한 이미지를 학습할 것인가에 대한 threshold의 영향을 크게 받을 것
-> 학습된 이미지들의 특징분포의 분산을 사용해서 다양성은 유지하면서 모델의 품질이 일정이상 떨어지지 않도록 하기 위해 threshold를 자동적으로 조정하는 방식은 어떨지?
아니면 학습된 이미지의 양에 따라 threshold를 점진적으로 변화시킬 수도(처음에는 학습된 이미지 양이 적으므로 threshold를 크게 설정해서 품질 보장, 나중 갈수록 threshold를 줄여가며 다양성 확보)
사전 학습된 모델로 임의의 데이터셋을 학습시키려고 함
1. 가짜 이미지 감지 후 제거 (최대한 제거하도록)
2. 사전 학습된 이미지들의 특징 분포에서 멀리 떨어져있는 이미지들을 제거 (threshold는 처음에는 엄격하고 갈수록 관대하게)
3. 정제된 데이터셋으로 학습
무작위 데이터셋에서 기존 학습 데이터와 같은 클래스의 데이터를 효과적으로 추출하기 위한 방법
시스템 개요
여러 폴더에 섞여 있는 이미지 중에서 학습에 적합한 이미지만을 선별하기 위해 두 단계의 필터링 과정을 거친다. 첫째, SSP-AI-Generated-Image-Detection 모델을 사용하여 AI 생성 이미지를 식별해 제거한다. 둘째, 특징 중요도 가중 프로토타입 방식으로 기존 학습 데이터의 특징 분포와 크게 다른 이미지를 필터링한다. 최종적으로 선별된 이미지만을 사용해 메모리 효율적인 Diffusion 모델 학습을 진행한다.
데이터 정제 과정
1. AI 생성 이미지 감지 및 제거
SSP-AI-Generated-Image-Detection 모델은 ConvNeXt 구조를 기반으로 이미지가 AI로 생성되었는지 진짜인지를 판별한다. 이미지는 384×384 크기로 변환되어 모델에 입력되며, 0에서 1 사이의 점수로 진위 여부를 판단한다. 여기서는 진짜일 확률이 80% 이상인 이미지만 다음 단계로 진행되도록 엄격한 기준을 적용한다.
이 과정에서 배치 처리 방식을 도입하여 한 번에 여러 이미지를 처리함으로써 계산 효율성을 크게 높인다. 모델의 판단 결과는 각 이미지별로 기록되어 최종 분석에 활용된다.
2. 특징 분포 기반 이상치 제거
첫 번째 필터를 통과한 이미지에 대해 ResNet50 모델로 2048차원의 특징 벡터를 추출한다. 이 특징 공간에서 유효한 학습 이미지들의 분포를 파악하기 위해 '특징 중요도 가중 프로토타입' 방식을 적용한다.
이 방식은 먼저 유효한 이미지들의 특징을 클러스터링하여 5개의 프로토타입(대표점)을 찾는다. 그리고 각 프로토타입 주변 이미지들의 차원별 분산을 분석하여 중요도를 계산한다. 분산이 낮은 차원(일관된 값을 가지는 차원)은 해당 클래스를 정의하는 데 중요한 특징으로 간주되어 높은 가중치를 받는다.
새로운 이미지가 들어오면 각 프로토타입과의 '가중 거리'를 계산한다. 이 과정에서 중요 차원의 차이는 크게 반영되고, 덜 중요한 차원의 차이는 무시된다. 이를 통해 방향성 있는 결정 경계가 형성되어 더 정확한 이상치 감지가 가능해진다.
초기에는 0.8의 엄격한 임계값으로 시작하여 학습이 진행됨에 따라 점차 0.6까지 낮아지는 동적 임계값을 적용한다. 이렇게 하면 처음에는 확실히 유효한 이미지만 선택하다가 점차 다양한 변형까지 수용할 수 있게 된다.
Diffusion 모델 학습
필터링 과정을 통과한 이미지들로 Diffusion 모델을 학습할 때, 메모리 사용량을 최소화하기 위한 여러 기법을 적용한다:
- 레이지 로딩: 이미지를 필요한 시점에만 메모리에 로드하여 RAM 사용량을 감소시킨다.
- 그래디언트 누적: 작은 배치(8개)로 나누어 처리한 후 누적된 그래디언트로 업데이트한다.
- 혼합 정밀도 학습: FP16(반정밀도) 계산을 통해 메모리 사용량을 반감시킨다.
- 해상도 최적화: 256×256 해상도로 낮춰 메모리 요구량을 감소시킨다.
- 즉각적인 메모리 해제: 사용 후 텐서를 즉시 해제하고 주기적으로 캐시를 정리한다.
- 모델 경량화: UNet2D 모델의 채널 수를 최적화하여 메모리 요구량을 감소시킨다.
이러한 최적화 기법을 통해 제한된 GPU 메모리에서도 안정적으로 Diffusion 모델을 학습할 수 있다. 학습 중에는 실시간으로 메모리 사용량을 모니터링하며, 일정 간격으로 체크포인트를 저장하여 학습 중단 시에도 복구 가능하도록 한다.