관리 메뉴

TEAM EDA

KAIST 대학원 졸업 후기 본문

개인 공간/리뷰

KAIST 대학원 졸업 후기

김현우 2023. 3. 19. 22:14

2년 전에 KAIST 대학원 1학기를 다니면서 글을 올렸습니다. 그리고 이제 드디어 대학원을 졸업하게 되었습니다. 사실 졸업은 작년 8월에 이미 했지만, 취업 시즌과 최근 글쓰기에 대한 흥미가 적어져서 글을 쓰는 것이 조금 늦어졌습니다. 졸업 심사 준비로 논문을 쓰면서 같은 글을 반복적으로 보면서 퇴고하는 과정에서 지치게 되었던 것 같습니다. 하지만, 요즘에는 집에서 계속 놀기만 하다 보니 지친 느낌이 사라졌고, 2년 동안의 대학원 경험을 되돌아보고 싶어서 글을 작성하게 되었습니다.

 

대학원 첫날과 다음날 기숙사 및 연구실 정리한 사진

 

2020년도 8월쯤에 대학원을 최종 입학하게 되었고, 대전에서 연구실 생활을 해야했습니다. 기숙사 생활이 처음이라 설렘 반 긴장 반을 가졌는데, 생각보다 기숙사는 좁고 학식은 맛없어서 놀랬던 게 아직도 기억납니다. 코로나 시기여서 재택근무를 할 때라 학교는 많이 썰렁했고 연구실 사람들도 많이 없었습니다. 근데 남아있던 선배들이 환영회 해준다고 아직 연구실 가본 적도 없던 절 불러서 고기랑 이것저것 사줬던 게 좋았습니다. (ISFJ라 말 걸기도 힘든 절 먼저 챙겨준..!!)

 

 

한양대랑은 좀 다르게 학교가 평지고, 푸르른 (?) 느낌이 있었습니다. 평지에는 거위도 다니고 사진을 찍으면 초원에 푸른 하늘이 보여서 되게 예쁜 사진이 나왔습니다. 

 

이런 기쁨도 잠시 대학원 한 달째에 교수님으로부터 졸업을 위한 연구를 시작하라는 특명을 받았습니다. 연구가 처음은 아니지만 혼자서 해본 경험은 없었고 딥러닝도 잘 못할 때라 걱정이 있었습니다. 그래서 과거 연구실 선배들이 많이 했던 주제로 시작하기를 결정했습니다. 저는 반도체 빈 맵에서의 불량 패턴을 검출하는 연구를 했습니다. 연구 주제를 조금 소개해드리면, 불량 패턴에 따라 특정 공정에 이상이 생겼는지를 파악하여 빠른 조치를 취하기 위한 반도체 불량 패턴 검출 연구를 진행했습니다. 이러한 연구는 반도체 공정의 불량률을 줄이고, 노동자의 코스트를 줄이기 위해 중요했고 최에는 딥러닝 기법을 통해서 이런 패턴을 검출하는 연구가 많았습니다. 하지만, 어떤 패턴이 있는지만 알려주지 빈 맵 중 어느 칩에 결함 패턴이 생겼는지에 대한 고려는 없었습니다. (image classification만 수행하지 semantic segmentation은 수행하지 않았습니다). 칩 단위 결함 패턴 분류는 위치 및 불량 개수의 파악할 수 있고, 이는 작업자가 정확한 결함 패턴의 원인 진단 및 조치를 위해 필요하다 생각했고, 실제 같은 결함 패턴이라도 발생위치에 따라 원인이 달라서 classification이 아닌 segmentation으로 연구를 시작했습니다. 

 

초반에는 Unet을 이용해 해결하려 했지만 성능 측면의 아쉬움이 있었습니다. 아웃풋 결과를 보면서 아쉬웠던 부분은 작은 불량 픽셀들은 사라지는 문제도 있었고 반도체 빈 맵의 중앙 부분은 center-circle이라는 불량밖에 나올 수 없는데 아예 다른 불량과 착각하는 문제도 있었습니다. 그래서, 저는 아래의 2가지를 고려해서 모델을 만들게 되었고, 

  • 작은 픽셀들의 정보도 살려서 불량 패턴을 검출해야 한다. 
  • 반도체 칩의 위치정보를 모델이 고려해야 한다. 

최종적으로 Unet에 CoordCov와 ASPP를 결합한 모델을 만들었고 2021년도 산업공학학회에서 발표를 하게 되었습니다. 

이때, 산업공학학회가 제주도에서 열렸었는데 시험 2주 전임에도 불구하고 제주도 갈 생각에 신나서 공부를 던져버렸었습니다 ㅋㅋ. 구름이 많이 껴서 날씨가 맑지는 않았는데 저녁에는 노을이 너무 예쁘게 깔려서 좋은 기억이었습니다. (이때, 제주도 흑돼지 먹었는데 진짜 맛있었습니다. 다음에 제주도 가시는 분들 꼭 드시길 바랍니다.)

 

다시 연구 얘기로 돌아와서 위의 연구를 하면서 아쉬웠던 점 중 하나가, 칩 단위 레이블을 얻기 어려워서 시뮬레이션을 통해서 학습 데이터를 만들었다는 점이었습니다. 실제 현장에서도 칩 단위 레이블을 얻기가 어려울 것으로 생각되는데 이런 부분을 연구적으로 해결하면 어떨까란 생각이 들었습니다. 그래서, 제가 찾은 분야가 weakly-supervised semantic segmentation인데 해당 연구분야는 평가 시에 픽셀 단위의 분류를 위해 학습 시에 픽셀보다 약한 수준의 학습 레이블을 사용하는 것입니다. 예를 들어, 이미지 혹은 박스 형태의 레이블만으로 픽셀 단위의 분류를 수행하는 것입니다. 깃허브에서 모델을 찾아서 바로 적용해보려 했을 때 문제가 보통의 벤치마크 이미지는 RGB컬러에 0~255 사이의 값을 가지는데, 빈 맵 데이터는 1과 0만 가지는 1 채널 데이터라 기존 연구를 바로 적용하기 어려움이 있었습니다. 그래서, 저는 아래의 2가지를 해결하는 연구를 고민했고 

  • 0과 1만 가지는 데이터에 적용이 가능해야 한다. 
  • 3 채널(RGB)이 아닌 1 채널(Gray)에 적합한 모델을 만들어야 한다. 

Self-supervised learning 방법의 논문인 SEAM 논문과 Adversarial Erasing 방법의 아이디어를 결합해서 해결했습니다. 아래는 리얼 반도체 칩 데이터에 대해서 결과를 확인한 것인데 완벽한 결과는 아니지만, 어느 정도 잘 작동하는 것을 볼 수 있습니다. 

위 연구로 졸업 논문 심사를 마쳤고, 큰 피드백 없이 무사히 (?) 졸업을 마칠 수 있었습니다. 코로나 시기에 입학해서 연구실 생활이나 수업도 비대면으로 많이 진행되었고 처음 하는 연구생활에 많이 힘듬도 있었던 것 같습니다. 이때, 스트레스도 많이 받아서 새치도 많이 났는데 ㅠㅠ 돌아보면 2년이라는 시간에 많은 성장을 한 것 같습니다. 몇 년을 목표로 했던 캐글 마스터도 대학원 때 달성했고 각종 대회에 TEAM-EDA 이름을 참여해서 수상도 하고 평소 해보고 싶었던 것들을 많이 할 수 있었던 시기였던 것 같습니다. 그리고, 좋은 연구실 선후배분들과 친구들 덕분에 2년이란 시간 버틸 수 있었습니다. 

 

지금 다시 2년 전으로 돌아가면 석사를 할 거냐?라는 질문을 많이 받았는데, 아마 다시는 안 할 것 같습니다 ㅋㅋ 최근 회사 생활하고 같이 경험해 보니 저한테는 회사 생활이 더 맞는 것 같습니다. 그래도, 석사 생활을 겪어봤기에 이런 질문에 답변을 할 수 있는 것 같습니다. 지금도 밤낮없이 연구하는 많은 대학원생 분들 파이팅 하시기 바랍니다.

다음 글은 3~4달에 걸친 취업준비 끝에 작년 10월 업스테이지에 입사했는데 관련 글로 찾아뵙겠습니다.