참고자료
https://excelsior-cjh.tistory.com/187
https://nlp.jbnu.ac.kr/AI2019/slides/ch05-5.pdf
17. 오토인코더와 GAN을 사용한 표현 학습과 생성적 학습
1. 효율적인 데이터 표현: 오토인코더
- 인코더(인지 네트워크), 디코더(생성 네트워크)
- 출력(재구성)
- 과소완전
2. 과소완전 선형 오토인코더로 PCA 수행하기
- 오토인코더에서 선형 활성화 함수 & 비용함수: MSE -> = 주성분 분석(PCA)와 같음
과소완전 오토인코더
1) 적층(stacked) 오토인코더(심층(deep) 오토인코더)
: 은닉층 여러개
- 오토인코더가 너무 강력해지면 과대적합이 일어나고 일반화 가능성이 떨어진다.
- 샌드위치 구조(대칭)
- 샘플과 특성이 많은 대용량 데이터셋을 다룰 수 있음
비지도 사전훈련
- 많은 경우, 레이블이 된 데이터는 적을 수 밖에 없다.
- 모든 데이터를 사용하여 오토인코더 훈련 -> 은닉층의 파라미터를 복사(하위층 재사용) 하여 레이블된 데이터에서 분류기 훈련
stacked 오토인코더 훈련 기술
1 가중치 묶기
- 오토인코더가 완벽하게 대칭일 경우: 인코더와 디코더 각각의 가중치를 묶는다
: 훈련 속도 증가, 과대적합 감소
2 한 번에 오토인코더 한 개씩 훈련하기
- greedy layerwise training
- 첫번째 오토인코더 훈련: 입력을 재구성하도록 학습하고, 전체 훈련세트를 인코딩하여 압축된 새 훈련 세트를 만듦
- 새 훈련 세트에서 두 번째 오토인코더 훈련
- 모든 오토인코더를 사용해 전체 네트워크를 만듦(즉, 각 오토인코더의 은직층을 먼저 쌓고, 그 다음 출력층을 반대로 쌓음)
2) 합성곱 오토인코더
- 이미지에서 CNN을 썼듯이 오토인코더도 마찬가지. => 합성곱 오토인코더 사용
- 인코더: CNN. 차원을 줄이고 깊이(feature map의 개수 늘리기) -> 디코더: 차원과 깊이를 원래대로
3) 순환 오토인코더
- 시퀀스 데이터.
- 인코더: sequence-to-vector RNN(입력 -> 마지막만 출력) -> 디코더: vector-to-sequence(첫번째만 입력 -> 출력)
3. 과대완전 오토인코더
1) 잡음 제거 오토인코더
: 일부러 입력 데이터에 잡음을 주고, 이를 제거하여 원본을 복원하도록 훈련
- 잡음: 가우시안 잡음 or dropout 층
- 활용: 데이터 시각화, 비지도 사전훈련, 이미지에서 잡음 제거
2) 희소 오토인코더
: 일부러 활성화되는 뉴런 수에 제한을 둠 -> 중요한 특성만 추출됨
- 훈련 반복마다 실제 희소 정도를 측정하여, 타깃의 희소 정도와 다르면 모델에 벌칙을 부과. => 희소 소실(sparsity loss)
4. 변이형 오토인코더 ⭐
: 지금까지의 오토인코더와는 다르다!
- 확률적 오토인코더
- 생성 오토인코더
- 과정: ??
: 인코더가 주어진 입력에 대한 코딩을 바로 만드는 대신, 평균 코딩과 표준편차를 만듦
- 비용함수: 재구성 손실(입력 재생산), 잠재 손실(가우시안 분포에서 샘플링 된 값과 같도록)
- 시맨틱 보간: 이미지 보간
9. 생성적 적대 신경망
: 신경망을 서로 겨루게 하고 경쟁을 통해 신경망을 향상시킴
- 과정
: 1. 판별자 훈련: 생성자가 가짜이미지를 만들면 이를 진짜 이미지와 합쳐서 판별자가 훈련
: 2. 생성자 훈련: 생성자가 가짜이미지를 만들고, 판별자가 판별. 이때 진짜 이미지를 추가하지 않은채로 레이블을 1(진짜)로 세팅. 이러면 생성자가 '진짜네?'라고 판단하게 됨. 즉 이러면 진짜 같은 가짜 이미지를 만드는 방법을 훈련하게 됨
- 내시 균형: 어짜피 쟤네도 수정 안해? 나도 수정 안해!
- 모드 붕괴: 생성자의 출력의 다양성이 줄어듦. 즉 어떤 클래스에서 그럴듯한 가짜를 만들다가.. 다른 클래스 만드는걸 잊어버리고..
-> 경험 재생, 미니배치 판별
심층 합성곱 GAN(DCGAN)
ProGAN
StyleGAN
궁금증
- 678쪽. 오토인코더가 너무 강력해지면 과대적합이 일어나고 일반화 가능성이 떨어지는 이유는 무엇일까요? 차원축소가 잘 될수록 좋은거 아닌가요?
1-2. 681쪽 '네트워크가 너무 강력하면 데이터에서 어떤 유익한 패턴을 학습하지 못하고 완벽한 재구성 이미지를 만들것입니다'에서 '완벽한' 이미지란 무엇일까요?
-
694쪽. 변이형 오토인코더가 평균과 표준편차를 만들면 코딩이 랜덤하게 선택된다는게 어떤 뜻일까요? 즉 오토인코더가 특정 평균과 표준편차를 만들었다면, 그 값들은 가우시안 분포에서 랜덤하게 샘플링된 값으로 취급한다는걸까요? 그리고 이때의 이점은 무엇을까요? 이렇게 하면 입력 데이터에 변형을 초래하는게 아닌가요?
2-2. 변이형 오토인코더의 작동원리 자체가 넘나 어렵..
-
희소 오토인코더