๐ ๋ณธ ๋ด์ฉ์ Michigan University์ 'Deep Learning for Computer Vision' ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ฐ์ธ์ ์ผ๋ก ํ๊ธฐํ ๋ด์ฉ์
๋๋ค. ๋ด์ฉ์ ์ค๋ฅ๋ ํผ๋๋ฐฑ์ด ์์ผ๋ฉด ๋ง์ํด์ฃผ์๋ฉด ๊ฐ์ฌํ ๋ฐ์ํ๊ฒ ์ต๋๋ค.
(Stanford์ cs231n๊ณผ ๋ด์ฉ์ด ๊ฑฐ์ ์ ์ฌํ๋ ์ฐธ๊ณ ํ์๋ฉด ๋์ ๋์ค ๊ฒ ๊ฐ์ต๋๋ค)๐
1. Learning Rate Schedules
1) ๋น๊ต
![](https://velog.velcdn.com/images/ha_yoonji99/post/08d46cf3-adba-4a16-9d3b-096a4524be58/image.png)
- ํด์
- very high LR: loss๊ฐ ๊ธ์ฆํจ
- low LR: ๋งค์ฐ ์ฒ์ฒํ ํ์ต ์งํ
- high LR: ๋งค์ฐ ๋นจ๋ฆฌ ์๋ ดํ์ง๋ง, loss๊ฐ ๋ ๋ฎ์์ง
- good LR: ์ ๋น
- ์ง๋ฌธ
- Q. ์ด๋ค LR์ด ๊ฐ์ฅ ์ฌ์ฉํ๊ธฐ ์ ์ ํ๊ฐ?
- A. ๋ค ใฑใ
์! high LR๋ถํฐ ์์ํด์ ์ค์ฌ๊ฐ๋ณด์. = LR Schedule ์ด๋ผ๊ณ ํจ
2) LR Decay
a. Step Schedule
![](https://velog.velcdn.com/images/ha_yoonji99/post/6eadf92c-7e8b-491e-8fa8-e0d75b7cfa93/image.png)
- ๊ฐ๋
- ๊ณ ์ ๋ point๋ค์ LR์ ๊ฐ์ํด์ค
- ex. ResNet โ 0.1๋ถํฐ ์์ํด์ 30 epoch๋ง๋ค 0.10.1, 0.10.1*0.1 ์ด๋ฐ์์ผ๋ก ์ค์
- ๋ฌธ์ ์
- trial & error๊ฐ ๋๋ฌด ๋ง์
= train model ์ ๋๋ฌด ๋ง์ ์๋ก์ด hyper parameter๋ฃ์
= ๋๋ฌด ๋ง์ ๊ฒฝ์ฐ์ ์๋ฅผ ์๊ฐํด์ tuning ํด์ผ๋จ
= LR์ decayํ ํน์ ์ง์ ์ ํํด์ผ๋จ
โ ๋ช๋ฒ ๋ฐ๋ณต์๋ง๋ค LR์ค์ผ๊ฑด์ง & ์ด๋ค LR๋ก ์ค์ฌ๋๊ฐ๊ฑด์ง ๊ฒฐ์ ํด์ค์ผ ๋จ
b. Cosine Schedule
![](https://velog.velcdn.com/images/ha_yoonji99/post/8f18a3d8-f03c-40dc-bd94-a16b5c7928b9/image.png)
- ๊ฐ๋
- LR์ decayํ ํน์ ์ง์ ์ค์ ํ๋ ๋์ , ์ด๊ธฐ LR๋ง ์ค์
- ๊ธฐ์กด๋ณด๋ค ๋งค์ฐ ์ ์ hyperparameter๋ก trainํ๊ธฐ ๋ ์ฌ์
- train longer โ โ ์ฑ๋ฅ โ
- ํด์
- ์ ๋ฐ์ฏค์ LR์ด ๋จ์ด์ง
= ์ฒจ์ LR ๋๊ฒ ์์ํ๊ณ , train ๋์ฏค์ LR์ด 0์ ๊ฐ๊น์์ง
- ๋ฌธ์ ์
- ๊ณ์ฐ ๋ณต์ก๋ ์ฌ๋ผ๊ฐ
c. Linear Schedule
![](https://velog.velcdn.com/images/ha_yoonji99/post/2fcd2aed-d5b0-4393-826a-c1055ce12cee/image.png)
- ๊ฐ๋
- cf) cos๊ณผ linear์ค์ ๋ญ๊ฐ ๋ ๋์์ง๋ ์ฐ๊ตฌ๊ฐ ์ ์ด์ ๋งํ๊ธฐ ์ ๋งคํจ.
- domain๋ณ๋ก ์ ํธํ๋ LR schedule ์กด์ฌ
- cv : cos schedule ์ ํธ
- NLP: linear ์ ํธ
d. Inverse Sqrt Schedule
![](https://velog.velcdn.com/images/ha_yoonji99/post/6104c499-bfea-495a-9542-fc21a8814963/image.png)
- ๊ฐ๋
- ๋ฌธ์ ์
- ์ด๊ธฐ high LR์์ ๊ฐ์๊ธฐ ํ ์ค์ด๋ฆ
e. Constant
![](https://velog.velcdn.com/images/ha_yoonji99/post/31472cf1-c210-4e3e-af6e-9d9004c219e2/image.png)
- ๊ฐ๋
- ์ ค ํํจ
- ์๊ฐ๋ณด๋ค ์ ์ ์ฉ๋จ (๊ฑ ์ด๊ฑฐ ์ฌ์ฉํด๋ ใฑใ
์)
- ๋ ๋ณต์กํ schedule๋ก ๊ฐ์๋ก, ๋ช% ๋ ์ข์ ์ฑ๋ฅ
- ๊ธฐ์กด Schedule๊ณผ์ ์ฐจ์ด
- ๋ชจ๋ธ work/not work์์ ์ฐจ์ดX
- constant โ ๋ ๋ณต์กํ schedule๋ก ๊ฐ์๋ก, ๋ช% ๋ ์ข์ ์ฑ๋ฅ
- ๊ฑ ๋ชจ๋ธ์ด work๋ง ๋๊ฒ ํ๋ฉด ๋๋ฉด, constant๊ฐ ๊ด์ฐฎ์ ์ ํ
- cf) SGD+Momentum โ LR decay schedule ์ ํ ์ค์
RMSProp or Adam โ ๊ฑ constant ์จ๋ ใฑใ
- ๊ด๋ จ ์ง๋ฌธ Q. Loss๊ฐ ๋์์ก๋ค ๋ฎ์์ก๋ค ๋ค์ ๋์์ง๋ ๊ฒฝ์ฐ๊ฐ ์๋์?
A. ์์. zero-grad๊ฐ ๋๋ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ง ์์๋, task์ type์ ๋ฐ๋ผ bad dynamic์ ๋ณผ ์๋ ์๋ค. data corruption์ด explode๋ฅผ ์ ๋ฐ ๊ฐ๋ฅํ๋ค
(์ผ๋ฐ์ ์ธ ๋ต์ ์๋, ์ฌ๋ฐ์ฌ)
3) Early Stopping
![](https://velog.velcdn.com/images/ha_yoonji99/post/0d70917f-6a54-415e-87ac-69fe69b24617/image.png)
- ๊ฐ๋
- val์ accuracy๊ฐ ๊ฐ์ํ๋ คํ ๋ (overfitting ์ ) ๋ฐ๋ณต ์ค์ง์์ผ์ผ๋จ
- ๋งค iteration๋ง๋ค์ model snapshot์ ์ฅํ, val set์์ ๊ฐ์ฅ ์ work์์ weight๊ฐ์ ธ์ด
2. (GPUๅค) Choosing Hyperparameters
๐ Grid, Random Search
1) ๋ฐฉ๋ฒ
a. Grid Search
![](https://velog.velcdn.com/images/ha_yoonji99/post/6080d604-c039-4187-b7e9-729c1d94dae9/image.png)
- ๊ฐ๋
- ๋ฏธ๋ฆฌ ์ ํด์ง ์ซ์๋ค
b. Random Search
![](https://velog.velcdn.com/images/ha_yoonji99/post/465b8ab7-8b15-49a1-a5b2-9357c1c3e8e0/image.png)
- ๊ฐ๋
- ๋ฒ์ ๋ด์ ๋๋คํ ์ซ์๋ค
2) ๋น๊ต
![](https://velog.velcdn.com/images/ha_yoonji99/post/a7e05f71-b2a5-46df-9c64-48fef5305036/image.png)
- ํด์
- Grid Search: ์ค์ ํ๋ผ๋ฏธํฐ๋ค์ ๋ ์ก์๋
- Random Search: ์ค์ ํ๋ผ๋ฏธํฐ๋ค์ ๋ ๋ง์ด ์ก์๋
3) Random Search Weight decay
![](https://velog.velcdn.com/images/ha_yoonji99/post/dd0461cd-d891-414c-ad03-82cdd5d2c232/image.png)
3. (GPU ็ก) Choosing Hyperparameters
๐ ์ด 7step ๊ณผ์
1) ๊ณผ์
a. ์ด๊ธฐ loss ์ธก์
- weight decay ์ค์ ์ํ ์ํ์์, ๋งจ ์ฒ์ loss ํ์ธ
ex. softmax โ ๋งจ ์ฒ์ loss๊ฐ์ด logC๊ฐ ์๋๋ฉด, ๋คํธ์ํฌ ์ค๋ฅ์์
b. ์์ sample์ overfitํด๋ณด๊ธฐ
- ์์ training set (5~10 ๋ฏธ๋๋ฐฐ์น)์์ 100% accuracy๊ฐ ๋์ค๋์ง ํ์ธ
- loss๊ฐ ์ ์๋จ์ด์ง๋ฉด, LR, weight initialization ๊ณ ๋ ค
c. loss๊ฐ ์ค์ด๋๋ LR์ฐพ๊ธฐ
- Step2์ architecture ๊ณ ์ ํ, ๋ชจ๋ train data ํ์ฉํ์ฌ 100 iteration๋์์ LR์๋
โ loss๊ฐ ์ค์ด๋๋ LR ์ฐพ๊ธฐ
d. epoch 1~5๋ฒ ๋๋ ค๋ณด๋ฉฐ, weight decay ์กฐ์
- ์ฌ๊ธฐ์ ์์ฒญ ๋ฎ์ ์ฑ๋ฅ์ ์ป์๋ฆฌX
e. Refine grid, train longer
- Step4์์ ๊ณ ๋ฅธ ๋ชจ๋ธ epoch ๋๋ ค์ train์ํด
โ ์์ฒญ ์ค๋๊ฑธ๋ฆด์๋
f. Learning curve ํ์ธํ๊ธฐ
![](https://velog.velcdn.com/images/ha_yoonji99/post/075087f3-fe25-4d26-96e6-cbb180cf85cd/image.png)
g. GOTO step5
- ํ์ดํผํ๋ผ๋ฏธํฐ ์กฐ์ ๋ฐ๋ณต
- LR, LR decay schedule, update type
- regularization(L2, Dropout strength)
4. After Training: Model Ensemble (Tip&trick: LR schedule, polyak averaging)
๐ ์์๋ธ, transfer learning, large-batch training
1) Model Ensembles
5. After Training: Transfer Learning
๐ feature extract, fine tuning
1) ๋ฐ์ ๋ฐฐ๊ฒฝ
- CNN์์ ๋ง์ ๋ฐ์ดํฐ๊ฐ ํ์ํ๋ค๋ ๋ฌธ์ ์ ํด๊ฒฐ์ฑ
์ ์
2) CNN์์ ์ ์ฉํด๋ณด๊ธฐ
![](https://velog.velcdn.com/images/ha_yoonji99/post/a626a724-e98d-4e0e-9ca6-54621b5afce6/image.png)
-
๊ฐ๋
- dataset์ด ์๋ค๋ฉด ๋งค์ฐ ํจ๊ณผ์
- CNN์ feature ์ถ์ถ๊ธฐ๋ก ๋ง๋ค๊ณ โ ๊ทธ ์์ linear ๋ถ๋ฅ
-
์ฌ์ฉ ์์
- feature๋ฅผ ์ฐ๋ฆฌ๊ฐ ์ ๊ฒฝ์ฐ๋ ์ด๋ค ์์ data set์ ์ ์ฉ (=์ด๋ฏธ์ง๋ท์ 1000๊ฐ ์นดํ
๊ณ ๋ฆฌ ๋ถ๋ฅ๋์ , 10๊ฐ์ ์ข
๋ฅ ๋ถ๋ฅ์ ๋๋ง ํ๊ณ ์ถ์ ๊ฒ)
โ ํ๋ ฌ ์์๋ก ์ฌ์ด๊ธฐํ (ex. imageNet: 40961000, ์๋ก์ด class: 4096c*10)
โ (Freeze these) ๋ชจ๋ ์ด์ ๊ณ์ธต์ ๊ฐ์ค์น ๊ณ ์
โ ์ ํ ๋ถ๋ฅ๊ธฐ ํ๋ จ
โ ๋ง์ง๋ง ๊ณ์ธต ํ๋ผ๋ฏธํฐ๋ค๋ง ํ๋ จ
โ ๋ฐ์ดํฐ์ ์๋ ด
-
์ฑ๋ฅ ๋น๊ต ์์
![](https://velog.velcdn.com/images/ha_yoonji99/post/9f182b0a-c3f7-42dc-8163-5916d1460aca/image.png)
![](https://velog.velcdn.com/images/ha_yoonji99/post/6587057d-6334-464e-b0b8-783955797df5/image.png)
-
ํด์
- Alexnet feature๋ค์ ์ด์ ๋ฐฉ๋ฒ์ ์ ์ฉ์ํค๋ฉด ๋ ์ข์ ์ฑ๋ฅ
![](https://velog.velcdn.com/images/ha_yoonji99/post/a3c88ac1-0fa9-447b-bb2e-041d5afe06fb/image.png)
-
ํด์
- imageNet์์ feature์ถ์ถํ pretrained model๋ก โ feature๋ฒกํฐ์์ NN์ ์ฉ
= transfer learning์ผ๋ก๋ ์ ค ๊ฐ๋จํ ์์ (๋จ์ํ feature vector์ถ์ถํ๊ณ ์ฌ์ฉ)
- ์ต๊ทผ์ ์ด์ ๋ฐฉ๋ฒ์ผ๋ก image ๋ณต๊ตฌ์์
์ํ
3) Bigger dataset: Fine-Tuning
![](https://velog.velcdn.com/images/ha_yoonji99/post/54fc1d9a-669a-467a-a76a-9230c81bfcf4/image.png)
6. After Training: Transfer Learning_Architecture Matters & ํน์ง ์ผ๋ฐํ
![](https://velog.velcdn.com/images/ha_yoonji99/post/9f6a629b-3e4b-462f-bfc3-4cf63734bc14/image.png)
- ํด์
- imageNet์์ ์๋๋ฉด ๋ค๋ฅธ ๋ฐ์๋ ์๋จ
- ์์
![](https://velog.velcdn.com/images/ha_yoonji99/post/72d38058-0470-48d5-8874-604dab756a47/image.png)
1) Transfer Learning ํน์ง ์ผ๋ฐํ
![](https://velog.velcdn.com/images/ha_yoonji99/post/079b3f08-1141-436c-bd96-fc6f87dc4694/image.png)
| ๋งค์ฐ ๋น์ทํ dataset | ๋งค์ฐ ๋ค๋ฅธ dataset |
---|
๋งค์ฐ ์ ์ data | ์ ์ผ ์๊ณ์ธต์์ linear classifier์ฌ์ฉ | ๊ณค๋ํ ์ํฉ, ์ฌ๋ฌ ๋จ๊ณ๋ก๋ถํฐ linear classifier ์๋ |
๊ฝค ๋ง์ data | ๋ช๊ฐ์ layer ๋ฏธ์ธ์กฐ์ | ๋ ๋ง์ ๊ณ์ธต fine tuning |
2) ์ ์ดํ์ต ํ์ฉ ์์๋ค
a. ๋ฌผ์ฒด ์ธ์, image captioning
![](https://velog.velcdn.com/images/ha_yoonji99/post/607014b6-e49d-4252-90d7-804f312e7bfa/image.png)
- ํด์
- ๋ ๋ค CNN์ผ๋ก imageNet pretrainํจ + fine tuning
b.
์ ๋ฆฌ ์ค . . โ ๐ง