논문 읽기와 ML/DL 커리어 경력에 대한 조언 by 앤드류 응
이번 포스팅은 medium 사이트에 있는 포스팅을 번역한 글입니다!
우리 모두의 ML/DL 선생님이신 앤드류응 교수님께서 스탠포트 CS 230 강의에서
ML/DL 커리어와 논문 읽기에 대한 강의를 하신 것을 정리한 포스팅이 있어서 같이 나누고자 정리했습니다!
애초의 수십분 강의를 요약한 내용이기 때문에 더 세줄요약 할 수는 없으니 이번에는 천천히 정독해주세요~
그래도 긴 긁이 보기 부담스러우신 분들은 하단 핵심 정리 란으로 가주세요!
오역이 있을 수 있으니 본 링크로 직접 보시면 더욱 정확합니다!
원 강의는 CS 230 강의(https://youtu.be/733m6qBH-jI)이며 내용 정리가 된 영어 포스팅은 다음 링크를 참조하세요!
(https://blog.usejournal.com/advice-on-building-a-machine-learning-career-and-reading-research-papers-by-prof-andrew-ng-f90ac99a0182)
Introduction :
여러분이 이 포스팅을 볼 시점에는 아마도 이 분야의 선구자이신 앤드류응 교수님을 이미 알고 계실 것이며
그분이 해주실 ML/DL 커리어에 대한 조언에 관심이 있을 것입니다.
강의 영상을 직접 보시면 더 많고 유익한 내용이 있습니다만, 간단히 정리드리기 위해 이 포스팅을 작성했습니다.
앤드류응 교수님의 이번 어드바이스에는 크게 두가지가 있습니다.
1. 연구 논문 읽는 법 :
딥러닝계의 새로운 토픽을 마스터하기 위해 앤드류응 교수님이 사용하시는 효과적인 논문읽기 방법입니다.
2. ML/DL 커리어에 대한 조언
논문읽기 :
효과적이고 빠르게 논문을 읽는 방법입니다. 여러분이 ML/DL 시스템이나 프로젝트를 재미로 하든 분야 최고가 되기
위해 하든, 딥러닝에 발을 담근 사람으로서 논문(역자 주 : academic literature가 맥락상 논문을 의미하는 것으로 보임)을
공부하는 것은 꼭 해야하는 일입니다.
해야할 일은 다음과 같습니다.
1. 읽을 논문의 목록을 정리하자 :
논문 목록을 작성하세요. 그리고 블로그든 뭐든 어디에 정리해놓으세요.
2. 목록의 논문을 가감하자 :
기본적으로 여러분은 논문을 병렬적으로 봐야합니다(한번에 한 개 이상의 논문을 봐야함).
다시 말하자면 목록의 논문들 중에서 자세히 읽어야 할 것과 아닌 것을 취사선택하세요. 아마도 여러분은 각 논문의
10~20% 정도를 읽을 것이고 그 논문들은 여러분이 높은 수준으로 이해할 수 있을 것입니다.
그러면 여러분은 자세히 읽을 논문과 치울 논문을 정할 수 있을 겁니다.
이전에 읽어 본 논문의 갯수에 대해 앤드류 응 교수님의 가이드라인은 다음과 같은데요,
5~20개 읽어봤다 : ML/DL 시스템을 적용할 지식은 갖추었지만 최신의 기술을 이해하기에는 부족하다.
50~100개 읽어봤다 : 해당 분야에 대해 자세히 알고 있다.
논문 한 개를 어떻게 읽을 것인가?
논문읽기를 시작할 때, 처음부터 끝까지 정독하지 마시고, 몇 부분은 생략하고 읽으시되 다시 여러번 읽으세요.
다음 순서를 참고하시면 좋습니다.
1. 논문 제목(title)과 초록(abstract), 도표(figures)를 먼저 보세요 :
논문의 제목과 초록, 핵심 아키텍쳐 그림설명과 실험연구 부분을 읽고나면
논문의 기본적인 컨셉과 아이디어를 알 수 있을 것입니다. 특히나 딥러닝 계열의 논문은 한두 개의 도표로
여러개의 논문을 정리하기 때문에 처음부터 끝까지 논문 텍스트를 다 읽어볼 필요는 없습니다.
2. 그다음 도입(introduction), 결론(conclusion), 도표(figures)를 읽고 필요없는 부분은 생략하세요 :
도입과 결론, 초록에는 저자가 논문 리뷰어들에게 왜 자신의 논문이 게재 승인되어야 하는지 명확히 설명하기 위해
신중하게 요약한 내용이 담겨 있습니다. 그리고 관련된 다른 연구에 대한 부분은 가능하면 생략하세요.
이 부분은 저자의 연구가 다른 사람들의 연구에 비해 얼마나 느낌있는지를 보여주기 위한 내용이기 때문입니다.
그렇기 때문에 해당 논문의 분야에 대해 익숙치 않다면 읽어보는 것이 도움되지만 이해하기 어려울 수도 있습니다.
3. 수식은 과감히 생략!
4. 이해가 안되는 부분은 빼고 전체적으로 읽으세요 :
위대한 연구는 우리의 지식과 이해의 경계를 넓힌다는 뜻입니다.
그 말인즉슨, 저자는 여러분이 논문을 읽을 때 발견할 쓸모없는 부분이나 이해할 수 없는 부분도 설명합니다.
결론적으로 여러분이 논문에서 이해가 안되는 부분(잘 안쓰이는)은 처음에 생략해도 좋다는 뜻입니다.
해당 논문을 완전히 마스터할게 아니라면 시간만 더 듭니다.
논문을 읽고나면 다음 질문에 답해보세요.
1. 저자가 뭘 해내고 싶어했는가?
2. 이 연구의 접근에서 중요한 요소는 무엇인가?
3. 당신(논문독자)은 스스로 이 논문을 이용할 수 있는가?
4. 당신이 참고하고 싶은 다른 레퍼런스에는 어떤 것이 있는가?
이 질문들에 답할 수 있다면, 여러분은 그 논문을 제대로 이해하고 있다는 뜻입니다.
대부분의 논문저자들이 비슷한 포맷을 사용하기 때문에, 여러분이 더 많은 논문을 읽어나갈수록
이 태스크는 빨라질 것입니다. 컴퓨터비전 영역에서 자주 사용되는 네트워크 아키텍처 도표 설명처럼 말이죠.
논문 하나를 읽는데 얼마나 시간이 걸릴까?
사람마다 다르지만 ML/DL의 상대적으로 쉬운 최신 논문 하나를 이해하는데 들어가는 시간은 한 시간 정도입니다.
논문을 여러개 보게 되면 어지러워져서 3시간 그 이상이 걸리기도 합니다.
논문 보는 곳들 :
온라인 상에 논문을 보기 좋은 곳이 많습니다. 어떤 분야의 뉴비인 여러분에게 도움이 될 핵심 논문들을
포스팅한 블로그도 있을 것이고요.
많은 사람들이 the state-of-art of deep learning을 사용하기도 합니다. 다음을 참고하세요.
1. 트위터 :
놀랍게도 트위터가 연구자들이 새로운 것을 찾는 중요한 플랫폼이 되고 있습니다.
2. ML subreddit (https://www.reddit.com/r/MachineLearning/)
3. ML/DL 컨퍼런스 : NIPS/ICML/ICLR
4. 각종 커뮤니티or그룹(우리에겐 텐플코같은 곳이겠죠?)
수식 이해하기 :
밑바닥부터 직접 연산해보세요. 시간이 좀 걸리겠지만 좋은 연습이 될겁니다!
코드 연습하기 :
1. 오픈소스를 다운받아서 실행해본다.
2. 밑바닥부터 직접 구현해본다 ; 잘 몰랐다면 알고리즘을 직접 손으로 구현해보면서 이해해볼 수 있는 기회!
지속적인 공부 :
지속적으로 공부하고 발전하기 위해 가장 중요한 부분은 순간적인 집중보다는 꾸준히 하는 것입니다.
짧은 기간동안 벼락치기하는 것보다 매주 2편의 논문을 다음해까지 꾸준히 읽는 것이 더욱 중요합니다.
--------------------------------------------------------------------------------------------
여기까지가 논문 리딩에 대한 조언이었고요, 다음부터는 ML/DL 커리어에 대한 조언입니다!
ML/DL 커리어를 위한 조언
여러분의 방향이 직장(대기업or스타트업or교수)을 얻는 것이든 대학원(석,박사)을 진학하는 것이 목적이든,
중요한 일과 커리어에 필요한 전략을 세우고 집중하세요.
채용담당자들은 어떤 능력을 원하는가?
1. ML/DL 스킬
2. 의미있는 작업 : 역량을 보여줄 수 있는 프로젝트
성공적인 ML/DL 엔지니어의 일반적인 패턴은 T자 모형의 역량을 발전시키는 점입니다.
AI 제반 분야의 넓은 지식과 최소 1개 분야의 깊은 이해를 의미합니다.
T자의 가로 축 형성 :
이 도메인들의 기초적인 스킬을 배양하는 방법은 교육과정이나 논문 리딩을 통해 할 수 있습니다.
T자의 세로 축 형성 :
오픈소스 컨트리뷰션이나 연구, 인턴십과 같이 딥러닝 분야와 관련된 프로젝트를 통해 발전시킬 수 있습니다.
직업 선택하기 :
지속적으로 새로운 것들을 배우고 싶다면 다음의 방법들이 여러분의 성취에 도움이 될 것입니다.
1. 대단한 사람들과 협업하거나 엄청난 프로젝트에 참여하는 것 :
빡센 사람들과 함께하는 것이 여러분에게 좋은 영향을 줄 것입니다.
2. 여러분이 함께 일할 팀(가장 가까이 일할 10~30명)과 팀의 책임자에 대해 알아보고 따져보는 것도 중요합니다.
3. "Brand"에 매몰되지 마세요 :
기업의 브랜드는 여러분의 개인적인 경험이나 열정과 관련없을 수 있습니다.
채용제의를 받으시면 먼저 어느팀에서 여러분이 일하게 될지 물어보세요. 그리고 "일단 오시면 그 다음에 저희가 팀을
배정해드릴게요."라고 하는 제의는 거절하세요. 여러분이 관심없는 일을 맡은 팀에서 일할 수도 있습니다.
일반적인 조언 :
1. 최대한 많은 것을 배울 수 있도록 하자 :
여러분이 많은 것을 배울 수 있는 직장을 고르세요.
2. 중요한(가치있는) 일을 하자 :
세상을 발전시킬 수 있는 가치있는 프로젝트에서 일하세요.
3. 전통적인(기존의) 산업에 머신러닝을 적용하자 :
딥러닝은 테크놀로지 산업에서 많은 변화를 가져왔습니다.
그래도 여전히 가장 멋진 일은 전통적인(테크놀로지 산업이 아닌) 산업에 ML/DL을 적용시키는 것입니다.
딥러닝이 그 분야를 더욱 가치있게 만들수 있기 때문이죠.
핵심 정리 :
앤드류응 교수님의 조언을 요약하자면 다음과 같습니다.
1. 논문 리딩습관을 발전시키자 : 한 주에 2개씩 읽는 것으로 시작하자.
2. 효율적으로 논문을 읽자 : 읽을 논문 리스트를 만들고, 취사선택을 하자.
3. 논문을 읽을 때 : title, abstract, figures, introduction, conclusion을 읽는 것으로 시작하자.
4. 알고리즘을 이해하기 위해 : 수식을 직접 쓰면서 이해하고 밑바닥부터 코드로 구현해보자.
5. 지속적으로 공부하자 : ML/DL 컨퍼런스나 온라인을 활용하여 최신 논문들을 확인하자
6. AI분야의 T자 모양 지식 체계를 갖춰나가자.
7. 좋은 팀에 합류하자 : 여러분의 성장에 도움이 될 것이기 때문
8. 좋은 프로젝트에 참여하자 : 여러분이 많이 배울 수 있으면서 세상을 발전시키는 프로젝트에 참여하자
9. ML/DL을 다른 산업에 적용시키자 : 헬스케어, 천문학, 기후 변화 등등등...
이상 앤드류응 교수님의 조언을 정리한 포스트였습니다.
긴 내용 읽어주셔서 감사합니다 :)