논문 읽기와 ML/DL 커리어 경력에 대한 조언 by 앤드류 응
21.09.23
읽어볼 논문들 정리
vggNet
https://arxiv.org/pdf/1409.1556.pdf
같은 조건에서 layer만 깊게 쌓으면 성능이 좋아질까? 에 대한 실험을 진행하였다.
재밌었던건 3.1 training에서 weight 초기화 부분. 처음부터 큰 모델로 init weight부터 시작하면 불안정한 gradient 형성으로 학습이 안되서 작은 모델부터 한 다음 점점 큰 모델로 키우면서 한거. 하지만 Glorot & Bengio라는 방법을 뒤늦게 알아서 결국 뻘짓이 되었지만 좋은 아이디어 인듯.
읽다보니 들은 의문점) 저거 만든게 2015이고 저 모델은 2011년 논문(Ciresan, D. C., Meier, U., Masci, J., Gambardella, L. M., and Schmidhuber, J. Flexible, high performance convolutional neural networks for image classification. In IJCAI, pp. 1237–1242, 2011.)을 기반으로 만들었다고 했는데 이 때도 pytorch에서 conv layer같은걸 지원했나? 시간이 많이 남으면 pytorch가 어떻게 발전했는지 버전별, 년도별로 보는것도 좋을 듯.
resNet
https://arxiv.org/pdf/1512.03385.pdf
너무 깊게 쌓으면 gradient venishing,exploding 현상이 일어나서 에러가 오히려 증가. 그래서 우리는 residual learning으로 해결했다. 그래서 많이 쌓았어도 성능 해결. 또 다른점은 이미지 크기 반으로 줄일 때 maxpool 안쓰고 stride를 2로 줘서 해결.
vgg는 레이어가 16개, 19개인데 비해 여긴 18,34,50,101,152개.. 근데 vgg19의 flops는 19.6 bilion인데 resnet 34는 3.6bilion밖에 안된다. dense layer를 4096 안하고 avg pool해서 1000으로 한게 제일 클 것 같고, 50 부터는 bottleneck을 적용시킨것도 있을 듯.
https://deep-learning-study.tistory.com/534
https://github.com/weiaicunzai/pytorch-cifar100/blob/master/models/resnet.py
shufflenet v2
https://arxiv.org/pdf/1807.11164.pdf
flops는 성능에 직접적인 metric이 아니다. 그래서 실제 업무에서 사용되는 속도, 지연시간 등을 기준으로 가이드라인을 만들었고, 이걸 기반으로 shufflenet v2를 공개한다.. 는 내용이다.
flops 대신 bottleneck 등으로 사실상 더 많은 시간을 소모하는 메모리 접근 횟수인 MAC을 더 선호하거나, 모델이 얼마나 병렬적인지 등의 변수요소도 있다. 또 CUDNN이 11conv 보다는 33conv에 최적화 되어 있기도 함. 물론 mobilenet 들에서 소개한 group convolution, depth-wise convolution도 중요하다. 실제로 코드 까보면 쓰고 있음.
shufflenet인 이유는 group convolution 할 때 각자의 filter의 channel들이 일부 이미지 channel로 보고 계산하게 되는데 이걸 매번 shuffle 해주며 학습하기 때문.
mobilenet v3
https://arxiv.org/pdf/1905.02244.pdf
high resolution
'논문 읽기 연습 > 공통' 카테고리의 다른 글
Self-supervised representation learning from 12-lead ECG data 내용 요약 (0) | 2022.01.18 |
---|