모로 포락

편집 역사 토론
최적설계 수치해석 마지막 수정: 2026-08-06 05:31:47

1. 개요[편집]

모로 포락
Moreau Envelope
다른 이름모로-요시다 정칙화, Moreau–Yosida regularization
제안Jean-Jacques Moreau (1965)
정체비매끄러운 볼록 함수를 C1로 바꾸는 매끄럽게 하기
핵심 성질최솟값·최소점이 원함수와 완전히 동일
파생근접 연산자, 후버 함수, 소프트 임계값

모로 포락은 볼록 함수 ff 를, 최솟값과 최소점을 하나도 바꾸지 않은 채로 연속 미분 가능한 함수로 바꿔 놓는 정칙화(regularization) 연산이다. 파라미터 λ>0\lambda > 0 에 대해

Mλf(x)=minu{f(u)+12λux22},proxλf(x)=argminu{f(u)+12λux22}M_{\lambda f}(x) = \min_{u} \left\{ f(u) + \frac{1}{2\lambda}\|u - x\|_2^2 \right\}, \qquad \mathrm{prox}_{\lambda f}(x) = \arg\min_{u} \left\{ f(u) + \frac{1}{2\lambda}\|u - x\|_2^2 \right\}

로 정의한다. 앞이 포락(최솟값), 뒤가 근접 연산자(최소점)이며 둘은 같은 부분문제의 값과 인수다. ff 가 닫힌 진(closed proper) 볼록이면 괄호 안이 1/λ1/\lambda-강볼록이라 최소점이 유일하게 존재하므로, 근접 연산자는 잘 정의된 단일값 사상이다.

왜 중요한가. 현대 최적화에서 진짜 문제는 비선형이 아니라 비매끄러움이다. x1\|x\|_1, 전변분, 지시함수, 최댓값 함수 — 이 바닥의 정규화항은 죄다 미분이 안 되고, 그래서 경사하강법이나 뉴턴-랩슨법을 그냥 가져다 쓸 수가 없다. 모로 포락은 이 문제를 ”ff 를 근사해서 답이 조금 달라지는 것을 감수한다”가 아니라 “매끄럽게 바꾸되 답은 그대로 둔다” 로 해결한다. 이게 왜 공짜처럼 들리는지, 그리고 실제로 공짜가 아닌 부분이 어디인지가 이 문서의 내용이다.1

2. 매끄러움 — 정확히 무엇이 보장되나[편집]

ff 가 닫힌 진 볼록이면 MλfM_{\lambda f} 에 대해 다음이 성립한다.

  • 어디서나 유한하고 볼록이다. ff++\infty 를 값으로 갖는 지시함수여도 MλfM_{\lambda f} 는 유한값이다.
  • C1C^1 이며 그래디언트가 명시적으로 나온다.
Mλf(x)=1λ(xproxλf(x))\nabla M_{\lambda f}(x) = \frac{1}{\lambda}\bigl(x - \mathrm{prox}_{\lambda f}(x)\bigr)
  • 그래디언트가 1/λ1/\lambda-립시츠다. 즉 Mλf(x)Mλf(y)1λxy\|\nabla M_{\lambda f}(x) - \nabla M_{\lambda f}(y)\| \le \frac{1}{\lambda}\|x-y\|.
  • ff 의 하계다. 항상 Mλf(x)f(x)M_{\lambda f}(x) \le f(x) 이며, λ\lambda 가 클수록 더 많이 뭉갠다.

여기서 읽어야 할 트레이드오프가 있다. λ0\lambda \to 0 이면 MλfM_{\lambda f}ff 에 가까워지지만 립시츠 상수 1/λ1/\lambda 가 폭발한다 — 즉 ”ff 를 더 정확히 닮을수록 더 못 매끄럽다”. 매끄러운 함수에 1차법을 쓸 때 스텝이 1/L=λ1/L = \lambda 로 제한되므로, λ\lambda 를 줄여 정확도를 얻는 만큼 스텝이 작아져 반복 수가 늘어난다. 공짜 점심은 여기서 계산된다.

3. 최솟값이 보존된다[편집]

포락의 결정적 성질은 이것이다.

infxMλf(x)=infxf(x),argminxMλf=argminxf\inf_x M_{\lambda f}(x) = \inf_x f(x), \qquad \arg\min_x M_{\lambda f} = \arg\min_x f

증명은 짧다. 두 변수 infxinfu{f(u)+12λux2}\inf_{x}\inf_{u}\{f(u) + \frac{1}{2\lambda}\|u-x\|^2\} 에서 순서를 바꿔 xx 를 먼저 최소화하면 x=ux = u 에서 이차항이 0이 되므로 infuf(u)\inf_u f(u) 가 남는다. 즉 어떤 λ\lambda 를 쓰든 최적값과 최적해 집합이 그대로다. 매끄럽게 만드는 대가로 답이 흔들리는 여느 근사(예: t2+ε2\sqrt{t^2+\varepsilon^2} 로 절댓값을 뭉개는 방식)와 결정적으로 다른 지점이다.

또 하나, 부미분과의 관계도 깔끔하다. p=proxλf(x)p = \mathrm{prox}_{\lambda f}(x) 라 하면 부분문제의 최적성 조건이 0f(p)+1λ(px)0 \in \partial f(p) + \frac{1}{\lambda}(p - x), 즉

xpλf(p)\frac{x - p}{\lambda} \in \partial f(p)

이다. 좌변은 방금 본 Mλf(x)\nabla M_{\lambda f}(x) 이므로 — 포락의 그래디언트는 원함수의 부미분 원소 중 하나를, 그것도 최소 노름 원소를 골라 준다. 비매끄러운 함수의 “가장 얌전한 기울기”를 자동으로 뽑아 주는 장치인 셈이다.

4. 대표 예 — 후버 함수와 소프트 임계값[편집]

가장 유명한 예는 f(t)=tf(t) = |t| 다. proxλ\mathrm{prox}_{\lambda|\cdot|}연성 임계값(soft-thresholding)

proxλ(x)=sign(x)max(xλ, 0)\mathrm{prox}_{\lambda|\cdot|}(x) = \mathrm{sign}(x)\max(|x| - \lambda,\ 0)

이고, 이걸 위 정의에 대입하면 포락이 나온다.

Mλ(x)={x22λ,xλxλ2,x>λM_{\lambda|\cdot|}(x) = \begin{cases} \dfrac{x^2}{2\lambda}, & |x| \le \lambda \\[6pt] |x| - \dfrac{\lambda}{2}, & |x| > \lambda \end{cases}

이것이 바로 후버 함수다. 원점 근처는 이차, 멀리서는 선형 — 강건 회귀에서 “이상치에 덜 끌려가면서도 원점에서 미분 가능한” 손실로 손꼽히던 그 함수가, 알고 보니 절댓값의 모로 포락이었다. 그래디언트도 확인해 보면 xλ|x|\le\lambda 에서 x/λx/\lambda, 바깥에서 sign(x)\mathrm{sign}(x) 로 정확히 (xprox)/λ(x - \mathrm{prox})/\lambda 와 일치하고 립시츠 상수가 1/λ1/\lambda 다. 전변분 잡음제거의 계단화 대책으로 쓰는 “후버-TV”도 결국 TV의 비매끄러움을 모로 포락으로 한 겹 벗긴 것이다.

다른 대표 사례들:

  • 지시함수 f=ιCf = \iota_C (CC 안이면 0, 밖이면 ++\infty) → proxλf=ΠC\mathrm{prox}_{\lambda f} = \Pi_C, 집합 위로의 사영이다. 그리고 Mλf(x)=12λdist(x,C)2M_{\lambda f}(x) = \frac{1}{2\lambda}\,\mathrm{dist}(x,C)^2 — 거리 제곱의 절반. 제약 최적화의 벌점법이 여기서 튀어나온다.
  • 핵 노름 X\|X\|_* → 특이값에 연성 임계값을 먹인다. 특이값 분해 한 번이 prox 한 번.
  • f=122f = \frac12\|\cdot\|^2proxλf(x)=x/(1+λ)\mathrm{prox}_{\lambda f}(x) = x/(1+\lambda), 단순 축소. 리지 벌점이 왜 성분을 0으로 못 만드는지가 한 줄로 보인다.
  • ff 가 이미 매끄러움 → 포락은 여전히 매끄럽고, λ\lambda 가 작으면 MλffM_{\lambda f} \approx f. 손해도 이득도 별로 없다.

5. prox의 성질과, 그 위에 선 알고리즘들[편집]

근접 연산자는 그 자체로 좋은 성질을 갖는다.

  • 견고 비확장(firmly nonexpansive): prox(x)prox(y)2prox(x)prox(y),xy\|\mathrm{prox}(x)-\mathrm{prox}(y)\|^2 \le \langle \mathrm{prox}(x)-\mathrm{prox}(y),\, x-y\rangle. 따라서 1-립시츠다. 반복해도 발산하지 않는다는 뜻이라 알고리즘 안정성의 근거가 된다.
  • 고정점 = 최소점: proxλf(x)=x    0f(x)\mathrm{prox}_{\lambda f}(x^\star) = x^\star \iff 0 \in \partial f(x^\star).

이 두 줄에서 현대 1차 최적화의 절반이 나온다.

  • 근접점 알고리즘. xk+1=proxλf(xk)x^{k+1} = \mathrm{prox}_{\lambda f}(x^k). 이건 사실 MλfM_{\lambda f} 위에서 스텝 λ\lambda 의 경사하강이다 — xλMλf(x)=x(xproxλf(x))=proxλf(x)x - \lambda \nabla M_{\lambda f}(x) = x - (x - \mathrm{prox}_{\lambda f}(x)) = \mathrm{prox}_{\lambda f}(x). 즉 “비매끄러운 함수에 근접점법을 돌린다”와 “매끄럽게 만든 함수에 경사하강을 돌린다”가 같은 알고리즘이다. 록카펠라(1976)가 이 관점을 정리했고, 쌍대에 적용하면 그게 곧 승수법이다.
  • 근접 경사법(ISTA/FISTA). 매끄러운 항엔 경사, 비매끄러운 항엔 prox. g=1g=\|\cdot\|_1 이면 임계화 한 줄.
  • 교대방향 승수법·더글러스-래치포드. 표준 분할에서 두 부분문제가 각각 proxf/ρ\mathrm{prox}_{f/\rho}, proxg/ρ\mathrm{prox}_{g/\rho} 다. ADMM은 결국 두 prox를 번갈아 때리는 알고리즘.
  • 투영 경사법. gg 가 지시함수인 특수 사례. 제약 최적화의 투영법이 근접법의 부분집합이라는 게 여기서 정리된다.

실무에서의 판정 기준은 늘 하나다. prox가 닫힌 형태로, 싸게 계산되는가. 성분별로 분해되는 1\ell_1 이나 상자 제약은 O(n)O(n) 이라 사실상 공짜지만, 전변분처럼 이웃이 얽히면 prox 자체가 또 하나의 최적화 문제다. 그럴 땐 내부 반복을 끼우거나 원시-쌍대 계열로 넘어간다.

6. 모로 분해와 켤레[편집]

포락과 prox는 볼록 최적화의 쌍대성과 정확히 맞물린다. 르장드르-펜셸 변환으로 얻는 켤레 f(y)=supx{x,yf(x)}f^*(y) = \sup_x \{\langle x,y\rangle - f(x)\} 를 쓰면 모로 분해

x=proxf(x)+proxf(x)x = \mathrm{prox}_{f}(x) + \mathrm{prox}_{f^*}(x)

가 성립한다. 임의의 점이 “원 문제 쪽 prox”와 “쌍대 문제 쪽 prox”로 정확히 쪼개진다는 뜻이며, 직교 부분공간 분해 x=PVx+PVxx = P_V x + P_{V^\perp} x 를 볼록 함수 세계로 일반화한 것이다. 일반 λ\lambda 에서는 x=proxλf(x)+λproxf/λ(x/λ)x = \mathrm{prox}_{\lambda f}(x) + \lambda\,\mathrm{prox}_{f^*/\lambda}(x/\lambda) 로 쓴다. 실용적 가치도 크다 — ff 의 prox는 어려운데 ff^* 의 prox는 쉬운 경우(그 반대도) 이 항등식 하나로 계산을 넘길 수 있다. 노름의 prox를 쌍대 노름 공 위의 사영으로 바꿔 푸는 것이 전형적인 예다.

포락 자체도 켤레 언어로 깔끔하게 표현된다. MλfM_{\lambda f}ff12λ2\frac{1}{2\lambda}\|\cdot\|^2하한 합성곱(infimal convolution)이고, 하한 합성곱의 켤레는 켤레들의 합이므로

(Mλf)=f+λ22(M_{\lambda f})^* = f^* + \frac{\lambda}{2}\|\cdot\|^2

이다. 즉 원 쪽에서 매끄럽게 하는 것과 쌍대 쪽에서 강볼록하게 하는 것이 같은 조작이다. “평활성 ↔ 강볼록성”이라는 쌍대성의 표어가 여기서 정확한 등식으로 나온다.

7. λ 극한과 비볼록 확장[편집]

λ0\lambda \downarrow 0 이면 MλfM_{\lambda f} 는 각 점에서 ff단조 증가하며 수렴하고(에피 수렴 의미로도), 반대로 λ\lambda \to \inftyMλf(x)inffM_{\lambda f}(x) \to \inf f 로 납작해진다. 그래서 λ\lambda 는 “얼마나 뭉갤 것인가”를 정하는 유일한 손잡이이며, λ\lambda 를 크게 시작해 점점 줄이는 연속화(graduated non-convexity) 전략의 기반이 된다.

비볼록으로도 갈 수 있다. ffρ\rho-약볼록 함수(즉 f+ρ22f + \frac{\rho}{2}\|\cdot\|^2 가 볼록)이면, λ<1/ρ\lambda < 1/\rho 인 한 부분문제는 여전히 강볼록이라 prox가 유일하고 MλfM_{\lambda f} 도 매끄럽다. 이 조건이 깨지면 최소점이 여러 개가 되면서 prox가 집합값 사상으로 변하고, 알고리즘은 이산적으로 튄다. 약볼록 영역에서는 Mλf(x)\|\nabla M_{\lambda f}(x)\|정상성 측도로 쓰는 것이 표준이 됐다 — 비매끄럽고 비볼록인 함수에는 “그래디언트 노름이 작다”는 말을 정의할 방법이 마땅치 않은데, 포락의 그래디언트가 그 자리를 대신한다.2 심층 학습의 비매끄러운 손실에 대한 확률적 하위경사법 수렴 해석이 이 틀 위에서 이뤄진다.

마지막으로 현실 감각 하나. 모로 포락은 개념적으로는 만능이지만 계산적으로는 prox의 난이도를 그대로 물려받는다.ff 를 매끄럽게 만들었다”는 문장은 곧 ”proxλf\mathrm{prox}_{\lambda f} 를 풀 수 있다”는 문장이고, prox를 못 풀면 포락은 종이 위에만 존재한다.3

8. 관련 문서[편집]

9. Footnotes[편집]

  1. 이름이 둘인 것도 이 함수의 이력을 보여 준다. 볼록해석 쪽은 모로(1965)를, 단조 연산자·반군 이론 쪽은 요시다 근사(Yosida approximation)를 부르며, 둘은 같은 대상의 다른 얼굴이다. 논문에서 “Moreau–Yosida regularization”이라고 붙여 쓰는 건 두 학파 사이에서 정치적 중립을 지키는 표기법이라고 봐도 크게 틀리지 않다.

  2. 이 트릭이 왜 정당한지는 볼록의 경우로 감을 잡으면 된다. Mλf(x)=(xprox)/λ\nabla M_{\lambda f}(x) = (x-\mathrm{prox})/\lambda 이므로 이 값이 작다는 건 ”xx 가 자기 prox와 거의 같다”, 즉 “고정점에 가깝다”는 뜻이고, 고정점은 최소점이다. 비매끄러움을 피해 가는 게 아니라 비매끄러움을 통과시켜 놓고 재는 자다.

  3. 그래서 논문에서 “우리는 목적함수를 모로 포락으로 매끄럽게 했다”는 문장을 보면 자동으로 다음 줄을 찾아야 한다. prox를 어떻게 계산했는지가 안 적혀 있으면, 그 매끄러움은 정리 증명용이지 코드용이 아니다.