AI 수학 로드맵 노트 3 — Σ(시그마)는 그냥 for문이다

표 3 · 도식 1작성 Rhymbro

제1원리 질문. 수학은 왜 덧셈을 굳이 Σ라는 기호로 쓰는가. 더할 항이 수백, 수천 개일 때 하나하나 적을 수 없으니, ‘어디서부터 어디까지, 무엇을 더하라’는 규칙만 압축해서 적어 두려는 것이다. 이것은 프로그래밍의 반복문이 하는 일과 똑같다.

시그마 기호의 아래첨자, 위첨자, 오른쪽 식, 누적 합을 파이썬 반복문에 대응시킨 표
개념도 — 시그마와 반복문의 대응. 본문 내용을 바탕으로 자체 제작

핵심 — 시그마의 네 부품

로드맵 14주차는 수열과 Σ를 다루며 “Σ는 무섭지 않다 — 그냥 for문이다”라고 요약한다. 예를 들어 Σi=15 i2는 12 + 22 + 32 + 42 + 52 = 55다. 기호의 각 부분을 코드에 대응시키면 다음과 같다.

시그마 부품 예 의미 파이썬 대응
아래첨자 i = 1 시작 번호 range(1, …)의 시작
위첨자 5 끝 번호 range(…, 6) (끝+1)
오른쪽 식 i2 매번 계산할 항 반복문 안의 i ** 2
Σ 자체 더하기 누적 합 total += …

시그마 한 줄을 반복문으로네 부품이 코드 네 줄이 된다total = 0누적 변수 준비i = 1 … 5range(1, 6)i ** 2항 계산total += 항모두 더하기

위첨자 5가 range(1, 6)이 되는 부분, 즉 파이썬 range의 끝 값은 포함되지 않는다는 점이 가장 흔한 실수 지점이다.

코드로 번역하기

같은 합을 세 가지 방식으로 계산한다. 반복문, 제너레이터 식을 쓴 한 줄, 그리고 NumPy 배열 연산이다. 세 결과가 모두 55로 같다.

import numpy as np

# 시그마: i = 1부터 5까지 i^2 를 모두 더한다
total = 0
for i in range(1, 6):          # 아래첨자 i=1, 위첨자 5  ->  range(1, 6)
    total += i ** 2            # 시그마 오른쪽 식  ->  반복할 계산
print(total)                   # 55

# 같은 계산을 한 줄로
print(sum(i ** 2 for i in range(1, 6)))

# NumPy 벡터 연산 버전
i = np.arange(1, 6)
print(np.sum(i ** 2))

실행 결과

55
55
55

사례 적용 — 평균과 손실함수 속의 Σ

시그마는 AI 수식 곳곳에 숨어 있다. 평균은 Σxi / n, 즉 ‘모두 더해서 개수로 나누기’다. 로드맵 45주차의 손실함수 MSE도 ‘오차 제곱을 모두 더해 평균 낸 것’이라 시그마가 그대로 들어간다. 20주차의 내적 역시 Σaibi, 같은 칸끼리 곱해서 더하는 시그마다.

그래서 시그마를 ‘반복문 하나’로 읽을 수 있게 되면, 뒤에 나오는 공식의 절반은 이미 코드로 보이기 시작한다. NumPy의 np.sum, np.mean, np.dot은 모두 이 반복문을 내부에서 빠르게 대신 돌려 주는 함수라고 이해하면 된다.

1분 개념 체크

로드맵 교재 템플릿의 ‘1분 개념 체크’ 형식을 빌려 스스로 확인할 문제 두 개를 만들었다.

질문 답 근거
Σi=14 2i의 값은? 20 2 + 4 + 6 + 8
Σi=37를 range로 쓰면? range(3, 8) range의 끝 값은 포함되지 않으므로 7 + 1

내 해석 — Rhymbro가 읽은 것

시그마를 반복문으로 읽는 방식은 PLC 래더에서 누적 카운터를 만드는 구조와 닮았다. 매 스캔마다 조건을 보고 누적 레지스터에 값을 더하는 것도 결국 ‘시작값, 반복 범위, 매번 더할 값’의 세 가지를 정하는 일이다. 기호의 모양이 낯설 뿐 하는 일은 이미 익숙한 누적 연산이었다.

한편 이중 시그마(ΣΣ)는 이중 for문이 된다는 점도 확인해 두었다. 행렬 계산으로 넘어가면 이 이중 반복이 자주 나오므로 로드맵 2단계에서 다시 다룬다.

반론으로, 시그마를 전부 반복문으로 구현하면 데이터가 클 때 느려지므로 실제 코드에서는 NumPy 벡터 연산으로 바꿔 쓰는 편이 일반적이다.

요약

항목 정리
Σi=1n f(i) i를 1부터 n까지 바꾸며 f(i)를 모두 더함
반복문 for i in range(1, n+1): total += f(i)
NumPy np.sum(f(np.arange(1, n+1)))
주의 range의 끝 값은 포함되지 않음

그래서 나는 무엇을 하기로 했나

이번 주는 평균, 분산, 내적 공식을 하나씩 골라 시그마 형태로 적고, 각각을 for문과 NumPy 한 줄 두 가지로 구현해 결과가 같은지 확인하기로 했다.

주제와 순서는 개인 학습용으로 정리한 104주 AI 수학 로드맵 목차를 따랐고, 설명과 예제는 그 목차를 바탕으로 내 언어로 다시 썼다. 코드는 Python 3 + NumPy 2.x에서 실행해 출력을 확인했으며, 예시 수치는 설명용 가정 값이다.

함께 읽기: AI 수학, 네 기둥만 먼저 세운다 — 내가 잡은 로드맵

같은 카테고리에서 함께 읽기

강의자료 121편

댓글 1개

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다