일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 쿠버네티스
- Kaggle
- 타입스크립트
- Machine Learning
- 클러스터링
- r
- LDA
- python
- 머신러닝
- 심층신경망
- 빅쿼리
- Kubernetes
- 파이썬
- 대감집 체험기
- 구글
- 대감집
- frontend
- 차원 축소
- 캐글
- docker
- do it
- bigquery
- DBSCAN
- 프론트엔드
- ADP 실기
- 최적화
- 리액트
- ADP
- React
- TooBigToInnovate
- Today
- Total
No Story, No Ecstasy
오토인코더 (Autoencoder) 본문
오토인코더
. 레이블되어 있지 않은 훈련 데이터를 사용해서 입력 데이터의 효율적인 표현인 코딩을 학습할 수 있는 인공 신경망
. 일반적으로 출력이 입력보다 훨씬 낮은 차원을 가지므로 차원 축소에도 유용하게 사용됨
. 더 중요한 점은 강력한 특성 추출기로 활용할 수도 있다는 것
. 훈련 데이터와 매우 비슷한 새로운 데이터를 생성할 수 있다. (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 |