1. 색상 왜곡에서 PCA(주성분 분석)를 사용한 방법
우선, PCA는 중요한 축을 찾는 것이다. 이 중요한 축(PCA 1st)은 축의 방향으로 데이터가 넓게 퍼져있다는 것이다. 그 축을 기준으로 데이터가 다양한 특징을 가지고 있다는 것이다. 그리고 다음 축(PCA 2nd)은 PCA 1st를 직교하는 축이 된다.
이제 PCA를 이용한 색상 왜곡을 해보자. PCA를 이용한 색상 왜곡에서 중요한 핵심은 RGB 각각의 색상을 독립적인 특징으로 보고, 이들 간의 상관관계를 통해 새로운 축을 정의하는 것이다.
1. 색상의 특징 찾기
R, G, B를 각각 별개의 특징으로 보고, 이 세가지 색상이 어떻게 함께 변하는지 살펴보면서 서로 어떻게 영향을 주는지 보면서 색상의 중요한 변화를 알아낸다.
2. 가장 중요한 변화 방향 고르기(주성분 축 고르기)
데이터를 보면 색상이 여러 방향으로 퍼져 있지만, 그 중에서도 데이터가 가장 넓게 퍼지는 방향을 찾으면 색상의 주요 특성을 잘 보여줄 수 있다.
3. 색상 왜곡하기
이렇게 찾은 축을 기준으로 RGB 색상을 다시 정렬하거나 조정한다.
2. 요즘에 사용하는 데이터 증강 기법(믹스 패치)
믹스 패치란 이미지 Object detection을 통해서 분류하려는 물체를 잘라 새로운 배경에 합성해서 새로운 데이터를 만드는 방식이다.
3. 3x3 필터 2개와 5x5 필터가 바라보는 데이터의 양은 같은데 가중치를 어떻게 비교하나?(Easy 버전)
3x3 = 9인 필터 2개가 있으니 가중치는 18개이고, 5x5 = 25인 필터 1개가 있으니 가중치는 25개이므로 5x5가 더 많은 가중치를 필요로 한다.
4. 1x1 필터
1x1 필터의 핵심은 depth를 조정해서 데이터의 특징을 선택적으로 추출하는 것이다. 1x1 필토로 특징을 추출하면 이미지의 폭과 넓이는 유지한채, 각 픽셀에서의 채널 수를 원하는 대로 바꿀 수 있게 된다.
예를 들어, RGB 이미지의 경우 채널이 3(빨강, 초록, 파랑)개이다. 여기에 1x1 컨볼루션을 적용할 때 필터 개수를 10으로 설정하면, 결과 이미지의 각 픽셀은 10개의 채널 값을 가지게 된다. 이때 필터 개수는 새로운 채널 수를 결정하게 된다.
다만, 1x1 필터는 이미지의 폭과 넓이가 유지되기 때문에 객체의 형태나 위치 정보를 분석하기에는 적합하지 않다. 따라서, 채널 간의 관계를 조정하는 데에만 사용된다.
5. Feature map과 Image
이미지에 필터와 내적을 해서 Feature map 나오게되고 또 그 Feature map에 필터와 내적에서 Feature map이 나오기 때문에 Feature map과 이미지는 같은 의미로 봐도 된다.
6. 밀도추정이란?
밀도 추정이란 데이터가 어떻게 분포되어 있는지 파악하는 작업이다. 이를 통해서 특정 값에 데이터가 얼마나 밀집해 있는지, 또 다른 값에서는 얼마나 드문지 알아낼 수 있다. 이 과정을 통해 데이터의 전체적인 분포 형태와 데이터가 나타날 확률을 예측하게된다.
학생 성적이 0부터 100점까지 있다고 가정할 때 평균이 50이고 분산이 10이라면 위의 이미지와 같은 정규 분포를 그릴 수 있다. 이게 바로 밀도 추정의 간단한 예시이다.
따라서, 위 정규 분포에서 특정 점수대를 샘플링하면, 생성된 데이터는 실제 성적과 비슷한 분포를 따르게 된다. 이게 바로 밀도 추정을 생성 모델에 사용한 간단한 예시이다.
7. AutoEncoder란?
AutoEncoder란, Encoder를 통해서 원본 이미지에 대한 특징을 압축시키고, 이걸 다시 Decoder에게 전달해서 Decoder는 해당 특징을 이용해서 다시 원본 이미지를 생성하는 것이다.
8. Conv Layer로 나온 Feature와 AutoEncoder에서 나온 Feature는 서로 뭐가 다를까?
Conv Layer의 Feature는 이미지 분류를 위한 Feature이고, AutoEncoder에서 나온 Feature는 원본 이미지 생성을 위한 것이다.
9. VAE(Variational Autoencoders)이란 무엇인가?
1. 입력 데이터로 넣으면 해당 데이터의 특징마다 평균과 분산을 통해서 정규 분포가 만들어지게 된다.
2. 학습 데이터와 비슷하면서도 새로운 데이터를 생성하기 위해서, 각 특징의 정규 분포에서 값을 무작위로 샘플링한다. 이렇게 샘플링으로 구한 값은 원본 데이터와 비슷하지만 완전히 같지 않는 값들이다.
3. 샘플링한 값을 디코더에 넣어 데이터를 복원하면 학습 데이터의 특징을 따르지만 새로운 형태의 이미지가 생성된다.
10. GAN에서 real과 fake의 Loss 값의 의미
GAN에서 D(x)는 출력 값인데 1에 가까울수록 실제 이미지라고 판단하고, 0에 가까울 수록 가짜 이미라고 판단한다.
따라서, Real에서 Loss가 저 수식인 이유는 D(x)가 1에 가까울 수록 Loss 값이 0으로 수렴하기 때문이고, Fake에서 저 수식인 이유는 D(x)가 1에 가까울 수록 Loss가 올라가야하기때문에 1 - D(x)를 수식으로 사용한 것이다.
이 말이 이해가 가지않는다면 위의 그래프와 실제 값을 넣어서 비교해봐라.
'CVLab > cs231n (2016)' 카테고리의 다른 글
cs231n - lecture11(CNNs in practice) (0) | 2024.10.27 |
---|---|
2024.10.11 Q&A (1) | 2024.10.11 |
cs231n - lecture10(RNN) (1) | 2024.10.09 |
cs231n - lecture09(CNN의 시각화 및 이해) (5) | 2024.10.06 |
2024.10.04 Q&A (0) | 2024.10.04 |