์ง๋ฌธ์ zzsza๋์ Datascience-Interview-Questions๋ฅผ ์ฐธ๊ณ ํ์์ต๋๋ค.
- ๋ฅ๋ฌ๋์ ๋ฌด์์ธ๊ฐ์? ๋ฅ๋ฌ๋๊ณผ ๋จธ์ ๋ฌ๋์ ์ฐจ์ด๋?
- Cost Function๊ณผ Activation Function์ ๋ฌด์์ธ๊ฐ์?
- Tensorflow, PyTorch ํน์ง๊ณผ ์ฐจ์ด๊ฐ ๋ญ๊น์?
- Data Normalization์ ๋ฌด์์ด๊ณ ์ ํ์ํ๊ฐ์?
- ์๊ณ ์๋ Activation Function์ ๋ํด ์๋ ค์ฃผ์ธ์. (Sigmoid, ReLU, LeakyReLU, Tanh ๋ฑ)
- ์ค๋ฒํผํ ์ผ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋์ฒํด์ผ ํ ๊น์?
- ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ ๋ฌด์์ธ๊ฐ์?
- Weight Initialization ๋ฐฉ๋ฒ์ ๋ํด ๋งํด์ฃผ์ธ์. ๊ทธ๋ฆฌ๊ณ ๋ฌด์์ ๋ง์ด ์ฌ์ฉํ๋์?
- ๋ณผ์ธ ๋ง ๋จธ์ ์ ๋ฌด์์ธ๊ฐ์?
- TF, PyTorch ๋ฑ์ ์ฌ์ฉํ ๋ ๋๋ฒ๊น ๋ ธํ์ฐ๋?
- ๋ด๋ด๋ท์ ๊ฐ์ฅ ํฐ ๋จ์ ์ ๋ฌด์์ธ๊ฐ? ์ด๋ฅผ ์ํด ๋์จ One-Shot Learning์ ๋ฌด์์ธ๊ฐ?
- ์์ฆ Sigmoid ๋ณด๋ค ReLU๋ฅผ ๋ง์ด ์ฐ๋๋ฐ ๊ทธ ์ด์ ๋?
- Gradient Descent์ ๋ํด์ ์ฝ๊ฒ ์ค๋ช ํ๋ค๋ฉด?
- Local Minima ๋ฌธ์ ์๋ ๋ถ๊ตฌํ๊ณ ๋ฅ๋ฌ๋์ด ์ ๋๋ ์ด์ ๋?
- Training ์ธํธ์ Test ์ธํธ๋ฅผ ๋ถ๋ฆฌํ๋ ์ด์ ๋?
- Batch Normalization์ ํจ๊ณผ๋?
- SGD, RMSprop, Adam์ ๋ํด์ ์๋๋๋ก ์ค๋ช ํ๋ค๋ฉด?
- ๊ฐ๋จํ MNIST ๋ถ๋ฅ๊ธฐ๋ฅผ MLP+CPU ๋ฒ์ ์ผ๋ก numpy๋ก ๋ง๋ ๋ค๋ฉด ๋ช์ค์ผ๊น?
- ๊ฐ๋จํ MNIST ๋ถ๋ฅ๊ธฐ๋ฅผ TF, PyTorch ๋ฑ์ผ๋ก ์์ฑํ๋๋ฐ ๋ช์๊ฐ์ด ํ์ํ๊ฐ?
- ๋ฅ๋ฌ๋ํ ๋ GPU๋ฅผ ์ฐ๋ฉด ์ข์ ์ด์ ๋?
๋ฅ๋ฌ๋์ด๋ ์ฌ๋ฌ ์ธต์ ๊ฐ์ง ์ธ๊ณต์ ๊ฒฝ๋ง(Artificial Neural Network, ANN)์ ์ฌ์ฉํ์ฌ ๋จธ์ ๋ฌ๋ ํ์ต์ ์ํํ๋ ๊ฒ์ผ๋ก, ์ฌ์ธตํ์ต์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
๋ฅ๋ฌ๋์ ์๋ฐํ ๋งํ์๋ฉด ๋จธ์ ๋ฌ๋์ ํฌํจ๋๋ ๊ฐ๋ ์ด๋ค. ๋ฐ๋ผ์ ์ ํต์ ์ธ ๋จธ์ ๋ฌ๋ ๊ธฐ๋ฒ๊ณผ ๋ฅ๋ฌ๋ ๊ธฐ๋ฒ์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ๊ณ ์ ํ๋ค.
์ธ๊ณต์ ๊ฒฝ๋ง, ํผ์ ํธ๋ก ์ ๋ํ ๋ด์ฉ์ reference๋ฅผ ์ฐธ๊ณ
๋จธ์ ๋ฌ๋๊ณผ ๋ฅ๋ฌ๋์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๋ค์๊ณผ ๊ฐ๋ค. ๊ธฐ์กด ๋จธ์ ๋ฌ๋์์๋ ํ์ตํ๋ ค๋ ๋ฐ์ดํฐ์ ์ฌ๋ฌ ํน์ง ์ค์์ ์ด๋ค ํน์ง์ ์ถ์ถํ ์ง ์ฌ๋์ด ์ง์ ๋ถ์ํ๊ณ ํ๋จ
ํด์ผํ๋ ๋ฐ๋ฉด, ๋ฅ๋ฌ๋์์๋ ๊ธฐ๊ณ๊ฐ ์๋์ผ๋ก ํ์ตํ๋ ค๋ ๋ฐ์ดํฐ์์ ํน์ง์ ์ถ์ถ
ํ์ฌ ํ์ตํ๊ฒ ๋๋ค. ๋ฐ๋ผ์ ํน์ง ์ถ์ถ์ ์ฌ๋์ด ๊ฐ์
(feature engineering)ํ๋ฉด ๋จธ์ ๋ฌ๋, ๊ฐ์
ํ์ง ์์ผ๋ฉด ๋ฅ๋ฌ๋์ด๋ค.
๋ํ, ๋ฅ๋ฌ๋์ ๋จธ์ ๋ฌ๋๋ณด๋ค ํฐ ๋ฐ์ดํฐ์
๊ณผ ๊ธด ํ์ต์๊ฐ์ด ํ์ํ๋ค. ์ ํ๋ฐ์ดํฐ๋ ์ฃผ๋ก ๋จธ์ ๋ฌ๋, ๋น์ ํ๋ฐ์ดํฐ๋ ์ฃผ๋ก ๋ฅ๋ฌ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
์ถ๊ฐ๋ด์ฉ) AI, ML, DL
์ธ๊ณต์ง๋ฅ์ด๋ ์ธ๊ฐ์ด ๊ฐ์ง๊ณ ์๋ ์ธ์, ํ๋จ ๋ฑ์ ์ง์ ๋ฅ๋ ฅ์ ๋ชจ๋ธ๋งํ์ฌ ์ปดํจํฐ์์ ๊ตฌํํ๋ ๊ฒ์ด๋ค. ๋จธ์ ๋ฌ๋, ๋ฅ๋ฌ๋ ์ธ์๋ ๋ค์ํ ๋ถ์ผ๊ฐ ์ธ๊ณต์ง๋ฅ ๋ด์ ํฌํจ๋๋ค.
๋จธ์ ๋ฌ๋์ด๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํจํด์ ํ์ตํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์์ธกํ๋ ์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ฒ์ด๋ค. ๋จธ์ ๋ฌ๋์ ์กฐ๊ฑด์ด ๋ณต์กํ๊ณ ๊ท์น์ด ๋ค์ํ ๊ฒฝ์ฐ์, ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ผ์ ํ/์จ๊ฒจ์ง ํจํด์ ์ฐพ์๋ด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ๋จธ์ ๋ฌ๋์ ๋จ์ ์ ๋ฐ์ดํฐ์ ๋งค์ฐ ์์กด์ ์ด๋ผ๋ ๊ฒ์ด๋ค. ์ฆ, ์ข์ ํ์ง์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ถ์ง ๋ชปํ๋ฉด ๋จธ์ ๋ฌ๋ ์ํ๊ฒฐ๊ณผ๋ ์ข์ง ์๋ค๋ ๊ฒ์ด๋ค.
๋จธ์ ๋ฌ๋์ ์๋์ ๊ฐ์ด ๋ถ๋ฅ๋๋ค.
- ์ง๋ํ์ต
- ๋ถ๋ฅ, ํ๊ท, ์ถ์ฒ์์คํ , ์๊ฐ/์์ฑ ์ธ์ง(DL), ํ ์คํธ๋ถ์/NLP(DL)
- ๋น์ง๋ํ์ต
- ํด๋ฌ์คํฐ๋ง, ์ฐจ์์ถ์, ๊ฐํํ์ต
- ๋ฅ๋ฌ๋, ๋ฐ์ดํฐ๋ก ์ธ์์ ํ์ ํ๋ค(1) - LG CNS
- CH01)01.๋จธ์ ๋ฌ๋์ ๊ฐ๋ - ํ์ด์ฌ ๋จธ์ ๋ฌ๋ ์๋ฒฝ๊ฐ์ด๋(๋์)
- 9)๋ฅ๋ฌ๋์ด๋? - TCP SCHOOLS.com
cost function
๋ชจ๋ธ์ ๋ฐ์ดํฐ์ ๋ํด ํ์ฌ ์์ธก์ ์ผ๋ง๋ ์ํ๊ณ ์๋์ง ์์์ผ ํ์ต ๋ฐฉํฅ์ ์ด๋ ๋ฐฉํฅ์ผ๋ก, ์ผ๋ง๋ ๊ฐ์ ํ ์ง ํ๋จํ ์ ์๋ค.
์ด ๋, ์์ธก ๊ฐ๊ณผ ๋ฐ์ดํฐ ๊ฐ์ ์ฐจ์ด์ ๋ํ ํจ์๋ฅผ cost function(MSE, CrossEntropy ๋ฑ) ์ด๋ผ๊ณ ํ๋ค.
cost function ์ ์ต์ํํจ์ผ๋ก์จ ๋ชจ๋ธ์ ์ ์ ํ ํํ๋ ฅ์ ๊ฐ์ถ๋๋ก ํ์ต์ํฌ ์ ์๋ค.
activation function
๋ฐ์ดํฐ๋ฅผ ์์ธกํ๊ธฐ ์ํด ์ ํ ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์๋ค. ํ์ง๋ง ์ ํ ๋ชจ๋ธ์ ๊ฒฝ์ฐ ๋ณต์กํ ๋ฐ์ดํฐ์ ๋ํด์๋ ์ ์ ํ ์์ธก์ ๋ชปํ๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋น์ ํ ๋ชจ๋ธ์ด ํ์ํ๋ค.
์ ํ ๋ชจ๋ธ์ ๋น์ ํ ๋ชจ๋ธ๋ก ๋ง๋ค์ด์ฃผ๋ ์ญํ ์ ํ๋ ํจ์๊ฐ ๋ฐ๋ก ํ์ฑํ ํจ์ activation function(Sigmoid, ReLU ๋ฑ) ์ด๋ค.
๋น์ ํ ํจ์์ธ ํ์ฑํ ํจ์๊ฐ ์ ํ ํจ์์ ๊ฒฐํฉ๋จ์ผ๋ก์จ ์ ํ ๋ชจ๋ธ์ ๋น์ ํ ๋ชจ๋ธ์ด ๋๋ค.
์ ํ ๋ชจ๋ธ์ ๊น๊ฒ ์์ ์ ์๋ค. ๊น๊ฒ ์์๋ ํ๋์ ์ธต์ ์ ํ๋ํ ๊ฒ๊ณผ ๋ค๋ฅด์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋น์ ํ ๋ชจ๋ธ์ ๊น๊ฒ ์์ ์ ์๋ค. ์ ํ์ผ๋ก ๋ง๋ค์๋ค๊ฐ ๋น์ ํ์ผ๋ก ๋ง๋๋ ์์ ์ ๊ณ์ ๋ฐ๋ณตํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ก ์ธํด ๋ชจ๋ธ์ ๋ณต์กํ ๋ฐ์ดํฐ์ ๋ํด ๋ ํํ๋ ฅ์ด ์ข์์ง ์ ์๋ค.
ํ์ฑํ ํจ์๋ ์ ๋ ฅ ๊ฐ์ ๋ํด ๋ ๋๊ฒ ํน์ ๋ ๋ฎ๊ฒ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ ํ์ฑํ ํจ์๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
- 5. ๊ฒฐ๊ณผ ๊ฐ์ ๋น๊ตํ๋ ๋ฐฉ์(Cost function) - ๋์๋
- Activation Functions์ ๋ํด ์์๋ณด์ - Steve-Lee's Deep Insight
- ํ์ฑํ ํจ์(activation function)์ ์ฌ์ฉํ๋ ์ด์ - ํ๋ผ์ด๋ฐ์ด
๊ตฌ๋ถ | Tensorflow | PyTorch |
---|---|---|
ํจ๋ฌ๋ค์ | Define and Run | Define by Run |
๊ทธ๋ํ ํํ | Static graph(์ ์ ) | Dynamic graph(๋์ ) |
Tensorflow์ Pytorch์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๋ฅ๋ฌ๋์ ๊ตฌํํ๋ ํจ๋ฌ๋ค์์ด ๋ค๋ฅด๋ค๋ ๊ฒ์ด๋ค. Tensorflow๋ Define-and-Run์ธ ๋ฐ๋ฉด์, Pytorch๋ Define-by-Run์ด๋ค.
Define and Run (Tensorflow)
์ฝ๋๋ฅผ ์ง์ ๋๋ฆฌ๋ ํ๊ฒฝ์ธ ์ธ์ ์ ๋ง๋ค๊ณ , placeholder๋ฅผ ์ ์ธํ๊ณ ์ด๊ฒ์ผ๋ก ๊ณ์ฐ ๊ทธ๋ํ๋ฅผ ๋ง๋ค๊ณ (Define), ์ฝ๋๋ฅผ ์คํํ๋ ์์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด ์คํํ๋(Run) ๋ฐฉ์์ผ๋ก ์ด๋ ๊ณ์ฐ ๊ทธ๋ํ๋ฅผ ๋ช ํํ ๋ณด์ฌ์ฃผ๋ฉด์ ์คํ์์ ์ ๋ฐ์ดํฐ๋ง ๋ฐ๊ฟ์ค๋ ๋๋ ์ ์ฐํจ์ ์ฅ์ ์ผ๋ก ๊ฐ์ง๋ง, ๊ทธ ์์ฒด๋ก ๋น์ง๊ด์ ์ด๋ค.
Define by Run (PyTorch)
์ ์ธ๊ณผ ๋์์ ๋ฐ์ดํฐ๋ฅผ ์ง์ด๋ฃ๊ณ ์ธ์ ๋ ํ์์์ด ๋๋ฆฌ๋ฉด ๋๊ธฐ๋๋ฌธ์ ์ฝ๋๊ฐ ๊ฐ๊ฒฐํ๊ณ ๋์ด๋๊ฐ ๋ฎ์ ํธ์ด๋ค.
๋ ํ๋ ์์ํฌ ๋ชจ๋ ๊ณ์ฐ ๊ทธ๋ํ๋ฅผ ์ ์ํ๊ณ ์๋์ผ๋ก ๊ทธ๋๋์ธํธ๋ฅผ ๊ณ์ฐํ๋ ๊ธฐ๋ฅ์ด ์๋ค. ํ์ง๋ง Tensorflow์ ๊ณ์ฐ ๊ทธ๋ํ๋ ์ ์ ์ด๊ณ Pytorch๋ ๋์ ์ด๋ค.
์ฆ Tensorflow์์๋ ๊ณ์ฐ ๊ทธ๋ํ๋ฅผ ํ ๋ฒ ์ ์ํ๊ณ ๋๋ฉด ๊ทธ๋ํ์ ๋ค์ด๊ฐ๋ ์ ๋ ฅ ๋ฐ์ดํฐ๋ง ๋ค๋ฅด๊ฒ ํ ์ ์์ ๋ฟ ๊ฐ์ ๊ทธ๋ํ๋ง์ ์คํํ ์ ์๋ค. ํ์ง๋ง PyTorch๋ ๊ฐ ์์ ํ๋ง๋ค ์๋ก์ด ๊ณ์ฐ ๊ทธ๋ํ๋ฅผ ์ ์ํ์ฌ ์ด์ฉํ๋ค.
Data Normalization(๋ฐ์ดํฐ ์ ๊ทํ)์ด๋ feature๋ค์ ๋ถํฌ(scale)์ ์กฐ์ ํ์ฌ ๊ท ์ผํ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ฐ์ดํฐ ์ ๊ทํ๊ฐ ํ์ํ ์ด์ ๋ ๋ฐ์ดํฐ feature ๊ฐ scale ์ฐจ์ด๊ฐ ์ฌํ๊ฒ ๋ ๋, ํฐ ๋ฒ์๋ฅผ ๊ฐ์ง๋ feature(ex. ๊ฐ๊ฒฉ)๊ฐ ์์ ๋ฒ์๋ฅผ ๊ฐ์ง๋ feature(ex. ๋์ด)๋ณด๋ค ๋ ๊ฐํ๊ฒ ๋ชจ๋ธ์ ๋ฐ์๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฆ, ๋ฐ์ดํฐ ์ ๊ทํ๋ ๋ชจ๋ ๋ฐ์ดํฐ ํฌ์ธํธ๊ฐ ๋์ผํ ์ ๋์ ์ค์ผ์ผ(์ค์๋)๋ก ๋ฐ์๋๋๋ก ํ๋ ์ญํ ์ ์ํํ๋ฉฐ, ์๋์ ๊ฐ์ ์ฅ์ ์ ์ป์ ์ ์๋ค.
- ํ์ต์๋๊ฐ ๊ฐ์ ๋๋ค.
- ๋ ธ์ด์ฆ๊ฐ ์์์ง๋ฏ๋ก ์ค๋ฒํผํ ์ ์ต์ ์ํจ๋ค.
- ๋ฐ์ดํฐ๋ฅผ ๋ ์น์ฐ์น๊ฒ ๋ง๋๋ฏ๋ก, ์ข์ ์ฑ๋ฅ์ ๋ณด์ธ๋ค.
์ถ๊ฐ๋ด์ฉ) Regularization, Normalization, Standardization
Regularization(์ ๊ทํ, ๊ท์ ) ๋ ๋ชจ๋ธ์ ์ ์ฝ(penalty)๋ฅผ ์ฃผ์ด ๋ชจ๋ธ์ ๋ณต์ก์ฑ์ ๋ฎ์ถ๊ณ , ์ด๋ฅผ ํตํด ์ค๋ฒํผํ
์ ๋ฐฉ์งํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ ์ฝ์ ์ฌ์ฉํ๋ฉด ํ์ต ์ ํ๋(train accuracy)๋ ์กฐ๊ธ ๋ฎ์์ง ์ ์์ง๋ง, ํ
์คํธ ์ ํ๋(test accuracy)๋ฅผ ๋์ผ ์ ์๋ค. ์ ๊ทํ์๋ Drop out, Early Stopping, Weight decay(Parameter Norm Penalty)
์ ๊ฐ์ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค.
- ์์ธํ Regularization ๋ฐฉ๋ฒ์ reference ์ฐธ๊ณ
Normalization, Standardization์ ๋ชจ๋ ๋ฐ์ดํฐ์ ๋ฒ์(scale)์ ์ถ์ํ๋ ๋ฐฉ๋ฒ์ด๋ค.(re-scaling) ๋ฐ์ดํฐ์ ๋ฒ์ ์ฌ์กฐ์ ์ด ํ์ํ ์ด์ ๋ ๋ฐ์ดํฐ์ ๋ฒ์๊ฐ ๋๋ฌด ๋์ ๊ณณ์ ํผ์ ธ์์ ๋(scale์ด ํฌ๋ค๋ฉด), ๋ฐ์ดํฐ์
์ด outlier๋ฅผ ์ง๋์น๊ฒ ๋ฐ์
ํ์ฌ ์ค๋ฒํผํ
์ด ๋ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๋ ๋ฐฉ๋ฒ์ scale ์กฐ์ ๋ฐฉ์์ ์ฐจ์ด๊ฐ ์กด์ฌํ๋ค.
Normalization(์ ๊ทํ) ๋ฐฉ๋ฒ์๋ Batch Normalization, Min-Max Normalization ๋ฑ์ด ์๋ค.
Batch Normalization
: ์ ์ฉ์ํค๋ ค๋ ๋ ์ด์ด์ ํต๊ณ๋, ๋ถํฌ๋ฅผ ์ ๊ทํ์ํค๋ ๋ฐฉ๋ฒ์ด๋ค.Min-Max Normalization
: ๋ชจ๋ ๋ฐ์ดํฐ ์ค์์ ๊ฐ์ฅ ์์ ๊ฐ์ 0, ๊ฐ์ฅ ํฐ ๊ฐ์ 1๋ก ๋๊ณ , ๋๋จธ์ง ๊ฐ๋ค์ ๋น์จ์ ๋ง์ถฐ์ ๋ชจ๋ 0๊ณผ 1 ์ฌ์ด์ ๊ฐ์ผ๋ก ์ค์ผ์ผ๋งํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ชจ๋ feature๋ค์ ์ค์ผ์ผ์ด ๋์ผํ์ง๋ง, ์ด์์น(outlier)๋ฅผ ์ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ค. ์์ ์๋์ ๊ฐ๋ค.
Standardization(ํ์คํ) ๋ ํ์คํ ํ๋ฅ ๋ณ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ด๋ z-score๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ
์ ์๋ฏธํ๋ค. z-score normalization์ด๋ผ ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค.
Z-score
: ๊ด์ธก๊ฐ์ด ํ๊ท ๊ธฐ์ค์ผ๋ก ์ผ๋ง๋ ๋จ์ด์ ธ์๋์ง ๋ํ๋ผ ๋ ์ฌ์ฉํ๋ค. ๊ฐ ๋ฐ์ดํฐ์์ ๋ฐ์ดํฐ ์ ์ฒด์ ํ๊ท ์ ๋นผ๊ณ , ์ด๋ฅผ ํ์คํธ์ฐจ๋ก ๋๋๋ ๋ฐฉ์์ด๋ค. ์ด์์น(outlier)๋ฅผ ์ ์ฒ๋ฆฌํ์ง๋ง, ์ ํํ ๋์ผํ ์ฒ๋๋ก ์ ๊ทํ ๋ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ์ง๋ ์๋๋ค. ์์ ์๋์ ๊ฐ๋ค.
- ๋ฅ๋ฌ๋ ๊ธฐ์ด Optimization_Regularization - Sally blog
- ๋จธ์ ๋ฌ๋_Normalization, Standardization, Regularization ๋น๊ต - ํ๋ก๊ทธ๋๋ฐ ํ์ต ๋ธ๋ก๊ทธ
- ์ ๊ทํ(Normalization) ์ฝ๊ฒ ์ดํดํ๊ธฐ - ์๋ฌดํผ ์๋ผ๋ฒจ
- ์ ๊ทํ(Normalization)์ ๋ชฉ์ ๊ณผ ๋ฐฉ๋ฒ๋ค - Deep Learning with Writing
- ๋ฐ์ดํฐ ์ผ๋ฐํ vs ํ์คํ (Normalization and Standardization of Data) - ์ปดํจํฐ์ ์ํ, ๋ชฝ์ ์กฐ๊ธ
Sigmoid
sigmoid ํจ์๋ ์ ๋ ฅ์ 0~1 ์ฌ์ด์ ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ค๋ค.
์
๋ ฅ ๊ฐ์ด ํฌ๊ฑฐ๋ ์์ ๋ ๊ธฐ์ธ๊ธฐ๊ฐ 0์ ๊ฐ๊น์์ง๋ saturation
๋ฌธ์ ๊ฐ ์๋ค.
์ด๋ gradient vanishing
๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ๋ฏ๋ก ์์ฆ์๋ ํ์ฑํ ํจ์๋ก์ ์ ์ฌ์ฉ๋์ง ์๋๋ค.
๋ํ ๊ฐ์ด zero-centered
๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์
๋ ฅ๊ฐ์ ๋ถํธ์ ๊ทธ๋๋ก ์ํฅ์ ๋ฐ์ผ๋ฏ๋ก ๊ฒฝ์ฌํ๊ฐ๋ฒ ๊ณผ์ ์์ ์ ํํ ๋ฐฉํฅ์ผ๋ก ๊ฐ์ง ๋ชปํ๊ณ ์ง๊ทธ์ฌ๊ทธ๋ก ์์ง์ด๋ ๋ฌธ์ ๊ฐ ์๋ค. 12-3 ์ฐธ๊ณ
Tanh
tanh ํจ์๋ ์ ๋ ฅ์ -1~1 ์ฌ์ด์ ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ค๋ค.
sigmoid ํจ์์ ๋ง์ฐฌ๊ฐ์ง๋ก saturation
๋ฌธ์ ๊ฐ ์๋ค.
ReLU
ReLU ํจ์๋ ์ ๋ ฅ์ด ์์๋ฉด ๊ทธ๋๋ก, ์์๋ฉด 0์ ์ถ๋ ฅํ๋ค.
f(x) = max(0, x)
๊ณ์ฐ ํจ์จ๊ณผ ์ฑ๋ฅ์์ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ํ์ฑํ ํจ์์ด๋ค.
์์ ์
๋ ฅ์ ๋ํด์๋ saturation
๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์๋๋ค.
์์ ์
๋ ฅ ๊ฐ์ ๋ํด์๋ ์ด๋ค ์
๋ฐ์ดํธ๋ ๋์ง ์๋ Dead ReLU
๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
LeakyReLU
f(x) = max(0.01x, x)
ReLU
์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ข์ ์ฑ๋ฅ์ ์ ์งํ๋ฉด์ ์์ ์
๋ ฅ์ด 0์ด ์๋๊ฒ ๋จ์ ๋ฐ๋ผ Dead ReLU
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค.
- Activation Functions์ ๋ํด ์์๋ณด์ - Steve-Lee's Deep Insight
- [์ ๊ฒฝ๋ง] 6. ํ์ฑํ ํจ์ (Activation Function) - ๋ถ์๋ฒ๋ ์ ๊ณต๋ถ๋ฐฉ
Regularization
Generalization์ด ์๋๋๋ก ๋ชจ๋ธ์ ์ ์ฝ์ ์ฃผ๋ฉฐ ํ์ต์ ํ์ฌ overfitting์ ๋ฐฉ์งํ๋ ๋ฐฉ๋ฒ
-
Early stopping
- training loss๋ ๊ณ์ ๋ฎ์์ง๋๋ผ๋ validation loss๋ ์ฌ๋ผ๊ฐ๋ ์์ ์ overfitting์ผ๋ก ๊ฐ์ฃผํ์ฌ ํ์ต์ ์ข ๋ฃํ๋ ๋ฐฉ๋ฒ
-
Parameter norm penalty (weight decay)
-
Data augmentation
- ํ๋ จ ๋ฐ์ดํฐ์ ๊ฐ์๊ฐ ์ ์ ๋, ๋ฐ์ดํฐ์ ์ธ์์ ์ผ๋ก ๋ณํ๋ฅผ ์ฃผ์ด ํ๋ จ ๋ฐ์ดํฐ์ ์๋ฅผ ๋๋ฆฌ๋ ๋ฐฉ๋ฒ
-
Noise robustness
- ๋ ธ์ด์ฆ๋ ์ด์์น๊ฐ์ ์๋ฑํ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์๋ ํ๋ค๋ฆฌ์ง ์๋(robust ํ) ๋ชจ๋ธ์ ๋ง๋ค๊ธฐ ์ํด input data๋ weight์ ์ผ๋ถ๋ฌ ๋ ธ์ด์ฆ๋ฅผ ์ฃผ๋ ๋ฐฉ๋ฒ
-
Label smoothing
- ๋ชจ๋ธ์ด Ground Truth๋ฅผ ์ ํํ๊ฒ ์์ธกํ์ง ์์๋ ๋๊ฒ ๋ง๋ค์ด ์ฃผ์ด ์ ํํ์ง ์์ ํ์ต ๋ฐ์ดํฐ์ ์ ์น์ค๋๋ ๊ฒฝํฅ(overconfident)์ ๋ง์์ฃผ๋ ๋ฐฉ๋ฒ
-
Dropout
- ๊ฐ ๊ณ์ธต ๋ง๋ค ์ผ์ ๋น์จ์ ๋ด๋ฐ์ ์์๋ก ์ ํด drop ์ํค๊ณ ๋๋จธ์ง ๋ด๋ฐ๋ง ํ์ตํ๋๋ก ํ๋ ๋ฐฉ๋ฒ
- ๋งค ํ์ต๋ง๋ค drop ๋๋ ๋ด๋ฐ์ด ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์๋ก ๋ค๋ฅธ ๋ชจ๋ธ๋ค์ ์์๋ธ ํ๋ ๊ฒ๊ณผ ๊ฐ์ ํจ๊ณผ๊ฐ ์๋ค.
- dropout์ ํ์ต ์์๋ง ์ ์ฉํ๊ณ , ์ถ๋ก ์์๋ ์ ์ฉํ์ง ์๋๋ค.
-
Batch normalization
- ํ์ฑํํจ์์ ํ์ฑํ๊ฐ ๋๋ ์ถ๋ ฅ๊ฐ์ ์ ๊ทํํ๋ ๋ฐฉ๋ฒ
- ๊ฐ hidden layer์์ ์ ๊ทํ๋ฅผ ํ๋ฉด์ ์ ๋ ฅ๋ถํฌ๊ฐ ์ผ์ ํ๊ฒ ๋๊ณ , ์ด์ ๋ฐ๋ผ Learning rate์ ํฌ๊ฒ ์ค์ ํด๋ ๊ด์ฐฎ์์ง๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ํ์ต์๋๊ฐ ๋นจ๋ผ์ง๋ ํจ๊ณผ๊ฐ ์๋ค.
- ์ธ๊ณต์ ๊ฒฝ๋ง ( ANN ) #6-3 ์ต์ ํ : ์ค๋ฒํผํ ๋ฐฉ์ง( weight decay, droupout ) / ํ์ดํผํ๋ผ๋ฏธํฐ ์ต์ ํ - ์๋ฒ
- ๋ฅ๋ฌ๋6. Dropout & Early stopping์ ํตํ ์ต์ ํ - ์ด์๊ฐ๋๋์
- [๋ฅ๋ฌ๋๊ฐ๋ ] ๋ฅ๋ฌ๋ ํจ๊ณผ์ ์ผ๋ก ํ์ตํ๊ธฐ(2) (ft. regularization) - WE GONNA MAKE IT
- [Label Smoothing] ์์ฝ ์ ๋ฆฌ - Computer Vision :)
- ๋ฌธ๊ณผ์๋ ์ดํดํ๋ ๋ฅ๋ฌ๋ (10) - ๋ฐฐ์น ์ ๊ทํ - ๋ฐ์ดํฐ ๋ถ์ํ๋ ๋ฌธ๊ณผ์, ์ธ์ฝ
ํ์ดํผ ํ๋ผ๋ฏธํฐ(Hyper-parameter)๋ ๋ชจ๋ธ๋งํ ๋, ์ฌ์ฉ์๊ฐ ์ง์ ์ธํ ํด์ฃผ๋ ๊ฐ์ ๋ปํ๋ค. ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ ์ ํด์ง ์ต์ ์ ๊ฐ์ด ์์ผ๋ฉฐ, ์ฌ์ฉ์์ ์ ํ์ ์ง์์ ๊ธฐ๋ฐ์ผ๋ก ์ค์ (ํด๋ฆฌ์คํฑ)ํ๋ค. ์๋ฅผ๋ค์ด ๋ฅ๋ฌ๋์ ํ์ดํผ ํ๋ผ๋ฏธํฐ์๋ ํ์ต๋ฅ , ๋ฐฐ์น ์ฌ์ด์ฆ ๋ฑ์ด ์๊ณ , ๊ฐ์ค์น๋ ํ์ต ๊ณผ์ ์์ ๋ฐ๋๋ ๊ฐ์ด๋ฉฐ ์ด๋ ํ๋ผ๋ฏธํฐ์ ์ํ๋ค. ํ์ดํผ ํ๋ผ๋ฏธํฐ ํ๋ ๊ธฐ๋ฒ์๋ Manual Search, Grid Search, Random Search, Bayesian Optimization ๋ฑ์ด ์๋ค. ๋ฅ๋ฌ๋์์์ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ ์๋์ ๊ทธ๋ฆผ์ ์ฐธ๊ณ ํ๋ค.
์ถ๊ฐ๋ด์ฉ) ํ๋ผ๋ฏธํฐ vs. ํ์ดํผ ํ๋ผ๋ฏธํฐ
ํ๋ผ๋ฏธํฐ์ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ตฌ๋ถํ๋ ๊ธฐ์ค์ ์ฌ์ฉ์๊ฐ ์ง์ ์ค์ ํ๋๋ ์๋๋์ด๋ค. ์ฌ์ฉ์๊ฐ ์ง์ ์ค์ ํ๋ฉด ํ์ดํผ ํ๋ผ๋ฏธํฐ, ๋ชจ๋ธ ํน์ ๋ฐ์ดํฐ์ ์ํด ๊ฒฐ์ ๋๋ฉด ํ๋ผ๋ฏธํฐ์ด๋ค.
๋ฅ๋ฌ๋์์ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ ํ์ต๋ฅ , ๋ฐฐ์น ํฌ๊ธฐ, ์๋์ธต์ ๊ฐ์
๋ฑ์ด ์๊ณ , ํ๋ผ๋ฏธํฐ๋ ๊ฐ์ค์น, ํธํฅ
๋ฑ์ด ์๋ค.
โ๏ธ ์ ํ์ ์ง์: ๊ฒฝํํ์ง ์์๋ ์ ์ ์๋ ๊ฒ์ ๋งํ๋ค.
โ๏ธ ํด๋ฆฌ์คํฑ: ์ฒด๊ณ์ ์ด๋ฉด์ ํฉ๋ฆฌ์ ์ธ ํ๋จ์ด ๊ตณ์ด ํ์ํ์ง ์์ ์ํฉ์์ ์ฌ๋๋ค์ด ๋น ๋ฅด๊ฒ ์ฌ์ฉํ ์ ์๋๋ก, ๋ณด๋ค ์ฉ์ดํ๊ฒ ๊ตฌ์ฑ๋ ๊ฐํธ์ถ๋ก ์ ๋ฐฉ๋ฒ์ด๋ค. '๋์ถฉ ์ด๋ฆผ์ง์ํ๊ธฐ', '๋๋์ค์ผ๋ก ๋ง์ถ๊ธฐ' ๋ฑ์ ๋ฐฉ๋ฒ์ ์ผ์ปซ๋๋ค.
- 13.ํ๋ผ๋ฏธํฐ(Parameter)์ ํ์ดํผ ํ๋ผ๋ฏธํฐ(Hyper parameter) - ๊ทํ์ด ์์ฌ
- ํ์ดํผํ๋ผ๋ฏธํฐ(Hyperparameter) - ๋๋ฆฌ์ ๋์งํธ๋ผ์ดํ
๋ฅ๋ฌ๋์์ ๊ฐ์ค์น๋ฅผ ์ ์ด๊ธฐํํ๋ ๊ฒ์ ๊ธฐ์ธ๊ธฐ ์์ค์ด๋ local minima ๋ฑ์ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ ์ ์๊ธฐ ๋๋ฌธ์ ์ค์ํ๋ค.
LeCun Initialization
๋ฅ๋ฌ๋์ ๋๊ฐ LeCun ๊ต์๋์ด ์ ์ํ ์ด๊ธฐํ ๋ฐฉ๋ฒ์ผ๋ก ๋ค์ด์ค๋ ๋
ธ๋ ์์ ๋ํด ์ ๊ท ๋ถํฌ์ ๊ท ๋ฑ ๋ถํฌ๋ฅผ ๋ฐ๋ฅด๋ ๋ฐฉ๋ฒ์ด ์๋ค.
์ ๊ท ๋ถํฌ๋ฅผ ๋ฐ๋ฅด๋ ๋ฐฉ๋ฒ
๊ท ๋ฑ ๋ถํฌ๋ฅผ ๋ฐ๋ฅด๋ ๋ฐฉ๋ฒ
Xavier Initialization
LeCun ๋ฐฉ๋ฒ๊ณผ ๋น์ทํ์ง๋ง ๋ค์ด์ค๋ ๋
ธ๋ ์์ ๋๊ฐ๋ ๋
ธ๋ ์์ ์์กดํ๊ณ , ์ ์ ํ ์์๊ฐ๋ ๋ฐ๊ฒฌํ์ฌ ์ฌ์ฉํ ๋ฐฉ๋ฒ์ด๋ค.
์ ๊ท ๋ถํฌ๋ฅผ ๋ฐ๋ฅด๋ ๋ฐฉ๋ฒ
๊ท ๋ฑ ๋ถํฌ๋ฅผ ๋ฐ๋ฅด๋ ๋ฐฉ๋ฒ
sigmoid ๋ tanh ํจ์์๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ์ง๋ง ReLU ํจ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ 0์ ์๋ ดํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
๋ฐ๋ผ์ sigmoid
๋ tanh
ํจ์์ ์ฃผ๋ก ๋ง์ด ์ฌ์ฉํ๋ค.
He Initialization
ReLU
์ ํจ๊ป ๋ง์ด ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ผ๋ก, LeCun ๋ฐฉ๋ฒ๊ณผ ๊ฐ์ง๋ง ์์๋ฅผ ๋ค๋ฅด๊ฒ ํ์๋ค. ๋ค์ด์ค๋ ๋
ธ๋๋ง ๊ณ ๋ คํ๋ค.
์ ๊ท ๋ถํฌ๋ฅผ ๋ฐ๋ฅด๋ ๋ฐฉ๋ฒ
๊ท ๋ฑ ๋ถํฌ๋ฅผ ๋ฐ๋ฅด๋ ๋ฐฉ๋ฒ
๋ณผ์ธ ๋ง ๋จธ์ ์ ๊ฐ์์ธต(Visible Layer)์ ์๋์ธต(Hidden Layer), ์ด ๋ ๊ฐ์ ์ธต์ผ๋ก ์ ๊ฒฝ๋ง์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ณผ์ธ ๋ง ๋จธ์ ์ ๋ชจ๋ ๋ด๋ฐ์ด ์ฐ๊ฒฐ๋์ด ์๋ ์์ ๊ทธ๋ํ ํํ์ด๋ฉฐ, ์ ํ๋ ๋ณผ์ธ ๋ง ๋จธ์ (RBM)์์๋ ๊ฐ์ ์ธต์ ๋ด๋ฐ๋ค์ ์ฐ๊ฒฐ๋์ด ์์ง ์์ ๋ชจ์์ด๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋จ์ธต๊ตฌ์กฐ์ด๋ฉฐ, ํ๋ฅ ๋ชจ๋ธ์ด๋ค. ๋ถ๋ฅ๋ ์ ํ ํ๊ท ๋ถ์ ๋ฑ์ ์ฌ์ฉ๋ ์ ์๋ค.
ํนํ DBN(Deep Belief Network)์์๋ RBM๋ค์ ์์์ฌ๋ ค, ๊ฐ ๋ณผ์ธ ๋ง ๋จธ์ ์ ์์ฐจ์ ์ผ๋ก ํ์ต์ํจ๋ค.
์๊น ๋ณ cell์ ์ญํ ์ ์๋์ ๊ฐ๋ค.
- Interview Question & Answer ์ถ๊ทผ ๋ฃจํด, ํ๋ฃจ 3๋ฌธ์ - YongWook
- Restricted Boltzmann Machine - ๊ณต๋์ด์ ์ํ์ ๋ฆฌ๋ ธํธ
์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ณณ, ์ค์ํ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋๋ ์ง์ ์ ๋๋ฒ๊น ํฌ์ธํธ๋ก ๋๊ณ , ํ์ธํ๋ ๋ฐฉ๋ฒ์ด ์๋ค. ๋, IDE์์ ๋ค์ํ ๋๋ฒ๊น extension์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ ํ์ฉํ๋ฉด ์ข์ ์ธ์ฌ์ดํธ๋ฅผ ์ป์ ์ ์๋ค. ์๋ฅผ๋ค์ด, vs code์ jupyter extension์ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ํ๋ ์, ๋ณ์๊ฐ๋ฑ์ ๋ณด๊ธฐ ์ฝ๊ฒ ์ ๋ ฌํ์ฌ ํ์ธํ ์ ์๋ค.
๋๋ฒ๊น ๋ ธํ์ฐ๋ ์ค์ํ์ง๋ง, ์ค๋ฅ์ ๋ํ ๋์ฒ๋ฐฉ์์ ์ตํ๋ฉด ์ข๋ค. ๋๋ฒ๊น ํ์ง ์๊ณ ์ค๋ฅ์ ๋์ฒํ ์ ์์ผ๋ฏ๋ก, ๋๋ฒ๊น ์๊ฐ์ ์๊ปด์ค๋ค. ์๋ฅผ๋ค์ด, ๋ฅ๋ฌ๋ ํ์ต์ ์ํ ์ฝ๋๋ฅผ ์์ฑํ ๋, ๊ฐ์ฅ ๋ง์ด ๋ฐ์ํ๋ ์ค๋ฅ๋ CUDA out of memory์ shape ์ค๋ฅ์ด๋ค.(๊ฐ์ธ์ ์ธ ์๊ฒฌ) out of memory์ ๊ฐ์ ์ค๋ฅ๋ ๋ฐฐ์น ์ฌ์ด์ฆ๋ฅผ ์ค์ธ๋ค๊ฑฐ๋, ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ฌ์ด์ฆ๋ฅผ ์ค์ด๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐํ ์ ์๋ค. shape ์ค๋ฅ๋ ๋๋ฒ๊น ์ ํตํด์ ํ์ฌ ์ ๋ ฅ ๋ฐ์ดํฐ์ shape, type๋ฑ์ ํ์ธํ๊ณ , ํจ์์ ํ๋ผ๋ฏธํฐ๊ฐ ์๊ตฌํ๋ shape, type์ ๋ง๊ฒ ๋ณํํ๋ ๊ณผ์ ์ด ํ์ํ๋ค.
์ถ๊ฐ์ ์ผ๋ก ๋ฅ๋ฌ๋ ๋๋ฒ๊น ํด์ ์๋์ง๋ง, logging tool๋ก์ tensorboard, wandb ๋ฑ์ด ๋งค์ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ ์ ์๋ค.
๋ด๋ด๋ท์ ๊ฐ์ฅ ํฐ ๋จ์ ์ ๋ฌด์์ธ๊ฐ? ์ด๋ฅผ ์ํด ๋์จ One-Shot Learning์ ๋ฌด์์ธ๊ฐ?
์ฌ๋์ ์ฒ์ ๋ณด๋ ๋ฌผ๊ฑด (์ ๋ ์ด๋ธ) ์ ๋ํด ์กฐ๊ธ๋ง ๋ด๋ ๋ค๋ฅธ ๊ฒ๊ณผ ์ด ๋ฌผ๊ฑด์ ๊ตฌ๋ถํด๋ผ ์ ์๋ค.
ํ์ง๋ง ๋ด๋ด๋ท์ ์ด ๋ฌผ๊ฑด์ ๊ตฌ๋ถํด๋ด๊ธฐ ์ํด์๋ ์ด ๋ฌผ๊ฑด์ ๋ํ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ํ์ตํด์ผํ๋ค.
One-shot Learning
์ ๋ด๋ด๋ท๋ ์๋ก์ด ๋ ์ด๋ธ์ ์ง๋ ๋ฐ์ดํฐ๊ฐ ์ ์ ๋ (one-shot ์์๋ ํ ๊ฐ) ์๋ ๋ชจ๋ธ์ด ์ข์ ์ฑ๋ฅ์ ๋ด๋๋ก ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ด๋ค.
์ด๋ฅผ ์ํด์๋ ๊ธฐ์กด์ ๋ค๋ฅธ ๋ ์ด๋ธ์ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ํ์ตํ์ฌ ๋ฐ์ดํฐ์ ํน์ฑ์ ์ ์ดํดํ๋ pretrained
๋ชจ๋ธ์ด ํ์ํ๋ค.
ํ์ต๋ ๋ชจ๋ธ์ ์๋ก์ด ๋ ์ด๋ธ์ ๋ฐ์ดํฐ ํ๋ ๋์ ธ ์ฃผ๋ฉด ๋ชจ๋ธ์ ๋ฐ์ดํฐ์ ํน์ฑ์ ๋ํ ์ดํด๋ฅผ ๋ฐํ์ผ๋ก ์ด ๋ ์ด๋ธ์ ๋ํด์๋ ์ดํด๋ฅผ ํ๊ฒ ๋๋ค.
์ฐ์ sigmoid์ ReLU ํจ์์ ๋ชจ์์ ๋ณด์. sigmoid๋ ๊ฐ์ด ํฐ ์์์ผ์๋ก 1์, ํฐ ์์์ผ์๋ก 0์ ๊ฐ๊น์์ง๋ค. ๋ฐ๋ฉด ReLU๋ ๊ฐ์ด ์์์ด๋ฉด ์๋ ๊ฐ์ ๊ทธ๋๋ก ๊ฐ์ ธ๊ฐ๊ณ , ์์์ด๋ฉด 0์ด๋ค.
์์ฆ sigmoid๋ณด๋ค ReLU๋ฅผ ๋ง์ด ์ฐ๋ ๊ฐ์ฅ ํฐ ์ด์ ๋ ๊ธฐ์ธ๊ธฐ ์์ค ๋ฌธ์ (Gradient Vanishing) ๋๋ฌธ์ด๋ค. ๊ธฐ์ธ๊ธฐ๋ ์ฐ์ ๋ฒ์น(Chain Rule)์ ์ํด ๊ตญ์์ ๋ฏธ๋ถ๊ฐ์ ๋์ ๊ณฑ์ ์ํค๋๋ฐ, sigmoid์ ๊ฒฝ์ฐ ๊ธฐ์ธ๊ธฐ๊ฐ ํญ์ 0๊ณผ 1์ฌ์ด์ ๊ฐ์ด๋ฏ๋ก ์ด ๊ฐ์ ์ฐ์์ ์ผ๋ก ๊ณฑํ๊ฒ ๋๋ฉด 0์ ์๋ ดํ ์ ๋ฐ์ ์๋ค. ๋ฐ๋ฉด ReLU๋ ๊ฐ์ด ์์์ผ ๋, ๊ธฐ์ธ๊ธฐ๊ฐ 1์ด๋ฏ๋ก ์ฐ์ ๊ณฑ์ด 1๋ณด๋ค ์์์ง๋ ๊ฒ์ ์ด๋ ์ ๋ ๋ง์์ค ์ ์๋ค.
๋ค๋ง, ReLU๋ ๊ฐ์ด ์์์ด๋ฉด, ๊ธฐ์ธ๊ธฐ๊ฐ 0์ด๊ธฐ ๋๋ฌธ์ ์ผ๋ถ ๋ด๋ฐ์ด ์ฃฝ์ ์ ์๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ค. ์ด๋ฅผ ๋ณด์ํ ํ์ฑํ ํจ์๋ก Leaky ReLU๊ฐ ์๋ค.
- ML โ sigmoid ๋์ ReLU? ์ํฉ์ ๋ง๋ ํ์ฑํ ํจ์ ์ฌ์ฉํ๊ธฐ - Minkyeong Kim
- [ํ์ค] Gradient Vanishing ํด๊ฒฐ์ ์ํ ReLU ์ ResNet - boostcamp-ai-tech-4/peer-session
- ๋ฅ๋ฌ๋์์ ์ฌ์ฉํ๋ ํ์ฑํํจ์ - reniew's blog
๋น์ ํ(non-linearity)์ ๋ป์ ์๊ธฐ ์ํด์๋ ์ฐ์ ์ ํ(linearity)๊ฐ ๋ฌด์์ธ์ง ์์์ผ ํ๋ค. ์ด๋ค ๋ชจ๋ธ์ด ์ ํ์ (linearity)๋ผ๊ณ ํ๋ค๋ฉด ๊ทธ ๋ชจ๋ธ์ ๋ณ์ ๊ณผ ๊ฐ์ค์น ์ผ๋ก ์ผ๋ก ํํํ ์ ์์ผ๋ฉฐ, ๊ฐ์ฐ์ฑ(Additreivityly)๊ณผ ๋์ฐจ์ฑ(Homogeneity)์ ๋ง์กฑํด์ผ ํ๋ค.
- ๊ฐ์ฐ์ฑ: ์์์ ์ ์ ๋ํด ๊ฐ ์ฑ๋ฆฝ
-
๋์ฐจ์ฑ: ์์์ ์
$x, \alpha$ ์ ๋ํด ๊ฐ ์ฑ๋ฆฝ
์ด๋ฅผ ๋ง์กฑํ์ง ๋ชปํ๋ ๋ชจ๋ธ์ ๋น์ ํ ๊ด๊ณ์ ์๋ ๋ชจ๋ธ์ด๋ผ๊ณ ํ๋ค.
๋ฅ๋ฌ๋์์ ์ด๋ฐ ๋น์ ํ ๊ด๊ณ๋ ํ์ฑํ ํจ์(activation function)์ ๋์ ํจ์ผ๋ก์จ ํํํ ์ ์๋ค. ๊ทธ๋ผ ๋น์ ํ ๊ด๊ณ ์ฆ, ํ์ฑํ ํจ์๊ฐ ์ ํ์ํ ๊น? ๋ฐ๋ก ํ์ฑํ ํจ์๋ฅผ ์ฌ์ฉํด ์ฌ๋ฌ ์ธต์ ์์์ ๋ ๋ณต์กํ ํํ์ ํ๊ธฐ ์ํด์์ด๋ค. ํ์ฑํ ํจ์๊ฐ ์ธ ์ ํ ํจ์๋ผ๊ณ ์๊ฐํด๋ณด์. ์ด ๋ ๊ฐ์ ์ธต์ ์์๋ค๊ณ ํ ๋, ๋ชจ๋ธ์ ๋ก ๋ํ๋ผ ์ ์๋ค. ๋ผ๋ ์์๋ก ์นํํ๋ฉด ๊ฒฐ๊ตญ 1์ธต์ ๊ฐ์ง ์ ๊ฒฝ๋ง๊ณผ ๋์ผํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋น์ ํ์ธ ํ์ฑํ ํจ์๊ฐ ํ์ํ ๊ฒ์ด๋ค.
ReLU๋ ์์์ผ ๋ ์ธ ์ ํ ํจ์์ ์์์ผ ๋ ์ธ ์ ํ ํจ์ ๋ ๊ฐ๋ฅผ ๊ฒฐํฉ๋ ํํ์ด๋ค. ๊ทธ๋ ์ง๋ง ReLU๋ ์ ํ ํจ์๊ฐ ๊ฐ๋ ๊ฐ์ฐ์ฑ์ ๋ง์กฑํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋น์ ํ ํจ์๋ก ๋ณผ ์ ์๋ค. ํ์ง๋ง ReLU๊ฐ ์ด๋ป๊ฒ ๊ณก์ ํจ์๋ฅผ ๊ทผ์ฌํ ์ ์์๊น?
ReLU๋ฅผ ์ฌ๋ฌ ๊ฐ ๊ฒฐํฉํ๋ฉด, ํน์ ์ง์ ์์ ํน์ ๊ฐ๋๋งํผ ์ ํ ํจ์๋ฅผ ๊ตฌ๋ถ๋ฆด ์ ์๋ค. ์ด ์ฑ์ง์ ์ด์ฉํ์ฌ ๊ณก์ ํจ์ ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ํจ์์ ๊ทผ์ฌ๋ฅผ ํ ์ ์๊ฒ ๋๋ค.
- ํ์ฑํ ํจ์(Activation function) ์ค๋ช (Sigmoid, ReLU, LeakyReLU, tanh) - ๋ณ๋ณด๋๋๋์ง
- Q2) Sigmoid ๋ณด๋ค ReLu๋ฅผ ๋ง์ด ์ฐ๋ ์ด์ ? - JINSOL KIM
- How do ReLU Neural Networks approximate any continuous function? - towards data science
- Finally, an intuitive explanation of why ReLU works
ReLU์ ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ ์ ๋ฐ๋ก ์ฃฝ์ ๋ด๋ฐ(Dead Neurons)์ด๋ค. ReLU๋ ๊ฒฐ๊ณผ๊ฐ์ด ์์์ธ ๊ฒฝ์ฐ ๋ชจ๋ 0์ผ๋ก ์ทจ๊ธํ๋๋ฐ, back propagation์ ๊ธฐ์ธ๊ธฐ์ 0์ด ๊ณฑํด์ ธ ํด๋น ๋ถ๋ถ์ ๋ด๋ฐ์ ์ฃฝ๊ณ ๊ทธ ์ดํ์ ๋ด๋ฐ ๋ชจ๋ ์ฃฝ๊ฒ ๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ Leaky ReLU๋ ๊ฐ์ด ์์์ผ ๋ ์กฐ๊ธ์ ์์ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ฐ๋๋ก ํ์ฌ ๋ด๋ฐ์ด ์กฐ๊ธ์ด๋ผ๋ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ฐ๋๋ก ํ๋ค. ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ ๋ ฅ๊ฐ์ ์์ฃผ ์กฐ๊ธ์ ํธํฅ(bias)๋ฅผ ์ฃผ์ด ReLU๋ฅผ ์ผ์ชฝ์ผ๋ก ์กฐ๊ธ ์ด๋์ํค๋ ๋ฐฉ๋ฒ์ด ์๋ค. ์ด๋ ๊ฒ ๋๋ฉด ์ ๋ ฅ๊ฐ์ ๋ชจ๋ ์์์ด๋ฏ๋ก ๋ด๋ฐ์ด ๋ชจ๋ ํ์ฑํ๊ฐ ๋์ด ๋ด๋ฐ์ด ์ฃฝ์ง ์๋๋ค. ๊ด๋ จ ๋ด์ฉ์ CS231n 6๊ฐ 16:45๋ฅผ ์ฐธ๊ณ !
๋ ๋ฒ์งธ ๋ฌธ์ ๋ ํธํฅ ์ด๋(Bias Shift)์ด๋ค. ReLU๋ ํญ์ 0์ด์์ ๊ฐ์ ์ถ๋ ฅํ๊ธฐ ๋๋ฌธ์ ํ์ฑํ๊ฐ์ ํ๊ท ์ด 0๋ณด๋ค ์ปค zero-centeredํ์ง ์๋ค. ํ์ฑํ๊ฐ์ด zero-centered๋์ง ์์ผ๋ฉด ๊ฐ์ค์น ์ ๋ฐ์ดํธ๊ฐ ๋์ผํ ๋ฐฉํฅ์ผ๋ก๋ง ์ ๋ฐ์ดํธ๊ฐ ๋ผ์ ํ์ต ์๋๊ฐ ๋๋ ค์ง ์๊ฐ ์๋ค. ๊ด๋ จ ๋ด์ฉ์ CS231n 6๊ฐ 8:46์ ์ฐธ๊ณ !
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฐฐ์น ์ ๊ทํ(Batch Normalization)์ ์ฌ์ฉํ๊ฑฐ๋ zero-centered๋ ELU, SeLU์ ๊ฐ์ ํ์ฑํ ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
- Neural Network - Machine Learning Blog
- What are the disadvantages of using the ReLu when using Neural Networks? - Quora
- 05-1. ์ฌ์ธต ์ ๊ฒฝ๋ง ํ์ต - ํ์ฑํ ํจ์, ๊ฐ์ค์น ์ด๊ธฐํ EXCELSIOR
- computer-vision-study-2020s/week3/week3.md - CoodingPenguin/computer-vision-study-2020s
- Activation Functions in Neural Networks - Kshitij Khurana
- A Gentle Introduction to the Rectified Linear Unit (ReLU)
ํธํฅ(bias)๋ ํ์ฑํ ํจ์๊ฐ ์ผ์ชฝ ํน์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ค. ๊ฐ์ค์น(weight)๋ ํ์ฑํ ํจ์์ ๊ฐํ๋ฅธ ์ ๋ ์ฆ, ๊ธฐ์ธ๊ธฐ๋ฅผ ์กฐ์ ํ๋ ๋ฐ๋ฉด, ํธํฅ(bias)๋ ํ์ฑํ ํจ์๋ฅผ ์์ง์์ผ๋ก์จ ๋ฐ์ดํฐ์ ๋ ์ ๋ง๋๋ก ํ๋ค.
- Glossary of Deep Learning: Bias - Jaron Collis
- What is the role of the bias in neural networks? - stackoverflow
Gradient Descent๋ ์ด๋ค ํจ์์ ๊ทน์์ ์ ์ฐพ๊ธฐ ์ํด gradient ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ์ด๋ํด ๊ฐ๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ฅ๋ฌ๋์์๋ Loss function์ ์ต์ํ์ํค๊ธฐ ์ํด ํ๋ผ๋ฏธํฐ์ ๋ํด Loss function์ ๋ฏธ๋ถํ์ฌ ๊ทธ ๊ธฐ์ธ๊ธฐ๊ฐ(gradient)์ ๊ตฌํ๊ณ , ๊ฒฝ์ฌ๊ฐ ํ๊ฐํ๋ ๋ฐฉํฅ์ผ๋ก ํ๋ผ๋ฏธํฐ ๊ฐ์ ์ ์ง์ ์ผ๋ก ์ฐพ๊ธฐ์ํด ์ฌ์ฉ๋๋ค.
Gradient Descent๋ฅผ ์์์ผ๋ก ํํํ๋ฉด ์๋์ ๊ฐ๋ค.
Gradient Descent์ ๋ฌธ์ ์
-
์ ์ ํ step size(learning rate)
- step size๊ฐ ํฐ ๊ฒฝ์ฐ ํ ๋ฒ ์ด๋ํ๋ ๊ฑฐ๋ฆฌ๊ฐ ์ปค์ง๋ฏ๋ก ๋น ๋ฅด๊ฒ ์๋ ดํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค. ํ์ง๋ง, step size๋ฅผ ๋๋ฌด ํฌ๊ฒ ์ค์ ํด๋ฒ๋ฆฌ๋ฉด ์ต์๊ฐ์ ๊ณ์ฐํ๋๋ก ์๋ ดํ์ง ๋ชปํ๊ณ ํจ์ ๊ฐ์ด ๊ณ์ ์ปค์ง๋ ๋ฐฉํฅ์ผ๋ก ์ต์ ํ๊ฐ ์งํ๋ ์ ์๋ค.
- ํํธ step size๊ฐ ๋๋ฌด ์์ ๊ฒฝ์ฐ ๋ฐ์ฐํ์ง๋ ์์ ์ ์์ง๋ง ์ต์ ์ x๋ฅผ ๊ตฌํ๋๋ฐ ์์๋๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค๋ ๋จ์ ์ด ์๋ค.
-
local minima ๋ฌธ์
- gradient descent ์๊ณ ๋ฆฌ์ฆ์ ์์ํ๋ ์์น๋ ๋งค๋ฒ ๋๋คํ๊ธฐ ๋๋ฌธ์ ์ด๋ค ๊ฒฝ์ฐ์๋ local minima์ ๋น ์ ธ ๊ณ์ ํค์ด๋์ค์ง ๋ชปํ๋ ๊ฒฝ์ฐ๋ ์๊ธด๋ค.
์์ธํ ๋ด์ฉ์ #14-1. GD๊ฐ Local Minima ๋ฌธ์ ๋ฅผ ํผํ๋ ๋ฐฉ๋ฒ์? ์ฐธ๊ณ
- ๊ฒฝ์ฌํ๊ฐ๋ฒ(gradient descent) - ๊ณต๋์ด์ ์ํ์ ๋ฆฌ๋ ธํธ
- Gradient Descent ํ์ ๋ฐฉ๋ฒ - ๋คํฌ ํ๋ก๊ทธ๋๋จธ
์ ๊ผญ Gradient๋ฅผ ์จ์ผ ํ ๊น? ๊ทธ ๊ทธ๋ํ์์ ๊ฐ๋ก์ถ๊ณผ ์ธ๋ก์ถ ๊ฐ๊ฐ์ ๋ฌด์์ธ๊ฐ? ์ค์ ์ํฉ์์๋ ๊ทธ ๊ทธ๋ํ๊ฐ ์ด๋ป๊ฒ ๊ทธ๋ ค์ง๊น?
Gradient๊ฐ ์์์ด๋ฉด ์ฌ๋ผ๊ฐ๋ ๋ฐฉํฅ์ด๋ฉฐ ์์์ด๋ฉด ๋ด๋ ค๊ฐ๋ ๋ฐฉํฅ์ด๋ค. ์ค์ ์ํฉ์์๋ Gradient ๊ทธ๋ํ๊ฐ 0์ ์ค์ฌ์ผ๋ก ์ง๋ํ๋ ๋ชจ์์ด ๋ ๊ฒ์ด๋ค.
minima์ ๋ค์ด๊ฐ๋ค๊ฐ ๋์ค๋ ๊ฒฝ์ฐ์ผ ๊ฒ์ด๋ค.
์ค์ ๋ก ์ฌ์ฉ๋๋ GD์์๋ local minima ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด Momentum ๋ฑ์ ๊ฐ๋ ์ ๋์ ํ RMSprop, Adam ๋ฑ์ optimization ์ ๋ต์ ์ฌ์ฉํ๋ค.
๊ฐ optimization ์ ๋ต์ ๋ฐ๋ผ gradient๊ฐ ์์์ธ ๋ฐฉํฅ์ผ๋ก๋ parameter update step์ ๊ฐ์ ธ๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธธ ์ ์์ผ๋ฉฐ, ์ด ๊ฒฝ์ฐ์๋ Loss๊ฐ ์ผ์์ ์ผ๋ก ์ฆ๊ฐํ ์ ์๋ค.
์์ธํ ๋ด์ฉ์ #17. SGD, RMSprop, Adam์ ๋ํด์ ์๋๋๋ก ์ค๋ช ํ๋ค๋ฉด? ์ฐธ๊ณ
์ญ์ ํ ์๊ณ ๋ฆฌ์ฆ์ Loss์ ๋ํ ์ ๋ ฅ๊ฐ์ ๊ธฐ์ธ๊ธฐ(๋ฏธ๋ถ๊ฐ)๋ฅผ ์ถ๋ ฅ์ธต layer์์๋ถํฐ ๊ณ์ฐํ์ฌ ๊ฑฐ๊พธ๋ก ์ ํ์ํค๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ ๊ฑฐ๊พธ๋ก ์ ํ์์ผ์ ์ต์ข ์ ์ผ๋ก ์ถ๋ ฅ์ธต์์์ output๊ฐ์ ๋ํ ์ ๋ ฅ์ธต์์์ input data์ ๊ธฐ์ธ๊ธฐ ๊ฐ์ ๊ตฌํ ์ ์๋ค.
์ด ๊ณผ์ ์์ chain rule
์ด ์ด์ฉ๋๋ค.
์ถ๋ ฅ์ธต ๋ฐ๋ก ์ layer์์๋ถํฐ ๊ธฐ์ธ๊ธฐ(๋ฏธ๋ถ๊ฐ)์ ๊ณ์ฐํ๊ณ ์ด๋ฅผ ์ ์ ๊ฑฐ๊พธ๋ก ์ ํ์ํค๋ฉด์ ์ layer๋ค์์์ ๊ธฐ์ธ๊ธฐ์ ์๋ก ๊ณฑํ๋ ํ์์ผ๋ก ๋์๊ฐ๋ฉด ์ต์ข ์ ์ผ๋ก ์ถ๋ ฅ์ธต์ output์ ๋ํ ์ ๋ ฅ์ธต์์์ input์ ๊ธฐ์ธ๊ธฐ(๋ฏธ๋ถ๊ฐ)์ ๊ตฌํ ์๊ฐ ์๋ค. ์ด๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ฉด ์๋์ ๊ฐ๋ค.
์ญ์ ํ ์๊ณ ๋ฆฌ์ฆ์ด ํด๊ฒฐํ ๋ฌธ์ ๊ฐ ๋ฐ๋ก ํ๋ผ๋ฏธํฐ๊ฐ ๋งค์ฐ ๋ง๊ณ layer๊ฐ ์ฌ๋ฌ๊ฐ ์์๋ ๊ฐ์ค์นw์ b๋ฅผ ํ์ต์ํค๊ธฐ ์ด๋ ค์ ๋ค๋ ๋ฌธ์ ์ด๋ค.
์ด๋ ์ญ์ ํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ฐ layer์์ ๊ธฐ์ธ๊ธฐ ๊ฐ์ ๊ตฌํ๊ณ ๊ทธ ๊ธฐ์ธ๊ธฐ ๊ฐ์ ์ด์ฉํ์ฌ Gradient descent ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ค์นw์ b๋ฅผ update์ํค๋ฉด์ ํด๊ฒฐ๋์๋ค.
- ๋ฅ๋ฌ๋ ์ญ์ ํ backpropagation์ด๋? - ํ๋ผ์ด๋ฐ์ด
- 3.14. ์์ ํ(forward propagation), ์ญ์ ํ(back propagation), ์ฐ์ฐ ๊ทธ๋ํ - Dive into Deep Learning
local minima ๋ฌธ์ ๊ฐ ์ฌ์ค์ ๊ณ ์ฐจ์(High Dimensional)์ ๊ณต๊ฐ์์๋ ๋ฐ์ํ๊ธฐ ํ๋ , ๋งค์ฐ ํฌ๊ทํ ๊ฒฝ์ฐ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ์ค์ ๋ฅ๋ฌ๋ ๋ชจ๋ธ์์๋ weight๊ฐ ์๋์์ด ๋ง์ผ๋ฉฐ, ๊ทธ ์๋ง์ weight๊ฐ ๋ชจ๋ local minima์ ๋น ์ ธ์ผ weight update๊ฐ ์ ์ง๋๊ธฐ ๋๋ฌธ์ local minima๋ ํฐ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค.
Local Minima ๋ฌธ์ ์๋ ๋ถ๊ตฌํ๊ณ ๋ฅ๋ฌ๋์ด ์ ๋๋, ๋ ๊ตฌ์ฒด์ ์ธ ์ด์
๊ณ ์ฐจ์์ ๊ณต๊ฐ์์ ๋ชจ๋ ์ถ์ ๋ฐฉํฅ์ผ๋ก ์ค๋ชฉํ ํํ๊ฐ ํ์ฑ๋ ํ๋ฅ ์ ๊ฑฐ์ 0์ ๊ฐ๊น๋ค. ๋ฐ๋ผ์, ๊ณ ์ฐจ์์ ๊ณต๊ฐ์์ ๋๋ถ๋ถ์ critical point๋ local minima๊ฐ ์๋๋ผ saddle point๋ค. ๊ทธ๋ฆฌ๊ณ , ๊ณ ์ฐจ์์ ๊ณต๊ฐ์์ ์ค๋ น local minima๊ฐ ๋ฐ์ํ๋ค ํ๋๋ผ๋ ์ด๋ global minimum์ด๊ฑฐ๋ ๋๋ global minimum๊ณผ ๊ฑฐ์ ์ ์ฌํ ์์ค์ ์๋ฌ ๊ฐ์ ๊ฐ๋๋ค. ์๋ํ๋ฉด, critical point์ ํฌํจ๋ ์๋ก ๋ณผ๋ก์ธ ๋ฐฉํฅ ์ถ์ ๋น์จ์ด ํฌ๋ฉด ํด์๋ก ๋์ ์๋ฌ๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ด๋ค.(์คํ์ ๊ฒฐ๊ณผ) local minima๋ ์๋ก ๋ณผ๋ก์ธ ๊ฒฝ์ฐ๊ฐ ํ๋๋ ์๋ ๊ฒฝ์ฐ์ด๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ์ ์ผ๋ก ๋งค์ฐ ๋ฎ์ ์๋ฌ๋ฅผ ๊ฐ๊ฒ ๋ ๊ฒ์ด๋ค.
์ถ๊ฐ์๋ฃ) Local minima
Local minima ๋ฌธ์ ๋ ์๋ฌ๋ฅผ ์ต์ํ์ํค๋ ์ต์ ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ ์์ด์ ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ํ๋ผ๋ฏธํฐ ๊ณต๊ฐ์ ์๋ง์ ์ง์ญ์ ์ธ ํ(hole)๋ค์ด ์กด์ฌํ์ฌ ์ด๋ฌํ local minima์ ๋น ์ง ๊ฒฝ์ฐ ์ ์ญ์ ์ธ ํด(global minimum)๋ฅผ ์ฐพ๊ธฐ ํ๋ค๊ฒ ๋๋ ๋ฌธ์ ๋ฅผ ์ผ์ปซ๋๋ค.
Critical point, Saddle point, Local minima
critical point
: ์ผ์ฐจ ๋ฏธ๋ถ์ด 0์ธ ์ง์ ์ด๋ค. (local/global)minima, (local/global)maxima, saddle point๋ฅผ ๊ฐ๋ฆฌํดlocal minimum
: ๋ชจ๋ ๋ฐฉํฅ์์ ๊ทน์๊ฐ์ ๋ง์กฑํ๋ ์ global minimum
: ๋ชจ๋ ๋ฐฉํฅ์์ ๊ทน์๊ฐ์ ๋ง์กฑํ๋ ์ ์ค์ ๊ฐ์ฅ ๊ฐ์ด ์์ ์ (์ ๋ต)saddle point
: ์ด๋ ๋ฐฉํฅ์์ ๋ณด๋ฉด ๊ทน๋๊ฐ์ด์ง๋ง ๋ค๋ฅธ ๋ฐฉํฅ์์ ๋ณด๋ฉด ๊ทน์๊ฐ์ด ๋๋ ์
- NeuralNetwork (3) Optimazation2 - Cornor's Blog
- Local Minima ๋ฌธ์ ์ ๋ํ ์๋ก์ด ์๊ฐ - ๋คํฌ ํ๋ก๊ทธ๋๋จธ
- 05-1.์ฌ์ธต ์ ๊ฒฝ๋ง ํ์ต-ํ์ฑํ ํจ์, ๊ฐ์ค์น ์ด๊ธฐํ - EXCELSIOR
Local minima ๋ฌธ์ ๋ฅผ ํผํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ Momentum, Nesterov Accelerated Gradient(NAG), Adagrad, Adadelta, RMSprop, Adam ๋ฑ์ด ์๋ค.
SGD๋ Stochastic Gradient Descent์ผ๋ก, ํ๋ ํน์ ์ฌ๋ฌ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ํ์ ์ด๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ ์ง ์ ํ๋ ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ๋ฐฉ์์ด๋ค.
Momentum์ด๋ ๊ด์ฑ์ ์๋ฏธํ๋ฉฐ, ์ด์ gradient์ ๋ฐฉํฅ์ฑ์ ๋ด๊ณ ์๋ momentum
์ธ์๋ฅผ ํตํด ํ๋ฅด๋ ๋ฐฉํฅ์ ์ด๋ ์ ๋ ์ ์ง์์ผ local minima์ ๋น ์ง์ง ์๊ฒ ๋ง๋ ๋ค. ์ฆ, ๊ด์ฑ์ ์ด์ฉํ์ฌ, ํ์ต ์๋๋ฅผ ๋ ๋น ๋ฅด๊ฒ ํ๊ณ , ๋ณ๊ณก์ ์ ์ ๋์ด๊ฐ ์ ์๋๋ก ํด์ฃผ๋ ์ญํ ์ ์ํํ๋ค.
Nesterov Accelerated Gradient(NAG) ๋ ๋ชจ๋ฉํ
๊ณผ ๋น์ทํ ์ญํ ์ ์ํํ๋ Look-ahead gradient
์ธ์๋ฅผ ํฌํจํ์ฌ, ๋ผ๋ accumulate gradient
๊ฐ gradient๋ฅผ ๊ฐ์์ํค๋ ์ญํ ์ ํ๋ค. ๋ชจ๋ฉํ
๊ณผ ๋ค๋ฅธ ์ ์, ๋ฏธ๋ฆฌ ํ ์คํ
์ ์ฎ๊ฒจ๊ฐ๋ณธ ํ์ ์ด๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ์ง ์ ํ๋ค๋ ๊ฒ์ด๋ค.
- Momentum vs. NAG
Adagrad๋ ๋ด๋ด๋ท์ ํ๋ผ๋ฏธํฐ๊ฐ ๋ง์ด ๋ฐ๋์๋์ง ์ ๊ฒ ๋ฐ๋์๋์ง ํ์ธํ๊ณ , ์ ๊ฒ ๋ณํ๊ฑด ๋ ํฌ๊ฒ ๋ณํ๊ฒ ํ๊ณ , ํฌ๊ฒ ๋ณํ๊ฑด ๋ ์๊ฒ ๋ณํ์ํค๋ ๋ฐฉ๋ฒ์ด๋ค. Adagrad๋ sum of gradient squares
( )๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด๋ ๊ทธ๋๋์ธํธ๊ฐ ์ผ๋งํผ ๋ณํ๋์ง๋ฅผ ์ ๊ณฑํด์ ๋ํ๋ ๊ฒ์ด๋ฏ๋ก ๊ณ์ ์ปค์ง๋ค๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ๊ฐ ๊ณ์ ์ปค์ง๋ฉด ๋ถ๋ชจ๊ฐ ์ ์ ๋ฌดํ๋์ ๊ฐ๊น์์ง๊ฒ ๋์ด, ์
๋ฐ์ดํธ๊ฐ ๋์ง ์๊ฒ ๋์ด, ๋ค๋ก ๊ฐ์๋ก ํ์ต์ด ์ ์ ์๋๋ ๋ฌธ์ ์ ์ด ๋ฐ์ํ๋ค.
Adadelta๋ Exponential Moving Average(EMA)
๋ฅผ ์ฌ์ฉํ์ฌ, Adagrad์ ๊ฐ ๊ณ์ ์ปค์ง๋ ํ์์ ๋ง์ ์ ์๋ค. EMA๋ ํ์ฌ ํ์์คํ
์ผ๋ก๋ถํฐ ์๋์ฐ ์ฌ์ด์ฆ๋งํผ์ ํ๋ผ๋ฏธํฐ ๋ณํ(๊ทธ๋๋์ธํธ ์ ๊ณฑ์ ๋ณํ)๋ฅผ ๋ฐ์
ํ๋ ์ญํ ์ ํ๋๋ฐ, ์ด์ ์ ๊ฐ์ ๋ชจ๋ ์ ์ฅํ๋ ๊ฒ์ด ์๋, ์ด์ ๋ณํ๋์ ํน์ ๋น์จ์ ๊ณฑํด ๋ํ ์ธ์
๋ฅผ ๋ฐ๋ก ๋๋ ๋ฐฉ์์ด๋ค. Adadelta๋ learning rate๊ฐ ์๋ค.
Momentum์ ๋ ์์ธํ ๋ด์ฉ์ ๋ชจ๋ฉํ ์ ์์์ ์ ์ด ๋ณธ๋ค๋ฉด? ์ฐธ๊ณ
SGD, RMSprop, Adam์ ๋ํ ์ค๋ช ์ SGD, RMSprop, Adam์ ๋ํด์ ์๋๋๋ก ์ค๋ช ํ๋ค๋ฉด? ์ฐธ๊ณ
- ๋ฅ๋ฌ๋ ๊ธฐ์ด Optimization-Gradient Descent Methods - Sally blog
- NeuralNetwork (3) Optimazation2 - Cornor's Blog
Gradient Descent ๋ฐฉ์์์ lacal minima์ ๋๋ฌํจ์ ์ฆ๋ช ๋์ด์์ผ๋, global minima์ ๋๋ฌํ๋ ๊ฒ์ ๋ณด์ฅ๋์ง ์์๋ค. ๋ํ, ํ์ฌ ์ง์ ์ด global minima์ธ์ง๋ ์ ์ ์๋ค. ๋ฅ๋ฌ๋์์ ๋ค๋ฃจ๋ ๋ฌธ์ ๊ฐ convexity๋ฅผ ๋ง์กฑํ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋์ , local minima๋ฅผ ์ฐพ๋๋ค๋ฉด, ๊ทธ ์ง์ ์ด ๊ณง global minima์ผ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค. Local Minima ๋ฌธ์ ์๋ ๋ถ๊ตฌํ๊ณ ๋ฅ๋ฌ๋์ด ์ ๋๋ ์ด์ ๋?์์ ์ธ๊ธํ๋ฏ, saddle point๊ฐ ์๋ ์์ ํ local minimum์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ ํฌ๊ทํ๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ๋ฐฉํฅ์์ ์๋๋ก ๋ณผ๋ก์ธ local minima๋ฅผ ๋ฐ๊ฒฌํ๋ค๋ฉด, ๊ทธ ์ง์ ์ด ๋ฐ๋ก global minima์ผ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
- Local Minima ๋ฌธ์ ์ ๋ํ ์๋ก์ด ์๊ฐ - ๋คํฌ ํ๋ก๊ทธ๋๋จธ
- 0021 Gradient Descent & Momentum - Deepest Documentation
๋ชจ๋ธ์ ๋ฐ์ดํฐ์ ๋ํด ์์ธก๊ฐ์ ๋ง๋ค๊ณ ์ ๋ต๊ณผ ๋น๊ตํ๋ฉฐ ์
๋ฐ์ดํธ๋๋ฉด์ ํ์ต์ด ๋๋ค.
๊ทธ๋ฐ๋ฐ ํ์ต ๋ฐ์ดํฐ์ ๋ํด์๋ ์ข์ ์ฑ๋ฅ์ ๋ธ๋ค ํ๋๋ผ๋ ๋ณธ ์ ์๋ ๋ฐ์ดํฐ์ ๋ํด์๋ ์ ๋์ํ์ง ๋ชปํ๋ ์ค๋ฒํผํ
๋ฌธ์ ๊ฐ ์๊ธด๋ค๋ฉด ์ข์ ๋ชจ๋ธ์ด ์๋๋ค.
์ด๋ฅผ ๋ง๊ธฐ ์ํด ํ์ต๋ ๋ชจ๋ธ์ด ์ฒ์ ๋ณด๋ ๋ฐ์ดํฐ์๋ ๊ฐ๊ฑดํ๊ฒ ์ฑ๋ฅ์ ๋ด๋์ง ํ๋จํ๊ธฐ ์ํ ์๋จ์ผ๋ก test ์ธํธ๋ฅผ ๋ฐ๋ก ๋ง๋ ๋ค.
๋ชจ๋ธ์ ํ์ต์ํค๊ณ test ๋ฐ์ดํฐ๋ฅผ ํตํด ๋ชจ๋ธ์ ์ผ๋ฐํ ์ฑ๋ฅ์ ํ์ ํ๊ณ , ๋ค์ ๋ชจ๋ธ์ ์๋ก์ด ์๋๋ฅผ ํ๊ณ test ๋ฐ์ดํฐ๋ฅผ ํตํด ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ์ ํ๋ค๊ณ ์๊ฐํด๋ณด์.
์ด ๊ฒฝ์ฐ, ๋ชจ๋ธ์ ๊ฒฐ๊ตญ test ๋ฐ์ดํฐ์๋ ์ค๋ฒํผํ ์ด ๋์ด ๋ค์ ์ฒ์ ๋ณด๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๋ฉด ์ข์ ์ฑ๋ฅ์ ๋ณด์ฅํ ์ ์๊ฒ ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ๋ง๊ธฐ ์ํด validation ์ธํธ๋ฅผ ์ฌ์ฉํ๋ค. validation ์ธํธ๋ฅผ ํตํด ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๊ฐํ๊ณ ํ์ดํผํ๋ผ๋ฏธํฐ ๋ฑ์ ์์ ํ๋ ๊ฒ์ด๋ค.
์ฆ, train ๋ฐ์ดํฐ๋ก ๋ชจ๋ธ์ ํ์ต์ํค๊ณ valid ๋ฐ์ดํฐ๋ก ํ์ต๋ ๋ชจ๋ธ์ ์ฑ๋ฅ ํ๊ฐ๋ฅผ ํ๊ณ ๋ ์ข์ ๋ฐฉํฅ์ผ๋ก ๋ชจ๋ธ์ ์์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ต์ข ์ ์ผ๋ก ๋ง๋ค์ด์ง ๋ชจ๋ธ๋ก test ๋ฐ์ดํฐ๋ฅผ ํตํด ์ต์ข ์ฑ๋ฅ์ ํ๊ฐํ๋ค.
test ๋ฐ์ดํฐ๋ ํ ๋ฒ๋ ํ์ต์์ ๋ณธ ์ ์๋ ๋ฐ์ดํฐ์ฌ์ผ ํ๋ค. ๊ทธ๋ฐ๋ฐ train ๋ฐ์ดํฐ๊ฐ test ๋ฐ์ดํฐ์ ํก์ฌํ๊ฑฐ๋ ํฌํจ๋๊ธฐ๊น์งํ๋ค๋ฉด test ๋ฐ์ดํฐ๋ ๋์ด์ ํ์ต๋ ๋ชจ๋ธ์ ์ฑ๋ฅ ํ๊ฐ๋ฅผ ๊ฐ๊ด์ ์ผ๋ก ํ์ง ๋ชปํ๋ค.
์ด๋ ๋ฏ test ๋ฐ์ดํฐ๊ฐ train ๋ฐ์ดํฐ์ ์ ์ฌํ๊ฑฐ๋ ํฌํจ๋ ๊ฒฝ์ฐ์ test ์ธํธ๊ฐ ์ค์ผ๋์๋ค๊ณ ๋งํ๋ค.
๋ชจ๋ธ์ ์ค๋ฒํผํ ์ ๋ง๊ณ ์ฒ์ ๋ณด๋ ๋ฐ์ดํฐ์๋ ์ ์์ธกํ๋๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ Regularization(์ผ๋ฐํ)๋ผ๊ณ ํ๋ค.
๋ํ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก dropout, L1-L2 Regularization ๋ฑ์ด ์๋ค. 6๋ฒ ์ฐธ๊ณ
๋ฐฐ์น ์ ๊ทํ(Batch Normalization)์ ํ์ต ์ ๋ฏธ๋๋ฐฐ์น ๋จ์๋ก ์ ๋ ฅ์ ๋ถํฌ๊ฐ ํ๊ท ์ด 0, ๋ถ์ฐ์ด 1์ด ๋๋๋ก ์ ๊ทํํ๋ค. ๋๋ถ์ด ๋ก ์ค์ผ์ผ๊ณผ ๋ก ์ด๋ ๋ณํ์ ์ํํ๋ค. ์ด๋ ๊ฒ ๋ฐฐ์น ์ ๊ทํ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋ค.
์ฅ์ 1
๊ธฐ์ธ๊ธฐ ์์ค/ํญ๋ฐ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ด ํฐ ํ์ต๋ฅ ์ ์ค์ ํ ์ ์์ด ํ์ต์๋๊ฐ ๋นจ๋ผ์ง๋ค.์ฅ์ 2
ํญ์ ์ ๋ ฅ์ ์ ๊ทํ์ํค๊ธฐ ๋๋ฌธ์ ๊ฐ์ค์น ์ด๊น๊ฐ์ ํฌ๊ฒ ์์กดํ์ง ์์๋ ๋๋ค.์ฅ์ 3
์์ฒด์ ์ธ ๊ท์ (Regularization) ํจ๊ณผ๊ฐ ์์ด Dropout์ด๋ Weight Decay์ ๊ฐ์ ๊ท์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ง ์์๋ ๋๋ค.
- Batch Normalization - Steve-Lee's Deep Insight
- Understanding Batch Normalization for Neural Networks - towards data science
- Batch Normalization - ๋ผ์จ ํผํ
- [Deep Learning] Batch Normalization (๋ฐฐ์น ์ ๊ทํ) - ๊พธ์คํฌ
๋๋กญ์์(Dropout)์ ์ค์ ๋ ํ๋ฅ ๋งํผ ์๋์ธต(hidden layer)์ ์๋ ๋ด๋ฐ์ ๋ฌด์์๋ก ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ์ค๋ฒํผํ ์ ๋ฐฉ์งํ๊ธฐ ์ํ ๋ฐฉ๋ฒ ์ค ํ๋์ด๋ค. (์ ํํ๋ ์ถ๋ ฅ์ 0์ผ๋ก ๋ง๋ค์ด ๋์ด์์ ์ ํ๊ฐ ๋์ง ์๋๋ก ํ๋ค.) ๋๋กญ์์(Dropout)์ ํ์ต ๋๋ง๋ค ๋ฌด์์๋ก ๋ด๋ฐ์ ์ ๊ฑฐํ๋ฏ๋ก ๋งค๋ฒ ๋ค๋ฅธ ๋ชจ๋ธ์ ํ์ต์ํค๋ ๊ฒ์ผ๋ก ํด์ํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ถ๋ก ์ ์ถ๋ ฅ์ ์ ๊ฑฐ ํ๋ฅ ๋ฅผ ๊ณฑํจ์ผ๋ก์จ ์์๋ธ ํ์ต์์ ์ฌ๋ฌ ๋ชจ๋ธ์ ํ๊ท ์ ๋ด๋ ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋ค.
- 3.13. ๋๋กญ์์(dropout) - Dive into Deep Learning
- An Intuitive Explanation to Dropout - towards data science
ํ์ต ๊ณผ์ ์์๋ ๋ฏธ๋ ๋ฐฐ์น์ ํ๊ท ๊ณผ ๋ถ์ฐ์ ๊ณ์ฐํ์ฌ ๋ฐฐ์น ์ ๊ทํ๋ฅผ ์ ์ฉํ์ง๋ง, ์ถ๋ก ์์๋ ํ์ต ๋ฐ์ดํฐ ์ ์ฒด์ ๋ํ ํ๊ท ๊ณผ ๋ถ์ฐ์ ๊ณ์ฐํ์ฌ ์ ์ฉ์ ํด์ผ ํ๋ค. ์๋ํ๋ฉด ์ฌ์ฉ์๊ฐ ์ค์ ํ ๋ฐฐ์น์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์ถ๋ก ๊ฒฐ๊ณผ๊ฐ ๋ณํ ์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก GAN์์๋ ์์ฑ๊ธฐ(Generator)์ ์ถ๋ ฅ์ธต(Output Layer)์๋ง BN(Batch Normalization)์ ์ ์ฉํ์ง ์๋๋ค. ์๋ํ๋ฉด ์์ฑ๊ธฐ๊ฐ ๋ง๋ ์ด๋ฏธ์ง๊ฐ BN์ ์ง๋๋ฉด ์ค์ ์ด๋ฏธ์ง์๋ ๊ฐ์ ๋ฒ์๊ฐ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ด๋ค.
SGD
Loss Function์ ๊ณ์ฐํ ๋ ์ ์ฒด train set์ ์ฌ์ฉํ๋ ๊ฒ์ Batch Gradient Descent ๋ผ๊ณ ํ๋ค.
๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ๊ณ์ฐ์ ํ ๊ฒฝ์ฐ ํ๋ฒ step์ ๋ด๋์ ๋ ์ ์ฒด ๋ฐ์ดํฐ์ ๋ํด Loss Function์ ๊ณ์ฐํด์ผ ํ๋ฏ๋ก ๋๋ฌด ๋ง์ ๊ณ์ฐ๋์ด ํ์ํ๋ค.
์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ณดํต์ Stochastic Gradient Descent(SGD)๋ผ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
์ด ๋ฐฉ๋ฒ์์๋ loss function์ ๊ณ์ฐํ ๋ ์ ์ฒด ๋ฐ์ดํฐ(batch) ๋์ ๋ฐ์ดํฐ ํ ๊ฐ ๋๋ ์ผ๋ถ ์กฐ๊ทธ๋งํ ๋ฐ์ดํฐ์ ๋ชจ์(mini-batch)์ ๋ํด์๋ง loss function์ ๊ณ์ฐํ๋ค.
๋ฐ์ดํฐ ํ ๊ฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ฅผ Stochastic Gradient Descent(SGD), ๋ฐ์ดํฐ์ ์ผ๋ถ(mini-batch)๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ฅผ mini-batch Stochastic Gradient Descent(mini-batch SGD)๋ผ๊ณ ํ์ง๋ง ์ค๋๋ ์ ๋ฅ๋ฌ๋์์ ์ผ๋ฐ์ ์ผ๋ก ํต์ฉ๋๋ SGD๋ mini-batch SGD์ด๋ค.
์ด ๋ฐฉ๋ฒ์ batch gradient descent ๋ณด๋ค ๋ค์ ๋ถ์ ํํ ์๋ ์์ง๋ง, ํจ์ฌ ๊ณ์ฐ ์๋๊ฐ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์๊ฐ์ ๋ ๋ง์ step์ ๊ฐ ์ ์์ผ๋ฉฐ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํ ๊ฒฝ์ฐ ๋ณดํต batch์ ๊ฒฐ๊ณผ์ ์ ์ฌํ ๊ฒฐ๊ณผ๋ก ์๋ ดํ๋ค.
๋ํ, SGD๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ Batch Gradient Descent์์ ๋น ์ง local minima์ ๋น ์ง์ง ์๊ณ ๋ ์ข์ ๋ฐฉํฅ์ผ๋ก ์๋ ดํ ๊ฐ๋ฅ์ฑ๋ ์๋ค.
RMSprop
RMSProp์ ๋ฅ๋ฌ๋์ ๋๊ฐ ์ ํ๋ฆฌ ํํค์ด ์ ์ํ ๋ฐฉ๋ฒ์ผ๋ก์, Adagrad์ ๋จ์ ์ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด๋ค.
Adagrad์ ์์์ gradient์ ์ ๊ณฑ๊ฐ์ ๋ํด๋๊ฐ๋ฉด์ ๊ตฌํ ๋ถ๋ถ์ ํฉ์ด ์๋๋ผ ์ง์ํ๊ท ์ผ๋ก ๋ฐ๊พธ์ด์ ๋์ฒดํ ๋ฐฉ๋ฒ์ด๋ค.
์ด๋ ๊ฒ ๋์ฒด๋ฅผ ํ ๊ฒฝ์ฐ Adagrad์ฒ๋ผ ๊ฐ ๋ฌดํ์ ์ปค์ง์ง๋ ์์ผ๋ฉด์ ์ต๊ทผ ๋ณํ๋์ ๋ณ์๊ฐ ์๋์ ์ธ ํฌ๊ธฐ ์ฐจ์ด๋ ์ ์งํ ์ ์๋ค.
์์ผ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
Adam
Adam(Adaptive Moment Estimation)์ RMSProp๊ณผ Momentum ๋ฐฉ์์ ํฉ์น ๊ฒ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์ด ๋ฐฉ์์์๋ Momentum ๋ฐฉ์๊ณผ ์ ์ฌํ๊ฒ ์ง๊ธ๊น์ง ๊ณ์ฐํด์จ ๊ธฐ์ธ๊ธฐ์ ์ง์ํ๊ท ์ ์ ์ฅํ๋ฉฐ, RMSProp๊ณผ ์ ์ฌํ๊ฒ ๊ธฐ์ธ๊ธฐ์ ์ ๊ณฑ๊ฐ์ ์ง์ํ๊ท ์ ์ ์ฅํ๋ค.
๋ค๋ง, Adam์์๋ m๊ณผ v๊ฐ ์ฒ์์ 0์ผ๋ก ์ด๊ธฐํ๋์ด ์๊ธฐ ๋๋ฌธ์ ํ์ต์ ์ด๋ฐ๋ถ์์๋ , ๊ฐ 0์ ๊ฐ๊น๊ฒ bias ๋์ด์์ ๊ฒ์ด๋ผ๊ณ ํ๋จํ์ฌ ์ด๋ฅผ unbiased ํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ์์ ์ ๊ฑฐ์น๋ค.
์ ์ ์์ โ ํํ๋ก ํผ์น ํ ์๋ณ์ expectation์ ์์์ ์ ๋ฆฌํด๋ณด๋ฉด, ๋ค์๊ณผ ๊ฐ์ ๋ณด์ ์ ํตํด unbiased ๋ expectation์ ์ป์ ์ ์๋ค.์ด ๋ณด์ ๋ expectation๋ค์ ๊ฐ์ง๊ณ gradient๊ฐ ๋ค์ด๊ฐ ์๋ฆฌ์ , ๊ฐ ๋ค์ด๊ฐ ์๋ฆฌ์ ๋ฅผ ๋ฃ์ด ๊ณ์ฐ์ ์งํํ๋ค.
- Gradient Descent Optimization Algorithms ์ ๋ฆฌ - Beomsu Kim's Blog
- ๋ฅ๋ฌ๋ Optimization ํจ์ ์ ๋ฆฌ - rueki
SGD๋ Loss Function์ ๊ณ์ฐํ ๋ ์ ์ฒด train dataset์ ์ฌ์ฉํ๋ Batch Gradient Descent์ ๋ค๋ฅด๊ฒ ์ผ๋ถ ์กฐ๊ทธ๋งํ ๋ฐ์ดํฐ์ ๋ชจ์(mini-batch)์ ๋ํด์๋ง loss function์ ๊ณ์ฐํ๋ค.
Stochastic
์ mini-batch๊ฐ ์ ์ฒด train dataset์์ ๋ฌด์์๋ก ์ ํ๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
-
์ฅ์
- ํ iteration์ ๊ณ์ฐ๋์ด ์ ์ด์ง๊ธฐ ๋๋ฌธ์ step ๋น ์๋๊ฐ ๋นจ๋ผ์ง๋ค.
- ์ ์ Graphic Ram์ผ๋ก๋ ํ์ต์ด ๊ฐ๋ฅํ๋ค.
-
๋จ์
- ๋ฐ์ดํฐ ์ ์ฒด์ ๊ฒฝํฅ์ ๋ฐ์ํ๊ธฐ ํ๋ค๋ค. ์ ๋ฐ์ดํธ๋ฅผ ํญ์ ์ข์ ๋ฐฉํฅ์ผ๋ก ํ์ง๋ง์ ์๋๋ค.
batch size์ ๊ด๋ จ๋ ๋ ผ๋ฌธ์ Batch Size in Deep Learning - hyeonseob ์ฐธ๊ณ
Momentum ๋ฐฉ์์ ๋ง ๊ทธ๋๋ก Gradient Descent๋ฅผ ํตํด ์ด๋ํ๋ ๊ณผ์ ์ ์ผ์ข
์ ๊ด์ฑ
์ ์ฃผ๋ ๊ฒ์ด๋ค.
ํ์ฌ Gradient๋ฅผ ํตํด ์ด๋ํ๋ ๋ฐฉํฅ๊ณผ๋ ๋ณ๊ฐ๋ก, ๊ณผ๊ฑฐ์ ์ด๋ํ๋ ๋ฐฉ์์ ๊ธฐ์ตํ๋ฉด์ ๊ทธ ๋ฐฉํฅ์ผ๋ก ์ผ์ ์ ๋๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ์ด๋ํ๋ ๋ฐฉ์์ด๋ค.
: time step t์์์ ์ด๋ ๋ฒกํฐ์ด ๋, ๋ ์ผ๋ง๋ momentum์ ์ค ๊ฒ์ธ์ง์ ๋ํ momentum term์ด๋ค.
2-layer ์ ๊ฒฝ๋ง์ ๊ตฌํํ๋ค๊ณ ํ์ ๋, 100์ค ์ด๋ด๋ก ๋ง๋ค ์ ์๋ค.
- deeplearning_from_scratch - youbeebee
- 4์ฅ.์ ๊ฒฝ๋ง ํ์ต - ๋ฐ๋ฐ๋ฅ๋ถํฐ ์์ํ๋ ๋ฅ๋ฌ๋(๋์)
๊ฐ๋จํ MNIST ๋ถ๋ฅ๊ธฐ๋ฅผ MLP+CPU ๋ฒ์ ์ผ๋ก numpy๋ก ๋ง๋ , ์ฐธ๊ณ ์ฝ๋(deeplearning_from_scratch - youbeebee)์ ๊ฒฝ์ฐ, 15 ์ํญ ๊ธฐ์ค 0.9 ์ด์์ ์ ํ๋๊ฐ ๋์จ๋ค๊ณ ํ๋ค. ์ด 100์ค ๊ฐ๋์ ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ฌ๋๋ง๋ค ๋ค๋ฅด๊ฒ ์ง๋ง, ๊ตฌ์กฐ๋ฅผ ์ ํํ ์๊ณ ์๋ค๋ฉด ์ค๋๊ฑธ๋ ค๋ 30๋ถ ๋ด์๋ ์์ฑํ ์ ์์ ๊ฒ์ด๋ผ ์๊ฐํ๋ค. ๊ทธ๋ฌ๋ pretrain๋์ง ์์ ๋ชจ๋ธ์ ๊ฒฝ์ฐ, ํ์ต์๊ฐ์ด ๊ฝค ์ค๋๊ฑธ๋ฆฐ๋ค๊ณ ํ๋ค.
์ฐธ๊ณ ์ฝ๋(๊ฒฝ์ฌํ๊ฐ๋ฒ ์ ์ฉ) ๊ธฐ์ค์ผ๋ก 10์ค์ด๋ฉด ๊ตฌํํ ์ ์๋ค. gradient_descent
ํจ์๋ฅผ ๊ฐ ๋ ์ด์ด๋ณ๋ก ์ ์ฉํ๋ฉด ๋ฏธ๋ถ๊ฐ์ ์ ์ฉ์ํฌ ์ ์๋ค.
# ๊ฐ์ค์น ๋งค๊ฐ๋ณ์์ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ตฌํจ
def numerical_gradient(f, x):
h = 1e-4
grad = np.zeros_like(x) # x์ ํ์์ด ๊ฐ์ ๋ฐฐ์ด์ ์์ฑ
for idx in range(x.size):
tmp_val = x[idx]
# f(x+h) ๊ณ์ฐ
x[idx] = tmp_val + h
fxh1 = f(x)
# f(x-h) ๊ณ์ฐ
x[idx] = tmp_val - h
fxh2 = f(x)
grad[idx] = (fxh1 - fxh2) / (2 * h)
x[idx] = tmp_val # ๊ฐ ๋ณต์
return grad
for key in ('W1', 'b1', 'W2', 'b2'):
network.params[key] -= learning_rate * grad[key]
- deeplearning_from_scratch - youbeebee
- 4.5.์ ๊ฒฝ๋งํ์ต_ํ์ต ์๊ณ ๋ฆฌ์ฆ ๊ตฌํํ๊ธฐ - ๋ฐ๋ฐ๋ฅ๋ถํฐ ์์ํ๋ ๋ฅ๋ฌ๋(๋์)
filter์ ์, ํฌ๊ธฐ, padding, stride ๋ฑ์ ๋ํ ๋ด์ฉ๊ณผ pooling layer๋ฑ ๋ ์ด์ด์ ๊ดํ ์ ์๊ฐ ์ถ๊ฐ๋๋ฏ๋ก ์ฝ 50์ค ์ ๋ ์ถ๊ฐ๋๋ค.
MLP ๋ฒ์ ๊ณผ CNN ๋ฒ์ ์ ์ฐธ๊ณ ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
- deeplearning_from_scratch - youbeebee
- 4.5.์ ๊ฒฝ๋งํ์ต_ํ์ต ์๊ณ ๋ฆฌ์ฆ ๊ตฌํํ๊ธฐ - ๋ฐ๋ฐ๋ฅ๋ถํฐ ์์ํ๋ ๋ฅ๋ฌ๋(๋์)
TF ๋ Pytorch ๋ฅผ ๋ช ๋ฒ ์ฌ์ฉํด๋ณธ ์ฌ๋์ด๋ผ๋ฉด ๋ํ๋จผํธ ์ฐธ๊ณ ๋ ํ๊ณ ์ ๋นํ ๊ตฌ๊ธ๋ง๋ ํ๋ฉด, MNIST ๋ถ๋ฅ๊ธฐ์ ๋ฐ์ดํฐ ๋ค์ด๋ก๋, ๋ฐ์ดํฐ์
, ๋ฐ์ดํฐ๋ก๋, ๋ชจ๋ธ ์ธํ
, ํ์ต, ์ถ๋ก
๋ฅผ ๊ตฌํํ๋๋ฐ 2์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ์์ ๊ฒ์ด๋ผ ์๊ฐํ๋ค.
๊ฐ๋ ฅํ ์ฑ๋ฅ์ ๋ด๋ ๋ชจ๋ธ๋ ์ด๋ฌํ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋น ๋ฅธ ์๊ฐ ๋ด์ ๊ตฌํํด๋ผ ์ ์์์ ๊ฐ์ฌํ๊ณ , ์ถ์ํ๊ฐ ์ ๋ ํจ์๋ค์ผ์ง๋ผ๋ ์์์๋ ์ด๋ค ๋์์ ํ๋์ง ์๊ณ ์ฌ์ฉํด์ผํ๋ค.
Convolution ๋ ์ด์ด๋ receptive field ๋ฅผ ํตํด ์ด๋ฏธ์ง์ ์์น ์ ๋ณด๊น์ง ๊ณ ๋ คํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
๋ฐ๋ฉด MLP ๋ ๋ชจ๋ Fully connected ๊ตฌ์กฐ์ด๋ฏ๋ก ์ด๋ฏธ์ง์ ํน์ง์ ์ดํดํ๋๋ฐ ํฝ์ ๋ง๋ค ์์น๋ฅผ ๊ณ ๋ คํ ์ ์๊ฒ๋๋ค.
๋ฐ๋ผ์ MNIST ๋ถ๋ฅ๊ธฐ์์ MLP ๋ฅผ ์ฌ์ฉํ๋ฉด CNN ์ ์ฌ์ฉํ์ ๋๋ณด๋ค ์ฑ๋ฅ์ด ๋ฎ๋ค.
MNIST ๋ถ๋ฅ๊ธฐ๋ Convolution ๋ ์ด์ด๋ฅผ ๊น๊ฒ ์์ผ๋ฉฐ ์ซ์ ์ด๋ฏธ์ง์ ์์ ํน์ง๋ถํฐ ํฐ ํน์ง๊น์ง ํ์ ํ๋ค.
๋ง์ง๋ง ๋ ์ด์ด, Fully connected ๋ ์ด์ด
๋ ์ด๋ฏธ์ง ๋ฐ์ดํฐ์ ํน์ง์ ์ทจํฉํ์ฌ 10๊ฐ์ ์ซ์ ์ค ์ ์ ํ ์ซ์๋ก ๋ถ๋ฅํ๋ ์ญํ ์ ํ๋ค.
๋ง์ฝ ๋ ๋ง์ ๋ ์ด๋ธ์ ๋ํด ๋ถ๋ฅํด์ผ ํ๋ค๋ฉด ๋ง์ง๋ง ๋ ์ด์ด์ out dimension ์ ๊ทธ์ ๋ง๊ฒ ์ค์ ํ๋ฉด ๋๋ค.
train ๊ณผ์ ์์ criterion ์ BinaryCrossEntropy ๋ฅผ ์ฌ์ฉํ๊ณ , valid ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ valid loss ๋ฅผ ๊ตฌํ๋ ๊ณผ์ ์์๋ MeanSquaredLoss ๋ฅผ ์ฌ์ฉํ๋ค.
GPU(Graphics Processing Unit)์ ๋ถ๋ ์์์ ์ฐ์ฐ์ ์ํํ๋ ๋ง์ ์ฝ์ด๊ฐ ์์ด ์ ๋ง์ ์ฐ์ฐ์ ๋ณ๋ ฌ์ฒ๋ฆฌํ ์ ์๋ค. ๋ํ CPU๋ณด๋ค ๋ ํฐ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
๋ฉ๋ชจ๋ฆฌ ๋์ญํญ(Memory Bandwidth)๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฒ๋ฆฌํ ์ ์๋ ์ด๋น ๋ฐ์ดํฐ์์ ๋ปํ๋ค.
Pytorch์ ๊ฒฝ์ฐ torch.nn.DataParallel
์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ์ GPU๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
torch.device
๋ฅผ cuda๋ก ์ค์ ํ๋ค.nn.DataParallel
์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๊ฐ์ผ๋ค.- ๋ชจ๋ธ์
model.to(device)
๋ฅผ ์ฌ์ฉํ์ฌ GPU๋ก ๋ณด๋ธ๋ค.
Pytorch๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ณผ ๋ something.to('cuda')
๋ก ๋ณํํ๋ ๋ชจ๋ ๊ฒ๋ค์ ์๊ฐํด๋ณด๋ฉด ๋๋ค. ๋ณดํต GPU๋ก ์ฌ๋ฆฌ๋ ๊ฒ์ ๋ชจ๋ธ๊ณผ ๋ฐ์ดํฐ์
์ด๋ฏ๋ก, (๋ชจ๋ธ์ ํฌ๊ธฐ + ๋ฐ์ดํฐ์ ํฌ๊ธฐ ร ๋ฐฐ์น ํฌ๊ธฐ)๋ก ํ์ต์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ ์ ์๋ค.