이 레슨과 관련된 학습 키워드
인공지능(AI) — 기계가 생각하는 법 → 딥러닝(Deep Learning) — 인공 신경망의 세계 → 합성곱 신경망(CNN) — 이미지를 이해하는 네트워크 → 고급 CNN 아키텍처
잔차 블록(residual block)을 구현하고 스킵 연결이 매우 깊은 네트워크의 훈련을 가능하게 하는 방법을 이해합니다.
레즈넷을 이해하려면 먼저 깊은 네트워크의 역설을 알아야 해요.
직관적으로 생각하면 네트워크가 깊을수록 더 복잡한 패턴을 학습할 수 있어요.
그래서 층을 더 쌓으면 성능이 더 좋아질 거라 예상하죠.
하지만 2015년, He et al.이 충격적인 실험 결과를 발표했어요.
왼쪽 그래프를 보세요. 씨파텐 훈련 에러 그래프예요.
파란 선이 20층, 빨간 선이 56층 네트워크의 훈련 에러예요.
56층이 20층보다 훈련 에러가 2.7퍼센트나 더 높아요.
이건 과적합이 아니에요. 훈련 에러도 더 높으니까요.
오른쪽 테스트 에러 그래프에서도 같은 패턴이 보여요.
이 갭이 바로 데그레데이션 프라블럼이에요.
과적합이라면 훈련 에러는 낮고 테스트만 높아야 해요.
하지만 여기선 둘 다 높아요. 즉 최적화 자체가 실패한 거예요.
깊은 네트워크가 얕은 네트워크의 해조차 찾지 못하고 있어요.
이론적으로 56층은 20층의 해를 복제하고 나머지를 항등으로 두면 되잖아요.
하지만 SGD가 이 해를 찾지 못하는 거예요.
이것이 데그레데이션 프라블럼의 핵심이에요.
다음 슬라이드에서 이 문제의 해결책, 스킵 커넥션을 알아볼게요.
하단 빨간 박스의 결론을 보세요. 과적합이 아니라 훈련 에러 자체가 높다는 점이 핵심이에요.
이 발견이 레즈넷 탄생의 직접적 동기가 되었어요.
깊이만으로는 성능이 보장되지 않는다는 사실, 꼭 기억하세요.
선생님: 여기서 질문이 있을 수 있어요.
학생: 56층이 20층보다 나쁘다면, 왜 굳이 깊은 네트워크를 만들려고 하나요?
선생님: 좋은 질문이에요! 이론적으로 깊은 네트워크는 더 복잡한 함수를 표현할 수 있어요. 문제는 표현 능력이 아니라 최적화에 있었어요.
선생님: 즉 깊은 네트워크가 더 좋은 해를 가질 수 있지만 SGD로는 그 해를 못 찾는 거예요.
학생: 그러면 배니싱 그레이디언트 문제와 같은 건가요?
선생님: 관련은 있지만 다릅니다. 배치 노말라이제이션으로 배니싱은 해결했는데도 데그레데이션은 여전했어요. 근본 원인이 다른 거예요.