본문 바로가기

논문 리뷰/GAN

Alias-Free GAN (StyleGAN3) 리뷰 - 개념

https://nvlabs.github.io/stylegan3/

 

Alias-Free Generative Adversarial Networks (StyleGAN3)

We eliminate “texture sticking” in GANs through a comprehensive overhaul of all signal processing aspects of the generator, paving the way for better synthesis of video and animation.

nvlabs.github.io


논문 2챕터인 Equivariance via continuous signal interpretation 까지만(3챕터는 실제 구현 디테일에 대한 내용입니다.),

수학은 최대한 빼고 개념 위주로 하겠습니다.





stylegan2의 문제점이 무엇이냐,

위 영상을 보면 오른쪽 처럼 얼굴의 위치 변화에 따라서 세부표현이 같이 따라와야 하는데, 왼쪽의 이미지는 특정 위치에 특정 털 표현이 고정되어 있다. 털이 얼굴에 고정되어 있어야 하는데 평면 좌표계에 특정 털 표현이 고정된 것처럼 보인다. 연구진은 이걸 texture sticking이라고 표현했다.

texture sticking이 없다면 입력 이미지의 위치가 바뀌어도 위치만 바뀐 동일한 표현이 출력되어야 한다.


그래서 어떤 부분이 texture sticking을 일으키느냐,

1. Image borders

보통 이미지 커널 연산을 할 때 가장자리에 패딩을 하게 되는데, 모델이 이 부분이 이미지의 가장자리라는 것을 자연스럽게 배우게 되고 위치 정보를 배우게 되면 같은 부분을 가장자리에서 멀어지게 했을 때 다른 표현이 나오게 된다.

이 문제는 실제보다 범위를 더 넓게 잡아서 연산한 뒤 크롭하는 방식으로 쉽게 해결이 가능하다.

2. Per-pixel noise inputs

stylegan2에서 각 계층에 노이즈를 주입하는 부분이 있는데, 이 노이즈가 입력되는 스타일 정보에 영향을 받지 않아서 sticking을 일으킨다.

3. Positional Encodings

모델이 위치정보를 배우면 안되는데 포지셔널 인코딩은 당연히 안되겠지?


4. Aliasing
이제 문제의 앨리어싱이다. 나도 앨리어싱은 게임 그래픽 설정 할 때 안티앨리어싱 설정이 있던 게 기억나고 그 외로는 들어본 적 없는 용어다. 신호처리 쪽의 용어라고 한다. 어쨌든 이 앨리어싱을 없애야 하며, 나이퀴스트-섀넌 표본화 정리에서 앨리어싱이 가장 자연스럽게 처리된다고 한다. 이제부터는 딥러닝을 공부하는 사람이 아니고 신호처리를 공부하는 사람이라고 생각하고 따라와야 한다. 논문도 보면 대부분 신호처리에 대한 내용이 많다...



고등학교 물리나 정보 시간에 아날로그-디지털 변환에 대해서 배웠을 것이다.

연속적인 아날로그 신호를 샘플링하여 이산 신호로 만드는 것인데
나이퀴스트-섀넌 표본화 정리는 한정된 대역의 주파수를 갖는 어떤 신호의 최대 주파수의 2배 이상의 속도로 균일한 간격의 샘플링을 하면, 샘플링된 데이터들 만으로 원래의 신호를 복원 해 낼수 있다는 것이다.

위 그림은 어떤 신호를 각각 다른 주기로 샘플링한 예시이다. 샘플링 주기가 느리면 샘플링한 데이터를 가지고 원래 신호를 복원하려고 할 때, 그 결과와 원래 신호와 다르게 되어버린다. 이걸 앨리어싱이 일어났다고 하는데, 이건 진짜진짜 간략한 설명이고 더 궁금하면 밑의 영상들을 보고오길 추천한다.
푸리에변환 (위키백과)
푸리에 변환 (3blue1brown)
샘플링 이론 (유튜브 혁펜하임)
음향 이론(레전드)

 

잘 이해 안되더라도 주파수, 주파수 분해, 일정한 값 이상의 샘플링 주기로 샘플링해야 손실 없이 다시 주파수를 복원할 수 있다는 것 정도만 알아도 된다.


이제 모델 네트워크에 흐르는 신호가 어떤 것인지를 정의해야 하는데
이미지를 픽셀들의 모임으로 이루어진 이산 공간이 아니라 크기가 바뀌지 않는 연속 공간으로 생각해보자.

이산 공간에서 이미지 크기를 줄이는 작업이

연속 공간에서는 이미지를 흐려지게 만드는 작업이 된다.
해상도가 낮을수록 더 적은 픽셀로 표현해 낼 수 있다는 것이다.
(밑에 자세하게 설명 하겠지만 이미지가 작다=해상도가 낮다=흐리다=주파수가 낮다 다 비슷한 의미이다.)



이제부터는 이미지를 픽셀들의 모임 뿐만이 아니라 아래 사진처럼 연속적인 표현 공간으로도 취급할 것이다.




어떤 이미지의 이산 표현인 Z와 연속 표현인 z가 있다. 우리는 이제부터 중간 위의 싱크 함수를 세로로 한바퀴 돌린것 처럼 생긴 함수를 이산 데이터의 각 픽셀에 컨볼루션 함으로써 이산 표현을 연속 표현으로 변환하고, 연속 표현에서 샘플링을 이용해 이산 표현으로 변환 할 것이다. 그리고 연속 표현으로 변환하는 함수는 연속 표현을 blur하게 만듬으로써 나이퀴스트-섀넌 표본화 정리에서 말한 것처럼 최대 주파수가 샘플링 주기의 1/2을 넘게 하지 않기 위해 높은 주파수를 없앤다. 이 변환 자체도 low pass filtering(LPF) 이다.
low pass filter (위키백과)

 

높은 주파수의 신호는 파장이 짧기 때문에 더 세부적인 묘사를 할 수 있게 된다. 이걸 완화함으로써 높은 주파수를 없앤다는 뜻. 즉, 공간이 blur(해상도가 낮음)할 수록 낮은 주파수를 가진다는 것을 의미한다.




이제 실제 모델에 쓰이는 커널(컨볼루션, 업샘플링, 다운샘플링, 비선형성)을 점검 할 건데, 다음 조건을 만족해야 한다.

translation과 rotation에 대해서 equivariance 해야하고

이산-연속 표현끼리의 상호변환도 가능해야 하며 그러기 위해서는 연산 F, f가 연속 표현에서 대역폭 제한을 넘는 주파수 콘텐츠를 도입하면 안된다.


Convolution

생각해보면 컨볼루션은 커널 범위 내에서만 연산하기 때문에 sticking이 없고 컨볼루션의 목적 자체가 feature를 분해하는 것에 있기 때문에 주파수가 높아지지 않는다.


하지만 이산 커널(여기서 컨볼루션) K가 rotation에 대해서도 equivariance하려면 방사형 대칭이어야 한다.

방사형 대칭


Upsampling
위치에 따른 sticking 없음, 새로운 주파수 도입 없음, 연속 표현에서 업샘플링 작업은 sampling rate를 높이기 때문에 (연속표현에서 더 많은 표본을 뽑는 것과 같다.) 대역폭 제한 걱정 없음. 애초에 연속 표현에서 뭔가가 바뀌지도 않는다.


F를 연속 표현을 통한 연산으로 나타내면

컨볼루션 연산과 달리 두 함수의 sampling rate(s)가 다르다.

공식 구현을 보면 기존의 업샘플링이 앨리어싱을 억제하는 데 충분하지 않다고 하며 기존의 방법이 아니라 LPF를 추가한 직접 제작한 필터를 업샘플링에 이용한다.

여기에 대한 내 의견은 아마 이산 표현에서 주파수를 고려하지 않은 업샘플링 방법(e.g. 두 점 사이의 단순한 중간값을 채워넣는 식)을 사용함으로써 상호간의 불일치가 발생하기 때문인 것으로 보인다.



Downsampling
기본적으로 업샘플링과 비슷하지만 다른점은 sampling rate를 떨어트린다는 점이다. sampling rate가 떨어지면 대역폭 제한이 낮아져 제한보다 높은 주파수를 가지고 있는 연속 표현에서의 정보를 이산 표현으로부터 복원해 낼 수 없다.

연속 표현의 주파수를 낮추기 위해서 다운샘플링 후 재설계한 LPF를 적용한다.

연산 후의 sampling rate에 대한 필터이기 때문에 s' 사용, 다운샘플링과 업샘플링은 연속공간을 변화시키지 않기 때문에 z = z'




Nonlinearity
활성화 함수를 말한다, 이 논문에서는 그중에서도 ReLU.
Nonlinearity는 point-wise연산이기 때문에 위치가 이동하였다고 해서 값이 달라지지 않는다. 하지만 공간이 극단적으로 바뀌기 때문에 임의의 높은 주파수가 주입 되었다고 본다.

그래서 이번에도 해결책으로 연산 후 LPF를 적용해서 대역폭 제한을 해결하는데, 여기서...



"이산 표현에서 이 이산 연산은 일시적으로 연속 표현을 입력하지 않고는 실현될 수 없습니다." 라는 문장이 나온다.

처음에도 말했듯이 연속 공간은 주파수들의 합으로 이루어진 공간이며, 이산 공간은 연속 공간의 정보를 잃지 않도록 일정한 sampling rate를 이용해 샘플링된 feature이다. 따라서, 이산 표현의 점과 점 사이의 공간은 비어있지만 주파수처럼 연속적인 feature를 가지도록 합의되어 있고, 연속 표현으로 복원할 수 있다.


반면에 σ(z)의 경우,


점과 점 사이의 공간은 연속적이어야 한다는 합의가 깨져있다.


아무리 높은 sampling rate로 샘플링해도 이산 표현만을 보고 저 칼같이 잘린 경계선을 연속 표현으로 표현해 낼 수가 없는 것이다.

그래서 nonlinearity에서는 앨리어싱을 완전히 제거할 수는 없지만, 최대한 연속 표현의 feature에 근사하기 위해 업샘플링 후 높은 해상도에서 nonlinearity를 적용하고 다운샘플링을 하는 방법을 채택했다.
실험 결과 2배의 업샘플링만으로도 충분했다고 한다.

이 nonlinearity가 stylegan3에서 유일하게 새로운 주파수가 추가되는 부분이며 재구성 필터를 도입하여 새로운 주파수의 범위를 조절할 수 있게 했다고 한다. 그리고 이를 통해 생성기 네트워크 각 계층에 의해 추가되는 새로운 정보의 양을 정확하게 제어할 수 있다.




일단 이론편 리뷰는 끝이고 다음 내용은 2편인 architecture편으로 이어집니다.
https://ostin.tistory.com/55

 

Alias-Free GAN (StyleGAN3) 리뷰 - Architecture

지난 리뷰 https://ostin.tistory.com/53 에서 이어집니다. 지난 리뷰를 대충이라도 읽고 나서 이번 리뷰를 보는 걸 권장합니다. translation equivariance EQ-T, rotation equivariance EQ-R은 PSNR와 유사한 met..

ostin.tistory.com




밑은 후기입니다








간단리뷰....(간단이 아니었다?!)를 해보았는데 딥러닝 지식보다는 신호처리에 관한 내용이 대부분이고 내가 다른 분야에 문외한이어서 엄청 고생했다... 근데 확실히 다른 사람을 이해시킬 수 있어야 완벽하게 아는 거라는 말이 있듯이 이렇게 자세한 논문리뷰는 처음 해보는데 나 자신에게도 도움이 많이 된 것 같다. 이거 안했으면 영원히 이 모델에 대해 자세하게 알만한 기회는 없었을듯.
사실 실제 논문을 보고 해석하면서 논문리뷰를 한건 이번이 처음이다. 왠만하면 유튜브 영상이나 다른사람 리뷰 여러개 보면서 아 이런거구나~ 하고 넘어갔는데 stylegan3리뷰를 찾아보니깐 너무 정보가 없고 그나마 있는 리뷰들도 뭔가 별로 시원하게 이해시켜주지 않고 똥 싸다만 그런 기분이라 공부도 하고 정리도 할겸 해봤다. 솔직히 처음치곤... 몬지알지

참고: https://www.youtube.com/watch?v=BZwUR9hvBPE&t=2810s


그리고 유튜버 혁펜하임 저분이 신호처리 박사라고 하는데 되게 설명도 잘 하시고 유튜브에 다양한 분야의 강의 영상들이 많아서 한번 보면 좋을 것 같다.
https://www.youtube.com/c/%ED%98%81%ED%8E%9C%ED%95%98%EC%9E%84

 

혁펜하임

신호처리 & 인공지능 관련 강의와 공부 관련 이야기들 단톡방링크: open.kakao.com/o/gupzbfDb (참여 코드: 1100) contact: instagram.com/hyukppen e-mail: hyukppen@gmail.com

www.youtube.com