Auto Encoder

princess·2022년 10월 8일
0

딥러닝

목록 보기
7/8

❤️ AutoEncoder란?

구조

입력과 출력이 같은 구조로 단순히 입력과 출력이 같은 신경망

  • 네트워크에 여러가지 방법으로 제약을 줌으로써 어려운 신경망을 생성
    • ex) 히든층을 입력층보다 작게하여 데이터를 압축, 입력 데이터에 노이즈를 추가 후 원본 입력을 복원할 수 있도록 네트워크를 학습 등

💛 AutoEncoder의 구조

  • Encoding

    • 데이터의 특징을 추출하여 데이터를 압축하고 차원을 감소시키는 역할
    • 기존 데이터의 특징을 표현하되 크기가 작아지니 차원 축소를 수행
  • Dedoding

    • Encoding을 통해 생성된 압축된 데이터를 해석하여 입력 데이터로 복원하는 역할
    • 복원 결과는 노이즈나 외부 제약에 의해 다양한 데이터가 생성

Manifold Learning

오토인코더의 가장 중요한 기능 중 하나는 매니폴드를 학습하는 것

💚 Manifold Learning이란?

고차원 데이터가 있을 때 고차원 데이터를 데이터 공간에 뿌리면 샘플들을 잘 아우르는 subspace가 있을 것이라는 가정에서 학습을 진행하는 방법

  • subspace : 비슷한 특징을 가지는 데이터 클래스를 의미 == Manifold

따라서, 비슷한 특징을 가지는 데이터로 이루어진 클래스는 특징 추출을 통해서 데이터 축소가 가능하다.

💙 목적

  1. 데이터 압축

  2. 데이터 시각화

  3. 차원의 저주 피하기

  4. 유요한 특징 추출

1. 데이터 축소

  • CNN을 기반으로 수행하고 컨볼루션을 사용하게 되면 컨볼루션의 특징에 따라 수행 될 때마다 필터의 적용에 따라 테이터의 크기가 작아진다.

2. 데이터 시각화

  • 매니폴딩을 잘 학습하게 되면 데이터를 시각적으로 표현하는데 쉬워진다.

  • 데이터에 대한 직관을 얻거나 결과물에 대한 해석이 쉬워짐

3. 차원의 저주 피하기

  • 데이터의 차원이 증가할 수록 해당 공간의 크기가 기하급수적으로 증가

  • 동일한 개수의 데이터의 밀도는 차원이 증가할 수록 급속도로 희박 따라서, 차원이 증가할 수록 데이터의 분포 분석 또는 모델 추정에 필요한 샘플 데이터의 개수가 기하급수적으로 증가⬆️

하지만 매니폴드는 고차원의 데이터의 밀도는 낮아지나 이들의 집합을 포함하는 저차원의 매니폴드가 존재 !!

  • 결국 고차원의 데이터를 잘 표현하는 매니폴드를 통해 샘플 데이터의 특징을 잘 파악할 수 있다는 것을 의미

4. 유요한 특징 추출

  • 고차원 공간 : B와 가까운 것은 A1
  • Manifold learning 공간 : B와 가까운 것은 A2

💜 차원 축소 방법

PCA

  • 가장 대표적인 차원 축소 알고리즘으로 주성분을 분석하는 방법

  • 데이터에 가장 가까운 초평면을 구한 다음 해당 데이터를 초평면에 투영

AutoEncoder(AE)

  • 입력과 출력의 크기가 같음

  • 입력 == 출력 => 비교사 학습 문제로 바꾸어서 해결 가능

  • 인코더 : 학습 데이터를 벡터로 표현

  • 디코더 : 최소한 학습데이터는 생성

Stacking AutoEncoder

  • 오토 인코더를 쌓아가면서 학습

Denosing AutoEncoder

  • 입력을 그냥 주는 것이 아닌 훈련 데이터에 노이즈를 추가

  • 사람이 생각했을 때 같은 수준이라고 생각되는 정도의 노이즈만 추가

  • 나온 결과 값들은 같은 매니폴드로 구분

  • 데이터를 생성하는 것 !!

profile
성장하는 머신러닝 엔지니어

0개의 댓글