Day 18: 7-5 BN 실습 & 7-6 Loss landscapes problem

2023. 3. 9. 23:10딥러닝 이론

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

- Ch.7-5 Batch normalization 실습

- Ch.7-6 The Loss Landscapes Problem

 

Batch normalization에 대해선 벌써 많이 이야기했으니 실습을 바로 해봅시다.

1. Batch normalization 실습... 과연 어떻게 우리가 배운 내용들을 발견했는가?

실습내용은 왼쪽 노트에 기제 했습니다. BN ReLU화 vanilla ReLU는 차이가 거의 없고 둘 다 vanishing gradient문제를 "해결" 한다. BN Sigmoid 또한 효과가 좋다. 하지만 Sigmoid는 loss과 accuracy의 선이 뒤집힐 정도로 random guess인 수준이다.

 

알고리즘을 공부할 땐 중간에 array도 print 해보고 variable도 print 해보면서 어디에 문제가 생겼나 찾아보죠? Data science 쪽에서는 현상들을 수학적으로 그래프적으로 확인을 하는 게 현상을 visualize 하기 좋은 것 같습니다. Source code를 이해하진 않지만 언젠가는 이런 debugging techniques를 할 줄 알아야 이런 문제를 부디 쳤을 때 문제를 인식하고 해결을 할 수 있을 것이다. Video로 debugging 하는 것은 이번 실습을 통에 알게 된 technique이다.

 

2. Batch normalization + ReLU를 써도 underfitting? Loss landscape problem이란?

Batch normalization section을 어제 다 배워서 이제 underfitting문제는 대부분 해결될 줄 알았지만, 놀랍게도 끝이 아니었습니다. 그래서 어제 인터뷰 내용에서 답을 더 디테일하게 추가가 가능했네요.

 

Loss landscapes, 생소한 단어지만 들어만 봐도 대충 loss의 landscape, 즉 loss의 3D표면을 산처럼 경사가 올라갔다 내려갔다 하면서 지저분할 것 같은데요... 이렇게 말하면 또 이해하기 힘드니까 사진을 첨부합니다. 강의도 이 논문(ResNet)을 바탕으로 loss landscape과 그의 해결책인 skip-connection을 이야기해봅시다. BN + ReLU를 사용했지만 20-layer vs. 50-layer를 비교했는데 50-layer의 underfitting이 20보다 많이 심해서 연구자들은 의문에 빠집니다.

ResNet 논문및 사진 출처: https://arxiv.org/pdf/1712.09913.pdf

 

근데 이 논문 저자들은 문제가 있다는 것은 알았지만 이유는 결코 못 찾았습니다. 그래서 이유는 몰랐지만 답을 제안합니다, skip-connections. Skip-connections란 왼쪽에 첨부된 노트 하단처럼 노드 1 -> 노드 3 -> 노드 5를 하면서 중간중간에 건너뛰는 것이다. 위 그림처럼 아주 많은 함정 및 local minimum을 한방에 제거를 해버리죠. 그래서 BN + ReLU도 했는데 layer가 많아서 underfitting이 일어나면 skip-connections은 must-try이다.

 

오늘은 여기까지~ 수고하셨습니다.