본문 바로가기
인공지능 (AI)

Encoder-Decoder 네트워크의 활용 사례

by worldproblemsolver 2025. 2. 12.

이 전 블로그에서 AI에 대해 조금 더 심도 있게 다뤄보면서 Encoder-Decoder 네트워크의 개념과 정의에 대해서 이야기해 보았습니다.

 

 

Encoder-Decoder 네트워크의 개념, 정의

약 2년 전부터 우리의 삶을 바꿔놓고 있는 ChatGPT는 자연어 처리하는 기술로 만들어진 서비스입니다. 이 서비스에서는 사용자가 문장을 입력하면 기술을 통해 그에 알맞은 문장을 출력함으로써

hope2solveproblems.com

 

이런 Encoder-Decoder는 오토 인코더, 화상 대 화상 변환 모델, 시퀀스 대 시퀀스 변환 모델 등의 과정에서 사용되고 있습니다. 이번 블로그에서는 이런 개념들이 실제로 어떤 방식으로 활용되고 있는지에 대해서 다뤄보려고 합니다.

 

워낙 Encoder-Decoder가 인공지능에서 심도 있는 개념이기 때문에, 혹시나 주제가 이해하기에 조금 어렵더라도 너무 낙심하지 않기를 바랍니다.


오토 인코더에서의 활용

화상의 오토 인코더나 변분 오토인 코더(VAE)에서는 전반의 각층에서 상향식 접근 방법으로 Encoder를 이용해서 부호화를 행하고, 우선 중간 코드를 생성합니다. 이때, 이 중간층을 보틀넥(Bottleneck)이라고 칭하기도 합니다.

 

그리고 후반의 각층에서는 중간 코드로부터 하향식 접근 방법으로 Decoder를 이용해 복호화를 실시해, 원래 화상의 사이즈까지 업 샘플링으로 순환을 계속 실시해 나가다가, 마지막으로 사이즈가 돌아온 원래 화상을 출력으로서 복원합니다.

오토 인코더나, 변분 오토인 코더(VAE)에서는, (부호화 이론은 특별히 이용하지 않는) 딥 러닝적인 손실 함수로, 데이터로부터 표현을 학습함과 동시에 중간층 표현의 차원 압축도 진행합니다.

 

심층 신경망(DNN)에서 Encoder-Decoder 구조를 사용하는 경우, 즉 정보 이론이나 고전적인 부호화 이론은, 적극적으로는 활용되고 있지 않습니다.

 

일부는 보틀넥의 중앙에 정보 기하 이론 등을 적극 활용하기도 하지만 머신러닝의 기초 이론에 가까운 이야기이기도 하고 조금 난이도도 높은 기술로 전문가를 위한 이야기이므로 이 글에서는 따로 설명하지 않도록 하겠습니다.


화상 대 화상 변환 모델에서의 활용

시맨틱 세그먼테이션과 같은 "화상 → 의미 화상"에서 자주 사용되는 네트워크 구조에서도 Encoder-Decoder 모델을 구성하는 경우가 많습니다.

 

단, 입출력은 같은 사이즈의 화상에서의 다른 화상끼리 하게 됩니다. 오토 인코더와 같이 같은 화상끼리 입출력을 하고 있는 것은 아닙니다. 양자는 네트워크는 Encoder-Decoder형으로 공통이지만, 입출력 페어는 다른 것이므로 변환 모델을 학습합니다.

또, 시맨틱 세그먼테이션과는 반대 방향의 "의미 화상 → 화상" 간의 변환을 실시하는 화상 대 화상 변환(Image-to-Image Translation)에 대해서도, pix2pix에서의 초기 모델에서는, 모래시계형의 Encoder-Decoder 모델을 사용합니다.

덧붙여 화상 복원이나 초해상 등의 각종의 화상 보간의 각 문제를, 데이터를 사용하여 딥 러닝으로 푸는 경우에 있어서도, 화상 대 화상 변환과 같이, "열화 화상"의 복원을 Encoder-Decoder 네트워크로 실시합니다.

 

또, 화상으로부터의 뎁스 화상 추출 등도 모래시계형 Encoder-Decoder 네트워크를 이용합니다.


시퀀스 대 시퀀스 변환 모델에서의 활용

한편 최근에 음성 인식이나 Text-to-Speech(TTS), 기계 번역 등에서, 자주 이용되는 트랜스포머(Transformer) 등의 시퀀스 대 시퀀스 변환도, Encoder-Decoder 네트워크의 일종입니다.

어텐션(attention)를 이용하는 seq2seq with attention이나 Transformer의 경우, Encoder-Decoder 간의 각층 간이 상당히 조밀하게 서로가 연결되어 있습니다. 이런 경우 스킵 접속이나 어텐션 가중치를 통해서 접속합니다.

 

따라서 Encoder와 Decoder가 명확하게는 분리 독립되어 있지 않고, 두 개가 서로 복잡하게 얽혀서 작용하게 됩니다.

그런 의미에서는 고전적인 동영상이나 음악파일 등의 압축 전송 목적으로 쓰이는 두 역할이 완전히 분리되어 있는 Encoder-Decoder와는 다른 성질을 가지고 있다고 말할 수 있습니다.

예를 들어 BERT나 GPT 같이 일반화 언어 모델의 자기 지도가 있는 사전 러닝/학습이라면 Transformer의 Encoder 혹은 Decoder의 한쪽만을 이용하고 있는 것이 많으므로, 시퀀스 Encoder-Decode가 아닙니다.

 

한편, 그 후에 등장한 BERT의 업그레이드된 최신 제품인 BART는 (Denoising Auto-) Encoder-Decoder입니다.


 

오늘은 Encoder-Decoder가 어떻게 활용되고 있는지에 대해서 자세하게 다뤄보았습니다.

 

앞서 트랜스포머(Transformer)가 기계 번역이나 언어 모델에서 많이 쓰인다고 알려드렸습니다. 다음 블로그에서는 이 트랜스포머에 대해서 심도 깊게 다뤄보도록 하겠습니다.