AI, 딥러닝, 머신러닝

오토인코더(Autoencoder)

Mulenga 2023. 2. 9. 07:18
728x90

오토인코더 개념

 

  오토인코더는 대표적인 비지도 학습을 위한 인공신경망 구조 중 하나이다. 비지도 학습은 어떤 값을 예측하거나 분류하는 것이 목적인 지도 학습과는 다르게 데이터의 숨겨진 구조를 발견하는 것이 목표인 학습 방법이다.

  구체적으로 오토인코더는 출력층의 노드 개수와 입력층의 노드 개수가 동일한 구조의 인공신경망이다.

 

  오토인코더의 출력은 원본 데이터를 재구축한 결과가 된다. 그렇다면 이런 데이터 재국축을 어떤 용도로 활용할 수 있을까?

 

  오토인코더의 핵심은 재구축된 출력층의 출력값이 아니라, 은닉층의 출력값이다. 오토인코더의 구조를 자세히 보면 은닉층의 노드 개수가 입력층과 출력층의 노드 개수보다 적다는 사실을 알 수 있다. 따라서 은닉층은 더 작은 표현력으로 원본 데이터의 모든 특징들을 학습해야 한다. 결과적으로 은닉층의 출력값은 원본 데이터에서 불필요한 특징들을 제거한 압축된 특징들을 학습하게 된다.

 

 

오토인코더의 장점

 

  예를 들어, 우리가 어떤 데이터로부터 이 데이터가 나타내는 동물이 개인지 고양이인지를 예측해야하만 하는 상황을 가정해보자. 이때 데이터로부터 주어진 동물의 특징은 다음과 같이 4가지라고 가정해보자.

 

데이터의 구성 : ‘동물의 길이, 동물의 몸무게, 동물 주인의 나이, 동물 주인의 몸무게’

 

  이 데이터로부터 이 동물이 개인지 고양이인지를 분류하고자 하는 경우를 생각해보면, ‘동물 주인의 나이, 동물 주인의 몸무게’의 2개의 특징은 이 동물이 개인지 고양이인지를 분류하는데 도움이 되지 않는 잉여특징임을 알 수 있다. 따라서 ‘동물의 길이, 동물의 몸무게’의 2개의 특징만을 이용해서 분류를 수행하는 것이 합리적 일 것이다.

  오토인코더 은닉층의 출력값은 학습을 통해서 이 과정을 자동적으로 수행하고 남은 특징들이다. 즉 오토인코더 은닉층의 출력값은 위의 가정에서 ‘동물 주인의 나이, 동물 주인의 몸무게’라는 불필요한 특징들을 자동적으로 제거하고 남은 ‘동물의 길이, 동물의 몸무게’ 2개의 특징만을 가지고 있을 것이다.

이렇게 압축된 특징을 나타내는 은닉층의 출력값을 원본 데이터 대신에 분류기의 입력으로 사용한다면 더욱 좋은 분류 성능을 기대할 수 있다.

 

 

 

'AI, 딥러닝, 머신러닝' 카테고리의 다른 글

ChatGPT 소개(1)  (0) 2023.02.22
TensorFlow 2.0이란?  (0) 2023.02.13
컨볼루션 신경망(CNN)  (0) 2023.02.08
인공신경망(2)  (0) 2023.02.07
인공 신경망 (1)  (0) 2023.02.06