모델 파라미터란 무엇인가

모델 파라미터는 모델에 속하며 데이터에서 학습되는 값입니다. 학습 과정에서 조정되고 추론 과정에서 사용되는 값입니다.

간단한 선형 모델의 경우,

[
y = wx + b
]

(w)와 (b)는 모두 파라미터입니다. 모델은 각 예측마다 새로운 입력으로 이 값을 받는 것이 아니라, 학습을 통해 이 값을 학습합니다.

신경망은 파라미터를 다차원 숫자 배열인 텐서에 저장합니다. 하나의 텐서에는 많은 스칼라 파라미터가 포함될 수 있습니다. 모델에 특정 개수의 파라미터가 있다고 설명할 때, 그 수는 일반적으로 텐서의 개수가 아니라 파라미터 텐서 전체에 포함된 스칼라 값의 개수를 의미합니다.

모델 가중치란 무엇인가

모델 가중치에는 일반적으로 두 가지 의미가 있습니다.

수학적으로 좁은 의미에서 가중치는 입력 또는 중간값에 곱해지는 값입니다. (y = wx + b)에서 (w)는 가중치이고 (b)는 편향입니다. 둘 다 파라미터이지만, 가중치는 그중 하나뿐입니다.

소프트웨어에서 더 넓은 의미로 “가중치”는 학습된 모델이 현재와 같이 동작하도록 만드는 저장된 수치 상태를 의미합니다. “가중치 파일”에는 가중치 행렬, 편향, 때로는 기타 영속 텐서가 포함될 수 있습니다. 이 명칭은 내부의 모든 숫자가 맡는 수학적 역할이 아니라 묶음 전체를 가리킵니다.

차이점

가장 신뢰할 수 있는 규칙은 다음과 같습니다.

가중치는 일반적으로 파라미터의 한 종류이지만, “모델 가중치”는 흔히 모델의 완전한 학습 상태를 줄여 부르는 표현입니다.
Context“Parameters” usually means“Weights” usually means
A layer equationAll learned values, including weights and biasesValues multiplied by inputs or activations
A parameter countThe number of learned scalar values across parameter tensorsOften used loosely as a synonym for the same count
A framework APIRegistered model values that may be trainable or frozenA framework-specific collection that may include biases and non-trainable state
A model download or checkpointLearned values, if the term is used at allThe saved tensors needed to reproduce the trained model’s behavior

이 표는 보편적인 표준이 아니라 관례를 설명합니다. 정밀성이 중요하다면 주변의 수식, API 정의 또는 파일 사양을 확인하세요.

예제로 살펴보기

어떤 완전 연결 층이 세 개의 입력값을 받아 두 개의 출력값을 만든다고 가정해 보겠습니다. 이 층은 다음을 계산합니다.

[
\mathbf{y} = \mathbf{x}\mathbf{W} + \mathbf{b}
]

가중치 행렬 (\mathbf{W})의 형태는 (3 \times 2)이므로 스칼라 가중치가 6개 포함됩니다. 편향 벡터 (\mathbf{b})에는 스칼라 편향이 2개 있습니다.

따라서 이 층에는 다음이 있습니다.

  • 스칼라 가중치 6개
  • 스칼라 편향 2개
  • 총 스칼라 파라미터 8개

라이브러리가 이 층의 “가중치”를 저장한다면, 저장되는 묶음에는 일반적으로 (\mathbf{W})와 (\mathbf{b})가 모두 포함됩니다. 수학적 내용이 바뀐 것은 아닙니다. “가중치”라는 단어의 범위만 바뀐 것입니다.

표현이 중요한 경우

좁은 의미의 구분은 수식을 읽거나, 층을 구현하거나, 파라미터 수를 확인할 때 중요합니다. 가중치 행렬의 항목만 세면 편향과 기타 학습된 파라미터 텐서를 제외하게 되어 모델의 파라미터 수를 적게 셀 수 있습니다.

넓은 의미는 모델을 다운로드하거나, 로드하거나, 고정하거나, 공유할 때 중요합니다. 프레임워크에 따라 모든 영속 층 변수를 가중치라고 부를 수 있습니다. 체크포인트에는 추론에 사용되는 버퍼가 포함될 수도 있지만, 이러한 버퍼는 학습 과정에서 파라미터로 최적화되지 않았을 수 있습니다.

동결은 또 다른 혼동의 원인입니다. 동결된 파라미터는 해당 학습 실행 중 더 이상 업데이트되지 않지만, 여전히 모델의 일부이며 출력에 영향을 줍니다. 따라서 동일한 모델에서도 “학습 가능한 파라미터”와 “모든 파라미터”의 개수가 다를 수 있습니다.

파라미터 수와 체크포인트 크기도 서로 다른 측정값입니다. 파일 크기는 각 값이 어떻게 인코딩되는지, 텐서가 양자화되거나 공유되는지, 체크포인트에 추가 상태가 포함되는지에 따라 달라집니다. 형식에 관한 세부 정보 없이는 한 측정값만으로 다른 측정값을 신뢰성 있게 파악할 수 없습니다.

사람들이 혼동하는 내용

“가중치”에는 항상 편향이 제외된다

별도의 (W) 항과 (b) 항을 명시하는 수식에서는 맞는 말입니다. 그러나 “가중치”가 둘을 모두 포함하는 묶음을 가리킬 수 있는 프레임워크 및 체크포인트 문맥에서는 흔히 틀린 말입니다.

“파라미터”는 학습 설정을 의미한다

모델 파라미터는 모델 내부에서 학습되는 값입니다. 학습률과 같이 학습 과정에 사용자가 선택하는 설정은 하이퍼파라미터입니다. 이름이 비슷하다고 해서 같은 종류의 값이 되는 것은 아닙니다.

파라미터가 많을수록 더 좋은 모델이다

파라미터 수는 모델에 포함된 학습된 스칼라 값의 개수를 나타냅니다. 이 수만으로 아키텍처의 유용성, 학습 데이터의 품질 또는 특정 작업에서의 모델 성능을 알 수는 없습니다.

다음에 읽을 내용

다음 문서인 모델 파라미터란 무엇인가?에서는 모델 전체에서 학습된 값이 어떻게 계산되고 사용되는지 알아봅니다. 모델 가중치란 무엇인가?에서는 가중치가 층의 출력을 어떻게 형성하는지와 모델 파일에서 이 용어가 어떻게 사용되는지 알아봅니다.