티스토리 뷰
오토인코더(Autoencoder)는 비지도학습 유형의 딥러닝 모델 중 하나이며 입력된 데이터를 신경망에 통과시켜 똑같이 출력하는 기능을 한다. 입력 재건 자체보다는 입력을 잘 표현할 수 있는 은닉 표현(hidden representation)을 찾는 것을 목적으로 한다. 이를 통해 입력 크기를 더 적은 차원으로 요약할 수 있다. 유의미한 정보는 모든 가능한 경우의 극히 일부분만을 차지하며 집중되어있다는 다양체 가정이 모델의 가능성을 뒷받침한다.
은닉층의 노드를 증가시킨다면 당연히 입력 데이터를 완벽하게 표현할 수 있지만 이는 오토인코더를 사용하는 목적을 퇴색시킨다.(over-fitting) 물론 더 적은 노드를 사용하면 완벽하게 입력데이터를 묘사할 수 없을지 모르지만 그럼에도 어느 정도 입력 데이터의 특징을 추출해낼 수 있기 때문에 더욱 의미가 있다. 이를 uncomplete autoencoder(undercomplete autoencoder)라고 한다. 따라서 과적합을 일어나지 않도록 조치를 취해야 한다.
일반적으로 정규화(regularization)을 통해 은닉층의 너비를 조정한다. 비용함수(복원 오차)에 정규화항을 덧붙여 학습을 진행한다. 라소 스타일의 정규화를 시도한다면 은닉층에서 활성화될 노드를 선택할 수 있고 따라서 희소성을 부여할 수 있다.
오토인코더 중 Denoising autoencoder는 노이즈가 추가된 입력을 원래의 데이터로 복원하도록 하여 노이즈에 더욱 강건한 모델을 학습할 수 있다.
오토인코더의 오차는 데이터가 가지는 특성으로 생각할 수 있다. 다른 오차 값을 가지는 데이터가 입력된다면 그 데이터를 다른 형태의 데이터로 생각할 수 있다.(다양체) 여러 개의 은닉층을 쌓아 성능을 더욱 강화시킬 수 있거나 입력이나 출력의 특성에 따라 CNN, RNN을 응용할 수도 있다. 과거에 오토인코더는 신경망의 초기 가중치를 결정하는 데 사용되기도 하였다.(greedy layerwise pre-training)
'머신러닝 > 딥러닝' 카테고리의 다른 글
[머신러닝/딥러닝]RNN(Recurrent neural networks) (0) | 2021.08.24 |
---|---|
[머신러닝/딥러닝]CNN(convolutional neural networks) (0) | 2021.08.24 |
[머신러닝/딥러닝]딥러닝의 과적합과 과소적합 (0) | 2021.08.24 |
[머신러닝/딥러닝]딥러닝 및 다층 퍼셉트론(MLP) (0) | 2021.08.24 |
- Total
- Today
- Yesterday
- 백준
- 백트래킹
- 취미
- Push
- 영화
- 구현
- Git
- 구조체
- 너비우선탐색
- BFS
- 이분법
- 건이의 특제 떡국 끓이기
- 정렬
- BOJ
- 큐
- Verilog
- 재귀함수
- 영어 어휘
- gem5
- 메이플스토리
- 이진탐색
- 베릴로그
- C언어
- backtracking
- 완전탐색
- 알고리즘
- C++
- 스택
- 애니메이션
- recursive
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |