안녕하세요, 허재연입니다. URP를 시작한게 벌써 일 년 전이네요. 2023년은 온전히 RCV와 함께 한 것 같습니다. 지난 1년을 어떻게 보냈는지 돌아보고, 2024년을 어떻게 보낼지 정리해보려고 합니다.
처음으로 인공지능을 제대로 공부해본 때가 23년 겨울에 진행한 URP였습니다. 그땐 인공지능 관련 개념도 익숙하지 않고 파이토치도 처음 써봤기 때문에 너무 어려웠습니다. 교수님의 인공지능 수업을 잘 이수하고 URP를 시작한 동기분들과 기반 지식 차이가 많이 나서 굉장히 힘들었던 기억이 있네요. 딥러닝의 학습 방법을 온전히 이해하는데도 많은 시간이 걸렸고, 토치를 이용해 코드를 짜는것도 너무 어려웠습니다. 지금은 URP 조교로 들어가서 인턴 분들의 진행 상황을 확인하고 제가 교육 자료를 만드는 입장에서 다시 생각해보니 정말 기초 지식이 많이 부족한 상태였던 것 같습니다. 그래도 결과적으로는 URP를 잘 마무리할 수 있어서 보람있는 시간이었습니다.
1학기에는 기초교육 및 전공 공부에 집중했었는데, URP를 끝마친 뒤 저를 너무 믿었던 탓인지(…) 과도한 수강 신청을 했었고, 전공 공부 양이 너무 많아 전공은 전공대로, 연구실 일은 연구실 일대로 어떤 것도 제대로 해내지 못한 것 같습니다. 선택과 집중의 중요성을 다시 한 번 알게 되는 계기였습니다. 앞으로 점점 개인 공부 시간을 확보하는건 쉽지 않을 테니, 이때 느낀 것들을 잊지 말아야 할 것 같습니다. 이 때 기초 교육으로는 SIFT, BoVW, VLAD, 영상처리, 딥러닝 등을 진행했네요.
여름방학때는 공통적인 기초교육이 끝나고 본격적으로 사수분들에 의한 교육이 시작됐습니다. 일단 정말 힘들었던 ResNet, DenseNet 구현하기를 진행했습니다. 그 어떤 블로그, 코드 등의 참고자료 없이 오직 논문만으로 진행했어야 했습니다. 데이터도 ImageNet이 아닌 CIFAR-10으로 진행했기에 고려할 게 많았습니다. 논문에 ImageNet을 사용하는 구조는 자세히 설명되어 있었지만 CIFAR를 활용하는 구조에 대해선 자세히 나와있지 않아 어떻게 모델 구조를 수정해야할지 깊게 고민해야 했습니다. downsampling은 어떻게 해야할지, skip connection에서는 그냥 identity mapping을 해줄지 아니면 projection을 해줄지, 차원은 어떻게 맞춰줄지 등등 CNN 구조 설계에 대한 많은 시행착오를 거쳤습니다. 원복이 생각보다 쉽지 않더군요. 정말 원없이 코드를 짜볼 수 있는 기회였습니다
ResNet 및 DenseNet 원복 이후에는 self-supervised learning, 그 중에서는 정확히는 Representation learing 공부를 시작했습니다. pretext task(rotation)를 이용해 데이터의 표현력을 어느정도 모델이 확보한다는 개념이 굉장히 신선했고, 그 이후에는 제가 직접 서베이해서 구현하는 과정을 거쳤습니다. 첫 서베이였고, 여기에도 많은 시행착오가 있었습니다. 새로운 분야에 대해 어떤 정보도 없이 홀로 파악해나가는 것은 정말 막막합니다. 검색해도 잘 나오지 않고, 논문을 어떤 걸 읽어야 할지도 잘 모르고, 용어에 대한 이해도 어렵습니다. 하지만 서베이는 새로운 분야에 대해 공부하고자 할 때 자주 거치는 관문이기 때문에, 반복을 통해 익숙해지기를 바라고 있습니다. 결과적으로 MoCo, SimCLR, BYOL, SWAV, PIRL 등 유명한 방법론들에 대해 찾아보게 되었고 그 이후에는 SimCLR 구현 및 성능 챌린지를 시작했습니다. 이 때 labeled data 1000개(CIFAR-10이니 전체 데이터의 2%만 이용)만을 가지고 학습해서 최대한 높은 성능을 달성하는것이 목표였습니다. 사전학습을 거치지 않은 상태에서는 test acc가 44%정도 였었는데, 사전학습을 다양하게 하고 fine-tuning 하는 과정에서도 contrastive learning 고려한 규제 넣어서 결국에는 89%의 성능까지 올릴 수 있었습니다. self-supervised 의 힘이 대단한것 같습니다. 해당 task를 진행하면서 representation learning에 대해 잘 공부할 수 있었고, 자주 등장하는 contrastive learning에 대한 이해도 할 수 있었습니다. 이후에도 self-supervised 및 semi-supervised 쪽 관심 놓지 않을 생각입니다.
여름방학하면 또 빼놓을 수 없는 것이 있죠. 주짓수를 시작했습니다. 김태주 연구원님께서 권유해주셔서 백지오 연구원님과 함께 다니기 시작했는데, 이게 꽤 재밌습니다. 물론 연구실 일이 바쁘면 자주 못가긴 하지만, 그래도 운동을 하긴 해야 해서 최대한 빼먹지 않고 다니려고 합니다.
8월 9일에는 코엑스에서 진행되는 KCCV에 다녀왔습니다. 수준 높은 학회에 accept된 논문의 저자들에게 직접 한국어로 질답할 수 있는 좋은 기회였습니다. 동기부여도 많이 되었구요. 제가 8월에 아직 아는게 많지 않아서 학회를 온전히 즐길 수는 없었지만, 내년에는 잘 준비해서 더 알차게 다녀오고 싶습니다.
9월부터는 자리를 437로 옮겼습니다. 팀원분들과 바로 옆에 있어 바로바로 소통이 되니 확실히 편합니다. 2학기부터는 본격적으로 저희 팀이 주로 연구하는 Active Learning에 대한 공부를 시작했습니다. 9월 중순에 self-supervised learning 공부를 마무리하고, Active learning에 대한 기본적인 개념을 쌓았습니다. core-set, CEAL, LLoss 등 기초적인 개념을 공부하고, 이후로는 제 첫 논문 주제를 잡기 위한 서베이를 했습니다. 큰 틀은 두 가지 였습니다. 1. 통일되지 않은 실험 세팅이 Active Learning의 문제점이기 때문에 다양한 요소에 대한 프로토콜 제시 2. Active Learning의 종 수 확장. 사실 둘 다 많많찮은 주제입니다. 제가 적절한 프로토콜을 제안하기 위해서는 기존 AL의 모든 실험 세팅과 랜덤성 발생 요소 및 해당 요소로 인한 성능 분산 등을 잘 이해하고 있어야 하고, AL의 종 수를 확장하기 위해서는 이미지 데이터뿐만 아니라 text, sound, video 데이터에 대한 이해가 필요하기 때문입니다. 아직 이미지를 제외한 다른 데이터 형태와 해당 데이터 처리 모델을 찾아보고 있습니다. 각 데이터 도메인에 대한 공부와 처리 모델에 대한 공부를 새로 하려니 막막하긴 합니다. 각 데이터 도메인마다 주로 사용되는 데이터셋이 무엇인지, 그렇게 찾은 데이터셋이 어떤 위상을 가지고 있는지(우리도 목적에 따라 MNIST, CIFAR, ImageNet, Caltech 등 다양한 데이터를 사용하죠), 해당 데이터 형태를 처리하기 위해 표준적으로 사용되는 처리 모델이 무엇인지 파악해야합니다. 쉽지 않을 것 같습니다. 그냥 기존에 잘 나와있는거 갖다쓰면 되지 않나? 라고 생각하실수도 있지만, 이미지가 아닌 다른 데이터에 대해서는 AL 연구가 활발하지 않아서 바로 가져다쓰기에는 무리가 있습니다. 이 작업은 아직 진행 중입니다.
중간중간 팀 업무를 보조하기도 했습니다. 6종 데이터 중 IoT data에 대한 서베이 및 실험을 수행해보기도 하고, 기술문서 일부분을 작성해보기도 하고, 홍주영 연구원님 논문에 넣을 그림을 그려보기도 했습니다. 제가 작업한 모든 결과물들이 다 쓰인것은 아니지만, 많은 것을 배울 수 있었습니다. 일반인 및 관련 업자들에게 기술에 대해 어떻게 설명할 것인지 고민해보는 기회가 되었고, 모델 프레임워크 그림을 그리는 과정에서는 여러 번 구조를 갈아엎으며 어떻게 직관적으로 프레임워크가 와닿을 수 있게 구성할 수 있을 지 고민했습니다. 특히 framework figure를 그리는게 어려울 거라고 평소에 전혀 생각을 못했는데 막상 해보니까 쉽지 않았습니다. 이렇게 고민했던 경험들은 이후 논문 작성할 때 큰 도움이 될 것 같습니다. 연말 연초 시험이랑 이것저것 자잘한 일들과 URP 교육 준비 때문에 논문 작업을 잠시 중단했었는데, 이제 다시 달려보려고 합니다.
이렇게 1년을 쭉 회상해보니까 이것저것 많이 했네요. 지금까지 살아온 날들 중에 가장 밀도 높은 1년이었습니다. 열심히 하려고 했고, 열심히 했습니다. 앞으로도 이 페이스를 유지하는 것을 목표로 하려고 합니다.
열심히 달리기는 했는데, 정신없이 달리는 데만 집중해서 올바른 방향으로 달린 것인지 확신이 서지는 않네요. 인생은 속력보다 방향이 중요하다는데, 방향에 대한 고민을 해보지 않고 빠르게 달리는 데만 집중했던 것 같습니다. 열심히 해도 방향이 틀어지면 아무 의미도 없기 때문에, 이제는 중간 중간 멈춰서 내가 어디쯤에 있나, 내 주위에는 어떤 것들이 있고 내가 할 수 있는 것들이 무엇인가 고민하는 것이 필요한 것 같습니다. 지금까지야 길이 어느 정도 닦여져 있어서 고민의 필요성을 크게 느끼지 못했는데, 이제 슬슬 연구 방향의 윤곽을 그려나가야 하니 점점 고민의 필요성이 느껴집니다. 2024년에는 저의 학부 졸업과 석사과정 진입이 있기 때문에, 지금 치열하게 알아보고 고민해야 할 것 같습니다.
2024년에는 잠을 잘 자려고 합니다. 규칙적인 생활 패턴을 고정해야 할 거 같습니다. 얼마 전 본가에 가서 오랜만에 고등학교 친구들을 만났는데, 다들 저를 보더니 대뜸 얼굴이 많이 상했다, 요절할 것 같이 생겼다.. 이런 말을 해서 충격 받았습니다. 안 그래도 요즘 잘 못 잔 다음 날 심각하게 컨디션이 좋지 않은 게 느껴져서 잠을 잘 자야겠다는 생각을 조금씩 하고 있었습니다. 시간을 좀 더 효율적으로 활용하려고 노력해야겠습니다. 제가 놓치고 흘려보내는 시간을 아껴서 충분한 수면 시간을 확보할 수 있으면 좋겠습니다.
같은 맥락으로, 운동을 꾸준히 하려고 합니다. 날이 추워지니 밤에 런닝뛰는것도 안하게 되고, 특히 이것저것 할 게 많을 때는 주짓수도 잘 못가고 그러는데, 운동 시간도 확보하고 특히 근력운동을 다시 시작해야겠다는 생각이 듭니다. 이 시간은 또 어떻게 확보할 수 있을지 생각해보겠습니다.
사수 분들께 잘 배우고, 부사수들에게 잘 가르쳐 주어야겠습니다. 배울 선배가 가까이 있다는 것은 큰 행운입니다. 다행이 다크 데이터 팀에는 계속 제가 지도 받고 배울 수 있는 홍주영 연구원님이 계십니다. 많이 질문하고, 빨리 성장하고 싶습니다. 1년 후 이 맘 때쯤, 선배 연구원분들이 저와 협업 하는데 전혀 불편함이 느껴지지 않는 수준으로 성장하고자 합니다. 빠르고 효율적인 방법은 옆에 있는 선배에게 지속적으로 지도 받고 배우는 것이라고 생각합니다. 부지런히 배우겠습니다. 마찬가지로, 앞으로 계속 들어올 후임 연구원들을 잘 지도해서 함께 좋은 시너지를 낼 수 있도록 하고 싶습니다.
2024년 잘 부탁 드립니다.