1. CPU vs GPU
- CPU๋ ์ปดํจํฐ์ ๋์ ํด๋นํ๋ ๋ถ๋ถ
- ์ปดํจํฐ์์ ๊ตฌ์ฑ ๋จ์ ์ค ๊ธฐ์ต, ํด์, ์ฐ์ฐ, ์ ์ด๋ถ๋ถ์ ์ํํ๋ ์ค์ํ ๋ ์์ด๋ค.
- ์ข ๋ ์ ์ core์ ์๋ก ์ฐ์์ ์ธ ์ผ์ ์ฒ๋ฆฌํ๋๋ฐ CPU๊ฐ ์์ฃผ ์ฐ์ธ๋ค
- GPU๋ computer graphics๋ฅผ Renderingํ๊ธฐ ์ํด ์ฐ์ด๋ ๋ ์์ด๋ค.
- ๋ ๋ง์ core๋ก ์ผ์ ๋ณ๋ ฌ์ ์ผ๋ก ์ํํ๊ณ ์ถ์ ๋ GPU๊ฐ ์์ฃผ ์ฐ์ธ๋ค.
- GPU๋ ๋ด๋ถ์ ์ผ๋ก ์์ฒด์ ์ธ RAM์ ๊ฐ์ง๊ณ ์๋ค.
⇒ GPU์ ์ข ๋ฅ๋ ํฌ๊ฒ ์ธ๊ฐ์ง
- CUDA
- OpenCL
- Udacity
2. Deep Learning Framework
- ๋ฅ๋ฌ๋ ํ๋ ์ ์ํฌ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋?
- Computational Graph๋ฅผ ์ฝ๊ฒ buildํ๊ธฐ ์ํด
- Gradient ๊ณ์ฐ์ ์ฝ๊ฒ ํ๊ธฐ ์ํด
- GPU์์ ํจ๊ณผ์ ์ผ๋ก ๋ฅ๋ฌ๋์ ๋๋ฆฌ๊ธฐ ์ํด
1. Tensorflow
- Neural Network๋ฅผ ๋จผ์ ์ ์ํ๊ณ training ์ํด
- Graph์ด static์ด๋ค
- ์ฆ, ๋ชจ๋ธ์ ํ๋ฒ ๊ตฌ์ฑํด๋์ผ๋ฉด ์ฌ์ฌ์ฉ์ด ์ฝ๊ณ ์ต์ ํ ๊ณผ์ ๋ ๊ฐ๋ฅ.
์ฒ์์ Neural Net์ ๋ง๋ ๋ค. placeholder๋ผ๋ ๊ณณ์ input๊ฐ๊ณผ weights๋ค์ ๊ฐ์ ๋ฃ์ด์ค๋ค.
Xavier์ ์ํด weight์ ์ด๊ธฐํ ๊ฐ์ ์ค์ ํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ y_pred
๋ฅผ ์ด์ฉํด ์๋์ ์ผ๋ก weight๊ฐ์ด ๋ฐ๋๋๋ก ์ค์ ํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ optimizer
๋ฅผ ์ด์ฉํด gradient๊ฐ์ ๊ณ์ฐํ๊ณ ,loss๊ฐ์ด ์ต์๊ฐ ๋๋๋ก ๊ณ์ update๋ฅผ ํด์ค๋ค.
2. Keras
keras๋ Tensorflow์์ ์ ๊ณตํ๋ high-level wrapper์ด๋ค.
๊ต์ฅํ ์ง๊ด์ ์ผ๋ก ๋ชจ๋ธ์ ์งค ์ ์๋๋ก ๊ตฌ์ฑ๋์ด ์์ด ์ฒ์ ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ ๋ฐฐ์ธ ๋ ์ข์
model.fit ํ๋ฉด ์์์ ๋ชจ๋ธ ํฉ์น๊ณ training ํ๊ฒ๋ ํจ.
3. Pytorch
pytorch์๋ 3๊ฐ์ง์ abstraction์ด ์กด์ฌํ๋๋ฐ,
Tensor๋ ์ฝ๊ฒ ๋งํ๋ฉด ๋ค์ฐจ์ ๋ฐฐ์ด์ธ๋ฐ GPU์์ ๋์๊ฐ๊ฒ๋ ๋ง๋ ๋ฐฐ์ด์ด๋ค.
Variable์ด๋ computational graph์ ํ๋์ ๋ ธ๋๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. data์ gradient๊ฐ์ ๊ฐ์ง๊ณ ์๋ค.
Module์ด๋ neural network์ ํ๋์ layer๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
pytorch๋ tensorflow์ ๋ค๋ฅด๊ฒ graph๊ฐ dynamic graph์ด๋ค.
training์ ์ํฌ ๋, ๋งค๋ฒ ์๋ก์ด ๊ทธ๋ํ๋ฅผ ๊ตฌ์ฑํ๋ค.
๋ฐ๋ผ์ ์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ์์ฑํ ์ ใ ใ
๋ชจ๋์ ์๋ก ๋ง๋ค์ด ์ฃผ๊ณ , ๋ด๊ฐ ๋ง๋ ๋ชจ๋ธ์ ์ด์ฉํ์ฌ ํ์ต์ ์งํํ ์ ์๋ค. optimizer๋ฅผ ์ด์ฉํด์ learning rate๋ฅผ ์ฝ๊ฒ ์ ํ ์๋ ์๋ค.
DataLoader๋ฅผ ์ด์ฉํ์ฌ ์ฝ๊ฒ dataset์ ๋ถ๋ฌ์ฌ ์๋ ์๋ค.
4. Caffe2
- c++๋ก ์์ฑ๋์ด ์๋ค.
- python์ผ๋ก ๋ชจ๋ธ์ training์ ์ํค๊ณ serialize์ deploy๋ python์์ด ์งํํ ์ ์๋ค.
- iOS / Android ์์๋ ๋์ํ๋ค.
- Facebool์์ ์ง์ ๋ฅ๋ฌ๋์ ์ ์ฉํ์ฌ ์ค์ ์ ํ์ ๋ง๋ค ๋ ์ฌ์ฉํ๋ค.