농업 환경 변화에 따른 작물 병해 진단 AI 경진대회

농업 환경 변화에 따른 작물 병해 진단 AI 경진대회 수상자 인터뷰_재색

2022.03.22 15:19 2,145 조회

농업 환경 변화에 따른 작물 병해 진단 AI 경진대회

🎉 Team  재색 님, 수상을 진심으로 축하합니다. 🎉


🏆 한상근 님 ((주)아크릴)


🎙세 우승팀 중 한 팀이 되었는데요, 수상을 진심으로 축하드립니다. 수상 소감 부탁드립니다.

한상근

우선 이렇게 수상하게 되어 매우 기쁘고, 상을 수여해주신 것에 감사 인사 드립니다.

틈틈이 자료를 찾아 공부하고 코드를 수정하면서 시도했던 노력이 이런 결과로 찾아온 것이 제일 보람차게 느껴집니다. 늦게 이 분야에 뛰어들어서 해나가고 있는데, 최소한 잘못된 방향으로 가지 않고 있다고 격려 받는 듯한 느낌이 듭니다.

다시 한번 감사드립니다.


🎙이번 대회에서 특별하게 활용한 데이터 전처리 방법이 있었을까요?

한상근

이미지의 경우, 주어진 바운딩 박스를 무조건 포함하도록 매 에포크마다 crop을 진행한 부분이 전처리라고 할 수 있을 것 같습니다.

오히려 정형 데이터에 대해서 고려를 많이 했었습니다. 총 48시간 동안의 10분 간격의 데이터가 주어지는데, 데이터 누락, 중복이 많았고, 데이터의 시작 시점 또한 다양했습니다. 이를 percentile로 변환함으로써 누락이나 중복에 강건해짐과 동시에, 데이터 자체가 시간적 요소를 포함할 수 있도록 하였습니다.


🎙대회 문제를 풀어가기 위해 활용한 데이터 증강 및 모델링 방법에 대해 말해주세요.

한상근

정형 데이터의 경우 별도의 데이터 증강을 하지는 않았습니다. 이미지의 경우 최종적으로는 rotation, flip, brightness 변경 만을 사용했습니다. 다만, 시도했던 것으로는 mixup, contrast 등이 있었습니다만, 결과 향상 효과가 없어서 최종적으로는 배제했습니다.

모델링의 경우, 정형 데이터와 이미지 데이터를 분리하여 별도의 모델을 만든 뒤, 이를 앙상블하도록 하였습니다. 이때, 작물-질병-피해수준을 하나의 라벨이 아니라 각각 조건부확률로 생각하면서 모델도 이들을 각각 추론하고, 후행 사건은 선행 사건에 영향을 받도록 마스킹을 사용했습니다.


🎙위의 기술적인 요소들을 활용하기 위해 참고한 논문, 경험 같은 것들이 있을까요?

한상근

이미지 모델 자체는 BiT가 성능이 좋다고 알고 있었으며, transformer 구조의 모델을 검토하면서 Deit, Swin transformer, Cait 등의 논문을 살폈고 적용을 시도했습니다만, 분류 과제에서 데이터가 많지 않은 환경에서는 성능 향상이 뚜렷하지 않고 속도 측면에서도 떨어졌었습니다.

부스팅 알고리즘의 경우, Catboost가 많은 경우 성능이 뛰어나다고 알고 있었기에 이를 최우선적으로 고려했고, 최근 딥러닝 기반으로 정형데이터를 처리한다는 TabNet이란 모델에 대해 알게되어 이 또한 적용해보았습니다.

모델링과 학습의 관점에서는 데이터 불균형을 다루기 위한 Focal Loss에 대한 논문, 조건부 확률을 강제하기 위한 방안으로 transformer decoder의 Language Model에서 영감을 얻었습니다.


🎙대회를 진행하면서 직면했던 문제점과 이를 해결하기 위해 어떠한 방법을 활용하셨나요?

한상근

직면했던 문제점이라기 보다는, 베이스라인 코드에서 제공했던 LSTM과 같은 Recurrent modeling 방법으로 시간에 따라 매우 많고 다양한 정형 데이터를 효과적으로 학습이 가능할 것인가란 의문을 지녔습니다. 동시에 그러면 효과적으로 정형 데이터를 활용하기 위해 어떤 방법을 써야할까란 고민을 진행했습니다.

최종적으로는 데이터를 percentile로 전처리하고, 별도의 부스팅 알고리즘을 적용함으로써 해결했습니다만, 이런 경우 이미지와 정형데이터의 근본적인 결합은 여전히 불가능하다는 문제를 안고 있습니다.

대회가 마칠 무렵, TabNet이라는 딥러닝 기반의 정형데이터 처리 모델에 대해 알게되고 공부해보았습니다만, 이를 이미지 모델과 함께 통합해볼만한 시간은 없었던 점이 아쉽습니다.


🎙대회 진행과 관련하여 개선해야 할 점에 대해 말해주세요

한상근

이번 대회는 기간이 매우 짧았다는 점과, 그에 따라 참여자들에게 미리 준비할 수 있도록 샘플 데이터를 제공했던 게 특징적이었습니다.

만약 개선점이라면, 샘플 데이터의 제공을 통해 미리 모델링을 하는 등을 준비하는 것을 돕는 것 자체는 매우 긍정적이었습니다만, 전체 데이터에서 균형잡힌 샘플이 아니라 일부만 있었던 점으로 인해, 본 데이터가 나왔을 때 다시 코드를 확인해야했던 점이 약간 아쉬운 점입니다.


그리고 입상자에 대한 모델 검증 부분에 대해 좀더 자세히 기술하면 도움될 것 같습니다. 제가 질문드렸던 부분인데, 모델 학습시에는 최대 얼마만큼 GPU 사용이 가능한지, 검증 시에도 어떻게 되는지, CPU 사양은 어떻게 되는지 등, 별도로 질문드려야 하는 부분이 있었습니다. 특히, 이번 대회는 대용량 데이터를 처리하는 도중의 처리속도가 중요했기에 이런 정보는 더욱 핵심적이었다고 느껴집니다.


대회를 진행해주셔서 감사합니다.