본문 바로가기
전공 기본기를 다져요/내맘대로 딥러닝

나의 Knowledge Base: 메인 페이지

by 포숑은 맛있어 2022. 8. 4.
반응형

흩어진 지식 조각들을 한군데 모아두기 위해 당분간 시간을 가지고 정리할 예정이다.
디테일하게 모든 것을 적을 생각은 없고, 그냥 필요한 내용들 찾아서 링크를 걸 예정.

 

1. 딥러닝 개별 분야

목적: 지식 정리와 코드 리마인드
규칙: 주제별로 1, 2로 나눠서 포스팅.

[포스트 1] 분야 가이드, 서베이 작성

  1. 해당 task의 개요 (history, dataset, eval metric 등 기본)
  2. SOTA 모델들
  3. 내가 써본 것들 중점적으로한 리뷰 (이미 이전에 포스팅한 자료 있으면 같이 링크 걸어두기, 다듬으면 더 좋고)
  4. 볼만한 github 코드레포 정리

[포스트 2] 1에서 조사한 것을 기반으로함, 실제로 뜯어보거나 돌려보는 과정을 정리

  1. 기본 코드
  2. 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와 유사함
  • 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 연산은 자동으로 정의해줌

그러고보니 데이터셋, 데이터로더 애들도 봐줘야겠다.

내일 출퇴근에 그 다음 문서들 읽어줘야지.

 

반응형

댓글