유용한 사고방식
신경망은 비어 있는 수치 설정을 가진 구조로 시작한다고 생각해 보세요. 구조는 어떤 계산이 어떤 순서로 수행되는지 정합니다. 가중치는 이러한 계산에 사용되는 많은 숫자를 제공합니다.neural network starts as a structure with empty numerical settings. The structure says which calculations happen and in what order. The weights supply many of the numbers used by those calculations.
구조를 재사용 가능한 계산 템플릿으로, 가중치를 그 템플릿의 칸을 채우는 값으로 생각해 보세요. 두 모델이 같은 구조를 사용하더라도 서로 다른 학습된 가중치를 포함하면 다르게 동작할 수 있습니다. 다만 이 비유에는 한계가 있습니다. 제어판에 이름이 붙은 설정이 있는 것과 달리, 개별 가중치에는 일반적으로 “문법”이나 “고양이” 같은 이름이 붙어 있지 않습니다.
일반적인 레이어는 다음과 같이 나타낼 수 있습니다.
input signals x
│
▼
multiply and combine with weights W
│
▼
add a learned offset b
│
▼
apply the layer's function
│
▼
output signals오프셋 b는 편향이라고 합니다. 가중치와 편향은 모두 모델 파라미터이지만, 신호를 곱하는 것은 가중치뿐입니다.
모델 가중치는 어떻게 작동하나요?
어떤 레이어가 이전 레이어에서 여러 숫자를 입력받는다고 가정해 보세요. 새로운 숫자 하나를 만들기 위해 각 입력에 가중치를 곱한 다음 그 결과를 더합니다.
출력 = (입력₁ × 가중치₁) + (입력₂ × 가중치₂) + ... + 편향
양의 가중치는 입력과 같은 방향으로 합을 움직입니다. 음의 가중치는 반대 방향으로 움직입니다. 0에 가까운 가중치는 이 특정 합에 해당 입력이 거의 기여하지 않게 합니다.
실제 레이어는 많은 출력을 한 번에 계산합니다. 가중치는 행렬로 배열되므로 이를 간결하게 나타내면 다음과 같습니다.
y = Wx + b
여기서 x는 입력 신호 벡터이고, W는 가중치 행렬이며, b는 편향 벡터이고, y는 다음 함수가 적용되기 전의 결과입니다. 프레임워크에 따라 W를 전치된 형태로 저장하기도 하지만, 기본 연산은 동일합니다.
딥 네트워크는 여러 레이어에 걸쳐 이 연산을 변형해 반복합니다. 초기 단계의 변화는 이후 레이어가 받는 신호를 바꾸므로, 그 영향이 계산의 나머지 부분으로 퍼질 수 있습니다. 비선형 함수, 정규화, 파라미터 재사용, 다른 가중치와의 상호작용 때문에 이러한 영향은 맥락에 따라 달라집니다.
따라서 하나의 가중치의 부호나 크기만으로는 전체 모델에서의 중요도를 신뢰성 있게 측정할 수 없습니다. 그 의미는 가중치가 위치한 곳, 입력의 규모, 주변 파라미터, 그리고 그 결과 신호를 사용하는 이후의 모든 연산에 따라 달라집니다.
계산 예시
입력이 두 개인 레이어를 생각해 보세요.
- 첫 번째 입력:
3 - 두 번째 입력:
2 - 첫 번째 가중치:
0.8 - 두 번째 가중치:
-0.5 - 편향:
0.1
레이어는 다음을 계산합니다.
(3 × 0.8) + (2 × -0.5) + 0.1 = 1.5
이제 두 번째 가중치만 -0.5에서 0.5로 변경해 보세요.
(3 × 0.8) + (2 × 0.5) + 0.1 = 3.5
입력은 변하지 않았습니다. 계산의 구조도 변하지 않았습니다. 학습된 곱셈 계수 하나가 변했기 때문에 출력이 변했습니다.
이 작은 예시에서는 각 값을 쉽게 확인할 수 있습니다. 대규모 네트워크는 이러한 조합을 한 번에 많이 계산한 뒤 결과를 더 많은 레이어에 전달합니다. 이 경우에도 가중치는 정확한 국소적 역할을 하지만, 최종 답변에 대한 기여를 단독으로 해석하는 것은 대개 의미가 없습니다.
가중치는 어떻게 학습되나요?
학습은 모델이 작업을 더 잘 수행하도록 만드는 가중치 값을 찾는 과정입니다. 일반적인 학습 단계는 네 부분으로 구성됩니다.
- 모델은 현재 가중치를 사용해 출력을 생성합니다.
- 손실 함수는 학습 목표에 대한 오류를 측정합니다.
- 역전파는 각 가중치에 대한 그래디언트를 계산합니다. 그래디언트는 해당 가중치를 조금 변경했을 때 손실이 어떻게 변하는지를 나타냅니다.
- 옵티마이저는 이러한 그래디언트를 사용해 가중치를 조정합니다.
단순화한 업데이트 식은 다음과 같습니다.
새 가중치 = 이전 가중치 - 학습률 × 그래디언트
학습률은 한 번의 조정 크기를 결정합니다. 학습 예제 전체에서 이러한 업데이트를 반복하면 목표에 더 잘 맞는 가중치 집합이 점진적으로 만들어집니다.
이 과정에서 일반적으로 각 숫자에 인간이 이해할 수 있는 개념을 하나씩 할당하지는 않습니다. 학습은 분산되어 이루어집니다. 유용한 동작 하나가 여러 가중치에 퍼진 패턴에 의존할 수 있으며, 하나의 가중치가 여러 동작에 관여할 수도 있습니다.
가중치는 반드시 0에서 시작할 필요도 없습니다. 신경망은 일반적으로 신중하게 무작위화된 값으로 시작합니다. 동일한 역할을 하는 유닛들이 같은 값으로 시작하면 동일한 업데이트를 받아 서로 다른 역할을 학습하지 못할 수 있습니다.
가중치가 중요한 이유
가중치는 학습의 지속적인 결과입니다. 학습이 끝나면 학습된 값을 체크포인트에 저장하고 나중에 불러올 수 있으므로, 사용할 때마다 다시 학습할 필요가 없습니다.
코드와 아키텍처가 그대로 유지되더라도 가중치를 변경하면 모델의 동작이 달라집니다. 파인튜닝은 기존 체크포인트에서 학습을 계속함으로써 이를 의도적으로 수행합니다. 다른 기법은 가중치가 표현되는 방식을 바꿀 수 있습니다. 예를 들어 더 낮은 수치 정밀도로 저장하면 메모리 사용량을 줄일 수 있지만, 출력 품질과의 상충 관계는 모델과 방법에 따라 달라집니다.
가중치는 학습된 모델을 실행하는 데 필요한 저장 공간과 작업 메모리의 상당 부분을 차지합니다. 값이 많고 값 하나당 바이트 수가 많을수록 일반적으로 더 많은 메모리가 필요합니다. 이 관계는 유용하지만 성능을 완전히 측정하는 기준은 아닙니다. 런타임 오버헤드, 임시 계산, 입력 길이, 배치 처리, 하드웨어도 영향을 줍니다.
가장 중요한 점은 가중치가 필요하지만 충분하지는 않다는 것입니다. 가중치 텐서는 호환되는 아키텍처의 일치하는 부분에 배치될 때만 의미가 있습니다. 사용 가능한 모델 패키지에는 구성, 입력 처리, 출력 디코딩, 런타임 코드도 필요할 수 있습니다. 가중치만으로는 완전한 제품 인터페이스, 안전 규칙, 검색 시스템 또는 모델을 둘러싼 도구가 정의되지 않습니다.
흔한 오해
“가중치와 파라미터는 같은 것이다”
사람들은 때때로 이 두 단어를 서로 바꿔 사용합니다. 더 엄밀한 정의에서는 모든 가중치가 파라미터이지만, 모든 파라미터가 가중치인 것은 아닙니다. 편향과 일부 스케일링 값도 파라미터입니다. 다만 프레임워크와 모델 게시자는 학습된 모든 파라미터가 들어 있는 파일을 여전히 “가중치 파일”이라고 부를 수 있습니다.
“가중치가 클수록 항상 더 중요하다”
가중치의 크기는 맥락 속에서만 의미가 있습니다. 규모가 작은 입력과 큰 가중치의 국소적 효과는 규모가 큰 입력과 작은 가중치의 효과와 같을 수 있습니다. 이후 레이어는 결과를 증폭하거나 상쇄하거나 다른 방향으로 전환하거나 무시할 수 있습니다.
“각 가중치는 하나의 사실을 저장한다”
가중치는 학습에서 습득한 패턴을 집합적으로 인코딩합니다. 가중치는 사실 테이블의 행이 아닙니다. 하나의 사실이나 능력에는 많은 값이 관여할 수 있으며, 하나의 값이 여러 입력에 영향을 줄 수도 있습니다. 모델이 학습 데이터의 일부 내용을 재현할 수는 있지만, 그렇다고 가중치가 데이터셋을 직접 검색할 수 있는 복사본이 되는 것은 아닙니다.
“가중치가 AI 시스템 전체다”
체크포인트는 완전한 애플리케이션이 아닙니다. 체크포인트의 텐서를 해석하려면 일치하는 아키텍처와 구성이 필요합니다. AI 제품에는 모델 가중치에 포함되지 않은 지침, 검색, 도구, 필터, 인터페이스 로직이 추가될 수도 있습니다.
“모델은 사용할 때마다 가중치를 업데이트한다”
일반적인 추론에서는 고정된 가중치를 읽어 출력을 계산합니다. 현재 대화가 제공된 컨텍스트를 통해 이후 출력에 영향을 줄 수는 있지만, 이는 가중치를 다시 학습하는 것과는 다릅니다. 시스템에 명시적인 학습 또는 적응 과정이 포함된 경우에만 가중치가 변경됩니다.
더 넓은 시스템에서 가중치가 차지하는 위치
아키텍처는 계산이 진행되는 경로를 정의합니다. 파라미터는 그 경로를 따라 학습된 값을 제공합니다. 가중치는 신호를 곱하고, 편향과 다른 파라미터 유형은 각자의 역할을 수행합니다. 학습은 이러한 값을 조정하고, 추론은 조정된 값을 사용해 새로운 입력을 처리합니다.
가중치, 편향 및 기타 학습된 값을 포함하는 더 넓은 범주를 알아보려면 다음으로 모델 파라미터란 무엇인가요?를 읽어 보세요. 직접적인 구분은 모델 파라미터와 모델 가중치의 차이를 참고하세요. 가중치가 적용된 레이어가 어떻게 결합되어 완전한 네트워크를 구성하는지 알아보려면 신경망이란 무엇인가요?로 돌아가거나, 이러한 값이 어떻게 학습되는지 알아보려면 AI에서 학습이란 무엇인가요?로 계속 진행하세요.