DAY 4 : VIT | F1_Loss | LrScheduler
210826
Last updated
Was this helpful?
210826
Last updated
Was this helpful?
๋๋ฆ ์ด๋ฏธ์ง๋ท์์ Rank 1, 2์ ์คํ์ ๊ฐ์ง๊ณ ์๋ VIT๋ฅผ ์จ๋ณด๊ธฐ๋ก ํ๋ค. ์ด์ ์ ์ด efficientnet ๊ฐ์ ๊ฒฝ์ฐ๋ ์ง์ ๋ค์ด๋ฐ์์ ๋ถ๋ฌ์๋๋ฐ, timm
์ด๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ํ๋ ๋ชจ๋ธ์ ์ฝ๊ฒ import ํ ์ ์์๋ค. ๋จ์ํ torchvision.models
์๋ ์ข
๋ฅ๋ ๋ ๋ค์ํ๊ณ ์ต์ ์ด๋ฉฐ ๊ฐ๋ณ ๋ชจ๋ธ์ ์ข
๋ฅ๋ ๊ต์ฅํ ๋ค์ํ๋ค.
์ค๋ ํ๋ฃจ๋ ๊ฑฐ์ VIT์ ์ฑ๋ฅ์ ๋์ด์ฌ๋ฆฌ๊ธฐ ์ํด ์ผ๋ค. ๊ฒฐ๋ก ์,
์ฑ๋ฅ์ด ์ฅ๋ฟ๋ ๋์ค์ง ์๋๋ค
์ค๋ ๊ณ ์ํ ๊ฒ๋ค์ ์ฌ์ง๊ณผ ์ฝ๋๋ก ์ข ๋จ๊ฒจ๋ ๊ฑธ ๊ทธ๋ฌ๋ค. ๊ฑฐ๊ธฐ๊น์ง๋ ์๊ฐ ๋ชปํ๊ณ , ์ฝ์ง์ ํ๋ค๋ณด๋ ์ง์ณ์ ์ฐ๋ฐ์ ์ผ๋ก VIT์ ๊ด๋ จ๋ ํ์ผ์ ๋ค ์ง์๋ฒ๋ ธ๋ค. ์์ ์์ํ๋ค
์ด ๋ถ๋ถ์์ ๋ฉํ ๋๊ณผ ์ด์ผ๊ธฐํด๋ดค๋๋ฐ, ๋ฉํ ๋๋ VIT๋ก ์ฑ๋ฅ์ ๋ด๋ณธ์ ์ด ์๋ค๊ณ ํ๋ค. VIT๋ฅผ ํ์ตํ๊ธฐ ์ํ ๋ฐ์ดํฐ์
์ด ๋ณดํต ๋ชจ๋ธ๊ณผ ๋น๊ตํด์ ํจ์ฌ ๋ง์์ผ ๋๋๋ฐ, ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง ๋ง๊ฐ์ ๋์ ๋ฐ์ดํฐ์
์ผ๋ก๋ ์ถฉ๋ถํ ํ์ต์ ๊ฑฐ์น๊ธฐ ํ๋ค๊ฒ์ด๋ผ๊ณ ํ๋ค. EfficientNet ๋ง์ธ
์ง๊ธ ์ฌ์ฉํ๋ Loss ํจ์๋ nn.CrossEntropyLoss
์ธ๋ฐ, ๊ทธ ์ธ์๋ ๋ค์ํ Loss ํจ์๊ฐ ์์๋ค. ๊ทธ๋์ ์ด๊ฒ๋ค์ ์คํํด๋ดค๋ค.
์ค์ ๋ก ์คํ์์ผ๋ก๋ Symmetric
ํจ์๊ฐ ์ ์ผ ๋์ valid f1 ์ ์๋ฅผ ๋๋ค. ๋ค๋ง focal
ํจ์์๋ ๋ค์น๋ฅ ๊ฑฐ๋ฆด ์ ๋๋ก ๋น์ทํ๋ค. ๋ฐ๋ฉด ์ ์ผ ๊ธฐ๋ํ๋ f1
ํจ์๋ ์ฑ๋ฅ์ด ์ ์ผ ์๋์์ผ๋ฉฐ cross entropy
์ label smoothing
์ ์ฑ๋ฅ์ด ๊ฑฐ์ ๋์ผํ๋ค.
์ฒ์์๋ symmetric์ ์ฃผ๋ก ์ฐ๋ค๊ฐ, focal๋ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ์จ๋ณด์๋ค. ๋ญ๊ฐ ์ข์์ง๋ ํ์คํ ์ ์๊ฐ ์์ง๋ง focal์ด ์ฑ๋ฅ์ด ๋ ์๋์ค๋ ๋๋์ ๋ฐ์๋ค.
์ค์ผ์ฅด๋ฌ์ ์ฑ๋ฅ์ ๋ค์๊ณผ ๊ฐ๋ค. ๋ฌผ๋ก ์ธ๋ถ์ ์ธ ํ์ดํผ ํ๋ผ๋ฏธํฐ ์ฐจ์ด๋ ์์ ๊ฒ์ด๋ค. ๋ด๊ฐ CyclicLR์ ์ฌ์ฉํ ๋ ์ด ํ๋ผ๋ฏธํฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
STEP_UP : ๋ฐ์ดํฐ๋ก๋์ ๊ธธ์ด
STEP_DOWN : ๋ฐ์ดํฐ๋ก๋์ ๊ธธ์ด * 2
์ค์ ๋ก๋ len(train_dataset)//CFG['train_bs'] ๋ก ๊ตฌํ๋ค.
base_lr : 1e-6
max_lr : 1e-3
cycle_mometum = False
mode = triangular2
triangular2์ ํ์ต๋ฅ ๋ณํ ๊ทธ๋ํ๋ ๋ค์๊ณผ ๊ฐ๋ค.
์ด ๊ทธ๋ํ๋ฅผ ์ํ๋ ์ด์ ๊ฐ ์๋ค.
ํ์ต๋ฅ ์ ์ ์ ์์์ ธ์ผ ํ๋ค. ๊ทธ๋์ผ ์ต๊ณ ์ ์ฑ๋ฅ์ ๋ด๋ ์ง์ ์ ์ฐพ์ ์ ์๋ค.
mode = triangular1
๋ cosine
์ ์ฌ์ฉํ์ง ์์ ์ด์
๋, ํ์ต๋ฅ ์ 1e-3๊ณผ 1e-6์ผ๋ก ํ์ ๋ ๊ฐ์ฅ ์, ๊ฐ์ฅ ๋นจ๋ฆฌ ์ฐพ์๋ค.
1e-2๋ 1e-7๋ก ํ์ ๋๋ ๋๋ ๋ค.