P2-3.1 스칼라(scalar), 벡터(vector), 행렬(matrix)¶
Section ID:
P2-3.1Version:v2026.09.08
AI 데이터는 숫자 하나, 값의 목록, 행과 열을 가진 표로 표현할 수 있습니다. 각각 스칼라(scalar), 벡터(vector), 행렬(matrix)에 대응합니다.
숫자·목록·표¶
| 기준 | 왜 중요한가 |
|---|---|
| 스칼라는 숫자 하나다 | 손실, 확률, 학습률처럼 단일 값을 읽는 기본 단위가 되기 때문입니다. |
| 벡터는 순서 있는 값의 목록이다 | 한 대상을 여러 특징으로 표현할 때 가장 자주 쓰이는 모양이기 때문입니다. |
| 행렬은 여러 벡터를 함께 담는 표다 | 여러 샘플과 여러 특징을 한꺼번에 계산할 때 행과 열 구조가 필요하기 때문입니다. |
데이터의 숫자 표현¶
AI 모델은 현실의 문장, 이미지, 소리, 표를 그대로 계산하지 않습니다. 대부분 숫자로 바꾸고, 그 숫자를 배열(array) 형태로 다룹니다.
- 문장은 토큰을 거쳐 숫자 ID와 벡터로 바뀝니다.
- 이미지는 픽셀 값을 담은 배열로 바뀝니다.
- 표 데이터는 행과 열 구조를 가진 행렬 또는 데이터프레임으로 읽힙니다.
숫자 배열의 모양은 다음 질문으로 구분할 수 있습니다.
- 값이 하나인가?
- 값이 한 줄로 모였는가?
- 값이 행과 열로 배치되었는가?
- 여러 데이터가 한꺼번에 묶였는가?
이 질문은 실제 코드에서도 그대로 중요합니다. AI 코드에서 오류가 나는 이유 중 하나는 값의 의미보다 모양(shape)을 잘못 이해했기 때문입니다.
스칼라: 숫자 하나¶
스칼라(scalar)는 숫자 하나입니다. 예를 들면 다음 값들은 모두 스칼라로 볼 수 있습니다.
AI 문맥에서는 스칼라가 여러 곳에서 등장합니다.
- 하나의 온도 값
- 하나의 확률(probability)
- 하나의 손실(loss)
- 하나의 정확도(accuracy)
- 하나의 학습률(learning rate)
예를 들어 어떤 모델의 평균 손실이 0.25라고 하면, 그 값 자체는 스칼라입니다.
스칼라는 작아 보이지만 중요합니다. 모델을 평가할 때 많은 계산 결과를 하나의 숫자로 요약하는 일이 많기 때문입니다. 다만 하나의 숫자는 많은 정보를 압축합니다. 손실이 0.25라는 말만으로 어떤 데이터에서 잘했는지, 어떤 데이터에서 틀렸는지는 알 수 없습니다.
위치별 덧셈과 스칼라배¶
스칼라, 벡터, 행렬은 단순히 모양만 다른 것이 아닙니다. 수학적으로는 “어떤 계산을 할 수 있는가”가 달라집니다.
스칼라는 숫자 하나이므로 보통의 사칙연산을 바로 생각할 수 있습니다.
벡터는 같은 위치의 값끼리 더할 수 있습니다.
스칼라를 벡터에 곱하면 벡터의 각 값에 같은 숫자를 곱합니다.
행렬도 같은 모양(shape)이면 위치별로 더할 수 있습니다.
이 계산들은 복잡한 선형대수라기보다 “같은 위치끼리 계산한다”는 규칙에 가깝습니다. 여기서 shape이 중요해집니다. 길이가 다른 벡터나 행과 열의 수가 다른 행렬은 위치별 계산을 바로 할 수 없습니다.
- 같은 모양이면 위치별 계산이 가능합니다.
- 모양이 다르면 어떤 값끼리 계산할지 먼저 정해야 합니다.
벡터: 순서 있는 값¶
벡터(vector)는 순서가 있는 값의 목록으로 볼 수 있습니다.
여기서 \(\mathbf{x}\)는 값 3개를 가진 벡터입니다.
예를 들어 한 사람을 나이: 30, 키: 172, 월 방문 횟수: 5라는 세 값으로 표현한다고 해 봅니다.
이 값을 벡터로 쓰면 다음처럼 볼 수 있습니다.
이 벡터는 한 사람의 특징(feature)을 숫자 목록으로 표현한 것입니다. 머신러닝에서는 이렇게 여러 특징을 모아 하나의 입력(input)으로 사용하는 일이 많습니다.
벡터에서 순서는 중요합니다. 첫 번째 값이 나이인지, 키인지, 방문 횟수인지 정해져 있어야 합니다.
순서가 바뀌면 같은 숫자라도 의미가 달라집니다.
따라서 벡터는 단순한 숫자 묶음이 아니라, 각 위치가 의미를 갖는 숫자 묶음입니다.
행렬: 행과 열¶
행렬(matrix)은 숫자를 행(row)과 열(column)로 배치한 구조입니다.
이 행렬은 2개의 행과 3개의 열을 가집니다. 보통 \(2 \times 3\) 행렬이라고 말합니다. 여기서 행(row)은 가로 방향의 한 줄이고, 열(column)은 세로 방향의 한 줄이며, shape은 행과 열의 개수입니다.
AI 데이터에서는 한 행(row)을 하나의 데이터 샘플(sample)로, 한 열(column)을 하나의 특징(feature)으로 읽을 수 있습니다.
예를 들어 사람 3명의 데이터를 나이, 키, 방문 횟수로 표현하면 다음과 같습니다.
이 경우 행은 3개이고, 열은 3개입니다. 즉 행 3개는 사람 3명, 열 3개는 나이, 키, 월 방문 횟수를 뜻합니다.
이 관점은 머신러닝의 데이터셋(dataset)을 읽을 때 매우 중요합니다. 많은 입문 자료에서 \(X\)는 입력 데이터 전체를 뜻하고, \(y\)는 각 행에 대응하는 목표값(target)이나 라벨(label)을 뜻합니다.
shape과 계산 조건¶
shape은 데이터의 모양입니다. 값이 하나인지, 값의 목록인지, 행과 열을 가진 배열인지 확인하는 정보입니다.
NumPy에서 숫자 하나, 값 세 개, 2행 3열의 배열을 만들고 shape를 출력합니다.
이 코드는 세 값의 모양을 확인합니다. 결과는 스칼라 (), 벡터 (3,), 행렬 (2, 3)처럼 읽힙니다.
라이브러리나 설정에 따라 스칼라의 표현은 조금 다르게 보일 수 있지만, 핵심은 같습니다. 스칼라는 숫자 하나이고, 벡터는 숫자 목록이며, 행렬은 행과 열을 가진 숫자 배열입니다.
shape이 중요한 이유는 계산 가능 여부가 shape에 따라 달라지기 때문입니다. 예를 들어 길이가 다른 벡터끼리는 위치별로 더하기 어렵습니다.
이 식은 어느 값끼리 더해야 하는지 맞지 않습니다. 코드에서도 shape이 맞지 않으면 오류가 나거나, 의도하지 않은 방식으로 계산될 수 있습니다.
행과 열의 의미¶
행렬은 숫자 배열이지만, 그 숫자의 의미는 문제 정의에서 정해집니다. 같은 \(3 \times 3\) 행렬이라도 문맥에 따라 표 데이터에서는 행이 사람이고 열이 특징일 수 있고, 이미지 일부에서는 행과 열이 픽셀 위치일 수 있으며, 문장 데이터에서는 행이 토큰이고 열이 임베딩 차원일 수 있고, 배치 데이터에서는 행이 샘플이고 열이 특징일 수 있습니다.
따라서 행렬을 볼 때는 숫자 모양만 보지 말고, 이 행은 무엇을 나타내는지, 이 열은 무엇을 나타내는지, 각 값의 단위는 무엇인지, 행과 열의 순서는 고정되어 있는지를 확인해야 합니다.
AI 문서에서 “입력 행렬”, “특징 행렬”, “임베딩 행렬” 같은 표현을 만나면, 먼저 행과 열의 의미를 확인합니다.
AI 계산의 데이터 모양¶
AI 계산에서 같은 배열 모양도 다음처럼 다른 역할을 맡습니다.
- 임베딩(embedding): 텍스트나 항목을 벡터로 표현합니다.
- 특징(feature): 하나의 데이터 샘플을 여러 값의 벡터로 표현합니다.
- 배치(batch): 여러 샘플을 행렬 또는 더 높은 차원의 배열로 묶습니다.
- 손실(loss): 여러 계산 결과를 하나의 스칼라로 요약하기도 합니다.
- 모델 파라미터(parameter): 가중치(weight)가 벡터나 행렬 형태를 가질 수 있습니다.
- 행렬 곱(matrix multiplication): 여러 입력과 가중치를 한꺼번에 계산하는 기본 도구가 됩니다.
학생 수와 특징 수¶
다음 데이터가 있다고 해 봅니다.
이 행렬을 행(row)은 학생, 열(column)은 [공부 시간, 퀴즈 점수]로 해석한다고 가정합니다.
그러면 이 행렬은 첫 번째 학생이 공부 시간 2, 퀴즈 점수 8이고, 두 번째 학생이 공부 시간 4, 퀴즈 점수 6이며, 세 번째 학생이 공부 시간 5, 퀴즈 점수 9라는 의미를 가집니다.
여기서 한 학생의 데이터는 벡터입니다.
세 학생의 데이터를 모두 모으면 행렬입니다.
이 행렬의 shape은 (3, 2)입니다. 학생은 3명이고, 각 학생의 특징은 공부 시간과 퀴즈 점수 두 가지입니다. 두 번째 학생의 퀴즈 점수는 2행 2열의 값 6입니다. 학생 한 명을 더 추가하면 (4, 2), 특징 한 가지를 더 추가하면 (3, 3)이 됩니다.
체크리스트¶
- 스칼라(scalar)를 숫자 하나로 설명할 수 있다.
- 벡터(vector)를 순서가 있는 값의 목록으로 설명할 수 있다.
- 행렬(matrix)을 행(row)과 열(column)을 가진 숫자 배열로 설명할 수 있다.
- shape이 계산 가능 여부와 오류에 영향을 줄 수 있음을 설명할 수 있다.
- 행과 열의 의미는 문제 정의에 따라 달라진다는 점을 설명할 수 있다.
- 하나의 샘플(sample)을 벡터로, 여러 샘플을 행렬로 읽을 수 있다.
- 스칼라, 벡터, 행렬이 임베딩, 특징, 배치, 손실, 파라미터에서 다시 등장하는 이유를 설명할 수 있다.
- 같은 shape의 벡터와 행렬은 위치별 덧셈을 할 수 있고, 스칼라배는 각 값에 같은 숫자를 곱하는 계산임을 설명할 수 있다.
X의 모양, 샘플 수, 특징 수가 섞일 때 shape 감각으로 다시 구분할 수 있다.
출처와 참고 자료¶
- 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.ndarray.shape, NumPy User Guide, 확인 날짜: 2026-07-19.
shape를 배열 차원 정보로 읽는 설명과 코드 예제를 확인하는 공식 참고 자료입니다. - scikit-learn developers, Glossary of Common Terms and API Elements, scikit-learn User Guide, 확인 날짜: 2026-07-19.
X를 입력 데이터 행렬,y를 target으로 읽는 관례를 확인하는 참고 자료입니다.