딥러닝 모델이 '학습'한다는 것은 수만 명의 연주자가 있는 오케스트라가 단 하나의 완벽한 화음을 찾아가는 과정과 같습니다. 현대 딥러닝의 거의 모든 학습 알고리즘이 Gradient Descent(경사 하강법)를 사용하는 이유는, 수백만에서 수천억 개에 달하는 가중치(Weight)를 '동시에' 그리고 '효율적으로' 수정할 수 있는 가장 확실한 수학적 도구이기 때문입니다.
우리는 모델에 데이터를 밀어 넣어 성적표(Loss)를 받고, 그 성적을 올리기 위해 어떤 나사(Weight)를 어느 방향으로 조여야 할지 결정해야 합니다. 이때 모든 나사를 하나씩 만져보는 것은 불가능에 가깝지만, Gradient Descent는 미분이라는 강력한 가이드를 통해 모든 가중치가 일제히 오차를 줄이는 방향으로 전진하게 만듭니다. 결국 딥러닝의 학습이란, 이 거대한 지능의 숲에서 Optimizer가 정교하게 길을 깎아 나가는 '최적화의 여정'입니다.
데이터 가 들어가서 최종 라는 성적표가 나올 때까지의 모든 과정을 Forward Pass라고 부릅니다.
1. 선형 연산 (): 입력 데이터()에 가중치()를 곱합니다.
2. 활성화 (Activation): ReLU나 Sigmoid 같은 함수를 거쳐 비선형성을 부여합니다.
3. 예측값 (): 드디어 우리가 기대하는 개수만큼의 출력이 나옵니다.
* 예: 3종류 동물 분류 문제라면 3개의 숫자 출력
4. 손실 계산 (Loss): 정답(Label)과 예측값의 차이를 계산해 하나의 숫자(오차)로 만듭니다.
Weight은 왜 Output이나 Input보다 훨씬 많을까?
결론부터 말하면 Weight의 개수 Input의 개수 Output의 개수입니다.
- Input: 내가 관찰한 특징 (예: 100개 픽셀)
- Output: 내가 내뱉을 대답의 가짓수 (예: 개/고양이 2개)
- Weight: 이 둘을 연결하는 '모든 지능의 연결고리'
성적표()를 받았다면 이제 모델을 수리할 시간입니다. 이때 Chain Rule(연쇄 법칙)이라는 마법이 쓰입니다.
미분으로 방향(Gradient)을 정했다면, 실제로 가중치를 수정합니다.
| 단계 | 흐름 (Data Flow) | 주요 구성 요소 | 역할 |
|---|---|---|---|
| Forward | 활성화 함수, 가중치() | 예측을 수행하고 성적표(Loss) 산출 | |
| Backward | 미분(Gradient) | 에러의 원인이 되는 가중치 기여도 파악 | |
| Update | Adam, SGD, 학습률 | 가중치를 실제로 수정하여 학습 완료 |
이 모든 과정을 수백만 개의 전체 데이터를 다 보고 수행하면 컴퓨터가 멈출지도 모릅니다. 그래서 우리는 Mini-batch 방식을 씁니다.
학습이란 가중치(Weight)를 배워가는 일련의 과정입니다.