Summary ๐ค
- ๊ธฐ๊ฐ : 21.8.23 ~ 21.9.2 (2์ฃผ)
- Task : ์ฌ๋ ์ผ๊ตด ์ด๋ฏธ์ง์ ๋ง์คํฌ ์ฐฉ์ฉ ์ฌ๋ถ, ์ฑ๋ณ, ๋์ด ๋ถ๋ฅ
- ํ ๊ตฌ์ฑ : ์ ๊ด์, ๊น์ข ํ, ๊น์ค์ญ, ์ด์ค์, ์กฐ์ฑ์ฑ, ํํํธ
Index ๐
๋ชฉํ
์ด๋ฒ ํ๋ก์ ํธ๋ ๋์ ์ฒซ๋ฒ์งธ ML ํ๋ก์ ํธ์ด๊ธฐ ๋๋ฌธ์ ์ ์ฒด์ ์ธ ํ๋ก์ธ์ค๋ฅผ ์ดํดํ๋ ๊ฒ์ ์ค์ ์ ๋์ด ๋ค์๊ณผ ๊ฐ์ด ๋ชฉํ๋ฅผ ์ค์ ํ๋ค.
- โํ์ ์ด๋ผ๋ฉด?โ ์ด๋ผ๋ ๊ณ ๋ฏผ์ ์ง์์ ์ผ๋ก ๊ฐ์ ธ๊ฐ๊ธฐ (๋ํ๋ฅผ ์ํ, ๋๋ ํ์ต๋ง์ ์ํ ํ๋ก์ ํธ๊ฐ ๋์ง ์๋๋ก)
- ๋ฐ์ดํฐ๋ถํฐ ํ๋ก๋ํธ ์๋น ์ง์ ๊น์ง์ ํ๋ก์ธ์ค ์ดํด
- ๊ณต๋์์ ์ ์ํด ์ฝ๋ ๋ ๋ฒจ์์์ ์ค์ ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ ๋ฐ ๋ชจ๋ํ
- pytorch, python์ ๋ํ ์ดํด
- ๋ค์ ํ๋ก์ ํธ์ ์ฑ๋ฅ ํฅ์์ ์ง์คํ ์ ์๋๋ก ๋๋ง์ ํ์ดํ๋ผ์ธ ํจํด ๊ตฌ์ฑ
์์ฝํ๋ฉด, ๋ชจ๋ธ ์ฑ๋ฅ์ ๋์ด์ฌ๋ฆฌ๊ธฐ ์ํ ๋ ธ๋ ฅ๋ณด๋ค๋ ์ฌ๋ฌ ์ฌ๋์ด ๋ค์ํ ์คํ์ ํด๋ณผ ์ ์๋ ์ข์ ์คํ์ค์ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋ชฉํ๋ก ์ก์๋ค.
์ด๋ฌํ ๋ชฉํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํตํด ๋ด๊ฐ ์ป์ ์ฑ๊ณผ๋ ์๋์ ๊ฐ๋ค.
ํ๋ก์ธ์ค
์ด ํ๋ก์ ํธ๋ ์ฃผ์ด์ง ๋ํ์ฉ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ก๋ํธ ์๋น ์ ๊น์ง์ ๊ณผ์ ๋ง ์งํํ๋ค.
- Data Analysis, EDA(Exploratory Data Analysis)
- ํ๋ จ์ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฅผ ๋ค์ํ ๊ฐ๋๋ก ์ดํด๋ณด๋ ๊ณผ์ ์ด๋ค.
- input์ผ๋ก ์ฃผ์ด์ง๋ ๋ฐ์ดํฐ์ feature๊ฐ ๋ถํฌ, ๊ด๊ณ๋ฅผ ํ์ ํ๋ค.
- label์ ๋ถํฌ๋ฅผ ํ์ธํ๋ฉด์ ๋ฐ์ดํฐ์ ๋ถ๊ท ํ ๋ฌธ์ ๋ ์๋์ง, ๋๋ฝ๋๊ฑฐ๋ ์๋ชป๋ labeling์ ์๋์ง ํ์ธํ๋ค.
- input๊ณผ label์ ๊ด๊ณ๋ฅผ ํ์ ํ๋ค.
- ์ ํด์ง ํ์์ ์์ผ๋, ํ์ ์ ์ํด์๋ ํ๋์ ๋ค์ด์ฌ ์ ์๋ ๊ทธ๋ํ, ์ฐจํธ ํํ๋ก ๊ฐ์ํํ๋ ๊ฒ์ด ์ข๋ค.
- Data Processing
- Dataset
- raw data(์ด๋ฏธ์ง)๋ฅผ ๋ชจ๋ธ์ feedingํ๊ธฐ ์ํ ๋ชจ๋์ด๋ค.
- ํ๋ จ์ ์ํ dataset์ input๊ณผ label์ ๋ฐํํด์ค ์ ์๋๋ก ๊ตฌํํ๋ค.
- Data Augmentation, label handling ๋ฑ์ ๊ณผ์ ์ด ํฌํจ๋๋ค.
-
์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ ์ฉ๋์ด ํฌ๊ธฐ ๋๋ฌธ์ ํ์ตํ๋ ํ๊ฒฝ์ ๊ณ ๋ คํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ด๋์์ ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆด ๊ฒ์ธ์ง ์ ํํ๋ค. (init ย getitem)
- DataLoader
- Dataset์ ํ์ต ๊ฐ ํ๊ฒฝ์ ๋ง์ถ์ด ํจ์จ์ ์ผ๋ก feeding ํ๊ธฐ ์ํ ๋ชจ๋์ด๋ค.
- batch size๋ multiprocessing ๊ณผ ๊ฐ์ ์์๋ค์ด ์ค์ํ๋ค.
- Dataloader๋ cpu๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, ์ค์ ํ์ต์ด ์ํ๋๋ gpu๊ฐ ์ต๋๋ก ํ์ฉ๋ ์ ์๋๋ก ์์ ์ธ๊ธํ ์์๋ค์ ์ ์ ํ ์ ์กฐ์ ํด์ผํ๋ค.
- Dataset
- Model
- ํ์ต์ ์ํํ ๋ชจ๋ธ์ ์ ์ํ๋ค.
- ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์์ ํ ์ฒ์๋ถํฐ ๋ชจ๋ธ์ ์ค๊ณํ๊ธฐ๋ณด๋ค๋ ์ด๋ฏธ ๊ฒ์ฆ๋ ๋ชจ๋ธ์ ๊ฐ์ ธ์ fine-tuningํ๋ ๋ฐฉ์์ผ๋ก ๋ชจ๋ธ์ ์ ์ํ๊ฒ ๋๋ค.
- Train
- Optimizer
- ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ฐ์ดํธ ํ๊ธฐ์ํ ๋ชจ๋์ด๋ค.
- Adam์ ์ฃผ๋ก ์ฌ์ฉํ๊ณ , Learning Rate ๊ฐ๋ Optimizer๋ฅผ ํตํด ๊ด๋ฆฌํ๋ค.
- Loss Function
- label๊ณผ prediction์ ์ฐจ์ด๋ฅผ ๋ํ๋ด๋ ํจ์์ด๋ค.
- CrossEntropy, FocalLoss, F1Loss ๋ฑ ๋ค์ํ ํจ์๋ฅผ ํ์ฉํ๋ค.
- Monitoring
- ๋จธ์ ๋ฌ๋ ํ๋ก์ ํธ์ ํน์ง์ด ๊ฐ์ฅ ์ ๋ํ๋ด์ฃผ๋ ๋ชจ๋์ด๋ค. ์ผ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปดํ์ผ ๋จ๊ณ์์ ๋๋ถ๋ถ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง๋ง, ๋จธ์ ๋ฌ๋ ํ๋ก์ ํธ๋ ๋์๊ฐ๋ ์ฝ๋๋ผ๋, ์ฑ๋ฅ์ด ์ ์ ํ์ง ์๋ค๋ฉด ๊ทธ๊ฒ์ด ๊ณณ ์ค๋ฅ์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ํฐ๋ง์ด ์๊ฐ๋ณด๋ค ๋ง์ด ์ค์ํ๋ค.
- Tensorboard๋ฅผ ํตํด loss, accuracy, f1score ๋ฑ์ ํ์ธํ๋ค.
- ํ ์คํธ ํ์ผ ํํ์ ๋ก๊ทธ๋ฅผ ํตํด ssh์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํ์ํค๋๋ผ๋ ์ดํ์ ๋ก๊ทธ๋ฅผ ํ์ธํ ์ ์๋๋ก ํ๋ค.
- wandb๋ฅผ ํตํด tensorboard์ ๋น์ทํ ์ฐจํธ๋ฅผ ๊ตฌ์ฑํ๋ค.
- ์ด๋ค ์์ ์ ์ด๋ค ์กฐ๊ฑด์ผ๋ก ๋ชจ๋ธ์ ์ ์ฅํ ์ง ํ๋จํ๋ ๊ธฐ์ค์ด ๋๋ค.
- Optimizer
- Test
- Testset ๋ฐ์ดํฐ์ ๋ํ inference๋ฅผ ์ํํ๋ค.
- Trainset ๋ฐ์ดํฐ์์ ์ทจํด์ฃผ์๋ ์ ์ฒ๋ฆฌ๋ฅผ ๋์ผํ๊ฒ ์ทจํด์ฃผ์ด์ผ ํ์ต๋ ๋ชจ๋ธ์ ์ ํํ inference๊ฐ ๊ฐ๋ฅํ๋ค.
ํ์ดํ๋ผ์ธ
ํ์๋ค๊ณผ ํ์ ์ ํ๊ธฐ์ํด ์๋์ ๊ฐ์ ๋ชฉํ๋ฅผ ๊ฐ์ง๋ก ํ์ดํ๋ผ์ธ์ ๊ตฌ์กฐํํ๋ค.
- ์ค์ ํ์ดํ๋ผ์ธ ์ฝ๋๋ ์ถ์ํ๋ ๋ชจ๋, ๋๋ ์คํ ์์ ์ argument๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํ์ฌ ์คํ์ ๋ค์์ฑ์ ์ ์ํ ์ ์๋ ์ฌ์ฌ์ฉ ์ฝ๋์ฌ์ผํ๋ค.
- ๋จธ์ ๋ฌ๋ ํ๋ก์ธ์ค์ ๊ธฐ๋ฐํ์ฌ ํ๋ก์ธ์ค์ ๊ฐ ๋ ธ๋ ๋ณ ์ญํ ๊ณผ ์ฑ ์์ด ํจํค์ง๋ก ๋ช ํํ ๋ถ๋ฆฌ๋์ด์ผ ํ๋ค.
- ๊ฐ ๋ ธ๋๋ณ ๊ณตํต์ผ๋ก ์ฌ์ฉ๋๋ ๋ชจ๋์ ์ถ์ํ ๋์ด์ผํ๊ณ , ์ด๋ฅผ ์์ํ์ฌ ๊ตฌํํจ์ผ๋ก์จ ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ์ ๋์ธ๋ค.
- ๊ฐ ํ๋ จ์ ๋ํ ์ ๋ณด๋ ๋ถ์์ ์ฉ์ดํ ๋ก๊ทธ๋ก ๋จ์์ผ ํ๋ค.
์์ ๊ฐ์ ๋ชฉํ๋ก ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์กฐํ ํ์๋ค.
Hook์ ํตํ ์ฝ๋ ์ฌ์ฌ์ฉ
Train์ด ์ด๋ฃจ์ด์ง๋ ๊ณผ์ ์ ์์ ์์๋์ ๊ฐ์ด ๋ฐ๋ณต๋๋ฉฐ, ์ปค์คํฐ๋ง์ด์ง ๋์ด์ผํ๋ ๋ถ๋ถ์ 3๊ฐ์ง๋ก ๋ถ๋ฅํ์ฌ hook์ ํตํด ์ฒ๋ฆฌํ๋ฉด์ Train์ ๋ํ ์ฝ๋๋ ๊ณ์ ์ฌ์ฌ์ฉ ๋๋๋ก ํ์๋ค.
- OptimHook
- Loss function์ ์ธ์ ๊ฐ์ด ์ถ๊ฐ๋ก ์๊ตฌ๋๋ ๊ฒฝ์ฐ
- Gradient๋ฅผ updateํ๊ฑฐ๋, Accumulateํ๋ ์ฒ๋ฆฌ
- BatchHook
- batch๋ง๋ค ํธ์ถ๋๋ hook
- log ๊ด๋ จ ์ฝ๋ ์์ฑ (tesorboard, wandb, textlog โฆ)
- EpochHook
- epoch๋ง๋ค ํธ์ถ๋๋ hook
- log ๊ด๋ จ ์ฝ๋ ์์ฑ (tesorboard, wandb, textlog โฆ)
- early stopping ๋ฑ ํ๋ จ ์ข ๋ฃ ์กฐ๊ฑด ์ฝ๋ ์์ฑ
๋ง์น๋ฉฐ
์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํตํด ๋จธ์ ๋ฌ๋ ํ๋ก์ธ์ค๊ฐ ์ด๋ป๊ฒ ์งํ๋๊ณ ์ฝ๋๋ก ์ด๋ป๊ฒ ๊ตฌ์กฐํํ ์ ์๋์ง์ ๋ํ ์ดํด๊ฐ ๋์์ก๋ค.
๋ค์ํ ๋ชจ๋ธ, ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ๋ฑ๊ณผ ๊ฐ์ด ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์ฌ๋ฆฌ๋ ๋
ธ๋ ฅ์ ๋ง์ด ๋ชปํ์ง๋ง, ์ ์ด๋ ์์ผ๋ก ๋จ์ ํ๋ก์ ํธ๋ค์์ ๋ค์ํ ์คํ์ ํด๋ณผ์ ์๋ ๋๋ง์ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ฐ ์๋ฏธ๊ฐ ์๋ค.
์ด๋ ํ๋ จ์ ์ํ ๊ฐ๋ฐ ์์
์์ ์ค๋ฒํค๋๋ฅผ ์๋นํ ์ค์ฌ์ค ์ ์์ ๊ฒ์ผ๋ก ๊ธฐ๋ํ๋ค.
๋๋ง์ ํ
ํ๋ฆฟ์ ์ง์์ ์ผ๋ก ์ ์งํ๋ฉด์ ํ์
์๋ ์ฉ์ดํ ์ฝ๋๋ก ์ง์ ๋ฐ์ ํด๋๊ฐ ์์ ์ด๋ค.