2장. 신경망과 딥러닝의 기본 원리
딥러닝이란
1장에서 지연을 맞힐 때, "18시 이후 주문인가", "주말인가" 같은 특성은 사람이 골라 만들어 넣었습니다. 숙련된 기사가 "비 오는 주말 저녁에 먼 동네" 같은 조합을 알아서 떠올리는 것처럼, 특성의 조합까지 스스로 만들어 내게 할 수는 없을까요? 층을 여러 겹 쌓은 신경망이 바로 그 일을 합니다. 이렇게 하는 머신러닝을 딥러닝이라고 합니다.
왼쪽 머신러닝은 사람이 특성을 골라 표로 만들어 넣습니다. 오른쪽 딥러닝은 원재료에 가까운 입력을 넣으면, 층을 지나며 쓸모 있는 조합을 스스로 만듭니다. 여기서 숙련 기사의 머릿속 조합이 은닉층이 만든 특성입니다. 비유와 다른 점은, 신경망이 만든 조합은 숫자 묶음이라 "비 오는 주말 저녁" 같은 이름이 붙어 있지 않다는 것입니다.
머신러닝과 딥러닝 견주기
| 견줄 것 | 1장의 머신러닝(로지스틱 회귀, 의사결정나무) | 딥러닝(신경망) |
|---|---|---|
| 특성 | 사람이 골라 만든다 | 층이 조합을 만든다 |
| 데이터 양 | 수백 건에서도 잘 된다 | 많을수록 잘 된다 |
| 계산 | 가볍다 | 무겁다. GPU 가 있으면 빠르다 |
| 잘하는 일 | 표 데이터 | 글, 그림, 소리, 그리고 곡선이 많은 표 데이터 |
| 이 과정에서 | 1장 | 2장부터 LLM 까지 |
이 장에서 쓰는 도구
| 도구 | 하는 일 | 1장에서 견주면 |
|---|---|---|
torch | 숫자 배열(텐서)과 자동 미분 | NumPy |
torch.nn | 층과 손실 함수 | scikit-learn 의 모델 |
torch.optim | 가중치를 고치는 옵티마이저 | fit 의 안쪽 |
scikit-learn 은 fit 한 줄로 학습이 끝났습니다. PyTorch 는 그 안쪽의 순전파, 손실, 역전파, 갱신을 우리가 직접 적습니다. 처음에는 손이 더 가지만, 그래서 LLM 같은 큰 모델도 같은 방식으로 다룰 수 있습니다.
주의할 점
- 데이터가 적고 특성이 분명한 표 문제에서는 1장의 모델이 신경망보다 낫거나 비슷한 경우가 많습니다. 신경망이 늘 이기는 것은 아닙니다.
- 딥러닝의 "깊다"는 층이 많다는 뜻입니다. 이해가 깊다는 뜻이 아닙니다.