일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 매일매일
- SQL
- 노마드코더
- 코드스테이츠
- pandas
- 선형회귀
- 꾸준히
- 자료구조
- 파이썬
- 2021
- bootcamp
- 부트캠프
- 기초통계
- Codestates
- Ai
- 빅데이터
- yolo
- python
- JavaScript
- 성실히
- 리뷰
- leetcode
- 열심히
- MYSQL
- 코딩테스트
- 재미져
- 딥러닝
- selenium
- 주간보고
- 독서
- Today
- Total
코딩일기
[Deep Learning] AutoEncoder 무엇인가?(feat. Andrew Ng) 본문
[ 왜 AutoEncoder를 사용하는가? ]
-. 2000년 초반 AE가 발명되기 전, 차원을 축소하는 방법론들은 Neighborhood based training을 기반으로 하였다.
-. 고차원의 데이터는 공간상에서 특정한 manifold(위치정보)를 가지게 되는데, 이때 데이터 간의 유클리디안 거리는 유의미한 거리 개념이 아닐 가능성이 높다는 사실을 관측하게 되었다. (아래 그림 참조)
- . 예를 들어, 아래 그림의 왼쪽 그림처럼 데이터는 특정한 manifold(위치정보)를 가지고 있다.
-. 이를 PCA 등 기존의 차원축소 방법은 데이터의 위치정보를 포함하지 못하는 단점이 있다.
-. 또한, 기존에는 label이 없이도 이미지를 일정 크기의 벡터로 자동 표현할 수 있는 방법이 없었다.
-. 이러한 한계점을 극복하기 위해 Autoencoder를 사용하게 된다. (CNN 등이 발명되기 이전 상황)
-. Autoencoder는 encoder, decoder 시, train data에 대한 minium 성능이 보장된다.
-. 네트워크 파라미터를 초기화하는데 많이 사용되었다.
[ AutoEncoder정의 ]
데이터를 효율적으로 인코딩하여 데이터를 압축하고 가능한 원래 입력에 가까운 표현으로 데이터를 디코딩(재구성)하는 비지도학습 인공신경망입니다. 또한 AE는 입력과 출력 값이 동일한 값을 만들어내는 네트워크 구조를 가지고 있으며, 구조적으로 데이터의 노이즈를 무시하는 방법을 학습하여 데이터의 차원을 줄인다는 특징이 있습니다.
[ stacked AutoEncoder정의 ]
-. stacked AutoEncoder는 Autoencoder와 다르게 layer by layer로 초기화(initialization)을 진행을 하며,
-. 각 층별로 이전 데이터 값으로 복원할 수 있는 w(가중치)를 업데이트하며 latent layer까지 학습을 진행한다.
-. latent layer를 다시 weight transpose를 통해서 데이터를 출력하는 일련의 과정을 stacked Autoencoder라한다.
[ 학습순서 ]
1) unsupervised learning
2) manifold learning
-. training data의 분포가 특정지역에 잘 분포되어 있는 어떠한 subspace를 manifold라 한다.
-. 이를 찾는 과정을 manifold learning이라고 한다.
-. 인코더 파트에서 dimension reduction이 이루어지고,
-. dimension reduction는 아래와 같이 4가지 의미를 갖습니다.
* 1. Data compression, 2. Data visualization, 3. Curse of dimensionality, 4. Discovering most important features
3) Generative model learning : 디코더 파트에서 압축된 latent layer로 이미지를 생성하므로 generative model learning 실행한다.
4) ReconstructionLoss: 디코더의 성능과 출력이 원래 입력에 얼마나 가까운지를 측정하는 방법입니다.
5) Backpropagation : 위와 같이 훈련된 네트워크는 Loss함수를 최소화하기 위해 역전파를 진행하게 된다.
[ Stacked AutoEncoder의 디코더에서 transpose w를 왜 사용하는걸까요? ]
-. 인코더 시, 가중치를 랜덤하게 설정하여 노이즈가 포함될 수 밖에 없는 이를 역전파를 이용하여 가중치를 업데이트해주게 된다.
-. 위와 같은 방법으로 충분히 가중치를 업데이트하며 학습하면 해당 이미지에 중요한 정보만 담고 있는 latent layer를 생성할 수 있다.
-. 이렇게 압축한 정보를 다시 우리가 익숙할 수 있는 형태로 바꿔주기 위해서 w.transpose를 사용하게 됩니다.
'Code > 딥러닝(NL)' 카테고리의 다른 글
[Deep Learning] 3. 역전파와 경사하강법 (0) | 2021.05.03 |
---|---|
[Deep Learning] 1. 딥러닝 개념, 개요, 구성, 활성화함수 (0) | 2021.05.03 |
[Deep Learning] 2. 선형모델과 비선형모델은 무엇인가? (0) | 2021.05.03 |
[Deep Learning] Image Segmentation, Augmentation, Recognition(feat. code states) (0) | 2021.04.20 |
[Deep Learning] YOLO (0) | 2021.04.19 |