신경망 실전
TensorFlow Playground 따라하기
이론에서 실전으로
31장에서 뉴런과 경사하강법을 이해했습니다. 뉴런 하나가 직선을 긋고, 은닉층을 추가하면 곡선 경계가 가능해진다는 것까지 확인했습니다.
이제 직접 신경망을 설계하고 훈련시킵니다. 은닉층 수, 뉴런 수, 활성화 함수, 학습률 -- 이 네 가지 선택이 결과를 어떻게 바꾸는지 실시간으로 관찰합니다.
핵심 메시지는 하나입니다. 은닉층을 늘리면 복잡한 패턴을 학습할 수 있지만, 과적합 위험도 커진다. 드롭아웃과 배치 정규화가 이를 방지합니다.
신경망 설계의 네 가지 선택
신경망을 만들 때 결정해야 하는 핵심 요소를 정리합니다. 각 선택이 학습 결과에 미치는 영향을 이해하는 것이 이 장의 목표입니다.
은닉층 수 (Depth)
층이 깊을수록 더 추상적인 특징을 단계적으로 학습합니다. 1층은 단순 곡선, 2층은 영역, 3층은 복잡한 섬 모양까지 표현합니다.
뉴런 수 (Width)
뉴런이 많을수록 각 층의 표현력이 풍부해집니다. 그러나 불필요하게 많으면 훈련 데이터를 암기하여 과적합이 발생합니다.
활성화 함수
ReLU: 빠르고 안정적, 대부분의 기본 선택. Sigmoid: 0~1 출력, 깊은 네트워크에서 기울기 소실. Tanh: -1~1, Sigmoid보다 중심이 0에 가까워 약간 유리.
학습률 (Learning Rate)
너무 작으면 학습이 지나치게 느리고, 너무 크면 손실이 발산합니다. 적절한 학습률은 데이터와 네트워크 구조에 따라 달라집니다.
은닉층은 회사의 중간 관리자입니다. 입력(현장 데이터)을 가공하여 출력(경영진 보고서)에 전달합니다. 사원(입력층)이 보고한 원시 정보를 팀장(1층)이 정리하고, 부장(2층)이 요약하고, 이사(3층)가 핵심만 추려 사장(출력층)에게 전달합니다. 뉴런은 각 계층의 인원 수입니다. 계층이 많으면 정보가 더 추상적으로 정제되지만 전달이 느려지고, 인원이 많으면 다양한 관점을 얻지만 의사결정이 복잡해집니다. 활성화 함수는 각 직원의 판단 방식이고, 학습률은 조직의 변화 속도입니다.
실습 1: 미니 TensorFlow Playground
2D 분류 데이터셋을 선택하고, 네트워크 구조를 직접 설계한 뒤 "훈련 시작" 버튼을 누르세요. 캔버스에 결정 경계가 실시간으로 변화하고, 손실 곡선이 그려집니다.
결정 경계
손실 곡선
깊이 vs 너비: 어떤 네트워크가 더 나은가?
같은 수의 뉴런을 가지고 있어도, 배치 방식에 따라 성능이 달라집니다. 예를 들어 뉴런 12개를 한 층에 모두 넣는 것(1x12)과 세 층에 나누는 것(3x4)은 전혀 다른 결과를 냅니다.
실습 2: 깊이 실험 -- 같은 뉴런, 다른 구조
동일한 데이터셋에서 총 뉴런 수를 고정한 채, 1층/2층/3층 구조의 손실 곡선을 비교합니다. "비교 실행" 버튼을 누르면 세 네트워크가 동시에 학습을 시작합니다.
손실 곡선 비교
1개 은닉층
2개 은닉층
3개 은닉층
과적합: 시험 문제를 외우면 실전에서 망한다
네트워크가 충분히 크면 훈련 데이터를 100% 맞출 수 있습니다. 하지만 새로운 데이터(테스트 데이터)에서는 성능이 급락합니다. 이것이 과적합(overfitting)입니다.
기출문제 답을 모조리 외운 학생은 같은 시험지에서는 만점을 받지만, 문제가 조금만 바뀌면 전혀 풀지 못합니다. 반면, 개념을 이해한 학생은 기출에서 98점이라도 새 문제에서 90점을 받습니다. 우리는 후자를 원합니다.
훈련 중 각 뉴런을 확률 p로 무작위 비활성화
특정 뉴런에 의존하지 않도록 강제하여 일반화 성능을 높인다
각 층의 출력값을 미니배치 단위로 평균 0, 분산 1로 정규화합니다. 학습이 안정되고, 더 높은 학습률을 사용할 수 있으며, 일종의 정규화 효과도 있습니다.
실습 3: 드롭아웃 효과 비교
동일한 네트워크를 드롭아웃 있이/없이 학습시킵니다. 훈련 정확도와 테스트 정확도의 차이(과적합 갭)를 비교하세요. 드롭아웃 없이는 훈련 정확도가 매우 높지만 테스트 정확도와 큰 격차가 벌어집니다.
정확도 곡선 비교
실습 4: 학습률 탐색기
세 가지 학습률(너무 작은/적절한/너무 큰)로 동시에 학습을 진행합니다. 슬라이더로 "적절한" 학습률을 직접 조정하면서, 각각의 손실 곡선이 어떻게 달라지는지 비교하세요.
손실 곡선 비교 (로그 스케일)
신경망 설계 실전 가이드
| 선택 항목 | 기본 권장 | 주의점 |
|---|---|---|
| 활성화 함수 | ReLU (은닉), Sigmoid/Softmax (출력) | 깊은 네트워크에서 Sigmoid 은닉층은 기울기 소실 위험 |
| 은닉층 수 | 1~3개로 시작 | 더 깊으면 잔차 연결 필요 |
| 학습률 | 0.001 ~ 0.01 | Adam 옵티마이저 사용 시 0.001 추천 |
| 드롭아웃 | 0.2 ~ 0.5 | 입력층에도 적용 가능 (0.1~0.2) |
| 배치 크기 | 32 ~ 256 | 작을수록 노이즈가 크지만 일반화에 유리 |
(1) 작은 네트워크로 시작하여 과소적합 확인 (2) 네트워크를 키워서 훈련 손실이 충분히 줄어드는지 확인 (3) 과적합이 나타나면 드롭아웃, 정규화, 조기 종료(early stopping) 적용 (4) 학습률 스케줄링으로 미세 조정 이 순서를 "진단적 접근법"이라 합니다.
- 은닉층을 늘리면 더 복잡한 패턴을 학습할 수 있지만 과적합 위험이 커진다.
- 활성화 함수(ReLU, Sigmoid, Tanh)는 결정 경계의 형태와 학습 안정성에 영향을 준다.
- 학습률이 너무 작으면 느리고, 너무 크면 발산한다. 로그 스케일로 탐색한다.
- 드롭아웃은 훈련 중 뉴런을 무작위로 비활성화하여 과적합을 방지한다.
- 네트워크 설계는 "작게 시작 -> 키우기 -> 정규화"의 진단적 접근이 효과적이다.
다음 장 예고: 신경망은 표 형태의 데이터뿐 아니라 이미지도 처리할 수 있습니다. 다음 장에서는 이미지를 인식하는 특수한 신경망, CNN(합성곱 신경망)을 배웁니다.