이 포스팅은 오토인코더의 모든것의 내용을 다량 참조하고 있습니다.
목차는 아래와 같습니다.
1. Manifold Learning & AutoEnocoder Basic
2. RBM for Stacked AutoEncoder
3. Stacked AutoEncoder
4. Sparse AutoEncoder
5. Variational AutoEncoder
6. Application in Medical Image
1. Manifold Learning & AutoEncoder Basic
먼저 Curse of Dimensionality(차원의 저주)를 설명드리겠습니다.
Curse of Dimesnionality란?
차원이 증가할수록 모델 추정에 필요한 Data의 수가 기하 급수적으로 증가한다는 것입니다.
이를 잘 설명해주는 그림을 보시면 이해가 편하실 겁니다.
1차원 (Position 10)이어서 데이터가 10개 있으면 되지만 2차원일때는 Positiond이 100(10x10)이 됨으로써 필요한 데이터가 늘어나게 됩니다. 또한 3차원일때는 1000까지 증가함으로써 필요한 데이터가 더 늘어납니다. 보통 우리가 다루는 2D이미지의 경우 2차원 + 1차원(색)으로 가게 되면 3차원이지만 Medical Image는 3차원에 만약 Time까지 고려하면 차원의 수는 더 커지게 됩니다.
이런 부분을 해소하기 위한 방법으로 Manifold Learning이 사용될 수 있습니다.
Maifold Learning 이란?
Projection을 통해(Mapping!) data의 특성을 유지하면서 차원을 축소하는 것.
(가정 : 고차원의 데이터가 있을 때 이를 잘 아우르는 저차원의 manifold가 있다)
위 이미지에서 Manifold subspace위의 v2 축을 따라 4가 회전하는 것을 볼 수 있습니다. 즉 회전하는 Feature를 찾은 것입니다.
Manifold Learning을 통해 이렇게 Feature를 작동할 수 있는 축을 자동으로 찾을 수 있습니다. (왜냐면 Unsupervised Learning 이기 때문입니다.)
어디에 유용한가?
- Data Copression
- Data Visualization
- Curse of Dimensionality
- Discovering most impoprtant features
Autoencoder Basic
위에서 Manifold Learning을 설명드린 것은 AutoEncoder가 이러한 방식을 사용하기 때문입니다.
아래 그림은 AutoEncoder의 Basic Model입니다.
각각의 화살표에서 진행되는 과정을 Encoder Part / Decoder Part라고 생각하시면 됩니다.
Encoder Part에서 Input x는 차원이 축소됩니다.
그리고 Decoder part에서 다시 차원이 확장되면 Output이 나오는 구조입니다. Loss fucntion을 Decoder의 Output z(Reconstructed Output)와 실제 Input x와의 차이로 둔다면 이를 최소화하는 방향으로 학습이 진행됩니다.
여기서 y의 경우 latent space라고 부릅니다.
(만약 w = w'인 경우라면 tied weights라고 부릅니다.)
이 경우 Loss function Binary input이라면 entropy를 사용할 것이고 Real-value input이라면 MSE를 보통 사용합니다.
'Deep Learning' 카테고리의 다른 글
Autoencoder Basic 부터 응용까지 (2) (0) | 2021.07.20 |
---|