작성자 : 동덕여자대학교 정보통계학과 김민경!
image-to-image translation에서 GAN 기반 방법(ex> CycleGAN, DiscoGAN 등)은 이미지의 object를 보존하는데 실패하는 경향이 있다.
따라서 domain adaptation 등의 task에 어려움이 있다.
(출처 : Image-To-Image Translation Using a Cross-Domain Auto-Encoder and Decoder / https://www.mdpi.com/2076-3417/9/22/4780/htm)
(참고)
domain adaptation?
source domain : 학습에 사용되는 labeled data가있는 도메인
target domain : 분포가 다른 target task가 수행되는 도메인
=> 위 그림의 source domain과 target domain 간의 데이터 분포가 다르다고 가정하면,
domain adaptation은 주로 source 및 target domain에서 공통 특징을 학습하는 데 중점을 둔다.
(출처 : Multi-subject subspace alignment for non-stationary EEG-based emotion recognition)
content의 왜곡을 막기 위해 CycleGAN의 generator 부분에 (semantic) segmentation 네트워크를 적용하자는 아이디어 등장!
(참고)
(semantic) segmentation
: 이미지의 각 pixel이 어느 class에 속하는지 예측하는 것. pixel 단위의 annotation들이 같이 input으로 들어가야 한다.
출처: https://bskyvision.com/491
(한계)
CycleGAN이 content 인식 변환을 수행할 수는 있지만 pixel 단위의 annotation이 필요하다. → cost 증가 :(
pixel 단위의 annotation 없이 CycleGAN의 content consistency(일관성)를 향상시키기 위해 self-supervised를 포함했다.
(CycleGAN의 구체적인 내용은 재윤님이 강의를 참고 해주세요ㅎㅎ)
Source image A (저녁 사진) → Translated image B (낮 사진) → Reconstructed image A' (저녁 사진)로 생성할 때,
input인 A와 생성한 A'가 비슷한지를 보는 것이 cycle-consistency loss이다.
덧붙이자면 A 도메인 → B 도메인의 단순 매핑이 아니라, 다시 복구되는 것도 고려해 원본이 유지되게끔 제약을 추가하는 것이다.
이 cycle-consistency loss는 A → B (또는 B → A) 사이의 직접적인 reconstruction loss가 없기 때문에
한 도메인에서 다른 도메인으로 변환할 때 object의 왜곡이 발생한다.
(참고) Translating and Segmenting Multimodal Medical Volumes with Cycle- and Shape-Consistency Generative Adversarial Network
(1) 먼저 원래 이미지와 생성된 이미지를 3 × 3 격자로 나눈다. (하나의 칸을 patch라고 한다.)
(2) training 동안 샴 네트워크의 input으로 할 2개의 patch 쌍을 random으로 선택한다.
따라서
두 patch의 상대적인 위치는 content 정보로 특징을 추출해내는 task를 supervision하는데 사용하고 (content registration)
두 patch의 출처 정보는 도메인 분류에 사용한다. (domain classification)
(참고)
<Siamese-Network(샴 네트워크) ?>
(샴네트워크는 weight를 공유하는 두 네트워크로 구성된다. https://tyami.github.io/deep%20learning/Siamese-neural-networks/)
<이제 진짜 architecture>
(참고)
(출처 : [논문 요약 11/52] Human Attention in VQA: Do Humans and Deep Networks Look at the Same Regions?|작성자 hist0613)
: domain adaptation task에서 content 왜곡을 최소화 즉, object의 모양과 위치를 유지하기 위한 제약
: 2개의 content attention maps 를 L2 norm에 사용
: 원본 이미지와 변환된 이미지 간의 content 불일치에 대해 pixel 단위의 penalty를 부과하므로 OP-GAN이 왜곡 없이 사실적인 결과를 합성할 수 있다.
: 3개의 class 로 구성된 1-K classification를 공식화 했다.
: domain classification 부분은 주로 feature로부터 domain 정보를 추출해서 content
feature의 더 나은 disentanglement가 되도록 하는 것이 주 목표이다.
cGAN은 합성 이미지의 생성과 조작 등에 유연함을 보이는 GAN이다.
그러나 많은 양의 annotated dataset이 요구된다. → 많은 cost
(출처 : https://guimperarnau.com/blog/2017/03/Fantastic-GANs-and-where-to-find-them#cGANs)
cGAN을 training하는데 많은 양의 annotated dataset 요구를 줄이기 위해 많은 연구에서는 pretext task를 설계할 때 self-supervised 방법을 도입했다.
그리고 대부분의 연구는 input image space의 geometric augmentations(기하학적 증강)에 집중했다.
(출처 : https://blog.insightdatascience.com/automl-for-data-augmentation-e87cf692c366 )
(한계)
위의 예시에서처럼 class label은 변경되지 않으면서 data augmentation이 되었다.
즉, 각 class label의 새로운 data들을 만들어낼 수 없다는 한계가 있다.
self-supervised learning pretext task에서 data augmentation 방법으로 image space가 아닌 label space를 활용하자!
: labelled data가 아주 적은 semi-supervised 상황에서 많은 cGAN을 training하기 위해 self-supervised learning을 적용한 네트워크
(참고)
labelled data와 동일한 분포로부터 나온 unlabelled data가 주어지면 true source attribute label에 상관없이, 같은 target label이 할당된 경우 generator는 source image를 합성된 이미지 매니폴드의 비슷한 지역에 매핑해야 한다.(다른 target label이 할당된 경우에는 다른 지역으로 매핑한다.)
(참고)
triplet 같은 제약 조건을 적용하면 generator가 변환된 attributes에 대한 consistency 를 유지하도록하여 궁극적으로 합성된 이미지에서 attributes를 더 잘 유지할 수 있다.
(본 논문에서는 starGAN을 baseline으로 했지만, 모든 cGAN에 적용될 수 있다고 한다.)
starGAN의 objective function
triplet matching objective
최종 objective function
=> MatchGAN이 덜 nosiy하며 덜 blurry하고 더 일관된 결과를 생성했다.
14기 김상현
이번 강의는 self-supervised learning 관련 논문 리뷰로 OPGAN, MatchGAN에 대해 투빅스 14기 김민경님이 진행해주셨습니다.
OP-GAN
MatchGAN
Self-supervised learning을 이용한 GAN 모델인 OPGAN과 MatchGAN의 구조와 전반적인 이해를 할 수 있었습니다.
유익한 강의 감사합니다!
투빅스 14기 박지은
투빅스 14기 정재윤
이번 강의는 self-supervised learning에 관한 강의로 투빅스 14기 김민경님께서 진행해주셨습니다.
OP-GAN은 CycleGAN에 self supervised를 적용한 모델로 기존의 cycleGAN의 한계인 이미지의 object를 보전하는데 실패하는 경향을 개선하기 위해 만들어진 모델입니다. Content의 왜곡을 막기 위해 segmentation 네트워크를 적용하는 아이디어를 가져왔고, pixel 단위의 annotation없이 content consistency를 향상시키기 위해 self supervised를 제안했습니다.
OP-GAN에서 유의미하게 봐야할 부분은 두 patch의 상대적 위치는 content 정보로 특징을 추출하는 task를 supervision으로 사용하고, 출처 정보는 도메인 분류에 사용한다는 점이다. 또한 content consistency loss와 cross entropy loss 가 합쳐진 self supervised loss를 새롭게 제시했다는 점이다.
MatchGAN은 self supervised와 semi supervised를 CGAN에 적용한 모델이다. 즉, self supervised learning pretext task에서 data augmentation 방법으로 image space가 아닌 label space를 사용하는 것이다. 여기서 특이한 점은 triplet matching objective라는 loss 식을 제안했다는 점입니다. 기존의 standard triplet loss와 달리, 각각 channel 축을 따라 positive pair와 negative pair의 discriminator embedding을 concat한다는 점이다.
Self supervised learning을 이용한 OPGAN과 MatchGAN의 구조와 loss에 대해서 공부해볼 수 있었던 시간이었습니다. 감사합니다 😊
투빅스 13기 이예지:
이번 강의는 ‘Self-Supervised Learning 관련 논문 리뷰’로, 김민경님이 진행하였습니다.
Image2image translation에서 GAN의 한계
OP-GAN
MatchGAN
각 도메인의 문제점을 해결하기 위해 SSL을 활용한 연구를 배울 수 있었습니다.
좋은 강의 감사합니다 :)
투빅스 12기 김태한
이번 강의에서는 SSL방법으로 학습을 한 OP-GAN과 MatchGAN에 대하여 김민경님께서 세미나를 진행해 주셨습니다.
OP-GAN
기존의 I2I방법은 GAN을 통해 생성된 이미지를 온전히 보존하지 못하는 경향을 보입니다. 이를 보완하기 위하여 Cycle-GAN에서 segmentation 네트워크를 사용하였으나 pixel단위의 학습이 필요하여 OP-GAN이 등장하였습니다.
이러한 OP-GAN은 기존의 Cycle-GAN loss에 SSL loss를 추가하며 샴 네트워크를 사용하여 보다 좋은 성능을 보였습니다.
Match-GAN
기존의 cGAN의 경우 학습데이터에 모두 label을 붙여주어야하는 수고가 필요했습니다. 그러나 pretext task로 label이 없는 데이터도 같이 학습시키는 방안으로 Match-GAN이 제안되었으며 생성된 이미지를 positive pair와 negative pair로 나눔으로써 보다 많은 양의 데이터를 학습할 수 있었고 이로인해 보다 좋은 성능을 나타낼 수 있었습니다.
어려운 내용임에도 불구하고 쉽세 좋은 강의 해주셔서 정말 감사합니다 :)
투빅스 14기 박준영
이번수업은 self-supervised learning으로 투빅스 14기 김민경님께서 진행해주셨습니다.
기존의 GAN은 image-to-image translation에서 object 변환에 문제가 있었다. 그래서 op-gan은 cyclegan 모형에 multi-task self-supervised를 추가하여 object변환 문제를 해결하고자 하였다.
op-gan은 패치로 원래의 이미지와 생성된 이미지를 나눈다, 그리고 2개의 패치 쌍을 random으로 input한다. 2개의 패치쌍의 상대적인 위치는 task를 supervision하는데 사용하고 출처정보는 도메인 분류에 사용한다.
multi-task self-supervised는 weight를 공유하는 2개의 인코더, content registration 부분, domain classification 부분으로 구성된다.
op-gan의 loss는 기존의 cyclegan loss+ self-supervised loss로 이루어지며 self-supervised loss는 content 왜곡을 최소하기 위한 loss와 cross-entropy loss로 이루어진다.
이러한 과정을 통해서 label로부터 supervision 없이 image-to-image translation에서 object문제를 해결할 수 있었다.
labelled data가 아주 적은 semi-supervised 상황에서 많은 cGAN을 training 하기 위해 self-supervised learning을 적용한 네트워크이다.
pretext task단계에서 labelled data의 space로 부터 분별 있는 label을 랜덤 샘플링해서 target label을 추출하고 target label과 labelled data의 분포와 같은 분포에서 나온 unlabelled data를 Generate input으로 넣어 새로운 이미지를 생성한다
G, D 모두에 대한 pretext task로 auxiliary match loss를 제안한다.
Self-supervised learning을 이용한 GAN 모델 OPGAN과 MatchGAN에 대해 배울 수 있었던 유익한 강의였습니다. 감사합니다.
투빅스 11기 이도연
Self-Supervised Learning과 관련된 논문 OP-GAN과 MatchGAN에 대한 강의로 기존에 공부했던 CycleGAN, CGAN에서 더 나아가 고민해 볼 수 있는 시간이었습니다. 감사합니다!!
투빅스 14기 한유진
Self-Supervised Learning과 관련된 새로운 GAN을 배워볼수 있었던 의미있는 강의였습니다. 중간중간 참고자료들을 많이 적어주셔서 공부하는데 큰 도움이 되었습니다. 좋은 강의 감사합니다!