Day 21: 7-9 Dropout, dropconnection 개념과 실습

2023. 3. 12. 23:51딥러닝 이론

오늘 공부한 내용은 Ch.7-9입니다:

- Dropout and dropconnection

- 실습: dropout을 어떻게 시각화 할 것인가? How to use dropout to visualize what the weights are doing?

 

드디어 3주차를 마무리 하게될 Day 21일이 왔네요. 오늘도 화이팅 입니다! 저번 수업에 이어 dropout과 dropconnection에 대해 공부해 보겠습니다.

 

Overfitting 방지법:

1. 모델 경량화

2. 데이터 추가 또는 Data augmentation

3. Dropout and dropconnection:

  • Dropout
    • Dropout은 node마다의 중요성/역할을 높이는 기술이다:
      한명의 축구 선수가 있다 가정하자. 그의 이름은 "손흥민"이다. 이 선수는 슈팅 할 때 한쪽 발만 사용합니다. 태어났을때 부터 슛팅을 왼쪽 발만 사용했습니다. 하지만 문제가 되진 않았다. 팀에 캐인과 클루셉스키가 있어 각각 센터와 오른쪽이 커버가 잘 됩니다. 하지만 축구는 부상도 많고 최대한 유리한 상황을 만들기 위해선 선수마다 좋은 활약을 하는게 중요하다. 그래서 콘테 감독은 선수들의 포지션과 출전여부를 랜덤으로 정했다. 상황을 예측하기 어려워진 손흥민은 양발 및 여러 포지션을 학습하게 된고 훌륭한 선수가 되었다. 물론 팀 나머지도 마찬가지다.
    • 혹시 이야기가 조금 이상한 방향으로 흘러갔나요? node들이 서로 너무 의존을 하게 되면 overfitting이 일어난다. 그래서 random으로 node를 삭제한다. Forward propagation때 p라는 probability를 정해 random으로 hidden layer에 있는 node를 삭제한다. 사실상 경량화랑 비슷하지만, 영구적으로 삭제를 하는건 아니고 가끔만 꺼놨다가 이따가서 다시 키는 느낌이다. 서로의 의존성은 줄이고 독립적으로 일을 해내는 역량을 만들어 주는 것이다.
  • Dropconnection
    • Dropconnection은 dropout하고 작동 방법은 동일하지만 connection 또는 edge를 기준으로 한다. 조금 더 fine tuning이 가능할 것 같네요 (connection이 node보단 많아서요).

 

2. dropout을 어떻게 시각화 할 것인가

제가 보기에는 실습은 수업에서 배운 것들을 의심하는 시간이라고도 봅니다. 수학적인 부분은 증명을 통해 인정을 해도, 수학적으로 증명 되지 않았는데 "그냥 그렇게 작동한다"라고 들으면 바로 "근데 왜 이렇게 되는걸까?"라는 질문을 해야 합니다.

그리고 실습 할 때는 이해나 직관을 돕기 위해 시각적 증거가 있으면 좋습니다. 질문들의 해석을 잘못 할순 있지만 일단 시각화에 돕는 자료나 증거가 있어야 다른 사람들이 추가로 코멘트를 할 수 있다.

 

왼쪽 사진은 dropout을 안했을때와 오른쪽에는 dropout을 적용 했을때다.