볼록함수 (convex function)

수학
한 줄 정의: 그래프 위의 아무 두 점을 이어도 그 선분이 항상 그래프보다 위쪽에 놓이는, 밥그릇처럼 아래로 볼록한 모양의 함수입니다.

쉽게 풀면

밥그릇을 떠올려 보세요. 그릇 안쪽 어디에 구슬을 놓아도 결국 가장 낮은 한 지점(바닥)으로 굴러 내려갑니다. 볼록함수는 그래프 모양이 딱 이런 밥그릇 같아서, 아무 지점에서나 "더 낮은 곳"을 향해 조금씩 내려가다 보면 결국 유일한 최저점에 도달하게 되는 함수를 말합니다. 반대로 울퉁불퉁한 산맥처럼 생긴 함수라면 구슬이 작은 웅덩이(가짜 최저점)에 갇혀버릴 수도 있는데, 볼록함수는 이런 함정이 없다는 것이 가장 큰 특징입니다.

왜 중요한가

볼록함수는 "최적해를 찾을 수 있는가"라는 질문에 수학적으로 확실한 답을 주기 때문에 최적화를 다루는 논문에서 빠지지 않고 등장합니다. 머신러닝의 손실함수 설계, 신호처리의 압축센싱, 경제학의 자원 배분, 제어공학의 최적 제어기 설계처럼 "가장 좋은 답을 어떻게 찾을 것인가"를 다루는 연구 대부분이 문제를 볼록함수 형태로 바꾸거나, 볼록성이 없을 때 어떻게 근사할지를 고민하는 데서 출발합니다. 즉 볼록함수는 개별 개념이라기보다, 최적화 이론 전체를 지탱하는 기초 전제에 가깝습니다.

논문에서는 이렇게 쓰입니다

"목적함수가 볼록함수임을 증명함으로써, 경사하강법으로 구한 해가 전역 최적해임을 보장할 수 있었다."

이 문장은 최적화 문제를 풀 때 목표로 삼는 함수(목적함수)가 밥그릇 모양(볼록함수)이라는 것을 확인했다는 뜻이며, 이 경우 경사하강법 같은 방법으로 내려가다 멈춘 지점이 "그 근처에서만 가장 낮은 곳"이 아니라 "전체를 통틀어 가장 낮은 곳"임을 수학적으로 보장할 수 있습니다. 볼록함수 여부는 머신러닝의 손실함수 설계, 경제학의 효용 극대화, 공학의 최적 설계 문제 등 "최선의 답을 찾는" 거의 모든 논문에서 중요하게 다뤄집니다.

"제약 조건이 볼록집합을 이루고 목적함수도 볼록함수이므로, 본 문제는 볼록최적화 문제로 정식화된다."

신호처리나 통신 분야 논문에서 자주 보이는 표현으로, 풀어야 할 문제(변수가 만족해야 하는 조건과 최소화하려는 목표)를 모두 "밥그릇 모양"의 성질을 갖도록 다시 정리했다는 뜻입니다. 이렇게 볼록최적화 형태로 정식화하고 나면 이미 잘 알려진 효율적인 알고리즘을 그대로 적용할 수 있어, 문제를 어렵게 만드는 요소를 제거하는 중요한 단계로 취급됩니다.

"제안한 정규화 항을 추가함으로써 원래 비볼록이던 손실함수를 근사적으로 볼록화(convexification)하여 학습 안정성을 높였다."

딥러닝이나 통계학습 논문에서는 손실함수가 태생적으로 밥그릇 모양이 아닌 경우가 많은데, 이 문장처럼 보조적인 항을 더하거나 문제를 변형해 볼록함수에 가깝게 만드는 시도가 자주 등장합니다. 이는 완전한 볼록성을 얻지는 못하더라도 국소 최적해 문제를 완화하고 학습 과정을 더 예측 가능하게 만들기 위한 접근입니다.

조금 더 깊게 보면

볼록함수를 판별할 때 논문에서는 흔히 이계도함수(헤시안 행렬)가 항상 0 이상(양의 준정부호)인지를 확인하거나, 함수의 그래프가 접선보다 항상 위에 위치하는지를 이용합니다. 여러 볼록함수를 더하거나, 볼록함수에 선형 변환을 합성해도 볼록성이 유지되는 성질이 있어서, 복잡한 목적함수도 더 단순한 볼록함수들의 조합으로 나누어 분석하는 경우가 많습니다. 또한 "강볼록함수(strongly convex function)"처럼 볼록함수보다 더 강한 조건을 만족하는 경우, 최적해가 유일하게 존재하고 경사하강법 같은 알고리즘이 더 빠르게 수렴한다는 점도 함께 다뤄지곤 합니다.

주의할 점

실제로 딥러닝에서 사용하는 손실함수는 대부분 볼록함수가 아니며, 이 때문에 경사하강법으로 찾은 해가 전역 최적해가 아니라 국소 최적해(주변보다만 낮은 지점)에 머무를 위험이 있습니다.

관련 용어