Mathematics for AI #16
가상 세계의 나를 만들어주는 '합성곱' 이해하기!
*출제자의 한 마디*
합성곱은 이미지와 영상을 분석하는 인공신경망에서 주로 쓰이며 추천 시스템이나 영상 분류 및 의료영상 분석, 자연어 처리 등에서 필수적으로 사용되고 있습니다..
--------------
가상 세계의 나를 만들어주는 '합성곱' 이해하기!
메타버스라는 용어를 들어본 적 있으신가요? 메타 버스는 3차원 가상 세계를 뜻하며 요즘 많은 사람의 관심을 받고 있습니다. 가상 세계에서 사용자는 자신을 표현하는 존재를 통해 소통합니다. 바로 디지털 캐릭터인 아바타로 말이죠.
그럼 아바타는 어떻게 만들까요? 과거에는 이미 만 들어진 캐릭터를 그대로 활용하거나 사람이 컴퓨터에서 가상 캐릭터를 일일이 마우스로 수정했습니다. 이와 달리 최근에는 얼굴 사진을 입력하면 아바타를 자동으로 만들어주는 가상 세계 플랫폼이 생겨났습니다. 또 사진이나 동영상 중심의 소셜미디어는 사용자가 ‘더 멋진 나’를 만들수 있도록 뷰티필터를 제공하고 있으며 수백만 명의 사람들이 실시간으로 사용하고 있죠.
이런 기술에는 수학이 중요하게 쓰입니다. 이미지를 여러 박스가 쌓인 격자로서 인식하면, 그 격자 안의 수치들을 함수로 표현할 수 있습니다. 그다음에 우리가 원하는 형태로 바꾸어주는 ‘필터’를 사용해 연산을 수행하면 원하는 이미지를 얻습니다. 이때 쓰이는 연산이 바로 ‘합성곱(Convolution)’입니다.
합성곱은 두 함수의 특징을 모두 가질 수 있도록 합성시키는 연산의 한 종류입니다. 예를 들면 자연에서 서로 다른 두 개의 파도가 서로 마주보며 진행한다고 상상해봅시다. 두 개의 파도는 겹쳐지면서 새로운 모양을 나타냅니다. 겹쳐지는 파도는 이전의 두 개의 파도 모양 을 모두 반영하면서도 새로운 형태로 나타나죠.
--------------
문제
구간 0≤x≤1에서 함수 f =1과 함수 g =1-x의 합성곱 f *g인 함수 h를 계산하고 그래프로 나타내보자.
풀이에 필요한 SageMath 코딩 명령어
① 구간 0 ≤x ≤1에서 함수 f = 1과 함수 g = 1-x 를 정의한다.
f = piecewise([[(0,1),1]]) g = piecewise([[(0,1),1-x]])
② 함수 f 와 함수 g의 합성곱 함수 h = f *g 를 계산한다.
h = f.convolution(g)
③ 함수 h의 그래프를 나타낸다.
plot(h)
-끝-