Post

[네이버 부스트캠프 AI Tech 6기] 4주차 회고

피어세션 정리

  • 4주차 피어세션에서는 알고리즘 2문제 / 프로젝트 환경 셋팅 및 결과 공유 / 각자 과제 질문을 진행하였다.
    • 시소 짝궁
    • 택배 배달과 수거하기
  • 지난 일요일에 첫 논문 스터디를 잘 끝마쳤다. 나는 이번에 ResNet을 발표하였다! 이전에 읽었던 논문들이지만 오랜만에 다시 펼쳐보니 그 의미가 좀 더 깊게 다가왔다. 부스트캠프를 하며 팀원들과 같이 이야기 할 수 있는 환경이 되어 그런지 생각할 거리나 다양한 관점에 대해 배울 수 있는 것 같다.
  • 월요일과 수요일에는 yolo v8을 각자 돌려본 결과를 발표하였다. 같은 모델을 그냥 돌려보자라고만 말했는데 다들 다양한 방법과 결과를 보여주었다. yolo nano 모델로만 해본 나와 다르게 m과 x 모델도 돌리신 분도 계셨고, 다른 hyper parameter나 evaluation metric도 직접 만드신 분도 계셨다. 조금 더 신경써서 팀 프로젝트에 임하고 싶다는 동기부여가 되는 소중한 자리였다.
  • 다음주에는 Image Classification 모델들을 더 살펴보고 yolo로 object dectection만 맡기고 classification 모델만 더 좋은 성능이 나오는 모델을 붙여보기로 했다.
  • 금요일에는 또 오랜만에 잡담을 하게 되었는데 팀원들과 한 층 가까워진 느낌이라 재밌었던 시간이었다. 요즘 팀이란 무엇이고 팀원, 그리고 리더란 무엇인가에 대해 고민이 많은데, 팀이라는 것이 역시 누구 하나 뛰어나다고 되는 것은 아니다라는 생각이 든다. 이런 잡담 시간도 있고 서로에 대한 공감을 더 나눌 수 있을때 좋은 팀이 되는 것이 아닐까.
  • 그리고 질문을 자유롭게 하고 그에 대한 답변도 자유롭게 말할 수 있는 분위기를 가지는 것이 정말 중요하다고 생각한다. 누구나 답변만 하는 역할을 하는 것이 아니고, 누구나 질문만 하는 역할을 하는 것이 아님을 부캠을 하며 부쩍 더 느낀다. 서로가 서로의 부족한 부분을 깨닫게 해주고 그 부분을 채울 수 있게 도와주는 분위기가 정말 소중하다. 그래서 더 부캠에 들어왔다는 걸 소중하게 여기는 것 같다.

회고

잘했던 것, 좋았던 것, 계속할 것

  • 논문 스터디를 하면서 ResNet이 왜 생긴 것인지 다른 방식은 더 없을지 생각해보며 읽었다. 아직 다른 방식이 더 없을지에 대해서는 마땅한 아이디어가 없었지만, 왜 탄생하게 되었는지를 조사하면서 CNN의 역사를 되짚게 되어 의미있었다.
  • yolo의 최신버전인 v8을 돌려보고 하이퍼 파라미터는 어떤 것이 있는지 세세하게 살펴보았다. 더불어 제공되는 data agumentation에 대해서도 꼼꼼히 살펴보았다. 이미 잘 구현된 모델인만큼 사용법 뿐 만아니라 세세한 내용도 살펴보기 위해 논문도 훑어보는 중이다.
  • 과제 해설 시간에 data agumentation에 대해 질문하였다. agumentation 자체가 워낙 모호한 점이 많기에 여러 기법들을 적용할 때 어떤 점을 주의해야 하는지 조교님들의 노하우를 여쭤보았는데, 일단 태스크에서 직관적으로 얻을 수 있는 아이디어는 넣고, 영 말이 안될 것 같은 점은 뺀다는 답변을 받았다. 하지만, 여전히 mix-up과 같이 우리가 인식하지 못했던 부분에서 좋은 방법이 있을 수 있다고 하셨다. Grad-CAM 같은 CNN Visualization 방법을 써서 어느 부분을 더 뽑아야 할 지 pre-trained 모델처럼 비슷한 태스크에서 인사이트를 얻을 수 있을 것 같은 생각이 든다.
  • 강의에서 이해되지 않는 부분을 헛투로 넘기지 않고 꼼꼼하게 더블체크 했다. 아직 디테일한 부분은 떨어질 것 같아서 강의에 나온 논문들 중 관심있는 논문들을 주말에 읽어보려 한다.
  • 과제에서 실험적으로 이해되지 않는 부분에 대해 질문하였다. 직접 구현한 resnet에서 훈련시키는 부분에 1 epoch만 돌려서 pre-trained resnet과 성능을 비교하는 실험이었는데, 여기서 전제에 대한 의문이 들었다. random initialize된 모델과 이미 다른 여러 이미지들을 보고 pre-trained보고 1 epoch만으로 공정하게 비교할 수 있을까? 라는 의문과 애초에 직접 만든 모델이 잘 학습되지 않아서 비교가 어려운 면도 있었다. 그래서 조교님께 조언을 구하고 추가적으로 epoch을 돌려서 실험을 진행하면 좀 더 비교를 잘 할 수 있을 것이라는 답변을 받았다.

잘못했던 것, 아쉬운 것, 부족한 것 -> 개선방향

  • 과제를 조금 더 빨리해서 생각할 거리들을 더 찾았으면 좋았을 것이라는 생각이 든다. -> 과제가 시간이 오래 걸릴 것 같다고 미루지 말고 더 적극적으로 덤벼들자!!
  • 매일 블로깅하는 것이 도저히 안되서 과제나 강의노트, 잡다한 지식노트에 최대한 tmi를 많이 쌓아놓고 있다! 이전에 했던 시간관리법도 융화시켜서 조금씩 나아지고 있으니 이렇게 쌓아두었던 tmi들을 조금씩 정리해보자!
  • Generative Model에 대해 개인적인 통찰과 예시들을 더 붙여서 강의내용을 불려보고 있다. 띄엄띄엄 생각하다보니 포스팅이 느려서 조금 걱정된다. -> 30분 글쓰기 집중 시간을 만들어야할 것 같다!

도전할 것, 시도할 것 (계속!!)

  • 타이머와 알람을 이용한 시간 통제!
  • 글쓰기 집중 시간 : 30분
  • 강의 정리 적게라도 계속 하기!!
  • Further Question 꼭꼭 읽어보기!
  • 논문을 읽으면서 왜? 작성했을지 찾아보거나 생각해보기

공부한 것, 알게된 것, 느낀점 + 추가로 알아본 것

  • VScode + remote-docker + jupyter notebook
    • VSCode에서 ssh 접속 -> docker attach -> jupyter kernel 연결까지 이상하게 애먹었다.
  • Adaptive Pooling Example
    • AdaptiveAvgPool이 output size 중심으로 생각할 수 있게 커널 사이즈를 자동으로 맞춰준다.

도커 명령어와 IPC(Inter-process Communication)

  • Signal을 보내는건 터미널 프로그램 -> Signal 자체는 커널이 받음 -> 커널이 신호를 뿌려서 프로세스들이 신호를 받아서 처리함
  • but, 이때 프로그램을 만든 개발자가 IPC(Inter-process Communication) 무시하고 자기가 직접 받은 신호를 다르게 처리할 수 도 있다. 
  • 도커 tty 환경 내에서는 이런 IPC Signal과 다르게 명령어로 동작

Docker 내에서 커맨드 라인 명령어

1
2
ctrl + p, q :: read escape sequence 
ctrl + d :: EOF 를 보내는 문자 -> exit

LXC(LinuX Container) - POSIX signal

1
2
ctrl + a :: escape sequence  
ctrl + c :: SIGINT (signal interrupt)
This post is licensed under CC BY 4.0 by the author.