[๊ฐ๋ ] GLU์ ๊ทธ ๋ณํ๋ค: ์ญ์ฌ์ ์ฃผ์ ๊ฐ๋ ์ ๋ฆฌ
์๋ณธ ๊ฒ์๊ธ: https://velog.io/@euisuk-chung/๊ฐ๋ -GLU์-๊ทธ-๋ณํ๋ค-์ญ์ฌ์-์ฃผ์-๊ฐ๋ -์ ๋ฆฌ
๋ฅ๋ฌ๋ ๋ถ์ผ์์ ํ์ฑํ ํจ์๋ ์ ๊ฒฝ๋ง ๋ชจ๋ธ์ด ํ์ตํ ๋ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์ด ์ค์์๋ GLU(Gated Linear Unit)๋ ๊ณ ๊ธ ๋ชจ๋ธ์์ ์์ฃผ ์ฌ์ฉ๋๋ ํ์ฑํ ํจ์ ์ค ํ๋์ ๋๋ค.
ํนํ ์์ฐ์ด ์ฒ๋ฆฌ(NLP)
์ ๊ฐ์ ๋ถ์ผ์์ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ฐํํ๋ฉฐ, ์ด ํ์ฑํ ํจ์์์ ํ์๋ ์ฌ๋ฌ ๋ณํ๋ค์ด ์ฐ๊ตฌ๋์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ GLU์ ๊ทธ ๋ณํ๋ค, ๊ทธ๋ฆฌ๊ณ ๊ฐ ๋ณํ์ ๋ฐ์ ๊ณผ์ ์ ๋ฐ๋ผ๊ฐ๋ฉฐ ๊ทธ ๊ฐ๋
๊ณผ ์ค์์ฑ์ ์ค๋ช
ํ๊ณ ์ ํฉ๋๋ค.
๐ (์ฐธ๊ณ ) GLU Variants Improve Transformer
โ ์ด๋ฒ ํฌ์คํ ์ ์ฐ๋ฉด์ ์ฐธ๊ณ ํ ๋ ผ๋ฌธ์ธ๋ฐ,
Transformer ๋ชจ๋ธ
์์Gated Linear Units (GLU) ๋ฐ Variants
์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ฐ๊ตฌํ ๋ ผ๋ฌธ์ ๋๋ค.
- ์๋๋ ๋งํฌ ๋ฐ ์ฃผ์ ๋ด์ฉ ์์ฝ์ ๋๋ค. ๐
๋งํฌ : https://arxiv.org/pdf/2002.05202
Transformer
๋ชจ๋ธ์ ์ํ์ค-ํฌ-์ํ์ค ๋ณํ ์์ ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ชจ๋ธ๋ก, ๋ค์ค ํค๋ ์ฃผ์ ๋ฉ์ปค๋์ฆ๊ณผ ์์น๋ณ ํผ๋ํฌ์๋ ๋คํธ์ํฌ(FFN)๋ฅผ ๊ต๋๋ก ์ฌ์ฉํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.- FFN์ ์ ๋ ฅ ๋ฒกํฐ๋ฅผ ๋ ๊ฐ์ ์ ํ ๋ณํ์ ๊ฑฐ์ณ ์ฒ๋ฆฌํ๋ฉฐ, ์ค๊ฐ์ ReLU ํ์ฑํ ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ธฐ์กด์ FFN ๊ตฌ์กฐ์์๋
ReLU
์ธ์๋ ๋ค๋ฅธ ํ์ฑํ ํจ์(GELU
,Swish
๋ฑ)๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ด ๋ ผ๋ฌธ์์๋GLU
๋ฐ ๊ทธ ๋ณํ์FFN
์ ์ ์ฉํ์ฌ ์ฑ๋ฅ ๊ฐ์ ์ ์๋ํฉ๋๋ค.
- ์ ์๋ค์ ๋ค์ํ GLU ๋ณํ์ Transformer ๊ธฐ๋ฐ์
Text-to-Text Transfer Transformer(T5) ๋ชจ๋ธ
์ ์ ์ฉํ์ฌ ์คํ์ ์งํํ์ต๋๋ค.
- ์ด๋ฅผ ํตํด ์๋ก์ด FFN ๋ณํ๋ค์ด ๊ธฐ์กด FFN ๊ตฌ์กฐ์ ๋นํด ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ธ๋ค๋ ๊ฒ์ ์ ์ฆํ์ต๋๋ค.
(์ฐธ๊ณ ) Activation Functions
- ์๋ ๊ฐ๋ ๋ฐ ์ด๋ฏธ์ง ์ถ์ฒ: https://paperswithcode.com/method
Sigmoid
์๊ฐ ์๊ธฐ
: 1960๋ ๋์ํ์ ์ ์
: ฯ(x)=11+eโx\sigma(x) = \frac{1}{1 + e^{-x}}ฯ(x)=1+eโx1โ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
: ์ ๊ฒฝ๋ง์ ์ด๊ธฐ ๋ชจ๋ธ์์ ์ฌ์ฉ๋์์ผ๋ฉฐ, ์ถ๋ ฅ์ 0๊ณผ 1 ์ฌ์ด๋ก ์ ํํ์ฌ ํ๋ฅ ๋ก ํด์ํ ์ ์๊ฒ ํฉ๋๋ค.
Tanh (Hyperbolic Tangent)
์๊ฐ ์๊ธฐ
: 1990๋ ๋์ํ์ ์ ์
: tanhโก(x)=exโeโxex+eโx\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}tanh(x)=ex+eโxexโeโxโ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
: Sigmoid์ ๋์์ผ๋ก ์ ์๋์์ผ๋ฉฐ, ์ถ๋ ฅ ๋ฒ์๊ฐ -1์์ 1 ์ฌ์ด๋ก ์ค์ฌ์ด 0์ด๋ผ๋ ์ฅ์ ์ด ์์ต๋๋ค.
ReLU (Rectified Linear Unit)
์๊ฐ ์๊ธฐ
: 2010๋ ์ํ์ ์ ์
: f(x)=maxโก(0,x)f(x) = \max(0, x)f(x)=max(0,x)๋ฑ์ฅ ๋ฐฐ๊ฒฝ
: ๊ธฐ์ธ๊ธฐ ์์ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๊ณ์ฐ ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํด ๋์ ๋์์ต๋๋ค.
Leaky ReLU
์๊ฐ ์๊ธฐ
: 2013๋ ์ํ์ ์ ์
: f(x)=maxโก(0.01x,x)f(x) = \max(0.01x, x)f(x)=max(0.01x,x)๋ฑ์ฅ ๋ฐฐ๊ฒฝ
: ReLU์ โ์ฃฝ์ ๋ด๋ฐโ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ์๋์์ต๋๋ค.
Maxout
์๊ฐ ์๊ธฐ
: 2013๋ ์ํ์ ์ ์
: f(x)=maxโก(w1Tx+b1,w2Tx+b2)f(x) = \max(w_1^Tx + b_1, w_2^Tx + b_2)f(x)=max(w1Tโx+b1โ,w2Tโx+b2โ)๋ฑ์ฅ ๋ฐฐ๊ฒฝ
: ReLU์ ์ผ๋ฐํ๋ ํํ๋ก, ๋ ๊ฐ๋ ฅํ ํน์ง ํ์ต์ ์ํด ์ ์๋์์ต๋๋ค.
ELU (Exponential Linear Unit)
์๊ฐ ์๊ธฐ
: 2015๋ ์ํ์ ์ ์
: f(x)={xifย x>0ฮฑ(exโ1)ifย xโค0f(x) = \begin{cases} x & \text{if } x > 0 \ \alpha(e^x - 1) & \text{if } x \leq 0 \end{cases}f(x)={xฮฑ(exโ1)โifย x>0ifย xโค0โ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
: ReLU์ ์ฅ์ ์ ์ ์งํ๋ฉด์ ์์ ์ ๋ ฅ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์ ์๋์์ต๋๋ค.
GELU (Gaussian Error Linear Unit)
์๊ฐ ์๊ธฐ
: 2016๋ ์ํ์ ์ ์
: GELU(x)=xโ ฮฆ(x)\text{GELU}(x) = x \cdot \Phi(x)GELU(x)=xโ ฮฆ(x)- ์ฌ๊ธฐ์ ฮฆ(x)\Phi(x)ฮฆ(x)๋ ํ์ค ์ ๊ท ๋ถํฌ์ ๋์ ๋ถํฌ ํจ์์ ๋๋ค.
๋ฑ์ฅ ๋ฐฐ๊ฒฝ
: ์์ฐ์ด ์ฒ๋ฆฌ ํ์คํฌ์์ ์ฐ์ํ ์ฑ๋ฅ์ ๋ณด์ด๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค.
Mish
์๊ฐ ์๊ธฐ
: 2019๋ ์ํ์ ์ ์
: f(x)=xโ tanhโก(lnโก(1+ex))f(x) = x \cdot \tanh(\ln(1 + e^x))f(x)=xโ tanh(ln(1+ex))๋ฑ์ฅ ๋ฐฐ๊ฒฝ
: ์๊ธฐ ์ ๊ทํ ํน์ฑ๊ณผ ๋ถ๋๋ฌ์ด ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ฐ์ง๋ฉด์ ReLU์ ์ฅ์ ์ ์ ์งํ๊ธฐ ์ํด ์ ์๋์์ต๋๋ค.
Swish
์๊ฐ ์๊ธฐ
: 2017๋ ์ํ์ ์ ์
: f(x)=xโ ฯ(ฮฒx)f(x) = x \cdot \sigma(\beta x)f(x)=xโ ฯ(ฮฒx)- ์ฌ๊ธฐ์ ฯ\sigmaฯ๋ ์๊ทธ๋ชจ์ด๋ ํจ์์ด๊ณ , ฮฒ\betaฮฒ๋ ํ์ต ๊ฐ๋ฅํ ํ๋ผ๋ฏธํฐ์ ๋๋ค.
๋ฑ์ฅ ๋ฐฐ๊ฒฝ
: ์ ๊ฒฝ ์ํคํ ์ฒ ๊ฒ์์ ํตํด ๋ฐ๊ฒฌ๋์์ผ๋ฉฐ, ๋ค์ํ ํ์คํฌ์์ ReLU๋ณด๋ค ์ฐ์ํ ์ฑ๋ฅ์ ๋ณด์ ๋๋ค.
GLU์ ๊ทธ ๋ณํ๋ค์ ๋ฐ์ ์์
1. GLU (Gated Linear Unit)
GLU๋ 2016๋ Dauphin ๋ฑ์ด โLanguage Modeling with Gated Convolutional Networksโ ๋ ผ๋ฌธ์์ ์ฒ์ ์๊ฐํ ํ์ฑํ ํจ์์ ๋๋ค. GLU๋ ์ ๊ฒฝ๋ง์ ํ์ต ๊ณผ์ ์์ ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ค์๋๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ดํ (Gating) ๋ฉ์ปค๋์ฆ์ ๋์ ํ์ฌ, ๋ถํ์ํ ์ ๋ณด๋ ์ฐจ๋จํ๊ณ ์ค์ํ ์ ๋ณด๋ง์ ๋ค์ ๋ ์ด์ด๋ก ์ ๋ฌํ๋ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค. ์ด๋ ๋ชจ๋ธ์ ์ฑ๋ฅ ํฅ์์ ํฌ๊ฒ ๊ธฐ์ฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- ๋งํฌ : https://arxiv.org/pdf/1612.08083
์ํ์ ์ผ๋ก GLU๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค:
GLU(x,W,V,b,c)=(xW+b)โฯ(xV+c)GLU(x, W, V, b, c) = (xW + b) \otimes \sigma(xV + c)GLU(x,W,V,b,c)=(xW+b)โฯ(xV+c)
์ฌ๊ธฐ์:
- x๋ ์ ๋ ฅ ๋ฒกํฐ,
- W, V๋ ๊ฐ์ค์น ํ๋ ฌ,
- b, c๋ ํธํฅ ๋ฒกํฐ,
- ฯ\sigmaฯ๋ ์๊ทธ๋ชจ์ด๋ ํจ์๋ก, ๋น์ ํ ํ์ฑํ ํจ์์
๋๋ค.
- ํ์ฑํ ํจ์(์ผ๋ฐ์ ์ผ๋ก ์๊ทธ๋ชจ์ด๋ ฯ\sigmaฯ)๋ฅผ ์ ์ฉํ์ฌ ์ถ๋ ฅํ ์ ๋ณด์ ์์ ์กฐ์ ํฉ๋๋ค.
- โ\otimesโ๋ ์์๋ณ ๊ณฑ์ ์ ์๋ฏธํฉ๋๋ค.
์ ๋
ผ๋ฌธ Gated Convolutional Networks
์์๋ Gating ๋ฉ์ปค๋์ฆ์ ํตํด ๋คํธ์ํฌ๊ฐ ๋ค์ ๋จ์ด๋ฅผ ์์ธกํ๋ ๋ฐ ํ์ํ ์ ๋ณด๋ฅผ ์ ํํ๋๋ก ๋์์ฃผ๋ฉฐ, ํ์ํ ๊ฒฝ์ฐ์๋ง ์ ๋ณด๋ฅผ ์ ํํฉ๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋คํธ์ํฌ๋ ์ด๋ค ๋จ์ด ๋๋ ํน์ฑ์ด ๋ค์ ๋จ์ด ์์ธก์ ์ค์ํ์ง๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
-
Gating ๋ฉ์ปค๋์ฆ์ ์ ํต์ ์ธ ๋น์ ํ ํ์ฑํ ํจ์(activation function) ๋์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด, Gated Linear Units(GLU)๋ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ๊ด๊ณ๋ฅผ ์ ์ดํ๋ ๊ฒ์ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ณด ํ๋ฆ์ ๋ ์ ์กฐ์ ํฉ๋๋ค. ์ด ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ์ ๋ ฅ์ด ๊ฒ์ดํธ์ ๊ฒฐํฉ๋์ด ๋น์ ํ์ฑ์ ์ ์งํ๋ฉด์๋ ์ ๋ณด๊ฐ ๋ณด๋ค ์ํํ๊ฒ ์ ๋ฌ๋ ์ ์์ต๋๋ค.
-
GLU๋ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ ํ ๋ณํํ ํ, ์๊ทธ๋ชจ์ด๋ ํจ์๋ฅผ ํตํด ๊ฒ์ดํธ๋ฅผ ์กฐ์ ํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ ํ์ ์ผ๋ก ํต๊ณผ์ํต๋๋ค.
- ์ด ๋ฐฉ์์ ์ ํ์ฑ๊ณผ ๋น์ ํ์ฑ์ ๊ฒฐํฉํ์ฌ ๋ ๊ฐ๋ ฅํ ํํ๋ ฅ์ ์ ๊ณตํ๋ฉฐ, ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ ํ์ต ๊ณผ์ ์์ ์ค์ํ ์ ๋ณด๋ง์ ํจ๊ณผ์ ์ผ๋ก ํ์ตํ ์ ์๊ฒ ๋์์ค๋๋ค.
2. Bilinear GLU
GLU์ ํจ๊ป ์ฒ์ ๋ ผ๋ฌธ์์ ์๊ฐ๋ ๋ณํ์ผ๋ก, Bilinear GLU๋ ์๊ทธ๋ชจ์ด๋ ํจ์๋ฅผ ์ ๊ฑฐํ์ฌ ๋ ๋จ์ํ ํํ๋ก ๋ฐ์ ๋ ๋ฒ์ ์ ๋๋ค.
- ๋งํฌ : https://arxiv.org/pdf/1612.08083
Bilinear GLU๋ ์ ํ ๋ณํ๋ง์ ์ฌ์ฉํ๋ฉฐ, ์ํ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค:
Bilinearย GLU(x,W1,W2,b1,b2)=(xW1+b1)โ(xW2+b2)Bilinear\ GLU(x, W_1, W_2, b_1, b_2) = (xW_1 + b_1) \otimes (xW_2 + b_2)Bilinearย GLU(x,W1โ,W2โ,b1โ,b2โ)=(xW1โ+b1โ)โ(xW2โ+b2โ)
์ฌ๊ธฐ์ โ\otimesโ๋ ์์๋ณ ๊ณฑ(element-wise product)
์ ์๋ฏธํฉ๋๋ค. Bilinear GLU๋ ๋ ๊ฐ์ ์ ํ ๋ณํ์ ๊ฒฐํฉํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ๋ฐฉ์์ผ๋ก ์ค๊ณ๋์ด ์์ต๋๋ค. ์ด ๋ฐฉ์์์ ๊ฐ๊ฐ์ ๊ฒ์ดํธ๋ฅผ ์ํฉ์ ๋ง๊ฒ ์กฐ์ ํ๊ธฐ ์ํด ์๊ทธ๋ชจ์ด๋ ํจ์๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค.
- Bilinear GLU์ ๊ฒฝ์ฐ, ์๊ทธ๋ชจ์ด๋๊ฐ ์๋๋ผ๋ ๊ด์ฐฎ์ ์ด์ ๋, ๋น์ ํ์ฑ์ Bilinear ๋ฐฉ์์ผ๋ก ํ๋ณดํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ์ฆ, Bilinear GLU๋ ๋ ์ ๋ ฅ ๋ฒกํฐ ๊ฐ์ ์ํธ์์ฉ(์ฆ, bilinear transformation)์ ํตํด ํ์ํ ๋น์ ํ์ฑ์ ์ ๊ณตํ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ชจ๋ธ์ ๋ค์ํ ์ ๋ ฅ์ ๋ํ ๋ณต์กํ ์์กด ๊ด๊ณ๋ฅผ ๋ชจ๋ธ๋งํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ํฉ๋๋ค.
Bilinear GLU์์ ๋น์ ํ์ฑ์ ํ๋ณดํ๋ ๋ฐฉ์
๋ค์ํ ์ ํ ๋ณํ
: Bilinear GLU์์๋ ์ ๋ ฅ ๋ฒกํฐ XXX๋ฅผ ๋ ๊ฐ์ ์๋ก ๋ค๋ฅธ ์ ํ ๋ณํ์ ํตํด ์ฒ๋ฆฌํฉ๋๋ค. ๊ฐ ๋ณํ์ด ์๋ก ๋ค๋ฅธ ๊ฐ์ค์น ํ๋ ฌ์ ์ฌ์ฉํ์ฌ XXX์ ์ ๋ณด๋ฅผ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํจ์ผ๋ก์จ, ์ ๋ ฅ์ ๋ค์ํ ํน์ฑ์ด๋ ํจํด์ ๋ณด๋ค ์์ธํ๊ฒ ๋ฐ์ํ ์ ์์ต๋๋ค.์์๋ณ ๊ณฑ์ ํตํ ์ํธ์์ฉ
: ๋ ์ ํ ๋ณํ ๊ฒฐ๊ณผ๋ฅผ ์์๋ณ ๊ณฑ์ผ๋ก ๊ฒฐํฉํ๋ฉด์, ๊ฐ ์์ ๊ฐ์ ์ํธ์์ฉ์ ์ ํํ๊ฒ ๋ชจ๋ธ๋งํ ์ ์์ต๋๋ค. ์ด ์กฐํฉ์ ๋จ์ํ ์ ํ ๊ฒฐํฉ ์ด์์ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ฉฐ, ์ ๋ ฅ ๋ฐ์ดํฐ ๊ฐ์ ๋ณต์กํ ๊ด๊ณ๋ฅผ ํฌ์ฐฉํ๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค.์ฐจ์ ํ์ฅ์ผ๋ก ์ธํ ํํ๋ ฅ ์ฆ๊ฐ
: ๋ ์ ํ ๋ณํ๊ณผ ์์๋ณ ๊ณฑ์ด ๊ฒฐํฉ๋จ์ผ๋ก์จ, ๋ชจ๋ธ์ด ํ์ตํ๋ ์ ๋ณด์ ๊ณต๊ฐ์ด ํ์ฅ๋์ด ๋ ๋ง์ ํํ๋ ฅ์ ๊ฐ๊ฒ ๋ฉ๋๋ค. ์ด๋ ๋ชจ๋ธ์ด ์ ๋ ฅ ๋ฐ์ดํฐ์ ๋ค์ํ ํน์ฑ์ ํฌ์ฐฉํ๊ณ , ๋์ฑ ๋ณต์กํ ํจ์๋ค์ ๊ทผ์ฌํ ์ ์๋๋ก ๋์์ค๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก, Bilinear GLU๋ ์ฐจ์์ ํ์ฅํ๊ณ ์ ๋ ฅ์ ๋ค์ํ ์ํธ์์ฉ์ ๋ชจ๋ธ๋งํจ์ผ๋ก์จ ๋น์ ํ์ฑ์ ํ๋ณดํ๊ณ , ๋ณด๋ค ๋ณต์กํ ๋ฐ์ดํฐ ํจํด์ ํ์ตํ ์ ์๊ฒ ํฉ๋๋ค. ์ด๋ก ์ธํด ๋ชจ๋ธ์ ์ฑ๋ฅ์ด ํฅ์๋ ์ ์์ต๋๋ค.
3. ReGLU (ReLU-Gated Linear Unit)
ReGLU๋ 2020๋ Shazeer์ โGLU Variants Improve Transformerโ ๋ ผ๋ฌธ์์ ์๊ฐ๋์์ต๋๋ค. GLU์ ์๊ทธ๋ชจ์ด๋ ํจ์๋ฅผ ReLU๋ก ๋์ฒดํ ๋ณํ์ ๋๋ค.
- ReLU๋
์ ๋ ฅ์ด ์์์ผ ๋๋ ๊ทธ๋๋ก ํต๊ณผ์ํค๊ณ , ์์์ผ ๋๋ 0์ผ๋ก ๋ง๋๋ ๊ฐ๋จํ ๋น์ ํ ํ์ฑํ ํจ์
์ ๋๋ค. (์ Activiation Function ์ฐธ๊ณ )
์์์ผ๋ก ReGLU๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
ReGLU(x,W,V,b,c)=(xW+b)โReLU(xV+c)ReGLU(x, W, V, b, c) = (xW + b) \otimes ReLU(xV + c)ReGLU(x,W,V,b,c)=(xW+b)โReLU(xV+c)
ReLU๋ ๊ณ์ฐ์ด ๊ฐ๋จํ๋ฉด์๋ ๊ธฐ์ธ๊ธฐ ์์ค ๋ฌธ์ ๋ฅผ ์ ํด๊ฒฐํ๋ ์ฅ์ ์ด ์์ต๋๋ค. ReGLU๋ ์ด๋ฌํ ReLU์ ์ฅ์ ์ ์ด์ฉํ์ฌ ๋ ๋น ๋ฅธ ํ์ต๊ณผ ๊ณ์ฐ ํจ์จ์ฑ์ ํ๋ณดํ ์ ์์์ต๋๋ค.
4. GEGLU (GELU-Gated Linear Unit)
GEGLU ์ญ์ Shazeer์ 2020๋ ๋ ผ๋ฌธ์์ ์๊ฐ๋ ๋ณํ์ ๋๋ค. GLU์ ์๊ทธ๋ชจ์ด๋ ํจ์๋ฅผ GELU(Gaussian Error Linear Unit)๋ก ๋์ฒดํ์์ต๋๋ค.
- GELU๋
์ ๋ ฅ๊ฐ์ Gaussian ๋ถํฌ ๊ธฐ๋ฐ์ผ๋ก ์ฒ๋ฆฌํ๋ ํ์ฑํ ํจ์
๋ก, ๋ ์์ฐ์ค๋ฌ์ด ๋น์ ํ์ฑ์ ์ ๊ณตํฉ๋๋ค. (์ Activiation Function ์ฐธ๊ณ )
GEGLU๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค:
GEGLU(x,W,V,b,c)=(xW+b)โGELU(xV+c)GEGLU(x, W, V, b, c) = (xW + b) \otimes GELU(xV + c)GEGLU(x,W,V,b,c)=(xW+b)โGELU(xV+c)
GELU๋ ํนํ ์์ฐ์ด ์ฒ๋ฆฌ์ ๊ฐ์ ๋ณต์กํ ๋ฐ์ดํฐ์์ ๋ชจ๋ธ์ด ๋ ๋ถ๋๋ฝ๊ณ ์์ฐ์ค๋ฝ๊ฒ ํ์ตํ ์ ์๋๋ก ๋์์ค๋๋ค. ์ด๋ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ๋์ด๋ ๋ฐ ํฐ ์ญํ ์ ํ์ต๋๋ค.
5. SwiGLU (Swish-Gated Linear Unit)
SwiGLU๋ Swish ํจ์๋ฅผ ํ์ฉํ GLU์ ๋ณํ์ ๋๋ค. ์ด ๋ํ 2020๋ Shazeer์ ๋ ผ๋ฌธ์์ ์๊ฐ๋์์ผ๋ฉฐ, ์ดํ 2022๋ Google์ โPaLM(Pathways Language Model)โ์์ ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ์ ์ ์ฉ๋์์ต๋๋ค.
- Swish ํจ์๋ Swish(x)=xโ ฯ(ฮฒx)Swish(x) = x \cdot \sigma(\beta x)Swish(x)=xโ ฯ(ฮฒx)๋ก ์ ์๋๋ฉฐ, ์ฌ๊ธฐ์ ฮฒ\betaฮฒ๋ ํ์ต ๊ฐ๋ฅํ ํ๋ผ๋ฏธํฐ์ ๋๋ค. (์ Activiation Function ์ฐธ๊ณ )
์ํ์ ์ผ๋ก SwiGLU๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
SwiGLU(x,W,V,b,c)=(xW+b)โSwish(xV+c)SwiGLU(x, W, V, b, c) = (xW + b) \otimes Swish(xV + c)SwiGLU(x,W,V,b,c)=(xW+b)โSwish(xV+c)
SwiGLU์ ํน์ง์ Swish ํจ์์ ๋ถ๋๋ฌ์ด ๊ธฐ์ธ๊ธฐ๋ฅผ ํตํด ํ์ต ๊ณผ์ ์ด ๋์ฑ ์ํํ๊ณ ์์ ์ ์ด๋ผ๋ ์ ์ ๋๋ค. ํนํ, PaLM๊ณผ ๊ฐ์ ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ์์ ๋งค์ฐ ์ข์ ์ฑ๋ฅ์ ๋ฐํํ์ผ๋ฉฐ, ์ด๋ ์ค์ ๋๊ท๋ชจ ๋ฐ์ดํฐ ํ์ต์์๋ ์ ์ฉํจ์ ์ ์ฆํ์ต๋๋ค.
GLU์ ๊ทธ ๋ณํ๋ค์ ์ฑ๋ฅ ๋น๊ต ๋ฐ ์ค์์ฑ
GLU์ ๊ทธ ๋ณํ๋ค์ ๊ฐ๊ธฐ ๋ค๋ฅธ ์ํฉ์์ ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ผ ์ ์์ผ๋ฉฐ, 2020๋ Shazeer์ ๋ ผ๋ฌธ์์๋ ์ด๋ฌํ ๋ณํ๋ค์ด Transformer ๊ตฌ์กฐ์์ ์ด๋ป๊ฒ ์ฑ๋ฅ์ ๊ฐ์ ํ๋์ง ๋น๊ตํ์์ต๋๋ค. ์ด ์ฐ๊ตฌ์์๋ GEGLU์ SwiGLU๊ฐ ๋ค๋ฅธ ๋ณํ๋ค๋ณด๋ค ์ฐ์ํ ์ฑ๋ฅ์ ๋ณด์๋ค๊ณ ๋ณด๊ณ ๋์์ต๋๋ค.
์ด๋ฌํ ํ์ฑํ ํจ์๋ค์ ๊ฐ๊ธฐ ๋ค๋ฅธ ์ํฉ์ ๋ง์ถฐ ์ฌ์ฉ๋๋ฉฐ, ๋ชจ๋ธ์ ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํ ๋ค์ํ ์คํ๊ณผ ๊ฐ์ ์ ๊ฑฐ์ณ ์์ต๋๋ค. GLU์ ๊ฒ์ดํ ๋ฉ์ปค๋์ฆ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ณ์ ์ผ๋ก ์ ๋ฌํ์ฌ ํ์ต ํจ์จ์ ๋์ด๋ฉฐ, ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๋ณํ๋ค์ ๋ ๊ฐ๋จํ๊ฑฐ๋ ๋ ๊ฐ๋ ฅํ ๋น์ ํ์ฑ์ ์ถ๊ฐํ์ฌ ๋ชจ๋ธ์ ํํ๋ ฅ์ ๊ทน๋ํํ๋ ๋ฐฉํฅ์ผ๋ก ๋ฐ์ ํด์์ต๋๋ค.
์ ๋ฆฌ
GLU์์ ์ถ๋ฐํ์ฌ Bilinear GLU, ReGLU, GEGLU, ๊ทธ๋ฆฌ๊ณ SwiGLU๊น์ง ์ด์ด์ง๋ ๋ฐ์ ๊ณผ์ ์ ํ์ฑํ ํจ์์ ์ฑ๋ฅ์ ์ง์์ ์ผ๋ก ๊ฐ์ ํ๊ธฐ ์ํ ๋ฅ๋ฌ๋ ์ฐ๊ตฌ์ ํน์ฑ์ ์ ๋ณด์ฌ์ค๋๋ค. ๊ฐ ๋ณํ์ ์ด์ ๋ฒ์ ์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ฑฐ๋ ์๋ก์ด ์์ด๋์ด๋ฅผ ๋์ ํ์ฌ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๋ฐ ์ด์ ์ ๋ง์ถ์์ต๋๋ค.
- GLU: ์ ํ์ฑ๊ณผ ๋น์ ํ์ฑ์ ๊ฒฐํฉํ ๊ฒ์ดํ ๋ฉ์ปค๋์ฆ์ผ๋ก ์์.
- Bilinear GLU: ๋ ๋จ์ํ ๊ณ์ฐ์ ์ํ ์๊ทธ๋ชจ์ด๋ ์ ๊ฑฐ ๋ฒ์ .
- ReGLU: ์๊ทธ๋ชจ์ด๋ ๋์ ReLU๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ์ฐ ํจ์จ์ฑ์ ๋์.
- GEGLU: ๋ ๋ถ๋๋ฌ์ด ๊ธฐ์ธ๊ธฐ๋ฅผ ์ ๊ณตํ๋ GELU ๋์ .
- SwiGLU: Swish ํจ์๋ฅผ ์ด์ฉํด ๋๊ท๋ชจ ๋ชจ๋ธ์์ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ฐํ.
์ด์ ๊ฐ์ ํ์ฑํ ํจ์๋ค์ ์ค๋๋ ๋ฅ๋ฌ๋ ๋ชจ๋ธ, ํนํ ์์ฐ์ด ์ฒ๋ฆฌ(NLP)์ ๊ฐ์ ๋ถ์ผ์์ ์ค์ํ ๋๊ตฌ๋ก ์๋ฆฌ ์ก๊ณ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ์ ๋ณต์กํ ํจํด์ ํ์ตํ๊ณ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ๋์ด๋ ๋ฐ ํต์ฌ์ ์ธ ์ญํ ์ ํ๊ณ ์์ต๋๋ค.