✅ 이런 계층적인 구조는 신경망이 데이터를 점진적으로 학습하고 이해하도록 돕는 표준적인 방법입니다. nn.Linear는 각 계층의 뉴런을 정의하는 올바른 모듈입니다. 💡
📝 계층 구조의 역할 (5 → 100 → 50 → 3)
1. 입력 계층 (5 → 100)
- 역할: 모델은 5개의 입력 특징(n_features=5)을 받아서, 이를 100개의 뉴런으로 확장합니다. 이는 마치 5개의 간단한 재료를 100개의 다양한 조합으로 만들어내는 것과 같아요.
- 목적: 입력 데이터의 복잡한 패턴이나 숨겨진 관계를 찾아내기 위해 특징의 수를 늘려줍니다.
2. 은닉 계층 (100 → 50)
- 역할: 첫 번째 계층에서 만들어진 100개의 복합적인 특징을 받아서, 그중에서 가장 중요한 정보만 추출하고 더 효율적인 50개의 표현으로 압축합니다.
- 목적: 모델이 학습하는 데 불필요한 노이즈를 줄이고, 핵심 패턴에 집중하도록 돕습니다. 이를 통해 연산 효율이 높아집니다.
3. 출력 계층 (50 → 3)
- 역할: 마지막으로, 50개의 압축된 특징을 기반으로 **최종 결과(3개의 클래스)**를 예측합니다.
- 목적: 문제의 정답인 클래스 수(n_classes=3)에 맞게 최종 예측값을 출력합니다.
✨ 이런 구조를 사용하면 좋은 점
- 계층적 학습 (Hierarchical Learning): 신경망은 **단순한 특징(입력)**에서 **복잡하고 추상적인 특징(은닉 계층)**을 거쳐 **최종적인 예측(출력)**을 수행하는 단계적 학습이 가능해집니다.
- 비선형 관계 학습: nn.Linear와 ReLU와 같은 활성화 함수를 결합하여 데이터의 복잡한 비선형 관계를 학습할 수 있습니다. 만약 단일 nn.Linear만 사용한다면 선형적인 관계만 학습할 수 있어 성능이 크게 떨어집니다.
🎨 쉬운 비유
이 신경망 구조는 마치 원자재를 가공해서 최종 제품을 만드는 공장과 같아요. 🏭
- 5 → 100: 5개의 원자재(입력)를 받아서 여러 종류의 부품(100개 뉴런)을 다양하게 만들어내는 공장 1층.
- 100 → 50: 100개 부품 중에서 중요한 부품만 골라 더 정교한 반제품(50개 뉴런)을 만드는 공장 2층.
- 50 → 3: 50개의 반제품을 가지고 고객이 원하는 3가지 종류의 완성품을 만드는 공장 3층.
이런 과정을 거쳐야만 원자재를 그대로 파는 것보다 훨씬 더 가치 있는 최종 결과물을 만들어낼 수 있습니다.
'AI 엔지니어준비' 카테고리의 다른 글
| ❓PyTorch에서 텐서란 무엇이고, NumPy의 Array(배열)과 어떤 차이가 있나요? (0) | 2025.09.15 |
|---|---|
| ❓ 딥러닝 프레임워크인 PyTorch와 TensorFlow를 비교 (0) | 2025.09.15 |
| ❓ reshape 메소드에서 -1에 대해서 (0) | 2025.09.08 |
| ❓ torch.matmul이 데이터 타입이 달라 오류를 발생시키는가? (0) | 2025.09.08 |
| ❓ NumPy 배열에서 PyTorch 텐서를 생성하는 세 가지 방법, 즉 torch.tensor(), torch.from_numpy(), torch.as_tensor()의 각각의 장단점 (0) | 2025.09.08 |