드롭아웃Dropout

학습 때 일부를 무작위로 쉬게 하는 방법

핵심 정리
  • 드롭아웃은 학습하는 동안 모델 속 자리 일부를 무작위로 골라 쉬게 하는 방법이에요.
  • 쉬는 자리는 걸음마다 새로 뽑혀요. 어느 자리도 특정 짝에 기댈 수 없게 만드는 것이 목적이에요.
  • 결과적으로 여러 자리가 비슷한 일을 겹쳐서 익히게 되고, 하나가 빠져도 전체가 흔들리지 않아요.
  • 쉬게 하는 비율은 사람이 정해요. 너무 높이면 배울 것을 못 배우고, 너무 낮으면 효과가 없어요.
  • 학습할 때만 쉬게 하고, 실제로 쓸 때는 전부 켜요. 대신 세기를 맞춰 주는 손질이 함께 들어가요.
목차

1비유로 이해하기

물레방아는 떨어지는 물이 바퀴의 물받이 칸을 채우면서 돌아가요. 그런데 물줄기가 늘 같은 자리로만 떨어지면 몇몇 칸이 힘을 도맡고 나머지 칸은 거의 놀아요. 겉으로는 잘 돌지만 실은 두어 칸에만 매달린 바퀴예요.

그래서 널빤지 몇 장을 준비해 두고, 돌릴 때마다 서로 다른 칸을 골라 막아 둬요. 오늘은 이 칸, 다음에는 저 칸을 막는 식이죠. 막힌 칸이 어디일지 모르니 어느 칸도 옆 칸이 해 주겠거니 하고 기댈 수 없어요. 결국 모든 칸이 제 몫을 받아 낼 줄 알게 돼요.

드롭아웃이 이 널빤지예요. 학습하는 동안 자리 일부를 무작위로 막아 두고 돌려서, 남은 자리들이 스스로 일을 해내게 만들어요. 정작 방아를 찧을 때는 널빤지를 모두 빼고 전 칸을 써요.

2자세히 알아보기

몇 자리에만 매달린 모델의 문제

모델 안에는 값을 주고받는 자리가 아주 많아요. 학습이 오래 이어지면 그중 몇 자리가 특정 조합으로 짝을 이뤄 답을 거의 도맡는 일이 생겨요. 나머지 자리는 그 조합을 보조하는 정도로만 굳어지고요.

이런 모델은 학습에 쓴 자료에서는 잘 맞혀요. 하지만 처음 보는 자료에서 그 조합이 잘 통하지 않으면 기댈 곳이 없어 크게 틀려요. 한쪽에 몰린 구조는 자료가 조금만 달라져도 무너져요.

드롭아웃은 이 몰림을 학습 중에 깨뜨려요. 매번 다른 자리가 사라지니 특정 조합이 굳어질 틈이 없어요. 자리마다 혼자서도 쓸 만한 신호를 만들어 두는 쪽으로 학습이 흘러가요.

걸음마다 새로 뽑아요

쉬게 할 자리는 미리 정해 두지 않아요. 자료 묶음 하나를 처리할 때마다 그 자리에서 새로 뽑아요. 쉬기로 뽑힌 자리는 그 걸음 동안 값을 0 으로 두고, 되짚어 몫을 나눌 때도 빠져요.

그래서 매 걸음마다 조금씩 다른 모델을 학습시키는 셈이 돼요. 자리가 수천 개면 만들어질 수 있는 조합은 사실상 무한하죠. 학습이 끝난 모델은 이렇게 조금씩 다른 수많은 모델을 뭉뚱그린 결과에 가까워요. 여러 모델의 답을 평균 내면 안정된다는 오래된 요령을 한 모델 안에서 흉내 내는 셈이에요.

얼마나 쉬게 하나요

쉬게 하는 비율은 사람이 정해요. 절반 가까이 쉬게 하는 설정이 널리 쓰이고, 자리 수가 적은 곳에서는 훨씬 낮게 잡아요. 비율이 너무 높으면 남은 자리가 감당하지 못해 학습이 잘 안 되고, 너무 낮으면 몰림을 깨뜨리지 못해 걸어 둔 보람이 없어요.

층마다 다르게 걸기도 해요. 자리가 빽빽하게 몰린 층에는 세게, 값이 흘러 들어오는 첫 부분에는 약하게 거는 식이에요. 자료가 아주 많은 학습에서는 아예 걸지 않기도 해요. 외울 만큼 같은 자료를 반복해 보지 않기 때문이에요.

드롭아웃을 걸면 학습이 조금 느려진다는 점도 알아 두면 좋아요. 매 걸음 일부가 빠진 채로 배우니 같은 성적에 이르기까지 바퀴를 더 돌아야 해요. 학습 자료에 대한 성적만 보면 걸지 않은 쪽이 늘 좋아 보이는데, 따로 떼어 둔 자료로 재 보면 순서가 뒤집혀요.

쓸 때는 전부 켜요

학습이 끝나고 실제로 답을 받아 쓸 때는 아무것도 쉬지 않아요. 같은 질문에 매번 다른 답이 나오면 곤란하니까요. 그런데 그냥 전부 켜면 문제가 생겨요. 학습하는 동안에는 늘 일부가 빠진 상태로 값이 흘렀는데, 이제 전부 켜지면 값이 그만큼 커지거든요.

그래서 세기를 맞춰 주는 손질이 함께 들어가요. 학습 중에 살아남은 자리의 값을 미리 키워 두는 방식이 흔해요. 이렇게 해 두면 실제로 쓸 때 아무 보정을 하지 않아도 값의 크기가 학습 때와 맞아떨어져요.

3조금 더 정확하게

드롭아웃은 학습 단계에서 각 자리를 정해진 확률로 0 으로 만들고, 남은 자리의 값을 그 확률만큼 나눠 키워 두는 방법이에요. 값의 크기에 벌점을 매기는 방식과 목적이 같아서 넓은 뜻의 정규화분류되지만, 손해에 항목을 더하는 것이 아니라 신호 자체를 끊는다는 점이 달라요.

비유가 어긋나는 지점도 있어요. 물레방아의 칸은 눈에 보이고 개수도 정해져 있지만, 모델의 자리는 값이 흘러가는 통로에 가까워서 하나씩 세어 보기 어려워요. 또 널빤지는 사람이 골라 막지만 드롭아웃은 매번 무작위로 뽑아요. 요즘 큰 모델에서는 층 사이가 아니라 다른 지점에 걸거나, 자료가 충분하면 아예 쓰지 않는 경우도 많다는 점도 함께 알아 두면 좋아요. 자리 하나 단위가 아니라 묶음 단위로 통째로 막는 변형도 있고, 답을 받을 때 일부러 켜 둔 채 여러 번 돌려 답이 얼마나 흔들리는지 재는 쓰임새도 있어요.

4직접 해보기

5흔한 오해

  • 드롭아웃이 모델의 자리를 실제로 없앤다고 생각하기 쉽지만, 실제로는 그 걸음 동안만 값을 0 으로 둘 뿐이고 다음 걸음에서는 다시 살아나요.

  • 드롭아웃은 답을 받을 때도 계속 작동한다고 여기기 쉽지만, 실제로는 학습할 때만 켜고 쓸 때는 전부 켠 상태로 돌려요.

  • 비율을 높일수록 과적합이 잘 막힌다고 생각하기 쉽지만, 실제로는 지나치면 남은 자리가 감당하지 못해 학습 자체가 되지 않아요.

7한 줄 요약

그러니까드롭아웃은 학습 중에 자리 일부를 무작위로 막아 두는 널빤지여서, 어느 한쪽에 기대지 않는 모델을 만들어 줘요.

잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02