Activation Function - BD-SEARCH/MLtutorial GitHub Wiki
Activation Function (ํ์ฑํ ํจ์)
01. Activation Function?
- Perceptron์ ์ถ๋ ฅ๊ฐ์ ๋ณํ์ํค๋ ์ญํ /์
๋ ฅ๊ฐ์ ์ดํฉ์ ์ถ๋ ฅ์ผ๋ก ๋ณํ. Perceptron์ ์ถ๋ ฅ์ ๋น์ ํ์ผ๋ก ๋ณํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
- input๊ฐ x์ weight W๋ฅผ ๊ณฑํ๊ณ bias b๋ฅผ ๋ํ๋ค ์์์ฃผ๋ ํ์ฑ ํจ์.
ํ์ฑํ ํจ์๋ก ์ ํ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋๋ ์ด์
- ์ฌ๋ฌ ์ธต์ผ๋ก ๋ ๋ชจ๋ธ์ ํ๋์ ์ธต๋ง์ผ๋ก๋ ๋ํ๋ผ ์ ์์ด์ ๋ ์ด์ด๋ฅผ ์ฌ๋ฌ ์ธต ์์ ๊ฒ์ ๋ฌด์ฉ์ง๋ฌผ๋ก ๋ง๋ ๋ค.
- Activation Function์ด ์ ํ ํจ์์ด๋ฉด, ๋ ์ด์ด๋ฅผ ์ฌ๋ฌ ์ธต ์์ ๊ฒ์ ํ๋ ฌ์ ๊ณฑ์ผ๋ก ๋ํ๋ผ ์ ์๋ค. ํ๋ ฌ์ ๊ณฑํ ๊ฐ์ ํ๋์ ํ๋ ฌ๋ก ๋ํ๋ผ ์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ ์ด์ด๊ฐ ์ฌ๋ฌ ์ธต ์์ฌ ์๋๋ผ๋, ํ๋์ ๋ ์ด์ด๋ก ๋ํ๋ผ ์ ์๋ ๊ฒ์ด๋ค.
- ex) h(x) = cx๋ฅผ ํ์ฑํ ํจ์๋ก 3layer network๋ฅผ ๋ง๋ค๋ฉด y(x) = ccc*x = c^3(x) ๊ฐ ๋๋ฏ๋ก ๋ ํ๋์ y(x) = ax ๊ผด์ด ๋์ด๋ฒ๋ฆฐ๋ค.
- vanishing gradient
- back propagation(ํ๋ฆฐ์ ๋๋ฅผ ๋ฏธ๋ถํ ๊ฒ์ ์ ๋ฌ)์์ ๋ ์ด์ด๊ฐ ๊น์ ์๋ก ์
๋ฐ์ดํธ๊ฐ ์ฌ๋ผ์ง๋ฉด์, underfitting ๋ฐ์
02. ์์ฃผ ์ฐ์ด๋ ํ์ฑํ ํจ์
๊ณ๋จ ํจ์
- ํผ์
ํธ๋ก ์ ํ์ฑํ ํจ์.
- ํผ์
ํธ๋ก ์์ ์
๋ ฅ ๊ฐ๊ฐ์ ๊ฐ๊ฐ์ weight์ ๊ณฑํ ๋ค, bias๋ฅผ ๋ํ ๊ฐ์ด 0 ์ดํ์ด๋ฉด 0, 0 ์ด๊ณผ์ด๋ฉด 1์ ์ถ๋ ฅํ๋ค.
- 1๋จ๊ณ: ์
๋ ฅ ๊ฐ๊ฐ์ ๊ฐ๊ฐ์ weight์ ๊ณฑํ ๋ค bias๋ฅผ ๋ํ๋ค.
- 2๋จ๊ณ: 1๋จ๊ณ์ ๊ฐ์ด 0 ์ดํ์ด๋ฉด 0, 0 ์ด๊ณผ์ด๋ฉด 1์ ์ถ๋ ฅํ๋ค. (ํ์ฑํ ํจ์ ์ ์ฉ ๋จ๊ณ)
- ๊ฐ ๋ฒ์: 0 ์ด์ 1 ์ดํ
Sigmoid
- 0์์ 1 ์ฌ์ด์ ๊ฐ์ ๊ฐ๋ ํจ์๋ก 0 ๊ทผ์ฒ์์ ๊ธฐ์ธ๊ธฐ๊ฐ ํฌ๋ 0์์ ๋ฉ์ด์ง์๋ก ๊ธฐ์ธ๊ธฐ๊ฐ ์์์ง๋ค. ๊ทธ๋์ ๋ชจ๋ธ์ Layer๊ฐ ๋ง์ ๋ ์ด ํ์ฑํ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ต์ด ์ ์ ๋๋ค.
- ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋น์ ํ ํจ์๋ก์ ์ ์ฐ์๋ ์ด์
- ๋ฏธ๋ถ์ด ํธ๋ฆฌ : ์๊ธฐ ์์ ์ผ๋ก ๋ฏธ๋ถ๋๋ค
- ํ๋ฅ ๊ฐ์ ๋ฆฌํด
ReLU
- 0 ์ดํ๋ 0, 0 ์ด๊ณผ๋ ์
๋ ฅ๊ฐ์ ๊ทธ๋๋ก ๋ด๋๋ ํจ์.
- ๋น์ ํ ํจ์.
- ์
๋ ฅ๊ฐ์ด 0 ์ดํ๋ฉด ๋ชจ๋ ์ถ๋ ฅ์ด 0์ด ๋๋ ๋จ์ ์ด ์๋ค.
- numpy๋ก๋
np.maximum(0, x)
์ผ๋ก ๊ตฌํํ ์ ์๋ค.
- x๋ ๋ฐฐ์ด์ด๋ฉฐ, ๋ฐฐ์ด ๋ด์ ๊ฐ์ด 0 ์ด์์ด๋ฉด ๊ทธ ๊ฐ์, 0 ๋ฏธ๋ง์ด๋ฉด 0์ผ๋ก ์ฑ์ฐ๋ ํจ์
Softmax
- ๊ฐ ์
๋ ฅ๊ฐ์ ์ ๊ทํํด์ ์ต๋๊ฐ 1์ธ ํ๋ฅ ๊ฐ์ ๋ง๋๋ ํ์ฑํ ํจ์.
- ๋ถ๋ฅ(Classification)๋ฅผ ํ๋ค๋ฉด ์ถ๋ ฅ Layer๋ฅผ Softmax๋ก ํ๋ฉด ๋๋ค.
- ์ซ์๊ฐ ๋งค์ฐ ํฌ๋ฉด overflow๊ฐ ๋ฐ์ํ ์ ์๋ค.
- ๋ก๊ทธ ๋ฒ์น์ ์ํ์ฌ softmax๋ฅผ ๊ตฌํ ๋ ์
๋ ฅ๊ฐ, ์
๋ ฅ๊ฐ์ ํฉ ๊ฐ๊ฐ์ ๊ฐ์ ์๋ฅผ ๋ํ๊ฑฐ๋ ๋นผ์ด๋ ๊ฐ์ ๋์ผํ๋ค.
- ๋ณดํต ์
๋ ฅ๊ฐ์ ์ต๋๊ฐ์ ๋บ๋ค.
Leaky ReLU
- 0 ์ด์์ด๋ฉด ์
๋ ฅ๊ฐ์ ๊ทธ๋๋ก, 0 ๋ณด๋ค ์์ผ๋ฉด ๋งค์ฐ ์์ ๊ฐ(์: 0.01 ๋ฑ)์ ๊ณฑํด์ ์ถ๋ ฅํ๋ ํจ์. ReLU์์ ๋ฐ์ํ๋ dying ReLU๋ฅผ ๋ณด์ํ๊ธฐ ์ํ ํจ์์ด๋ค. ์ฌ๊ธฐ์ dying ReLU์ด๋ ReLU์์ ์
๋ ฅ์ด 0 ์ดํ๋ผ๋ฉด ์ ๋ถ 0์ผ๋ก ์ถ๋ ฅ๋์ด์ ์ผ๋ถ ๋ด๋ฐ์ด ์ ํ ์ถ๋ ฅ๋์ง ์๋ ํ์์ด๋ค.
Parametric ReLU
- 0 ์ด์์ด๋ฉด ์
๋ ฅ๊ฐ์ ๊ทธ๋๋ก, 0 ๋ณด๋ค ์์๋ฉด ax๋ฅผ ์ถ๋ ฅํ๋ค.
ELU
- 0 ์ด์์ด๋ฉด ์
๋ ฅ๊ฐ์ ๊ทธ๋๋ก, 0 ๋ณด๋ค ์์ผ๋ฉด a(e^x-1)๋ฅผ ์ถ๋ ฅํ๋ค.
03. Activation Function์ ์ ํ ์๋ น
- ReLU
- ๋ฌด๋ํ ์ ํ. ํนํ ๊ณ์ธต์ด ๊น์ ๋.
- ๋น์ ํ ํจ์์ด๊ธฐ ๋๋ฌธ์ ์์ฃผ ์ฐ์ธ๋ค.
- Sigmoid
- ์ถ๋ ฅ๊ฐ์ด ํ๋ฅ ๊ฐ์ธ ๊ฒฝ์ฐ: sigmoid ํจ์์ ๋ฒ์๊ฐ 0๊ณผ 1 ์ฌ์ด์ ์๊ธฐ ๋๋ฌธ.
- ์ด์ง ๋ถ๋ฅ (0/1์ผ๋ก ๋ถ๋ฅ)
- Softmax
- Classification ๋ฌธ์ ์ธ ๊ฒฝ์ฐ: softmax ํจ์์ ์ถ๋ ฅ๊ฐ์ ํฉ์ด 1์ด๊ธฐ ๋๋ฌธ