본문 바로가기
  • SDXL 1.0 + 한복 LoRA
  • SDXL 1.0 + 한복 LoRA
Study/인공지능학습

Kaggle 도전 season 1 : Prologue

by 마즈다 2021. 6. 15.
반응형

자꾸 이야기하기도 넘사스럽지만…인공지능 공부한다고 설레발친지도 어언 햇수로 5년이다.
그런데…

 

공부한 내용 조금 정리한 것 외에 남은 것이 없다…ㅠ.ㅠ
뭔가 시간과 돈을 지적 명품을 사대느라고 다 써버린 것 같은 느낌이다.

 

올해도 여전히 매일 조금씩이나마 기초적인 내용들을 공부하고는 있지만
이래서 되겠는지 하는 회의 뿐이다.

 

그렇다고 이제 와서 포기하기에는 투자한 시간과 돈이 너무도 아깝기에 전환점을 한 번 마련해보는 것이
어떨까 하는 생각이 들었고, 그 전환점으로 생각해낸 것이 바로 Kaggle이다.


사실 이제 와서 Kaggle에 도전을 한다는 것 자체가 늦어도 너무 늦었다. 달리 말하면 그만큼 나의 공부 방법이
잘못되었다는 반증이기도 할 것이다. 말마따나 뭣이 중헌지도 모르고 중구난방으로 정리되지 않은 지식만을
끌어 모았을 뿐이다. 그마저도 그저 끌어모았을 뿐 내 것으로 만든 지식은 하나도 없다.

 

그래도 올해는 무엇부터 준비해야 하는지 대략이라도 정리를 해놓고 시작한터라 조금만 더 정신을 차리면 그래도
어느정도 성과가 있지 않을까 기대를 해본다.


우선 Kaggle에 처음 도전을 하는만큼 당연히 Getting Started부터 도전을 해볼 계획이다.
그냥 무대포로 Featured에 도전을 해볼까 하는 생각도 했지만 너무 무리하지 말자고 스스로 다독였다.

 

현재 유명한 타이타닉 외에도 Getting Started 카테고리에 올라와있는 Competitions가 7개 정도 있는데
일단 똥인지 된장인지는 알고나 덤벼야 하니 간단하게 내용들을 소개해본다.

 

현재 Kaggle의 Getting Started 카테고리에는 아래 8개의 대회가 있다.

 

각각의 대회에 대해 간략하게 살펴보자.


Titanic - Machine Learning from Disaster

가장 잘 알려져있는 대회로 Kaggle에서의 Hello World다.

목표는 주어진 데이터를 바탕으로 생존할 수 있는 승객(1)과 생존 불가능한 승객(0)을 예측해야 하며참가지의 점수는 올바르게 예측한 승객의 %로 산출하게 된다.

결과물은 정확히 418개의 승객 목록과 헤더를 포함한 CSV 파일로 제출해야 하며 컬럼은 PassangerId와 Survived단 2개여야 한다.

 

 

House Prices - Advanced Regression Techniques

본격적인 featured competition에 들어가기 전에 데이터 사이언스 스킬을 심화시키기 좋은 대회라고 한다.

목표는 테스트 세트에 있는 각각의 집들에 대해 판매 가격을 예측하는 것이다.

평가는 예측한 주택 가격의 로그와 실제 주택 가격의 로그 사이의 평균 제곱근 오차(RMSE, Root-Mean-
Squared-Error)를 이용하며, 제출할 파일에는 반드시 헤더(Id,SalePrice)가 포함되어야 하고 주택 Id와 
판매 가격 2개의 컬럼이 있어야 한다.

 

 

Digit Recognizer

이 대회는 인공신경망의 Hello World 같은 MNIST를 다루는 대회이다. 이 대회를 통해 컴퓨터 비전의 기초나
간단한 인공 신경망 그리고 서포트 벡터 머신이나 K 최근접 이웃 등의 분류 기법을 연습할 수 있다고 한다.

목표는 손글씨로 씌여진 하나의 숫자 이미지애 대해 그 숫자가 어떤 숫자인지 예측하여 올바른 라벨을 붙이는 
것이다.

평가는 분류의 정확도로 한다(정확한 숫자 라벨을 붙인 이미지의 %). 제출 파일은 헤더를 포함해야 하며 
ImageId와 Label 2개의 컬럼을 가져야 한다.

 

Natural Language Processing with Disaster Tweets

제목과 같이 NLP(Natural Language Processing)를 학습할 수 있는 대회이다. 트위터에 트윗된 내용에서 실제
재난 상황에 관련된 트윗만을 찾아내는 대회이다.

목표는 앞서 설명한 바와 같이 트윗 내용이 실제 재난 상황인지 아닌지를 구분하는 것이며 평가는 F1 스코어를 
통해 한다.

제출 파일은 실제 재난 내용이면 1, 그렇지 않으면 0으로 표시하여 id와 target 두 개의 컬럼을 가져야 하며 헤더가 
포함되어야 한다.

 

 

$F1 = 2 * \frac{𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ∗ 𝑟𝑒𝑐𝑎𝑙𝑙}{𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑟𝑒𝑐𝑎𝑙𝑙}$. (𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 : 정밀도, 𝑟𝑒𝑐𝑎𝑙𝑙 : 재현율)

$𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = \frac{TP}{TP + FP}$

$𝑟𝑒𝑐𝑎𝑙𝑙 = \frac{TP}{TP + FN}$

 

 

Connect X

Simulation이라는 새로운 유형의 대회이다. 어떤 값을 예측하는 것이 아니라 정해진 룰에 따라 컴퓨터나사용자들과 체커 경기를
할 수 있는 파이썬 코드를 구현해야 한다.

가로, 세로 또는 대각선으로 일정한 개수의 체커를 상대보다 먼저 연결시키는 게임으로 오목 정도를 생각하면 될 것 같다.

제출 파일도 파이썬 코드인 .py 파일로 제출을 하며 평가 방법도 얼마나 게임의 룰을 잘 수행하느냐가 기준이다.제출되는 답안들은 가우시안 분포(정규 분포)에 의해 모델링된 예상 스킬 등급을 받게 된다. 상세한 평가 방법은 다른 대회와 달리 조금 복잡하니 해당
페이지를 참고하라.

 

Petals to the Metal - Flower Classification on TPU

주어진 이미지 데이터(약 100여종)로부터 꽃을 분류하는 머신러닝 모델을 만드는 대회인데 특이하게 TPU(TensorProcessing Units) 장비를 사용하여 문제를 해결하도록 하고 있다. TPU는 Kaggle에서 일정량 사용 가능하다고 한다.

평가 방법은 F1 스코어(Disaster Tweets 참고)이며 제출 파일은 id, label 두 개의 컬럼을 가지고 있으며 헤더가 
포함된 포맷으로 제출하면 된다.

 

I’m Something of a Painter Myself

GAN(generative adversarial networks)을 이용하여 모네 스타일의 이미지 7,000 ~ 10,000 개를 만들어내는 대회이다.

평가는 MiFID(𝑀𝑒𝑚𝑜𝑟𝑖𝑧𝑎𝑡𝑖𝑜𝑛−𝑖𝑛𝑓𝑜𝑟𝑚𝑒𝑑𝐹𝑟é𝑐ℎ𝑒𝑡𝐼𝑛𝑐𝑒𝑝𝑡𝑖𝑜𝑛𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒)로 이루어지는데 역시 복잡하니 해당 페이지를
참고하라.

제출 파일은 jpg 포맷의 256x256x3 𝑅𝐺𝐵 사이즈 이미지 7,000~10,000개를 zip으로 압축하여 제출해야 한다.

 

Contradictory, My Dear Watson

역시 TPU를 이용하여 해결하도록 하는 문제이면 2개의 문장 사이의 관계를 NLI(Natural Language Inferencing)
모델을 이용하여 밝히는 대회이다. 

제시되는 문장 데이터는 15개의 다른 언어로 구성이 되어있다. NLP 스킬을 심화하는 좋은 대회라고 한다.

주어진 가설(문장)이 전제(문장)와 어떤 관계에 있는지를 예측해야 한다. 문장 간의 관계는 다음의 3가지 이다.

* 0 == entailment
* 1 == neutral
* 2 == contradiction

평가는 관계를 맞춘 문장의 %로 하며, 제출 파일은 id, prediction 두 개의 컬럼에 5195 개의 목록을 가지고 
헤더가 포함된 파일로 한다. 또한 결과 파일이 생성되는 노트북도 제출을 해야 한다.

 

이 글을 쓰고 있는 동안 Kaggle의 UI가 조금 바뀌었고 Getting Started에 6개의 대회가 추가되었다.
새로 추가된 대회에 대해서는 간단하게 소개만 하고 넘어간다.

  • Bag of Words Meets Bags of Popcorn : 영화 리뷰에 대해 Word2Vec 알고리즘으로 감성 분석을 하는 대회
  • First Steps With Julia : Julia 언어를 이용하여 구글 스트리트 뷰 이미지에서 문자를 찾아내는 대회
  • Facial Keypoints Detection : 얼굴 이미지로부터 핵심 포인트를 찾아내는 대회
  • Data Science London + Scikit-learn : Scikit-learn 연습용 대회

    아래 두 개의 대회는 Strata 2013 이라는 빅데이터 컨퍼런스를 대상으로 하는 대회인 것 같다.
  • Just the Basics - Strata 2013 After-party
  • Just the Basics - Strata 2013

 

 

정리

이렇게 살펴보니 아무리 초급자들의 연습용 대회라 하더라도 사실상 도전해볼 만한 것이 많이 없다…ㅠ.ㅠ
당장에 GAN이나 NLP에 도전하기에는 공부해야 할 것들이 너무 많고 Connect X 같은 경우는 평가 방법이 너무
어려워 제대로 이해도 못하겠고…

 

일단 그럭저럭 만만해보이는 House Prices - Advanced Regression Techniques를 진행해보고자 한다.
이렇게 Kaggle의 Getting Started 카테고리에 있는 대회들과 이미 사놓은 책들을 가지고 차근차근 단계를
밟아가보기로 하자.

 

다음 포스팅부터는 본격적으로 House Prices - Advanced Regression Techniques 진행 과정을 일기처럼
정리해보도록 하겠다.

반응형