오토인코더란 무엇인가요?
IBM watsonx.ai 살펴보기
머신러닝의 추상적 표현

발행일: 2023년 11월 23일
작성자: 데이브 버그만(Dave Bergmann), 콜 스트라이커(Cole Stryker)

오토인코더란 무엇인가요?

오토인코더는 입력 데이터를 주요 특징으로 효율적으로 압축(인코딩)한 후 이 압축된 표현에서 원본 입력을 재구성(디코딩)하도록 설계된 일종의 신경망 아키텍처입니다.

자동 인코더는 비지도 머신러닝을 사용하여 입력 데이터의 잠재 변수, 즉 직접 관찰할 수는 없지만 근본적으로 데이터 배포 방식에 영향을 미치는 숨겨진 변수 또는 무작위 변수를 발견하도록 학습됩니다. 주어진 입력 데이터 세트의 잠재 변수를 총칭하여 잠재 공간이라고 합니다. 학습 과정에서 오토인코더는 원본 데이터를 가장 정확하게 재구성하는 데 사용할 수 있는 잠재 변수를 학습합니다. 따라서 이 잠재 공간 표현은 원본 입력에 포함된 가장 중요한 정보만을 나타냅니다.

대부분의 오토인코더 유형은 데이터 압축, 이미지 노이즈 제거, 이상 감지 및 안면 인식과 같은 특징 추출과 관련된 인공 지능 작업에 사용됩니다. 변이형 오토인코더(VAE) 및 적대적 오토인코더(AAE)와 같은 특정 유형의 오토인코더는 이미지 생성 또는 시계열 데이터 생성과 같은 생성 작업에 사용할 수 있도록 오토인코더 아키텍처를 적용합니다.

IBM watsonx.ai 둘러보기

AI 빌더가 AI 모델을 훈련, 검증, 조정 및 배포할 수 있는 차세대 엔터프라이즈 스튜디오입니다. IBM watsonx.ai를 무료로 사용해 보세요.

관련 내용

IBM 뉴스레터 구독하기

오토인코더와 인코더-디코더 비교

모든 오토인코더 모델에는 인코더와 디코더가 둘 다 포함되어 있지만, 모든 인코더-디코더 모델이 오토인코더인 것은 아닙니다.

인코더-디코더 프레임워크에서 인코더 네트워크는 입력 데이터의 중요한 특징을 추출하고 디코더 네트워크는 추출된 특징 데이터를 입력으로 사용합니다. 이미지 분할과 같은 컴퓨터 비전 작업에 사용되는 컨볼루션 신경망(CNN) 아키텍처나 시퀀스 투 시퀀스(seq2seq) 작업에 사용되는 순환 신경망(RNN) 아키텍처와 같은 다양한 딥러닝 모델에 사용됩니다.

대부분의 인코더-디코더 모델 애플리케이션에서 신경망의 출력은 입력과 다릅니다. 예를 들어, U-Net과 같은 이미지 분할 모델에서 인코더 네트워크는 입력 이미지에서 특징 데이터를 추출하여 다양한 픽셀을 의미론적으로 분류합니다. 디코더 네트워크는 해당 특징 맵과 픽셀별 분류를 사용하여 이미지의 각 객체 또는 영역에 대한 세그멘테이션 마스크를 구성합니다. 이러한 인코더-디코더 모델의 목표는 시맨틱 클래스에 따라 픽셀에 정확하게 레이블을 지정하는 것입니다. 이 모델은 지도 학습을 통해 훈련되며, 인간 전문가가 레이블을 지정한 이미지의 '근거가 되는 진실' 데이터 세트에 대한 모델의 예측을 최적화합니다.

오토인코더 자체 입력 데이터를 재구성하도록 지도 학습을 통해 훈련된 인코더-디코더 아키텍처의 특정 하위 집합을 말합니다.

오토인코더는 레이블이 지정된 훈련 데이터에 의존하지 않기 때문에 지도 학습 방법으로 간주되지 않습니다. 모든 비지도 학습 방법과 마찬가지로 오토인코더는 레이블이 지정된 학습 데이터에 나타난 알려진 패턴을 예측하는 것이 아니라 레이블이 지정되지 않은 데이터에서 숨겨진 패턴을 발견하도록 훈련됩니다. 그러나 대부분의 비지도 학습 모델과는 달리 오토리코더는 원본 입력 자체(또는 일부 수정된 버전)에 대한 출력을 측정할 근거가 되는 진실을 가지고 있습니다. 이러한 이유로 '자기 지도 학습', 즉 오토인코더로 간주됩니다.

오토인코더는 어떻게 작동하나요?

오토인코더는 입력 데이터가 디코더에 도달하기 전에 '병목 지점'을 통과시켜 잠재적 변수를 발견합니다. 따라서 인코더는 원본 입력을 정확하게 재구성하는 데 가장 도움이 되는 정보만 추출하여 전달하는 방법을 학습해야 합니다.

다양한 종류의 오토인코더가 특정 목표와 데이터 유형에 가장 적합하도록 인공 신경망의 특정 요소를 변경하지만, 모든 자동 인코더는 다음과 같은 주요 구조 요소를 공유합니다.

인코더차원 감소를 통해 입력 데이터의 압축된 표현을 인코딩하는 레이어로 구성됩니다. 일반적인 오토인코더에서 신경망의 숨겨진 레이어는 입력 레이어보다 점점 더 적은 수의 노드를 포함하며 데이터가 인코더 레이어를 통과할 때 더 작은 차원으로 '압축'되는 과정을 통해 압축됩니다.

병목 현상(또는 '코드')은 인코더 네트워크의 출력 레이어이자 디코더 네트워크의 입력 레이어로, 입력을 가장 압축적으로 표현한 것입니다. 오코인코더의 설계 및 학습의 기본 목표는 입력 데이터를 효과적으로 재구성하는 데 필요한 최소한의 중요한 특징(또는 차원)을 발견하는 것입니다. 그런 다음 이 계층에서 나타나는 잠재 공간 표현, 즉 코드가 디코더에 입력됩니다.

디코더는 인코딩된 데이터 표현을 압축 해제(또는 디코딩)하여 궁극적으로 데이터를 인코딩 전의 원본 형태로 재구성하며, 점진적으로 더 많은 수의 노드가 있는 숨겨진 레이어로 구성됩니다. 그런 다음 이렇게 재구성된 출력을 '근거가 되는 진실(대부분의 경우 단순히 원본 입력)'과 비교하여 오토인코더의 효율성을 측정합니다. 출력과 근거 진실의 차이를 재구성 오류라고 합니다.

오토인코더의 일부 애플리케이션에서는 훈련 후 디코더를 폐기할 수 있습니다. 이러한 경우 디코더의 유일한 목적은 인코더를 훈련한 다음 다른 신경망의 구성 요소로 사용하는 것입니다. 이때 디코더는 생성적 적대 신경망(GAN)에서 판별자와 유사한 역할을 합니다. 많은 오토인코더에서 디코더는 훈련 후에도 목적을 계속 수행합니다. 디코더가 VAE에서 새로운 데이터 샘플을 출력하는 것이 한 예입니다.

주성분 분석(PCA)과 같은 다른 차원 기법에 비해 오토인코더를 사용할 때의 주요 이점 중 하나는 오토인코더가 복잡한 비선형 상관관계를 포착할 수 있다는 점입니다. 따라서 오토인코더에 사용되는 활성화 함수는 일반적으로 시그모이드 함수와 같은 비선형 함수입니다.

오토인코더의 다양한 유형은 이 구조를 다양한 작업과 데이터 유형에 더 적합하도록 조정합니다. 오토인코더 설계에는 CNN 기반 아키텍처, 장단기 메모리와 같은 RNN 기반 아키텍처, 트랜스포머 아키텍처 또는 간단한 기본 피드 포워드 신경망과 같은 적절한 유형의 신경망을 선택하는 것 외에도 여러 하이퍼파라미터가 수반됩니다.

  • 코드 크기: 병목 현상의 크기에 따라 압축할 데이터의 양이 결정됩니다. 코드 크기는 정규화 용어로도 사용할 수 있습니다. 코드 크기를 조정하는 것은 과적합 또는 과소적합을 방지하는 한 가지 방법입니다.
  • 레이어 수: 오토인코더의 깊이는 인코더와 디코더의 레이어 수로 측정됩니다. 깊이가 클수록 복잡성이 커지고, 깊이가 낮을수록 처리 속도가 빨라집니다.
  • 레이어당 노드 수: 일반적으로 노드(또는 '뉴런')의 수는 인코더 레이어마다 감소하고 병목 지점에서 최소값에 도달하며 디코더 레이어의 각 레이어마다 증가하지만, 희소 오토인코더 와 같은 특정 변형에서는 항상 그런 것은 아닙니다. 뉴런의 수는 입력 데이터의 특성에 따라 달라질 수도 있습니다. 예를 들어 큰 이미지를 처리하는 오토인코더에는 작은 이미지를 처리하는 것보다 더 많은 뉴런이 필요합니다.
  • 손실 함수: 자동 인코더를 훈련할 때 출력과 입력 간의 재구성 손실을 측정하는 손실 함수는 역전파 동안경사 하강을 통해 모델 가중치를 최적화하는 데 사용됩니다. 손실 함수에 대한 이상적인 알고리즘은 오토인코더가 사용될 작업에 따라 다릅니다.
불완전 오토인코더

불완전한 오토인코더는 주로 차원 감소에 사용되는 간단한 오토인코더 구조입니다. 숨겨진 레이어에는 입력 및 출력 레이어보다 적은 수의 노드가 포함되며 병목 지점의 용량은 고정되어 있습니다.

병목 지점의 목표는 오토인코더가 훈련 데이터에 과적합되는 것을 방지하는 것입니다. 네트워크는 병목 지점의 용량을 충분히 제한하지 않고 입력과 출력 간의 동일성 함수를 학습하는 경향이 있습니다. 즉, 단순히 입력을 직접 복사하여 재구성 손실을 최소화하는 방법을 학습할 수 있습니다. 데이터를 상당히 압축함으로써 신경망은 재구성에 가장 중요한 특징만 유지하는 방법을 학습해야 합니다.

그러나 인코더와 디코더의 용량이 충분히 큰 경우, 즉 크고 복잡한 데이터 입력을 처리하는 경우에는 병목 지점이 있더라도 오토인코더가 ID 함수를 학습하여 쓸모없게 될 수 있습니다. 따라서 불완전한 오토인코더는 유연성이 떨어지고 용량이 제한됩니다.

정규화된 오토인코더

정규화된 오토인코더는 모델이 재구성 오류를 계산하는 방식을 제한하거나 수정하는 기술인 정규화를 도입하여 불완전한 오토인코더의 단점을 해결합니다. 이러한 정규화 용어는 과적합을 줄일 뿐만 아니라 오토인코더가 유용한 특징이나 함수를 학습할 수 있도록 합니다.

희소 오토인코더

희소 오토인코더(SAE)는 희소성 제약 조건을 적용합니다. 즉, SAE는 숨겨진 각 레이어의 노드 수를 줄여 정보 병목 지점을 생성하는 대신 동시에 활성화할 수 있는 노드 수를 줄여 병목 지점을 생성합니다.

표준 불완전 오토인코더는 각 관찰에 대해 전체 신경망을 사용하는 반면, 희소성 함수를 가진 오토인코더는 특정 임계값을 초과하여 활성화된 각 뉴런에 대해 페널티를 부과합니다. 이를 통해 훈련 데이터에 과적합될 위험 없이 인코더와 디코더가 더 높은 용량을 가질 수 있습니다. 이는 모든 뉴런이 활성화되는 것은 아니기 때문입니다. 또한 숨겨진 레이어에는 특정한 특징을 검색하는 전용 노드가 포함될 수 있습니다. 희소성 기능은 해당 기능이 있는 경우에만 해당 노드를 활성화하는 것이 '페널티를 감수할 만한 가치'가 있다는 것을 보장합니다.

재구성 오류 계산과 역전파를 통한 파라미터 가중치의 후속 최적화가 별도로 발생하더라도 최적화는 희소성 함수에 의해 정규화 됩니다. 따라서 오토인코더는 주어진 희소성 제약 내에서 가장 효과적인 잠재 공간 표현을 학습해야 합니다.

희소성 제약 조건을 적용하는 데 사용되는 함수는 일반적으로 L1 정규화 또는 KL 발산입니다.

KL 발산
Kullback-Leibler(KL) 발산은 두 확률 분포 간의 차이를 측정합니다. SAE의 맥락에서 사용할 경우, 각 훈련 배치 후에 네트워크에 주어지는 페널티는 활성화 값의 목표 분포(원하는 희소성)와 활성화 값의 실제 분포 사이의 KL 차이에 비례합니다. 이 글의 뒷부분에서 설명하겠지만, KL 발산은 변이형 오토인코더(VAE)가 학습한 확률 분포의 정확도를 최적화하는 데에도 사용됩니다.

수축 오토인코더

몬트리올 대학교(Université de Montréal) 연구원들이 2011년에 처음 도입한1 수축 오토인코더는 입력 데이터의 사소한 변화(또는 '노이즈')에 둔감하도록 설계되어 과적합을 줄이고 필수 정보를 보다 효과적으로 캡처합니다.

이는 훈련에 정규화 용어를 추가하여 입력의 불충분하게 큰 변화에 대응하여 출력을 변경하는 네트워크에 페널티를 적용함으로써 달성됩니다. 이 페널티 항은 다음 두 가지 수학적 개념을 사용하여 계산됩니다.

  • 야코비 행렬에는 역전파에 사용할 수 있는 함수의 1차 도함수가 모두 포함되어 있습니다. 이는 입력이 변경됨에 따라 네트워크의 기울기가 어떻게 변경되는지를 나타냅니다.
  • 프로베니우스 규범은 '요소의 절대 제곱 합의 제곱근'으로 계산됩니다.2 공간의 각 직교 방향에 따른 행렬의 평균 이득을 측정합니다.3

구체적으로, 페널티 항은 입력에 대한 인코더 네트워크 뉴런 활성화야코비 행렬의 프로베니우스 규범입니다.이 페널티 항과 재구성 오류를 줄이는 데 사용되는 손실 함수 알고리즘은 서로 상반된 성격을 띠는데, 재구성 손실 함수는 입력 데이터의 변화를 관찰하는 경향이 있는 반면 페널티 항은 이를 무시하는 경향이 있습니다. 두 용어를 결합함으로써 네트워크는 가장 중요한 변수만 포함하는 입력의 압축된 표현을 학습하게 됩니다.

노이즈 제거 오토인코더

노이즈 제거 오토인코더에는 부분적으로 손상된 입력 데이터가 제공되고 차원 축소를 통해 쓸모 없는 정보를 제거하여 원본 입력을 복원하도록 훈련됩니다.

대부분의 오토인코더와 달리 노이즈 제거 오토인코더는 근거가 되는 진실 데이터를 입력으로 사용하지 않습니다. 대신 가우시안 노이즈가 원본 데이터에 추가되고(예: 이미지에 임의의 정적 추가), 노이즈 제거 자동 인코더(DAE)가 이를 필터링하는 방법을 학습합니다. 모델 훈련 중에 노이즈가 제거된 출력의 재구성 오류는 손상된 입력 데이터가 아니라 원본 이미지를 기준으로 측정됩니다.

과적합을 방지하는 것 외에도 이 훈련 기술은 노이즈 제거 오토인코더를 노이즈가 있거나 손상된 이미지 및 오디오 파일을 처리하는 데 매우 유용하게 사용할 수 있습니다. 노이즈 제거 오토인코더는 Stable Diffusion과 같은 최첨단 이미지 생성 모델의 기본 트레이닝 패러다임으로도 활용되고 있습니다.4

변이형 오토인코더

변이형 오토인코더(VAE)는 학습 데이터의 압축된 표현을 확률 분포로 학습하는 생성형 모델로, 학습한 표현의 변형을 만들어 새로운 샘플 데이터를 생성하는 데 사용됩니다.

VAE와 오토인코더의 다른 유형들과의 근본적인 차이점은 대부분의 자동 인코더가 이산 잠재 공간 모델을 학습하는 반면, VAE는 연속 잠재 변수 모델을 학습한다는 점입니다. 잠재 공간에 대한 단일 인코딩 벡터 대신 VAE는 평균 벡터 'μ'와 표준 편차 벡터 'σ'의 두 가지 다른 벡터를 모델링합니다. 이러한 벡터는 잠재 속성을 확률 분포로 포착, 즉 결정론적 인코딩이 아닌 확률론적 인코딩을 학습하기 때문에 VAE는 보간과 무작위 샘플링이 가능하여 기능과 사용 사례가 크게 확장됩니다. 이는 VAE가 생성형 AI 모델임을 의미합니다.

간단히 말해, VAE는 유연하고 근사적인 방식으로 훈련된 데이터 세트의 입력에서 중요 특징 학습을 인코딩하는 방법을 훈련하여 원본 훈련 데이터와 유사한 새로운 샘플을 생성할 수 있습니다. 재구성 오류를 최소화하는 데 사용되는 손실 함수는 훈련 데이터의 확률 분포(사전 분포)와 VAE에서 학습한 잠재 변수 분포 (사후 분포) 간의 KL 발산을 통해 정규화됩니다. 이 정규화된 손실 함수를 사용하면 VAE가 과적합을 방지하면서 학습된 데이터와 유사한 새 샘플을 생성할 수 있습니다. 이 경우 원본 데이터와 너무 동일한 새 샘플을 생성할 수 있습니다.

새 표본을 생성하기 위해 VAE는 가우스 단위(ibm.com외부 링크) 내에서 무작위 잠재 벡터(ε)를 샘플링합니다. 즉, 정규 분포 내에서 임의의 시작점을 선택한 후 잠재 분포의 평균(μ)만큼 이동시키고 잠재 분포 분산(σ)에 따라 척도를 조정합니다. 재매개변수화 기법이라고 하는 이 과정에서는5 변동 분포의 직접 표본 추출을 피합니다. 이 프로세스는 무작위로 진행되기 때문에 도함수가 없으므로 표본 추출 과정에 대한 역전파가 필요하지 않기 때문입니다.

VAE를 생성 작업에 사용하는 경우 교육 후에 인코더를 폐기하는 경우가 많습니다. 조건부 VAE와 같이 더욱 발전된 VAE의 경우 인코더의 출력을 수정하는 조건부 입력을 제공함으로써 생성된 샘플을 보다 효과적으로 제어할 수 있습니다.

오토인코더 사용 사례

생성적 오토인코더와 결정론적 오토인코더 모두 서로 다른 분야와 데이터 유형에 걸쳐 다양한 사용 사례를 가지고 있습니다.

  • 데이터 압축: 오토인코더는 입력 데이터의 압축된 표현을 자연스럽게 학습합니다.
  • 차원 감소: 오토인코더가 학습한 인코딩은 더 큰 복합 신경망의 입력으로 사용될 수 있습니다. 복잡한 데이터의 차원 감소를 통해 다른 작업과 관련된 특징을 추출할 수 있을 뿐만 아니라 계산 속도와 효율성도 높일 수 있습니다.
  • 이상 감지 및 안면 인식: 오토인코더는 비교 대상인 '정상' 또는 '진짜' 예시와 비교하여 검사된 데이터의 재구성 손실을 판단함으로써 이상 징후, 사기 또는 기타 결함을 감지할 수 있으며 반대로 실제 일치 여부를 확인할 수 있습니다.
  • 이미지 노이즈 제거 및 오디오 노이즈 제거: 노이즈 제거 오토인코더는 네트워크에서 학습한 잠재 공간 표현과 일치하지 않는 외부 아티팩트나 손상을 제거할 수 있습니다.
  • 이미지 재구성: 오토인코더는 노이즈 제거를 위해 학습한 반전 기술을 사용하여 이미지의 누락된 요소를 채울 수 있습니다. 이미지에 색을 입히는 데도 유사하게 사용할 수 있습니다.
  • 생성 작업: VAE가 학습한 것과 유사한 확률 분포를 학습하지만 KL 발산 대신 적대적 판별자 네트워크(생성적 적대 신경망과 유사)를 사용하는 VAE와 적대적 오토인코더(AAE)는 생성 작업에 큰 성공을 거두었습니다. 오토인코더의 대표적인 생성 애플리케이션으로는 이미지 생성을 위한 OpenAI의 오리지널 Dall-E 모델6 의약품에 사용되는 분자 구조 생성까지 포함됩니다.7
관련 솔루션
watsonx.ai

생성형 AI, 파운데이션 모델, 머신 러닝 모델을 쉽게 훈련, 검증, 조정 및 배포할 수 있으며 적은 데이터로 짧은 시간 내에 AI 애플리케이션을 구축할 수 있습니다.

watsonx.ai 살펴보기

오토인코더 리소스 지도 학습(Supervised Learning)과 비지도 학습(Unsupervised Learning) 비교: 차이점은 무엇인가요?

이 글은 지도 학습과 비지도 학습이라는 두 가지 데이터 과학 접근 방식의 필수 사항을 살펴봅니다. 각자의 상황에 맞는 접근 방식을 찾아보세요.

딥 러닝 및 강화 학습

머신러닝 분야에서 가장 인기 있는 두 가지 분야에 대한 소개입니다. 먼저 신경망과 여러 최신 딥 러닝 아키텍처의 기본 이론에 대해 알아보세요. 몇 가지 딥 러닝 모델을 개발한 후에는 강화 학습에 중점을 두게 됩니다.

IBM의 새로운 지리 공간 파운데이션 모델

IBM과 NASA의 협업을 통해 구축된 watsonx.ai 모델은 위성 데이터를 홍수, 화재 및 기타 경관 변화에 대한 고해상도 지도로 변환하여 지구의 과거를 밝히고 미래를 암시하도록 설계되었습니다. IBM은 비디오 처리를 위해 마스킹된 오토인코더를 기반으로 모델을 구축하고 이를 위성 영상에 적용했습니다.

다음 단계 안내

AI 빌더를 위한 차세대 엔터프라이즈 스튜디오인 IBM watsonx.ai를 통해 생성형 AI, 파운데이션 모델 및 머신 러닝 기능을 손쉽게 학습, 검증, 조정 및 배포할 수 있으며 일부 데이터만 사용하여 짧은 시간 안에 AI 애플리케이션을 구축할 수 있습니다.

무료 평가판 시작 라이브 데모 예약하기
각주