딥러닝 입문부터 심화까지 강의,책,공부소스 추천

주의: 고등학교 수준 수학과 파이썬 기초 정도는 알고 있는 사람을 기준으로 작성한 글. 아마 강의 중에 파이썬 기초까지 설명하는 강의가 있긴 하겠지만 혹시 파이썬도 모른다면 먼저 파이썬 기초 강의를 듣거나 책 하나 사서 따라서 프로그래밍 해보기를 권함. (파이썬은 워낙 쉬워서 금방 배웁니다) 그리고 선형대수는 아마 대부분의 강의에서 "알면 좋지만 모르면 내가 소개는 해줄게" 정도로 알려줄 거에요. 공부하다 선형대수에서 막히면 선대 공부를 좀 해보기를 권하나 보통 그렇게 빡세게 선대 지식이 필요하진 않음.

입문

[책 & 강의] 직접 보고 추천하는 머신러닝 & 딥러닝 & 관련 수학 총.정.리. (2022)
머신러닝 딥러닝 입문, 밑바닥부터 시작하는 딥러닝, 모두를 위한 딥러닝, 코세라 머신러닝, 파이썬 라이브러리를 활용한 머신러닝, 선형대수학 머신러닝, 딥러닝 선형대수학, 확률과 통계 머신러닝, 미적분 머신러닝, 머신러닝 강의, 머신러닝 책 추천, 딥러닝 책 추천

일단 입문부터 초보까진 위 링크 참고하는 걸 매우 추천합니다

딥러닝 입문에서 초보까지, 여기에 더해 수학 기초 같은건 위에 누군가 정리해둔 글만 참고해서 강의 몇개 듣기만 해도 해결이 돼요

저의 경우에는 고등학교 때 여기저기에서 조각 글 써진 걸 보고 배웠고, 대학교 와서 cs231n 듣고 논문 읽고 있습니다. 개인적으로 추천하는 강의 시나리오는 Andrew Ng의 Coursera 강의(Introduction to Machine Learning)으로 입문 후에 cs231n 수강하는 건데, 꼭 이렇게 안 해도 윗 링크에 서술한 거 적당히 찾아 들으면 괜찮지 않을까 싶네요.

오히려 cs231n은 transformer도 없고 유튜브에 올라온 건 너무 옛날 강의라 부적절할지도..? 약간 옛날 강의라는 거 외에는 굉장히 좋은 강의지만.. cs231n 옛날 강의로 공부하실 거면 나중에 Transformer를 따로 공부하셔야 될 거에요. 워낙 NLP든 비전이든 어디든 쓰이는 구조라.

그래서 cs231n 최신 강의는 못 구하는지 찾아봤는데.. cs231n 2017년 강의를 진행한 andrej karpathy(현재 tesla 자율주행팀 디렉터입니다. 유명한 사람임)가 미시간 대학교에서 하는 2020년 컴퓨터 비전 강의가 있네요. https://youtube.com/playlist?list=PL5-TkQAfAZFbzxjBHtzdVCWE0Zbhomg7r 얼마나 많은 내용이 업데이트 되었을까 저도 기대하고 둘러봤습니다만... 3D Vision(Oct-Tree, Mesh R-CNN)도 있고, Attention(Transformer)도 있고, 내용 참 알차네요. (이게 근데 강의 하나에 들어가나?? 그리고 왜 뒷 강의로 가면 목차가 사라지지??) 내용이 컴팩트하다는 점은 고려하시고, stanford cs231n 대신 이 강의 들어도 될 것 같아요. 어.. 쉽지 않겠지만 다 따라만 오시면 최신 연구 동향까지 포함해서 배우는 건 많을 것 같네요.

입문 이후 공부법

cs231n 정도까지 보면 입문 정도는 했다고 할 수 있고, 그 이후로는 직접 논문 찾아 읽으면서 삽질을 해야 됩니다

조금 유감스럽게도 입문 강의 이후로는 학계 트렌드를 따라가야 하는데 그거는 어디서 친절하게 설명해주지 않고(강의가 1,2년 있으면 어차피 outdated가 돼요) 알아서 따라가야 합니다. 물론 상대적으로 친절하게 설명해주는 유튜브 채널이나 블로그가 당연히 있긴 해요

직접 논문 읽을 때는 아래 채널들이 매우 도움이 됩니다(모두 유튜브 채널)

  • PR-12, 이진원님 유튜브
  • Yannic Kilcher
  • Siraj Raval
  • 고려대 산업경영공학부 DSBA

그 외에 hoya012님 블로그도 깊이있게 잘 정리되어 있어서 매우 잘 참고했었음. 특히 hoya012님 블로그에는 비전 관련 주요모델 전부를 시간대에 따라 싹 다 요약한 게 있는데(시리즈로 4개 정도 있음) 본인 관심분야가 비전이 아니어도 한번 읽어보기를 강력 추천합니다 (링크는 https://hoya012.github.io/blog/deeplearning-classification-guidebook-1/ )

Paperswithcode에서는 각종 논문 metric과 구현본 쉽게 확인할 수 있어서 좋아요. (여러 데이터셋에 대해 SOTA 모델 같은 걸 바로 확인 가능) 이게 뭐냐면 사용자들이 집단지성으로 논문 읽고 각종 task에 대한 퍼포먼스랑 소스코드 구현본 같은 걸 등록해두는 사이트인데 "지금 유행하는 논문" 이런 것도 추천해줌.

그리고 쓸모 있는 github repository도 엄청 많습니다. 예를 들어 mmlab에서 진행하는 여러 프로젝트(mmdet3d, mmpose3d 등), timm, jax, pytorch lightning 등등이 있어요. 딥러닝 기반지식 쌓은 후에 한번쯤 어디에 쓰는건지 찾아보시는 걸 권함. 제가 Github에서 Star 달아둔 레포지토리 https://github.com/MilkClouds?tab=stars 참고하셔도 될 듯. 다만 딥러닝 주제가 아닌 것도 섞여 있는데 그냥 재미삼아 이런 것도 있구나~ 정도로 둘러보는 것도 나쁘지 않을 듯.

딥러닝의 장점은 진입장벽이 매우 낮다는 거에요. 수학 물리 같은 분야는 학부 1학년이 논문을 봐도 뭔지 모르는데 딥러닝은 수학 베이스 짙은 논문 아니면 그냥 입문강의 한두개 보고 나면 논문이 이해가 됩니다 ㄹㅇ

방법론적인 게 좀 많은데 그런 논문은 상식 선에서 당연한 이야기를 하기 때문에 더 그래요

예를 들어 이미 문제 잘 푸는 선생님한테 학생이 뭘 배우면 당연히 학생이 독학하는 것보다 빨리 배우죠? 그게 Knowledge Distillation이고. 근데 선생님이 할 수 있는 만큼까지만 학생이 문제를 풀 수 있으면 그것도 문제겠죠? 그래서 학생이 선생님을 뛰어넘을 수 있도록 random한 요소를 끼워 넣는 게(stochastic depth 등) noisy student에요. 이 정도면 굉장히 상식 선에서 이해가 가지 않나요?

입문 장벽은 낮은데 나오는 부가가치는 그 어떤 분야도 비비기 힘들 정도로 상상 그 이상이라 전공 상관없이 누구에게든 한번 배워보는 걸 추천합니다.

+ 추가

PyTorch와 Tensorflow 중 뭘 배울지 고민이라면 아래 링크 참고

2022년 PyTorch 와 TensorFlow 비교 | GeekNews
- 보통 TensorFlow는 산업용, PyTorch는 연구용 이라고 얘기하지만 이건 옛날 정보에 기반한 이야기- 실용적인 고려사항 : 보통 3가지 비교로 귀결 ㅤ→ 모델가용성 : 공개적으로 사용할 수 있는 모델이 얼마나 많은가 ㅤ→ 배포인프라 : 얼마나 효율적으로 배포가 가능한가 ㅤ→ 에코시스템 : 다양한 환경/하드웨어 ## Model Availabili