티스토리 뷰

후기글

[부캠 AI Tech] 수료 후 회고

꿈더꿔 2022. 8. 25. 00:21

 

네이버 블로그에 있던 글을 옮겨 옵니다.ㅎㅎ

 

원문 링크 - https://blog.naver.com/rlarlxo4828/222781534402

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

Intro

길고 길었던 부스트캠프 AI Tech 3기 과정이 끝나고 수료증까지 받게되었다! 지나고나니 매우 짧았던 것 같다. 매주 작성해야하는 캠퍼학습피드백에는 항상 더 길었으면 좋겠다는 말을 남겼던 것 같다. 그만큼 배운게 많고 알아야할 지식들이 많아서 그랬던 것 같다. 근데 다시 생각해보면 기간은 적당한 것 같기도한?? 내거로 만들 시간이 필요하지만 그건 지금부터 내가 할 일이다 ㅎㅎ

 

 

1. 합격까지의 과정

1. 퇴사 후 준비

퇴사 후 내 역량이 많이 부족함을 깨닫고 기초를 쌓고 AI분야에 대해 좀 더 알아가고 싶었고, 부스트캠프에 지원했다. 서류부터 쉽지 않았다. 오랜만에 쓰는 자기소개서…ㅎ 우선 작성하고 주변 친구들에게 피드백을 받아서 미리미리 수정을 해두었다. 지원기간이 꽤 길어서 미리 써두고, 역량테스트를 준비했다. 서류합격 발표 후 테스트 날짜까지 기간이 짧아서 미리미리 작성할 필요가 있었으며, Pre-course를 들어야했기에 퇴사후 지원기간까지 약 2달 정도 있었지만 생각보다 빡빡한 일정이였다.

 

2. 입원

이제 공부를 시작해볼까? 하는 순간 갑자기 기흉이 와서 2주간 입원을 해버렸다. 하지만 아이패드를 챙겨서 병원에서도 Pre course를 들으면서 AI Math 공부를 계속했다. 2주동안 Pre course를 모두 듣고, 수술도 무사히 끝나서 퇴원!

 

3. 코딩테스트 준비

사실 자료구조 알고리즘 하나도 몰랐다. 하지만 파이썬은 어느정도 익숙했기에 1달이면 기본적인 문제들은 풀 수 있을거라 생각하고 아무 자료구조 + 알고리즘 강의 구매해서 공부하고 백준문제 풀고, 프로그래머스 문제 푸는 것을 무한 반복했다. 새로운 문제보다는 실버1까지 만든 후에는 푼 문제만 계속 무한반복했다. 나름 수학문제 푸는 기분이라 괜찮은?? 근데 건강을 잃었다. 20시간 공부하고 4시간 자는 식으로 해서 그런가…ㅎㅎ

 

4. 서류 합격 후 1차 테스트

큰 무리없이 코딩테스트를 보라는 메일이 왔고, 지금까지 풀었던 문제들을 또 반복해서 풀면서 1차 테스트를 준비했다. AI Math는 내 전공이 수학교육과라 비교적 쉬웠고, 다른 CS 지식은 Pre course만 잘들었으면 충분히 풀 수 있었다. 알고리즘은 뭐… 무한반복의 효과로 잘 넘겼다 ㅎㅎ

 

5. 2차테스트 및 합격

2차는 알고리즘만 나와서 그냥 풀었던 문제 또 반복했다. 새로운 어려운 문제 풀기엔 시간도 부족하고 심리적으로 좌절감만 느낄 것 같아서 그렇게 했고, 전날에 프로그래머스 레벨1, 2를 풀면서 감을 익히는 정도로 하고 2차를 봤다. 8개중 6개정도 풀었고, Computer Vision 에서는 무난했던 것 같다. 합격 메일이 왔을 때 드디어!!! 시작할 수 있겠구나라는 마음이 엄청컸던 것 같다 ㅎㅎ 난 뭐든 해낼 수 있겠다는 마음?? 군대 전역 후 처음 느끼는??ㅎㅎ

 

 

2. Orientation 및 부캠 시작

사실 너무 오래되서 기억이 잘 나지는 않는다. 하지만 줌에서 이것저것 장난쳤던 기억과 부캠에서 기대되는 것이 무엇인가? 와 같은 아이스브레이킹 했던 것이 기억에 남는다. 그때 기대했던 것으로 어제보다 더 나은 나의 성장이였던 것 같은데, 실제로 그런 것 같아서 목표를 이뤘다고 볼 수 있으나 더 욕심이 생겨서 더 많은 것을 알고 싶다 ㅎㅎ

 

3. 첫 피어세션

처음 조를 배정받고 줌을 통해 인사를 나눴다. 첫 피어세션 역시나 어색하다 ㅎㅎ 각자 자기소개하고 앞으로 어떻게 하면 좋을지 얘기도 나눴지만 50분을 채워야하는 압박감이 상당했다 ㅎㅎㅎ 여러가지 이벤트가 있어서 팀적으로 준비해야하는 게 있었는데 조이름을 정하고 팀소개하는? 시간도 있었는데 나름 잘 넘어간것 같다. 운영진 분들이 어떻게든 다양한 컨텐츠로 공부하는데 좋은 환경을 제공하기위한 노력이 느껴져서 부캠에서 공부하는게 전혀 후회되지 않았다!

 

 

 

4. Level1

1. 이론

정해진 강의를 듣고 과제를 제출하고, 배운 내용 복습하면 하루가 다지나갔다. 사실 조금 부족했다. Pre course 가 같이 있던 2주 정도는 금방금방 했지만, 뒤로 갈수록 시간이 부족해졌다. 정리할 내용은 누적되는데 들어야할 강의는 계속 늘어나는?? 하지만 난 집에서 나오지 않기로했기에 계속 공부했던 것 같다. 과제를 풀어가는 재미도 있던 것 같다. 그리고 마스터클래스나 오피스아워 등은 꽤 도움이 되었고, 여러 인사이트를 주셔서 좋았다.(자극도 받고, 앞으로 학습을 어떻게 하고 마인드셋은 어떻게 해야하는 지 등등 여러가지 정보를 주는 시간!!)

약 5주간 이론수업을 들었는데, 파이토치 강의부터 점점 난이도가 올라가는 것을 느꼈지만, 익숙함의 문제라 생각하고 반복해서 코드를 쳤던 것 같다. 이후에는 기본적인 CNN, RNN 등의 이론과 실습코드로 딥러닝 모델이 어떻게 돌아가는지 감을 익히는 시간이 되었다.

 

2. 대회

드디어 배운 내용을 가지고 직접 모델도 돌려보고, 대회 Score도 올려보는 시간을 가졌다. 3주의 시간이 주어졌다. 이미지 분류대회로 첫 주는 각자 학습을 하기로하고 둘째 주 부터 같이 협업을 해보자고 했다. 다들 처음이라서 어느정도 학습이 필요했기 때문이다. 역시 첫 대회라 그런가 어색한게 많았다. 실험관리도 제대로 안되고, Score에 집착하여 그냥 모델가져다 쓰기 바빴다. 나름대로 방향을 잡고 실험을 해보자 했지만 팀원들에게 설득할 힘이나 논리가 부족해서 그런지 반응이 그리 좋지는 못했다. 결국 각자 실험하고 제일 잘나온거 앙상블해서 성능을 올리자는 식으로 진행되었다. 이 부분이 많이 아쉬웠다. 그래도 EDA를 기반으로 Class 불균형 문제나 나이 문제를 해결하기위해 데이터 Handling / Confusion Matrix 결과 등을 활용해 성능을 끌어올리려 한 점은 좋았다. 처음이라는 핑계가 있지만 그래도 다음에는 좀 더 체계적으로 실험도 관리하고, 분석도 해보는 과정을 가져야겠다는 생각을 갖게 된 대회였다.

회고 - https://dreamkkt.notion.site/f4d6baad52ca47479e23159675250eb2

Github - https://github.com/kkt4828/Boostcamp-level1-image-classification

 

 

5. Level2

0. 조 찾기

최종프로젝트까지 같이 할 조를 찾아야했다. 스페셜 피어세션을 통해 (다른 조와 섞여서 이야기를 갖는 시간) 팀원을 구하시는 분과 얘기가 잘되어 조를 찾았다.

 

1. 이론

서로 학습한 내용을 파트별로 정해서 정리하고, 공유하는 방식으로 피어세션을 진행했다. Object Detection / Text Detection / Segmentation / Multi modal / GAN 등 다양한 내용을 짧은기간에 학습하다보니 빡빡했지만 그래도 이런게 있구나 라는 느낌으로 앞으로 어떤 분야의 공부를 하면 좋을 지에 대해 고민해볼 수 있어서 좋았던 기간이였다.

 

2. 대회

대회는 총 3개였다. Object Detection / Text Detection / Semantic Segmentation

팀으로 협업을 하는 거라 쉽지 않았다. 나는 좀 더 분석적으로 살펴보고 배운 모델과 이론들을 적용하면서 문제를 해결하는 과정을 잘 정리했으면 좋겠다고 생각했지만, 팀원들 모두 SOTA 모델을 가져와 Score에 올리는 것에 집중했다. 팀원들의 의견은 먼저 여러가지 모델을 가져와 실험해보고 결과까지 나오는 과정 자체를 경험하는 것을 우선하자는 것이였다. 이것도 의미가 있다고 생각해서 팀의 방향에 따라 진행을 했다. Score기준으로 결과 자체는 나쁘지 않았지만 모델, Augmentation, Optimizer, EDA 등 여러가지 기법을 선택하는데 있어서 근거가 빈약하다고 느꼈다. 레포트를 쓰려고 하니 왜 이걸 썼는지 등을 쓸 때 어떤 고민을 했는지 그런게 거의 없었다. 나중에 개인 프로젝트나 Kaggle 등의 참여를 할 때에는 배운내용을 토대로 과정에 집중해서 실험하고 문제를 접근해보려고 한다. 물론 전혀 생각을 하지 않은 것은 아니지만 좀 더 고민하고 접근 과정에 더 집중했으면 좋았을 것 같아서 다음에는 더 잘해야겠다는 생각을 하게된 대회였다.

 

Object Detection

회고 - https://dreamkkt.notion.site/Object-Detection-4872e997e2ac470aad4f17a5aa81f54c

Github - https://github.com/kkt4828/Boostcamp-level2-object-detection

Semantic Segmentation

회고 - https://dreamkkt.notion.site/Semantic-Segmentation-1e514bd50e6c410bbaaa4a1eabece6f5

Text Detection

회고 - https://dreamkkt.notion.site/Text-Detection-ddbd644100754d21b845365e2e4d60c8

 

 

6. Level3

1. 주제 선정

사실 주제 선정부터 많은 어려움이 있었다. 데이터 / 모델 서칭을 하면서 의견이 반반 갈렸고, 결국 원래 정했던 주제를 버리고 새로 정하게 되었다. 이떄는 5명이서 모두 합의를 했기에 큰 트러블은 없었으나 주제 선정에만 1달을 사용했다. 그래도 Level3 Serving 기간에 바로 시작할 수 있어서 그나마 다행이였다.

 

2. 강의 + 프론트엔드

변성윤 마스터님의 Product Serving 강의와 Final Project를 함께 진행해야해서 많이 빡빡한 일정이였다. 또한 이번 최종프로젝트에서 프론트엔드를 담당해 새롭게 React를 공부하다보니 더 빡빡했다. 약 2주정도 미리 이론 공부를 해뒀고, Mock up이 완성되면서 1주일간 작업으로 백엔드, 모델쪽에서 요구하는 Component를 만들 수 있었다. 이후에는 Product Serving 강의를 들으면서 백엔드 / 모델 파트에서 추가 요구사항들을 구현해주는 방향으로 기간을 보냈다. 프론트엔드 담당이라 Serving이나 모델관련해서는 아이디어를 내는 정도로만 기여를 해서 조금 아쉬웠지만 부캠에서 여러가지를 경험해보자는 처음 생각과 일치하는 방향이라 좋은 경험이라고 생각했다.

남들 2주만에 다들을 강의를 나는 수료 직전까지 들어서 5주동안 겨우 다 들었다. 하나하나 따라쳐보고 안되는 건 혼자 뻘짓하면서 듣다보니 그렇게 된 것 같다. Docker, Cloud, CI/CD, mlflow, Airflow, BentoML 등 엄청나게 많은 내용들을 한 번씩 경험하고 실습할 수 있어서 좋았고, 현업에서도 자주 사용되는 부분이라 도움이 많이 될거라 생각하고 있다!

3. 기타

이때 처음으로 Github을 활용해 협업을 진행했다. 이전에는 그냥 baseline code를 main에 올리고 readme 작성으로 끝냈으나, 이번에는 commit, PR, issue 관리 등을 했다. 처음에는 어색했지만 그래도 구색은 갖춰서 이전 대회꺼보다 훨씬 보기 좋았다!

회고 - https://dreamkkt.notion.site/4a7e978da2aa4628968330b8fbbb68e7

Github - https://github.com/kkt4828/Boostcamp-final-project

 

7. 마무리

이것저것 많은 것을 경험했고, 전보다 훨씬 성장했음을 느낄 수 있는 기간이였다. 또한 메타인지가 전보다 나아진듯 해서 앞으로 어떤 방향으로 학습하고 문제들을 해결할지 조금 보였다. 그리고 기초의 중요성!! 그리고 기록도 중요함을 알았다. Github를 제대로 사용한 것이 솔직히 최종프로젝트 하나라서 다음 프로젝트를 진행함에 있어서 Github를 제대로 활용해 잘 작성하려고 한다! 고생한 나에게 토닥토닥 해주고 싶다. 더 성장할 일만 남았으니 나이많다고 조급해하지말고 천천히 잘 해나가려고 한다! 이제 취준시작이니 더 화이팅 하려고한다!