AI바라기의 인공지능
개념정리 : Score란? with diffusion 본문
0. 먼저 큰 그림
우리가 이해하려는 것은
입니다.
이 식을 제대로 이해하려면, 사실 아래 네 가지가 연결되어야 합니다.
- $p(x)$는 정확히 무엇인가
- 왜 $\log p(x)$를 쓰는가
- $\nabla_x$는 정확히 무엇을 계산하는가
- 그래서 $s(x)$는 실제로 무슨 의미를 가지는가
그다음 대표 예시인 가우시안에서 직접 계산해 보면, score의 성격이 아주 선명해집니다.
설명 내내 $x\in\mathbb R^d$라고 생각하겠습니다.
즉 $x$는 하나의 숫자가 아니라, 보통 여러 좌표를 가진 벡터입니다.
1. $p(x)$는 정확히 무엇인가
가장 먼저 정리해야 할 것은, 연속확률변수에서 $p(x)$는 “점 $x$의 확률” 이 아니라는 점입니다.
연속변수 $X$에 대해서는 보통
입니다.
그러니 $p(x)$를 “이 점이 나올 확률”이라고 이해하면 곤란합니다.
정확히는 $p(x)$는 확률밀도(probability density)입니다.
즉 $x$ 근처의 아주 작은 영역 $A$에 대해
처럼 해석합니다.
조금 더 직관적으로 말하면,
- $p(x)$가 크다
- → $x$ 주변에 확률질량이 조밀하게 모여 있다
- $p(x)$가 작다
- → 그 근처는 드물다
는 뜻입니다.
왜 이게 score와 연결되나
score는 $p(x)$ 자체를 직접 보지 않고
를 봅니다.
즉 단순히 “여기가 얼마나 자주 나오는가”보다,
“여기서 조금 움직였을 때 density가 어느 방향으로 더 커지는가”
를 보는 개념입니다.
그래서 score는 밀도 그 자체보다,
밀도가 공간에서 어떻게 변하는지를 나타내는 양입니다.
작은 주의점
density는 확률과 다르기 때문에, 값이 1보다 클 수도 있습니다.
이건 이상한 일이 아닙니다. 확률은 구간에 대해 적분해서 얻고, density는 그 적분의 “단위 부피당 농도” 같은 것이기 때문입니다.
2. 왜 $\log p(x)$를 보는가
이제 핵심 질문입니다.
왜 그냥 $\nabla_x p(x)$가 아니라
를 볼까요?
이건 단순히 “미분하기 편해서”가 아닙니다.
물론 그것도 맞지만, 더 본질적인 이유는 상대적인 변화율을 보기 위해서입니다.
2-1. 체인룰로 바로 나오는 핵심 식
스칼라 함수 $f(x)$에 대해 $\log f(x)$를 미분하면
입니다.
여기서 $f(x)=p(x)$를 넣으면
가 됩니다.
이 식은 엄청 중요합니다.
왜냐하면 $\nabla_x p(x)$는 “절대적으로 얼마나 변하느냐”를 보지만,
$\nabla_x \log p(x)$는 그걸 $p(x)$로 나누기 때문에
현재 density에 비해 얼마나 빠르게 변하느냐
를 보게 되기 때문입니다.
즉 score는 상대 변화율입니다.
2-2. “상대 변화율”이 실제로 무슨 뜻인가
작은 이동 $\delta\in\mathbb R^d$를 생각해 봅시다.
테일러 1차 전개를 쓰면
입니다.
여기서 score를 $s(x)$라고 쓰면
가 됩니다.
양변을 지수화하면
입니다.
이 식이 score의 실제 의미를 아주 잘 보여줍니다.
즉 score는
작게 움직였을 때 density의 비율이 어떻게 변하는지
를 알려줍니다.
그냥 “증가한다/감소한다”가 아니라,
- 어느 방향으로 가면 ratio가 커지는지
- 그 증가가 얼마나 가파른지
를 알려주는 것입니다.
2-3. 왜 $\log$가 특히 좋은가: 정규화 상수 소거
확률모델은 종종
처럼 정규화 상수 $Z$를 포함합니다.
여기서 $Z$는 계산하기 어려운 경우가 많습니다.
그런데 log를 취하면
이고, $x$로 미분하면
가 됩니다.
왜냐하면 $\log Z$는 $x$와 무관한 상수라서 미분하면 0이기 때문입니다.
즉 score는
정규화 상수를 몰라도 계산할 수 있는 정보
입니다.
이건 뒤에 생성모델에서 특히 강력한 장점이 됩니다.
2-4. 에너지 관점
많은 확률분포를
처럼 쓸 수 있습니다.
그럼
이므로
가 됩니다.
즉 score는
에너지를 감소시키는 방향
입니다.
물리적인 비유를 쓰면, $E(x)$가 높은 곳에서 낮은 곳으로 내려가게 만드는 “힘”에 가깝습니다.
이 관점은 직관적으로도 좋고, 수학적으로도 좋습니다.
- 높은 density ↔ 낮은 energy
- score ↔ 낮은 energy 쪽으로 가는 방향
3. $\nabla_x$는 정확히 무엇을 계산하는가
이제 세 번째입니다.
이 부분에서 많은 사람이 “gradient는 가장 빨리 증가하는 방향”이라고 외우기만 하고, 왜 그런지는 놓칩니다.
이번에는 그 이유까지 보겠습니다.
3-1. gradient는 좌표별 편미분을 모아놓은 벡터
함수 $f:\mathbb R^d\to\mathbb R$에 대해
입니다.
즉 $f(x)$는 스칼라값이고, gradient는 벡터입니다.
우리의 경우 $f(x)=\log p(x)$이므로
입니다.
이 말은 곧 score가 공간의 각 점마다 벡터 하나를 붙이는 벡터장(vector field)이라는 뜻입니다.
3-2. 방향미분이란 무엇인가
어떤 방향 $u\in\mathbb R^d$로 함수가 얼마나 변하는지 보고 싶다면 방향미분을 씁니다.
단위벡터 $u$에 대해
입니다.
이건 “$x$에서 방향 $u$로 아주 조금 움직였을 때 변화율”입니다.
3-3. 왜 방향미분이 $\nabla f(x)^\top u$가 되나
테일러 1차 전개를 쓰면
입니다.
양변에서 $f(x)$를 빼고 $h$로 나누면
이고, $h\to 0$ 극한을 취하면
가 됩니다.
즉 gradient와 방향미분의 관계는 그냥 외우는 공식이 아니라,
1차 근사식에서 바로 나오는 결과입니다.
3-4. 여기서 내적이 왜 나오나
는 gradient와 방향 $u$의 내적(inner product)입니다.
내적은
이기도 하고, 기하적으로는
이기도 합니다.
여기서 $\theta$는 두 벡터 사이의 각도입니다.
단위벡터 $u$라면 $|u|=1$이므로
입니다.
이제 왜 gradient가 “가장 빨리 증가하는 방향”인지가 바로 보입니다.
- $\theta=0$이면 $\cos\theta=1$
- → 최대 증가
- $\theta=\pi$이면 $\cos\theta=-1$
- → 최대 감소
- $\theta=\pi/2$이면 $\cos\theta=0$
- → 1차적으로 변화 없음
즉 gradient는 단지 “증가 방향”이 아니라,
모든 단위방향 중에서 방향미분을 최대화하는 방향
입니다.
그리고 그 최대 변화율의 크기가
입니다.
3-5. score에 적용하면
$f(x)=\log p(x)$이므로
입니다.
이건 매우 중요한 문장입니다.
score와 어떤 방향 $u$의 내적은, 그 방향으로 조금 움직였을 때 log-density가 얼마나 변하는지다.
즉 score는 공간 속 화살표이고,
내적은 “그 화살표와 내가 움직이려는 방향이 얼마나 정렬되어 있는가”를 측정합니다.
3-6. 등고선과의 관계
$\log p(x)$가 일정한 점들을 모으면 등고선(level set)이 됩니다.
예를 들어 2차원이라면 contour line처럼 생각할 수 있습니다.
gradient는 항상 그 등고선에 수직입니다.
왜냐하면 등고선 위로는 $f$값이 변하지 않으므로, 등고선 접선 방향 $v$에 대해서는
이어야 하기 때문입니다.
즉 gradient는 “같은 density를 유지하며 옆으로 가는 방향”이 아니라,
density contour를 가장 가파르게 뚫고 들어가는 방향
입니다.
score도 마찬가지입니다.
score는 density가 가장 빠르게 증가하는 법선 방향입니다.
4. 그래서 $s(x)=\nabla_x\log p(x)$는 실제로 무슨 의미인가
이제 핵심을 모아 보겠습니다.
score는 단순히 “로그밀도의 미분”이라고 끝낼 것이 아니라, 아래처럼 이해해야 합니다.
4-1. score는 분포의 국소적 1차 정보다
$p(x)$ 자체는 분포의 전체 모양을 담고 있습니다.
그런데 score는 그중에서도 현재 점 $x$에서의 국소적(first-order local) 정보를 담습니다.
즉 score는
- 지금 이 점에서
- 어느 방향으로 움직여야
- density가 가장 빠르게 커지는지
를 알려줍니다.
이건 “전역 구조”를 한 번에 주지는 않지만,
다음 한 걸음을 어디로 내딛어야 하는가를 알려주는 정보입니다.
4-2. score는 절대값이 아니라 상대적 기울기다
score는 $p(x)$의 값 그 자체가 아닙니다.
예를 들어 $p(x)$가 아주 큰 점에서도 score가 0일 수 있고,
$p(x)$가 그보다 작아도 score 크기가 클 수 있습니다.
왜냐하면 score는 높이(height)가 아니라 기울기(slope)이기 때문입니다.
산으로 비유하면,
- $p(x)$ 또는 $\log p(x)$: 지금 내가 해발 몇 미터쯤 있는가
- score: 여기서 어디로 가면 가장 가파르게 올라가는가
입니다.
높은 곳에 있어도 평평하면 gradient는 0입니다.
낮은 곳에 있어도 급경사면 gradient는 클 수 있습니다.
4-3. score가 0이라는 것은 무슨 뜻인가
이면 $\log p(x)$의 1차 변화가 없습니다.
즉 정지점(stationary point)입니다.
하지만 여기서 흔한 오해가 있습니다.
score가 0이라고 해서 무조건 mode는 아닙니다.
- local maximum일 수도 있고
- local minimum일 수도 있고
- saddle point일 수도 있습니다
이걸 구분하려면 2차 미분, 즉 Hessian
까지 봐야 합니다.
그래서 score는 1차 정보라는 점을 기억해야 합니다.
4-4. score를 공간 전체에서 알면 분포를 거의 복원할 수 있다
이건 조금 더 전문적인 포인트인데 중요합니다.
gradient는 어떤 스칼라 함수의 변화율입니다.
따라서 score를 전체 공간에서 알고 있으면, $\log p(x)$를 상수항을 제외하고 복원할 수 있습니다.
형식적으로는 기준점 $x_0$에서 $x$까지의 경로 $\gamma$를 따라
입니다.
여기서 $s(z)\cdot dz$는 내적입니다.
“작은 이동 $dz$”를 했을 때 log-density가 얼마나 변하는지를 누적해서 합친다고 보면 됩니다.
이 식이 말하는 바는 분명합니다.
score는 local 정보이지만, 전체 공간에서 알면 density를 상수항까지 복원할 수 있다.
즉 score는 분포의 주변 정보가 아니라, 분포 자체를 거의 결정하는 정보입니다.
4-5. 모든 벡터장이 score는 아니다
이것도 중요합니다.
임의의 벡터장 $v(x)$가 있다고 해서 그게 항상 어떤 $\log p(x)$의 gradient는 아닙니다.
score가 되려면 적어도 적절한 매끄러움 조건 아래에서 보존장(conservative field)이어야 합니다.
왜냐하면 gradient field는 경로적분이 경로에 의존하지 않고, 어떤 potential function의 변화량만 주기 때문입니다.
즉
라는 말은 단순히 벡터를 하나 준다는 뜻이 아니라,
그 벡터장이 실제로 어떤 스칼라 밀도함수의 기울기 구조를 가진다
는 꽤 강한 제약을 포함합니다.
5. 대표 예시: 1차원 가우시안에서 score 직접 계산
이제 score를 가장 잘 보여주는 예시를 보겠습니다.
입니다.
5-1. 로그를 취하면 왜 깔끔해지나
로그의 성질 $\log(ab)=\log a+\log b$를 쓰면
즉
입니다.
앞의 항은 $x$와 무관한 상수이므로 $C$라고 쓰면
가 됩니다.
이제 미분은 사실상 두 번째 항만 보면 됩니다.
5-2. 미분을 천천히 해보자
상수 $C$는 미분하면 0입니다.
따라서
여기서 $\mu$는 상수이므로
입니다. 그래서
즉
입니다.
5-3. 이 식을 어떻게 해석하나
이 식은 정말 중요합니다.
먼저 부호를 봅시다.
- $x>\mu$이면 $x-\mu>0$, 그래서 $s(x)<0$
- → 왼쪽으로 밀어줍니다
- $x<\mu$이면 $x-\mu<0$, 그래서 $s(x)>0$
- → 오른쪽으로 밀어줍니다
즉 항상 평균 $\mu$ 방향입니다.
5-4. 왜 크기가 거리 비례인가
이므로 평균에서 멀수록 score의 크기가 커집니다.
이건 당연한 구조입니다.
가우시안은 평균 근처에서 density가 가장 높고, 멀어질수록 density가 빠르게 줄어듭니다.
따라서 멀리 떨어진 점일수록 “다시 고밀도 영역으로 돌아와야 한다”는 신호가 더 강합니다.
5-5. 왜 $\sigma^2$가 분모에 들어가나
이 부분도 의미가 큽니다.
- $\sigma^2$가 크다→ 평균에서 조금 멀어져도 그렇게 이상하지 않음
- → score가 약함
- → 분포가 넓고 퍼져 있음
- $\sigma^2$가 작다→ 조금만 벗어나도 density가 급격히 줄어듦
- → score가 강함
- → 분포가 평균 근처에 빡빡하게 모여 있음
즉 $\sigma^2$는 “얼마나 빡빡한 분포인가”를 나타내고,
score는 그 기하를 정확히 반영합니다.
5-6. 2차 미분까지 보면 더 선명해진다
입니다.
항상 음수이므로, $\log p(x)$는 아래로 볼록한 concave 함수입니다.
그래서 $x=\mu$는 진짜 최대점(mode)입니다.
즉 가우시안에서는
- score가 0인 점이 평균 $\mu$
- 2차 미분이 음수
- 따라서 거기가 최대점
이라는 구조가 완벽하게 맞아떨어집니다.
6. 다변수 가우시안에서 왜 $-\Sigma^{-1}(x-\mu)$가 되나
이제 $x\in\mathbb R^d$인 경우를 보겠습니다.
이면
입니다.
여기서 많은 분이 막힙니다.
왜 미분하면
가 될까요?
이걸 천천히 보겠습니다.
6-1. 먼저 이 이차형식이 무엇인가
는 스칼라입니다.
행렬곱이지만 최종 결과는 숫자 하나입니다.
이걸 $y=x-\mu$, $A=\Sigma^{-1}$라고 놓으면
꼴입니다.
이건 좌표로 쓰면
입니다.
6-2. 왜 gradient가 $(A+A^\top)y$가 되나
각 좌표 $y_k$로 편미분해 봅시다.
에서 $y_k$가 나타나는 경우는 두 가지입니다.
- $i=k$인 경우
- $j=k$인 경우
따라서
입니다.
이걸 벡터형태로 쓰면
가 됩니다.
6-3. 왜 여기서는 $2Ay$가 되나
공분산행렬 $\Sigma$는 대칭행렬이고,
따라서 $\Sigma^{-1}$도 대칭행렬입니다.
즉
이므로
입니다.
따라서
가 됩니다.
이제 $y=x-\mu$, $A=\Sigma^{-1}$를 다시 넣으면
이고, 앞에 마이너스가 있으므로
가 됩니다.
6-4. 이 식의 의미
는 1차원 식의 완전한 일반화입니다.
하지만 여기서는 훨씬 더 풍부한 의미가 있습니다.
$\Sigma^{-1}$는 precision matrix인데,
이 행렬은 단순히 “역행렬”이 아니라
어느 방향으로 분포가 얼마나 예민한가
를 나타냅니다.
예를 들어 어떤 방향으로 분산이 작다면, 그 방향으로 조금만 벗어나도 density가 많이 감소합니다.
그래서 $\Sigma^{-1}$는 그 방향 성분을 크게 키웁니다.
즉 score는 단순히 평균으로 향하는 것이 아니라,
분포가 정의하는 자연스러운 기하에 따라 평균 쪽으로 복원하는 벡터
입니다.
6-5. 고유벡터 관점으로 보면 더 명확하다
라고 합시다.
그러면
입니다.
어떤 점의 편차 $x-\mu$를 고유벡터들 방향으로 분해하면,
- 분산이 큰 방향 $\lambda_i$에서는 $1/\lambda_i$가 작아서 score가 약하고
- 분산이 작은 방향에서는 $1/\lambda_i$가 커서 score가 강합니다
즉 분포가 납작하게 압축된 방향으로는 아주 민감하게 반응하고,
넓게 퍼진 방향으로는 덜 민감하게 반응합니다.
이게 score가 단순한 “중심복귀” 이상이라는 뜻입니다.
score는 분포의 방향별 구조를 담고 있습니다.
7. score가 알려주는 것과 알려주지 않는 것
이제 여기서 한 번 정리해 보겠습니다.
score가 알려주는 것
score는 현재 위치에서
를 통해
- density가 증가하는 가장 가파른 방향
- 그 증가의 세기
- 현재 점 주변의 국소적인 분포 구조
를 알려줍니다.
score가 바로 알려주지 않는 것
반면 score 하나만으로는 즉시
- $p(x)$의 절대값
- 멀리 떨어진 다른 mode들의 존재
- 전역적인 확률질량 배치
를 한눈에 알 수는 없습니다.
왜냐하면 score는 local derivative information이기 때문입니다.
다만 다시 강조하면,
score를 전체 공간에서 안다면 $\log p(x)$를 복원할 수 있으므로,
그때는 사실상 분포 전체를 알게 됩니다.
8. 한 단계 더: 혼합분포에서는 score가 왜 “가중평균”처럼 보이나
이건 조금 더 전문적이지만, score의 의미를 더 또렷하게 보여줍니다.
예를 들어
라고 합시다.
그러면
입니다.
여기서 $\nabla p_k(x)=p_k(x)\nabla\log p_k(x)$를 쓰면
가 됩니다.
즉
꼴입니다. 여기서
입니다.
이 $r_k(x)$는 “현재 점 $x$가 component $k$에서 왔을 plausibility”처럼 볼 수 있습니다.
즉 혼합분포의 score는
각 component score들의 단순합이 아니라, 현재 위치에서의 posterior weight로 가중된 평균
입니다.
이 예시는 score가 단순히 “가장 가까운 mode로 가라”가 아니라,
현재 위치에서 어떤 구조들이 얼마나 설득력 있는지를 반영한 방향장이라는 걸 보여줍니다.
9. 지금 단계에서 꼭 머리에 남아야 할 문장
여기까지를 압축해서, score를 다음처럼 이해하면 됩니다.
첫째,
는 점의 확률이 아니라 그 주변의 확률밀도다.
둘째,
를 쓰는 이유는 단순 계산편의만이 아니라,
상대적 변화율을 보기 위해서다.
셋째,
이므로, score와 방향 $u$의 내적은 그 방향으로 갈 때 log-density가 얼마나 변하는지를 뜻한다.
넷째, 내적 공식
때문에 score는 가장 빠른 증가 방향이 된다.
다섯째, 가우시안에서는
가 되어, score가 분포의 기하를 반영한 복원력으로 해석된다.
10. 가장 압축된 요약
한 줄로 가장 정확하게 말하면,
score는 로그밀도의 gradient이며, 현재 위치에서 밀도를 가장 빠르게 증가시키는 방향과 그 민감도를 나타내는 국소 벡터장이다.
조금 더 풀면,
- 수학적으로는: $\nabla_x \log p(x)$
- 기하적으로는: density contour에 수직인 상승방향
- 해석적으로는: 작은 이동에 대한 density ratio의 1차 정보
- 물리적으로는: energy를 줄이는 방향
- 확률적으로는: 분포의 local structure를 담는 신호
입니다.
'인공지능' 카테고리의 다른 글
| 개념정리 : diffusion : 이상적인 한 스텝 reverse (1) | 2026.03.28 |
|---|---|
| 개념 정리 : diffusion : forward (0) | 2026.03.28 |
| 개념 정리 : NW kernel regression with Gaussian (0) | 2026.03.27 |
| 개념 정리 : NW kernel regression (0) | 2026.03.27 |
| 개념 정리 : Method of Types : Large Deviations for Empirical Distributions : Sanov’s Theorem (0) | 2026.03.27 |
