Optimizer๋
ํน์ ์
ฐ๋ฅดํ
๋ผ๊ณ ์์๋์? ์
ฐ๋ฅดํ๋ ํฐ๋ฒ ํธ์ธ์ด๋ก, '์ผ๋ก์ ๋ฑ๋ฐ์ ๋๋ ์ฌ๋' ์ด๋ผ๋ ์๋ฏธ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
์ผ๋ฐ์ ์ธ ์ฐ๋ฆฌ๋๋ผ ์ฐ์ด ์๋, ์ ๋ง ํ๋ํ ์ฐ์ ๋ฑ๋ฐํด์ผํ๋ค๋ฉด ์ฐ๋ฆฌ๋ ์ ๋นํ ๊ธธ์ก์ด
๊ฐ ํ์ํฉ๋๋ค. ๋ฒ ์ด์ค์บ ํ๊ฐ ์ด๋์๋์ง๋ถํฐ, ํ๋ฃจ์ ๋ชํค๋ก๋ฅผ ๊ฐ๋ ๊ฒ ์ข์์ง, ๊ตฌ์ฑ์์ ๋ฐ๋ผ ์ฒด๋ ฅ์๋ฐฐ๋ ์ด๋ป๊ฒ ํ ์ง ๋ฑ๋ฑ์ ๊ฐ์ด๋ํด์ค ์ฌ๋์ฒ๋ผ ๋ง์ด์ฃ .
๋ฑ๋ฐ๋ณด๋จ ํ์ฐ์ ์ข๋ ๊ฐ๊น์ด ๋๋์ด์ง๋ง, ๋ง์ฐฌ๊ฐ์ง๋ก ์ ํฌ๊ฐ ๊ฒฝ์ฌํ๊ฐ๋ฒ์ ํตํด ์ต์ ์ ์ ์ฐพ์๊ฐ๋ ๊ณผ์ ์์ ์
ฐ๋ฅดํ
์ ์ญํ ์ ํ๋ ๊ฒ์ด ์ตํฐ๋ง์ด์
์ ๋ฎ์์๋ค๊ณ ์๊ฐํ์ต๋๋ค.
๊ธธ์ก์ด๋ง๋ค ์กฐ๊ธ์ฉ์ ๋ค๋ฅธ ์กฐ๊ฑด์ผ๋ก ๊ธธ์ ๊ฐ๋ฅด์ณ์ฃผ๊ณ , ๊ธธ์ก์ด์ ๋ฐ๋ผ ์ฐ์ ๋ฌด์ฌํ ๋ฑ๋ฐํ ์๋ ์๊ณ ๊ทธ๋ ์ง ๋ชปํ ์๋ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
Optimizer ์ข ๋ฅ
- GD(Gradient Descent) : ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ฉฐ, ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ์์ค ํจ์ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ณ์ฐํ์ฌ ๊ฐ์ค์น๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
- SGD(Stochastic Gradient Descent) : ๋ฐ์ดํฐ์ ์์ด ๋์ด๋จ์ ๋ฐ๋ผ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ GD์ ๋จ์ ์ ๋ณด์ํ ๋ฐฉ๋ฒ์ ๋๋ค. Iteration 1๋ฒ์ ๋ฐ์ดํฐ ์ ๋ ฅ๊ฐ์ 1๊ฐ๋ง ์ฌ์ฉํ์ฌ ๊ฐ์ค์น๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
- Mini-batch GD : GD์ SGD์ ์ค๊ฐ๋จ๊ณ ๋ฐฉ๋ฒ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์ค์ ํ 'batch_size=N'๊ฐ์ ๋ฐ์ดํฐ ์๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ค์น๋ฅผ ๊ฐฑ์ ํฉ๋๋ค. ๋ฐ๋ผ์
epoch ๋น Iteration == ์ ์ฒด ๋ฐ์ดํฐ ์ / batch_size
๊ฐ ๋ฉ๋๋ค. - Momentum : GD์
๊ด์ฑ
์ ๋ํ ์ตํฐ๋ง์ด์ ์ ๋๋ค.
V(n)์ด ํ์ฌ ์๋๋ผ๊ณ ์๊ฐํ๋ฉด, V(n-1)์ ๊ณผ๊ฑฐ์ ์๋๋ผ๊ณ ์๊ฐํ์๋ฉด ํธํฉ๋๋ค. ๊ฐ๋จํ๊ฒ ์์ ์์ ๋ณด๋ฉด, ์ฒซ๋ฒ์งธ ์์ Gradient f(x)๊ฐ 0์ด ๋์ด๋ ์์ ํ์ธ ์ํ * V(n-1) ๊ฐ์ผ๋ก ์ธํด V(n)์ 0์ด ์๋๊ฒ ๋๊ณ ๊ทธ์ ๋ฐ๋ผ ๊ฐ์ค์น๊ฐ ๊ทธ๋งํผ ๊ฐฑ์ ๋๊ฒ ๋ฉ๋๋ค. (GD์์ Gradient๊ฐ 0์ด ๋๋ฉด V(n)=0์ด ๋๊ณ ๊ฐ์ค์น๊ฐ ๊ฐฑ์ ๋์ง ์๊ฒ ๋ฉ๋๋ค.) - Adagrad : ํ์ต๋ฅ ์ ์กฐ์ ํ์ฌ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ ์ตํฐ๋ง์ด์ ์
๋๋ค.
- ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ ๋ณ๋ก ๋ค๋ฅธ ํ์ต๋ฅ ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ
- ํ๋ผ๋ฏธํฐ๊ฐ ๋ ์์ฃผ ์ ๋ฐ์ดํธ๋ ์๋ก ๋ ์์ ํ์ต๋ฅ ์ ์ฌ์ฉํ๊ณ ๋น๋๊ฐ ์ ์ ํ๋ผ๋ฏธํฐ๋ ๋ ํฐ ํ์ต๋ฅ ์ ์ฃผ์ด ๊ทธ ์ ๋๋ฅผ ๋ง์ถ์ด์ค๋๋ค.
- Adam : 4๋ฒ Momentum ๊ณผ 5๋ฒ Adagrad์ ์ฅ์ ์ ํฉ์น ์ตํฐ๋ง์ด์ ์ ๋๋ค.
- NAG(Nesterov Accelerated Gradient) : Momentum๊ณผ ๋น์ทํ ๋ฐฉ์์ ์ตํฐ๋ง์ด์ ์
๋๋ค.
- ๋ชจ๋ฉํ ์ตํฐ๋ง์ด์ ์ ๊ฒฝ์ฐ, ๊ด์ฑ์ ์ฃผ๊ธฐ๋๋ฌธ์ ๋ฉ์ถฐ์ผํ๋ ์ต์ ์ ์ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๊ฒ ๋ฉ๋๋ค.
- ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฒ NAG๋ก, ๋จ์ํ๊ฒ ์๊ฐํ๋ฉด ๊ด์ฑ์ ๋จผ์ ๊ณ์ฐํ๊ณ ์ด๊ฒ์ ๋ฐ์ํ์ ๋์ ๊ทธ ์๋ฆฌ์์ gradient๋ฅผ ๊ตฌํ๊ณ ๋ค์ ์ค์ actual step์ ๊ฒฐ์ ํฉ๋๋ค.
- ๋ง์น ๋ชจ๋ฉํ ์ด ์๋ฌด๊ฒ๋ ์๊ฐ์ํ๊ณ ์ด์ ์๋์ ์ํฅ์ผ๋ก ์ฒ์ง๋๋งํ๊ฒ ์งํํ๋ ๋๋์ด๋ผ๋ฉด, NAG๋ ๊ด์ฑ์ ๋ฐ๋ ์์ ๋ฐ์๊ฐ ์๋์ง ๋ฌผ์ ๋ฉ์ด๊ฐ ์๋์ง ์ด๋์ ๋ ์์๋๋ ๋ฏธ๋๋ฅผ ์๊ฐํ๋ฉด์ ๋์๊ฐ๋ ์ตํฐ๋ง์ด์ ์ ๋๋ค.
๊ฐ์ฌํฉ๋๋ค. :)
์ฐธ๊ณ 1 : ์ตํฐ๋ง์ด์
์ฐธ๊ณ 2 : ๋ชจ๋ฉํ
์ตํฐ๋ง์ด์
์ฐธ๊ณ 3 : ๋ชจ๋ฉํ
๊ณผ NAG
์ฐธ๊ณ 4 : ์ผ๋ผ์ค ๊ณต์๋ฌธ์
'๐ฟ Data > ์ด๋ชจ์ ๋ชจ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฅ๋ฌ๋]keras_cifar100 ์ด์ฉํ ๊ฐ๋จ ์ ๊ฒฝ๋ง ๋ฐ ๊ณผ์ ํฉ ๋ฐฉ์ง, ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋ (0) | 2022.02.26 |
---|---|
[๋ฅ๋ฌ๋]๊ฐ๋จ ์ ๊ฒฝ๋ง ๋ฐ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ๋ง, ์ฑ๋ฅ ๋น๊ต (0) | 2022.02.26 |
[๋ฅ๋ฌ๋]์์ค ํจ์ (0) | 2022.02.23 |
[๋ฅ๋ฌ๋]์ญ์ ํ ์๊ณ ๋ฆฌ์ฆ (0) | 2022.02.23 |
[๋ฅ๋ฌ๋]ํผ์ ํธ๋ก , ์ ๋ ฅ์ธต/์๋์ธต/์ถ๋ ฅ์ธต, ํ์ฑํ ํจ์ ๊ฐ๋ ์ ๋ฆฌ (0) | 2022.02.22 |