이 단원 목차
실수 손실을 복소 입력으로 표현하기
복소 파라미터 z=x+iy를 쓰는 모델도 학습 손실 L은 보통 실수입니다. L=|z|²=x²+y²은 복소 정칙 함수가 아니지만 R²에서는 매끄럽고 최적화 가능합니다. 정칙성이 없다는 이유로 gradient를 정의할 수 없다고 결론내리면 안 됩니다.
Wirtinger 연산자는 실수 미분의 두 선형 조합입니다.
z와 z̄를 형식적으로 독립 변수처럼 다루는 계산 규칙은 이 정의에서 유도됩니다. 원래 두 실수 자유도를 네 실수 자유도로 늘린다는 뜻은 아닙니다.
두 미분과 실제 gradient
L=|z−c|²에서
실수 gradient를 복소수 g=Lₓ+iLᵧ로 묶으면 g=2∂L/∂z̄입니다. 여기서 정의한 1/2 규약과 유클리드 실수 metric을 유지하면 이 계수 2가 필요합니다. 라이브러리에서 같은 이름의 gradient가 어떤 규약인지 반드시 확인해야 합니다.
왜 켤레 쪽이 하강 방향인가
실수 손실의 미소 변화는 복소 표기로
입니다. dz=−2η∂L/∂z̄를 넣으면 일차 변화가 음수 또는 0입니다. ∂L/∂z를 같은 방향으로 그대로 쓰면 일반적으로 실수 gradient 하강과 다릅니다. 예를 들어 순허수 입력에서 켤레를 잘못 선택하면 목표로부터 더 멀어질 수 있습니다.
이차 손실의 갱신을 정확히 계산하기
실습은 z_next=z−2η(z−c)를 사용하므로 오차 e=z−c의 갱신은
0<η<1이면 수축하고 η=1이면 부호만 바뀌어 진동하며 η>1이면 비영 오차가 증가합니다. η=0은 갱신하지 않고 η=1/2이면 한 번에 최소점에 도달합니다. 임의의 복소 손실에 같은 보폭 범위를 적용할 수는 없습니다. 이 범위는 이 명시적 이차식의 정확한 결과입니다.
기준 z=1+i,c=0,η=0.25에서는 다음 z=0.5+0.5i,손실은 2에서 0.5로 줄어듭니다. 목표 c=1+i로 바꾸면 원점이 아닌 그 목표에 대한 오차를 사용합니다.
그림과 AI 구현
파랑은 실제 갱신을 여섯 번 적용한 경로이고 주황 점은 최소점입니다. 손실 높이를 복소 좌표로 그린 것이 아니라 파라미터의 궤적입니다. 숫자 표의 손실과 함께 읽으세요.
복소 자동 미분을 구현할 때 실수·허수 중앙차분으로 규약을 독립 검산할 수 있습니다. 이 실습은 해석적 미분식을 사용하며 특정 라이브러리의 자동 미분을 실행했다고 주장하지 않습니다. 비매끄러운 복소 절댓값·분기 연산에서는 추가 정의와 검토가 필요합니다.
확인 문제와 답
- η=1/2이면? 한 번에 c에 도달합니다.
- η=1이면 손실이 줄까요? 일반 비영 오차에서 그대로입니다.
- 실수값 비상수 손실을 정칙 함수로 강제해야 하나요? 아니요. R² 또는 Wirtinger 미분을 사용합니다.
추가 읽기: MIT Complex Variables with Applications. 공식 강좌 범위를 확인해 보충 자료로 연결합니다. 본문의 작은 계산과 예제는 직접 구성했습니다.
설명할 수 있나요?
실험 설정과 무관한 기준 예제를 묻습니다. 답을 고르고 설명을 확인해보세요.
선택한 답과 학습 표시는 이 브라우저에 저장됩니다. 다시 풀거나 표시를 해제할 수 있습니다.