파일럿 실험 결과 · ImageNet-100 · SDXL

합성 이미지로 학습하면 정말 같은 성능이 나오는가

실제로 20,000장을 생성해 규모를 맞춰 학습하고, 사람이 지각할 수 없는 워터마크 신호까지 통제 변수로 넣어 측정한 파일럿 결과입니다. 모든 수치는 코드 실행 산출물(results/summary.json)에서 자동으로 채워집니다.

한눈에 보는 결론

real − synth 격차
34.3%p

같은 20,000장, 같은 학습 조건에서의 top-1 차이. real 53.17 ± 0.03 vs synth 18.88 ± 0.69

동등성 검정(TOST)
유의하게

±1.0%p 마진, 차이 95% CI [33.71, 34.86]%p. '유의차 없음'이 아니라 동등성을 직접 검정했습니다.

기계의 구분 능력
0.968

real/synth 이진 탐지기 AUROC. 0.5면 구분 불가, 1.0이면 완벽 구분.

균등 워터마크의 영향
없음

모든 이미지에 똑같이 워터마크를 넣으면 강도를 최대로 올려도 top-1 변화가 1.0%p 이내(시드 표준편차 수준)였습니다. real 에 넣은 경우는 TOST 로 동등 판정.

라벨과 상관되면?
-20.8%p

절반 클래스에만 워터마크를 넣자 그 클래스들만 무너졌습니다. 같은 신호, 같은 강도인데 상관 구조 하나로 결과가 갈립니다.

영향받지 않은 클래스
2.8%p

워터마크를 넣지 않은 나머지 50개 클래스는 그대로 — 부작용이 아니라 지름길 학습이라는 증거입니다.

먼저 짚고 갈 것 — 이 파일럿의 합성 이미지는 아직 '구분 불가'가 아니다

같은 클래스의 real(위)과 합성(아래) 샘플. 합성 쪽은 얕은 심도·역광 보케·중앙 배치라는 <b>알아볼 수 있는 화풍</b>이 있습니다.
같은 클래스의 real(위)과 합성(아래) 샘플. 합성 쪽은 얕은 심도·역광 보케·중앙 배치라는 알아볼 수 있는 화풍이 있습니다.

정직하게 적습니다. 기본 프롬프트·기본 설정으로 만든 합성 이미지는 사람이 보면 티가 납니다. 따라서 이 파일럿의 real vs synth 비교는 '지각적 동등성이 통제된' 비교가 아닙니다 — 그것은 사람 2AFC 로 P-Match set 을 만드는 본 실험의 몫입니다. 다만 워터마크 축(RQ5)은 지금도 완전히 통제된 실험입니다. 워터마크를 넣은 이미지와 안 넣은 이미지는 PSNR 40dB 수준으로 물리적으로 거의 동일하고, 차이는 사람이 볼 수 없는 신호 하나뿐이기 때문입니다.

워터마크가 실제로 바꾸는 것. α=1.0은 육안으로 구분되지 않지만 잔차를 20배 증폭하면 블록 구조가 드러납니다. α=4.0은 이미 눈에 보이므로 '지각 불가' 주장의 근거로 쓰지 않고 탐침으로만 씁니다.
워터마크가 실제로 바꾸는 것. α=1.0은 육안으로 구분되지 않지만 잔차를 20배 증폭하면 블록 구조가 드러납니다. α=4.0은 이미 눈에 보이므로 '지각 불가' 주장의 근거로 쓰지 않고 탐침으로만 씁니다.

실험 설정

항목
태스크ImageNet-100 (1000클래스 중 고정 시드로 100개) 분류
real 데이터ImageNet train, 256px 정사각 캐시 (합성과 저장 조건 일치)
합성 데이터SDXL base 1.0, DPM++ 2M Karras 16스텝, 640px 생성 → 256px 저장, 프롬프트 다양화(장면·조명·시점·카메라)
평가언제나 real ImageNet val 5,000장
모델ResNet-18 스크래치 학습(사전학습 금지), 128px, 60에폭, 모든 조건에서 하이퍼파라미터 완전 고정
시드조건당 2~3개, 평균 ± 표준편차 보고

파일럿 규모입니다. 계획서의 본 실험(생성기 3종·13만 장·사람 2AFC 수집)에서 규모가 커지면 절대 수치는 올라가지만, 비교는 모두 동일 조건 대조이므로 방향성은 유지될 것으로 봅니다.

RQ1·RQ2 — 격차는 존재하는가, 합성 1장은 real 몇 장인가

데이터 규모별 top-1. 두 조건 모두 같은 장수·같은 학습 설정. 테스트는 언제나 real val.
데이터 규모별 top-1. 두 조건 모두 같은 장수·같은 학습 설정. 테스트는 언제나 real val.
학습 이미지 수real top-1 (%)synth top-1 (%)격차
2,50020.01 ± 0.749.29 ± 0.08+10.72%p
5,00029.79 ± 0.3211.84 ± 0.21+17.95%p
10,00041.49 ± 0.4214.81 ± 0.04+26.69%p
20,00053.17 ± 0.0318.88 ± 0.69+34.29%p

교환율 α — 합성 데이터의 '환율'

합성 n장이 real 몇 장에 해당하는 성능을 내는지 real 스케일 곡선에서 역산한 값입니다. α=1이면 합성 1장 = real 1장, α가 작을수록 합성이 열등합니다.

합성 데이터 규모합성 top-1 (%)동등한 real 장수α비고
2,5009.292,5001.000외삽
5,00011.842,5000.500외삽
10,00014.812,5000.250외삽
20,00018.882,5000.125외삽

‘외삽’ 표시는 합성 성능이 측정한 real 곡선의 최솟값(2,500장)보다도 낮아 표에 적힌 α 가 상한이라는 뜻입니다. 즉 20,000장 구간에서 실제 α 는 0.125 이하입니다 — 합성 8장이 real 1장에도 못 미칩니다. 정확한 값을 구하려면 더 작은 real 규모까지 측정해야 합니다.

분포가 이동해도 같은가 — 강건성

real val 에 손상을 걸었을 때의 성능. in-distribution 이 비슷해도 강건성이 다르면 '같은 성능'이라 말할 수 없습니다.
real val 에 손상을 걸었을 때의 성능. in-distribution 이 비슷해도 강건성이 다르면 '같은 성능'이라 말할 수 없습니다.
손상real top-1 (%)synth top-1 (%)격차
gauss_noise56.4317.48+38.95%p
blur48.1012.95+35.15%p
jpeg56.9717.13+39.83%p
contrast23.621.37+22.25%p
bright41.5312.98+28.55%p

‘같다’를 제대로 검정하기

차이 +34.29%p, 95% CI [+33.71, +34.86]%p, 동등 마진 ±1.0%p → 판정 유의하게 다름 (different). '유의차 없음'은 같음의 근거가 아니므로 동등성 검정(TOST)으로 보고합니다.

RQ4 — real을 얼마나 섞어야 따라잡는가

총 학습 장수를 20,000장으로 고정하고 real 비율만 바꾼 결과.
총 학습 장수를 20,000장으로 고정하고 real 비율만 바꾼 결과.
real 비율top-1 (%)
0%18.82 ± 0.16
5%28.41 ± 0.21
10%33.17 ± 0.33
25%40.84 ± 0.20
50%47.10 ± 0.64
100%53.72 ± 0.40

대체가 아니라 보충으로 보면 — 합성은 분명히 쓸모가 있다

같은 real 예산에서, 나머지를 합성으로 채워 총 20,000장으로 만들면 어떻게 되는가? real 만 썼을 때의 성능은 real 스케일 곡선을 로그 보간해 추정했습니다.

real 장수real 만 (추정)+합성으로 2만 장 채움이득
1,000*20.0128.41+8.40%p
2,000*20.0133.17+13.16%p
5,00029.7940.84+11.05%p
10,00041.4947.10+5.61%p

* 표시는 측정한 real 곡선 범위 밖이라 외삽한 추정치입니다. 합성 데이터는 real 을 대체하지는 못하지만 보충에는 확실히 기여합니다 — 이 둘을 구분하지 않는 것이 합성 데이터 논쟁의 흔한 혼선입니다.

RQ5 — 사람이 지각하지 못하는 신호는 학습에 얼마나 영향을 주는가

워터마크는 '사람은 못 보지만 기계는 읽는 신호'를 의도적으로 설계한 것입니다. 켜고 끌 수 있으므로, 지각적으로 동일한 두 데이터셋의 유일한 차이가 비지각 신호 하나뿐인 인과 실험을 만들 수 있습니다.

워터마크 강도 스윕

워터마크 강도 α에 따른 downstream 성능과 PSNR. α=1.0이 invisible-watermark 기본 강도.
워터마크 강도 α에 따른 downstream 성능과 PSNR. α=1.0이 invisible-watermark 기본 강도.
워터마크 강도top-1 (%)PSNR페이로드 비트정확도
α = 0.019.32 ± 0.68
α = 0.519.45 ± 0.3343.2 dB0.842
α = 1.018.71 ± 0.2740.2 dB0.996
α = 2.019.05 ± 0.1735.4 dB0.550
α = 4.018.35 ± 0.7730.0 dB0.530

결과: 강도를 아무리 올려도 성능은 움직이지 않았습니다. α=4.0 은 PSNR 30dB 로 이미 육안에 보이는 수준인데도 그렇습니다. 당초 가설(사람이 못 보는 신호가 학습을 갉아먹는다)은 이 실험에서 기각되었습니다. 참고로 페이로드 비트정확도가 α=1.0 에서 최대인 것은 그 강도가 코덱의 설계값이기 때문이며, 더 키우면 코덱 자체가 깨집니다.

조건별 비교

조건top-1 (%)시드 수
합성 (워터마크 없음)19.32 ± 0.682
합성 + 워터마크 기본 강도18.71 ± 0.272
합성 + 워터마크 삽입 후 제거18.99 ± 0.192
합성 + SDXL 기본 워터마크19.30 ± 0.362
real + 동일 워터마크52.80 ± 0.402

워터마크 기본 강도 vs 무워터마크

기본 강도 워터마크가 학습 성능을 바꾸는가 → 차이 +0.61%p, 95% CI [-0.34, +1.56]%p → 판정 불가 (inconclusive)

real vs 워터마크 넣은 real

합성이 아니라 진짜 사진에 워터마크를 넣어도 같은 일이 일어나는가 → 차이 +0.37%p, 95% CI [-0.05, +0.79]%p → 동등 (equivalent)

결정 실험 — 워터마크는 '라벨과 상관될 때'만 해로운가

앞의 조건들은 워터마크를 모든 이미지에 균등하게 넣었습니다. 그렇다면 모델이 이용할 단서가 없습니다. 그래서 절반의 클래스(0~49)에만 워터마크를 넣어 워터마크가 클래스와 상관되게 만들고, 워터마크가 전혀 없는 real val 로 평가했습니다. 모델이 워터마크를 지름길로 썼다면 그 클래스들의 정확도가 무너져야 합니다.

클래스 그룹절반만 워터마크 (top-1 %)대조군: 워터마크 없음 (top-1 %)
워터마크 넣은 클래스 (0~49)37.2458.03
워터마크 없는 클래스 (50~99)51.0848.31
차이-13.84%p+9.72%p

워터마크를 넣은 클래스만 -20.8%p 무너지고, 건드리지 않은 클래스는 +2.8%p 로 그대로입니다 (이중차분 -23.6%p). 균등하게 넣었을 때는 아무 일도 없었는데, 라벨과 상관되게 넣자마자 모델이 워터마크를 지름길로 학습하고 워터마크 없는 실제 테스트에서 무너진 것입니다.

실무에서 가장 위험한 지점: 합성 데이터의 가장 흔한 사용법이 희귀 클래스만 생성 이미지로 보강하는 것입니다. 그런데 생성 파이프라인이 기본 워터마커를 켠 채라면, 바로 그 순간 '워터마크 ⟺ 특정 클래스' 상관이 만들어집니다. 위 결과는 그 조합이 해당 클래스를 얼마나 망가뜨리는지 보여줍니다.

교란 변수 통제 — 워터마크인가, 재압축인가

워터마크를 넣은 이미지는 JPEG 을 한 번 더 거칩니다. 그렇다면 위 붕괴가 워터마크가 아니라 이중 압축 때문일 수도 있습니다. 그래서 워터마크 없이 같은 재저장만 절반 클래스에 적용한 대조군을 똑같이 학습시켰습니다.

조건워터마크/재압축 클래스 (0~49)손대지 않은 클래스 (50~99)
워터마크 삽입37.2451.08
재압축만 (대조군)57.1648.66

재압축만 했을 때는 아무 일도 일어나지 않았습니다 (해당 클래스 57.2%, 정상 범위). 워터마크를 넣었을 때만 37.2% 로 무너집니다. → 원인은 압축 이력이 아니라 워터마크 신호 그 자체입니다.

사람은 못 봐도 기계는 보는가

이진 탐지기 AUROC. '고주파 잔차만' 조건은 이미지 내용을 지우고 저수준 신호만 남긴 입력입니다.
이진 탐지기 AUROC. '고주파 잔차만' 조건은 이미지 내용을 지우고 저수준 신호만 남긴 입력입니다.
구분 대상AUROC
탐지기(이미지 전체)0.968
탐지기(고주파 잔차만)0.951
워터마크 탐지 α=0.50.523
워터마크 탐지 α=1.00.566
워터마크 탐지 α=2.00.988
워터마크 탐지 α=4.00.999

잔차만으로도 AUROC가 높다는 것은, 이미지 내용을 다 지워도 저수준 신호만으로 출처를 알 수 있다는 뜻입니다.

종합 — 읽을 수 있다는 것과 해롭다는 것은 다르다

관찰결과의미
생성기 지문을 기계가 읽는가고주파 잔차만으로 AUROC 0.951이미지 내용을 다 지워도 출처가 읽힌다
SDXL 기본 워터마크를 기계가 읽는가AUROC 0.909 (사람 눈 PSNR 42dB, 페이로드는 해독 불가)사람도 못 보고 페이로드도 안 풀리는데 모델은 읽는다
우리 워터마크(α=1)를 기계가 읽는가AUROC 0.566 — 우연 수준에 가까움같은 PSNR 이어도 코덱에 따라 흔적의 크기가 다르다
그 신호들이 성능 격차를 설명하는가강도 스윕·기본 워터마크 모두 무영향, 지문을 파괴해도 격차 그대로설명하지 못한다. 격차는 의미·다양성 층위
그렇다면 언제 해로운가라벨과 상관되게 넣자 해당 클래스만 붕괴상관 구조가 있을 때만 해롭다

결론: 비지각 신호는 그 자체로 학습을 망치지 않습니다. 모델이 완벽하게 읽어낼 수 있는데도 균등하게 분포하면 아무 일도 일어나지 않습니다. 위험은 신호의 존재가 아니라 신호와 라벨의 상관에서 옵니다. 따라서 실무 규칙은 '워터마크를 쓰지 마라'가 아니라 '워터마크 유무가 클래스·출처와 상관되지 않게 하라' 입니다.

RQ3 — 격차의 원인은 무엇인가

Fréchet distance (DINOv2)
1457.7

real 분포와 합성 분포의 거리. 작을수록 가깝습니다.

precision / recall
0.33 / 0.23

precision은 '합성이 real 매니폴드 안에 있는가'(품질), recall은 'real을 합성이 덮는가'(다양성).

1-NN 2표본 정확도
0.984

0.5면 임베딩 공간에서 두 분포가 구분 불가.

클래스 내 다양성 (real / synth)
32.3 / 30.3

클래스 안에서 이미지들이 얼마나 서로 다른가. 낮을수록 단조롭습니다.

정밀도 0.33 / 재현율 0.23 — 둘 다 낮고, 재현율이 더 낮습니다. 합성 이미지의 상당수가 real 매니폴드 밖에 있고(화풍 차이), 그와 별개로 real 이 가진 변이를 덮지도 못합니다. 1-NN 2표본 정확도가 0.984 라는 것은 임베딩 공간에서 두 분포가 거의 완전히 분리된다는 뜻입니다. 파일럿의 큰 격차는 이 분포 자체의 어긋남으로 설명되며, 앞서 본 대로 저수준 신호로는 설명되지 않습니다.

평균 방사형 주파수 스펙트럼. 고주파 영역의 차이가 생성기 지문입니다.
평균 방사형 주파수 스펙트럼. 고주파 영역의 차이가 생성기 지문입니다.

저수준 신호를 지우면 격차가 줄어드는가

real·synth 양쪽에 같은 변환을 걸고 학습했을 때 남는 격차.
real·synth 양쪽에 같은 변환을 걸고 학습했을 때 남는 격차.
변환real−synth 격차무변환 대비 변화
none+34.29%p
jpeg65+33.06%p-1.23%p
noise4+33.32%p-0.97%p
resample+33.60%p-0.69%p
hf_rand+34.14%p-0.15%p
combo+32.82%p-1.47%p

변환 후에도 격차가 그대로면 원인은 의미·다양성 층위이고, 줄어들면 원인의 일부는 지각 불가 저수준 신호입니다.

실행하며 확인한 방법론 사실 (본 실험 설계에 반영)

확인한 것결과
diffusers SDXL 파이프라인이 기본 워터마커를 붙이는가 — invisible-watermark 가 설치되어 있으면 자동 부착
기본 워터마크 페이로드가 해독되는가(해상도별 48비트 일치율)768px 0.52, 512px 0.50, 384px 0.50, 256px 0.50 — 우연 수준(0.5)에 가까움
기본 워터마크의 픽셀 변화(PSNR)42.0 dB — 육안 구분 불가 수준이지만 픽셀은 분명히 바뀜
invisible-watermark 코덱 신뢰도SDXL 기본값 dwtDct 왕복 비트정확도 0.875 (최소 0.604) — 불안정. dwtDctSvd는 0.999 → 실험군은 후자 사용. 두 코덱 모두 PSNR 39.4dB 수준(육안 구분 불가)

실무 함의: 아무 설정 없이 SDXL로 데이터를 생성하면 비지각 워터마크가 섞인 채로 학습됩니다. 페이로드가 해독되지 않더라도 픽셀은 바뀌어 있으므로, 합성 데이터 실험을 하려면 워터마커 상태를 명시적으로 통제하고 기록해야 합니다.

한계와 다음 단계

이 페이지는 파일럿입니다. 계획서의 본 실험과 다른 점을 그대로 적습니다.

항목파일럿본 실험 계획
사람 2AFC미수집 — 페이지만 배포(참여 모집 전)20~30명 × 200 trial, 기만성 예측기로 P-Match set 구성
생성기SDXL 1종SDXL / SD3.5 / FLUX 3종 비교
규모합성 20,000장 (클래스당 200)13만 장 (클래스당 1,300)
학습ResNet-18, 128px, 60에폭ResNet-50 + ViT-S, 224px, 장기 학습
강건성 평가미실시ImageNet-v2/R/Sketch/C
워터마크 종류DWT-DCT 계열(사후 삽입) + SDXL 기본Gaussian Shading·Tree-Ring 등 생성 내재형 추가

사람 2AFC 데이터가 없으므로, 이 파일럿에서 '지각적으로 동일하다'는 것은 PSNR·잔차 크기 같은 물리적 프록시로만 뒷받침됩니다. 지각적 동등성을 실제로 확정하는 것은 본 실험의 몫입니다.