P2-2.2 시그마(sigma)와 반복 계산¶
Section ID:
P2-2.2Version:v2026.07.20
P2-2.1에서는 변수(variable), 함수(function), 식(expression)을 다시 읽었습니다. 이제 수식에서 자주 만나는 반복 계산 표기를 봅니다.
시그마(sigma)는 낯설어 보이지만, 핵심은 단순합니다. 여러 값을 반복해서 더하라는 뜻입니다. AI 문서에서는 데이터 여러 개의 합, 평균(mean), 손실(loss)의 합, 배치(batch) 단위 계산을 설명할 때 자주 등장합니다.
여기서는 시그마가 “반복되는 덧셈을 압축해서 쓴 표기”라는 구조를 보여 주고, 그것이 코드의 반복(loop), 배열 계산(array computation), 평균 손실 계산과 어떻게 연결되는지 설명합니다.
여기서는 시그마(sigma), 인덱스(index), 평균(mean), 반복 계산(repeated computation), 손실 집계(loss aggregation)를 다시 정리합니다. 2.1에서 변수, 함수, 식의 최소 문법을 읽었다면, 그 문법이 여러 데이터에 대해 반복될 때 어떤 압축 표기로 바뀌는지 정리합니다.
시그마를 이해하면 이후의 여러 내용을 더 편하게 읽을 수 있습니다. 특히 “데이터가 여러 개일 때 같은 계산을 반복하고 그 결과를 모은다”는 구조가 보이기 시작합니다.
- 평균(mean), 분산(variance), 표준편차(standard deviation)처럼 여러 값을 요약하는 통계 표기를 읽기 쉬워집니다.
- 손실(loss)과 평균 손실(mean loss)이 왜 데이터 여러 개에 대해 계산되는지 이해하기 쉬워집니다.
- 벡터(vector), 행렬(matrix), 배치(batch) 계산에서 여러 성분이나 샘플을 한꺼번에 다루는 흐름을 따라가기 쉬워집니다.
- 그래디언트(gradient)와 최적화(optimization)를 배울 때 “여러 항의 영향이 합쳐진다”는 설명을 받아들이기 쉬워집니다.
- Python 반복문(loop), NumPy 배열 계산(array computation), 딥러닝 프레임워크의 텐서 연산(tensor operation)을 같은 반복 구조의 다른 표현으로 볼 준비가 됩니다.
핵심 기준: 시그마(sigma)와 반복 계산¶
- 시그마(sigma)를 반복 덧셈의 압축 표기로 읽을 수 있습니다.
- 인덱스(index), 시작값, 끝값, 더할 항(term)을 구분할 수 있습니다.
- 평균(mean)을 시그마 관점과 코드 관점으로 설명할 수 있습니다.
- 여러 데이터의 손실(loss)을 더하거나 평균 내는 흐름을 직관적으로 읽을 수 있습니다.
- 시그마가 나오면 먼저 “무엇을 몇 번 더하는가?”라고 질문할 수 있습니다.
- 시그마 표기를 위, 아래, 오른쪽 항으로 나누어 읽을 수 있습니다.
- 시그마가 이후 통계, 손실 계산, 배치 계산, 최적화 설명으로 이어지는 이유를 말할 수 있습니다.
- 간단한 시그마 식을 풀어 써서 실제 합을 계산할 수 있습니다.
세 가지 기준¶
본문을 읽을 때 기준이 되는 세 가지 관점은 다음과 같습니다.
| 기준 | 왜 중요한가 | 이 절에서 필요한 이해 수준 |
|---|---|---|
| 시그마는 같은 모양의 덧셈을 반복하라는 압축 표기라는 점 | 낯선 기호를 계산 구조로 다시 읽게 해 줍니다. | 시그마를 보면 무엇을 몇 번 더하는지 묻는다고 이해합니다. |
| 인덱스는 몇 번째 값을 더하는지 구분하는 이름이라는 점 | 반복 위치를 놓치지 않게 해 줍니다. | 아래 첨자와 반복 인덱스를 연결해 읽는다고 이해합니다. |
| 시그마가 AI 문서에 자주 나오는 이유는 여러 데이터를 모아 합·평균·손실을 계산하기 때문이라는 점 | 통계와 손실 집계가 왜 같은 표기를 공유하는지 보여 줍니다. | 평균과 손실 집계가 반복 덧셈 구조라는 점을 이해합니다. |
시그마를 읽는 수학교육적 관점¶
수학 교육에서 시그마는 보통 “합을 나타내는 기호”로 배웁니다. 하지만 처음 다시 읽을 때는 합계 기호라는 정의보다, 표기 안에 들어 있는 역할을 나누어 보는 편이 더 도움이 됩니다.
이 한 줄에는 세 가지 정보가 들어 있습니다.
- 큰 기호 \(\sum\): 더하라는 명령입니다.
- 아래 \(i=1\): 어디서 시작할지 알려 줍니다.
- 위 \(n\): 어디까지 반복할지 알려 줍니다.
- 오른쪽 \(x_i\): 반복할 때마다 무엇을 더할지 알려 줍니다.
이렇게 나누어 보면 시그마는 갑자기 등장한 어려운 기호가 아니라, 반복 덧셈을 짧게 적는 문장처럼 읽을 수 있습니다.
- i를 1에서 시작합니다.
- i가 n이 될 때까지 반복합니다.
- 매번
x_i를 더합니다.
즉 시그마는 “합”이라는 결과만 말하는 기호가 아닙니다. 무엇을 어떤 순서와 범위로 모을지 함께 적는 표기입니다. 이 관점은 코드의 반복문(loop)을 떠올릴 때도 유용합니다.
다만 시그마가 코드의 반복문과 완전히 같다는 뜻은 아닙니다. 수학 표기는 계산 구조를 압축해 보여 주고, 코드는 그 계산을 실제 실행 절차로 풀어 씁니다. 여기서는 두 표현이 같은 반복 구조를 다른 방식으로 보여 준다는 정도로 연결합니다.
간단한 시그마 풀이¶
시그마는 짧은 식을 직접 풀어 써 보면서 읽습니다.
이 식은 \(i\)를 1부터 3까지 바꾸며 \(i\) 자체를 더하라는 뜻입니다.
따라서 다음처럼 풀어 쓸 수 있습니다.
조금 더 AI 문서에 가까운 형태로 보면 다음과 같습니다.
만약 \(x_1=2\), \(x_2=4\), \(x_3=6\)이라면 다음처럼 계산합니다.
평균까지 계산하면 다음과 같습니다.
이 정도의 풀이만 할 수 있어도 AI 문서에서 평균 손실(mean loss), 배치 손실(batch loss), 데이터 전체의 합 같은 표기를 읽을 준비가 됩니다. 중요한 것은 공식을 외우는 것이 아니라, 시그마를 보면 먼저 펼쳐 쓴 뒤 계산해 보는 습관입니다.
시그마는 반복 덧셈을 줄여 쓴다¶
다음 데이터가 있다고 해 봅니다.
이 네 값을 모두 더하면 다음과 같습니다.
시그마(sigma)는 이 반복을 짧게 씁니다.
이 식은 다음처럼 읽습니다.
- i를 1부터 4까지 바꿉니다.
x_i를 하나씩 가져옵니다.- 모두 더합니다.
즉 다음 계산과 같습니다.
시그마를 볼 때 가장 먼저 볼 것은 기호의 모양이 아니라 반복 구조입니다. 즉 무엇을 더하는지, 어디서 시작하는지, 어디서 끝나는지, 반복 위치를 나타내는 이름이 무엇인지를 먼저 봅니다.
인덱스는 반복 위치를 나타낸다¶
시그마에서 i는 인덱스(index)입니다. 인덱스는 지금 몇 번째 값을 보고 있는지 나타내는 이름입니다.
여기서 각 부분은 다음처럼 읽습니다.
i: 반복 위치를 나타내는 인덱스(index)1: 시작 위치n: 끝 위치xi: i번째 값Σ: i를 바꾸며 값을 더하라는 표시
코드로는 다음과 비슷합니다.
문제 상황: 시그마의 반복 덧셈 구조를 코드 반복문으로 옮겨 봅니다. 입력(input): 값 네 개가 들어 있는 리스트 values입니다. 기대 출력(output): 전체 합 10이 출력됩니다. 확인할 개념: 시그마 표기의 반복 구조는 코드에서는 반복문과 누적 합 형태로 나타날 수 있다는 점을 봅니다.
실행 결과 예시:
수식의 i와 코드의 value가 완전히 같은 것은 아닙니다. 하지만 둘 다 반복 중 현재 보고 있는 대상을 가리킨다는 점에서 연결됩니다.
평균은 합을 개수로 나눈다¶
평균(mean)은 시그마를 이해하기 좋은 예입니다. 여러 값을 모두 더하고, 그 개수로 나누면 평균입니다.
시그마로 쓰면 다음처럼 압축됩니다.
이 식은 다음처럼 읽습니다.
- i를 1부터 n까지 바꾸며
x_i를 모두 더합니다. - 그 합을 n으로 나눕니다.
코드로는 다음처럼 쓸 수 있습니다.
문제 상황: 평균 공식을 시그마 관점 대신 코드의 sum과 len으로 계산합니다. 입력(input): 값 네 개가 들어 있는 리스트 values입니다. 기대 출력(output): 평균값 2.5가 출력됩니다. 확인할 개념: 평균은 여러 값을 더한 뒤 개수로 나누는 반복 구조라는 점을 코드에서도 확인합니다.
실행 결과 예시:
NumPy 배열(array)을 쓰면 더 짧게 쓸 수 있습니다.
문제 상황: 같은 평균 계산을 NumPy 배열 메서드로 더 짧게 표현합니다. 입력(input): 값 네 개를 담은 NumPy 배열 values입니다. 기대 출력(output): 평균값 2.5가 출력됩니다. 확인할 개념: 시그마를 직접 쓰지 않아도 배열 계산 안에 같은 반복 구조가 숨어 있다는 점을 봅니다.
실행 결과 예시:
여기서 values.mean()은 내부적으로 평균 계산을 수행합니다. 수식의 시그마를 직접 쓰지는 않지만, 여러 값을 모아 계산한다는 구조는 같습니다.
손실도 여러 데이터에 대해 반복 계산된다¶
머신러닝에서 손실(loss)은 모델 출력과 기준값 사이의 차이를 숫자로 표현합니다. 데이터가 하나라면 손실도 하나만 계산하면 됩니다.
하지만 실제 학습에서는 데이터가 여러 개입니다. 각 데이터마다 예측(prediction)과 목표값(target)이 있고, 각 데이터마다 손실이 생깁니다.
전체 손실(total loss)을 단순히 더하면 다음과 같습니다.
시그마로 쓰면 다음과 같습니다.
평균 손실(mean loss)은 이 합을 데이터 개수로 나눈 것입니다.
코드로는 다음처럼 볼 수 있습니다.
문제 상황: 여러 데이터에 대한 손실을 반복 계산하고 평균 손실을 구합니다. 입력(input): 예측값 리스트 predictions와 정답 리스트 targets입니다. 기대 출력(output): 각 샘플 손실의 평균값이 출력됩니다. 확인할 개념: 손실도 데이터 여러 개에 대해 같은 계산을 반복하고 그 결과를 평균내는 구조라는 점을 봅니다.
실행 결과 예시:
이 예시는 실제 딥러닝 학습 코드를 단순화한 것입니다. 핵심은 데이터가 여러 개라서 같은 계산이 반복되고, 그 반복 결과를 합치거나 평균 낸다는 점입니다.
배치 계산도 같은 관점으로 읽는다¶
딥러닝에서는 데이터를 하나씩 처리하기보다 여러 개를 묶어 배치(batch)로 처리하는 일이 많습니다. 배치 안에는 여러 샘플(sample)이 있고, 모델은 각 샘플에 대해 출력을 만듭니다. 여기서 batch는 여러 입력 데이터 묶음이고, prediction은 각 입력에 대한 모델 출력이며, loss는 각 출력과 기준값의 차이이고, mean_loss는 배치 안 손실의 평균입니다.
이때도 시그마의 관점은 유지됩니다. 즉 배치 안의 각 샘플을 보고, 각 샘플의 손실을 계산한 뒤, 그 손실들을 더하거나 평균 냅니다.
사례 및 예시¶
사례 1. 배치 손실을 왜 한 건이 아니라 여러 건의 합으로 읽어야 하는가¶
학습자가 모델 손실(loss) 식을 볼 때 왜 굳이 시그마가 붙어 있지?라고 느낄 수 있습니다. 한 건의 예측 오차만 보면 간단하지만, 실제 학습은 보통 데이터 여러 개를 한꺼번에 보고 그 손실을 모아 판단하기 때문입니다.
예를 들어 이미지 네 장을 한 배치(batch)로 넣으면 각 이미지마다 손실이 하나씩 생깁니다. 이때 시그마는 네 장의 손실을 하나씩 계산해 모두 더한다는 반복 구조를 압축해서 보여 줍니다. 평균 손실은 그 합을 다시 데이터 개수로 나눈 값입니다.
이 사례는 시그마가 단순한 수학 장식이 아니라는 점을 드러냅니다. 평균, 분산, 전체 손실, 배치 손실처럼 여러 값을 한꺼번에 요약하는 거의 모든 장면에서 시그마는 같은 계산을 반복해 모은다는 구조를 맡습니다.
즉 시그마를 보면 먼저 무엇을 몇 번 더하는가를 물으면 됩니다. 이 질문만 붙잡아도 복잡해 보이는 손실 식과 통계 식이 훨씬 덜 낯설어집니다.
라이브러리 코드는 이 반복을 숨길 수 있습니다.
문제 상황: 앞의 손실 반복 계산을 NumPy 배열 연산으로 한 번에 표현합니다. 입력(input): 예측 배열 predictions와 정답 배열 targets입니다. 기대 출력(output): 평균 손실값이 출력됩니다. 확인할 개념: 반복문이 보이지 않아도 배열 계산 안에서 같은 반복 구조가 수행된다는 점을 봅니다.
실행 결과 예시:
반복문이 보이지 않지만 반복 계산이 사라진 것은 아닙니다. 배열 계산이 여러 값을 한 번에 다루도록 표현을 바꾼 것입니다.
시그마를 볼 때의 읽기 순서¶
시그마가 나오면 다음 순서로 읽습니다.
- 더할 대상이 무엇인가?
- 반복 인덱스는 무엇인가?
- 시작 위치와 끝 위치는 어디인가?
- 결과는 합인가, 평균인가?
- 코드에서는 반복문인가, 배열 계산인가?
예를 들어 다음 식을 봅니다.
이 식은 i번째 예측값과 i번째 목표값의 차이를 구하고, 그 차이를 제곱한 뒤, i를 1부터 n까지 바꾸며 모두 더하고, 마지막으로 n으로 나누어 평균을 낸다고 읽을 수 있습니다.
이것은 평균 제곱 오차(mean squared error, MSE)의 직관으로 이어집니다. 다만 MSE 자체는 평가 지표와 손실 함수에서 다시 다루면 됩니다. 여기서는 시그마가 반복 계산을 압축한다는 점만 기억합니다.
시그마가 어렵게 느껴지는 이유¶
시그마가 어려운 이유는 덧셈 자체가 어려워서가 아닙니다. 반복할 변수, 반복 범위, 더할 항, 전체 합, 평균 여부 같은 압축된 정보가 한곳에 모여 있기 때문입니다.
이 정보가 한 줄에 들어가면 낯설게 보일 수 있습니다. 그러나 코드로 풀면 대부분 반복문 또는 배열 계산입니다.
시그마 표기는 코드에서는 반복문, 배열 연산, 합 또는 평균 결과 계산으로 펼쳐질 수 있습니다.
따라서 시그마를 외우기보다 풀어 쓰는 연습이 먼저입니다.
체크리스트¶
- 시그마(sigma)를 반복 덧셈의 압축 표기로 설명할 수 있다.
- 인덱스(index), 시작 위치, 끝 위치, 더할 항(term)을 구분할 수 있다.
- 평균(mean)을 시그마 표기와 코드로 모두 설명할 수 있다.
- 여러 데이터의 손실(loss)을 더하거나 평균 내는 흐름을 설명할 수 있다.
- 반복문(loop)과 배열 계산(array computation)이 시그마 표기와 연결될 수 있음을 설명할 수 있다.
- 시그마가 나오면 “무엇을 몇 번 더하는가?”라는 질문으로 풀어 읽을 수 있다.
- 시그마가 이후 통계(statistics), 손실 계산(loss calculation), 배치 계산(batch calculation), 최적화(optimization)를 읽는 데 도움이 되는 이유를 설명할 수 있다.
- 간단한 시그마 식을 항(term)별로 펼쳐 쓰고 합 또는 평균을 계산할 수 있다.
- 시그마를 공식을 외우는 기호보다 반복과 집계를 읽는 첫 표지로 설명할 수 있다.
- 평균, 손실, 배치 계산이 같은 집계 구조라는 점을 시그마와 코드로 연결해 설명할 수 있다.
출처와 참고 자료¶
- Marc Peter Deisenroth, A. Aldo Faisal, Cheng Soon Ong, Mathematics for Machine Learning, Cambridge University Press, 2020, 확인 날짜: 2026-07-19.
- Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press, 2016, 확인 날짜: 2026-07-19.
- Charles R. Harris et al., Array Programming with NumPy, Nature, 2020, 확인 날짜: 2026-07-19.
- NumPy Developers, numpy.sum, NumPy User Guide, 확인 날짜: 2026-07-19. 배열 원소의 합과 축 기준 합 계산을 설명하는 공식 참고 자료입니다.
- NumPy Developers, numpy.mean, NumPy User Guide, 확인 날짜: 2026-07-19. 평균 계산과
mean()예제를 뒷받침하는 공식 참고 자료입니다.