새소식

Study/프로젝트

[DACON] 자율주행 안테나 성능 예측 AI 경진대회 후기

  • -
728x90

대회 주소:t.ly/L7kv

LG Aimers 교육 참여 과정의 해커톤 자율주행 센서의 안테나 성능 예측 AI 경진대회에 참가했습니다. LG Aimers에서 한 달 간 인공지능 및 자율주행, 품질과 관련된 온라인 강의를 수강한 뒤 참여한 대회였는데, 이어드림스쿨에서 배운 인공지능 관련 지식을 활용해 볼 수 있어 즐거운 기회였습니다. 대회 참가는 스쿨 내에서 같이 교육 받고 있는 3명과 함께 총 4명이서 팀을 꾸려 진행하였습니다. 

1. 대회 목표

공정 데이터를 활용하여 Radar 센서의 안테나 성능 예측을 위한 AI 모델 개발

2. 개최 배경

자율 주행 차에 있어 radar는 필수적인 센서 부품입니다. 차량과의 거리, 상대 속도, 방향 등을 측정해야하기 때문입니다. Radar의 종류도 기존 단거리, 중거리 및 장거리 Radar 뿐 아니라 차량 실내용 및 4D 이미징 Radar 등 다변화 되는 추세입니다.
 LG에서는 제품의 성능 평가 공정에서 양품과 불량을 선별하고 있습니다. 그리고 AI 기술을 활용하여 공정 데이터와 제품 성능간 상관 분석을 통해 제품의 불량을 예측/분석하고, 수율을 극대화하여 불량으로 인한 제품 폐기 비용을 감축시키기 위해 노력하고 있습니다. 

3. 데이터  

데이터는 공정 과정으로부터 얻은 56개의 X feature와, 공정 완료 이후 측정된 14개의 Y feature로 이루어져 있었습니다. 
NaN으로 표기되는 결측치는 없었지만, 한 컬럼의 값이 모두 같다거나 컬럼의 성격 상 양수여야 하는 값이 음수였다거나 하는 등의 특징을 가진 값들이 있었기 때문에 주의가 필요했습니다. 

4. 문제 정의 및 데이터 전처리, Modeling

  •  여러 개의 독립변수로부터 여러 개의 결과값을 예측하는 다변량 다중 회귀문제로 정의 후 프로젝트를 시작했습니다. 
     약간 고민되었던 점은 Y feature에 대해 정상/불량을 판정하는 specification이 주어졌기 때문에 각 row에 대해 정상품 혹은 불량품 판정을 할 수 있어서, 이 판정이 예측에 도움을 줄 수 있는 방법이 무엇인지에 대한 것이었습니다.
    정상품과 불량품의 비율이 약 9:1이었기 때문에 정상/불량을 표기하는 column을 기준으로 SMOTE라는 data sampilng 용 패키지를 사용해 oversampling/undersampling를 시도해보았지만 특히 undersampling 에서 성능이 많이 나빠졌습니다. .

일부 column의 정상/불량품 분포 - 어떤 컬럼인지는 명시하지 않았습니다.

  • 이번 대회의 중점은 데이터 전처리, 그중에서도 feature engineering을 통해 target값들을 잘 예측할 수 있는 column을 생성하는 것이라는 의견도 있었습니다.
    제공되었던 강의 중 공정과 관련된 배경 지식에 대해 설명하고 있는 부분을 참고하여 같은 공정 안의 column들에 대해 평균과 분산에 대한 컬럼을 만들어 보는 등 다양한 시도를 해보았지만 성능 향상에 큰 도움이 되는 feature는 대회 마감까지 찾기 어려웠습니다.
  • 시도해본 모델
    Light GBM, Random Forest Regressor, CatBoost, XGBoost
  • K-fold cross validation 및 Out of fold 로 validation 점수 관찰 및 앙상블 효과 
  • 최종 제출: public 점수가 좋았던 모델들인 XGBoost와 Catboost의 결과를 앙상블하여 제출

5. 평가 및 결과

evaluation metric은 특정 Y freature 에 가중치가 부여된 Normalized RMSE가 사용되었고,
 baseline model 점수 1.9746318023 에 비해 약 0.04점 개선된 1.9352922005를 최종 결과로 얻을 수 있었습니다. 
private score 는 1.95709 점으로 약 0.02점이 올랐고, 975팀 중 Public 45등, private 54등으로 마무리했습니다✨

6. 회고

 이번 프로젝트에서는 K-fold validation에 대해서 조금 더 구체적으로 알아볼 수 있어서 좋았습니다. 단순히 train/validation set으로 나누어 훈련 결과를 확인하는 것에서 나아가, 각 fold마다 얼마나 차이가 생기는지, 그 차이가 크다면 왜 생기는지 알아보기 위해 각 fold가 어떻게 나뉘었는지 확인해보기도 했습니다. 그중에서 가장 점수가 좋은 fold를 선택하기보다는 각 fold 결과들의 평균값을 사용해 앙상블 효과또한 얻을 수 있었습니다. 

private board 공개 후에는 등수가 꽤나 떨어진 만큼 저희가 사용한 모델이 과적합되었다는 것을 알 수 있었습니다. 아마 56개(or less)라는 파라미터 개수가 영향을 끼친게 아닌가 생각합니다. 대회 자체의 제출횟수가 굉장히 제한적이라 과적합 문제에 대해 해결하지 못한 점이 아쉬웠습니다.

 매번 나오는 말이지만, 실험 기록을 위해 모듈화를 진행했다면 속도가 더 빠르지 않았을까 하는 아쉬움도 있습니다ㅎㅎ 


 기업 연계 프로젝트로 후기를 늦게 쓰게 되어, 기억을 되살리면서 기록해봅니다. 머신러닝 수업 이후 처음 참여해는 회귀 문제 프로젝트였는데, ML도 더 열심히 공부해야겠다는 생각이 드네요..🔥

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.