흩어진 지식 조각들을 한군데 모아두기 위해 당분간 시간을 가지고 정리할 예정이다.
디테일하게 모든 것을 적을 생각은 없고, 그냥 필요한 내용들 찾아서 링크를 걸 예정.
1. 딥러닝 개별 분야
목적: 지식 정리와 코드 리마인드
규칙: 주제별로 1, 2로 나눠서 포스팅.
[포스트 1] 분야 가이드, 서베이 작성
- 해당 task의 개요 (history, dataset, eval metric 등 기본)
- SOTA 모델들
- 내가 써본 것들 중점적으로한 리뷰 (이미 이전에 포스팅한 자료 있으면 같이 링크 걸어두기, 다듬으면 더 좋고)
- 볼만한 github 코드레포 정리
[포스트 2] 1에서 조사한 것을 기반으로함, 실제로 뜯어보거나 돌려보는 과정을 정리
- 기본 코드
- SOTA 코드
분야 목록
- image classification
- GAN, 특히 semantic image synthesis
- semantic segmentation
- depth, camera, SLAM
- vision+language representation 등
2. 기본 지식
목적: DL, ML, 선형대수학 등 수학, 통계 등 기본 지식 정리
규칙: 원래 쓰고 있었던 것들 잘 정리해서 마무리
3. 딥러닝 코딩
목적: 제너럴하게, 코드레벨
'딥러닝 개별 분야'에서 다루긴 하지만, 좀더 제너럴하게 보려고 한다.
특히나 컴퓨터 비전위주로만 해왔기 때문에 일반 ML쪽 지식이 부족해서, 가볍게라도 알아놓기 위함.
규칙: 간단한 예제 코드 자료를 수집하고 돌려보는 것을 기록한다.
'딥러닝 코딩 - 자료 형태 - 주제 이름 - 번호' 이런 형태로 제목을 정할 듯
[주제 1] kaggle이나 프로그래머스 등
프로그래머스 딥러닝 예제가 코드공유 안되는 것 같아서 아마 캐글만 쓸 것 같기는 하다.
링크 걸고 자유롭게 코드리뷰 하거나, 그냥 해봤다 정도로 주절거릴듯.
[주제 2] 책 예제
그 외에는 뭐가 있는지를 잘 모르기 때문에 책 예제들을 보려고 한다.
목차별로 작성할 예정이며, 필요에 따라 특정 목차는 스킵할수도 있음. 한번은 대략 훑는 게 목표.
둘 중 하나(혹은 둘다)로 정할 것.
https://github.com/codingalzi/handson-ml2 핸즈온 머신러닝2
https://github.com/wikibook/pymldg-rev 파이썬 머신러닝 완벽 가이드 (한국어 처리 예제도 있는 것 같다)
[주제 3] pytorch 기본 연산 정리
이건 딥러닝 개별 분야에서 단순한 코드들에 더 기계적으로 익숙해지면 없앨 수도 있긴 한데.
어쨌거나 시간 남으면 정리할 예정.
4. 알고리즘 코딩
목적: 코딩은 빨리 해야해
규칙: 알고리즘 고인물분들의 코드 염탐하기, 대충 풀면서 실천해보기 (라고 쓰고 자존감 채우기)
[주제 1] 프로그래머스
월간코드 챌린지 푼 다음 내 코드 그냥 올릴 예정. 설명은 딱히.. 실천한다에 더 가까움
지금 비공개로 올리고 있는데 문제집 다 풀면 공개로 돌릴 예정
[주제 2] 기본 개념 시리즈 포스팅 하기
알고리즘 볼 때 어떤어떤게 있고, 구현은 대충 이렇게 하더라. 자료 모아놓을 예정
-
[총정리] 출퇴근때 짬내서 볼 링크들은 각각 글에 걸어놓고, 위에 적어둔 내용들을 하나하나 포스팅 끝내면 여기에 링크를 걸 예정.
이 글을 나만의 딥러닝 knowledge base(?) 목차에 해당하는 메인 페이지로 사용할 생각이다.
한달정도면 정리가 되려나? 흠...
~ 실천하기 ~
시작: 2022.08.04
3. 딥러닝 기본기
[pytorch 기본기] 파이토치 공식 문서 참고
"PyTorch로 딥러닝하기: 60분만에 끝장내기" 를 출퇴근 시간에 다읽었음.
https://tutorials.pytorch.kr/beginner/deep_learning_60min_blitz.html <- 이 링크부터 쭉쭉 따라가자.
PyTorch는 Python 기반의 과학 연산 패키지로 다음 두 가지 목적으로 제공
- GPU 및 다른 가속기의 성능을 사용하기 위한 NumPy의 대체제 제공
- 신경망 구현에 유용한 자동 미분(automatic differntiation) 라이브러리 제공
되짚어보기
- 텐서: numpy의 ndarray와 유사함
- dtype, shape, device 등의 attribute를 담고있음
- 다양한 연산과 인덱싱 등 제공 https://tutorials.pytorch.kr/beginner/blitz/tensor_tutorial.html
- tensor.어쩌구_: in-place 연산인데, 메모리를 절약하지만 해당 텐서의 값을 바꿔치기 하므로 조심
- torch.autograd
- 신경망 학습하는거. forward, backward path
- torch.nn의 네트워크로 연산하는걸 computational graph로 만드는데 Directed Acyclic Graph 형태이며, input leaf node, output이 root node.
- requires_grad가 True인것만 학습 (False면 DAG에서 제외함)
- 텐서에 grad_fn이 함수형태로 들어가있고, loss.barward() 호출시 이 함수를 가지고 텐서에 grad 값을 채움.
forward로 만든 아웃풋을 가지고 로스를 정의하겠지! - torch.optim에 다양한 optimizer들이 있는데, optimizer.step()을 해주면 이거 초기화할때 model.parameters() 등록해놓은걸 가지고 grad값을 보고 learning rate로 스케일하여 파라미터 업데이트함.
- 학습이 아니라 인퍼런스 할때는 with torch.no_grad(): 안에서 해주겠지.
학습할땐 모델 인스턴스.zero_grad() 이렇게 초기화하고 forward 해줌.
- torch.nn으로 모델을 만들건데...
- Module로 묶음
- 모듈 정의할때 init이랑 forward만 있으면 됨. backward 연산은 자동으로 정의해줌
그러고보니 데이터셋, 데이터로더 애들도 봐줘야겠다.
내일 출퇴근에 그 다음 문서들 읽어줘야지.
'전공 기본기를 다져요 > 내맘대로 딥러닝' 카테고리의 다른 글
내맘대로 딥러닝 (1) - Image Classification (0) | 2022.08.03 |
---|
댓글