No Story, No Ecstasy

오토인코더 (Autoencoder) 본문

Data Science Series

오토인코더 (Autoencoder)

heave_17 2021. 5. 30. 15:45

오토인코더

  . 레이블되어 있지 않은 훈련 데이터를 사용해서 입력 데이터의 효율적인 표현인 코딩을 학습할 수 있는 인공 신경망

  . 일반적으로 출력이 입력보다 훨씬 낮은 차원을 가지므로 차원 축소에도 유용하게 사용됨

  . 더 중요한 점은 강력한 특성 추출기로 활용할 수도 있다는 것

  . 훈련 데이터와 매우 비슷한 새로운 데이터를 생성할 수 있다. (Generative Model)

  . 대표적인 방법

    1. 은닉층의 뉴런 수를 입력층보다 적게 제한한다

    2. 입력에 잡음을 추가한 후 원본 입력을 복원할 수 있도록 네트워크를 훈련시킨다.

     -> 단순히 입력을 바로 출력으로 복사하지 못하게 막고, 데이터를 효율적으로 표현하는 방법을 배우도록 강제시킴

  . 항상 입력을 내부 표현으로 바꾸는 인코더와 내부 표현을 출력으로 바꾸는 디코더로 구성되어 있다.

1. 과소완전 선형 오토인코더로 PCA 수행하기

  . 오토인코더가 선형 활성화 함수만 사용하고, 비용 함수가 MSE라면, 이는 결국 주성분 분석이다.

2. 적층 오토인코더

  . 여러 개의 은닉층을 가진 경우를 적층(or 심층) 오토인코더라고 한다.

  . 적층 오토인코더의 구조는 전형적으로 가운데 은닉층을 기준으로 대칭이다.

  . 인코더와 디코더의 가중치를 묶으면 훈련 속도를 높이고 과대적합의 위험을 줄일 수 있다.

  . 한 번에 전체 오토인코더를 훈련시키는 것보다 한 번에 하나를 훈련하고 쌓아올리는 것이 훨씬 빠르다.

3. 적층 오토인코더를 사용한 비지도 사전훈련

  . 모든 데이터를 사용해 오토인코더 훈련하기

  . 오토인코더의 하위층을 재사용해 실제 문제를 해결하기 위한 신경망을 만들기

  . (오토인코더를 중요 특성 추출 역할로 사용)

  . 딥러닝의 부흥이 온 것은 2006년에 비지도 방식으로 DNN을 사전훈련시키는 것을 발견한 덕분

  . 오토인코더를 강제하기 위한 제한은 여러가지 방법이 있다.

    1. 잡음제거 오토인코더: 입력에 잡음을 추가하고, 노이즈가 없는 원본 입력을 복원하도록 훈련시킨다.

    2. 희소 오토인코더: 비용함수에 적절한 항을 추가하여 코딩층에서 활성화되는 뉴런 수를 감소시킨다.

4. 변이형 (Variational) 오토인코더

  . 확률적 오토인코더이다. 즉, 훈련이 끝난 후에도 출력이 부분적으로 우연에 의해 결정된다.

  . ***생성 오토인코더이다. 마치 훈련 세트에서 샘플링된 것 같은 새로운 샘플을 생성할 수 있다.

  . 입력층에 대한 코딩을 바로 만드는 대신, 인코더는 평균 코딩과 표준편차를 만든다.

  . 실제 코딩은 코딩된 평균과 표준편차를 가지는 가우시안 분포에서 랜덤하게 샘플링된다.

  . 디코더는 보통처럼 디코딩한다.

 

  . 비용 함수는 두 부분으로 구성된다. (일반적인 재구성 손실 + 잠재 변수 손실)

    . 일반 재구성 손실: 교차 엔트로피 등

    . 잠재 변수 손실: 가우시안 분포에서 샘플된 것 같은 코딩을 가지도록 오코인코더를 강제

4. 다른 오토인코더들

  . WTA 오코인코더

    . 훈련하는 동안 모든 뉴런의 활성화를 계산한 후, 훈련 배치에서 각 뉴런에 대해 최대 k% 활성화만 보존

    . 자연스럽게 희소 코딩을 만든다.

  . GAN (Generative Adversarial Network)

    . 판별자 네트워크가 생성자 네트워크가 만든 가짜 데이터와 실제 데이터를 구분하도록 학습시킴

    . 경쟁을 통해 매우 현실적인 가짜 데이터와 안정적인 코딩을 생성하도록 만든다.

'Data Science Series' 카테고리의 다른 글

Attention 메커니즘  (0) 2021.05.30
자연어 처리 - Transformer, Bert, GPT-3  (0) 2021.05.30
심층 신경망 (DNN) 훈련  (0) 2021.05.29
토픽 모델링 - LDA, Mallet LDA, Guided LDA  (0) 2021.05.27
HDBSCAN (Hierarchical DBSCAN)  (0) 2021.05.25