brunch

You can make anything
by writing

C.S.Lewis

by 김범준 Aug 23. 2019

기똥찬 딥러닝 자료 정리

연구란 결국 지식의 가공이니까요.

 연구란 결국 지식의 가공이니까요. 양질의 자료를 모으는 것이 중요하죠. 딥러닝은 특히 교과서에 정리된 것을 공부하는 경우보다, 논문이나 온라인 자료를 통해 배우는 경우가 많습니다. 그런데 그 퀄리티라는 것이 굉장히 크게 차이 나서, 이상하게 설명하거나, 단순히 내용 풀어쓰기에서 그치는 것들도 있는 반면, 정말 기막하게 잘 설명하는 자료도 많습니다. 오늘은 이렇게 기똥찬 딥러닝 온라인 문서, 자료를 제가 아는 범위 안에서 공유하고자 합니다. 혹시 이 글에 없는 좋은 자료가 있다면 댓글 부탁드립니다ㅎㅎ 이번 글에는 강의나 논문이 아닌 온라인 자료만을 대상으로 하므로, 강의나 논문 자료에 대해서는 이곳이곳에서 참고해주세요.


Hyper-Parameter Optimization

https://github.com/Hvass-Labs/TensorFlow-Tutorials/blob/master/19_Hyper-Parameters.ipynb

Hvass-Labs이라는 분의 텐서플로우 튜토리얼의 한 강의인데, 이게 정말 좋습니다. 내용은 Hyper-Parameter Optimization입니다. 딥러닝 모델 학습할 때 learning rate라던가 batch size같은 hyperparameter를 설정하는 것은 사실 답이 없습니다. 일단 Grid Search처럼 다양한 조합에 대해 시도해볼 수밖에 없죠. 그런데 Bayesian Optimization라는 방법을 사용하면 Grid Search보다는 좀 더 효율적으로 hyperparameter를 찾을 수 있습니다. 사실 디테일한 내용은 복잡한 수학을 요구하므로 생략하고, 이 강의에서는 hyperparameter optimization을 구현한 코드와 그에 대한 설명을 제공합니다. ipython notebook에 디테일한 설명이 있을 뿐만 아니라, Youtube 동영상도 있습니다. 34분짜리 동영상이 그만큼의 값어치를 하니 강추합니다. 


Auto-Keras

https://autokeras.com/

위에서 설명한 hyperparameter optimization은 대상이 learning rate같은 것들인데, 요즘 인기 있는 NAS(Neural Architecture Search)는 Neural Network의 구조 자체를 스스로 변형해서 최적화하는 것을 목표로 합니다. 원래의 NAS는 대량의 GPU가 있어야 했는데, Auto-Keras는 좀 더 효율적인 방법으로 구현해서 일반적인 GPU 있는 데스크탑 유저도 사용할 수 있습니다. 사실 제가 이런 AutoML을 좋아하고 추천하는 게, 귀찮음을 덜어주고 성능을 올려준다는 명확한 장점이 있으니까요.


A Short Introduction to Entropy, Cross-Entropy and KL-Divergence

https://www.youtube.com/watch?v=ErfnhcEV1O8

Cross-Entropy Loss를 저희가 정말 자주 쓰지만, 무질서도가 딥러닝이랑 도대체 무슨 관계인가 이해하기 참 어렵습니다. 그러다 찾은 하나의 유튜브 링크인데, 까다로운 정보 이론임에도 굉장히 명쾌하게 설명하고 있습니다. 여기서 강의하시는 Aurélien Géron이라는 분은 알고 보면 "핸즈온 머신러닝"이라는 책의 저자로 알려져 있습니다. 그 외에도 Cross-Entropy Loss를 Maximum Likelihood와 연관 지어 이해하고 싶다면, 제가 만든 Slide Share 자료도 있으니 참고하세요ㅎㅎ


One-stage object detection

http://machinethink.net/blog/object-detection/

이분의 블로그는 이전 글부터 강추했었는데, YOLO/SSD 계열의 object detection에 대해 자세히 설명합니다. 원 논문에서 설명하지 않았던, 왜 Grid로 나누는 것이 중요한가, 그 외에도 responsible에 대한 강조도 있으니, 일독을 권장합니다. 저는 정말 프린트해서 봤습니다. 특이하게도 블로거의 정체는 iOS 개발자라고 하는데, 디테일한 내용을 이해하기 위해 코드나 자료들을 분석했다고 하네요. 논문만 읽고 러프하게 이해하는 것이 아닌, 코드를 파헤치며 디테일한 내용을 이해하려는 자세는 정말 본받을만합니다.


Deconvolution and Checkerboard Artifacts

https://distill.pub/2016/deconv-checkerboard/

사실 이건 "온라인 논문"입니다.. 그럼에도 여기서 소개하는 것은 종이 논문으로는 표현하기 어려운 것들을 웹을 통해 직관적으로 잘 보여줘서 추천합니다. Deconv할 때는 4x4나 8x8 같은 게 많이 쓰이는데, deconv도 conv처럼 3x3을 쓰면 안 되냐는 생각을 가질 수 있습니다. 그런데 그렇게 하면 이상한 체크무늬가 나타나게 돼서 안 좋은데, 왜 그러한 체크무늬가 나타나게 되는 이유를 deconv가 다루는 범위를 조사함으로써 이해할 수 있음을 보여줍니다.

작가의 이전글 Why를 명쾌하게 설명하는 딥러닝 논문들
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari