Hey Tech

[딥러닝] Drop-out(드롭아웃) 개념, 사용이유, 수식 본문

AI & 빅데이터/머신러닝·딥러닝

[딥러닝] Drop-out(드롭아웃) 개념, 사용이유, 수식

Tony Park (토니) 2021. 8. 10. 00:26
728x90
반응형

📌 Text 빅데이터분석 플랫폼 베타테스트 참가자 모집 중!(네이버페이 4만 원 전원 지급)

 

👋 안녕하세요, 코딩이 필요 없는 AI/빅데이터 분석 All in One 플랫폼 <DATA101> 개발팀입니다.
😊 저희 서비스를 사용해 보시고 경험담을 들려주세요 :)
💸 참여해 주신 "모든" 분들께 네이버페이 4만 원 쿠폰을 지급해 드립니다.

👨‍💻 참여 희망 시 카톡플러스친구 1:1 채팅 or 인스타그램 DM 부탁드립니다 :)

📆 참여기간 : 11/25(월)~11/29(금) 11:00~21:00 중 택1 (1시간 1타임)
👉 참여장소 : 강남역 인근 스터디카페 미팅Room
📍 소요시간 : 총 40분 내외(서비스 체험 및 인터뷰 포함)
✅ 참가조건 : Text 빅데이터 분석 업무 경험자

👉 참가 가능일정 조회하기 : https://url.kr/n8k8gu
- 카톡플친 : http://pf.kakao.com/_SxltHG/chat
- 인스타그램 : https://www.instagram.com/data101.official/


본 포스팅에서는 딥러닝에 있어서 Generalization 기법 중 하나인 Drop-out(드롭아웃)에 대해 알아봅니다.

📚 목차

1.  Drop-out 개념
2.  Drop-out 사용이유
3.  Mini-batch 학습 시 Drop-out
4.  Test 시 Drop-out 

1. Drop-out 개념

그림 1. Drop-out 개념


Drop-out은 서로 연결된 연결망(layer)에서 0부터 1 사이의 확률로 뉴런을 제거(drop)하는 기법입니다. 예를 들어, 위의 그림 1 과 같이 drop-out rate가 0.5라고 가정하겠습니다. Drop-out 이전에 4개의 뉴런끼리 모두 연결되어 있는 전결합 계층(Fully Connected Layer)에서 4개의 뉴런 각각은 0.5의 확률로 제거될지 말지 랜덤하게 결정됩니다. 위의 예시에서는 2개가 제거된 것을 알 수 있습니다. 즉, 꺼지는 뉴런의 종류와 개수는 오로지 랜덤하게 drop-out rate에 따라 결정됩니다. Drop-out Rate는 하이퍼파라미터이며 일반적으로 0.5로 설정합니다.

2. Drop-out 사용 목적

그렇다면 Drop-out 기법을 사용하는 이유는 무엇일까요? 결론부터 말씀드리자면, Drop-out은 어떤 특정한 설명변수 Feature만을 과도하게 집중하여 학습함으로써 발생할 수 있는 과대적합(Overfitting)을 방지하기 위해 사용됩니다.

그림 2. Drop-out 사용의 장점

그 이유에 대해 천천히 알아보겠습니다. 위의 그림 2 에서 노란색 박스 안에 있는 Drop-Out이 적용된 전결합계층은 하나의 Realization 또는 Instance라고 부릅니다. 각 realization이 일부 뉴런만으로도 좋은 출력값을 제공할 수 있도록 최적화되었다고 가정했을 때, 모든 realization 각각의 출력값에 평균을 취하면(=ensemble) 그림 2의 화살표 우측 과 같이 모든 뉴런을 사용한 전결합계층의 출력값을 얻을 수 있습니다. 특히 이 출력값은 Drop-out을 적용하기 전과 비교했을 때, 더욱 편향되지 않은 출력값을 얻는 데 효과적입니다.

편향되지 않은 출력값, 직관적으로 이해가 되시나요? 예시를 통해 자세히 설명해 보겠습니다.

 

어느 특정 Feature가 어떤 출력값에 가장 큰 상관관계가 있다고 가정하겠습니다. Drop-out을 적용하지 않고 모델을 학습하면 해당 Feature에 가중치가 가장 크게 설정되어 나머지 Feature에 대해서는 제대로 학습되지 않을 것입니다.

반면 Drop-out을 적용하여 상관관계가 강한 Feature를 제외하고 학습해도 좋은 출력값을 얻을 수 있도록 최적화되었다면, 해당 Feature에만 출력값이 좌지우지되는 과대적합(overfitting)을 방지하고 나머지 Feature까지 종합적으로 확인할 수 있게 됩니다. 이것이 모델의 일반화(Generalization) 관점에서 Drop-out을 사용하는 이유입니다.

3. Mini-batch 학습 시 Drop-out

 

그림 3. Mini-batch 학습 시 batch별로 새로운 drop-out 적용


위의 그림 3과 같이 전결합 계층에서 Mini-batch 학습 시 Drop-out을 적용하면 각 batch별로 적용되는 것을 알 수 있습니다. Drop-out Rate를 0.5로 설정했기 때문에 뉴런별로 0.5의 확률로 drop 될지 여부가 결정됩니다. 즉, 그림 3처럼 첫 번째 batch에서는 위에서 2, 3번 뉴런이 꺼졌고, 2번째 batch에서는 3번 뉴런 1개만 꺼졌고, 3번째 batch에서는 1, 2, 3번 뉴런 3개가 꺼질 수 있습니다.

4. Test 시 Drop-out

그림 3. Test 단계에서의 Drop-out 적용


Test 단계에서는 모든 뉴런에 scaling을 적용하여 동시에 사용합니다. 여기서 \(a\)는 activation function, \(\alpha\)는 drop-out rate를 의미합니다. Drop-out rate를 활용해 scaling 하는 이유는 기존에 모델 학습 시 drop-out rate 확률로 각 뉴런이 꺼져 있었다는 점을 고려하기 위함입니다. 즉, 같은 출력값을 비교할 때 학습 시 적은 뉴런을 활용했을 때(상대적으로 많은 뉴런이 off 된 경우)와 여러 뉴런을 활용했을 때와 같은 scale을 갖도록 보정해 주는 것이죠.

📚참고할 만한 포스팅

1. [Deep Learning] 퍼셉트론(Perceptron) 개념 이해
2. [Deep Learning] 퍼셉트론(Perceptron) 학습방법 및 절차
3. [Deep Learning] 활성화 함수의 개념 및 종류: sign, tanh, sigmoid, softmax, ReLU
4. [Deep Learning] 손실함수(Loss Function) 개념
5. [Deep Learning] 평균제곱오차(MSE) 개념 및 특징
6. [Deep Learning] 평균절대오차(MAE) 개념 및 특징
7. [Deep Learning] 최적화 개념과 경사 하강법(Gradient Descent)
8. [Deep Learning] 최적화 기법: (1) Momentum
9. [Deep Learning] 최적화 기법: (2) AdaGrad
10. [Deep Learning] 최적화 기법: (3) RMSProp
11. [Deep Learning] 최적화 기법: (4) Adam

🎈맞춤형 데이터/통계 분석 서비스

저희 AI/BigData 분석 솔루션 전문 기업 <헤이테크>에서는
맞춤형 데이터 수집부터 통계분석, 텍스트마이닝, AI 모델링, 논문작성을 지원해 드립니다 :)
자세한 내용은 아래 링크를 참고해 주세요!
문의사항은 댓글 또는 카톡플러스친구 @헤이테크로 연락주시길 바랍니다🙏.

https://kmong.com/gig/601647

 

데이터분석, 통계분석, 논문작성 지원해 드립니다. - 크몽

데이터워너원DATA101 전문가의 IT·프로그래밍 서비스를 만나보세요. <p>Python, SPSS, Tableau를 활용해 <strong>...

kmong.com

https://kmong.com/gig/601992

 

텍스트 데이터 분석/텍스트마이닝NLP 도와드립니다. - 크몽

데이터워너원DATA101 전문가의 IT·프로그래밍 서비스를 만나보세요. <p>대기업 AI/빅데이터 연구원 출신으로 구성된 법인 주식회사 유에프5는 Py...

kmong.com

https://kmong.com/gig/586088

 

모바일 앱 리뷰 크롤링/구글 플레이 스토어 - 크몽

데이터워너원DATA101 전문가의 IT·프로그래밍 서비스를 만나보세요. <p><strong>구글 플레이 스토어 앱 리뷰 1시간 안에 수집해 ...

kmong.com

https://kmong.com/gig/582649

 

유튜브 댓글 원하는 만큼 수집해 드립니다/웹 크롤링 - 크몽

데이터워너원DATA101 전문가의 IT·프로그래밍 서비스를 만나보세요. <p><strong style="font-size: 24px;&q...

kmong.com


오늘은 딥러닝 모델의 일반화(Generalization) 관점에서 Drop-out의 개념과 사용 이유에 대해 알아봤습니다.
포스팅 내용에 오류가 있을 경우 댓글 남겨주시면 감사드리겠습니다.
그럼 오늘도 즐거운 하루 보내시길 바랍니다 :-D
고맙습니다🙏

728x90
반응형