ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TWL : 프로그래머스 데브코스 운영일기 #4 캐글 경진 대회
    교육 이야기/운영일기 2021. 3. 8. 15:48

    프로그래머스 교육팀 콘텐츠 마케터 썸머가 들려주는, 데브코스 교육생들의 성장기

    모의 자율 주행 대회가 끝난 이후, 인공 지능 과정에서도 경진 대회를 열었습니다. 4개월 차엔 팀 프로젝트도 있지만 모의 경진 대회를 통해 교육생들에게 새로운 자극을 주면 좋을 것 같아 진행했다고 합니다. 교육매니저 썬, 그리고 수상한 팀원들을 통해 그 이야기를 생생히 들어보았습니다. 

     


     

    온라인에서 대회를!

    자율 주행 과정도 현장에서 대회를 진행해서 온라인으로 진행한다는 사실이 생소하게 느껴졌는데요. 대회를 기획하고 운영한 담당 교육 매니저인 썬에게 자세한 이야기를 물어보았습니다.

    갑자기 아이디어가 떠오른 것은 아니었어요.  캐글 사이트에 들어가면 온라인으로 이미 진행하고 있었고 우리도 오프라인에 연연할게 아니라, 온라인에서도 충분히 할 수 있지 않을까 라고 생각해서 시도했는데 교육생분들이 잘 따라와 주셨어요.

    온라인으로 강의를 듣고 실습을 하고 과제도 하지만 보다 실제 상황에서 문제를 해결하는 방법을 배웠으면 했습니다. 여러 가지 방법이 있지만 단기간에 경험할 수 있는 게 대회라고 생각했어요. 동기 부여도 될 거라고 생각해 진행하게 되었습니다.

     

    왜? 캐글 경진 대회

    여러 플랫폼이 있지만, 캐글로 경진 대회를 진행한 것은 두 가지 이유 때문이었습니다. 먼저, 데이터 셋이 잘 되어 있어요. 인공지능 과정은 데이터를 구하는 어려움이 있는데 캐글은 이미 다양한 데이터가 있고 칼럼 값에 대한 설명이 잘 나와 있어서 파악하기도 좋습니다.

    또, 점수 확인이 가능합니다. 모델을 돌려서 확률을 구하더라도 이게 맞는 정답인지 알 수가 없는데, 캐글에 나와 있는 문제는 업로드를 통해 본인의 모델이 얼마나 정확한지 결괏값을 확인할 수 있어요. 그래서 본인의 모델이나 가설이 맞는지 확인할 수 있기 때문에 경진 대회를 진행하기에 적합했어요.

     

    문제를 직접 해결하는 시간

    타이타닉 생존자를 예측하는 문제와 주택 판매 가격을 예측하는 문제, 두 문제를 선정해서 진행했습니다. 여러 문제도 있었지만 두 문제를 선택한 이유는 바로 데이터 때문인데요. 타이타닉 문제의 경우, 데이터가 잘 정리되어 있을 뿐 아니라 빈 값도 거의 없고 데이터 양 자체도 많아서 캐글 입문자에게 추천하는 문제입니다. 이 문제를 통해 익숙하지 않은 캐글에 적응하고 이해도를 높이고자 했죠.

    반대로 주택 판매 가격 예측 문제는 데이터 정리가 잘 되어 있지 않아서 데이터 전처리부터 제대로 해야 했고 모델이 같더라도 전처리 과정에 따라 결과 값이 달라질 수 있었습니다. 서로 다른 두 문제를 통해 데이터 정리를 왜 해야 하는지, 어떻게 해야 하는지를 생각해보고 팀마다 어떻게 문제를 해결하는지 비교해 보는 시간이 되길 바랐습니다.

    온라인으로 교육이 진행되다보니 다른 교육생들과는 교류가 없던 터라 새로운 자극을 받았으면 해서 랜덤으로 팀을 짜서 진행했는데요. 이미 합을 맞춘 팀이 아니라 시간적 제약과 어려움이 있었을 텐데도 다들 최선을 다했습니다. 그중에도 눈에 띄게 두 문제 모두 좋은 성적을 거둔 팀이 있어 줌으로 만나 이야기를 들어봤어요. 

     


    (좌측부터 시계방향으로, 강병헌, 홍진표, 이용주, 안도헌)

     

    부딪혀야 알 수 있는 것

    평소엔 매주 과제를 제출 하다가, 이번에는 과제 대신 경진대회를 했다고 들었습니다. 어떤 것을 배우셨나요?

    강병헌 : 평소 제출해왔던 과제는 다른 사람들이 어떻게 문제를 해결했는지 비교할 수 없었어요. 반면, 경진 대회에서는 대회 후 결과를 공유하는 자리가 있어서 팀끼리 해결 방식을 서로 비교해 볼 수 있어 좋았어요. 
    보통 남녀 성별을 1과 0으로 레이블링을 하는데, 0이랑 4로 격차를 줘서 진행한 팀이 있었습니다. 이렇게 차이를 두고 실험했을 때 어떤 이점이 있는지를 들을 수 있었고, 제가 생각하지 못했던 방향이어서 더 기억에 남았습니다.

    안도헌 : 사실 수업을 들을 때는 강사님을 따라하다보니 다 할 수 있을 거라고 생각했어요. 그래서 경진 대회도 당연히 잘할 수 있을 거라 생각하고 했는데, 어렵더라고요. 수업을 듣고 하는 거랑 직접 데이터를 가지고 해 보는 거랑은 굉장한 차이가 있다는 걸 깨달았습니다. 많이 부족하고 직접 데이터를 다루는 경험이 많이 해봐야겠다고 반성하는 시간이었어요.

    홍진표 : 저도 도헌님이랑 비슷한데요. 온라인으로 수업하다 보니 다른 사람들의 실력을 파악할 수가 없으니 잘하고 있다고 생각했던 것도 있고 실제로 실습을 따라 하면 다 되니까 할 수 있겠다 생각했는데 착각이었죠. 막상 데이터를 받고 직접 해보려고 하니까 안 되는 거예요. 답답하기도 했고 반성도 많이 했습니다. 이번 기회를 통해 어떻게 공부를 해야 할지 감을 잡을 수 있었습니다. 

    이용주 : 앞에서 두 분이 제 이야기를 다 해 주셨네요. 저도 이론과 실습이 많이 다르다는 것을 뼈저리게 느꼈습니다. 강의를 통해 배웠으면 실제로 어떻게 적용을 할지 꾸준히 연습을 해야 제 것으로 만들 수 있을 거 같아요. 

     

    머리로 아는 것과 손으로 익히는 것은 차이가 있군요. 아쉬웠던 점은 없었나요?

    이용주 : 대회 당일에 어떻게 제출하고 그런거를 공지해줬는데 비슷한 방식으로 한번 미리 해봤으면 익숙하게 했을 수 있을 거 같은데. 채용 문제를 풀어 본다던지 그런 과정들을 겪어 봤으면 하는 아쉬움이 있습니다.

    안도헌 : 저도 동의해요. 아주 쉬운 문제라도 한 번 만 풀어 봤으면 더 잘 할 수 있었을 거 같습니다. 다루는 방법을 아예 모르는 상태에서 시작해 아쉬움이 남네요.

    강병헌 : 시간이 촉박했어요. 새롭게 만들어진 팀인데 친해질 시간도 없이 거의 바로 대회를 시작해야 해서 정신이 없기도 했습니다. 데이터를 먼저 공개하고 데이터를 분석할 시간을 미리 주셨으면, 모델 만드는데 집중을 할 수 있게 되니까 더 잘할 수 있었을 것 같습니다.

     

    알고만 있던 것을 실제로 적용하기

    대회로 만들어진 팀이라 협업하는데 어려움도 있었을텐데, 어떻게 좋은 성적을 낼 수 있었나요?

    안도헌 : 팀별로 경진 대회를 진행했는데 아시다시피 지난 과제 제출 순으로 조를 짰어요. 병헌님과 비슷한 시기에 과제를 제출한 게 신의 한 수였지 않았나. (웃음)

    홍진표 : 팀 전략을 잘 세웠다고 생각합니다. 우선 데이터 컬럼을 보고 분석하는 것은 다 같이 하고 두 명씩 팀을 나눠서 타이타닉 문제를 다른 한 팀은 하우스 문제를 풀었어요. 이렇게 시간을 잘 배분해서 사용해 좋은 성적을 낼 수 있었습니다.

    강병헌 : 일단 두 문제를 모두 제출한 팀이 별로 없었어요. 그런 의미에서 저도 진표님의 의견과 동일하게 전략을 잘 짰다고 생각합니다. 덧붙여 제가 생각하는 우승 비결은 두 가지예요.

    첫 번째는 데이터 전처리 방식입니다. 나이 데이터가 null 값이 많았는데 다른 팀은 그냥 평균값으로 넣었지만 저희는 다른 값을 기반으로 모델을 만들어 나이의 예측값을 넣어줬습니다. 나이의 예측값 정확도가 6~70% 정도긴 해도 그냥 평균값을 넣은 것보다는 훨씬 더 좋은 결과가 나오는 것을 확인할 수 있었어요.

    두 번째로 최적의 하이퍼 파라미터를 찾는데 시간을 줄인 점이요. 크로스 밸리데이션이 시간이 오래 걸리기 때문에 그 작업을 좀 더 일찍 해 시간을 줄일 수 있어서 좋은 결과를 만들 수 있었던 것 같습니다. 모델 자체는 비슷한데 똑같은 모델을 썼어도 데이터 전처리를 어떻게 했는지 마지막에 튜닝 과정을 했는지에 따라 차이가 있더라고요.

    홍진표 : 진짜 데이터 전처리 방법은 신의 한 수였던 것 같아요. 생각도 못했던 방법이었어요!

    강병헌 : 완전히 제 생각은 아니고 구글링 하다가 그런 기법을 본 적이 있어요. 한 번 적용을 시켜 보면 좋을 거 같아서 타이타닉에 적용시켜봤는데 괜찮더라고요. 평소 수업 때 배운 내용이라던가, 공부를 하면서 구글링을 통해 찾아본 방법을 이번 대회에 적용시키려고 노력했었는데 유의미한 결과를 낼 수 있었던 것 같습니다.

     

    (타이타닉 문제 중, 나이 데이터 전처리 결과)

     

    고통을 통과하는 시간

    공부하는 게 쉽지 않죠. 그중에도 진짜 힘들다,라고 느낀 순간이 있었을 거 같아요.

    안도헌 : 평소 스터디 카페에서 공부를 했는데 코로나가 심해져 집에서 하게 되니 집중력도 떨어지고 의지도 약해지더라고요. 그 와중에 강창성 강사님이 진행하셨던 머신러닝 기초 수업이 어려웠어요. 옛날에도 머신러닝을 공부한 적이 있었는데, 그때는 지금과 비교하면 가볍게 공부했더라고요. 문제를 수학적으로 증명을 해주시니까 모든 것에는 이유가 있구나, 보다 생각이 넓어지는 시간이었습니다. 

    강병헌 : 100% 동의합니다. 우도 함수 관련해서, 왜 이 함수의 최적 값을 구해야 하는지 궁금증이 있었는데 그걸 다 수학적으로 이야기를 해주셔서 이해가 잘 되었어요. 그런데 한 편으로는 수업에 나온 내용을 다른 사람에게 똑같이 이야기하라고 하면 할 수 있을까?라고 제 자신에게 물어보면 확신이 없었어요. 아무래도 혼자 하다 보니 제 수준이 어느 정도인지 잘 모르는데서 오는 불안감이 있었습니다.

    홍진표 : 강창성 강사님 강의를 듣는데 수학이 나와서 어려웠어요. 한 강의는 30분으로 짧은데 이 내용을 전부 소화하려면 1~2시간 정도 걸리니까 시간도 걸리고 내가 이해를 잘 못하고 있나?라는 생각도 들어서 힘들었습니다.

     

    각자 해결한 방법이 다를 것 같아요. 어떻게 극복하셨나요?

    홍진표 : 팀에서 스터디를 했어요. 질문 리스트를 가져오고 도헌 님이 그걸 많이 해결해주셨어요. 도헌님이 수학을 잘하시더라고요. 그 당시 팀 활동이 가장 활발했던 시기가 이때였습니다.

    안도헌 : 주말에 다섯 시간씩 한 거 같아요.

    강병헌 : 팀 스크럼 때 서로 공부한 내용을 공유하고 각자 힘든 점도 공유했었는데 다들 비슷한 부분에서 힘들어했던 것을 알 수 있었어요. 이후에 같이 공부 계획을 세워서 해결해 나갔습니다. 혼자 공부했으면 모르는 채로 넘어갔을 텐데 다행이었죠.

    심리적으로 힘든 것은 한기용 강사님 강의에서 위로를 받았습니다. 사실 벌써 3개월 차인데 제가 많이 발전해 있어야 하잖아요. 수료할 때는 취업도 해야 하고. 그런 점에서 불안함이 있었는데 이런 말씀을 해주셨어요. ‘지금 잘하는 사람들은 미리 다 해봤으니까 잘하는 거다. 못한다고 해서 기죽을 필요 없다. 꾸준히 하면 같은 실력이 될 수 있다.’고요. 그 말을 들으니 열심히 해야겠다는 생각이 들면서 안심이 되었습니다.

     

    일단 실무를 경험해야겠다는 생각뿐

    이제 3개월이 끝나 가죠. 시간이 참 빠른데요. 수료 후 각자의 길을 정하셨나요?

    안도헌 : 한기용 강사님이 ‘어디든 취직을 해서 시작을 빠르게 하는 게 중요하다’고 하셨어요. 그 말을 들으니 빨리 시작을 해서 경험을 쌓는 게 중요하다는 결론을 내려서 어디가 돼도 좋으니까 빨리 취업해서 시작을 해보고 싶습니다.

    홍진표 : 저도 도헌 님과 비슷해요. 계속 공부를 하고 있는데 이렇게 준비를 하는 것도 좋지만 결국 직접 일을 해보는 게 중요하지 않다고 생각해서 빨리 취업을 하고 싶습니다.

    안도헌 : 진짜 한기용 강사님이 삶에서 우러나오는 조언들을 많이 해주셨어요.

    강병헌 : 대학 때는 중간에 전과를 하다 보니 졸업 학점 채우기 급급했어요. 한 분야를 파고들어 공부를 해서 이 쪽으로 커리어를 쌓아야지라는 생각을 못했습니다. 인공지능 교육을 들으면서 집중적으로 배우게 된 것들이 많은 것 같아요. 그중에서도 데이터를 처리하고 파이프라인 만드는 것에 관심이 많이 생기게 되었고 이 분야로 커리어를 쌓으면 좋겠다고 생각하고 있습니다.

    특히, 다른 좋은 강사님들도 많지만 한기용 강사님, 강창성 강사님 수업이 너무 좋은 거예요. 학교 다닐 때는 책 보고 외우기만 했었는데, 여기서는 실무에서 왜 필요하고 왜 이런 과정을 거쳐서 코딩을 하는지 알려주시니까 제대로 배우는 기분이라고 해야 하나요? 이런 분들 밑에서 배우면서 일하고 싶다 라는 생각이 들더라고요. 이 과정이 끝나면 어떻게든 회사에 취직해서 경험을 쌓고 싶습니다. 

     


     

    한 달 후, 네 분의 교육생뿐만 아니라 데브 코스 과정을 참여하고 있는 모든 수료생에게 좋은 소식이 들려오길 바랍니다.

    프로그래머스 데브코스 과정은 현재 2기 모집이 한창입니다. 수많은 교육 과정 속에서 고민이 많을 텐데요. 교육생들의 진실한 이야기 속에서 답을 찾아갔으면 합니다. 혹, 해결되지 않은 고민들이 있다면 채널톡을 통해 문의를 주시면 빠르게 답변드리겠습니다.

     

    댓글

Programmers