boostcamp ai tech 3기 2주 회고

1월 24일 월요일

이번 주는 PyTorch에 관한 내용으로 수업이 꾸려졌다. PyTorch 소개부터 시작해서 구조와 그 활용까지 배우는 한 주가 될 것이다.

기본적인 특징과 함께 대표적인 함수를 배웠는데, 사용 방법이 numpy와 비슷해서 크게 어려울 게 없어 보였다. 하지만 그건 착각이라는 걸 깨닫는 시간은 오래 걸리지 않았다.

세 번째 강의가 PyTorch 대표적인 템플릿을 보면서 프로젝트할 때 대략 어떤 식으로 코드가 구성되는지, 모듈은 어떤 게 있는지에 대해 배웠는데 처음 보는 거고 복잡해서 이해가 잘 안 되었다.


강의를 세 개 듣고 첫 번째 과제를 시작했는데 분량이 많았다.

이번 주 모더레이터로서 데일리 스크럼 시간에 미리 권장 학습 일정을 짜서 얘기했는데 강의들이 전부 30분 내외의 길이고 개수도 얼마 안 되니까 여유로운 일정이 되겠다고 다들 안심했었다.

과제를 보니 강의 내용이 짧은 게 이해가 되었다. 과제에서 할 게 너무나 많았다. 일부러 수업 때 얘기하지 않고 과제를 수행하면서 직접 실습을 통해 공부하 게 만든 의도인 것 같았다. PyTorch의 다양한 기능을 소개하면서 예제 코드를 실행시켜보는 구조였다. 중간중간에 직접 코드를 작성하며 해결해야 하는 과제가 나왔는데 PyTorch 문서와 구글링을 하면서 많은 고민을 하게 만들었다. 스크롤을 내려도 내려도 끝이 안 보이고, 심지어 이제 좀 거의 끝나간다고 생각할 때쯤 ‘숨겨진 셀 52개’ 이런 식으로 새로 등장하는 셀이 나와서 킹받았다….ㅎㅎ

학습 효율을 올리기 위해 과제를 정성들여서 만든 게 티가 났다. 다만, 평소에 Class를 쓸 일이 없어 파이썬 Class 문법에 익숙하지 않으며 PyTorch를 처음 접하는 나로선 과제가 어려웠다.

이번 피어세션부터 학습 성과와 질문을 공유하고 남은 시간에 알고리즘 한 문제를 정해서 풀기로 했다.

첫 문제는 내가 정했는데 ‘소년 점프’였다. 그냥 골랐는데 생각보다 어려운 문제였다. 다들 어려워해서 피어세션 내에 못 풀었다.


1월 25일 화요일

PyTorch의 Module, Parameter을 배웠다. 그리고 forward와 backward 개념을 통해 어떤 식으로 학습이 이루어지는지 대략적인 학습 과정에 대해 배웠다.

nn.Module, nn.Parameter 등 생소한 개념이 많았고 사실 잘 이해가 안 갔다. 큰일난 거 같다.

첫 과제도 다 못 끝낸 채로 두 번째 과제를 만났는데, 이것 또한 분량이 많아서 걱정이다. 그래도 필수 제출 과제가 이거 두 개라는 데에 안도했다.

피어세션 때 서로 과제의 어려움에 대해 토로했고 모르는 부분에 대해 묻고 답했다. 팀원 분들이 모르는 내용을 잘 알려주셔서 고마웠다. 강의의 further questions 내용에 관해서 서로의 의견을 나누었다. 알고리즘 문제는 최지민님께서 골랐는데 ‘가르침’이었다. 오래 전부터 푸려다가 귀찮아서 안 풀었던 문제였다. 나는 이 문제 또한 피어세션 내에 풀지 못했다. 사실 이것보다 PyTorch 과제가 더 급해서 집중이 안 됐다.


1월 26일 수요일

이 날 강의는 그럭저럭 어렵지 않게 들었다. 물론 제대로 이해한 건 아니지만 당장 중요한 내용은 아닌 것 같았다.

팀원 분들에게서 도움을 받아서 저녁 즈음엔 과제 두 개를 다 마칠 수 있었다. 설 연휴 동안 내용을 정리하고 복습을 열심히 해야겠다.

피어세션 때 전태양님께서 ‘후보 추천하기’를 골라서 다 같이 풀었다. 이번 문제는 피어세션 시간 안에 풀 수 있었다. 간단한 문제였는데 어떤 자료구조를 쓸지 고민한다고 괜히 시간이 더 오래 걸렸다. 입력 크기와 시간 및 공간 복잡도를 고려했을 때 전혀 긴장할 필요가 없었다.


1월 27일 목요일

남은 강의가 세 개였는데 내용이 어렵지 않고 개념 위주라서 편하게 수강했다. 마지막 강의는 PyTorch에서 작업 도중 메모리 초과와 같은 상황이 발생했을 때 대처방안 팁을 소개했는데 아직 프로젝트를 할 시기도 아니라서 그냥 이런 게 있나 보구나 하고 들었다. 월요일과 화요일의 강의와 과제가 너무 힘들었던 반면에 어제부터는 다소 편해진 느낌이다. 강의를 다 듣고 오후에 심화과제를 오피스아워 전까지 한 번 더 봤는데, 시키는대로 과제를 수행하긴 했지만 이해 안되는 내용이 대부분이었다. 이번 주에 공개된 강의, 퀴즈, 과제를 다 마친 상태라서 마음이 한결 가벼워졌다. 내일부터는 공부 내용을 정리하고 복습하는 시간을 가지면 될 듯하다.

피어세션 동안 과제에 대해 많은 궁금증을 얘기했지만 확실히 해결된 건 거의 없었다. 결국 오피스아워에서 궁금증을 해소하고자 했는데, 오피스아워의 시간이 부족한데다 심화과제에 관한 내용은 없어서 해결되지 못했다. 알고리즘 문제는 최진혁님께서 ‘짝수 게임’을 골라주셨는데 간단한 듯하면서도 안 풀렸다….나는 바보입니다…

1월 28일 금요일

밀린 강의 내용 정리를 했다. 스페셜 피어세션 때 다른 조 사람들을 만나서 서로의 배경과 부스트캠프 학습 관련한 대화를 나눴는데 즐거웠다. 다음 스페셜 피어세션도 기대가 된다.

18시부터 멘토링 시간을 가졌다. 사실 멘토님께 이것저것 궁금한 건 많지만 어느 포인트부터 집어서 시작해야 할지 모르겠다. 다른 캠퍼분들과 비교해도 한참 부족한 나라서 그런 거 같다. 부스트코스 학습 내용에 관해서는 내가 ML / DL 분야에 아는 게 거의 없어서 뭘 질문해야 할지도 모르는 수준인 것 같다… 그래서 일단 내 생각엔 부스트코스 내용 외의 AI 도메인에 관련된 내용이나 앞으로 미래 설계를 위한 길잡이 역할을 멘토님께 기대하는 게 좋을 듯하다.

일단 이번 멘토링 시간에 얻은 내가 이해한 가르침은 다음과 같다.

  • 자신만의 학습 방법을 구축해야 한다. 예를 들어 새로운 도메인과 관련한 작업을 할 때, 잘 모르는 분야를 빠르게 탐색하고 공부하기 위한 본인만의 노하우가 필요하다.
  • 어떤 일을 하든지 자기가 내린 판단을 설명할 수 있는 근거를 항상 생각하고 있어야 한다. 생각하면서 살자.
  • 자신이 내놓은 결과물들을 다른 사람들에게 잘 설명하고 이해시킬 수 있는 전달 능력을 갖추자. 이건 바로 위의 말과 관련된 말인 것 같다. 합리적인 근거와 함께 자신의 말을 납득시킬 수 있는 능력이 필요하다.

결론

강의 수준과 과제 수준의 차이가 있어서 과제를 하는 데에 어려움을 많이 느꼈다. 그로 인해 시간이 부족해서 배운 내용을 당일에 정리하고 복습할 시간을 가지지 못한 게 아쉽다. 설 연휴 동안 학습 정리와 복습 시간을 가져서 재정비하는 데에 쏟아야겠다.

단순 알고리즘 문제를 푸는 데엔 자신이 있었지만 생소한 클래스 문법 때문에 고생을 많이 했다. 전체 흐름 속에서 현재의 코드가 어떤 의미인지 파악하는 능력을 갖춰야 한다.

오리엔테이션 때 들었던 말이 더 와닿는 한 주였다. 지금 많은 게 부족하다고 느껴지더라도 그 모자람에 신경 쓰지 않으려 한다. 일주일 전의 나, 하루 전의 나보다 얼마나 성장했는지에 집중하자.