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

30번째 이야기 - 오토인코더, autoencoder, 경사하강법, 평균제곱오차, mse

by Ψβ⅓ 2022. 11. 21.

이번에는 이미지에 대한 잠재 공간을 생성하는 오토 인코더(AutoEncoder)에 대해 살펴봅시다.

 

오토인코더

 

오토 인코더의 구조는 아주 간단합니다. 입력 그대로를 출력하는 딥러닝 모델입니다. 우리는 여기서 은닉층을 주목할 필요가 있습니다.

여기서의 은닉층의 노드 수는 입력 값의 노드 수보다 적습니다. , 한정된 은닉층을 갖기에 정보를 압축할 수밖에 없습니다. 병목(Bottleneck)이라고 불리는 이 곳에서 생성되는 벡터는 이미지 잠재 공간을 형성합니다. , 워드투벡에서와 같이 계산을 가능하게 합니다.

사람의 얼굴에서 웃음끼를 -1, -2, -3 할 수 있으며, 역으로 더할 수도 있습니다. 아래와 같이 잠재 공간에서는 이미지 모핑 작업을 할 수도 있게 됩니다.

animorphs 포스터

 

잠재공간을 정리해봅시다. 한마디로 표현하자면 비정형 데이터에 있는 특성을 계산이 가능하도록 수치화한 공간이라 할 수 있습니다.

잠재 공간에서의 기준을 무엇으로 잡느냐에 따라 유사도에 따른 배치가 달라질 것입니다. 특성이 비슷할수록 잠재 공간 내에서의 위치는 가까워지게 됩니다.

학습은 추상화의 놀음입니다. 결국 추상화의 전당인 딥러닝 내의 잠재 공간으로 인해 특정 기준에 따른 유사도를 판정할 수 있게 되어 어느 단어와의 상관관계 등을 추정할 수 있게 됩니다.

이러한 기법이 고도화된다면 설문이나 조사가 없이도 여론이나 만족도 결과를 정확히 파악하고 예측할 수 있게 되지 않을까 합니다. 물론 이 사람이 나와 잘 맞을까, 최적의 결혼 상대일까도 알아맞혀 줄 수도 있지 않을까요? 지켜보기로 합시다.

 
 
 

<산에서 내려올 때에는 능선을 타고 오르내려야 합니다.>

인공지능으로 완벽함을 추구하는 사람은 발생할 수 있는 모든 가능성을 탐색하고자 합니다. 그로부터 발생할 수 있는 일에 대해 대비책을 꼼꼼하게 세워두기 위함이죠.

그런데 문제가 있습니다. 모든 가능성을 탐색하는 것은 사실상 불가능하기 때문입니다. 컴퓨터를 가지고도 이를 시도해본다한들 컴퓨팅 파워의 부족으로 며칠밤도 모자라 몇 달의 시간을 날려버릴 수도 있습니다.

이럴 떄 우리는 어떻게 해야 할까요? 눈물을 머금고 능력 부족을 절감하며 단념해야 할까요?

슬램덩크 사진

 

우리는 융통성을 발휘해야 합니다. 완벽함의 기준을 조금 내려놓고, 계산 복잡도에 따른 시간의 소요를 좀 더 고려해보는 것이죠.

탐색을 하고자 하는 공간이 너무 복잡해서 쉽게 최적화하기 어려운 문제일 경우에는 전체의 지형을 전부 파악하기가 어렵습니다. 그렇기 때문에 지역적으로 제한된 정보만을 갖고 문제를 해결해야 합니다.

, 현재 상황에서 할 수 있는 행동의 목록만을 고려할 뿐입니다. 이를 반복하다보면 비용 함수의 값을 최소화하는 최적의 가중치 값에 도달하거나 이에 근사하지 않을까 기대하는 것입니다.

물론 기대가 현실로 이어지지 않는 경우도 많습니다. 이는 지역적(국지적)으로 최적화된 가중치의 값이 전역적(전체적)으로 최적화된 가중치의 값이 되리라는 보장이 없다는 말입니다.

 
 
그래프

문제 해결의 가장 중요한 변수는 바로 '시간'입니다. 우리에게는 시간이 많지 않습니다. 시간을 줄이기 위해서 우리가 지금 이 순간 그저 할 수 있는 것에 집중해야 합니다.

딥러닝의 학습에서도 이러한 아이디어를 적용하고있습니다. 예를 들어보죠. 눈을 가리고 있는 상태에서 우리는 제주도의 높은 산봉우리에서 평지로 내려와 집으로 가야 합니다. 어떻게 해야 할까요?

그저 내가 서 있는 위치에서 한 발자국씩 내딛는 것 외에 할 수 있는 것이 없습니다. 어느 방향으로 발자국을 향해야 할까요? , 경사가 낮아지는 방향으로입니다. , 목적함수(평균제곱오차, MSE)의 값을 가장 많이 줄여주는 방향인 것이죠. 이를 경사 하강법이라고 합니다.. 경사 하강법은 뒤에서 한번 더 정리해보겠습니다.

 
 

평균제곱오차

 

 

목적함수(평균제곱오차, MSE)의 값에 -1을 곱하여 제주도 한라산 백록담을 찍게 하는 문제로 탈바꿈시킬 수도 있습니다. 이를 급경사 탐색법이라고 합니다. 이 글에서는 경사 하강법을 다뤄보도록 하겠습니다.

산봉우리에서 내려온다고 가정했을 때, 전체의 지형을 보지 못하므로 경사가 내려가는 방향으로 한 발자국씩 내디뎌봅니다.. 다다른 곳이 위의 그림에서와 같이 지역 최솟값일 수 있습니다(거의 대부분 그럴 겁니다).

경사 하강의 목적은 기울기를 계산하여 낮은 곳으로 내려가는 것입니다. , 산을 올라가는 방향으로는 움직이지 못한다는 말입니다. 이러한 문제점을 극복하기 위해서 사람들이 낸 묘안이 있습니다.

먼저, 관성의 개념을 도입해서 방향성을 부여합니다. , 작은 봉우리는 가던 힘으로 가볍게 뛰어넘거나 지나치게 만드는 것이죠.

 

관성 예시

 

댓글