๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํšŒ๊ณ  ๐Ÿค”/๋„ค๋ถ€์บ  AI Tech

[๋„ค๋ถ€์บ  AI Tech] 10์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ ๐Ÿค“

by judy@ 2024. 1. 12.

ํ•™์Šต ์ •๋ฆฌ & ๋ฐฐ์šด์ 

# 240108

ํ•™์Šต ์ •๋ฆฌ ๋ฐ ๋ฐฐ์šด์  ๐Ÿ“š

3๊ฐ• ์ •๋ฆฌ

- ์‹œํ€€์Šค ๋ฐ์ดํ„ฐ๋Š” ์ง‘๊ณ„, FEํ•˜์—ฌ ์ผ๋ฐ˜ ์ •ํ˜• ๋ฐ์ดํ„ฐ์ฒ˜๋Ÿผ ๋˜๋Š” ํŠธ๋žœ์ ์…˜ ๋ฐ์ดํ„ฐ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ „์ž์˜ ๊ฒฝ์šฐ ์ •๋ณด์˜ ์†์‹ค์ด ๋ถˆ๊ฐ€ํ”ผํ•จ

- Tabular Approach/Sequential Approach ๋ฅผ ํ†ตํ•ด ์‹œํ€€์Šค ๋ชจ๋ธ๋ง์ด ๊ฐ€๋Šฅํ•จ.

- Tabular Approach ์ •ํ˜• ๋ฐ์ดํ„ฐ๋กœ ๊ฐ€์ •ํ•˜๊ณ  ์ ‘๊ทผ.

- FE

   - ๋ฌธ์ œ๋ฅผ ํ‘ผ ์‹œ์ ์—์„œ ์‚ฌ์šฉ์ž์˜ ์ ์ค‘๋ฅ 
   - ๋ฌธ์ œ ๋ฐ ์‹œํ—˜ ๋ณ„ ๋‚œ์ด๋„ (์ „์ฒด ์ •๋‹ต์ˆ˜)/(์ „์ฒด ํ’€์ด์ˆ˜)
- Train/valid data split: leakage ๋ฐœ์ƒ ์—†์ด ์ชผ๊ฐœ๋ ค๋ฉด ์‹œํ€€์Šค๋ฅผ ์ชผ๊ฐค ๋•Œ, ์œ ์ € ๋ณ„๋กœ ๋ฌถ์–ด์•ผ ์ œ๋Œ€๋กœ ๋œ ํ‰๊ฐ€๊ฐ€ ๋œ๋‹ค. train/test ๋ฐ์ดํ„ฐ์˜ ID ๊ณต์œ  ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ณ , ๊ณต์œ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์œ ์ € ๊ธฐ๋ฐ˜ ์Šคํ”Œ๋ฆฟ
- Hyperparameter tuning ํ•˜๊ธฐ ํ•ด์•ผ๋˜์ง€๋งŒ ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์„ ํˆฌ์žํ•˜๋ฉด ์•ˆ๋˜๊ณ , Feature importance๊ฐ€ ๋ชจ๋ธ์˜ ์ „๋ถ€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฑด ์•„๋‹ˆ๊ธด ํ•˜์ง€๋งŒ ๋ณผ ์ˆ˜ ์žˆ์Œ
- Sequential data: DKT, DSB๋Š” ์ฃผ๋กœ many-to-one!
- LSTM, Transformer๋Š” batch_size, seq_len, input_size ์˜ ์ž…๋ ฅ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง
- LSTM, Transformer์—์„œ continuout ๋ฐ์ดํ„ฐ๋Š” ์ž„๋ฒ ๋”ฉ ๋ ˆ์ด์–ด๋ฅผ ํ†ตํ•ด b,s, i, h ์˜ ํฌ๊ธฐ๋กœ ๋ฐ”๋€Œ๊ณ , i, h๋ฅผ ๊ณฑํ•ด ํ•˜๋‚˜์˜ ์ฐจ์›์œผ๋กœ ๋ณ€๊ฒฝํ•ด์คŒ. ์ดํ›„ linear transformation์„ ํ†ตํ•ด hidden_size//2 ์˜ ํฌ๊ธฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ค„์—ฌ์ฃผ๊ณ , layernorm ์ดํ›„ hidden_size//2 ํฌ๊ธฐ์˜ continuous ๋ฐ์ดํ„ฐ์™€ concatํ•œ๋‹ค.
- ์ฆ‰, ์‚ฌ์šฉ์ž ๋‹จ์œ„๋กœ ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

[๋‚ด๊ฐ€ ๋งŒ๋“  gbdt baseline]
- default ์„ธํŒ…์—์„œ xgboost, lightgbm, catboost ์ค‘ catboost๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ์„ฑ๋Šฅ์„ ๋ƒ„

- ์•„์ฃผ ๊ฐ„๋‹จํ•œ ์—”์ง€๋‹ˆ์–ด๋ง๋งŒ ํ•˜์˜€๋”๋‹ˆ, ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์„œ ๊ทธ๋Ÿด ๊ฒƒ์œผ๋กœ ๋ณด์ž„

 

# 240109

ํ•™์Šต ์ •๋ฆฌ ๋ฐ ๋ฐฐ์šด์  ๐Ÿ“š

 

- ์ง€์ง€๋‚œ์ฃผ ์—ฌํ–‰์˜ ์—ฌํŒŒ๋กœ ๋“ฃ์ง€ ๋ชปํ•œ ๊ฐ•์˜ ์˜ค์ „์— ์ˆ˜๊ฐ• (linux, docker)

- 4๊ฐ•. Sequence Data ๋ฌธ์ œ ์ •์˜์— ๋งž๋Š” Transformer Architecture ์„ค๊ณ„ ์ˆ˜๊ฐ•: DSB, Riiid!, Predicting Molecular Properties, MoA ๋ฐ์ดํ„ฐ ์„ธํŠธ๊ฐ€ ์žˆ์—ˆ์œผ๋ฉฐ, ํŠธ๋žœ์Šคํฌ๋จธ ๊ตฌ์กฐ๊ฐ€ ์œ ๋ฆฌํ–ˆ์Œ. ํŠน์ดํ–ˆ๋˜ ์ ์€ ๋ถ„์ž ๊ฒฐํ•ฉ ์ •๋ณด์˜ ๊ฒฝ์šฐ ์ˆœ์„œ๊ฐ€ ์žˆ๊ธฐ๋Š” ํ•˜์ง€๋งŒ ์ผ๋ถ€ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™€์•ผ ํ•˜๋Š” ํŠน์„ฑ์ด ์žˆ์–ด positional encoding์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ. MoA ๋Œ€ํšŒ์˜ ๊ฒฝ์šฐ, ์‹œํ€€์Šค ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ FC๋ฅผ ํ†ตํ•ด ํŽผ์น˜๊ณ  ์‹œํ€€์Šค์™€ ๊ฐ™์ด ์ทจ๊ธ‰ํ•˜์—ฌ 1D-CNN์„ ์ ์šฉํ•œ ๊ฒƒ์ด ์ธ์ƒ๊นŠ์—ˆ์Œ.

# 240110

ํ•™์Šต ์ •๋ฆฌ ๋ฐ ๋ฐฐ์šด์  ๐Ÿ“š

 

1์›” ์ผ์ • ํŒŒ์•… ๋ฐ ํ•™์Šต ๊ณ„ํš

# 240111

ํ•™์Šต ์ •๋ฆฌ ๋ฐ ๋ฐฐ์šด์  ๐Ÿ“š

5๊ฐ• ์ˆ˜๊ฐ•: ํŠธ๋žœ์Šคํฌ๋จธ, ์ธํ’‹ ํ‘œํ˜„๊ณผ ์•„์›ƒํ’‹ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•

- ๋ฒ„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋Š”๋ฐ, ์‚ฌ์ „ ํ•™์Šต ๋•Œ๋ฌธ์€ ์•„๋‹ˆ๊ณ  ํŠธ๋žœ์Šคํฌ๋จธ ์ธ์ฝ”๋” ๊ตฌ์กฐ๋ฅผ ์†์‰ฝ๊ฒŒ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•จ
- ํŠธ๋žœ์Šคํฌ๋จธ ๋ ˆ์ด์–ด๋ฅผ ๋ช‡ ๊ฐœ ์Œ“์€ ๊ฒƒ์ธ์ง€? - 1๊ฐœ ์Œ“์•˜๋‹ค! ๋ณดํ†ต DKT์—์„œ๋Š” 1๊ฐœ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•จ

 

LSTM, RNN ๊ตฌํ˜„

- RNN์€ ์‹œํ€€์Šค ๊ธธ์–ด์ง€๋ฉด ์žฅ๊ธฐ ๊ธฐ์–ต๋ ฅ์ด ์•ˆ์ข‹์•„์ ธ์„œ, ์„ฑ๋Šฅ์ด ๋–จ์–ด์ ธ์•ผํ•˜๋Š”๋ฐ, ์˜คํžˆ๋ ค ์ข‹์Œ

- ์ด ๋ฌธ์ œ๋Š” ์ „์ฒด๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ์ตœ๊ทผ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ •ํ™•์„ฑ์ด ๋” ์ค‘์š”ํ•ด์„œ ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ์ด ์—†์ง€ ์•Š์„๊นŒ?

- RNN, CatBoost ์•™์ƒ๋ธ”: ๋‘ ๋ชจ๋ธ์˜ ์ถœ๋ ฅ ๋ถ„ํฌ๊ฐ€ ๋งค์šฐ ๋‹ค๋ฅด๊ณ , CatBoost์— ๊ฐ€์ค‘์น˜๋ฅผ ๋” ์คฌ์„ ๋•Œ ์•ฝ๊ฐ„ ๋” ์ข‹์•„์ง

# 240112

ํ•™์Šต ์ •๋ฆฌ ๋ฐ ๋ฐฐ์šด์  ๐Ÿ“š

 

6๊ฐ• ์ •๋ฆฌ: Kaggle Riiid Competition Winner's Solution ํƒ์ƒ‰

- ์ค‘์š”ํ•œ ๋˜ ๋‹ค๋ฅธ ํŠน์ง•. multi-head attention์˜ head ์ˆ˜๋ฅผ ๋‹ฌ๋ฆฌํ•˜์—ฌ ์•™์ƒ๋ธ”ํ•œ ๊ฒƒ
- ** ๋งˆ์ง€๋ง‰ ์ฟผ๋ฆฌ๋งŒ ์“ฐ๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋…ผ๋ฌธ ์ฐธ๊ณ  ์ž์ฒดํ•ด์„: ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ(question)์— ๋Œ€ํ•œ ์ •๋‹ตํ™•๋ฅ ์„ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ, ์ „์ฒด ์‹œํ€€์Šค์— ๋Œ€ํ•ด ์–ดํ…์…˜์„ ๊ตฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค + last query ๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์ค„์–ด๋“œ๋Š”๋ฐ ์„ฑ๋Šฅ ์ฐจ์ด๋Š” ๋ณ„๋กœ ์—†๋‹ค. ๊ตฌํ•œ ์–ดํ…์…˜์„ skip-connection์„ ํ†ตํ•ด ๋ชจ๋“  ์‹œํ€€์Šค value์— ๋‹ค์‹œ ๋”ํ•ด์ฃผ๋Š”๋ฐ, ์‚ฌ์‹ค์€ last query์— ๋Œ€ํ•ด์„œ๋งŒ ์ „๋‹ฌ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒŒ ์•„๋‹Œ๊ฐ€ ์‹ถ์Œ. query์— ๋Œ€ํ•ด ๊ตฌํ•œ ์–ดํ…์…˜์„ ์ „์ฒด ์‹œํ€€์Šค์— ๋‹ค์‹œ ๋”ํ•ด์ฃผ๋Š” ๊ฒƒ์€ ์ž˜ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์Œ.

 


10์ฃผ์ฐจ ์ดํ‰ ๐Ÿค”

์ž˜ํ•œ ์ 

  • GBDT series ํ•™์Šต๊ณผ ๋ฐ์ดํ„ฐ ์ค€๋น„๋ฅผ from scratch๋กœ ํ•˜์—ฌ ์ œ์ถœํ•ด๋ณธ ๊ฒƒ
  • LSTM, RNN ๋ชจ๋ธ๊ณผ ๋ฐ์ดํ„ฐ์…‹, ๋กœ๋” ๊ตฌํ˜„์„ from scratch๋กœ ๊ตฌํ˜„ํ•œ ๊ฒƒ
  • ์ง€๋‚œ ๋ฒˆ ์ ์šฉํ•˜์ง€ ๋ชปํ–ˆ๋˜ learning rate scheduler๋ฅผ ๋„ฃ์–ด ํŠœ๋‹์—†์ด๋„ ์–ด๋Š ์ •๋„์˜ ์„ฑ๋Šฅ์„ ํ™•๋ณดํ•œ ๊ฒƒ
  • config๋ฅผ yamlํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•ด๋ณธ ๊ฒƒ
  • ๊ฐ•์˜ ๋“ฃ๊ณ ๋‚˜์„œ ํ•ญ์ƒ ๋ญ˜๋ฐฐ์› ๋Š”์ง€ ์ •๋ฆฌํ•˜๊ณ , ๋˜๋‡Œ์ธ ๋’ค, ํ–ฅํ›„ ๋ฐฉํ–ฅ์— ์ฐธ๊ณ ํ•œ ๊ฒƒ

๋ชปํ•œ ์ 

  • ๋งค์ผ๋งค์ผ ์ผ์ฐ ์ผ์–ด๋‚˜์„œ ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ, 3์ผ๋ฐ–์— ์ผ์ฐ ๋ชป์ผ์–ด๋‚ฌ๋‹ค ใ… ใ… 
  • ๊ฐ•์˜ 9๊ฐ•๊นŒ์ง€ ๋“ค์œผ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ, 7๊ฐ•๊นŒ์ง€๋งŒ ๋“ค์—ˆ(๋“ฃ๊ณ  ์žˆ)๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ, ์ง„๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค.

๋ฐฐ์šด์ 

  • ์ง‘๊ณ„ํ•œ ๋ฐ์ดํ„ฐ, ์‹œํ€€์Šค ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ชจ๋ธ์˜ ์ž…๋ ฅ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์„์ง€ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋ฉฐ, ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๊ฐ€ ์ฃผ์–ด์ ธ๋„ ๋ชฉํ‘œํ•˜๋Š” ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ž์‹ ๊ฐ+๋Šฅ๋ ฅ(?)์ด ์ƒ๊น€
  • ์•„์ง ๊ตฌํ˜„์€ ๋งŽ์ด ๋ชปํ•ด๋ณด์•˜์ง€๋งŒ, ํŠธ๋žœ์žญ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์—”์ง€๋‹ˆ์–ด๋งํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ตํ˜”๊ณ , ์ ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ์˜ ํ–ฅ์ƒ์ด ๊ฐ€๋Šฅํ•  ๋“ฏํ•จ

๋” ํ•ด๋ณผ ๊ฒƒ

  • ๋‹ค์–‘ํ•œ ๊ฐ€์„ค ๊ธฐ๋ฐ˜์˜ FE ๋ฐฉ์‹์„ ์ ์šฉํ•ด๋ณด๊ธฐ
  • ๋ฐ์ดํ„ฐ ์ฆ๊ฐ•
  • ์ƒˆ๋กœ์šด ๋ชจ๋ธ ๊ตฌ์กฐ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ
  • ๋žฉ์—… ๋ฆฌํฌํŠธ ํ˜•์‹๊ณผ ์ดˆ์•ˆ ๋งŒ๋“ค๊ธฐ
  • CV ๊ตฌํ˜„ํ•˜๊ธฐ

 

๋ฐ˜์‘ํ˜•