본문으로 건너뛰기
67 / TENSOR LAB
먼저 알아두면 좋아요 · 연결된 선수 단원의 기저·선형사상·내적·분해
단원 목록 (103) · Broadcasting과 연산의 의미
이해하는 속도로 읽으세요.개념도이론실험확인 문제
BUILD YOUR INTUITION

먼저 그림으로 이해하기

한 번에 한 단계씩 살펴보세요.

shape 호환성과 계산의 뜻을 따로 확인하고 원소별 곱을 행렬곱으로 읽지 않습니다.

A shape=(2,3); B shape=(3); op=elementwise +

905이산 지표의 값 · 선형 보간하지 않습니다.
가로: 출력 평탄 인덱스 · 세로: 원소별 연산 결과
연산 결과
ijoutput
002
014
026
105
117
129

A shape = (2, 3)

고정 기준 예제의 그림과 수치입니다. 각 단계에서 같은 그림의 의미를 차례로 살펴보세요. 고정된 기준 예제이며 아래 실험의 설정과 독립적입니다.
1 / 4

입력 shape

(2,3)과 (3,)을 맞춥니다.

(2,3)+(1,3)

실험에서 확인하기 →
이 단원 목차

Shape 오류와 의미 오류

Broadcasting은 다른 shape의 배열을 원소별 연산에 맞추는 규칙입니다. 합산이나 행렬곱을 뜻하지 않습니다. NumPy 규약은 오른쪽 끝 축부터 맞추어 두 크기가 같거나 어느 하나가 1이면 호환으로 봅니다. 없는 선두 축은 1처럼 취급합니다.

(2,3)and(3,)⟶(2,3).(2,3)\quad\text{and}\quad(3,)\longrightarrow(2,3).

출력 shape가 잘 정의된다는 사실은 의도한 계산을 한다는 보장과 다릅니다. 축 의미까지 따로 확인해야 합니다.

채널별 값과 행별 값

A=[[1,2,3],[4,5,6]]에 B=(1,2,3)을 더하면 B는 각 행에서 같은 채널별 편향으로 사용됩니다. 출력은 [[2,4,6],[5,7,9]]입니다.

Yij=Aij+Bj.Y_{ij}=A_{ij}+B_j.

반면 B shape (2,1)의 값 (1,2)은 각 행에 하나씩 더해집니다. 크기 1인 축이 열 방향으로 확장됩니다. 같은 두 값이라도 shape (2,)는 이 배열과 호환되지 않습니다. 오른쪽 끝의 2와 3이 충돌하기 때문입니다.

바깥 곱과 원소별 곱

A shape (2,1),B shape (1,3)이면 각각 다른 축으로 확장되어 결과가 (2,3)이 됩니다. 실습의 값은 A=(1,4)ᵀ,B=(1,2,3)입니다.

Yij=Ai0B0j=(1234812)ij.Y_{ij}=A_{i0}B_{0j}=\begin{pmatrix}1&2&3\\4&8&12\end{pmatrix}_{ij}.

원소별 곱을 broadcasting으로 계산한 이 특수 배치는 바깥 곱과 같습니다. 일반적인 A*B가 항상 외적이거나 행렬곱이라는 뜻은 아닙니다. 행렬곱 Yᵢₖ=ΣⱼAᵢⱼBⱼₖ에는 합산 지표가 있습니다.

호환되지 않는 경우

(2,3)과 (2,)는 출력이 없습니다. 실습은 이를 0 배열로 바꾸지 않고 호환성 0, 출력 shape와 값 —로 표시합니다. 수학적 0과 shape 오류를 분리하세요.

(2,3)and(2,)are incompatible.(2,3)\quad\text{and}\quad(2,)\quad\text{are incompatible}.

크기 0인 축도 라이브러리에서 허용될 수 있습니다. 독립 shape 검사 함수는 (0,3)과 (1,3)을 (0,3)으로 맞춥니다. 단순히 각 축의 최대값을 택하면 이 경계에서 잘못된 (1,3)이 됩니다. 화면의 작은 예제는 양의 축 크기를 사용합니다.

메모리와 실제 구현

개념적으로 작은 배열을 반복한다고 해서 항상 실제 복사본을 만드는 것은 아닙니다. stride·view·결과 할당은 구현에 따라 다르며 출력 배열 자체는 매우 커질 수 있습니다. 이 실습은 별도 작은 배열의 값을 계산하고 NumPy를 실행하지 않습니다. 동일 연산을 NumPy에서 직접 재현해 규약을 확인할 수 있습니다.

AI 연결과 확인 문제

배치 loss의 per-example 가중치, 채널 bias, attention mask에서 broadcasting을 자주 씁니다. 배치 축과 feature 축이 우연히 같은 길이면 잘못된 방향의 확장이 통과할 수 있습니다. singleton 축을 명시하고 작은 비대칭 값으로 검산하세요.

  1. (5,1),(1,6)의 결과는? **(5,6)**입니다.
  2. (2,3),(2,)는? 호환되지 않습니다.
  3. Broadcasting 뒤 곱이 자동으로 contraction인가요? 아니요. 합산이 필요합니다.

추가 읽기: NumPy 공식 Broadcasting 문서. 본문의 작은 배열·복원·비용 예제는 직접 구성했습니다.

CHECK YOUR UNDERSTANDING

설명할 수 있나요?

실험 설정과 무관한 기준 예제를 묻습니다. 답을 고르고 설명을 확인해보세요.

1. Broadcasting은 어느 쪽 축부터 맞추나요?
2. 호환 불가이면 출력은?

선택한 답과 학습 표시는 이 브라우저에 저장됩니다. 다시 풀거나 표시를 해제할 수 있습니다.