콘텐츠로 이동

Part 2 마무리. 기초 복구 정리

Section ID: P2-summary Version: v2026.09.15

수학은 계산을 압축합니다. 수식에 담긴 계산 규칙은 Python으로 실행할 수 있고, NumPy 배열과 Pandas 표는 계산할 값의 구조를 표현합니다. 그래프는 결과의 변화와 분포를 보여 주며, 실행 환경과 Git 이력은 같은 결과를 다시 만들 조건을 추적하게 해 줍니다.

계산과 도구의 연결

구분 기억할 관점
수식과 코드 수식은 계산의 의도를 적고, 코드는 그 계산을 실행 가능한 절차로 옮깁니다.
로그와 지수 로그는 지수를 거꾸로 읽는 함수이고, 확률 점수와 손실을 읽는 언어로 다시 등장합니다.
변수와 데이터 수식의 변수는 코드에서 값, 배열, 표, 데이터셋으로 나타날 수 있습니다.
벡터와 행렬 벡터와 행렬은 여러 값을 위치와 방향, 축(axis), shape로 묶어 계산하게 합니다.
내적과 거리 내적은 벡터 관계를 한 숫자로 접고, 거리와 유사도는 비교 질문을 나누어 줍니다.
미분과 그래디언트 미분은 변화율을 읽는 도구이고, 그래디언트는 여러 방향의 변화를 함께 읽는 도구입니다.
합성함수와 연쇄 법칙 여러 계산 단계가 이어질 때 변화율이 어떻게 전달되는지 읽게 해 줍니다.
손실과 최적화 손실(loss)은 현재 결과가 얼마나 나쁜지 숫자로 만들고, 최적화(optimization)는 더 나은 값을 찾는 과정입니다.
확률과 통계 확률은 불확실성을 숫자로 표현하고, 통계는 데이터 묶음에서 판단 가능한 요약을 만듭니다.
Python과 실행 환경 같은 코드라도 Colab, 로컬 PC, 터미널, 노트북, 가상환경에 따라 실행 맥락이 달라집니다.
NumPy와 Pandas NumPy는 배열 계산을, Pandas는 표 형식 데이터 읽기와 정리를 돕습니다.
Matplotlib과 시각화 그래프는 숫자의 패턴, 분포, 관계, 학습 흐름을 눈으로 확인하게 합니다.
Git과 재현성 Git은 원고, 코드, 이미지, 근거 메모가 어떤 순서로 바뀌었는지 추적하게 합니다.

확률에서는 반복 관측의 장기 빈도와 불확실한 명제에 대한 믿음의 정도를 구분했습니다. 베이즈 규칙은 새 증거를 반영해 조건부 확률을 갱신하는 계산입니다. 미분·그래디언트는 입력이나 매개변수 변화에 따른 출력 변화를, 손실·최적화는 어떤 기준을 줄이도록 값을 조정하는지를 설명합니다.

구분할 개념

혼동하기 쉬운 항목 구분
Python 리스트와 NumPy 배열 리스트의 +는 연결이고, 배열의 +는 호환되는 모양에서 원소별 덧셈입니다.
표의 행과 샘플 학생 목록의 한 행은 학생 한 명일 수 있지만, 센서 기록의 여러 행이 동작 한 건을 이룰 수도 있습니다.
평균과 분포 같은 평균이어도 값의 퍼짐과 시간별 변화는 다를 수 있습니다.
학습 손실과 평가 결과 학습 데이터에서 손실이 줄어도 새 데이터의 성능은 별도로 확인해야 합니다.
상관과 원인 산점도의 경향만으로 한 변수가 다른 변수의 원인이라고 판단할 수 없습니다.
파일 저장과 커밋 저장은 현재 파일을 갱신하고, 커밋은 스테이징한 파일 상태를 이력에 기록합니다.

계산 기준과 변화 방향 구분하기

다음 질문에 먼저 답한 뒤 오른쪽 설명과 비교해 봅시다. 계산값뿐 아니라 그 값으로 무엇을 판단할 수 있는지도 확인합니다.

확인할 질문 계산과 해석
벡터 [1, 2]와 [3, 4]의 내적은 무엇인가? 같은 위치의 값을 곱해 더하면 1×3 + 2×4 = 11입니다. 내적은 한 숫자이며 두 벡터 사이의 거리와는 다릅니다.
손실이 L(w) = (w − 3)²일 때 w = 1에서 손실과 미분값은 각각 무엇인가? 손실은 4, 미분값은 2(w − 3) = −4입니다. 손실은 현재 오차의 크기를, 미분값은 이 위치에서 값을 바꿀 방향을 판단하는 데 쓰입니다.
위 조건에서 학습률을 0.1로 두고 경사하강법을 한 번 적용하면 어떻게 되는가? w = 1 − 0.1×(−4) = 1.4이고 손실은 2.56으로 줄어듭니다. 이 한 번의 감소가 모든 학습률·함수에서 감소를 보장하지는 않습니다.
[1, 3]과 [2, 2]는 평균이 같은가? 퍼짐도 같은가? 평균은 모두 2입니다. 평균에서 떨어진 거리의 제곱을 평균 내면 각각 1, 0이므로 퍼짐은 다릅니다.
실제 통과 비율이 1/3이면 다음 학생의 통과 확률도 반드시 1/3인가? 관측된 세 명의 비율만으로 다음 학생의 확률을 확정할 수 없습니다. 표본과 예측 대상의 조건을 함께 확인해야 합니다.

작은 표로 점검하기

시험 전까지의 공부 시간과 문제 풀이 수로 통과 여부를 예측한다고 합시다. 앞 두 열은 입력 특징이고 마지막 열은 시험 후 확인한 정답입니다.

study_hours solved_questions passed
1 5 0
2 9 0
4 16 1

predicted는 정확도 계산을 확인하려고 직접 지정한 예시 값입니다. 아래 코드는 모델을 학습하거나 X에서 예측값을 생성하지 않습니다. 예측값을 바꾸어 실제 통과 비율과 정확도 중 무엇이 달라지는지 확인합니다.

import numpy as np

X = np.array([[1, 5], [2, 9], [4, 16]])
y = np.array([0, 0, 1])
predicted = np.array([0, 1, 1])

print(X.shape, y.shape)
print("pass rate:", y.mean())
print("correct:", predicted == y)
print("accuracy:", (predicted == y).mean())
1
2
3
4
(3, 2) (3,)
pass rate: 0.3333333333333333
correct: [ True False  True]
accuracy: 0.6666666666666666

X는 샘플 3개와 특징 2개를 담고, y는 같은 순서의 정답 3개를 담습니다. 통과 여부의 평균은 실제 통과 비율 1/3입니다. 예측은 두 번째 학생만 틀렸으므로 정확도는 2/3입니다. 통과 비율과 예측 정확도는 다른 질문에 답하는 값입니다.

예측을 [0, 0, 1]로 바꾸면 정확도는 1이 되고 실제 통과 비율은 1/3로 유지됩니다. 문제 풀이 수를 입력에서 제외하면 X는 (3, 1)이 되지만 정답 3개는 그대로입니다. 입력 변경이 모델 결과에 미치는 영향을 비교하려면 같은 데이터 분할과 평가 기준을 사용하고 변경 내용을 기록해야 합니다.

관련 본문

확인할 내용 위치
입력·정답과 데이터 누수 P2-12.3
배열 모양과 축 P2-11.2
평균·분산 P2-5.2
내적·거리 P2-3.4
미분·그래디언트 P2-4.3
경사하강법 P2-6.3
손실 계산 P2-15.1
실행 위치와 환경 P2-7.6, P2-7.7
노트북 재실행 P2-10.3
메서드와 객체 P2-8.6
자료구조 비교 P2-9.4
그래프 비교·저장 P2-13.3
변경 이력 P2-14.1

남은 질문

작은 계산과 데이터 구조를 확인하는 기초 위에서, 머신러닝에서는 데이터로 규칙을 배우고 새 데이터에서 그 규칙을 평가합니다. 어떤 모델을 선택할지, 학습·검증·테스트를 어떻게 나눌지, 어떤 지표로 비교할지는 이어지는 모델 학습에서 다룰 질문입니다.

고급 수학 증명, 대규모 데이터 처리, 협업 자동화는 이 Part의 작은 예제보다 넓은 조건을 다룹니다. 여기서 실행한 코드가 큰 데이터에서도 같은 메모리 비용과 성능을 낸다고 가정해서는 안 됩니다.

체크리스트

  • 내적 계산과 벡터의 거리 계산을 구분할 수 있는가?
  • 손실값·미분값·학습률을 이용해 한 번의 매개변수 갱신을 설명할 수 있는가?
  • 평균이 같아도 퍼짐이 다를 수 있다는 점과 관측 비율·예측 확률의 차이를 설명할 수 있는가?

  • 위 표의 입력·정답과 배열 모양을 설명할 수 있는가?

  • 실제 통과 비율과 예측 정확도를 구분해 계산할 수 있는가?
  • 입력 특징이나 예측값을 바꾸면 무엇이 달라지는지 확인할 수 있는가?
  • 그래프의 축·표의 행 단위·코드의 실행 환경을 밝힐 수 있는가?
  • 결과와 함께 변경 조건·코드·데이터 버전을 기록할 수 있는가?

출처와 참고 자료

이 문서는 Part 2 본문을 바탕으로 작성한 자체 요약입니다. 각 개념의 근거는 관련 본문의 출처와 참고 자료에서 확인할 수 있습니다.